<?xml version="1.0" encoding="UTF-8" ?>
<!-- This file represents keyboard input as expected from the use
    of a real keyboard, i.e. collision is hit on release. -->
<sector name="VirtualKeyboard" >
    <tVirtualKeyboard prototype="Entity">
        <Update>
            <!-- ********** -->
            <!-- ARROW KEYS -->
            <!-- ********** -->
            <tInputUp prototype = "ActionCookInput">
                <iCooked> btup </iCooked>
                <tSequence index = "0"> 
					<fMinDuration> 0.25 </fMinDuration>
                    <tRawInput index = "0" device = 'kybd' value = "UP" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputUp>
            
            <tInputDown prototype = "ActionCookInput" >
                <iCooked> btdn </iCooked>
                <tSequence index = "0"> 
					<fMinDuration> 0.25 </fMinDuration>
                    <tRawInput index = "0" device = 'kybd' value = "DOWN" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputDown>
			
			<tInputLeft prototype = "ActionCookInput">
                <iCooked> btlt </iCooked>
                <tSequence index = "0"> 
					<fMinDuration> 0.25 </fMinDuration>
                    <tRawInput index = "0" device = 'kybd' value = "LEFT"  />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputLeft>
            
            <tInputRight prototype = "ActionCookInput" >
                <iCooked> btrt </iCooked>
                <tSequence index = "0"> 
					<fMinDuration> 0.25 </fMinDuration>
                    <tRawInput index = "0" device = 'kybd' value = "RIGHT"  />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputRight>
            
            <!-- ************* -->
            <!-- ALPHABET KEYS -->
            <!-- ************* -->
			<tInputA prototype = "ActionCookInput">
                <iCooked> btna </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "A" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputA>
			
			<tInputB prototype = "ActionCookInput" >
                <iCooked> btnb </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "B" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputB>
			
			<tInputC prototype = "ActionCookInput" >
                <iCooked> btnc </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "C" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputC>
			
			<tInputD prototype = "ActionCookInput" >
                <iCooked> btnd </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "D" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputD>
			
			<tInputE prototype = "ActionCookInput" >
                <iCooked> btne </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "E" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputE>
			
			<tInputF prototype = "ActionCookInput" >
                <iCooked> btnf </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "F" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputF>
			
			<tInputG prototype = "ActionCookInput" >
                <iCooked> btng </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "G" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputG>
			
			<tInputH prototype = "ActionCookInput" >
                <iCooked> btnh </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "H" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputH>
			
			<tInputI prototype = "ActionCookInput" >
                <iCooked> btni </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "I" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputI>
			
			<tInputJ prototype = "ActionCookInput" >
                <iCooked> btnj </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "J" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputJ>
			
			<tInputK prototype = "ActionCookInput" >
                <iCooked> btnk </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "K" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputK>
			
			<tInputL prototype = "ActionCookInput" >
                <iCooked> btnl </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "L" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputL>
			
			<tInputM prototype = "ActionCookInput" >
                <iCooked> btnm </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "M" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputM>
			
			<tInputN prototype = "ActionCookInput" >
                <iCooked> btnn </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "N" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputN>
			
			<tInputO prototype = "ActionCookInput" >
                <iCooked> btno </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "O" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputO>
			
			<tInputP prototype = "ActionCookInput" >
                <iCooked> btnp </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "P" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputP>
			
			<tInputQ prototype = "ActionCookInput" >
                <iCooked> btnq </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "Q" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputQ>
			
			<tInputR prototype = "ActionCookInput" >
                <iCooked> btnr </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "R" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputR>
            
            <tInputS prototype = "ActionCookInput" >
                <iCooked> btns </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "S" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputS>
			
			<tInputT prototype = "ActionCookInput" >
                <iCooked> btnt </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "T" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputT>
			
			<tInputU prototype = "ActionCookInput" >
                <iCooked> btnu </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "U" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputU>
			
			<tInputV prototype = "ActionCookInput" >
                <iCooked> btnv </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "V" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputV>
            
            <tInputW prototype = "ActionCookInput" >
                <iCooked> btnw </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "W" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputW>
			
			<tInputX prototype = "ActionCookInput" >
                <iCooked> btnx </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "X" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputX>
			
			<tInputY prototype = "ActionCookInput" >
                <iCooked> btny </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "Y" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputY>
			
			<tInputZ prototype = "ActionCookInput" >
                <iCooked> btnz </iCooked>
                <tSequence index = "0"> 
                    <tRawInput index = "0" device = 'kybd' value = "Z" notify = "ON_RELEASE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputZ>
			
            <!-- ************* -->
            <!-- FUNCTION KEYS -->
            <!-- ************* -->            
            <tInputEnter prototype = "ActionCookInput" >
                <iCooked> entr </iCooked>
                <tSequence index = "0"> 
					<fMinDuration> 0.25 </fMinDuration>
                    <tRawInput index = "0" device = 'kybd' value = "ENTER"  />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputEnter>
            
            <tInputBackspace prototype="ActionCookInput">
                <iCooked> bspc </iCooked>
                <tSequence index="0">
                    <fMinDuration> 0.25 </fMinDuration>
                    <tRawInput index = "0" device = 'kybd' value = "BACKSPACE" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputBackspace>
            
            <tInputEscape prototype="ActionCookInput">
                <iCooked> escp </iCooked>
                <tSequence index="0">
                    <fMinDuration> 0.25 </fMinDuration>
                    <tRawInput index = "0" device = 'kybd' value = "ESC" />
                </tSequence>
                <iLatch> false </iLatch>
                <iExclusive> "false" </iExclusive>
            </tInputEscape>
            
        </Update>
    </tVirtualKeyboard>
</sector>