<?xml version="1.0" encoding="UTF-16"?>
<!DOCTYPE BlockLangDef SYSTEM "lang_def.dtd">

<!-- 


This describes every BlockGenus, BlockDrawer, BlockFamilies in Starlogo-TNG.

Note: For BlockGenus, if genus A relies on another genus B, that genus B must be 
specified in the xml file before genus A is specified.  We impose this requirement so 
that sanity checks can be made regarding the validity of a default argument when the
BlockGenuses are first loaded. 

-->

<BlockLangDef>

	<BlockConnectorShapes>
		<BlockConnectorShape shape-type="number" shape-number="1"></BlockConnectorShape>
		<BlockConnectorShape shape-type="number-list" shape-number="2"></BlockConnectorShape>
		<BlockConnectorShape shape-type="number-inv" shape-number="3"></BlockConnectorShape>
		<BlockConnectorShape shape-type="boolean" shape-number="4"></BlockConnectorShape>
		<BlockConnectorShape shape-type="boolean-list" shape-number="5"></BlockConnectorShape>
		<BlockConnectorShape shape-type="boolean-inv" shape-number="6"></BlockConnectorShape>
		<BlockConnectorShape shape-type="string" shape-number="7"></BlockConnectorShape>
		<BlockConnectorShape shape-type="string-list" shape-number="8"></BlockConnectorShape>
		<BlockConnectorShape shape-type="string-inv" shape-number="9"></BlockConnectorShape>
		<BlockConnectorShape shape-type="poly" shape-number="10"></BlockConnectorShape>
		<BlockConnectorShape shape-type="poly-list" shape-number="11"></BlockConnectorShape>
		<BlockConnectorShape shape-type="poly-inv" shape-number="12"></BlockConnectorShape>
		<BlockConnectorShape shape-type="proc-param" shape-number="13"></BlockConnectorShape>
		<BlockConnectorShape shape-type="cmd" shape-number="14"></BlockConnectorShape>
	</BlockConnectorShapes>
	
	<BlockGenuses>
		<!-- Stub Genuses 
			Do not remove unless you would like to remove the stub feature all together
		-->
		
		<BlockGenus name="getter" kind="data" initlabel="" color="0 0 0" >
			<description>
				<text>
					Retorna o valor da variável.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="poly" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<BlockGenus name="setter" kind="command" initlabel="" color="0 0 0" label-prefix="set ">
			<description>
				<text>
					Define o valor da variável.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly" position-type="single"></BlockConnector>
			</BlockConnectors>
		</BlockGenus>
		
		<BlockGenus name="caller" kind="command" initlabel="" color="0 0 0">
			<description>
				<text>
					Chama o procedimento especificado.
				</text>
			</description>
		</BlockGenus>

		<BlockGenus name="inc" kind="command" initlabel="" color="0 0 0" label-prefix="inc ">
			<description>
				<text>
					Incrementa o valor da variável numérica.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="single"></BlockConnector>
			</BlockConnectors>		
		</BlockGenus>
		
		<BlockGenus name="agent" kind="function" initlabel="" color="0 0 0" label-suffix=" of" is-starter="yes" is-terminator="yes">
			<description>
				<text>
					Retorna o valor do número ID do agente.
				</text>
			</description>
			<BlockConnectors>
			    <BlockConnector connector-kind="plug" connector-type="poly" position-type="single"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number" position-type="single"></BlockConnector>
			</BlockConnectors>	
			<LangSpecProperties>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>			
		</BlockGenus>
		
		<!-- End of Stub Genuses -->
	
		<BlockGenus name="number" kind="data" initlabel="1" editable-label="yes" is-label-value="yes" color="255 0 255">
			<description>
				<text>
					Retorna o número exibido.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="string" kind="data" initlabel="abc" editable-label="yes" is-label-value="yes" color="255 0 255">
			<description>
				<text>
					Retorna a string exibida.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>		
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="true" kind="data" initlabel="verdadeiro" color="255 0 255">
			<description>
				<text>
					Retorna o booleano verdadeiro.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="true"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="false" kind="data" initlabel="falso" color="255 0 255">
			<description>
				<text>
					Retorn o booleano falso.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="false"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- COLORS -->
		
		<BlockGenus name="red" kind="data" initlabel="vermelho" color="255 0 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="15"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="black" kind="data" initlabel="preto" color="0 0 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="0"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="white" kind="data" initlabel="branco" color="255 255 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="9"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="gray" kind="data" initlabel="cinza" color="128 128 128">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="5"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="orange" kind="data" initlabel="laranja" color="255 165 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="25"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="brown" kind="data" initlabel="marrom" color="165 42 42">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="35"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="yellow" kind="data" initlabel="amarelo" color="255 255 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="45"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="green" kind="data" initlabel="verde" color="0 255 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="55"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="lime" kind="data" initlabel="verde-limão" color="50 205 50">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="65"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="turquoise" kind="data" initlabel="turquesa" color="0 245 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="75"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="cyan" kind="data" initlabel="ciano" color="0 255 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="85"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="purple" kind="data" initlabel="roxo" color="128 0 128">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="115"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="magenta" kind="data" initlabel="magenta" color="255 0 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="125"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="sky" kind="data" initlabel="azul celeste" color="135 206 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="95"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="blue" kind="data" initlabel="azul" color="0 0 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="105"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pink" kind="data" initlabel="rosa" color="255 192 203">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="135"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- MOVEMENT -->
	
		<BlockGenus name="fd" kind="command" initlabel="andar para frente" color="255 0 0">
			<description>
				<text>
					O agente se move <arg n="1"/> passos para frente.
				</text>
				<arg-description n="1" name="steps">
					Número de passos que o agente deve se mover.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="steps" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="fd"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
	    <BlockGenus name="bk" kind="command" initlabel="andar para trás" color="255 0 0">
			<description>
				<text>
					O agente se move <arg n="1"/> passos para trás.
				</text>
				<arg-description n="1" name="steps">
					Número de passos que o agente deve se mover.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="steps" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="bk"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="lt" kind="command" initlabel="virar para esquerda" color="255 0 0">
			<description>
				<text>
					O agente gira <arg n="1"/> graus para a esquerda.
				</text>
				<arg-description n="1" name="degs">
					Número de graus que o agente irá girar.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="90"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="lt"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="rt" kind="command" initlabel="virar para direita" color="255 0 0">
			<description>
				<text>
					O agente gira <arg n="1"/> graus para a direita.
				</text>
				<arg-description n="1" name="degs">
					Número de graus que o agente irá girar.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="90"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="rt"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="up" kind="command" initlabel="andar para cima" color="255 0 0">
			<description>
				<text>
					O agente se move <arg n="1"/> passos para cima.
				</text>
				<arg-description n="1" name="steps">
					Número de passos que o agente deve se mover.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="steps" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="up"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="down" kind="command" initlabel="andar para baixo" color="255 0 0">
			<description>
				<text>
					O agente se move <arg n="1"/> passos para baixo.
				</text>
				<arg-description n="1" name="steps">
					Número de passos que o agente deve se mover.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="steps" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="down"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setxy" kind="command" initlabel="modificar xy" color="27 180 225">
			<description>
				<text>Define as coordenadas x e y (posição) de um agente</text>
			</description>
			<BlockConnectors>
				<BlockConnector label="xcor" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
				<BlockConnector label="ycor" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setxy"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setx" kind="command" initlabel="modificar x" color="27 180 225">
			<description>
				<text>
					Define a coordenada x do agente.
				</text>
				<arg-description n="1" name="coord" doc-name="coord">
					O nova coordenada x do agente.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setx"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="sety" kind="command" initlabel="modificar y" color="27 180 225">
			<description>
				<text>
					Define a coordenada y do agente.
				</text>
				<arg-description n="1" name="coord" doc-name="coord">
					A nova coordenada y do agente.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sety"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="home" kind="command" initlabel="ir para o centro" color="255 0 0">
			<description>
				<text>
					Faz este agente ir para o centro do mapa.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="home"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>			
		</BlockGenus>
		
		<BlockGenus name="towards" kind="function" initlabel="towards" color="255 0 0">
			<description>
				<text>
					Retorna o ângulo da posição (<arg n="1"/>, <arg n="2"/>) em relação a este agente.
				</text>
				
				<arg-description n="1" name="xcor">
					A coordenada x do destino.
				</arg-description>
				
				<arg-description n="2" name="ycor">
					A coordenada y do destino.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number">
				</BlockConnector>
				<BlockConnector label="xcor" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
				<BlockConnector label="ycor" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="towards"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>			
		</BlockGenus>
		
		<!-- LOGIC -->
		
		<BlockGenus name="if" kind="command" initlabel="se" color="255 80 0">
			<description>
				<text>
					Se <arg n="1"/> é verdadeiro, o agente irá executar os blocos ligados a <arg n="2"/>
				</text>
				<arg-description n="1" name="test">
					A condição sendo testada.
				</arg-description>
				
				<arg-description n="2" name="then">
					O conjunto de intruções que é executado quando a condição é verdadeira.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="test" connector-kind="socket" connector-type="boolean"></BlockConnector>
				<BlockConnector label="then" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="if"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ifelse" kind="command" initlabel="se senão" color="255 80 0">
			<description>
				<text>
					Executa o primeiro conjunto de comandos se a condição especificada é verdadeira, caso contrário irá executar o segundo conjunto de comandos.
				</text>
				<arg-description n="1" name="test">
					A condição sendo testada.
				</arg-description>
				
				<arg-description n="2" name="then">
					O conjunto de intruções que é executado quando a condição é verdadeira.
				</arg-description>
				
				<arg-description n="3" name="else">
					O conjunto de intruções que é executado quando a condição é falsa.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="test" connector-kind="socket" connector-type="boolean"></BlockConnector>
				<BlockConnector label="then" connector-kind="socket" connector-type="cmd"></BlockConnector>
				<BlockConnector label="else" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ifelse"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="repeat" kind="command" initlabel="repetir" color="255 80 0">
			<description>
				<text>
					Repete um conjunto de comandos <arg n="1"/> vezes.
				</text>
				<arg-description n="1" name="times">
					O número de vezes que os comandos serão repetidos.
				</arg-description>
				
				<arg-description n="2" name="do">
					Os comandos que serão executados.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="times" connector-kind="socket" connector-type="number"></BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="repeat"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
			
			
		<BlockGenus name="or" kind="function" initlabel="ou" color="15 20 220">
			<description>
				<text>
					Retorna verdeiro se uma ou ambas as condições são verdadeiras.
				</text>
				<arg-description n="2" doc-name="condition 1">
					A primeira condição que deve ser verdadeira.
				</arg-description>
				<arg-description n="3" doc-name="condition 2">
					A segunda condição que deve ser verdadeira.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="or"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="and" kind="function" initlabel="e" color="15 20 220">
			<description>
				<text>
					Retorna verdadeiro se ambas as condições são verdadeiras.
				</text>
				<arg-description n="2" doc-name="condition 1">
					A primeira condição que deve ser verdadeira.
				</arg-description>
					<arg-description n="3" doc-name="condition 2">
					A segunda condição que deve ser verdadeira.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="and"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="not" kind="function" initlabel="não" color="15 20 220">
			<description>
				<text>
					Retorna o oposto de <arg n="1"/>.
				</text>
				<arg-description n="1" doc-name="boolean">
					O booleano (<em>true</em> or <em>false</em>) que será invertido.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="not"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="hatch" kind="command" initlabel="reprodução" color="255 80 0">
			<description>
				<text>
					Todos os agentes fazem um filho que é exatamente como eles.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hatch"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="hatch-and-do" kind="command" initlabel="reprodução" color="255 80 0">
			<description>
				<text>
					Todos os agentes fazem um filho que é exatamente como eles e executa alguns comandos. 
				</text>
				<arg-description n="1" name="do">
					Os comandos que serão executados.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hatch-and-do"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="0"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="0"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="die" kind="command" initlabel="morrer" color="255 80 0" is-terminator="yes">
			<description>
				<text>
					O agente para de executar blocos e desaparece do mapa.
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="die"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		
		<BlockGenus name="ask-agents" kind="command" initlabel="ask agents" color="255 80 0">
			<description>
				<text>
					Se <arg n="1"/> é o número ID de um agente vivo, este agente irá executar os blocos ligados a <arg n="2"/>
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente que irá executar os comandos.
				</arg-description>
				<arg-description n="2" name="then">
					O conjunto de instruções que é executado pelo agente.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ask-agents"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ask-agent" kind="command" initlabel="ask agent" color="255 80 0">
			<description>
				<text>
					Se <arg n="1"/> é o número ID de um agente vivo, este agente irá executar os blocos ligados a <arg n="2"/>
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente que irá executar os comandos.
				</arg-description>
				<arg-description n="2" name="then">
					O conjunto de instruções que é executado pelo agente.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ask-turtle"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="stop" kind="command" initlabel="parar" color="255 80 0" is-terminator="yes">
			<description>
				<text>
					Sai do procedimento ao qual este comando está ligado. <note>Este comando deve estar ligado a um procedimento.</note>
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="stop"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="output" kind="command" initlabel="saída" color="255 80 0" is-terminator="yes">
			<description>
				<text>
					Faz o procedimento retornar <arg n="1"/>.
				</text>
				<arg-description n="1" doc-name="value">
					O valor que será retornado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="output"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="wait" kind="command" initlabel="esperar" color="255 80 0">
            <description> 
                <text>
                    Pausa a execução por um ciclo.
                </text>
            </description>
            <BlockConnectors>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="wait"></LangSpecProperty>
                <LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
		
		<BlockGenus name="collidee" kind="data" initlabel="colidido" color="128 128 128">
			<description>
				<text>
					O número ID do agente que sofreu a colisão.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
				<LangSpecProperty key="is-special-variable" value="yes"></LangSpecProperty>
				<LangSpecProperty key="scope" value="local"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-collision"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>

		
		<BlockGenus name="switch" kind="command" initlabel="caso" color="255 80 0">
			<description>
				<text>
					Executa um conjunto de comandos com base em um valor. 
				</text>
				
				<arg-description n="1" name="value">
					O valor que será testado.
				</arg-description>
				
				<arg-description n="2" name="case">
					O primeiro caso para o valor.
				</arg-description>
				
				<arg-description n="3" name="do">
					O conjunto de instruções que será executado no primeiro caso.
				</arg-description>
				
				<arg-description n="4" name="default">
					O conjunto de instruções que será executado se nenhum caso for verdadeiro.
				</arg-description>
				
			</description>
			
			<BlockConnectors>
				<BlockConnector label="value" connector-kind="socket" connector-type="poly"></BlockConnector>
				<BlockConnector label="case" connector-kind="socket" connector-type="poly" is-expandable="yes" expand-group="1"></BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd" expand-group="1"></BlockConnector>
				<BlockConnector label="default" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="switch"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="count-everyone-with" kind="function" initlabel="contar todos com" color="255 0 255">
			<description>
				<text>
					Conta todos os agentes que satisfazem uma determinada condição.
				</text>
				<arg-description n="1" name="condition" doc-name="condition">
					A condição que o agente deve satisfazer para ser contado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="count-everyone-with"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="0"></LangSpecProperty>
				<LangSpecProperty key="inline-stack-type" value="breed"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="0"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="count-everyone" kind="function" initlabel="contar todos" color="255 0 255">
			<description>
				<text>
					Retorna o número de agentes que estão vivos.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" position-type="mirror" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="count-everyone"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="0"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- OTHER AGENTS -->
		
		<BlockGenus name="smell" kind="function" initlabel="farejar" color="101 20 200">
			<description>
				<text>
					Retorna o número de agentes que estão a <arg n="1"/> de um determinado agente.
				</text>
				<arg-description n="1" doc-name="radius">
					O raio do faro do agente. 
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="radius" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="smell"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="smell-with" kind="function" initlabel="farejar com" color="101 20 200">
			<description>
				<text>
					Retorna o número de agentes que estão a <arg n="1"/> de um agente e satisfazem a condição <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="radius">
					O raio do faro do agente. 
				</arg-description>
				<arg-description n="2" doc-name="condition">
					A condição que os agentes farejados devem satisfazer.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="radius" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="condition" connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="smell-with"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="1"></LangSpecProperty>
				<LangSpecProperty key="inline-stack-type" value="breed"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="smell-list" kind="function" initlabel="farejar lista" color="101 20 200">
			<description>
				<text>
					Retorna uma lista com os números ID do agentes que estão a <arg n="1"/> de um determinado agente.
				</text>
				<arg-description n="1" doc-name="radius">
					O raio do faro do agente. 
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number-list"></BlockConnector>
				<BlockConnector label="radius" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="smell-list"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="smell-list-with" kind="function" initlabel="farejar lista com" color="128 30 255">
			<description>
				<text>
					Retorna uma lista com os números ID do agentes que estão a <arg n="1"/> de um agente e que satisfazem a condição <arg n="2"/>.
				</text>
				<arg-description n="1" name="radius" doc-name="radius">
					O raio do faro do agente. 
				</arg-description>
				<arg-description n="2" name="condition" doc-name="condition">
					A condição que os agentes farejados devem satisfazer.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number-list"></BlockConnector>
				<BlockConnector label="radius" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="condition" connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="smell-list-with"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="1"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="1"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="xcor-of" kind="function" initlabel="coordenada x de" color="128 30 255">
			<description>
				<text>
					Retorna a coordenada x do agente com o número ID <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="xcor-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ycor-of" kind="function" initlabel="coordenada y de" color="128 30 255">
			<description>
				<text>
					Retorna a coordenada y do agente com o número ID <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ycor-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="color-of" kind="function" initlabel="cor de" color="128 30 255">
			<description>
				<text>
					Retorna a cor do agente com o número ID <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-color-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="shape-of" kind="function" initlabel="modelo de" color="128 30 255">
			<description>
				<text>
					Retorna o modelo do agente com o número ID <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="shape-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="height-of" kind="function" initlabel="altitude de" color="128 30 255">
			<description>
				<text>
					Retorna a altitude do agente com o número ID <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="height-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
        <BlockGenus name="scale-of" kind="function" initlabel="tamanho de" color="128 30 255">
            <description>
                <text>
                    Retorna o tamanho do agente com o número ID <arg n="1"/>.
                </text>
                <arg-description n="1" name="ID">
                    O número ID do agente em questão.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
                <BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="scale-of"></LangSpecProperty>
                <LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
		
		<BlockGenus name="scalex-of" kind="function" initlabel="largura de" color="128 30 255">
            <description>
                <text>
                    Retorna a largura do agente com o número ID <arg n="1"/>.
                </text>
                <arg-description n="1" name="ID">
                    O número ID do agente em questão.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
                <BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="scalex-of"></LangSpecProperty>
                <LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
        
        <BlockGenus name="scaley-of" kind="function" initlabel="comprimento de" color="128 30 255">
            <description>
                <text>
                    Retorna o comprimento do agente com o número ID <arg n="1"/>.
                </text>
                <arg-description n="1" name="ID">
                    O número ID do agente em questão.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
                <BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="scaley-of"></LangSpecProperty>
                <LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
        
        <BlockGenus name="scalez-of" kind="function" initlabel="altura de" color="128 30 255">
            <description>
                <text>
                    Retorna a altura do agente com o número ID <arg n="1"/>.
                </text>
                <arg-description n="1" name="ID">
                    O número ID do agente em questão.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
                <BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="scalez-of"></LangSpecProperty>
                <LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
		
		<BlockGenus name="heading-of" kind="function" initlabel="direção de" color="128 30 255">
			<description>
				<text>
					Retorna a direção do agente com o número ID <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="heading-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="breed-of" kind="function" initlabel="breed of" color="128 30 255">
			<description>
				<text>
					Retorna a raça do agente com o número ID <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="breed-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="kill" kind="command" initlabel="matar" color="128 30 255">
			<description>
				<text>
					Mata o agente com o número ID <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="kill"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- String Functions or Commands -->
		
		<BlockGenus name="say" kind="command" initlabel="falar" color="45 201 255">
			<description>
				<text>
					Faz com que o agente "fale" a string fornecida através de um balão.
				</text>
				<arg-description n="1" name="string" doc-name="string">
					A string que será dita.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="say"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="set-status" kind="command" initlabel="definir status" color="45 201 255">
			<description>
				<text>
					Mostra o texto anexado a este bloco no painel inferior da tela.  
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-status"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="play" kind="command" initlabel="tocar som" color="150 255 107">
			<description>
				<text>
					Faz com que o agente reproduza o som <arg n="1"/>.  Escreva um desses nomes (bird, boing, claps, cork, cow, glass, hit, knock, laugh, scratch, smellrat, test) em um bloco string e ligue-o a este comando.  
				</text>
				<arg-description n="1" name="name">
					O nome (string) do som que será reproduzido.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="play"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>		
		
		<BlockGenus name="newline" kind="data" initlabel="nova linha" color="45 201 255">
			<description>
				<text>
					Adiciona uma linha ao texto.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="\n"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>	
		
		<BlockGenus name="to-string" kind="function" initlabel="em string" color="45 201 255">
			<description>
				<text>
					Transforma o bloco anexado em string.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="string"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="to-string"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>	
		
		<BlockGenus name="string-append" kind="function" initlabel="+" color="45 201 255">
			<description>
				<text>
					Adiciona <arg n="3"/> no final de <arg n="2"/>.
				</text>
				<arg-description n="2" doc-name="first">
					A string a qual será adicionado <arg n="3"/>.
				</arg-description>
				<arg-description n="3" doc-name="second">
					A string que será adicionada a <arg n="2"/>.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="string" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="string" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sentence"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>	
		
		<!-- List Functions or Commands -->
		
				
		<BlockGenus name="list" kind="function" initlabel="lista" color="255 80 70">
			<description>
				<text>
					Cria uma lista a partir de dois itens.
				</text>
				<arg-description n="1" name="item" doc-name="first item">
					O primeiro item.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="poly-list"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="list"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="add-to-list" kind="function" initlabel="adicionar a lista" color="255 80 70">
			<description>
				<text>
					Adiciona um item a uma lista.
				</text>
				<arg-description n="1" name="list" doc-name="list">
					A lista em questão.
				</arg-description>
				<arg-description n="2" name="number" doc-name="number">
					O item que será adicionado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="poly-list"></BlockConnector>
				<BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
				<BlockConnector label="item" connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sentence"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="length" kind="function" initlabel="tamanho" color="255 80 70">
			<description>
				<text>
					Retorna o tamanho da lista.
				</text>
				<arg-description n="1" name="list" doc-name="list">
					A lista em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="length"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="first" kind="function" initlabel="primeiro" color="255 80 70">
			<description>
				<text>
					Retorna o primeiro item de uma lista.
				</text>
				<arg-description n="1" name="list" doc-name="list">
					A lista em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="poly"></BlockConnector>
				<BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="first"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="get-list-item" kind="function" initlabel="retornar item da lista" color="255 80 70">
			<description>
				<text>
					Retorna um item de uma lista.
				</text>
				<arg-description n="1" name="list" doc-name="list">
					A lista em questão.
				</arg-description>
				<arg-description n="2" name="index" doc-name="index">
					O índice do item que será retornado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="poly"></BlockConnector>
				<BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
				<BlockConnector label="index" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="item"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pick-list-item" kind="function" initlabel="pegar item da lista" color="255 80 70">
            <description>
                <text>
                    Pega o item de uma lista.
                </text>
                <arg-description n="1" name="list" doc-name="list">
                    A lista em questão.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector label="" connector-kind="plug" connector-type="poly"></BlockConnector>
                <BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="pick"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
		
		<!-- VARIABLES -->
		
		<BlockGenus name="agent-var-boolean" kind="variable" initlabel="booleano do agente" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Retorna o valor de uma variável booleana (<em>true</em> or <em>false</em>) do agente. <note>Todo agente tem um valor diferente dado uma variável de agente.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="boolean" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="boolean"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-var-boolean-list" kind="variable" initlabel="lista de booleano do agente" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Retorna uma lista de booleanos do agente. <note>Todo agente tem um valor diferente dado uma variável de agente.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="boolean-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="boolean-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="agent-var-number" kind="variable" initlabel="número do agente" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Retorna o valor de uma variável numérica do agente. <note>Todo agente tem um valor diferente dado uma variável de agente.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="inc">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tinct"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="number"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-var-number-list" kind="variable" initlabel="lista de números do agente" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Retorna uma lista de números do agente. <note>Todo agente tem um valor diferente dado uma variável de agente.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="number-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-var-string" kind="variable" initlabel="string do agente" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Retorna o valor de uma string do agente. <note>Todo agente tem um valor diferente dado uma variável de agente.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="string"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-var-string-list" kind="variable" initlabel="lista de string do agente" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Retorna uma lista de string do agente. <note>Todo agente tem um valor diferente dado uma variável de agente.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="string-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="global-var-boolean" kind="variable" initlabel="booleano global" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Retorna o valor de um booleano (<em>true</em> or <em>false</em>) global. 
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="scope" value="global"></LangSpecProperty>
				<LangSpecProperty key="type" value="boolean"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="global-var-boolean-list" kind="variable" initlabel="lista global de booleanos" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Retorna uma lista de booleanos global.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="boolean-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="global"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="boolean-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="global-var-number" kind="variable" initlabel="número global" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Retorna o valor de uma variável numérica global. 
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number-inv"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="inc">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-incglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="scope" value="global"></LangSpecProperty>
				<LangSpecProperty key="type" value="number"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="global-var-number-list" kind="variable" initlabel="lista global de números" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Retorna uma lista de números global.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="global"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="number-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
	
		<BlockGenus name="global-var-string" kind="variable" initlabel="string global" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Retorna o valor de uma string global. 
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="scope" value="global"></LangSpecProperty>
				<LangSpecProperty key="type" value="string"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="global-var-string-list" kind="variable" initlabel="lista global de strings" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Retorna uma lista de strings global.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="global"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="string-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- MATH -->
		
		<BlockGenus name="pi" kind="function" initlabel="π" color="255 0 255">
			<description>
				<text>
					Retorna o valor de PI (aproximadamente 3.14).
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pi"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="e" kind="function" initlabel="e" color="255 0 255">
			<description>
				<text>
					Retorna o número neperiano <em>e</em>, que é aproximadamente 2.718.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="e"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="sum" kind="function" initlabel="+" color="15 20 220">
			<description>
				<text>
					Retorna a soma de dois números (<arg n="1"/> + <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left number">
				</arg-description>
				<arg-description n="2" doc-name="right number">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sum"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="difference" kind="function" initlabel="-" color="15 20 220">
			<description>
				<text>
					Retorna a diferença entre dois números (<arg n="1"/> - <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left number">
				</arg-description>
				<arg-description n="2" doc-name="right number">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="difference"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="product" kind="function" initlabel="x" color="15 20 220">
			<description>
				<text>
					Retorna o produto de dois números (<arg n="1"/> x <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left value">
				</arg-description>
				<arg-description n="2" doc-name="right value">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="product"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="quotient" kind="function" initlabel="÷" color="15 20 220">
			<description>
				<text>
					Retorna o quociente de dois números (<arg n="1"/> ÷ <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left value">
				</arg-description>
				<arg-description n="2" doc-name="right value">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="quotient"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="equals" kind="function" initlabel="=" color="15 20 220">
			<description>
				<text>
					Determina se duas quantidades são iguais (<arg n="1"/> = <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left value">
				</arg-description>
				<arg-description n="2" doc-name="right value">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="equals"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="not-equals" kind="function" initlabel="≠" color="15 20 220">
			<description>
				<text>
					Determina se duas quantidades são diferentes (<arg n="1"/> != <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left value">
				O primeiro valor que será comparado.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				O segundo valor que será comparado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="not-equals"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="lessthan" kind="function" initlabel="&lt;" color="15 20 220">
			<description>
				<text>
					Retorna verdadeiro se <arg n="1"/> é menor que <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="left value">
				O primeiro valor que será comparado.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				O segundo valor que será comparado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="less-than"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="lessthanorequalto" kind="function" initlabel="≤" color="15 20 220">
			<description>
				<text>
					Retorna verdadeiro se <arg n="1"/> é menor ou igual a <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="left value">
				O primeiro valor que será comparado.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				O segundo valor que será comparado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="less-than-or-equal-to"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="greaterthan" kind="function" initlabel="&gt;" color="15 20 220">
			<description>
				<text>
					Retorna verdadeiro se <arg n="1"/> é maior que <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="left value">
				O primeiro valor que será comparado.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				O segundo valor que será comparado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="greater-than"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="greaterthanorequalto" kind="function" initlabel="≥" color="15 20 220">
			<description>
				<text>
					Retorna verdadeiro se <arg n="1"/> é maior ou igual a <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="left value">
				O primeiro valor que será comparado.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				O segundo valor que será comparado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="greater-than-or-equal-to"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="atan" kind="function" initlabel="arcotangente" color="15 20 220">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="x" connector-kind="socket" connector-type="number"></BlockConnector>
				<BlockConnector label="y" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="atan"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="random" kind="function" initlabel="aleatório" color="15 20 220">
			<description>
				<text>
					Retorna um número inteiro maior ou igual a 1 e menor ou igual a <arg n="1"/>.
				</text>
				<arg-description n="1" doc-name="number">
					O maior número que pode ser retornado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="random"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="round" kind="function" initlabel="arredondar" color="15 20 220">
			<description>
				<text>
					Arredonda <arg n="1"/> para o inteiro mais próximo.
				</text>
				<arg-description n="1" doc-name="number">
					O número que será arredondado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="round"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="int" kind="function" initlabel="parte inteira" color="15 20 220">
			<description>
				<text>
					Retorna a parte inteira do número.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="int"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="remainder" kind="function" initlabel="resto" color="15 20 220">
			<description>
				<text>
					Retorna o resto de <arg n="2"/> dividido por <arg n="3"/>.
				</text>
				<arg-description n="2" doc-name="first">
					Dividendo.
				</arg-description>
				
				<arg-description n="3" doc-name="second">
					Divisor.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="remainder"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="min" kind="function" initlabel="menor" color="15 20 220">
			<description>
				<text>
					Retorna o menor valor dentre dois números.	
				</text>
				<arg-description n="2" doc-name="number 1">
					O primeiro número que será comparado.
				</arg-description>
				<arg-description n="3" doc-name="number 2">
					O segundo número que será comparado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="min"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="max" kind="function" initlabel="maior" color="15 20 220">
			<description>
				<text>
					Retorna o maior valor dentre dois números.	
				</text>
				<arg-description n="2" doc-name="number 1">
					O primeiro número que será comparado.
				</arg-description>
				<arg-description n="3" doc-name="number 2">
					O segundo número que será comparado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="max"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="power" kind="function" initlabel="potência" color="15 20 220">
			<description>
				<text>
					Retorna o resultado de um número elevado pelo outro (<arg n="1"/> ^ <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="base">
					Base.
				</arg-description>
				<arg-description n="2" doc-name="exponent">
					Expoente.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="power"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="abs" kind="function" initlabel="módulo" color="15 20 220">
			<description>
				<text>
				Retorna o valor absoluto de um número.
				</text>
				<arg-description n="1" doc-name="number">
					O número, cujo valor absoluto a fução retornará.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="abs"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="sqrt" kind="function" initlabel="raiz quadrada" color="15 20 220">
			<description>
				<text>
					Retorna a raiz quadrada de <arg n="1"/>.
				</text>
				<arg-description n="1" doc-name="number">
					O número, cuja raiz quadrada a fução retornará.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sqrt"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="sin" kind="function" initlabel="seno" color="15 20 220">
			<description>
				<text>
					A função trigonométrica que retorna o seno do ângulo especificado. 
				</text>
				<arg-description n="1" name="degs">
					O ângulo em graus, cujo valor seno será retornado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sin"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="cos" kind="function" initlabel="cosseno" color="15 20 220">
			<description>
				<text>
					A função trigonométrica que retorna o cosseno do ângulo especificado. 
				</text>
				<arg-description n="1" name="degs">
					O ângulo em graus, cujo valor cosseno será retornado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="cos"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="tan" kind="function" initlabel="tangente" color="15 20 220">
			<description>
				<text>
					A função trigonométrica que retorna a tangente do ângulo especificado. 
				</text>
				<arg-description n="1" name="degs">
					O ângulo em graus, cujo valor tangente será retornado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="tan"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="asin" kind="function" initlabel="arcosseno" color="15 20 220">
			<description>
				<text>
					A função trigonométrica que retorna o arcosseno do número especificado.  Todos os ângulos são retornados em graus.
				</text>
				<arg-description n="1" doc-name="number">
					O número, cujo arcosseno será retornado.
				</arg-description>
				</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="asin"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="acos" kind="function" initlabel="arcocosseno" color="15 20 220">
			<description>
				<text>
					A função trigonométrica que retorna o arcocosseno do número especificado.  Todos os ângulos são retornados em graus.
				</text>
				<arg-description n="1" doc-name="number">
					O número, cujo arcocosseno será retornado.
				</arg-description>
				</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="acos"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="log" kind="function" initlabel="logaritmo" color="15 20 220">
			<description>
				<text>
					Retorna o logaritmo na base 10 de <arg n="1"/>. <note>O valor de retorno <i>x</i> será o número pelo qual 10 é elevado para resultar em <arg n="1"/>.</note>
				</text>
				<arg-description n="1" doc-name="number">
					O número, cujo logaritmo na base 10 será retornado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="log"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ln" kind="function" initlabel="logaritmo neperiano" color="15 20 220">
			<description>
				<text>
					Retorna o logaritmo neperiano de <arg n="1"/>. <note>O valor de retorno <i>x</i> será o valor pelo qual o número neperiano e, que é aproximadamente 2.718, é elevado para resultar em <arg n="1"/>.</note>
				</text>
				<arg-description n="1" doc-name="number">
					O número, cujo logaritmo neperiano será retornado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ln"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- TERRAIN --> 
		
		<BlockGenus name="pc-ahead" kind="function" initlabel="cor do patch a frente" color="40 255 0">
			<description>
             	<text>Retorna a cor do patch um passo a frente do agente.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pc-ahead"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pc" kind="function" initlabel="cor do patch" color="40 255 0">
			<description>
             	<text>Retorna a cor do patch onde o agente se encontra.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pc"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="stamp" kind="command" initlabel="marcar" color="0 236 0">
			<description>
             	<text>Muda a cor do patch onde o agente se encontra para <arg n="1"/>.</text>
				<arg-description n="1" name="color">
					A cor usada para marcar o patch.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="color" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="red" label="red"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="stamp"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="patch-height" kind="function" initlabel="altura do patch" color="40 255 0">
			<description>
             	 <text>Retorna a altura do patch onde o agente se encontra.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="patch-height"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ph-ahead" kind="function" initlabel="altura do patch a frente" color="40 255 0">
			<description>
             	 <text>Retorna a altura do patch um passo a frente do agente.</text>
             </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ph-ahead"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
				
		<BlockGenus name="dig" kind="command" initlabel="cavar" color="0 236 0">
			<description>
             	<text>Diminui a altura do patch onde o agente se encontra, criando paredes se necessário.</text>
				<arg-description n="1" name="height">
					O quanto a altura do patch deve diminuir.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="height" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="dig"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="build" kind="command" initlabel="construir" color="0 236 0">
			<description>
             	<text>Aumenta a altura do patch onde o agente se encontra, criando paredes se necessário.</text>
				<arg-description n="1" name="height">
					O quanto a altura do patch deve aumentar.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="height" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="build"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>		
		
		<BlockGenus name="stomp" kind="command" initlabel="pisotear" color="0 236 0">
			<description>
             	<text>Diminui a altura do patch onde o agente se encontra, conectando suavemente as arestas dos patches vizinhos.</text>
				<arg-description n="1" name="height">
					O quanto a altura do patch deve diminuir.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="height" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="stomp"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="yank" kind="command" initlabel="puxar" color="0 236 0">
			<description>
             	<text>Aumenta a altura do patch onde o agente se encontra, conectando suavemente as arestas dos patches vizinhos.</text>
				<arg-description n="1" name="height">
					O quanto a altura do patch deve aumentar.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="height" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="yank"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="show-patches" kind="command" initlabel="mostrar patches" color="0 236 0">
			<description>
             	<text>Mostra os patches, tornando o terreno visível.</text>
            </description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-patches"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="hide-patches" kind="command" initlabel="esconder patches" color="0 236 0">
			<description>
             	<text>Esconde os patches, tornando o terreno invisível.</text>
            </description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hide-patches"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="wall-ahead" kind="function" initlabel="obstáculo adiante?" color="40 255 0">
			<description>
             	<text>Retorna verdadeiro se a altura do patch adiante é maior que a altura do patch onde o agente se encontra.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="wall-ahead"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="slope-ahead" kind="function" initlabel="inclinação adiante" color="40 255 0">
			<description>
             	<text>Retorna o valor da inclinação entre o patch onde o agente se encontra e o patch adiante. Uma inclinação positiva significa que há uma elevação adiante, uma inclinação negativa implica em uma declinação e inclinação zero mostra que o terreno é plano.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="slope-ahead"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- TRAITS -->
		
		<BlockGenus name="setc" kind="command" initlabel="modificar cor" color="27 180 225">
			<description>
				<text>Modifica a cor do agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="red" label="red"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setc"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="color" kind="function" initlabel="cor" color="44 220 255">
			<description>
				<text>Retorna a cor do agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-color"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="seth" kind="command" initlabel="modificar direção" color="27 180 225">
			<description>
				<text>Modifica a direção deste agente para o valor especificado em graus.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="seth"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setheight" kind="command" initlabel="modificar altitude" color="27 180 225">
			<description>
				<text>Modifica a altitude deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-height"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="heading" kind="function" initlabel="direção" color="44 220 255">
			<description>
				<text>Retorna o ângulo, em graus, da direção que o agente está seguindo.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="heading"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="xcor" kind="function" initlabel="coordenada x" color="44 220 255">
			<description>
				<text>Retorna a coordenada x deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="xcor"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ycor" kind="function" initlabel="coordenada y" color="44 220 255">
			<description>
				<text>Retorna a coordenada y deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ycor"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="height" kind="function" initlabel="altitude" color="44 220 255">
			<description>
				<text>Retorna a altitude deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="height"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="scale" kind="function" initlabel="tamanho" color="44 220 255">
			<description>
				<text>Retorna o tamanho, ou escala, deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-scale"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="scalex" kind="function" initlabel="largura" color="44 220 255">
			<description>
				<text>Retorna a largura deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-scalex"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>		
		
		<BlockGenus name="scaley" kind="function" initlabel="altura" color="44 220 255">
			<description>
				<text>Retorna a altura deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-scaley"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>		
		
		<BlockGenus name="scalez" kind="function" initlabel="comprimento" color="44 220 255">
			<description>
				<text>Retorna o comprimento deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-scalez"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setscale" kind="command" initlabel="modificar tamanho" color="27 180 225">
			<description>
				<text>Modifica do tamanho deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-scale"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setscalex" kind="command" initlabel="modificar largura" color="27 180 225">
			<description>
				<text>Modifica a largura deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-scalex"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setscaley" kind="command" initlabel="modificar altura" color="27 180 225">
			<description>
				<text>Modifica a altura deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-scaley"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setscalez" kind="command" initlabel="modificar comprimento" color="27 180 225">
			<description>
				<text>Modifica o comprimento deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-scalez"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="who" kind="function" initlabel="ID" color="44 220 255">
			<description>
				<text>Retorna o número ID deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="who"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="penup" kind="command" initlabel="levanta caneta" color="27 180 225">
			<description>
				<text>"Levanta a caneta" do agente de modo que o agente não marque todo patch pelo qual ele se mover.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pu"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pendown" kind="command" initlabel="abaixa caneta" color="27 180 225">
			<description>
				<text>"Abaixa a caneta" do agente de modo que o agente marque todo patch pelo qual ele se mover.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pd"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pendown?" kind="function" initlabel="caneta abaixada?" color="44 220 255">
			<description>
				<text>Retorna verdadeiro se a caneta deste agente estiver abaixada. Caso contrário, retorna falso.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pendown?"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="shown?" kind="function" initlabel="visível?" color="44 220 255">
			<description>
				<text>Retorna verdadeiro se este agente estiver visível. Caso contrário, retorna falso.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="shown?"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="alive?" kind="function" initlabel="vivo?" color="128 30 255">
			<description>
				<text>Retorna verdadeiro se este agente com o número ID dado estiver vivo. Caso contrário, retorna falso.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" label="ID"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="alive?-of"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="shape" kind="function" initlabel="modelo" color="44 220 255">
			<description>
				<text>Retorna o modelo desta agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="shape"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="breed" kind="function" initlabel="raça" color="44 220 255">
			<description>
				<text>Retorna a raça deste agente.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="breed"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setshape" kind="command" initlabel="modificar modelo" color="27 180 225">
			<description>
				<text>
					Modifica o modelo deste agente.
				</text>
				<arg-description n="1" name="string" doc-name="string">
					O novo modelo.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setshape"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setbreed" kind="command" initlabel="modificar raça" color="27 180 225">
			<description>
				<text>
					Modifica a raça deste agente.
				</text>
				<arg-description n="1" name="string" doc-name="string">
					O nome da nova raça.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setbreed"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="hideagent" kind="command" initlabel="esconder agente" color="27 180 225">
			<description>
				<text>Esconde este agente, tornando-o invisível.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ht"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="showagent" kind="command" initlabel="mostra agente" color="27 180 225">
			<description>
				<text>Mostra este agente, tornando-o visível se ele estava escondido.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="st"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setskinon" kind="command" initlabel="textura do modelo ativada" color="27 180 225">
			<description>
				<text>Desenha a textura do modelo deste agente, cobrindo a cor do mesmo.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-skin"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setskinoff" kind="command" initlabel="textura do modelo desativada" color="27 180 225">
			<description>
				<text>Para de desenhar a textura do modelo deste agente. Ao invés disso, colore o modelo de acordo com a variável "cor" deste agente.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="no-show-skin"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		
		<!-- CONTROLS -->
		
		<BlockGenus name="keyboard-a" kind="data" initlabel="tecla a?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "a" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-a"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-b" kind="data" initlabel="tecla b?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "b" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-b"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-c" kind="data" initlabel="tecla c?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "c" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-c"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-d" kind="data" initlabel="tecla d?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "d" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-d"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-e" kind="data" initlabel="tecla e?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "e" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-e"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-f" kind="data" initlabel="tecla f?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "f" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-f"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-g" kind="data" initlabel="tecla g?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "g" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-g"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-h" kind="data" initlabel="tecla h?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "h" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-h"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-i" kind="data" initlabel="tecla i?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "i" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-i"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-j" kind="data" initlabel="tecla j?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "j" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-j"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-k" kind="data" initlabel="tecla k?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "k" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-k"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-l" kind="data" initlabel="tecla l?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "l" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-l"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-m" kind="data" initlabel="tecla m?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "m" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-m"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-n" kind="data" initlabel="tecla n?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "n" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-n"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-o" kind="data" initlabel="tecla o?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "o" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-o"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-p" kind="data" initlabel="tecla p?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "p" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-p"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-q" kind="data" initlabel="tecla q?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "q" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-q"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-r" kind="data" initlabel="tecla r?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "r" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-r"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-s" kind="data" initlabel="tecla s?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "s" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-s"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-t" kind="data" initlabel="tecla t?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "t" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-t"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-u" kind="data" initlabel="tecla u?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "u" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-u"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-v" kind="data" initlabel="tecla v?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "v" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-v"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-w" kind="data" initlabel="tecla w?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "w" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-w"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-x" kind="data" initlabel="tecla x?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "x" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-x"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-y" kind="data" initlabel="tecla y?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "y" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-y"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-z" kind="data" initlabel="tecla z?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "z" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-z"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-1" kind="data" initlabel="tecla 1?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "1" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-1"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-2" kind="data" initlabel="tecla 2?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "2" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-2"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-3" kind="data" initlabel="tecla 3?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "3" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-3"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-4" kind="data" initlabel="tecla 4?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "4" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-4"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-5" kind="data" initlabel="tecla 5?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "5" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-5"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-6" kind="data" initlabel="tecla 6?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "6" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-6"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-7" kind="data" initlabel="tecla 7?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "7" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-7"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-8" kind="data" initlabel="tecla 8?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "8" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-8"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-9" kind="data" initlabel="tecla 9?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "9" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-9"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-0" kind="data" initlabel="tecla 0?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a tecla "0" estiver sendo pressionada. <note>As teclas possuem um menu que permite selecionar outros caracteres.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-0"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-up" kind="data" initlabel="seta para cima?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a seta para cima estiver sendo pressionada. <note>As teclas referentes as setas possuem um menu que permite selecionar outras setas.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-up"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-down" kind="data" initlabel="seta para baixo?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a seta para baixo estiver sendo pressionada. <note>As teclas referentes as setas possuem um menu que permite selecionar outras setas.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-down"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-left" kind="data" initlabel="seta para esquerda?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a seta para esquerda estiver sendo pressionada. <note>As teclas referentes as setas possuem um menu que permite selecionar outras setas.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-left"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-right" kind="data" initlabel="seta para direita?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a seta para direita estiver sendo pressionada. <note>As teclas referentes as setas possuem um menu que permite selecionar outras setas.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-right"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-space" kind="data" initlabel="barra de espaço?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se a barra de espaço estiver sendo pressionada. 
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-space"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-xaxis" kind="function" initlabel="eixo x do joystick" color="255 255 0">
			<description>
				<text>
					Retorna a posição atual no eixo x do joystick.  Retorna -1 se estiver na posição mais a esquerda e +1 na posição mais a direita.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-xaxis"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="joy-yaxis" kind="function" initlabel="eixo y do joystick" color="255 255 0">
			<description>
				<text>
					Retorna a posição atual no eixo y do joystick.  Retorna -10 se estiver na posição mais a esquerda e +10 na posição mais a direita.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-yaxis"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-radius" kind="function" initlabel="raio do joystick" color="255 255 0">
			<description>
				<text>
					Retorna o raio atual da posição do joystick. Retorna 0 quando o joystick está no centro e 1 quando está completamente desviado em qualquer direção.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-radius"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-angle" kind="function" initlabel="ângulo do joystick" color="255 255 0">
			<description>
				<text>
					Retorna o ângulo em graus no qual o joystick está. Retorna 0 quando está no topo e 180 quando está na base.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-angle"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="dpad-angle" kind="function" initlabel="ângulo do direcional" color="255 255 0">
			<description>
				<text>
					Retorna o ângulo em graus do direcional no gamepad.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="dpad-angle"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-button1?" kind="function" initlabel="botão 1?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se o primeiro botão do joystick estiver pressionado ou falso caso contrário.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-button-1?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="joy-button2?" kind="function" initlabel="botão 2?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se o segundo botão do joystick estiver pressionado ou falso caso contrário.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-button-2?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-button3?" kind="function" initlabel="botão 3?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se o terceiro botão do joystick estiver pressionado ou falso caso contrário.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-button-3?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-button4?" kind="function" initlabel="botão 4?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se o quarto botão do joystick estiver pressionado ou falso caso contrário.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-button-4?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="set-agent-camera" kind="command" initlabel="modificar câmera do agente" color="255 255 0">
			<description>
				<text>
					Se <arg n="1"/> é o número ID de um agente vivo, este agente irá executar os blocos liagados a <arg n="2"/>
				</text>
				<arg-description n="1" name="ID">
					O número ID do agente em questão.
				</arg-description>
				
				<arg-description n="2" name="then">
					O conjunto de instruções que será executado pelo agente em questão.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-agent-camera"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="who-of-agent-camera" kind="function" initlabel="ID da câmera" color="255 255 0">
			<description>
				<text>
					Retorna o número ID do agente que está sendo seguido pela câmera.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="who-of-agent-camera"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="over-shoulder?" kind="function" initlabel="sobre o ombro?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se o modo de câmera "sobre o ombro" está ativado.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="over-shoulder?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="over-shoulder-on" kind="command" initlabel="sobre o ombro" color="255 255 0">
			<description>
				<text>
				Ativa o modo de câmera "sobre o ombro".
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="over-shoulder-on"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="agent-eye?" kind="function" initlabel="primeira pessoa?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se o modo de câmera "primeira pessoa" está ativado.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-eye?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-eye-on" kind="command" initlabel="primeira pessoa" color="255 255 0">
			<description>
				<text>
					Ativa o modo de câmera "primeira pessoa".
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-eye-on"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="aerial?" kind="function" initlabel="aérea?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se o modo de câmera aérea está ativado.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="aerial?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="aerial-on" kind="command" initlabel="aérea" color="255 255 0">
			<description>
				<text>
					Ativa o modo de câmera aérea.
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="aerial-on"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="overhead?" kind="function" initlabel="sobre a cabeça?" color="255 255 0">
			<description>
				<text>
					Retorna verdadeiro se o modo de câmera "sobre a cabeça" está ativado.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="overhead?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="overhead-on" kind="command" initlabel="ativar sobre a cabeça" color="255 255 0">
			<description>
				<text>
					Ativa o modo de câmera "sobre a cabeça". Esta é uma visão 2d aérea de todo o cenário, com a visualização do mapa ativada.	
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="overhead-on"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="overhead-off" kind="command" initlabel="desativar sobre a a cabeça" color="255 255 0">
			<description>
				<text>
					Desativa o modo de câmera "sobre a cabeça" e retorna ao modo de câmera anterior.
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="overhead-off"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		
		<!-- Procedure and parameters -->
		
		<BlockGenus name="procedure" kind="procedure" initlabel="Procedimento" editable-label="yes" label-unique="yes" page-label-enabled="yes" is-starter="yes" color="177 10 255">
			<description>
				<text>
					Define um conjunto de blocos como um procedimento que pode ser chamado por outros blocos.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="caller">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-procedure"></LangSpecProperty>
						<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
						<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-procedure"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="proc-param-number" kind="param" initlabel="parâmetro: número" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="177 10 255">
			<description>
				<text>
					Adiciona um parâmetro numérico ao procedimento.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
						<LangSpecProperty key="scope" value="local"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="type" value="number"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<BlockGenus name="proc-param-boolean" kind="param" initlabel="parâmetro: booleano" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="177 10 255">
			<description>
				<text>
					Adiciona um parâmetro booleano ao procedimento.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
						<LangSpecProperty key="scope" value="local"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="type" value="boolean"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<BlockGenus name="proc-param-string" kind="param" initlabel="parâmetro: string" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="177 10 255">
			<description>
				<text>
					Adiciona um parâmetro do tipo string ao procedimento..
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
						<LangSpecProperty key="scope" value="local"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="type" value="string"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<BlockGenus name="proc-param-list" kind="param" initlabel="parâmetro: lista" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="177 10 255">
			<description>
				<text>
					Adiciona um parâmetro do tipo lista ao procedimento..
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="poly-list"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
						<LangSpecProperty key="scope" value="local"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="type" value="list"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<!-- SETUP AND RUNTIME BLOCKS -->
		
		<!-- NOTE: The genus names "forever", "runonce", and "runforsometime" is duplicated in RunBlockManager.java, 
			if you change this name, make sure to change it there too.  -->
		<BlockGenus name="forever" kind="command" initlabel="sempre" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Quando ativado, os agentes executam os comandos repetidamente. <note>Existem diferentes comandos para cada raça.</note>
				</text>
				<arg-description n="1" name="agents" doc-name="breed">
					A raça dos agentes que estão executando os comandos anexados aqui.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image block-location="southwest" image-editable="yes" width="15" height="15">
					<FileLocation>support/forever_switch_on.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="forever"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-forever"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-forever" kind="command" initlabel="sempre" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Quando ativado, os agentes executam os comandos repetidamente. <note>Existem diferentes comandos para cada raça.</note>
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="forever"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runonce" kind="command" initlabel="executar uma vez" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Quando ativado, os agentes executam os comandos uma vez. <note>Existem diferentes comandos para cada raça.</note>
				</text>
				<arg-description n="1" name="agents" doc-name="breed">
					A raça dos agentes que estão executando os comandos anexados aqui.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image block-location="southwest" image-editable="yes" width="15" height="15">
					<FileLocation>support/forever_switch_on.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="runonce"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-forever"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-once" kind="command" initlabel="executar uma vez" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Quando ativado, os agentes executam os comandos uma vez. <note>Existem diferentes comandos para cada raça.</note>
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="runonce"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runforsometime" kind="command" initlabel="executar" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Quando ativado, os agentes executam os comandos repetidamente por <arg n="1"/> segundos. <note>Existem diferentes comandos para cada raça.</note>
				</text>
				
				<arg-description n="1" name="secs">
					O número de segundos durante os quais os comandos serão executados.
				</arg-description>
				
				<arg-description n="2" name="agents" doc-name="breed">
					A raça dos agentes que estão executando os comandos anexados aqui.
				</arg-description>
			</description>
			<BlockConnectors>
			    <BlockConnector label="secs" connector-kind="socket" connector-type="number">
			    </BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image block-location="southwest" image-editable="yes" width="15" height="15">
					<FileLocation>support/forever_switch_on.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="runforsometime"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-forever"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-sometime" kind="command" initlabel="executar" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Quando ativado, os agentes executam os comandos repetidamente por uma determinada quantidade de segundos <note>Existem diferentes comandos para cada raça.</note>
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="runforsometime"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setup" kind="command" initlabel="setup" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Este bloco serve para organizar blocos que definem as condições iniciais da simulação.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-setup" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-setup" kind="command" initlabel="setup" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Este bloco serve para organizar blocos que definem as condições iniciais da simulação.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="monitor" kind="command" initlabel="monitor" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Um bloco usado para definir um monitor.  Monitores aparecem na tela de execução, onde eles retornam dinamicamente um determinado valor.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-monitor" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-monitor" kind="command" initlabel="monitor" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Um bloco usado para definir um monitor.  Monitores aparecem na tela de execução, onde eles retornam dinamicamente um determinado valor.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="slider" kind="command" initlabel="cursor" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Um bloco usado para definir um cursor. Cursores aparecem na tela de execução, onde você pode mudar dinâmicamente o valor da variável numérica referenciada por eles.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number-inv"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-slider" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-slider" kind="command" initlabel="cursor" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Use o cursor para mudar o valor da variável numérica que ele referencia.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="table" kind="command" initlabel="tabela" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Define uma tabela que aparece na tela de execução. Cada entrada descreve uma progressão no gráfico. Os valores são representados em relação ao tempo.	
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-table" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-table" kind="command" initlabel="tabela" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Use a tabela para monitorar o valor da variável que a tabela referencia.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-runtime-table" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="line-graph" kind="command" initlabel="gráfico de linhas" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Define um gráfico de linhas que aparece na tela de execução. Cada entrada descreve uma progressão no gráfico. Os valores são representados em relação ao tempo.	
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-line-graph" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-line-graph" kind="command" initlabel="gráfico de linhas" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Use o gráfico de linhas para monitorar o valor da variável referenciada pelo gráfico.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-runtime-line-graph" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="bar-graph" kind="command" initlabel="gráfico de barras" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Define um gráfico de barras que aparece na tela de execução. Cada entrada descreve uma progressão no gráfico. Os valores do gráfico podem mudar de acordo com o tempo.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-bar-graph" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-bar-graph" kind="command" initlabel="gráfico de barras" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Use o gráfico de barras para monitorar o valor da variável referenciada pelo gráfico. 
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-runtime-bar-graph" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="clear-all" kind="command" initlabel="limpar tudo" color="139 0 0">
			<description>
				<text>
					Reseta o terreno, tornando-o plano e verde, e destrói todos os agentes do cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ca"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="clear-everyone" kind="command" initlabel="limpar todos" color="139 0 0">
			<description>
				<text>
					Destrói todos os agentes do cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ct"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="clear-patches" kind="command" initlabel="limpar terreno" color="139 0 0">
			<description>
				<text>
					Reseta o terreno, tornando-o plano e verde.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="cp"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="scatter-everyone" kind="command" initlabel="espalhar todos" color="139 0 0">
			<description>
				<text>
					Espalha aleatoriamente todos os agentes pelo terreno.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="scatter-everyone"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="scatter-pc" kind="command" initlabel="espalhar cor" color="139 0 0">
			<description>
				<text>
					Colore aleatoriamente o terreno com base nas proporções fornecidas de vermelho, verde, azul e preto. Se os quatro números forem iguais, o terreno terá aproximadamente a mesma quantidade de patches de cada cor. Se uma cor tiver um valor maior que as outras, esta cor irá aparecer com mais frequência no terreno resultante.
				</text>
				
				<arg-description n="1" name="red">
					A proporção desejada de patches vermelhos.
				</arg-description>
				
				<arg-description n="2" name="green">
					A proporção desejada de patches verdes.
				</arg-description>
				
				<arg-description n="3" name="blue">
					A proporção desejada de patches azuis.
				</arg-description>
				
				<arg-description n="4" name="black">
					A proporção desejada de patches pretos.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="red" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="green" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="blue" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="black" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="scatter-pc"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="set-score" kind="command" initlabel="modificar pontuação" color="230 0 255 ">
			<description>
				<text>
					Modifica a pontuação para o valor fornecido.
				</text>
				<arg-description n="1" name="score" doc-name="score">
					O novo valor da pontuação.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-score"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="score" kind="function" initlabel="pontuação" color="230 0 255 ">
			<description>
				<text>
					Retorna a pontuação atual.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" position-type="mirror" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="score"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="hide-score" kind="command" initlabel="esconder pontuação" color="139 0 0">
			<description>
				<text>
					Esconde a pontuação na barra de status do cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hide-score"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="show-score" kind="command" initlabel="mostrar pontuação" color="139 0 0">
			<description>
				<text>
					Mostra a pontuação na barra de status do cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-score"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="hide-clock" kind="command" initlabel="esconder relógio" color="139 0 0">
			<description>
				<text>
					Esconde o relógio na barra de status do cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hide-clock"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="show-clock" kind="command" initlabel="mostrar relógio" color="139 0 0">
			<description>
				<text>
					Mostra o relógio na barra de status do cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-clock"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="clock" kind="function" initlabel="relógio" color="230 0 255 ">
			<description>
				<text>
					Retorna o número de segundos que se passaram desde que a simulação começou ou que um agente executou o comando "Resetar Relógio".
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" position-type="mirror" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="clock"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="reset-clock" kind="command" initlabel="resetar relógio" color="230 0 255 ">
			<description>
				<text>
					Reseta o valor do relógio de volta para zero.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="reset-clock"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="hide-miniview" kind="command" initlabel="esconder mini-mapa" color="139 0 0">
			<description>
				<text>
					Esconde o mini-mapa do cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hide-miniview"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="show-miniview" kind="command" initlabel="mostrar mini-mapa" color="139 0 0">
			<description>
				<text>
					Mostra o mini-mapa do cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-miniview"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- BREED SPECIFIC BLOCKS -->
		
		<BlockGenus name="create-agents" kind="command" initlabel="criar agentes" label-prefix="create " color="139 0 0">
			<description>
				<text>
				Cria <arg n="1"/> agentes de uma determinada raça.
				</text>
				<arg-description n="1" name="num">
					O número de agentes que será criado.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="num" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="crt-breed"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="include-breed-shape" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="create-and-do" kind="command" initlabel="criar e executar" label-prefix="create " color="139 0 0">
			<description>
				<text>
				Cria <arg n="1"/> agentes de uma determinada raça e faz com que cada um execute os comando especificados.
				</text>
				<arg-description n="1" name="num">
					O número de agentes que será criado.
				</arg-description>
				<arg-description n="2" name="cmd">
					Os comandos que cada agente irá executar.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="num" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10"></DefaultArg>
				</BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="crt-breed-do"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="1"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="include-breed-shape" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
				<LangSpecProperty key="inline-stack-type" value="breed-forever"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="1"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="breed-string" kind="function" initlabel="string da raça" label-prefix="breed: "  color="255 0 255">
			<description>
				<text>
				  	Retorna a string da raça dada.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror">
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="nop"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="count-breeds" kind="function" initlabel="contar" label-prefix="count "  color="128 30 255">
			<description>
				<text>
				  	Retorna o número de agentes desta raça.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror">
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="count-breeds"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="count-breeds-with" kind="function" initlabel="contar se" label-prefix="count "  label-suffix=" with" color="128 30 255">
			<description>
				<text>
				  	Retorna o número de agentes desta raça que satisfazem a condição dada.
				</text>
				<arg-description n="1" doc-name="condition">
					A condição que os agentes devem satisfazer para serem contabilizados.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="condition" connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="count-breeds-with"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="0"></LangSpecProperty>
				<LangSpecProperty key="inline-stack-type" value="breed"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="0"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="scatter-breeds" kind="command" initlabel="espalhar raça" label-prefix="scatter "  color="139 0 0">
			<description>
				<text>
				  	Espalha agentes desta raça pelo cenário.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="scatter-agents"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="collision" kind="command" initlabel="Colisão" color="128 128 128" is-starter="yes" is-terminator="yes" page-label-enabled="yes">
			<description>
				<text>Verifica constantemente se há colisões entre os agentes. Se uma colisão ocorrer, faz com que o colisor execute <arg n="1"/> , e o colidido execute <arg n="2"/>. Qual agente é o colisor e qual é o colidido depende do bloco. Por exemplo, se uma Tartaruga e um Sapo colidirem, o bloco de colisão com "Tartarugas" como primeiro parâmetro e "Sapos" como o segundo parâmetro, irá assumir que a Tartaruga é o colisor collider e o Sapo é o colidido.</text>
				<arg-description n="1" name="me">
				Este é o codigo que o colisor executa.
				</arg-description>
				
				<arg-description n="2" name="agents">
					Este é o código que o colidido executa. O rótulo deste parâmetro determina que raça será a colidida.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="cmd"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-collision" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-collision"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- DYNAMIC BLOCKS -->
		
		<BlockGenus name="ashape" kind="data" initlabel="" color="255 252 138">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image width="64" height="64">
					<FileLocation>/models/animals/turtle/default_icon.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="animals/turtle-default"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="bshape" kind="data" initlabel="" color="255 252 138">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image width="64" height="64">
					<FileLocation>/models/animals/sonic/sonic_icon.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="animals/sonic-sonic"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
	</BlockGenuses>
	
	<BlockFamilies>
		<BlockFamily>
			<FamilyMember>show-score</FamilyMember>
			<FamilyMember>hide-score</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>show-clock</FamilyMember>
			<FamilyMember>hide-clock</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>show-miniview</FamilyMember>
			<FamilyMember>hide-miniview</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>fd</FamilyMember>
			<FamilyMember>bk</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>rt</FamilyMember>
			<FamilyMember>lt</FamilyMember>
		</BlockFamily> 
		<BlockFamily>
			<FamilyMember>up</FamilyMember>
			<FamilyMember>down</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>penup</FamilyMember>
			<FamilyMember>pendown</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>true</FamilyMember>
			<FamilyMember>false</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>min</FamilyMember>
			<FamilyMember>max</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>round</FamilyMember>
			<FamilyMember>int</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>sin</FamilyMember>
			<FamilyMember>cos</FamilyMember>
			<FamilyMember>tan</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>log</FamilyMember>
			<FamilyMember>ln</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>setx</FamilyMember>
			<FamilyMember>sety</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>hideagent</FamilyMember>
			<FamilyMember>showagent</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>setskinon</FamilyMember>
			<FamilyMember>setskinoff</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>over-shoulder-on</FamilyMember>
			<FamilyMember>agent-eye-on</FamilyMember>
			<FamilyMember>aerial-on</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>overhead-on</FamilyMember>
			<FamilyMember>overhead-off</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>overhead?</FamilyMember>
			<FamilyMember>aerial?</FamilyMember>
			<FamilyMember>agent-eye?</FamilyMember>
			<FamilyMember>over-shoulder?</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>joy-button1?</FamilyMember>
			<FamilyMember>joy-button2?</FamilyMember>
			<FamilyMember>joy-button3?</FamilyMember>
			<FamilyMember>joy-button4?</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>joy-xaxis</FamilyMember>
			<FamilyMember>joy-yaxis</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>xcor</FamilyMember>
			<FamilyMember>ycor</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>xcor-of</FamilyMember>
			<FamilyMember>ycor-of</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>black</FamilyMember>
			<FamilyMember>blue</FamilyMember>
			<FamilyMember>brown</FamilyMember>
			<FamilyMember>cyan</FamilyMember>
			<FamilyMember>gray</FamilyMember>
			<FamilyMember>green</FamilyMember>
			<FamilyMember>lime</FamilyMember>
			<FamilyMember>magenta</FamilyMember>
			<FamilyMember>orange</FamilyMember>
			<FamilyMember>pink</FamilyMember>
			<FamilyMember>purple</FamilyMember>
			<FamilyMember>red</FamilyMember>
			<FamilyMember>sky</FamilyMember>
			<FamilyMember>turquoise</FamilyMember>
			<FamilyMember>white</FamilyMember>
			<FamilyMember>yellow</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>keyboard-a</FamilyMember>
			<FamilyMember>keyboard-b</FamilyMember>
			<FamilyMember>keyboard-c</FamilyMember>
			<FamilyMember>keyboard-d</FamilyMember>
			<FamilyMember>keyboard-e</FamilyMember>
			<FamilyMember>keyboard-f</FamilyMember>
			<FamilyMember>keyboard-g</FamilyMember>
			<FamilyMember>keyboard-h</FamilyMember>
			<FamilyMember>keyboard-i</FamilyMember>
			<FamilyMember>keyboard-j</FamilyMember>
			<FamilyMember>keyboard-k</FamilyMember>
			<FamilyMember>keyboard-l</FamilyMember>
			<FamilyMember>keyboard-m</FamilyMember>
			<FamilyMember>keyboard-n</FamilyMember>
			<FamilyMember>keyboard-o</FamilyMember>
			<FamilyMember>keyboard-p</FamilyMember>
			<FamilyMember>keyboard-q</FamilyMember>
			<FamilyMember>keyboard-r</FamilyMember>
			<FamilyMember>keyboard-s</FamilyMember>
			<FamilyMember>keyboard-t</FamilyMember>
			<FamilyMember>keyboard-u</FamilyMember>
			<FamilyMember>keyboard-v</FamilyMember>
			<FamilyMember>keyboard-w</FamilyMember>
			<FamilyMember>keyboard-x</FamilyMember>
			<FamilyMember>keyboard-y</FamilyMember>
			<FamilyMember>keyboard-z</FamilyMember>
			<FamilyMember>keyboard-0</FamilyMember>
			<FamilyMember>keyboard-1</FamilyMember>
			<FamilyMember>keyboard-2</FamilyMember>
			<FamilyMember>keyboard-3</FamilyMember>
			<FamilyMember>keyboard-4</FamilyMember>
			<FamilyMember>keyboard-5</FamilyMember>
			<FamilyMember>keyboard-6</FamilyMember>
			<FamilyMember>keyboard-7</FamilyMember>
			<FamilyMember>keyboard-8</FamilyMember>
			<FamilyMember>keyboard-9</FamilyMember>
			<FamilyMember>keyboard-up</FamilyMember>
			<FamilyMember>keyboard-down</FamilyMember>
			<FamilyMember>keyboard-left</FamilyMember>
			<FamilyMember>keyboard-right</FamilyMember>
			<FamilyMember>keyboard-space</FamilyMember>
		</BlockFamily> 
		<BlockFamily>
			<FamilyMember>equals</FamilyMember>
			<FamilyMember>not-equals</FamilyMember>
			<FamilyMember>lessthan</FamilyMember>
			<FamilyMember>greaterthan</FamilyMember>
			<FamilyMember>lessthanorequalto</FamilyMember>
			<FamilyMember>greaterthanorequalto</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>and</FamilyMember>
			<FamilyMember>or</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>sum</FamilyMember>
			<FamilyMember>difference</FamilyMember>
			<FamilyMember>quotient</FamilyMember>
			<FamilyMember>product</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>show-patches</FamilyMember>
			<FamilyMember>hide-patches</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>stomp</FamilyMember>
			<FamilyMember>yank</FamilyMember>
			<FamilyMember>dig</FamilyMember>
			<FamilyMember>build</FamilyMember>			
		</BlockFamily>
	</BlockFamilies>

	<BlockDrawerSets>	
		<BlockDrawerSet name="factory" type="stack" location="southwest" window-per-drawer="no" drawer-draggable="no" >
			<BlockDrawer name="Setup e Execução" type="factory" is-open="yes" button-color="173 0 0">
				<BlockGenusMember>setup</BlockGenusMember>
				<BlockGenusMember>forever</BlockGenusMember>
				<BlockGenusMember>runforsometime</BlockGenusMember>
				<BlockGenusMember>runonce</BlockGenusMember>
				<BlockGenusMember>clear-all</BlockGenusMember>
				<BlockGenusMember>clear-everyone</BlockGenusMember>
				<BlockGenusMember>clear-patches</BlockGenusMember>
				<BlockGenusMember>scatter-everyone</BlockGenusMember>
				<BlockGenusMember>scatter-pc</BlockGenusMember>
				<BlockGenusMember>show-score</BlockGenusMember>
				<BlockGenusMember>hide-score</BlockGenusMember>
				<BlockGenusMember>set-score</BlockGenusMember>
				<BlockGenusMember>score</BlockGenusMember>
				<BlockGenusMember>show-clock</BlockGenusMember>
				<BlockGenusMember>hide-clock</BlockGenusMember>
				<BlockGenusMember>reset-clock</BlockGenusMember>
				<BlockGenusMember>clock</BlockGenusMember>
				<BlockGenusMember>show-miniview</BlockGenusMember>
				<BlockGenusMember>hide-miniview</BlockGenusMember>
				<BlockGenusMember>count-everyone</BlockGenusMember>
				<BlockGenusMember>count-everyone-with</BlockGenusMember>
				<BlockGenusMember>monitor</BlockGenusMember>
				<BlockGenusMember>line-graph</BlockGenusMember>
				<BlockGenusMember>bar-graph</BlockGenusMember>
				<BlockGenusMember>table</BlockGenusMember>
				<BlockGenusMember>slider</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Movimento" type="factory" button-color="247 0 0">
				<BlockGenusMember>fd</BlockGenusMember>
				<BlockGenusMember>bk</BlockGenusMember>
				<BlockGenusMember>lt</BlockGenusMember>
				<BlockGenusMember>rt</BlockGenusMember>
				<BlockGenusMember>up</BlockGenusMember>
				<BlockGenusMember>down</BlockGenusMember>
				<BlockGenusMember>home</BlockGenusMember>
				<BlockGenusMember>towards</BlockGenusMember>
				<BlockGenusMember>seth</BlockGenusMember>
				<BlockGenusMember>heading</BlockGenusMember>
				<BlockGenusMember>setxy</BlockGenusMember>
				<BlockGenusMember>setx</BlockGenusMember>
				<BlockGenusMember>xcor</BlockGenusMember>
				<BlockGenusMember>sety</BlockGenusMember>
				<BlockGenusMember>ycor</BlockGenusMember>
				<BlockGenusMember>setheight</BlockGenusMember>
				<BlockGenusMember>height</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Lógica" type="factory" button-color="255 173 0">
				<BlockGenusMember>if</BlockGenusMember>
				<BlockGenusMember>ifelse</BlockGenusMember>
				<BlockGenusMember>repeat</BlockGenusMember>
				<BlockGenusMember>wait</BlockGenusMember>
				<BlockGenusMember>die</BlockGenusMember>
				<BlockGenusMember>and</BlockGenusMember>
				<BlockGenusMember>or</BlockGenusMember>
				<BlockGenusMember>not</BlockGenusMember>
				<BlockGenusMember>equals</BlockGenusMember>
				<BlockGenusMember>lessthan</BlockGenusMember>
				<BlockGenusMember>true</BlockGenusMember>
				<BlockGenusMember>false</BlockGenusMember>
				<BlockGenusMember>hatch</BlockGenusMember>
				<BlockGenusMember>hatch-and-do</BlockGenusMember>
				<BlockGenusMember>ask-agent</BlockGenusMember>
				<BlockGenusMember>switch</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Controles" type="factory" button-color="255 235 0">
				<BlockGenusMember>keyboard-a</BlockGenusMember>
				<BlockGenusMember>keyboard-0</BlockGenusMember>
				<BlockGenusMember>keyboard-up</BlockGenusMember>
				<BlockGenusMember>keyboard-space</BlockGenusMember>
				<BlockGenusMember>joy-xaxis</BlockGenusMember>
				<BlockGenusMember>joy-yaxis</BlockGenusMember>
				<BlockGenusMember>joy-radius</BlockGenusMember>
				<BlockGenusMember>joy-angle</BlockGenusMember>
				<BlockGenusMember>dpad-angle</BlockGenusMember>
				<BlockGenusMember>joy-button1?</BlockGenusMember>
				<BlockGenusMember>joy-button2?</BlockGenusMember>
				<BlockGenusMember>joy-button3?</BlockGenusMember>
				<BlockGenusMember>joy-button4?</BlockGenusMember>
				<BlockGenusMember>set-agent-camera</BlockGenusMember>
				<BlockGenusMember>who-of-agent-camera</BlockGenusMember>
				<BlockGenusMember>over-shoulder?</BlockGenusMember>
				<BlockGenusMember>over-shoulder-on</BlockGenusMember>
				<BlockGenusMember>agent-eye?</BlockGenusMember>
				<BlockGenusMember>agent-eye-on</BlockGenusMember>
				<BlockGenusMember>aerial?</BlockGenusMember>
				<BlockGenusMember>aerial-on</BlockGenusMember>
				<BlockGenusMember>overhead?</BlockGenusMember>
				<BlockGenusMember>overhead-on</BlockGenusMember>
				<BlockGenusMember>overhead-off</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Terreno" type="factory" button-color="120 255 0">
				<BlockGenusMember>stamp</BlockGenusMember>
				<BlockGenusMember>pc</BlockGenusMember>
				<BlockGenusMember>pc-ahead</BlockGenusMember>
				<BlockGenusMember>dig</BlockGenusMember>
				<BlockGenusMember>build</BlockGenusMember>
				<BlockGenusMember>stomp</BlockGenusMember>
				<BlockGenusMember>yank</BlockGenusMember>
				<BlockGenusMember>patch-height</BlockGenusMember>
				<BlockGenusMember>ph-ahead</BlockGenusMember>
				<BlockGenusMember>wall-ahead</BlockGenusMember>
				<BlockGenusMember>slope-ahead</BlockGenusMember>
				<BlockGenusMember>hide-patches</BlockGenusMember>
				<BlockGenusMember>show-patches</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Características" type="factory" button-color="0 255 254">
				<BlockGenusMember>who</BlockGenusMember>
				<BlockGenusMember>setc</BlockGenusMember>
				<BlockGenusMember>color</BlockGenusMember>
				<BlockGenusMember>setshape</BlockGenusMember>
				<BlockGenusMember>shape</BlockGenusMember>
				<BlockGenusMember>setbreed</BlockGenusMember>
				<BlockGenusMember>breed</BlockGenusMember>
				<BlockGenusMember>seth</BlockGenusMember>
				<BlockGenusMember>heading</BlockGenusMember>
				<BlockGenusMember>penup</BlockGenusMember>
				<BlockGenusMember>pendown</BlockGenusMember>
				<BlockGenusMember>pendown?</BlockGenusMember>
				<BlockGenusMember>shown?</BlockGenusMember>
				<BlockGenusMember>setscale</BlockGenusMember>
				<BlockGenusMember>scale</BlockGenusMember>
				<BlockGenusMember>setscalex</BlockGenusMember>
				<BlockGenusMember>scalex</BlockGenusMember>
				<BlockGenusMember>setscaley</BlockGenusMember>
				<BlockGenusMember>scaley</BlockGenusMember>
				<BlockGenusMember>setscalez</BlockGenusMember>
				<BlockGenusMember>scalez</BlockGenusMember>
				<BlockGenusMember>setheight</BlockGenusMember>
				<BlockGenusMember>height</BlockGenusMember>
				<BlockGenusMember>seth</BlockGenusMember>
				<BlockGenusMember>heading</BlockGenusMember>
				<BlockGenusMember>setxy</BlockGenusMember>
				<BlockGenusMember>setx</BlockGenusMember>
				<BlockGenusMember>xcor</BlockGenusMember>
				<BlockGenusMember>sety</BlockGenusMember>
				<BlockGenusMember>ycor</BlockGenusMember>
				<BlockGenusMember>hideagent</BlockGenusMember>
				<BlockGenusMember>showagent</BlockGenusMember>
				<BlockGenusMember>setskinon</BlockGenusMember>
				<BlockGenusMember>setskinoff</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Texto" type="factory" button-color="45 201 255">
				<BlockGenusMember>string</BlockGenusMember>
				<BlockGenusMember>say</BlockGenusMember>
				<BlockGenusMember>set-status</BlockGenusMember>
				<BlockGenusMember>newline</BlockGenusMember>
				<BlockGenusMember>to-string</BlockGenusMember>
				<BlockGenusMember>string-append</BlockGenusMember>
				<BlockGenusMember>equals</BlockGenusMember>
				<BlockGenusMember>not-equals</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Matemática" type="factory" button-color="102 129 255">
				<BlockGenusMember>number</BlockGenusMember>
				<BlockGenusMember>pi</BlockGenusMember>
				<BlockGenusMember>e</BlockGenusMember>
				<BlockGenusMember>sum</BlockGenusMember>
				<BlockGenusMember>difference</BlockGenusMember>
				<BlockGenusMember>product</BlockGenusMember>
				<BlockGenusMember>quotient</BlockGenusMember>
				<BlockGenusMember>equals</BlockGenusMember>
				<BlockGenusMember>not-equals</BlockGenusMember>
				<BlockGenusMember>lessthan</BlockGenusMember>
				<BlockGenusMember>greaterthan</BlockGenusMember>
				<BlockGenusMember>lessthanorequalto</BlockGenusMember>
				<BlockGenusMember>greaterthanorequalto</BlockGenusMember>
				<BlockGenusMember>atan</BlockGenusMember>
				<BlockGenusMember>random</BlockGenusMember>
				<BlockGenusMember>round</BlockGenusMember>
				<BlockGenusMember>int</BlockGenusMember>
				<BlockGenusMember>min</BlockGenusMember>
				<BlockGenusMember>max</BlockGenusMember>
				<BlockGenusMember>remainder</BlockGenusMember>
				<BlockGenusMember>power</BlockGenusMember>
				<BlockGenusMember>abs</BlockGenusMember>
				<BlockGenusMember>sqrt</BlockGenusMember>
				<BlockGenusMember>sin</BlockGenusMember>
				<BlockGenusMember>cos</BlockGenusMember>
				<BlockGenusMember>tan</BlockGenusMember>
				<BlockGenusMember>asin</BlockGenusMember>
				<BlockGenusMember>acos</BlockGenusMember>
				<BlockGenusMember>log</BlockGenusMember>
				<BlockGenusMember>ln</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Outros Agentes" type="factory" button-color="128 30 255">
				<BlockGenusMember>collidee</BlockGenusMember>
				<BlockGenusMember>xcor-of</BlockGenusMember>
				<BlockGenusMember>ycor-of</BlockGenusMember>
				<BlockGenusMember>color-of</BlockGenusMember>
				<BlockGenusMember>height-of</BlockGenusMember>
				<BlockGenusMember>heading-of</BlockGenusMember>
				<BlockGenusMember>shape-of</BlockGenusMember>
				<BlockGenusMember>scale-of</BlockGenusMember>
				<BlockGenusMember>scalex-of</BlockGenusMember>
				<BlockGenusMember>scaley-of</BlockGenusMember>
				<BlockGenusMember>scalez-of</BlockGenusMember>
				<BlockGenusMember>breed-of</BlockGenusMember>
				<BlockGenusMember>alive?</BlockGenusMember>
				<BlockGenusMember>kill</BlockGenusMember>
				<BlockGenusMember>ask-agent</BlockGenusMember>
				<BlockGenusMember>smell</BlockGenusMember>
				<BlockGenusMember>smell-with</BlockGenusMember>
				<BlockGenusMember>smell-list</BlockGenusMember>
				<BlockGenusMember>smell-list-with</BlockGenusMember>
				<BlockGenusMember>count-everyone</BlockGenusMember>
				<BlockGenusMember>count-everyone-with</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Procedimento" type="factory" button-color="177 10 255">
				<BlockGenusMember>procedure</BlockGenusMember>
				<BlockGenusMember>proc-param-number</BlockGenusMember>
				<BlockGenusMember>proc-param-string</BlockGenusMember>
				<BlockGenusMember>proc-param-boolean</BlockGenusMember>
				<BlockGenusMember>proc-param-list</BlockGenusMember>
				<BlockGenusMember>stop</BlockGenusMember>
				<BlockGenusMember>output</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Variáveis" type="factory" button-color="230 0 255">
				<BlockGenusMember>global-var-boolean</BlockGenusMember>
				<BlockGenusMember>global-var-number</BlockGenusMember>
				<BlockGenusMember>global-var-string</BlockGenusMember>
				<BlockGenusMember>global-var-boolean-list</BlockGenusMember>
				<BlockGenusMember>global-var-number-list</BlockGenusMember>
				<BlockGenusMember>global-var-string-list</BlockGenusMember>
				<BlockGenusMember>agent-var-boolean</BlockGenusMember>
				<BlockGenusMember>agent-var-number</BlockGenusMember>
				<BlockGenusMember>agent-var-string</BlockGenusMember>
				<BlockGenusMember>agent-var-boolean-list</BlockGenusMember>
				<BlockGenusMember>agent-var-number-list</BlockGenusMember>
				<BlockGenusMember>agent-var-string-list</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Lista" type="factory" button-color="255 80 70">
				<BlockGenusMember>list</BlockGenusMember>
				<BlockGenusMember>length</BlockGenusMember>
				<BlockGenusMember>add-to-list</BlockGenusMember>
				<BlockGenusMember>first</BlockGenusMember>
				<BlockGenusMember>get-list-item</BlockGenusMember>
				<BlockGenusMember>pick-list-item</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Cores" type="factory" button-color="255 155 64">
				<BlockGenusMember>setc</BlockGenusMember>
				<BlockGenusMember>blue</BlockGenusMember>
				<BlockGenusMember>cyan</BlockGenusMember>
				<BlockGenusMember>green</BlockGenusMember>
				<BlockGenusMember>lime</BlockGenusMember>
				<BlockGenusMember>magenta</BlockGenusMember>
				<BlockGenusMember>orange</BlockGenusMember>
				<BlockGenusMember>pink</BlockGenusMember>
				<BlockGenusMember>purple</BlockGenusMember>
				<BlockGenusMember>red</BlockGenusMember>
				<BlockGenusMember>sky</BlockGenusMember>
				<BlockGenusMember>turquoise</BlockGenusMember>
				<BlockGenusMember>white</BlockGenusMember>
				<BlockGenusMember>yellow</BlockGenusMember>
				<BlockGenusMember>brown</BlockGenusMember>
				<BlockGenusMember>gray</BlockGenusMember>
				<BlockGenusMember>black</BlockGenusMember>
			</BlockDrawer>
			<!-- Shapes are automatically loaded as blocks in the Shapes drawer
				 (see ShapeBlocksGenerator for details)  -->
			<!-- Sound blocks reside in the auto-generated String drawer.  
				 (see SoundBlocksGenerator for details)  -->
		</BlockDrawerSet>
	</BlockDrawerSets>

	<Pages drawer-with-page="yes">
		<Page page-name="Turtles" page-width="400"></Page>
		<Page page-name="Everyone" page-width="400"></Page>
		<Page page-name="Setup" page-width="400"></Page>
		<Page page-name="Runtime" page-width="400"></Page>
		<Page page-name="Collisions" page-width="400"></Page>
	</Pages>


	<TrashCan>
		<OpenTrashImage>/support/images/trash_open.png</OpenTrashImage>
		<ClosedTrashImage>/support/images/trash.png</ClosedTrashImage>
	</TrashCan>
	
	<BreedShapeMappings>
		<BtoSMapping>
			<BreedName>Turtles</BreedName>
			<BreedShape>animals/turtle-default</BreedShape>
		</BtoSMapping>
	</BreedShapeMappings>
	
</BlockLangDef>
