summaryrefslogtreecommitdiffhomepage
path: root/samples/99_genre_arcade
diff options
context:
space:
mode:
authorAmir Rajan <[email protected]>2020-09-11 02:02:01 -0500
committerAmir Rajan <[email protected]>2020-09-11 02:02:57 -0500
commit33ec37b141e896b47ed642923fd33b0c658ae9fb (patch)
treea40d3e5d41beeb06508200078f6f26b0ee57d6a4 /samples/99_genre_arcade
parent958cf43779d2bf528869e80511c4c4f2a433b2db (diff)
downloaddragonruby-game-toolkit-contrib-33ec37b141e896b47ed642923fd33b0c658ae9fb.tar.gz
dragonruby-game-toolkit-contrib-33ec37b141e896b47ed642923fd33b0c658ae9fb.zip
synced samples
Diffstat (limited to 'samples/99_genre_arcade')
-rw-r--r--samples/99_genre_arcade/dueling_starships/app/main.rb365
-rw-r--r--samples/99_genre_arcade/dueling_starships/license-for-sample.txt9
-rw-r--r--samples/99_genre_arcade/dueling_starships/replay.txt2383
-rw-r--r--samples/99_genre_arcade/dueling_starships/sprites/blue_bullet.pngbin0 -> 81 bytes
-rw-r--r--samples/99_genre_arcade/dueling_starships/sprites/flame.pngbin0 -> 78 bytes
-rw-r--r--samples/99_genre_arcade/dueling_starships/sprites/red_bullet.pngbin0 -> 81 bytes
-rw-r--r--samples/99_genre_arcade/dueling_starships/sprites/ship_blue.pngbin0 -> 1810 bytes
-rw-r--r--samples/99_genre_arcade/dueling_starships/sprites/ship_red.pngbin0 -> 1747 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/CREDITS.txt3
-rw-r--r--samples/99_genre_arcade/flappy_dragon/app/main.rb360
-rw-r--r--samples/99_genre_arcade/flappy_dragon/license-for-sample.txt9
-rw-r--r--samples/99_genre_arcade/flappy_dragon/metadata/game_metadata.txt6
-rw-r--r--samples/99_genre_arcade/flappy_dragon/replay.txt957
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sounds/flappy-song.oggbin0 -> 913845 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sounds/fly-sound.wavbin0 -> 352812 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sounds/hit-sound.wavbin0 -> 352812 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/background.pngbin0 -> 84902 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/dragon_die.pngbin0 -> 2927 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly1.pngbin0 -> 12896 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly2.pngbin0 -> 2964 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly3.pngbin0 -> 3047 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly4.pngbin0 -> 2655 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly5.pngbin0 -> 2725 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly6.pngbin0 -> 2655 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/parallax_back.pngbin0 -> 13968 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/parallax_front.pngbin0 -> 14778 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/parallax_middle.pngbin0 -> 16046 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/wall.pngbin0 -> 70729 bytes
-rw-r--r--samples/99_genre_arcade/flappy_dragon/sprites/wallbottom.pngbin0 -> 73050 bytes
-rw-r--r--samples/99_genre_arcade/pong/app/main.rb159
-rw-r--r--samples/99_genre_arcade/pong/license-for-sample.txt9
-rw-r--r--samples/99_genre_arcade/pong/replay.txt292
-rw-r--r--samples/99_genre_arcade/snakemoji/app/main.rb165
-rw-r--r--samples/99_genre_arcade/snakemoji/license-for-sample.txt9
-rw-r--r--samples/99_genre_arcade/snakemoji/replay.txt145
-rw-r--r--samples/99_genre_arcade/solar_system/app/main.rb108
-rw-r--r--samples/99_genre_arcade/solar_system/license-for-sample.txt9
-rw-r--r--samples/99_genre_arcade/solar_system/replay.txt1472
-rw-r--r--samples/99_genre_arcade/solar_system/sounds/bg.oggbin0 -> 1348295 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/earth.pngbin0 -> 1238 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/jupiter.pngbin0 -> 1474 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/mars.pngbin0 -> 1304 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/mercury.pngbin0 -> 1305 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/neptune.pngbin0 -> 1531 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/orbit.pngbin0 -> 23170 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/particle.pngbin0 -> 78 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/pluto.pngbin0 -> 1452 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/saturn.pngbin0 -> 1547 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/ship.pngbin0 -> 1810 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/star.pngbin0 -> 711 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/sun.pngbin0 -> 1099 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/uranus.pngbin0 -> 1605 bytes
-rw-r--r--samples/99_genre_arcade/solar_system/sprites/venus.pngbin0 -> 1525 bytes
53 files changed, 6460 insertions, 0 deletions
diff --git a/samples/99_genre_arcade/dueling_starships/app/main.rb b/samples/99_genre_arcade/dueling_starships/app/main.rb
new file mode 100644
index 0000000..8adcf3d
--- /dev/null
+++ b/samples/99_genre_arcade/dueling_starships/app/main.rb
@@ -0,0 +1,365 @@
+class DuelingSpaceships
+ attr_accessor :state, :inputs, :outputs, :grid
+
+ def tick
+ defaults
+ render
+ calc
+ input
+ end
+
+ def defaults
+ outputs.background_color = [0, 0, 0]
+ state.ship_blue ||= new_blue_ship
+ state.ship_red ||= new_red_ship
+ state.flames ||= []
+ state.bullets ||= []
+ state.ship_blue_score ||= 0
+ state.ship_red_score ||= 0
+ state.stars ||= 100.map do
+ [rand.add(2).to_square(grid.w_half.randomize(:sign, :ratio),
+ grid.h_half.randomize(:sign, :ratio)),
+ 128 + 128.randomize(:ratio), 255, 255]
+ end
+ end
+
+ def default_ship x, y, angle, sprite_path, bullet_sprite_path, color
+ state.new_entity(:ship,
+ { x: x,
+ y: y,
+ dy: 0,
+ dx: 0,
+ damage: 0,
+ dead: false,
+ angle: angle,
+ max_alpha: 255,
+ sprite_path: sprite_path,
+ bullet_sprite_path: bullet_sprite_path,
+ color: color })
+ end
+
+ def new_red_ship
+ default_ship(400, 250.randomize(:sign, :ratio),
+ 180, 'sprites/ship_red.png', 'sprites/red_bullet.png',
+ [255, 90, 90])
+ end
+
+ def new_blue_ship
+ default_ship(-400, 250.randomize(:sign, :ratio),
+ 0, 'sprites/ship_blue.png', 'sprites/blue_bullet.png',
+ [110, 140, 255])
+ end
+
+ def render
+ render_instructions
+ render_score
+ render_universe
+ render_flames
+ render_ships
+ render_bullets
+ end
+
+ def render_ships
+ update_ship_outputs(state.ship_blue)
+ update_ship_outputs(state.ship_red)
+ outputs.sprites << [state.ship_blue.sprite, state.ship_red.sprite]
+ outputs.labels << [state.ship_blue.label, state.ship_red.label]
+ end
+
+ def render_instructions
+ return if state.ship_blue.dx > 0 || state.ship_blue.dy > 0 ||
+ state.ship_red.dx > 0 || state.ship_red.dy > 0 ||
+ state.flames.length > 0
+
+ outputs.labels << [grid.left.shift_right(30),
+ grid.bottom.shift_up(30),
+ "Two gamepads needed to play. R1 to accelerate. Left and right on D-PAD to turn ship. Hold A to shoot. Press B to drop mines.",
+ 0, 0, 255, 255, 255]
+ end
+
+ def calc
+ calc_thrusts
+ calc_ships
+ calc_bullets
+ calc_winner
+ end
+
+ def input
+ input_accelerate
+ input_turn
+ input_bullets_and_mines
+ end
+
+ def render_score
+ outputs.labels << [grid.left.shift_right(80),
+ grid.top.shift_down(40),
+ state.ship_blue_score, 30, 1, state.ship_blue.color]
+
+ outputs.labels << [grid.right.shift_left(80),
+ grid.top.shift_down(40),
+ state.ship_red_score, 30, 1, state.ship_red.color]
+ end
+
+ def render_universe
+ return if outputs.static_solids.any?
+ outputs.static_solids << grid.rect
+ outputs.static_solids << state.stars
+ end
+
+ def apply_round_finished_alpha entity
+ return entity unless state.round_finished_debounce
+ entity.a *= state.round_finished_debounce.percentage_of(2.seconds)
+ return entity
+ end
+
+ def update_ship_outputs ship, sprite_size = 66
+ ship.sprite =
+ apply_round_finished_alpha [sprite_size.to_square(ship.x, ship.y),
+ ship.sprite_path,
+ ship.angle,
+ ship.dead ? 0 : 255 * ship.created_at.ease(2.seconds)].sprite
+ ship.label =
+ apply_round_finished_alpha [ship.x,
+ ship.y + 100,
+ "." * 5.minus(ship.damage).greater(0), 20, 1, ship.color, 255].label
+ end
+
+ def render_flames sprite_size = 6
+ outputs.sprites << state.flames.map do |p|
+ apply_round_finished_alpha [sprite_size.to_square(p.x, p.y),
+ 'sprites/flame.png', 0,
+ p.max_alpha * p.created_at.ease(p.lifetime, :flip)].sprite
+ end
+ end
+
+ def render_bullets sprite_size = 10
+ outputs.sprites << state.bullets.map do |b|
+ apply_round_finished_alpha [b.sprite_size.to_square(b.x, b.y),
+ b.owner.bullet_sprite_path,
+ 0, b.max_alpha].sprite
+ end
+ end
+
+ def wrap_location! location
+ location.x = grid.left if location.x > grid.right
+ location.x = grid.right if location.x < grid.left
+ location.y = grid.top if location.y < grid.bottom
+ location.y = grid.bottom if location.y > grid.top
+ location
+ end
+
+ def calc_thrusts
+ state.flames =
+ state.flames
+ .reject(&:old?)
+ .map do |p|
+ p.speed *= 0.9
+ p.y += p.angle.vector_y(p.speed)
+ p.x += p.angle.vector_x(p.speed)
+ wrap_location! p
+ end
+ end
+
+ def all_ships
+ [state.ship_blue, state.ship_red]
+ end
+
+ def alive_ships
+ all_ships.reject { |s| s.dead }
+ end
+
+ def calc_bullet bullet
+ bullet.y += bullet.angle.vector_y(bullet.speed)
+ bullet.x += bullet.angle.vector_x(bullet.speed)
+ wrap_location! bullet
+ explode_bullet! bullet if bullet.old?
+ return if bullet.exploded
+ return if state.round_finished
+ alive_ships.each do |s|
+ if s != bullet.owner &&
+ s.sprite.intersect_rect?(bullet.sprite_size.to_square(bullet.x, bullet.y))
+ explode_bullet! bullet, 10, 5, 30
+ s.damage += 1
+ end
+ end
+ end
+
+ def calc_bullets
+ state.bullets.each { |b| calc_bullet b }
+ state.bullets.reject! { |b| b.exploded }
+ end
+
+ def create_explosion! type, entity, flame_count, max_speed, lifetime, max_alpha = 255
+ flame_count.times do
+ state.flames << state.new_entity(type,
+ { angle: 360.randomize(:ratio),
+ speed: max_speed.randomize(:ratio),
+ lifetime: lifetime,
+ x: entity.x,
+ y: entity.y,
+ max_alpha: max_alpha })
+ end
+ end
+
+ def explode_bullet! bullet, flame_override = 5, max_speed = 5, lifetime = 10
+ bullet.exploded = true
+ create_explosion! :bullet_explosion,
+ bullet,
+ flame_override,
+ max_speed,
+ lifetime,
+ bullet.max_alpha
+ end
+
+ def calc_ship ship
+ ship.x += ship.dx
+ ship.y += ship.dy
+ wrap_location! ship
+ end
+
+ def calc_ships
+ all_ships.each { |s| calc_ship s }
+ return if all_ships.any? { |s| s.dead }
+ return if state.round_finished
+ return unless state.ship_blue.sprite.intersect_rect?(state.ship_red.sprite)
+ state.ship_blue.damage = 5
+ state.ship_red.damage = 5
+ end
+
+ def create_thruster_flames! ship
+ state.flames << state.new_entity(:ship_thruster,
+ { angle: ship.angle + 180 + 60.randomize(:sign, :ratio),
+ speed: 5.randomize(:ratio),
+ max_alpha: 255 * ship.created_at_elapsed.percentage_of(2.seconds),
+ lifetime: 30,
+ x: ship.x - ship.angle.vector_x(40) + 5.randomize(:sign, :ratio),
+ y: ship.y - ship.angle.vector_y(40) + 5.randomize(:sign, :ratio) })
+ end
+
+ def input_accelerate_ship should_move_ship, ship
+ return if ship.dead
+
+ should_move_ship &&= (ship.dx + ship.dy).abs < 5
+
+ if should_move_ship
+ create_thruster_flames! ship
+ ship.dx += ship.angle.vector_x 0.050
+ ship.dy += ship.angle.vector_y 0.050
+ else
+ ship.dx *= 0.99
+ ship.dy *= 0.99
+ end
+ end
+
+ def input_accelerate
+ input_accelerate_ship inputs.controller_one.key_held.r1 || inputs.keyboard.up, state.ship_blue
+ input_accelerate_ship inputs.controller_two.key_held.r1, state.ship_red
+ end
+
+ def input_turn_ship direction, ship
+ ship.angle -= 3 * direction
+ end
+
+ def input_turn
+ input_turn_ship inputs.controller_one.left_right + inputs.keyboard.left_right, state.ship_blue
+ input_turn_ship inputs.controller_two.left_right, state.ship_red
+ end
+
+ def input_bullet create_bullet, ship
+ return unless create_bullet
+ return if ship.dead
+
+ state.bullets << state.new_entity(:ship_bullet,
+ { owner: ship,
+ angle: ship.angle,
+ max_alpha: 255 * ship.created_at_elapsed.percentage_of(2.seconds),
+ speed: 5 + ship.dx.mult(ship.angle.vector_x) + ship.dy.mult(ship.angle.vector_y),
+ lifetime: 120,
+ sprite_size: 10,
+ x: ship.x + ship.angle.vector_x * 32,
+ y: ship.y + ship.angle.vector_y * 32 })
+ end
+
+ def input_mine create_mine, ship
+ return unless create_mine
+ return if ship.dead
+
+ state.bullets << state.new_entity(:ship_bullet,
+ { owner: ship,
+ angle: 360.randomize(:sign, :ratio),
+ max_alpha: 255 * ship.created_at_elapsed.percentage_of(2.seconds),
+ speed: 0.02,
+ sprite_size: 10,
+ lifetime: 600,
+ x: ship.x + ship.angle.vector_x * -50,
+ y: ship.y + ship.angle.vector_y * -50 })
+ end
+
+ def input_bullets_and_mines
+ return if state.bullets.length > 100
+
+ [
+ [inputs.controller_one.key_held.a || inputs.keyboard.key_held.space,
+ inputs.controller_one.key_down.b || inputs.keyboard.key_down.down,
+ state.ship_blue],
+ [inputs.controller_two.key_held.a, inputs.controller_two.key_down.b, state.ship_red]
+ ].each do |a_held, b_down, ship|
+ input_bullet(a_held && state.tick_count.mod_zero?(10).or(a_held == 0), ship)
+ input_mine(b_down, ship)
+ end
+ end
+
+ def calc_kill_ships
+ alive_ships.find_all { |s| s.damage >= 5 }.each do |s|
+ s.dead = true
+ create_explosion! :ship_explosion, s, 20, 20, 30, s.max_alpha
+ end
+ end
+
+ def calc_score
+ return if state.round_finished
+ return if alive_ships.length > 1
+
+ if alive_ships.first == state.ship_red
+ state.ship_red_score += 1
+ elsif alive_ships.first == state.ship_blue
+ state.ship_blue_score += 1
+ end
+
+ state.round_finished = true
+ end
+
+ def calc_reset_ships
+ return unless state.round_finished
+ state.round_finished_debounce ||= 2.seconds
+ state.round_finished_debounce -= 1
+ return if state.round_finished_debounce > 0
+ start_new_round!
+ end
+
+ def start_new_round!
+ state.ship_blue = new_blue_ship
+ state.ship_red = new_red_ship
+ state.round_finished = false
+ state.round_finished_debounce = nil
+ state.flames.clear
+ state.bullets.clear
+ end
+
+ def calc_winner
+ calc_kill_ships
+ calc_score
+ calc_reset_ships
+ end
+end
+
+$dueling_spaceship = DuelingSpaceships.new
+
+def tick args
+ args.grid.origin_center!
+ $dueling_spaceship.inputs = args.inputs
+ $dueling_spaceship.outputs = args.outputs
+ $dueling_spaceship.state = args.state
+ $dueling_spaceship.grid = args.grid
+ $dueling_spaceship.tick
+end
diff --git a/samples/99_genre_arcade/dueling_starships/license-for-sample.txt b/samples/99_genre_arcade/dueling_starships/license-for-sample.txt
new file mode 100644
index 0000000..100dcec
--- /dev/null
+++ b/samples/99_genre_arcade/dueling_starships/license-for-sample.txt
@@ -0,0 +1,9 @@
+Copyright 2019 DragonRuby LLC
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/samples/99_genre_arcade/dueling_starships/replay.txt b/samples/99_genre_arcade/dueling_starships/replay.txt
new file mode 100644
index 0000000..ffecec8
--- /dev/null
+++ b/samples/99_genre_arcade/dueling_starships/replay.txt
@@ -0,0 +1,2383 @@
+replay_version 2.0
+stopped_at 2733
+seed 100
+recorded_at Sun Sep 29 23:29:44 2019
+[:mouse_move, 10, 536, 2, 1, 76]
+[:mouse_move, 26, 536, 2, 2, 77]
+[:mouse_move, 41, 536, 2, 3, 78]
+[:mouse_move, 49, 536, 2, 4, 79]
+[:mouse_move, 56, 536, 2, 5, 80]
+[:mouse_move, 60, 535, 2, 6, 81]
+[:mouse_move, 62, 534, 2, 7, 82]
+[:mouse_move, 66, 533, 2, 8, 83]
+[:mouse_move, 67, 533, 2, 9, 84]
+[:mouse_move, 69, 531, 2, 10, 85]
+[:mouse_move, 70, 531, 2, 11, 86]
+[:mouse_move, 71, 530, 2, 12, 87]
+[:mouse_move, 72, 529, 2, 13, 88]
+[:mouse_move, 73, 529, 2, 14, 89]
+[:mouse_move, 71, 532, 2, 15, 107]
+[:mouse_move, 68, 544, 2, 16, 108]
+[:mouse_move, 65, 553, 2, 17, 109]
+[:mouse_move, 59, 576, 2, 18, 110]
+[:mouse_move, 56, 590, 2, 19, 111]
+[:mouse_move, 50, 620, 2, 20, 112]
+[:mouse_move, 48, 635, 2, 21, 113]
+[:mouse_move, 47, 645, 2, 22, 114]
+[:mouse_move, 45, 653, 2, 23, 115]
+[:mouse_move, 44, 659, 2, 24, 116]
+[:mouse_move, 42, 665, 2, 25, 117]
+[:mouse_move, 41, 667, 2, 26, 118]
+[:mouse_move, 40, 668, 2, 27, 119]
+[:mouse_move, 39, 669, 2, 28, 120]
+[:mouse_move, 38, 669, 2, 29, 124]
+[:mouse_move, 38, 672, 2, 30, 127]
+[:mouse_move, 38, 674, 2, 31, 128]
+[:mouse_move, 36, 680, 2, 32, 129]
+[:mouse_move, 35, 683, 2, 33, 130]
+[:mouse_move, 32, 689, 2, 34, 131]
+[:mouse_move, 31, 692, 2, 35, 132]
+[:mouse_move, 28, 699, 2, 36, 133]
+[:mouse_move, 28, 700, 2, 37, 134]
+[:mouse_move, 27, 704, 2, 38, 135]
+[:mouse_move, 27, 705, 2, 39, 136]
+[:mouse_move, 27, 707, 2, 40, 137]
+[:mouse_move, 29, 707, 2, 41, 139]
+[:mouse_move, 30, 707, 2, 42, 140]
+[:mouse_move, 35, 707, 2, 43, 141]
+[:mouse_move, 37, 707, 2, 44, 142]
+[:mouse_move, 42, 708, 2, 45, 143]
+[:mouse_move, 45, 709, 2, 46, 144]
+[:mouse_move, 46, 710, 2, 47, 145]
+[:mouse_move, 48, 711, 2, 48, 146]
+[:mouse_move, 49, 711, 2, 49, 158]
+[:mouse_move, 50, 711, 2, 50, 159]
+[:mouse_move, 56, 711, 2, 51, 160]
+[:mouse_move, 60, 711, 2, 52, 161]
+[:mouse_move, 77, 711, 2, 53, 162]
+[:mouse_move, 90, 711, 2, 54, 163]
+[:mouse_move, 118, 711, 2, 55, 164]
+[:mouse_move, 124, 711, 2, 56, 165]
+[:mouse_move, 148, 711, 2, 57, 166]
+[:mouse_move, 160, 711, 2, 58, 167]
+[:mouse_move, 181, 709, 2, 59, 168]
+[:mouse_move, 190, 709, 2, 60, 169]
+[:mouse_move, 201, 708, 2, 61, 170]
+[:mouse_move, 206, 708, 2, 62, 171]
+[:mouse_move, 211, 707, 2, 63, 172]
+[:mouse_move, 218, 707, 2, 64, 173]
+[:mouse_move, 221, 707, 2, 65, 174]
+[:mouse_move, 225, 707, 2, 66, 175]
+[:mouse_move, 227, 707, 2, 67, 176]
+[:mouse_move, 232, 707, 2, 68, 177]
+[:mouse_move, 234, 707, 2, 69, 178]
+[:mouse_move, 240, 707, 2, 70, 179]
+[:mouse_move, 244, 707, 2, 71, 180]
+[:mouse_move, 252, 707, 2, 72, 181]
+[:mouse_move, 258, 707, 2, 73, 182]
+[:mouse_move, 269, 707, 2, 74, 183]
+[:mouse_move, 274, 706, 2, 75, 184]
+[:mouse_move, 285, 706, 2, 76, 185]
+[:mouse_move, 291, 705, 2, 77, 186]
+[:mouse_move, 304, 705, 2, 78, 187]
+[:mouse_move, 310, 705, 2, 79, 188]
+[:mouse_move, 323, 704, 2, 80, 189]
+[:mouse_move, 329, 703, 2, 81, 190]
+[:mouse_move, 343, 700, 2, 82, 191]
+[:mouse_move, 355, 698, 2, 83, 192]
+[:mouse_move, 366, 697, 2, 84, 193]
+[:mouse_move, 373, 697, 2, 85, 194]
+[:mouse_move, 384, 696, 2, 86, 195]
+[:mouse_move, 390, 696, 2, 87, 196]
+[:mouse_move, 391, 696, 2, 88, 197]
+[:mouse_move, 392, 696, 2, 89, 217]
+[:mouse_move, 400, 696, 2, 90, 218]
+[:mouse_move, 404, 697, 2, 91, 219]
+[:mouse_move, 413, 698, 2, 92, 220]
+[:mouse_move, 417, 699, 2, 93, 221]
+[:mouse_move, 438, 700, 2, 94, 222]
+[:mouse_move, 449, 700, 2, 95, 223]
+[:mouse_move, 473, 700, 2, 96, 224]
+[:mouse_move, 485, 700, 2, 97, 225]
+[:mouse_move, 497, 700, 2, 98, 226]
+[:mouse_move, 514, 700, 2, 99, 227]
+[:mouse_move, 524, 700, 2, 100, 228]
+[:mouse_move, 539, 700, 2, 101, 229]
+[:mouse_move, 545, 700, 2, 102, 230]
+[:mouse_move, 555, 700, 2, 103, 231]
+[:mouse_move, 557, 701, 2, 104, 232]
+[:mouse_move, 568, 702, 2, 105, 233]
+[:mouse_move, 572, 702, 2, 106, 234]
+[:mouse_move, 581, 703, 2, 107, 235]
+[:mouse_move, 586, 704, 2, 108, 236]
+[:mouse_move, 598, 704, 2, 109, 237]
+[:mouse_move, 604, 704, 2, 110, 238]
+[:mouse_move, 620, 704, 2, 111, 239]
+[:mouse_move, 634, 704, 2, 112, 240]
+[:mouse_move, 654, 704, 2, 113, 241]
+[:mouse_move, 665, 702, 2, 114, 242]
+[:mouse_move, 681, 701, 2, 115, 243]
+[:mouse_move, 701, 698, 2, 116, 244]
+[:mouse_move, 726, 696, 2, 117, 245]
+[:mouse_move, 740, 695, 2, 118, 246]
+[:mouse_move, 772, 695, 2, 119, 247]
+[:mouse_move, 788, 695, 2, 120, 248]
+[:mouse_move, 806, 694, 2, 121, 249]
+[:mouse_move, 808, 694, 2, 122, 270]
+[:mouse_move, 810, 695, 2, 123, 271]
+[:mouse_move, 815, 698, 2, 124, 272]
+[:mouse_move, 820, 699, 2, 125, 273]
+[:mouse_move, 833, 703, 2, 126, 274]
+[:mouse_move, 840, 704, 2, 127, 275]
+[:mouse_move, 851, 707, 2, 128, 276]
+[:mouse_move, 856, 707, 2, 129, 277]
+[:mouse_move, 864, 708, 2, 130, 278]
+[:mouse_move, 867, 708, 2, 131, 279]
+[:mouse_move, 869, 708, 2, 132, 280]
+[:mouse_move, 875, 708, 2, 133, 281]
+[:mouse_move, 876, 708, 2, 134, 282]
+[:mouse_move, 880, 708, 2, 135, 283]
+[:mouse_move, 881, 708, 2, 136, 284]
+[:mouse_move, 883, 708, 2, 137, 285]
+[:mouse_move, 884, 708, 2, 138, 286]
+[:mouse_move, 885, 708, 2, 139, 287]
+[:mouse_move, 886, 708, 2, 140, 288]
+[:mouse_move, 887, 708, 2, 141, 290]
+[:mouse_move, 889, 708, 2, 142, 291]
+[:mouse_move, 890, 708, 2, 143, 292]
+[:mouse_move, 893, 708, 2, 144, 293]
+[:mouse_move, 894, 708, 2, 145, 294]
+[:mouse_move, 896, 708, 2, 146, 295]
+[:mouse_move, 897, 708, 2, 147, 296]
+[:mouse_move, 899, 708, 2, 148, 297]
+[:mouse_move, 900, 708, 2, 149, 299]
+[:mouse_move, 901, 708, 2, 150, 301]
+[:mouse_move, 902, 708, 2, 151, 305]
+[:mouse_move, 903, 708, 2, 152, 309]
+[:mouse_move, 905, 708, 2, 153, 310]
+[:mouse_move, 906, 708, 2, 154, 311]
+[:mouse_move, 911, 708, 2, 155, 312]
+[:mouse_move, 914, 709, 2, 156, 313]
+[:mouse_move, 922, 710, 2, 157, 314]
+[:mouse_move, 925, 710, 2, 158, 315]
+[:mouse_move, 933, 711, 2, 159, 316]
+[:mouse_move, 937, 711, 2, 160, 317]
+[:mouse_move, 944, 712, 2, 161, 318]
+[:mouse_move, 947, 713, 2, 162, 319]
+[:mouse_move, 954, 713, 2, 163, 320]
+[:mouse_move, 956, 713, 2, 164, 321]
+[:mouse_move, 962, 714, 2, 165, 322]
+[:mouse_move, 967, 714, 2, 166, 323]
+[:mouse_move, 973, 714, 2, 167, 324]
+[:mouse_move, 976, 714, 2, 168, 325]
+[:mouse_move, 981, 714, 2, 169, 326]
+[:mouse_move, 983, 714, 2, 170, 327]
+[:mouse_move, 989, 715, 2, 171, 328]
+[:mouse_move, 992, 715, 2, 172, 329]
+[:mouse_move, 996, 716, 2, 173, 330]
+[:mouse_move, 1000, 716, 2, 174, 331]
+[:mouse_move, 1004, 716, 2, 175, 332]
+[:mouse_move, 1007, 717, 2, 176, 333]
+[:mouse_move, 1010, 717, 2, 177, 334]
+[:mouse_move, 1017, 719, 2, 178, 335]
+[:mouse_move, 1021, 719, 2, 179, 336]
+[:mouse_move, 1029, 719, 2, 180, 337]
+[:mouse_move, 1169, 719, 2, 181, 365]
+[:mouse_move, 1170, 719, 2, 182, 367]
+[:mouse_move, 1171, 718, 2, 183, 368]
+[:mouse_move, 1172, 718, 2, 184, 369]
+[:mouse_move, 1172, 717, 2, 185, 371]
+[:mouse_move, 1173, 717, 2, 186, 371]
+[:mouse_move, 1173, 716, 2, 187, 373]
+[:mouse_move, 1174, 716, 2, 188, 373]
+[:mouse_move, 1175, 715, 2, 189, 375]
+[:mouse_move, 1175, 714, 2, 190, 376]
+[:mouse_move, 1175, 710, 2, 191, 377]
+[:mouse_move, 1173, 691, 2, 192, 378]
+[:mouse_move, 1167, 676, 2, 193, 379]
+[:mouse_move, 1143, 633, 2, 194, 380]
+[:mouse_move, 1112, 591, 2, 195, 381]
+[:mouse_move, 1069, 547, 2, 196, 382]
+[:mouse_move, 1057, 537, 2, 197, 383]
+[:mouse_move, 1026, 510, 2, 198, 384]
+[:mouse_move, 1021, 505, 2, 199, 385]
+[:mouse_move, 1002, 490, 2, 200, 386]
+[:mouse_move, 998, 487, 2, 201, 387]
+[:mouse_move, 996, 484, 2, 202, 388]
+[:mouse_move, 994, 483, 2, 203, 388]
+[:mouse_move, 993, 482, 2, 204, 389]
+[:mouse_move, 993, 481, 2, 205, 395]
+[:mouse_move, 992, 481, 2, 206, 398]
+[:mouse_move, 991, 480, 2, 207, 399]
+[:mouse_move, 990, 480, 2, 208, 400]
+[:mouse_move, 987, 478, 2, 209, 400]
+[:mouse_move, 983, 475, 2, 210, 401]
+[:mouse_move, 977, 472, 2, 211, 402]
+[:mouse_move, 974, 471, 2, 212, 402]
+[:mouse_move, 968, 467, 2, 213, 403]
+[:mouse_move, 963, 465, 2, 214, 404]
+[:mouse_move, 956, 463, 2, 215, 404]
+[:mouse_move, 951, 461, 2, 216, 405]
+[:mouse_move, 949, 460, 2, 217, 406]
+[:mouse_move, 942, 459, 2, 218, 407]
+[:mouse_move, 940, 458, 2, 219, 408]
+[:mouse_move, 937, 458, 2, 220, 409]
+[:mouse_move, 936, 458, 2, 221, 410]
+[:mouse_move, 935, 458, 2, 222, 412]
+[:mouse_button_pressed, 1, 0, 1, 223, 415]
+[:mouse_button_up, 1, 0, 1, 224, 423]
+[:key_down_player_two, 3, 0, 1, 225, 458]
+[:key_down_player_two, 26, 0, 1, 226, 458]
+[:key_held_player_two, 3, 0, 1, 227, 459]
+[:key_held_player_two, 26, 0, 1, 228, 459]
+[:key_held_player_two, 3, 0, 1, 229, 460]
+[:key_held_player_two, 26, 0, 1, 230, 460]
+[:key_held_player_two, 3, 0, 1, 231, 461]
+[:key_held_player_two, 26, 0, 1, 232, 461]
+[:key_held_player_two, 3, 0, 1, 233, 462]
+[:key_held_player_two, 26, 0, 1, 234, 462]
+[:key_held_player_two, 3, 0, 1, 235, 463]
+[:key_held_player_two, 26, 0, 1, 236, 463]
+[:key_held_player_two, 3, 0, 1, 237, 464]
+[:key_held_player_two, 26, 0, 1, 238, 464]
+[:key_held_player_two, 3, 0, 1, 239, 465]
+[:key_held_player_two, 26, 0, 1, 240, 465]
+[:key_held_player_two, 3, 0, 1, 241, 466]
+[:key_held_player_two, 26, 0, 1, 242, 466]
+[:key_held_player_two, 3, 0, 1, 243, 467]
+[:key_held_player_two, 26, 0, 1, 244, 467]
+[:key_held_player_two, 3, 0, 1, 245, 468]
+[:key_held_player_two, 26, 0, 1, 246, 468]
+[:key_held_player_two, 3, 0, 1, 247, 469]
+[:key_held_player_two, 26, 0, 1, 248, 469]
+[:key_held_player_two, 3, 0, 1, 249, 470]
+[:key_held_player_two, 26, 0, 1, 250, 470]
+[:key_held_player_two, 3, 0, 1, 251, 471]
+[:key_held_player_two, 26, 0, 1, 252, 471]
+[:key_held_player_two, 3, 0, 1, 253, 472]
+[:key_held_player_two, 26, 0, 1, 254, 472]
+[:key_held_player_two, 3, 0, 1, 255, 473]
+[:key_held_player_two, 26, 0, 1, 256, 473]
+[:key_held_player_two, 3, 0, 1, 257, 474]
+[:key_held_player_two, 26, 0, 1, 258, 474]
+[:key_held_player_two, 3, 0, 1, 259, 475]
+[:key_held_player_two, 26, 0, 1, 260, 475]
+[:key_held_player_two, 3, 0, 1, 261, 476]
+[:key_held_player_two, 26, 0, 1, 262, 476]
+[:key_held_player_two, 3, 0, 1, 263, 477]
+[:key_held_player_two, 26, 0, 1, 264, 477]
+[:key_up_player_two, 3, 0, 1, 265, 478]
+[:key_up_player_two, 26, 0, 1, 266, 478]
+[:mouse_button_pressed, 1, 0, 1, 267, 527]
+[:mouse_button_up, 1, 0, 1, 268, 534]
+[:key_down_player_two, 3, 0, 1, 269, 542]
+[:key_down_player_two, 26, 0, 1, 270, 542]
+[:key_held_player_two, 3, 0, 1, 271, 543]
+[:key_held_player_two, 26, 0, 1, 272, 543]
+[:key_held_player_two, 3, 0, 1, 273, 544]
+[:key_held_player_two, 26, 0, 1, 274, 544]
+[:key_held_player_two, 3, 0, 1, 275, 545]
+[:key_held_player_two, 26, 0, 1, 276, 545]
+[:key_held_player_two, 3, 0, 1, 277, 546]
+[:key_held_player_two, 26, 0, 1, 278, 546]
+[:key_held_player_two, 3, 0, 1, 279, 547]
+[:key_held_player_two, 26, 0, 1, 280, 547]
+[:key_held_player_two, 3, 0, 1, 281, 548]
+[:key_held_player_two, 26, 0, 1, 282, 548]
+[:key_held_player_two, 3, 0, 1, 283, 549]
+[:key_held_player_two, 26, 0, 1, 284, 549]
+[:key_held_player_two, 3, 0, 1, 285, 550]
+[:key_held_player_two, 26, 0, 1, 286, 550]
+[:key_held_player_two, 3, 0, 1, 287, 551]
+[:key_held_player_two, 26, 0, 1, 288, 551]
+[:key_held_player_two, 3, 0, 1, 289, 552]
+[:key_held_player_two, 26, 0, 1, 290, 552]
+[:key_held_player_two, 3, 0, 1, 291, 553]
+[:key_held_player_two, 26, 0, 1, 292, 553]
+[:key_held_player_two, 3, 0, 1, 293, 554]
+[:key_held_player_two, 26, 0, 1, 294, 554]
+[:key_held_player_two, 3, 0, 1, 295, 555]
+[:key_held_player_two, 26, 0, 1, 296, 555]
+[:key_held_player_two, 3, 0, 1, 297, 556]
+[:key_held_player_two, 26, 0, 1, 298, 556]
+[:key_held_player_two, 3, 0, 1, 299, 557]
+[:key_held_player_two, 26, 0, 1, 300, 557]
+[:key_up_player_two, 3, 0, 1, 301, 558]
+[:key_up_player_two, 26, 0, 1, 302, 558]
+[:key_down_player_two, 4, 0, 1, 303, 562]
+[:key_down_player_two, 27, 0, 1, 304, 562]
+[:key_held_player_two, 4, 0, 1, 305, 563]
+[:key_held_player_two, 27, 0, 1, 306, 563]
+[:key_held_player_two, 4, 0, 1, 307, 564]
+[:key_held_player_two, 27, 0, 1, 308, 564]
+[:key_held_player_two, 4, 0, 1, 309, 565]
+[:key_held_player_two, 27, 0, 1, 310, 565]
+[:key_held_player_two, 4, 0, 1, 311, 566]
+[:key_held_player_two, 27, 0, 1, 312, 566]
+[:key_held_player_two, 4, 0, 1, 313, 567]
+[:key_held_player_two, 27, 0, 1, 314, 567]
+[:key_held_player_two, 4, 0, 1, 315, 568]
+[:key_held_player_two, 27, 0, 1, 316, 568]
+[:key_held_player_two, 4, 0, 1, 317, 569]
+[:key_held_player_two, 27, 0, 1, 318, 569]
+[:key_held_player_two, 4, 0, 1, 319, 570]
+[:key_held_player_two, 27, 0, 1, 320, 570]
+[:key_held_player_two, 4, 0, 1, 321, 571]
+[:key_held_player_two, 27, 0, 1, 322, 571]
+[:key_held_player_two, 4, 0, 1, 323, 572]
+[:key_held_player_two, 27, 0, 1, 324, 572]
+[:key_down_player_two, 1, 0, 1, 325, 573]
+[:key_held_player_two, 4, 0, 1, 326, 573]
+[:key_down_player_two, 24, 0, 1, 327, 573]
+[:key_held_player_two, 27, 0, 1, 328, 573]
+[:key_held_player_two, 1, 0, 1, 329, 574]
+[:key_held_player_two, 4, 0, 1, 330, 574]
+[:key_held_player_two, 24, 0, 1, 331, 574]
+[:key_held_player_two, 27, 0, 1, 332, 574]
+[:key_held_player_two, 1, 0, 1, 333, 575]
+[:key_held_player_two, 4, 0, 1, 334, 575]
+[:key_held_player_two, 24, 0, 1, 335, 575]
+[:key_held_player_two, 27, 0, 1, 336, 575]
+[:key_held_player_two, 1, 0, 1, 337, 576]
+[:key_held_player_two, 4, 0, 1, 338, 576]
+[:key_held_player_two, 24, 0, 1, 339, 576]
+[:key_held_player_two, 27, 0, 1, 340, 576]
+[:key_held_player_two, 1, 0, 1, 341, 577]
+[:key_held_player_two, 4, 0, 1, 342, 577]
+[:key_held_player_two, 24, 0, 1, 343, 577]
+[:key_held_player_two, 27, 0, 1, 344, 577]
+[:key_up_player_two, 1, 0, 1, 345, 578]
+[:key_held_player_two, 4, 0, 1, 346, 578]
+[:key_up_player_two, 24, 0, 1, 347, 578]
+[:key_held_player_two, 27, 0, 1, 348, 578]
+[:key_held_player_two, 4, 0, 1, 349, 579]
+[:key_held_player_two, 27, 0, 1, 350, 579]
+[:key_held_player_two, 4, 0, 1, 351, 580]
+[:key_held_player_two, 27, 0, 1, 352, 580]
+[:key_held_player_two, 4, 0, 1, 353, 581]
+[:key_held_player_two, 27, 0, 1, 354, 581]
+[:key_held_player_two, 4, 0, 1, 355, 582]
+[:key_held_player_two, 27, 0, 1, 356, 582]
+[:key_held_player_two, 4, 0, 1, 357, 583]
+[:key_held_player_two, 27, 0, 1, 358, 583]
+[:key_held_player_two, 4, 0, 1, 359, 584]
+[:key_held_player_two, 27, 0, 1, 360, 584]
+[:key_held_player_two, 4, 0, 1, 361, 585]
+[:key_held_player_two, 27, 0, 1, 362, 585]
+[:key_held_player_two, 4, 0, 1, 363, 586]
+[:key_held_player_two, 27, 0, 1, 364, 586]
+[:key_held_player_two, 4, 0, 1, 365, 587]
+[:key_held_player_two, 27, 0, 1, 366, 587]
+[:key_held_player_two, 4, 0, 1, 367, 588]
+[:key_held_player_two, 27, 0, 1, 368, 588]
+[:key_held_player_two, 4, 0, 1, 369, 589]
+[:key_held_player_two, 27, 0, 1, 370, 589]
+[:key_held_player_two, 4, 0, 1, 371, 590]
+[:key_held_player_two, 27, 0, 1, 372, 590]
+[:key_held_player_two, 4, 0, 1, 373, 591]
+[:key_held_player_two, 27, 0, 1, 374, 591]
+[:key_held_player_two, 4, 0, 1, 375, 592]
+[:key_held_player_two, 27, 0, 1, 376, 592]
+[:key_held_player_two, 4, 0, 1, 377, 593]
+[:key_held_player_two, 27, 0, 1, 378, 593]
+[:key_held_player_two, 4, 0, 1, 379, 594]
+[:key_held_player_two, 27, 0, 1, 380, 594]
+[:key_held_player_two, 4, 0, 1, 381, 595]
+[:key_held_player_two, 27, 0, 1, 382, 595]
+[:key_held_player_two, 4, 0, 1, 383, 596]
+[:key_held_player_two, 27, 0, 1, 384, 596]
+[:key_up_player_two, 4, 0, 1, 385, 597]
+[:key_up_player_two, 27, 0, 1, 386, 597]
+[:key_down_player_two, 3, 0, 1, 387, 603]
+[:key_down_player_two, 26, 0, 1, 388, 603]
+[:key_held_player_two, 3, 0, 1, 389, 604]
+[:key_held_player_two, 26, 0, 1, 390, 604]
+[:key_held_player_two, 3, 0, 1, 391, 605]
+[:key_held_player_two, 26, 0, 1, 392, 605]
+[:key_held_player_two, 3, 0, 1, 393, 606]
+[:key_held_player_two, 26, 0, 1, 394, 606]
+[:key_held_player_two, 3, 0, 1, 395, 607]
+[:key_held_player_two, 26, 0, 1, 396, 607]
+[:key_held_player_two, 3, 0, 1, 397, 608]
+[:key_held_player_two, 26, 0, 1, 398, 608]
+[:key_held_player_two, 3, 0, 1, 399, 609]
+[:key_held_player_two, 26, 0, 1, 400, 609]
+[:key_held_player_two, 3, 0, 1, 401, 610]
+[:key_held_player_two, 26, 0, 1, 402, 610]
+[:key_held_player_two, 3, 0, 1, 403, 611]
+[:key_held_player_two, 26, 0, 1, 404, 611]
+[:key_held_player_two, 3, 0, 1, 405, 612]
+[:key_held_player_two, 26, 0, 1, 406, 612]
+[:key_held_player_two, 3, 0, 1, 407, 613]
+[:key_held_player_two, 26, 0, 1, 408, 613]
+[:key_held_player_two, 3, 0, 1, 409, 614]
+[:key_held_player_two, 26, 0, 1, 410, 614]
+[:key_held_player_two, 3, 0, 1, 411, 615]
+[:key_held_player_two, 26, 0, 1, 412, 615]
+[:key_held_player_two, 3, 0, 1, 413, 616]
+[:key_held_player_two, 26, 0, 1, 414, 616]
+[:key_held_player_two, 3, 0, 1, 415, 617]
+[:key_down_player_two, 19, 0, 1, 416, 617]
+[:key_held_player_two, 26, 0, 1, 417, 617]
+[:key_held_player_two, 3, 0, 1, 418, 618]
+[:key_held_player_two, 19, 0, 1, 419, 618]
+[:key_held_player_two, 26, 0, 1, 420, 618]
+[:key_held_player_two, 3, 0, 1, 421, 619]
+[:key_held_player_two, 19, 0, 1, 422, 619]
+[:key_held_player_two, 26, 0, 1, 423, 619]
+[:key_held_player_two, 3, 0, 1, 424, 620]
+[:key_held_player_two, 19, 0, 1, 425, 620]
+[:key_held_player_two, 26, 0, 1, 426, 620]
+[:key_held_player_two, 3, 0, 1, 427, 621]
+[:key_held_player_two, 19, 0, 1, 428, 621]
+[:key_held_player_two, 26, 0, 1, 429, 621]
+[:key_up_player_two, 3, 0, 1, 430, 622]
+[:key_held_player_two, 19, 0, 1, 431, 622]
+[:key_up_player_two, 26, 0, 1, 432, 622]
+[:key_held_player_two, 19, 0, 1, 433, 623]
+[:key_held_player_two, 19, 0, 1, 434, 624]
+[:key_held_player_two, 19, 0, 1, 435, 625]
+[:key_held_player_two, 19, 0, 1, 436, 626]
+[:key_held_player_two, 19, 0, 1, 437, 627]
+[:key_held_player_two, 19, 0, 1, 438, 628]
+[:key_held_player_two, 19, 0, 1, 439, 629]
+[:key_held_player_two, 19, 0, 1, 440, 630]
+[:key_down_player_two, 4, 0, 1, 441, 631]
+[:key_held_player_two, 19, 0, 1, 442, 631]
+[:key_down_player_two, 27, 0, 1, 443, 631]
+[:key_held_player_two, 4, 0, 1, 444, 632]
+[:key_held_player_two, 19, 0, 1, 445, 632]
+[:key_held_player_two, 27, 0, 1, 446, 632]
+[:key_held_player_two, 4, 0, 1, 447, 633]
+[:key_held_player_two, 19, 0, 1, 448, 633]
+[:key_held_player_two, 27, 0, 1, 449, 633]
+[:key_held_player_two, 4, 0, 1, 450, 634]
+[:key_held_player_two, 19, 0, 1, 451, 634]
+[:key_held_player_two, 27, 0, 1, 452, 634]
+[:key_held_player_two, 4, 0, 1, 453, 635]
+[:key_held_player_two, 19, 0, 1, 454, 635]
+[:key_held_player_two, 27, 0, 1, 455, 635]
+[:key_held_player_two, 4, 0, 1, 456, 636]
+[:key_held_player_two, 19, 0, 1, 457, 636]
+[:key_held_player_two, 27, 0, 1, 458, 636]
+[:key_held_player_two, 4, 0, 1, 459, 637]
+[:key_held_player_two, 19, 0, 1, 460, 637]
+[:key_held_player_two, 27, 0, 1, 461, 637]
+[:key_held_player_two, 4, 0, 1, 462, 638]
+[:key_held_player_two, 19, 0, 1, 463, 638]
+[:key_held_player_two, 27, 0, 1, 464, 638]
+[:key_held_player_two, 4, 0, 1, 465, 639]
+[:key_held_player_two, 19, 0, 1, 466, 639]
+[:key_held_player_two, 27, 0, 1, 467, 639]
+[:key_held_player_two, 4, 0, 1, 468, 640]
+[:key_held_player_two, 19, 0, 1, 469, 640]
+[:key_held_player_two, 27, 0, 1, 470, 640]
+[:key_held_player_two, 4, 0, 1, 471, 641]
+[:key_held_player_two, 19, 0, 1, 472, 641]
+[:key_held_player_two, 27, 0, 1, 473, 641]
+[:key_held_player_two, 4, 0, 1, 474, 642]
+[:key_held_player_two, 19, 0, 1, 475, 642]
+[:key_held_player_two, 27, 0, 1, 476, 642]
+[:key_held_player_two, 4, 0, 1, 477, 643]
+[:key_held_player_two, 19, 0, 1, 478, 643]
+[:key_held_player_two, 27, 0, 1, 479, 643]
+[:key_held_player_two, 4, 0, 1, 480, 644]
+[:key_held_player_two, 19, 0, 1, 481, 644]
+[:key_held_player_two, 27, 0, 1, 482, 644]
+[:key_held_player_two, 4, 0, 1, 483, 645]
+[:key_held_player_two, 19, 0, 1, 484, 645]
+[:key_held_player_two, 27, 0, 1, 485, 645]
+[:key_held_player_two, 4, 0, 1, 486, 646]
+[:key_held_player_two, 19, 0, 1, 487, 646]
+[:key_held_player_two, 27, 0, 1, 488, 646]
+[:key_held_player_two, 4, 0, 1, 489, 647]
+[:key_held_player_two, 19, 0, 1, 490, 647]
+[:key_held_player_two, 27, 0, 1, 491, 647]
+[:key_held_player_two, 4, 0, 1, 492, 648]
+[:key_held_player_two, 19, 0, 1, 493, 648]
+[:key_held_player_two, 27, 0, 1, 494, 648]
+[:key_held_player_two, 4, 0, 1, 495, 649]
+[:key_held_player_two, 19, 0, 1, 496, 649]
+[:key_held_player_two, 27, 0, 1, 497, 649]
+[:key_held_player_two, 4, 0, 1, 498, 650]
+[:key_held_player_two, 19, 0, 1, 499, 650]
+[:key_held_player_two, 27, 0, 1, 500, 650]
+[:key_held_player_two, 4, 0, 1, 501, 651]
+[:key_held_player_two, 19, 0, 1, 502, 651]
+[:key_held_player_two, 27, 0, 1, 503, 651]
+[:key_held_player_two, 4, 0, 1, 504, 652]
+[:key_held_player_two, 19, 0, 1, 505, 652]
+[:key_held_player_two, 27, 0, 1, 506, 652]
+[:key_down_player_two, 1, 0, 1, 507, 653]
+[:key_held_player_two, 4, 0, 1, 508, 653]
+[:key_held_player_two, 19, 0, 1, 509, 653]
+[:key_down_player_two, 24, 0, 1, 510, 653]
+[:key_held_player_two, 27, 0, 1, 511, 653]
+[:key_held_player_two, 1, 0, 1, 512, 654]
+[:key_held_player_two, 4, 0, 1, 513, 654]
+[:key_held_player_two, 19, 0, 1, 514, 654]
+[:key_held_player_two, 24, 0, 1, 515, 654]
+[:key_held_player_two, 27, 0, 1, 516, 654]
+[:key_held_player_two, 1, 0, 1, 517, 655]
+[:key_held_player_two, 4, 0, 1, 518, 655]
+[:key_held_player_two, 19, 0, 1, 519, 655]
+[:key_held_player_two, 24, 0, 1, 520, 655]
+[:key_held_player_two, 27, 0, 1, 521, 655]
+[:key_up_player_two, 1, 0, 1, 522, 656]
+[:key_up_player_two, 4, 0, 1, 523, 656]
+[:key_held_player_two, 19, 0, 1, 524, 656]
+[:key_up_player_two, 24, 0, 1, 525, 656]
+[:key_up_player_two, 27, 0, 1, 526, 656]
+[:key_held_player_two, 19, 0, 1, 527, 657]
+[:key_held_player_two, 19, 0, 1, 528, 658]
+[:key_held_player_two, 19, 0, 1, 529, 659]
+[:key_held_player_two, 19, 0, 1, 530, 660]
+[:key_held_player_two, 19, 0, 1, 531, 661]
+[:key_held_player_two, 19, 0, 1, 532, 662]
+[:key_held_player_two, 19, 0, 1, 533, 663]
+[:key_held_player_two, 19, 0, 1, 534, 664]
+[:key_down_player_two, 3, 0, 1, 535, 665]
+[:key_held_player_two, 19, 0, 1, 536, 665]
+[:key_down_player_two, 26, 0, 1, 537, 665]
+[:key_held_player_two, 3, 0, 1, 538, 666]
+[:key_held_player_two, 19, 0, 1, 539, 666]
+[:key_held_player_two, 26, 0, 1, 540, 666]
+[:key_held_player_two, 3, 0, 1, 541, 667]
+[:key_held_player_two, 19, 0, 1, 542, 667]
+[:key_held_player_two, 26, 0, 1, 543, 667]
+[:key_held_player_two, 3, 0, 1, 544, 668]
+[:key_held_player_two, 19, 0, 1, 545, 668]
+[:key_held_player_two, 26, 0, 1, 546, 668]
+[:key_held_player_two, 3, 0, 1, 547, 669]
+[:key_held_player_two, 19, 0, 1, 548, 669]
+[:key_held_player_two, 26, 0, 1, 549, 669]
+[:key_held_player_two, 3, 0, 1, 550, 670]
+[:key_held_player_two, 19, 0, 1, 551, 670]
+[:key_held_player_two, 26, 0, 1, 552, 670]
+[:key_held_player_two, 3, 0, 1, 553, 671]
+[:key_down_player_two, 14, 0, 1, 554, 671]
+[:key_held_player_two, 19, 0, 1, 555, 671]
+[:key_held_player_two, 26, 0, 1, 556, 671]
+[:key_held_player_two, 3, 0, 1, 557, 672]
+[:key_held_player_two, 14, 0, 1, 558, 672]
+[:key_held_player_two, 19, 0, 1, 559, 672]
+[:key_held_player_two, 26, 0, 1, 560, 672]
+[:key_held_player_two, 3, 0, 1, 561, 673]
+[:key_held_player_two, 14, 0, 1, 562, 673]
+[:key_held_player_two, 19, 0, 1, 563, 673]
+[:key_held_player_two, 26, 0, 1, 564, 673]
+[:key_held_player_two, 3, 0, 1, 565, 674]
+[:key_held_player_two, 14, 0, 1, 566, 674]
+[:key_held_player_two, 19, 0, 1, 567, 674]
+[:key_held_player_two, 26, 0, 1, 568, 674]
+[:key_held_player_two, 3, 0, 1, 569, 675]
+[:key_held_player_two, 14, 0, 1, 570, 675]
+[:key_held_player_two, 19, 0, 1, 571, 675]
+[:key_held_player_two, 26, 0, 1, 572, 675]
+[:key_held_player_two, 3, 0, 1, 573, 676]
+[:key_held_player_two, 14, 0, 1, 574, 676]
+[:key_held_player_two, 19, 0, 1, 575, 676]
+[:key_held_player_two, 26, 0, 1, 576, 676]
+[:key_held_player_two, 3, 0, 1, 577, 677]
+[:key_held_player_two, 14, 0, 1, 578, 677]
+[:key_held_player_two, 19, 0, 1, 579, 677]
+[:key_held_player_two, 26, 0, 1, 580, 677]
+[:key_held_player_two, 3, 0, 1, 581, 678]
+[:key_held_player_two, 14, 0, 1, 582, 678]
+[:key_held_player_two, 19, 0, 1, 583, 678]
+[:key_held_player_two, 26, 0, 1, 584, 678]
+[:key_held_player_two, 3, 0, 1, 585, 679]
+[:key_held_player_two, 14, 0, 1, 586, 679]
+[:key_held_player_two, 19, 0, 1, 587, 679]
+[:key_held_player_two, 26, 0, 1, 588, 679]
+[:key_held_player_two, 3, 0, 1, 589, 680]
+[:key_held_player_two, 14, 0, 1, 590, 680]
+[:key_held_player_two, 19, 0, 1, 591, 680]
+[:key_held_player_two, 26, 0, 1, 592, 680]
+[:key_held_player_two, 3, 0, 1, 593, 681]
+[:key_held_player_two, 14, 0, 1, 594, 681]
+[:key_held_player_two, 19, 0, 1, 595, 681]
+[:key_held_player_two, 26, 0, 1, 596, 681]
+[:key_held_player_two, 3, 0, 1, 597, 682]
+[:key_held_player_two, 14, 0, 1, 598, 682]
+[:key_held_player_two, 19, 0, 1, 599, 682]
+[:key_held_player_two, 26, 0, 1, 600, 682]
+[:key_held_player_two, 3, 0, 1, 601, 683]
+[:key_held_player_two, 14, 0, 1, 602, 683]
+[:key_held_player_two, 19, 0, 1, 603, 683]
+[:key_held_player_two, 26, 0, 1, 604, 683]
+[:key_held_player_two, 3, 0, 1, 605, 684]
+[:key_held_player_two, 14, 0, 1, 606, 684]
+[:key_held_player_two, 19, 0, 1, 607, 684]
+[:key_held_player_two, 26, 0, 1, 608, 684]
+[:key_held_player_two, 3, 0, 1, 609, 685]
+[:key_held_player_two, 14, 0, 1, 610, 685]
+[:key_held_player_two, 19, 0, 1, 611, 685]
+[:key_held_player_two, 26, 0, 1, 612, 685]
+[:key_held_player_two, 3, 0, 1, 613, 686]
+[:key_held_player_two, 14, 0, 1, 614, 686]
+[:key_held_player_two, 19, 0, 1, 615, 686]
+[:key_held_player_two, 26, 0, 1, 616, 686]
+[:key_up_player_two, 3, 0, 1, 617, 687]
+[:key_held_player_two, 14, 0, 1, 618, 687]
+[:key_held_player_two, 19, 0, 1, 619, 687]
+[:key_up_player_two, 26, 0, 1, 620, 687]
+[:key_held_player_two, 14, 0, 1, 621, 688]
+[:key_held_player_two, 19, 0, 1, 622, 688]
+[:key_held_player_two, 14, 0, 1, 623, 689]
+[:key_held_player_two, 19, 0, 1, 624, 689]
+[:key_held_player_two, 14, 0, 1, 625, 690]
+[:key_held_player_two, 19, 0, 1, 626, 690]
+[:key_held_player_two, 14, 0, 1, 627, 691]
+[:key_held_player_two, 19, 0, 1, 628, 691]
+[:key_up_player_two, 14, 0, 1, 629, 692]
+[:key_held_player_two, 19, 0, 1, 630, 692]
+[:key_held_player_two, 19, 0, 1, 631, 693]
+[:key_held_player_two, 19, 0, 1, 632, 694]
+[:key_held_player_two, 19, 0, 1, 633, 695]
+[:key_held_player_two, 19, 0, 1, 634, 696]
+[:key_held_player_two, 19, 0, 1, 635, 697]
+[:key_held_player_two, 19, 0, 1, 636, 698]
+[:key_down_player_two, 14, 0, 1, 637, 699]
+[:key_held_player_two, 19, 0, 1, 638, 699]
+[:key_held_player_two, 14, 0, 1, 639, 700]
+[:key_held_player_two, 19, 0, 1, 640, 700]
+[:key_held_player_two, 14, 0, 1, 641, 701]
+[:key_held_player_two, 19, 0, 1, 642, 701]
+[:key_held_player_two, 14, 0, 1, 643, 702]
+[:key_held_player_two, 19, 0, 1, 644, 702]
+[:key_held_player_two, 14, 0, 1, 645, 703]
+[:key_held_player_two, 19, 0, 1, 646, 703]
+[:key_held_player_two, 14, 0, 1, 647, 704]
+[:key_held_player_two, 19, 0, 1, 648, 704]
+[:key_held_player_two, 14, 0, 1, 649, 705]
+[:key_held_player_two, 19, 0, 1, 650, 705]
+[:key_up_player_two, 14, 0, 1, 651, 706]
+[:key_held_player_two, 19, 0, 1, 652, 706]
+[:key_held_player_two, 19, 0, 1, 653, 707]
+[:key_held_player_two, 19, 0, 1, 654, 708]
+[:key_held_player_two, 19, 0, 1, 655, 709]
+[:key_down_player_two, 4, 0, 1, 656, 710]
+[:key_down_player_two, 14, 0, 1, 657, 710]
+[:key_held_player_two, 19, 0, 1, 658, 710]
+[:key_down_player_two, 27, 0, 1, 659, 710]
+[:key_held_player_two, 4, 0, 1, 660, 711]
+[:key_held_player_two, 14, 0, 1, 661, 711]
+[:key_held_player_two, 19, 0, 1, 662, 711]
+[:key_held_player_two, 27, 0, 1, 663, 711]
+[:key_held_player_two, 4, 0, 1, 664, 712]
+[:key_held_player_two, 14, 0, 1, 665, 712]
+[:key_held_player_two, 19, 0, 1, 666, 712]
+[:key_held_player_two, 27, 0, 1, 667, 712]
+[:key_held_player_two, 4, 0, 1, 668, 713]
+[:key_held_player_two, 14, 0, 1, 669, 713]
+[:key_held_player_two, 19, 0, 1, 670, 713]
+[:key_held_player_two, 27, 0, 1, 671, 713]
+[:key_held_player_two, 4, 0, 1, 672, 714]
+[:key_held_player_two, 14, 0, 1, 673, 714]
+[:key_held_player_two, 19, 0, 1, 674, 714]
+[:key_held_player_two, 27, 0, 1, 675, 714]
+[:key_held_player_two, 4, 0, 1, 676, 715]
+[:key_held_player_two, 14, 0, 1, 677, 715]
+[:key_held_player_two, 19, 0, 1, 678, 715]
+[:key_held_player_two, 27, 0, 1, 679, 715]
+[:key_held_player_two, 4, 0, 1, 680, 716]
+[:key_held_player_two, 14, 0, 1, 681, 716]
+[:key_held_player_two, 19, 0, 1, 682, 716]
+[:key_held_player_two, 27, 0, 1, 683, 716]
+[:key_up_player_two, 4, 0, 1, 684, 717]
+[:key_up_player_two, 14, 0, 1, 685, 717]
+[:key_held_player_two, 19, 0, 1, 686, 717]
+[:key_up_player_two, 27, 0, 1, 687, 717]
+[:key_held_player_two, 19, 0, 1, 688, 718]
+[:key_held_player_two, 19, 0, 1, 689, 719]
+[:key_held_player_two, 19, 0, 1, 690, 720]
+[:key_held_player_two, 19, 0, 1, 691, 721]
+[:key_down_player_two, 14, 0, 1, 692, 722]
+[:key_held_player_two, 19, 0, 1, 693, 722]
+[:key_held_player_two, 14, 0, 1, 694, 723]
+[:key_held_player_two, 19, 0, 1, 695, 723]
+[:key_held_player_two, 14, 0, 1, 696, 724]
+[:key_held_player_two, 19, 0, 1, 697, 724]
+[:key_held_player_two, 14, 0, 1, 698, 725]
+[:key_held_player_two, 19, 0, 1, 699, 725]
+[:key_held_player_two, 14, 0, 1, 700, 726]
+[:key_held_player_two, 19, 0, 1, 701, 726]
+[:key_up_player_two, 14, 0, 1, 702, 727]
+[:key_held_player_two, 19, 0, 1, 703, 727]
+[:key_held_player_two, 19, 0, 1, 704, 728]
+[:key_held_player_two, 19, 0, 1, 705, 729]
+[:key_held_player_two, 19, 0, 1, 706, 730]
+[:key_down_player_two, 14, 0, 1, 707, 731]
+[:key_held_player_two, 19, 0, 1, 708, 731]
+[:key_held_player_two, 14, 0, 1, 709, 732]
+[:key_held_player_two, 19, 0, 1, 710, 732]
+[:key_held_player_two, 14, 0, 1, 711, 733]
+[:key_held_player_two, 19, 0, 1, 712, 733]
+[:key_held_player_two, 14, 0, 1, 713, 734]
+[:key_held_player_two, 19, 0, 1, 714, 734]
+[:key_held_player_two, 14, 0, 1, 715, 735]
+[:key_held_player_two, 19, 0, 1, 716, 735]
+[:key_held_player_two, 14, 0, 1, 717, 736]
+[:key_held_player_two, 19, 0, 1, 718, 736]
+[:key_held_player_two, 14, 0, 1, 719, 737]
+[:key_held_player_two, 19, 0, 1, 720, 737]
+[:key_up_player_two, 14, 0, 1, 721, 738]
+[:key_held_player_two, 19, 0, 1, 722, 738]
+[:key_held_player_two, 19, 0, 1, 723, 739]
+[:key_held_player_two, 19, 0, 1, 724, 740]
+[:key_down_player_two, 14, 0, 1, 725, 741]
+[:key_held_player_two, 19, 0, 1, 726, 741]
+[:key_held_player_two, 14, 0, 1, 727, 742]
+[:key_held_player_two, 19, 0, 1, 728, 742]
+[:key_held_player_two, 14, 0, 1, 729, 743]
+[:key_held_player_two, 19, 0, 1, 730, 743]
+[:key_held_player_two, 14, 0, 1, 731, 744]
+[:key_held_player_two, 19, 0, 1, 732, 744]
+[:key_held_player_two, 14, 0, 1, 733, 745]
+[:key_held_player_two, 19, 0, 1, 734, 745]
+[:key_held_player_two, 14, 0, 1, 735, 746]
+[:key_held_player_two, 19, 0, 1, 736, 746]
+[:key_held_player_two, 14, 0, 1, 737, 747]
+[:key_held_player_two, 19, 0, 1, 738, 747]
+[:key_held_player_two, 14, 0, 1, 739, 748]
+[:key_held_player_two, 19, 0, 1, 740, 748]
+[:key_up_player_two, 14, 0, 1, 741, 749]
+[:key_held_player_two, 19, 0, 1, 742, 749]
+[:key_held_player_two, 19, 0, 1, 743, 750]
+[:key_held_player_two, 19, 0, 1, 744, 751]
+[:key_held_player_two, 19, 0, 1, 745, 752]
+[:key_held_player_two, 19, 0, 1, 746, 753]
+[:key_down_player_two, 4, 0, 1, 747, 754]
+[:key_down_player_two, 14, 0, 1, 748, 754]
+[:key_held_player_two, 19, 0, 1, 749, 754]
+[:key_down_player_two, 27, 0, 1, 750, 754]
+[:key_held_player_two, 4, 0, 1, 751, 755]
+[:key_held_player_two, 14, 0, 1, 752, 755]
+[:key_held_player_two, 19, 0, 1, 753, 755]
+[:key_held_player_two, 27, 0, 1, 754, 755]
+[:key_held_player_two, 4, 0, 1, 755, 756]
+[:key_held_player_two, 14, 0, 1, 756, 756]
+[:key_held_player_two, 19, 0, 1, 757, 756]
+[:key_held_player_two, 27, 0, 1, 758, 756]
+[:key_held_player_two, 4, 0, 1, 759, 757]
+[:key_held_player_two, 14, 0, 1, 760, 757]
+[:key_held_player_two, 19, 0, 1, 761, 757]
+[:key_held_player_two, 27, 0, 1, 762, 757]
+[:key_held_player_two, 4, 0, 1, 763, 758]
+[:key_held_player_two, 14, 0, 1, 764, 758]
+[:key_held_player_two, 19, 0, 1, 765, 758]
+[:key_held_player_two, 27, 0, 1, 766, 758]
+[:key_held_player_two, 4, 0, 1, 767, 759]
+[:key_held_player_two, 14, 0, 1, 768, 759]
+[:key_held_player_two, 19, 0, 1, 769, 759]
+[:key_held_player_two, 27, 0, 1, 770, 759]
+[:key_held_player_two, 4, 0, 1, 771, 760]
+[:key_held_player_two, 14, 0, 1, 772, 760]
+[:key_held_player_two, 19, 0, 1, 773, 760]
+[:key_held_player_two, 27, 0, 1, 774, 760]
+[:key_held_player_two, 4, 0, 1, 775, 761]
+[:key_up_player_two, 14, 0, 1, 776, 761]
+[:key_held_player_two, 19, 0, 1, 777, 761]
+[:key_held_player_two, 27, 0, 1, 778, 761]
+[:key_held_player_two, 4, 0, 1, 779, 762]
+[:key_held_player_two, 19, 0, 1, 780, 762]
+[:key_held_player_two, 27, 0, 1, 781, 762]
+[:key_held_player_two, 4, 0, 1, 782, 763]
+[:key_held_player_two, 19, 0, 1, 783, 763]
+[:key_held_player_two, 27, 0, 1, 784, 763]
+[:key_held_player_two, 4, 0, 1, 785, 764]
+[:key_held_player_two, 19, 0, 1, 786, 764]
+[:key_held_player_two, 27, 0, 1, 787, 764]
+[:key_held_player_two, 4, 0, 1, 788, 765]
+[:key_held_player_two, 19, 0, 1, 789, 765]
+[:key_held_player_two, 27, 0, 1, 790, 765]
+[:key_held_player_two, 4, 0, 1, 791, 766]
+[:key_down_player_two, 14, 0, 1, 792, 766]
+[:key_held_player_two, 19, 0, 1, 793, 766]
+[:key_held_player_two, 27, 0, 1, 794, 766]
+[:key_held_player_two, 4, 0, 1, 795, 767]
+[:key_held_player_two, 14, 0, 1, 796, 767]
+[:key_held_player_two, 19, 0, 1, 797, 767]
+[:key_held_player_two, 27, 0, 1, 798, 767]
+[:key_held_player_two, 4, 0, 1, 799, 768]
+[:key_held_player_two, 14, 0, 1, 800, 768]
+[:key_held_player_two, 19, 0, 1, 801, 768]
+[:key_held_player_two, 27, 0, 1, 802, 768]
+[:key_held_player_two, 4, 0, 1, 803, 769]
+[:key_held_player_two, 14, 0, 1, 804, 769]
+[:key_held_player_two, 19, 0, 1, 805, 769]
+[:key_held_player_two, 27, 0, 1, 806, 769]
+[:key_held_player_two, 4, 0, 1, 807, 770]
+[:key_held_player_two, 14, 0, 1, 808, 770]
+[:key_held_player_two, 19, 0, 1, 809, 770]
+[:key_held_player_two, 27, 0, 1, 810, 770]
+[:key_held_player_two, 4, 0, 1, 811, 771]
+[:key_held_player_two, 14, 0, 1, 812, 771]
+[:key_held_player_two, 19, 0, 1, 813, 771]
+[:key_held_player_two, 27, 0, 1, 814, 771]
+[:key_held_player_two, 4, 0, 1, 815, 772]
+[:key_held_player_two, 14, 0, 1, 816, 772]
+[:key_held_player_two, 19, 0, 1, 817, 772]
+[:key_held_player_two, 27, 0, 1, 818, 772]
+[:key_held_player_two, 4, 0, 1, 819, 773]
+[:key_held_player_two, 14, 0, 1, 820, 773]
+[:key_held_player_two, 19, 0, 1, 821, 773]
+[:key_held_player_two, 27, 0, 1, 822, 773]
+[:key_held_player_two, 4, 0, 1, 823, 774]
+[:key_up_player_two, 14, 0, 1, 824, 774]
+[:key_held_player_two, 19, 0, 1, 825, 774]
+[:key_held_player_two, 27, 0, 1, 826, 774]
+[:key_held_player_two, 4, 0, 1, 827, 775]
+[:key_held_player_two, 19, 0, 1, 828, 775]
+[:key_held_player_two, 27, 0, 1, 829, 775]
+[:key_up_player_two, 4, 0, 1, 830, 776]
+[:key_held_player_two, 19, 0, 1, 831, 776]
+[:key_up_player_two, 27, 0, 1, 832, 776]
+[:key_held_player_two, 19, 0, 1, 833, 777]
+[:key_held_player_two, 19, 0, 1, 834, 778]
+[:key_down_player_two, 14, 0, 1, 835, 779]
+[:key_held_player_two, 19, 0, 1, 836, 779]
+[:key_held_player_two, 14, 0, 1, 837, 780]
+[:key_held_player_two, 19, 0, 1, 838, 780]
+[:key_held_player_two, 14, 0, 1, 839, 781]
+[:key_held_player_two, 19, 0, 1, 840, 781]
+[:key_held_player_two, 14, 0, 1, 841, 782]
+[:key_held_player_two, 19, 0, 1, 842, 782]
+[:key_held_player_two, 14, 0, 1, 843, 783]
+[:key_held_player_two, 19, 0, 1, 844, 783]
+[:key_held_player_two, 14, 0, 1, 845, 784]
+[:key_held_player_two, 19, 0, 1, 846, 784]
+[:key_up_player_two, 14, 0, 1, 847, 785]
+[:key_held_player_two, 19, 0, 1, 848, 785]
+[:key_held_player_two, 19, 0, 1, 849, 786]
+[:key_held_player_two, 19, 0, 1, 850, 787]
+[:key_held_player_two, 19, 0, 1, 851, 788]
+[:key_held_player_two, 19, 0, 1, 852, 789]
+[:key_held_player_two, 19, 0, 1, 853, 790]
+[:key_held_player_two, 19, 0, 1, 854, 791]
+[:key_held_player_two, 19, 0, 1, 855, 792]
+[:key_held_player_two, 19, 0, 1, 856, 793]
+[:key_held_player_two, 19, 0, 1, 857, 794]
+[:key_held_player_two, 19, 0, 1, 858, 795]
+[:key_held_player_two, 19, 0, 1, 859, 796]
+[:key_held_player_two, 19, 0, 1, 860, 797]
+[:key_held_player_two, 19, 0, 1, 861, 798]
+[:key_held_player_two, 19, 0, 1, 862, 799]
+[:key_held_player_two, 19, 0, 1, 863, 800]
+[:key_held_player_two, 19, 0, 1, 864, 801]
+[:key_held_player_two, 19, 0, 1, 865, 802]
+[:key_held_player_two, 19, 0, 1, 866, 803]
+[:key_down_player_two, 3, 0, 1, 867, 804]
+[:key_held_player_two, 19, 0, 1, 868, 804]
+[:key_down_player_two, 26, 0, 1, 869, 804]
+[:key_held_player_two, 3, 0, 1, 870, 805]
+[:key_held_player_two, 19, 0, 1, 871, 805]
+[:key_held_player_two, 26, 0, 1, 872, 805]
+[:key_held_player_two, 3, 0, 1, 873, 806]
+[:key_held_player_two, 19, 0, 1, 874, 806]
+[:key_held_player_two, 26, 0, 1, 875, 806]
+[:key_held_player_two, 3, 0, 1, 876, 807]
+[:key_held_player_two, 19, 0, 1, 877, 807]
+[:key_held_player_two, 26, 0, 1, 878, 807]
+[:key_held_player_two, 3, 0, 1, 879, 808]
+[:key_held_player_two, 19, 0, 1, 880, 808]
+[:key_held_player_two, 26, 0, 1, 881, 808]
+[:key_held_player_two, 3, 0, 1, 882, 809]
+[:key_held_player_two, 19, 0, 1, 883, 809]
+[:key_held_player_two, 26, 0, 1, 884, 809]
+[:key_held_player_two, 3, 0, 1, 885, 810]
+[:key_held_player_two, 19, 0, 1, 886, 810]
+[:key_held_player_two, 26, 0, 1, 887, 810]
+[:key_held_player_two, 3, 0, 1, 888, 811]
+[:key_held_player_two, 19, 0, 1, 889, 811]
+[:key_held_player_two, 26, 0, 1, 890, 811]
+[:key_held_player_two, 3, 0, 1, 891, 812]
+[:key_held_player_two, 19, 0, 1, 892, 812]
+[:key_held_player_two, 26, 0, 1, 893, 812]
+[:key_held_player_two, 3, 0, 1, 894, 813]
+[:key_held_player_two, 19, 0, 1, 895, 813]
+[:key_held_player_two, 26, 0, 1, 896, 813]
+[:key_up_player_two, 3, 0, 1, 897, 814]
+[:key_held_player_two, 19, 0, 1, 898, 814]
+[:key_up_player_two, 26, 0, 1, 899, 814]
+[:key_held_player_two, 19, 0, 1, 900, 815]
+[:key_held_player_two, 19, 0, 1, 901, 816]
+[:key_held_player_two, 19, 0, 1, 902, 817]
+[:key_held_player_two, 19, 0, 1, 903, 818]
+[:key_held_player_two, 19, 0, 1, 904, 819]
+[:key_held_player_two, 19, 0, 1, 905, 820]
+[:key_held_player_two, 19, 0, 1, 906, 821]
+[:key_held_player_two, 19, 0, 1, 907, 822]
+[:key_held_player_two, 19, 0, 1, 908, 823]
+[:key_held_player_two, 19, 0, 1, 909, 824]
+[:key_held_player_two, 19, 0, 1, 910, 825]
+[:key_held_player_two, 19, 0, 1, 911, 826]
+[:key_held_player_two, 19, 0, 1, 912, 827]
+[:key_held_player_two, 19, 0, 1, 913, 828]
+[:key_held_player_two, 19, 0, 1, 914, 829]
+[:key_held_player_two, 19, 0, 1, 915, 830]
+[:key_held_player_two, 19, 0, 1, 916, 831]
+[:key_held_player_two, 19, 0, 1, 917, 832]
+[:key_held_player_two, 19, 0, 1, 918, 833]
+[:key_held_player_two, 19, 0, 1, 919, 834]
+[:key_held_player_two, 19, 0, 1, 920, 835]
+[:key_down_player_two, 3, 0, 1, 921, 836]
+[:key_held_player_two, 19, 0, 1, 922, 836]
+[:key_down_player_two, 26, 0, 1, 923, 836]
+[:key_held_player_two, 3, 0, 1, 924, 837]
+[:key_held_player_two, 19, 0, 1, 925, 837]
+[:key_held_player_two, 26, 0, 1, 926, 837]
+[:key_held_player_two, 3, 0, 1, 927, 838]
+[:key_held_player_two, 19, 0, 1, 928, 838]
+[:key_held_player_two, 26, 0, 1, 929, 838]
+[:key_held_player_two, 3, 0, 1, 930, 839]
+[:key_held_player_two, 19, 0, 1, 931, 839]
+[:key_held_player_two, 26, 0, 1, 932, 839]
+[:key_held_player_two, 3, 0, 1, 933, 840]
+[:key_held_player_two, 19, 0, 1, 934, 840]
+[:key_held_player_two, 26, 0, 1, 935, 840]
+[:key_held_player_two, 3, 0, 1, 936, 841]
+[:key_held_player_two, 19, 0, 1, 937, 841]
+[:key_held_player_two, 26, 0, 1, 938, 841]
+[:key_held_player_two, 3, 0, 1, 939, 842]
+[:key_held_player_two, 19, 0, 1, 940, 842]
+[:key_held_player_two, 26, 0, 1, 941, 842]
+[:key_held_player_two, 3, 0, 1, 942, 843]
+[:key_held_player_two, 19, 0, 1, 943, 843]
+[:key_held_player_two, 26, 0, 1, 944, 843]
+[:key_held_player_two, 3, 0, 1, 945, 844]
+[:key_held_player_two, 19, 0, 1, 946, 844]
+[:key_held_player_two, 26, 0, 1, 947, 844]
+[:key_up_player_two, 3, 0, 1, 948, 845]
+[:key_held_player_two, 19, 0, 1, 949, 845]
+[:key_up_player_two, 26, 0, 1, 950, 845]
+[:key_held_player_two, 19, 0, 1, 951, 846]
+[:key_held_player_two, 19, 0, 1, 952, 847]
+[:key_held_player_two, 19, 0, 1, 953, 848]
+[:key_held_player_two, 19, 0, 1, 954, 849]
+[:key_held_player_two, 19, 0, 1, 955, 850]
+[:key_held_player_two, 19, 0, 1, 956, 851]
+[:key_held_player_two, 19, 0, 1, 957, 852]
+[:key_held_player_two, 19, 0, 1, 958, 853]
+[:key_held_player_two, 19, 0, 1, 959, 854]
+[:key_held_player_two, 19, 0, 1, 960, 855]
+[:key_held_player_two, 19, 0, 1, 961, 856]
+[:key_held_player_two, 19, 0, 1, 962, 857]
+[:key_held_player_two, 19, 0, 1, 963, 858]
+[:key_down_player_two, 4, 0, 1, 964, 859]
+[:key_held_player_two, 19, 0, 1, 965, 859]
+[:key_down_player_two, 27, 0, 1, 966, 859]
+[:key_held_player_two, 4, 0, 1, 967, 860]
+[:key_held_player_two, 19, 0, 1, 968, 860]
+[:key_held_player_two, 27, 0, 1, 969, 860]
+[:key_held_player_two, 4, 0, 1, 970, 861]
+[:key_held_player_two, 19, 0, 1, 971, 861]
+[:key_held_player_two, 27, 0, 1, 972, 861]
+[:key_held_player_two, 4, 0, 1, 973, 862]
+[:key_held_player_two, 19, 0, 1, 974, 862]
+[:key_held_player_two, 27, 0, 1, 975, 862]
+[:key_held_player_two, 4, 0, 1, 976, 863]
+[:key_held_player_two, 19, 0, 1, 977, 863]
+[:key_held_player_two, 27, 0, 1, 978, 863]
+[:key_held_player_two, 4, 0, 1, 979, 864]
+[:key_held_player_two, 19, 0, 1, 980, 864]
+[:key_held_player_two, 27, 0, 1, 981, 864]
+[:key_held_player_two, 4, 0, 1, 982, 865]
+[:key_held_player_two, 19, 0, 1, 983, 865]
+[:key_held_player_two, 27, 0, 1, 984, 865]
+[:key_held_player_two, 4, 0, 1, 985, 866]
+[:key_held_player_two, 19, 0, 1, 986, 866]
+[:key_held_player_two, 27, 0, 1, 987, 866]
+[:key_up_player_two, 4, 0, 1, 988, 867]
+[:key_held_player_two, 19, 0, 1, 989, 867]
+[:key_up_player_two, 27, 0, 1, 990, 867]
+[:key_held_player_two, 19, 0, 1, 991, 868]
+[:key_held_player_two, 19, 0, 1, 992, 869]
+[:key_held_player_two, 19, 0, 1, 993, 870]
+[:key_held_player_two, 19, 0, 1, 994, 871]
+[:key_held_player_two, 19, 0, 1, 995, 872]
+[:key_held_player_two, 19, 0, 1, 996, 873]
+[:key_held_player_two, 19, 0, 1, 997, 874]
+[:key_held_player_two, 19, 0, 1, 998, 875]
+[:key_held_player_two, 19, 0, 1, 999, 876]
+[:key_held_player_two, 19, 0, 1, 1000, 877]
+[:key_held_player_two, 19, 0, 1, 1001, 878]
+[:key_held_player_two, 19, 0, 1, 1002, 879]
+[:key_held_player_two, 19, 0, 1, 1003, 880]
+[:key_held_player_two, 19, 0, 1, 1004, 881]
+[:key_held_player_two, 19, 0, 1, 1005, 882]
+[:key_held_player_two, 19, 0, 1, 1006, 883]
+[:key_held_player_two, 19, 0, 1, 1007, 884]
+[:key_held_player_two, 19, 0, 1, 1008, 885]
+[:key_held_player_two, 19, 0, 1, 1009, 886]
+[:key_held_player_two, 19, 0, 1, 1010, 887]
+[:key_held_player_two, 19, 0, 1, 1011, 888]
+[:key_held_player_two, 19, 0, 1, 1012, 889]
+[:key_held_player_two, 19, 0, 1, 1013, 890]
+[:key_held_player_two, 19, 0, 1, 1014, 891]
+[:key_held_player_two, 19, 0, 1, 1015, 892]
+[:key_held_player_two, 19, 0, 1, 1016, 893]
+[:key_held_player_two, 19, 0, 1, 1017, 894]
+[:key_held_player_two, 19, 0, 1, 1018, 895]
+[:key_held_player_two, 19, 0, 1, 1019, 896]
+[:key_held_player_two, 19, 0, 1, 1020, 897]
+[:key_held_player_two, 19, 0, 1, 1021, 898]
+[:key_held_player_two, 19, 0, 1, 1022, 899]
+[:key_held_player_two, 19, 0, 1, 1023, 900]
+[:key_up_player_two, 19, 0, 1, 1024, 901]
+[:key_down_player_two, 19, 0, 1, 1025, 1003]
+[:key_held_player_two, 19, 0, 1, 1026, 1004]
+[:key_held_player_two, 19, 0, 1, 1027, 1005]
+[:key_held_player_two, 19, 0, 1, 1028, 1006]
+[:key_held_player_two, 19, 0, 1, 1029, 1007]
+[:key_held_player_two, 19, 0, 1, 1030, 1008]
+[:key_held_player_two, 19, 0, 1, 1031, 1009]
+[:key_held_player_two, 19, 0, 1, 1032, 1010]
+[:key_held_player_two, 19, 0, 1, 1033, 1011]
+[:key_held_player_two, 19, 0, 1, 1034, 1012]
+[:key_held_player_two, 19, 0, 1, 1035, 1013]
+[:key_held_player_two, 19, 0, 1, 1036, 1014]
+[:key_held_player_two, 19, 0, 1, 1037, 1015]
+[:key_held_player_two, 19, 0, 1, 1038, 1016]
+[:key_held_player_two, 19, 0, 1, 1039, 1017]
+[:key_held_player_two, 19, 0, 1, 1040, 1018]
+[:key_held_player_two, 19, 0, 1, 1041, 1019]
+[:key_held_player_two, 19, 0, 1, 1042, 1020]
+[:key_held_player_two, 19, 0, 1, 1043, 1021]
+[:key_held_player_two, 19, 0, 1, 1044, 1022]
+[:key_held_player_two, 19, 0, 1, 1045, 1023]
+[:key_held_player_two, 19, 0, 1, 1046, 1024]
+[:key_held_player_two, 19, 0, 1, 1047, 1025]
+[:key_held_player_two, 19, 0, 1, 1048, 1026]
+[:key_held_player_two, 19, 0, 1, 1049, 1027]
+[:key_held_player_two, 19, 0, 1, 1050, 1028]
+[:key_held_player_two, 19, 0, 1, 1051, 1029]
+[:key_held_player_two, 19, 0, 1, 1052, 1030]
+[:key_held_player_two, 19, 0, 1, 1053, 1031]
+[:key_down_player_two, 3, 0, 1, 1054, 1032]
+[:key_held_player_two, 19, 0, 1, 1055, 1032]
+[:key_down_player_two, 26, 0, 1, 1056, 1032]
+[:key_held_player_two, 3, 0, 1, 1057, 1033]
+[:key_held_player_two, 19, 0, 1, 1058, 1033]
+[:key_held_player_two, 26, 0, 1, 1059, 1033]
+[:key_held_player_two, 3, 0, 1, 1060, 1034]
+[:key_held_player_two, 19, 0, 1, 1061, 1034]
+[:key_held_player_two, 26, 0, 1, 1062, 1034]
+[:key_held_player_two, 3, 0, 1, 1063, 1035]
+[:key_held_player_two, 19, 0, 1, 1064, 1035]
+[:key_held_player_two, 26, 0, 1, 1065, 1035]
+[:key_held_player_two, 3, 0, 1, 1066, 1036]
+[:key_held_player_two, 19, 0, 1, 1067, 1036]
+[:key_held_player_two, 26, 0, 1, 1068, 1036]
+[:key_held_player_two, 3, 0, 1, 1069, 1037]
+[:key_held_player_two, 19, 0, 1, 1070, 1037]
+[:key_held_player_two, 26, 0, 1, 1071, 1037]
+[:key_held_player_two, 3, 0, 1, 1072, 1038]
+[:key_held_player_two, 19, 0, 1, 1073, 1038]
+[:key_held_player_two, 26, 0, 1, 1074, 1038]
+[:key_up_player_two, 3, 0, 1, 1075, 1039]
+[:key_held_player_two, 19, 0, 1, 1076, 1039]
+[:key_up_player_two, 26, 0, 1, 1077, 1039]
+[:key_held_player_two, 19, 0, 1, 1078, 1040]
+[:key_held_player_two, 19, 0, 1, 1079, 1041]
+[:key_held_player_two, 19, 0, 1, 1080, 1042]
+[:key_held_player_two, 19, 0, 1, 1081, 1043]
+[:key_held_player_two, 19, 0, 1, 1082, 1044]
+[:key_held_player_two, 19, 0, 1, 1083, 1045]
+[:key_held_player_two, 19, 0, 1, 1084, 1046]
+[:key_down_player_two, 15, 0, 1, 1085, 1047]
+[:key_held_player_two, 19, 0, 1, 1086, 1047]
+[:key_held_player_two, 15, 0, 1, 1087, 1048]
+[:key_held_player_two, 19, 0, 1, 1088, 1048]
+[:key_held_player_two, 15, 0, 1, 1089, 1049]
+[:key_held_player_two, 19, 0, 1, 1090, 1049]
+[:key_held_player_two, 15, 0, 1, 1091, 1050]
+[:key_held_player_two, 19, 0, 1, 1092, 1050]
+[:key_held_player_two, 15, 0, 1, 1093, 1051]
+[:key_held_player_two, 19, 0, 1, 1094, 1051]
+[:key_held_player_two, 15, 0, 1, 1095, 1052]
+[:key_held_player_two, 19, 0, 1, 1096, 1052]
+[:key_held_player_two, 15, 0, 1, 1097, 1053]
+[:key_held_player_two, 19, 0, 1, 1098, 1053]
+[:key_held_player_two, 15, 0, 1, 1099, 1054]
+[:key_held_player_two, 19, 0, 1, 1100, 1054]
+[:key_held_player_two, 15, 0, 1, 1101, 1055]
+[:key_held_player_two, 19, 0, 1, 1102, 1055]
+[:key_held_player_two, 15, 0, 1, 1103, 1056]
+[:key_held_player_two, 19, 0, 1, 1104, 1056]
+[:key_held_player_two, 15, 0, 1, 1105, 1057]
+[:key_held_player_two, 19, 0, 1, 1106, 1057]
+[:key_held_player_two, 15, 0, 1, 1107, 1058]
+[:key_held_player_two, 19, 0, 1, 1108, 1058]
+[:key_held_player_two, 15, 0, 1, 1109, 1059]
+[:key_held_player_two, 19, 0, 1, 1110, 1059]
+[:key_held_player_two, 15, 0, 1, 1111, 1060]
+[:key_held_player_two, 19, 0, 1, 1112, 1060]
+[:key_held_player_two, 15, 0, 1, 1113, 1061]
+[:key_held_player_two, 19, 0, 1, 1114, 1061]
+[:key_down_player_two, 4, 0, 1, 1115, 1062]
+[:key_held_player_two, 15, 0, 1, 1116, 1062]
+[:key_held_player_two, 19, 0, 1, 1117, 1062]
+[:key_down_player_two, 27, 0, 1, 1118, 1062]
+[:key_held_player_two, 4, 0, 1, 1119, 1063]
+[:key_held_player_two, 15, 0, 1, 1120, 1063]
+[:key_held_player_two, 19, 0, 1, 1121, 1063]
+[:key_held_player_two, 27, 0, 1, 1122, 1063]
+[:key_held_player_two, 4, 0, 1, 1123, 1064]
+[:key_held_player_two, 15, 0, 1, 1124, 1064]
+[:key_held_player_two, 19, 0, 1, 1125, 1064]
+[:key_held_player_two, 27, 0, 1, 1126, 1064]
+[:key_held_player_two, 4, 0, 1, 1127, 1065]
+[:key_held_player_two, 15, 0, 1, 1128, 1065]
+[:key_held_player_two, 19, 0, 1, 1129, 1065]
+[:key_held_player_two, 27, 0, 1, 1130, 1065]
+[:key_held_player_two, 4, 0, 1, 1131, 1066]
+[:key_held_player_two, 15, 0, 1, 1132, 1066]
+[:key_held_player_two, 19, 0, 1, 1133, 1066]
+[:key_held_player_two, 27, 0, 1, 1134, 1066]
+[:key_up_player_two, 4, 0, 1, 1135, 1067]
+[:key_held_player_two, 15, 0, 1, 1136, 1067]
+[:key_held_player_two, 19, 0, 1, 1137, 1067]
+[:key_up_player_two, 27, 0, 1, 1138, 1067]
+[:key_held_player_two, 15, 0, 1, 1139, 1068]
+[:key_held_player_two, 19, 0, 1, 1140, 1068]
+[:key_held_player_two, 15, 0, 1, 1141, 1069]
+[:key_held_player_two, 19, 0, 1, 1142, 1069]
+[:key_held_player_two, 15, 0, 1, 1143, 1070]
+[:key_held_player_two, 19, 0, 1, 1144, 1070]
+[:key_held_player_two, 15, 0, 1, 1145, 1071]
+[:key_held_player_two, 19, 0, 1, 1146, 1071]
+[:key_held_player_two, 15, 0, 1, 1147, 1072]
+[:key_held_player_two, 19, 0, 1, 1148, 1072]
+[:key_held_player_two, 15, 0, 1, 1149, 1073]
+[:key_held_player_two, 19, 0, 1, 1150, 1073]
+[:key_held_player_two, 15, 0, 1, 1151, 1074]
+[:key_held_player_two, 19, 0, 1, 1152, 1074]
+[:key_held_player_two, 15, 0, 1, 1153, 1075]
+[:key_held_player_two, 19, 0, 1, 1154, 1075]
+[:key_held_player_two, 15, 0, 1, 1155, 1076]
+[:key_held_player_two, 19, 0, 1, 1156, 1076]
+[:key_held_player_two, 15, 0, 1, 1157, 1077]
+[:key_held_player_two, 19, 0, 1, 1158, 1077]
+[:key_held_player_two, 15, 0, 1, 1159, 1078]
+[:key_held_player_two, 19, 0, 1, 1160, 1078]
+[:key_held_player_two, 15, 0, 1, 1161, 1079]
+[:key_held_player_two, 19, 0, 1, 1162, 1079]
+[:key_held_player_two, 15, 0, 1, 1163, 1080]
+[:key_held_player_two, 19, 0, 1, 1164, 1080]
+[:key_held_player_two, 15, 0, 1, 1165, 1081]
+[:key_held_player_two, 19, 0, 1, 1166, 1081]
+[:key_held_player_two, 15, 0, 1, 1167, 1082]
+[:key_held_player_two, 19, 0, 1, 1168, 1082]
+[:key_held_player_two, 15, 0, 1, 1169, 1083]
+[:key_held_player_two, 19, 0, 1, 1170, 1083]
+[:key_held_player_two, 15, 0, 1, 1171, 1084]
+[:key_held_player_two, 19, 0, 1, 1172, 1084]
+[:key_held_player_two, 15, 0, 1, 1173, 1085]
+[:key_held_player_two, 19, 0, 1, 1174, 1085]
+[:key_held_player_two, 15, 0, 1, 1175, 1086]
+[:key_held_player_two, 19, 0, 1, 1176, 1086]
+[:key_held_player_two, 15, 0, 1, 1177, 1087]
+[:key_held_player_two, 19, 0, 1, 1178, 1087]
+[:key_held_player_two, 15, 0, 1, 1179, 1088]
+[:key_held_player_two, 19, 0, 1, 1180, 1088]
+[:key_held_player_two, 15, 0, 1, 1181, 1089]
+[:key_held_player_two, 19, 0, 1, 1182, 1089]
+[:key_held_player_two, 15, 0, 1, 1183, 1090]
+[:key_held_player_two, 19, 0, 1, 1184, 1090]
+[:key_held_player_two, 15, 0, 1, 1185, 1091]
+[:key_held_player_two, 19, 0, 1, 1186, 1091]
+[:key_held_player_two, 15, 0, 1, 1187, 1092]
+[:key_held_player_two, 19, 0, 1, 1188, 1092]
+[:key_held_player_two, 15, 0, 1, 1189, 1093]
+[:key_held_player_two, 19, 0, 1, 1190, 1093]
+[:key_held_player_two, 15, 0, 1, 1191, 1094]
+[:key_held_player_two, 19, 0, 1, 1192, 1094]
+[:key_held_player_two, 15, 0, 1, 1193, 1095]
+[:key_held_player_two, 19, 0, 1, 1194, 1095]
+[:key_held_player_two, 15, 0, 1, 1195, 1096]
+[:key_held_player_two, 19, 0, 1, 1196, 1096]
+[:key_held_player_two, 15, 0, 1, 1197, 1097]
+[:key_held_player_two, 19, 0, 1, 1198, 1097]
+[:key_held_player_two, 15, 0, 1, 1199, 1098]
+[:key_held_player_two, 19, 0, 1, 1200, 1098]
+[:key_held_player_two, 15, 0, 1, 1201, 1099]
+[:key_held_player_two, 19, 0, 1, 1202, 1099]
+[:key_held_player_two, 15, 0, 1, 1203, 1100]
+[:key_held_player_two, 19, 0, 1, 1204, 1100]
+[:key_held_player_two, 15, 0, 1, 1205, 1101]
+[:key_held_player_two, 19, 0, 1, 1206, 1101]
+[:key_held_player_two, 15, 0, 1, 1207, 1102]
+[:key_held_player_two, 19, 0, 1, 1208, 1102]
+[:key_held_player_two, 15, 0, 1, 1209, 1103]
+[:key_held_player_two, 19, 0, 1, 1210, 1103]
+[:key_held_player_two, 15, 0, 1, 1211, 1104]
+[:key_held_player_two, 19, 0, 1, 1212, 1104]
+[:key_held_player_two, 15, 0, 1, 1213, 1105]
+[:key_held_player_two, 19, 0, 1, 1214, 1105]
+[:key_held_player_two, 15, 0, 1, 1215, 1106]
+[:key_held_player_two, 19, 0, 1, 1216, 1106]
+[:key_held_player_two, 15, 0, 1, 1217, 1107]
+[:key_held_player_two, 19, 0, 1, 1218, 1107]
+[:key_held_player_two, 15, 0, 1, 1219, 1108]
+[:key_held_player_two, 19, 0, 1, 1220, 1108]
+[:key_held_player_two, 15, 0, 1, 1221, 1109]
+[:key_held_player_two, 19, 0, 1, 1222, 1109]
+[:key_held_player_two, 15, 0, 1, 1223, 1110]
+[:key_held_player_two, 19, 0, 1, 1224, 1110]
+[:key_held_player_two, 15, 0, 1, 1225, 1111]
+[:key_held_player_two, 19, 0, 1, 1226, 1111]
+[:key_held_player_two, 15, 0, 1, 1227, 1112]
+[:key_held_player_two, 19, 0, 1, 1228, 1112]
+[:key_held_player_two, 15, 0, 1, 1229, 1113]
+[:key_held_player_two, 19, 0, 1, 1230, 1113]
+[:key_held_player_two, 15, 0, 1, 1231, 1114]
+[:key_held_player_two, 19, 0, 1, 1232, 1114]
+[:key_held_player_two, 15, 0, 1, 1233, 1115]
+[:key_held_player_two, 19, 0, 1, 1234, 1115]
+[:key_held_player_two, 15, 0, 1, 1235, 1116]
+[:key_held_player_two, 19, 0, 1, 1236, 1116]
+[:key_held_player_two, 15, 0, 1, 1237, 1117]
+[:key_held_player_two, 19, 0, 1, 1238, 1117]
+[:key_held_player_two, 15, 0, 1, 1239, 1118]
+[:key_held_player_two, 19, 0, 1, 1240, 1118]
+[:key_held_player_two, 15, 0, 1, 1241, 1119]
+[:key_held_player_two, 19, 0, 1, 1242, 1119]
+[:key_held_player_two, 15, 0, 1, 1243, 1120]
+[:key_held_player_two, 19, 0, 1, 1244, 1120]
+[:key_held_player_two, 15, 0, 1, 1245, 1121]
+[:key_held_player_two, 19, 0, 1, 1246, 1121]
+[:key_held_player_two, 15, 0, 1, 1247, 1122]
+[:key_held_player_two, 19, 0, 1, 1248, 1122]
+[:key_held_player_two, 15, 0, 1, 1249, 1123]
+[:key_held_player_two, 19, 0, 1, 1250, 1123]
+[:key_held_player_two, 15, 0, 1, 1251, 1124]
+[:key_held_player_two, 19, 0, 1, 1252, 1124]
+[:key_held_player_two, 15, 0, 1, 1253, 1125]
+[:key_held_player_two, 19, 0, 1, 1254, 1125]
+[:key_held_player_two, 15, 0, 1, 1255, 1126]
+[:key_held_player_two, 19, 0, 1, 1256, 1126]
+[:key_held_player_two, 15, 0, 1, 1257, 1127]
+[:key_held_player_two, 19, 0, 1, 1258, 1127]
+[:key_held_player_two, 15, 0, 1, 1259, 1128]
+[:key_held_player_two, 19, 0, 1, 1260, 1128]
+[:key_held_player_two, 15, 0, 1, 1261, 1129]
+[:key_held_player_two, 19, 0, 1, 1262, 1129]
+[:key_held_player_two, 15, 0, 1, 1263, 1130]
+[:key_held_player_two, 19, 0, 1, 1264, 1130]
+[:key_held_player_two, 15, 0, 1, 1265, 1131]
+[:key_held_player_two, 19, 0, 1, 1266, 1131]
+[:key_held_player_two, 15, 0, 1, 1267, 1132]
+[:key_held_player_two, 19, 0, 1, 1268, 1132]
+[:key_held_player_two, 15, 0, 1, 1269, 1133]
+[:key_held_player_two, 19, 0, 1, 1270, 1133]
+[:key_held_player_two, 15, 0, 1, 1271, 1134]
+[:key_held_player_two, 19, 0, 1, 1272, 1134]
+[:key_held_player_two, 15, 0, 1, 1273, 1135]
+[:key_held_player_two, 19, 0, 1, 1274, 1135]
+[:key_held_player_two, 15, 0, 1, 1275, 1136]
+[:key_held_player_two, 19, 0, 1, 1276, 1136]
+[:key_held_player_two, 15, 0, 1, 1277, 1137]
+[:key_held_player_two, 19, 0, 1, 1278, 1137]
+[:key_held_player_two, 15, 0, 1, 1279, 1138]
+[:key_held_player_two, 19, 0, 1, 1280, 1138]
+[:key_held_player_two, 15, 0, 1, 1281, 1139]
+[:key_held_player_two, 19, 0, 1, 1282, 1139]
+[:key_held_player_two, 15, 0, 1, 1283, 1140]
+[:key_held_player_two, 19, 0, 1, 1284, 1140]
+[:key_held_player_two, 15, 0, 1, 1285, 1141]
+[:key_held_player_two, 19, 0, 1, 1286, 1141]
+[:key_held_player_two, 15, 0, 1, 1287, 1142]
+[:key_held_player_two, 19, 0, 1, 1288, 1142]
+[:key_held_player_two, 15, 0, 1, 1289, 1143]
+[:key_held_player_two, 19, 0, 1, 1290, 1143]
+[:key_held_player_two, 15, 0, 1, 1291, 1144]
+[:key_held_player_two, 19, 0, 1, 1292, 1144]
+[:key_held_player_two, 15, 0, 1, 1293, 1145]
+[:key_held_player_two, 19, 0, 1, 1294, 1145]
+[:key_held_player_two, 15, 0, 1, 1295, 1146]
+[:key_held_player_two, 19, 0, 1, 1296, 1146]
+[:key_up_player_two, 15, 0, 1, 1297, 1147]
+[:key_held_player_two, 19, 0, 1, 1298, 1147]
+[:key_held_player_two, 19, 0, 1, 1299, 1148]
+[:key_held_player_two, 19, 0, 1, 1300, 1149]
+[:key_held_player_two, 19, 0, 1, 1301, 1150]
+[:key_held_player_two, 19, 0, 1, 1302, 1151]
+[:key_held_player_two, 19, 0, 1, 1303, 1152]
+[:key_held_player_two, 19, 0, 1, 1304, 1153]
+[:key_held_player_two, 19, 0, 1, 1305, 1154]
+[:key_held_player_two, 19, 0, 1, 1306, 1155]
+[:key_held_player_two, 19, 0, 1, 1307, 1156]
+[:key_held_player_two, 19, 0, 1, 1308, 1157]
+[:key_held_player_two, 19, 0, 1, 1309, 1158]
+[:key_held_player_two, 19, 0, 1, 1310, 1159]
+[:key_held_player_two, 19, 0, 1, 1311, 1160]
+[:key_held_player_two, 19, 0, 1, 1312, 1161]
+[:key_held_player_two, 19, 0, 1, 1313, 1162]
+[:key_held_player_two, 19, 0, 1, 1314, 1163]
+[:key_held_player_two, 19, 0, 1, 1315, 1164]
+[:key_held_player_two, 19, 0, 1, 1316, 1165]
+[:key_held_player_two, 19, 0, 1, 1317, 1166]
+[:key_held_player_two, 19, 0, 1, 1318, 1167]
+[:key_held_player_two, 19, 0, 1, 1319, 1168]
+[:key_held_player_two, 19, 0, 1, 1320, 1169]
+[:key_held_player_two, 19, 0, 1, 1321, 1170]
+[:key_held_player_two, 19, 0, 1, 1322, 1171]
+[:key_held_player_two, 19, 0, 1, 1323, 1172]
+[:key_held_player_two, 19, 0, 1, 1324, 1173]
+[:key_held_player_two, 19, 0, 1, 1325, 1174]
+[:key_held_player_two, 19, 0, 1, 1326, 1175]
+[:key_held_player_two, 19, 0, 1, 1327, 1176]
+[:key_held_player_two, 19, 0, 1, 1328, 1177]
+[:key_held_player_two, 19, 0, 1, 1329, 1178]
+[:key_held_player_two, 19, 0, 1, 1330, 1179]
+[:key_held_player_two, 19, 0, 1, 1331, 1180]
+[:key_held_player_two, 19, 0, 1, 1332, 1181]
+[:key_held_player_two, 19, 0, 1, 1333, 1182]
+[:key_held_player_two, 19, 0, 1, 1334, 1183]
+[:key_held_player_two, 19, 0, 1, 1335, 1184]
+[:key_held_player_two, 19, 0, 1, 1336, 1185]
+[:key_held_player_two, 19, 0, 1, 1337, 1186]
+[:key_held_player_two, 19, 0, 1, 1338, 1187]
+[:key_held_player_two, 19, 0, 1, 1339, 1188]
+[:key_held_player_two, 19, 0, 1, 1340, 1189]
+[:key_held_player_two, 19, 0, 1, 1341, 1190]
+[:key_held_player_two, 19, 0, 1, 1342, 1191]
+[:key_up_player_two, 19, 0, 1, 1343, 1192]
+[:key_down_player_one, 3, 0, 1, 1344, 1320]
+[:key_down_player_one, 26, 0, 1, 1345, 1320]
+[:key_held_player_one, 3, 0, 1, 1346, 1321]
+[:key_held_player_one, 26, 0, 1, 1347, 1321]
+[:key_held_player_one, 3, 0, 1, 1348, 1322]
+[:key_held_player_one, 26, 0, 1, 1349, 1322]
+[:key_held_player_one, 3, 0, 1, 1350, 1323]
+[:key_held_player_one, 26, 0, 1, 1351, 1323]
+[:key_held_player_one, 3, 0, 1, 1352, 1324]
+[:key_held_player_one, 26, 0, 1, 1353, 1324]
+[:key_held_player_one, 3, 0, 1, 1354, 1325]
+[:key_held_player_one, 26, 0, 1, 1355, 1325]
+[:key_held_player_one, 3, 0, 1, 1356, 1326]
+[:key_held_player_one, 26, 0, 1, 1357, 1326]
+[:key_held_player_one, 3, 0, 1, 1358, 1327]
+[:key_held_player_one, 26, 0, 1, 1359, 1327]
+[:key_held_player_one, 3, 0, 1, 1360, 1328]
+[:key_held_player_one, 26, 0, 1, 1361, 1328]
+[:key_held_player_one, 3, 0, 1, 1362, 1329]
+[:key_held_player_one, 26, 0, 1, 1363, 1329]
+[:key_held_player_one, 3, 0, 1, 1364, 1330]
+[:key_held_player_one, 26, 0, 1, 1365, 1330]
+[:key_held_player_one, 3, 0, 1, 1366, 1331]
+[:key_held_player_one, 26, 0, 1, 1367, 1331]
+[:key_held_player_one, 3, 0, 1, 1368, 1332]
+[:key_held_player_one, 26, 0, 1, 1369, 1332]
+[:key_held_player_one, 3, 0, 1, 1370, 1333]
+[:key_held_player_one, 26, 0, 1, 1371, 1333]
+[:key_held_player_one, 3, 0, 1, 1372, 1334]
+[:key_held_player_one, 26, 0, 1, 1373, 1334]
+[:key_held_player_one, 3, 0, 1, 1374, 1335]
+[:key_held_player_one, 26, 0, 1, 1375, 1335]
+[:key_held_player_one, 3, 0, 1, 1376, 1336]
+[:key_held_player_one, 26, 0, 1, 1377, 1336]
+[:key_held_player_one, 3, 0, 1, 1378, 1337]
+[:key_held_player_one, 26, 0, 1, 1379, 1337]
+[:key_held_player_one, 3, 0, 1, 1380, 1338]
+[:key_held_player_one, 26, 0, 1, 1381, 1338]
+[:key_held_player_one, 3, 0, 1, 1382, 1339]
+[:key_held_player_one, 26, 0, 1, 1383, 1339]
+[:key_held_player_one, 3, 0, 1, 1384, 1340]
+[:key_held_player_one, 26, 0, 1, 1385, 1340]
+[:key_held_player_one, 3, 0, 1, 1386, 1341]
+[:key_held_player_one, 26, 0, 1, 1387, 1341]
+[:key_held_player_one, 3, 0, 1, 1388, 1342]
+[:key_held_player_one, 26, 0, 1, 1389, 1342]
+[:key_held_player_one, 3, 0, 1, 1390, 1343]
+[:key_held_player_one, 26, 0, 1, 1391, 1343]
+[:key_held_player_one, 3, 0, 1, 1392, 1344]
+[:key_held_player_one, 26, 0, 1, 1393, 1344]
+[:key_up_player_one, 3, 0, 1, 1394, 1345]
+[:key_up_player_one, 26, 0, 1, 1395, 1345]
+[:key_down_player_one, 4, 0, 1, 1396, 1351]
+[:key_down_player_one, 27, 0, 1, 1397, 1351]
+[:key_held_player_one, 4, 0, 1, 1398, 1352]
+[:key_held_player_one, 27, 0, 1, 1399, 1352]
+[:key_held_player_one, 4, 0, 1, 1400, 1353]
+[:key_held_player_one, 27, 0, 1, 1401, 1353]
+[:key_held_player_one, 4, 0, 1, 1402, 1354]
+[:key_held_player_one, 27, 0, 1, 1403, 1354]
+[:key_held_player_one, 4, 0, 1, 1404, 1355]
+[:key_held_player_one, 27, 0, 1, 1405, 1355]
+[:key_held_player_one, 4, 0, 1, 1406, 1356]
+[:key_held_player_one, 27, 0, 1, 1407, 1356]
+[:key_held_player_one, 4, 0, 1, 1408, 1357]
+[:key_held_player_one, 27, 0, 1, 1409, 1357]
+[:key_held_player_one, 4, 0, 1, 1410, 1358]
+[:key_held_player_one, 27, 0, 1, 1411, 1358]
+[:key_held_player_one, 4, 0, 1, 1412, 1359]
+[:key_held_player_one, 27, 0, 1, 1413, 1359]
+[:key_held_player_one, 4, 0, 1, 1414, 1360]
+[:key_held_player_one, 27, 0, 1, 1415, 1360]
+[:key_held_player_one, 4, 0, 1, 1416, 1361]
+[:key_held_player_one, 27, 0, 1, 1417, 1361]
+[:key_held_player_one, 4, 0, 1, 1418, 1362]
+[:key_held_player_one, 27, 0, 1, 1419, 1362]
+[:key_held_player_one, 4, 0, 1, 1420, 1363]
+[:key_held_player_one, 27, 0, 1, 1421, 1363]
+[:key_held_player_one, 4, 0, 1, 1422, 1364]
+[:key_held_player_one, 27, 0, 1, 1423, 1364]
+[:key_held_player_one, 4, 0, 1, 1424, 1365]
+[:key_held_player_one, 27, 0, 1, 1425, 1365]
+[:key_held_player_one, 4, 0, 1, 1426, 1366]
+[:key_held_player_one, 27, 0, 1, 1427, 1366]
+[:key_held_player_one, 4, 0, 1, 1428, 1367]
+[:key_held_player_one, 27, 0, 1, 1429, 1367]
+[:key_held_player_one, 4, 0, 1, 1430, 1368]
+[:key_held_player_one, 27, 0, 1, 1431, 1368]
+[:key_held_player_one, 4, 0, 1, 1432, 1369]
+[:key_held_player_one, 27, 0, 1, 1433, 1369]
+[:key_held_player_one, 4, 0, 1, 1434, 1370]
+[:key_held_player_one, 27, 0, 1, 1435, 1370]
+[:key_held_player_one, 4, 0, 1, 1436, 1371]
+[:key_held_player_one, 27, 0, 1, 1437, 1371]
+[:key_held_player_one, 4, 0, 1, 1438, 1372]
+[:key_down_player_one, 19, 0, 1, 1439, 1372]
+[:key_held_player_one, 27, 0, 1, 1440, 1372]
+[:key_held_player_one, 4, 0, 1, 1441, 1373]
+[:key_held_player_one, 19, 0, 1, 1442, 1373]
+[:key_held_player_one, 27, 0, 1, 1443, 1373]
+[:key_held_player_one, 4, 0, 1, 1444, 1374]
+[:key_held_player_one, 19, 0, 1, 1445, 1374]
+[:key_held_player_one, 27, 0, 1, 1446, 1374]
+[:key_held_player_one, 4, 0, 1, 1447, 1375]
+[:key_held_player_one, 19, 0, 1, 1448, 1375]
+[:key_held_player_one, 27, 0, 1, 1449, 1375]
+[:key_held_player_one, 4, 0, 1, 1450, 1376]
+[:key_held_player_one, 19, 0, 1, 1451, 1376]
+[:key_held_player_one, 27, 0, 1, 1452, 1376]
+[:key_held_player_one, 4, 0, 1, 1453, 1377]
+[:key_held_player_one, 19, 0, 1, 1454, 1377]
+[:key_held_player_one, 27, 0, 1, 1455, 1377]
+[:key_held_player_one, 4, 0, 1, 1456, 1378]
+[:key_held_player_one, 19, 0, 1, 1457, 1378]
+[:key_held_player_one, 27, 0, 1, 1458, 1378]
+[:key_up_player_one, 4, 0, 1, 1459, 1379]
+[:key_held_player_one, 19, 0, 1, 1460, 1379]
+[:key_up_player_one, 27, 0, 1, 1461, 1379]
+[:key_held_player_one, 19, 0, 1, 1462, 1380]
+[:key_held_player_one, 19, 0, 1, 1463, 1381]
+[:key_held_player_one, 19, 0, 1, 1464, 1382]
+[:key_held_player_one, 19, 0, 1, 1465, 1383]
+[:key_held_player_one, 19, 0, 1, 1466, 1384]
+[:key_held_player_one, 19, 0, 1, 1467, 1385]
+[:key_held_player_one, 19, 0, 1, 1468, 1386]
+[:key_held_player_one, 19, 0, 1, 1469, 1387]
+[:key_held_player_one, 19, 0, 1, 1470, 1388]
+[:key_held_player_one, 19, 0, 1, 1471, 1389]
+[:key_held_player_one, 19, 0, 1, 1472, 1390]
+[:key_held_player_one, 19, 0, 1, 1473, 1391]
+[:key_held_player_one, 19, 0, 1, 1474, 1392]
+[:key_held_player_one, 19, 0, 1, 1475, 1393]
+[:key_held_player_one, 19, 0, 1, 1476, 1394]
+[:key_held_player_one, 19, 0, 1, 1477, 1395]
+[:key_held_player_one, 19, 0, 1, 1478, 1396]
+[:key_held_player_one, 19, 0, 1, 1479, 1397]
+[:key_held_player_one, 19, 0, 1, 1480, 1398]
+[:key_held_player_one, 19, 0, 1, 1481, 1399]
+[:key_held_player_one, 19, 0, 1, 1482, 1400]
+[:key_held_player_one, 19, 0, 1, 1483, 1401]
+[:key_held_player_one, 19, 0, 1, 1484, 1402]
+[:key_down_player_one, 3, 0, 1, 1485, 1403]
+[:key_held_player_one, 19, 0, 1, 1486, 1403]
+[:key_down_player_one, 26, 0, 1, 1487, 1403]
+[:key_held_player_one, 3, 0, 1, 1488, 1404]
+[:key_held_player_one, 19, 0, 1, 1489, 1404]
+[:key_held_player_one, 26, 0, 1, 1490, 1404]
+[:key_held_player_one, 3, 0, 1, 1491, 1405]
+[:key_held_player_one, 19, 0, 1, 1492, 1405]
+[:key_held_player_one, 26, 0, 1, 1493, 1405]
+[:key_held_player_one, 3, 0, 1, 1494, 1406]
+[:key_held_player_one, 19, 0, 1, 1495, 1406]
+[:key_held_player_one, 26, 0, 1, 1496, 1406]
+[:key_held_player_one, 3, 0, 1, 1497, 1407]
+[:key_held_player_one, 19, 0, 1, 1498, 1407]
+[:key_held_player_one, 26, 0, 1, 1499, 1407]
+[:key_held_player_one, 3, 0, 1, 1500, 1408]
+[:key_held_player_one, 19, 0, 1, 1501, 1408]
+[:key_held_player_one, 26, 0, 1, 1502, 1408]
+[:key_held_player_one, 3, 0, 1, 1503, 1409]
+[:key_held_player_one, 19, 0, 1, 1504, 1409]
+[:key_held_player_one, 26, 0, 1, 1505, 1409]
+[:key_held_player_one, 3, 0, 1, 1506, 1410]
+[:key_held_player_one, 19, 0, 1, 1507, 1410]
+[:key_held_player_one, 26, 0, 1, 1508, 1410]
+[:key_up_player_one, 3, 0, 1, 1509, 1411]
+[:key_held_player_one, 19, 0, 1, 1510, 1411]
+[:key_up_player_one, 26, 0, 1, 1511, 1411]
+[:key_held_player_one, 19, 0, 1, 1512, 1412]
+[:key_held_player_one, 19, 0, 1, 1513, 1413]
+[:key_held_player_one, 19, 0, 1, 1514, 1414]
+[:key_held_player_one, 19, 0, 1, 1515, 1415]
+[:key_held_player_one, 19, 0, 1, 1516, 1416]
+[:key_held_player_one, 19, 0, 1, 1517, 1417]
+[:key_held_player_one, 19, 0, 1, 1518, 1418]
+[:key_held_player_one, 19, 0, 1, 1519, 1419]
+[:key_held_player_one, 19, 0, 1, 1520, 1420]
+[:key_held_player_one, 19, 0, 1, 1521, 1421]
+[:key_held_player_one, 19, 0, 1, 1522, 1422]
+[:key_held_player_one, 19, 0, 1, 1523, 1423]
+[:key_held_player_one, 19, 0, 1, 1524, 1424]
+[:key_held_player_one, 19, 0, 1, 1525, 1425]
+[:key_held_player_one, 19, 0, 1, 1526, 1426]
+[:key_held_player_one, 19, 0, 1, 1527, 1427]
+[:key_held_player_one, 19, 0, 1, 1528, 1428]
+[:key_down_player_one, 15, 0, 1, 1529, 1429]
+[:key_held_player_one, 19, 0, 1, 1530, 1429]
+[:key_held_player_one, 15, 0, 1, 1531, 1430]
+[:key_held_player_one, 19, 0, 1, 1532, 1430]
+[:key_held_player_one, 15, 0, 1, 1533, 1431]
+[:key_held_player_one, 19, 0, 1, 1534, 1431]
+[:key_held_player_one, 15, 0, 1, 1535, 1432]
+[:key_held_player_one, 19, 0, 1, 1536, 1432]
+[:key_held_player_one, 15, 0, 1, 1537, 1433]
+[:key_held_player_one, 19, 0, 1, 1538, 1433]
+[:key_held_player_one, 15, 0, 1, 1539, 1434]
+[:key_held_player_one, 19, 0, 1, 1540, 1434]
+[:key_held_player_one, 15, 0, 1, 1541, 1435]
+[:key_held_player_one, 19, 0, 1, 1542, 1435]
+[:key_held_player_one, 15, 0, 1, 1543, 1436]
+[:key_held_player_one, 19, 0, 1, 1544, 1436]
+[:key_held_player_one, 15, 0, 1, 1545, 1437]
+[:key_held_player_one, 19, 0, 1, 1546, 1437]
+[:key_held_player_one, 15, 0, 1, 1547, 1438]
+[:key_held_player_one, 19, 0, 1, 1548, 1438]
+[:key_held_player_one, 15, 0, 1, 1549, 1439]
+[:key_held_player_one, 19, 0, 1, 1550, 1439]
+[:key_held_player_one, 15, 0, 1, 1551, 1440]
+[:key_held_player_one, 19, 0, 1, 1552, 1440]
+[:key_held_player_one, 15, 0, 1, 1553, 1441]
+[:key_held_player_one, 19, 0, 1, 1554, 1441]
+[:key_held_player_one, 15, 0, 1, 1555, 1442]
+[:key_held_player_one, 19, 0, 1, 1556, 1442]
+[:key_held_player_one, 15, 0, 1, 1557, 1443]
+[:key_held_player_one, 19, 0, 1, 1558, 1443]
+[:key_held_player_one, 15, 0, 1, 1559, 1444]
+[:key_held_player_one, 19, 0, 1, 1560, 1444]
+[:key_held_player_one, 15, 0, 1, 1561, 1445]
+[:key_held_player_one, 19, 0, 1, 1562, 1445]
+[:key_held_player_one, 15, 0, 1, 1563, 1446]
+[:key_held_player_one, 19, 0, 1, 1564, 1446]
+[:key_held_player_one, 15, 0, 1, 1565, 1447]
+[:key_held_player_one, 19, 0, 1, 1566, 1447]
+[:key_held_player_one, 15, 0, 1, 1567, 1448]
+[:key_held_player_one, 19, 0, 1, 1568, 1448]
+[:key_held_player_one, 15, 0, 1, 1569, 1449]
+[:key_held_player_one, 19, 0, 1, 1570, 1449]
+[:key_held_player_one, 15, 0, 1, 1571, 1450]
+[:key_held_player_one, 19, 0, 1, 1572, 1450]
+[:key_held_player_one, 15, 0, 1, 1573, 1451]
+[:key_held_player_one, 19, 0, 1, 1574, 1451]
+[:key_held_player_one, 15, 0, 1, 1575, 1452]
+[:key_held_player_one, 19, 0, 1, 1576, 1452]
+[:key_held_player_one, 15, 0, 1, 1577, 1453]
+[:key_held_player_one, 19, 0, 1, 1578, 1453]
+[:key_held_player_one, 15, 0, 1, 1579, 1454]
+[:key_held_player_one, 19, 0, 1, 1580, 1454]
+[:key_held_player_one, 15, 0, 1, 1581, 1455]
+[:key_held_player_one, 19, 0, 1, 1582, 1455]
+[:key_up_player_one, 15, 0, 1, 1583, 1456]
+[:key_held_player_one, 19, 0, 1, 1584, 1456]
+[:key_held_player_one, 19, 0, 1, 1585, 1457]
+[:key_held_player_one, 19, 0, 1, 1586, 1458]
+[:key_down_player_one, 4, 0, 1, 1587, 1459]
+[:key_held_player_one, 19, 0, 1, 1588, 1459]
+[:key_down_player_one, 27, 0, 1, 1589, 1459]
+[:key_held_player_one, 4, 0, 1, 1590, 1460]
+[:key_held_player_one, 19, 0, 1, 1591, 1460]
+[:key_held_player_one, 27, 0, 1, 1592, 1460]
+[:key_held_player_one, 4, 0, 1, 1593, 1461]
+[:key_held_player_one, 19, 0, 1, 1594, 1461]
+[:key_held_player_one, 27, 0, 1, 1595, 1461]
+[:key_held_player_one, 4, 0, 1, 1596, 1462]
+[:key_held_player_one, 19, 0, 1, 1597, 1462]
+[:key_held_player_one, 27, 0, 1, 1598, 1462]
+[:key_held_player_one, 4, 0, 1, 1599, 1463]
+[:key_held_player_one, 19, 0, 1, 1600, 1463]
+[:key_held_player_one, 27, 0, 1, 1601, 1463]
+[:key_held_player_one, 4, 0, 1, 1602, 1464]
+[:key_down_player_one, 15, 0, 1, 1603, 1464]
+[:key_held_player_one, 19, 0, 1, 1604, 1464]
+[:key_held_player_one, 27, 0, 1, 1605, 1464]
+[:key_held_player_one, 4, 0, 1, 1606, 1465]
+[:key_held_player_one, 15, 0, 1, 1607, 1465]
+[:key_held_player_one, 19, 0, 1, 1608, 1465]
+[:key_held_player_one, 27, 0, 1, 1609, 1465]
+[:key_up_player_one, 4, 0, 1, 1610, 1466]
+[:key_held_player_one, 15, 0, 1, 1611, 1466]
+[:key_held_player_one, 19, 0, 1, 1612, 1466]
+[:key_up_player_one, 27, 0, 1, 1613, 1466]
+[:key_held_player_one, 15, 0, 1, 1614, 1467]
+[:key_held_player_one, 19, 0, 1, 1615, 1467]
+[:key_held_player_one, 15, 0, 1, 1616, 1468]
+[:key_held_player_one, 19, 0, 1, 1617, 1468]
+[:key_held_player_one, 15, 0, 1, 1618, 1469]
+[:key_held_player_one, 19, 0, 1, 1619, 1469]
+[:key_held_player_one, 15, 0, 1, 1620, 1470]
+[:key_held_player_one, 19, 0, 1, 1621, 1470]
+[:key_held_player_one, 15, 0, 1, 1622, 1471]
+[:key_held_player_one, 19, 0, 1, 1623, 1471]
+[:key_held_player_one, 15, 0, 1, 1624, 1472]
+[:key_held_player_one, 19, 0, 1, 1625, 1472]
+[:key_held_player_one, 15, 0, 1, 1626, 1473]
+[:key_held_player_one, 19, 0, 1, 1627, 1473]
+[:key_held_player_one, 15, 0, 1, 1628, 1474]
+[:key_held_player_one, 19, 0, 1, 1629, 1474]
+[:key_held_player_one, 15, 0, 1, 1630, 1475]
+[:key_held_player_one, 19, 0, 1, 1631, 1475]
+[:key_held_player_one, 15, 0, 1, 1632, 1476]
+[:key_held_player_one, 19, 0, 1, 1633, 1476]
+[:key_held_player_one, 15, 0, 1, 1634, 1477]
+[:key_held_player_one, 19, 0, 1, 1635, 1477]
+[:key_held_player_one, 15, 0, 1, 1636, 1478]
+[:key_held_player_one, 19, 0, 1, 1637, 1478]
+[:key_held_player_one, 15, 0, 1, 1638, 1479]
+[:key_held_player_one, 19, 0, 1, 1639, 1479]
+[:key_held_player_one, 15, 0, 1, 1640, 1480]
+[:key_held_player_one, 19, 0, 1, 1641, 1480]
+[:key_held_player_one, 15, 0, 1, 1642, 1481]
+[:key_held_player_one, 19, 0, 1, 1643, 1481]
+[:key_held_player_one, 15, 0, 1, 1644, 1482]
+[:key_held_player_one, 19, 0, 1, 1645, 1482]
+[:key_held_player_one, 15, 0, 1, 1646, 1483]
+[:key_held_player_one, 19, 0, 1, 1647, 1483]
+[:key_held_player_one, 15, 0, 1, 1648, 1484]
+[:key_held_player_one, 19, 0, 1, 1649, 1484]
+[:key_held_player_one, 15, 0, 1, 1650, 1485]
+[:key_held_player_one, 19, 0, 1, 1651, 1485]
+[:key_down_player_one, 3, 0, 1, 1652, 1486]
+[:key_held_player_one, 15, 0, 1, 1653, 1486]
+[:key_held_player_one, 19, 0, 1, 1654, 1486]
+[:key_down_player_one, 26, 0, 1, 1655, 1486]
+[:key_held_player_one, 3, 0, 1, 1656, 1487]
+[:key_held_player_one, 15, 0, 1, 1657, 1487]
+[:key_held_player_one, 19, 0, 1, 1658, 1487]
+[:key_held_player_one, 26, 0, 1, 1659, 1487]
+[:key_held_player_one, 3, 0, 1, 1660, 1488]
+[:key_held_player_one, 15, 0, 1, 1661, 1488]
+[:key_held_player_one, 19, 0, 1, 1662, 1488]
+[:key_held_player_one, 26, 0, 1, 1663, 1488]
+[:key_held_player_one, 3, 0, 1, 1664, 1489]
+[:key_held_player_one, 15, 0, 1, 1665, 1489]
+[:key_held_player_one, 19, 0, 1, 1666, 1489]
+[:key_held_player_one, 26, 0, 1, 1667, 1489]
+[:key_held_player_one, 3, 0, 1, 1668, 1490]
+[:key_held_player_one, 15, 0, 1, 1669, 1490]
+[:key_held_player_one, 19, 0, 1, 1670, 1490]
+[:key_held_player_one, 26, 0, 1, 1671, 1490]
+[:key_up_player_one, 3, 0, 1, 1672, 1491]
+[:key_held_player_one, 15, 0, 1, 1673, 1491]
+[:key_held_player_one, 19, 0, 1, 1674, 1491]
+[:key_up_player_one, 26, 0, 1, 1675, 1491]
+[:key_held_player_one, 15, 0, 1, 1676, 1492]
+[:key_held_player_one, 19, 0, 1, 1677, 1492]
+[:key_held_player_one, 15, 0, 1, 1678, 1493]
+[:key_held_player_one, 19, 0, 1, 1679, 1493]
+[:key_held_player_one, 15, 0, 1, 1680, 1494]
+[:key_held_player_one, 19, 0, 1, 1681, 1494]
+[:key_held_player_one, 15, 0, 1, 1682, 1495]
+[:key_held_player_one, 19, 0, 1, 1683, 1495]
+[:key_held_player_one, 15, 0, 1, 1684, 1496]
+[:key_held_player_one, 19, 0, 1, 1685, 1496]
+[:key_held_player_one, 15, 0, 1, 1686, 1497]
+[:key_held_player_one, 19, 0, 1, 1687, 1497]
+[:key_held_player_one, 15, 0, 1, 1688, 1498]
+[:key_held_player_one, 19, 0, 1, 1689, 1498]
+[:key_held_player_one, 15, 0, 1, 1690, 1499]
+[:key_held_player_one, 19, 0, 1, 1691, 1499]
+[:key_held_player_one, 15, 0, 1, 1692, 1500]
+[:key_held_player_one, 19, 0, 1, 1693, 1500]
+[:key_held_player_one, 15, 0, 1, 1694, 1501]
+[:key_held_player_one, 19, 0, 1, 1695, 1501]
+[:key_held_player_one, 15, 0, 1, 1696, 1502]
+[:key_held_player_one, 19, 0, 1, 1697, 1502]
+[:key_held_player_one, 15, 0, 1, 1698, 1503]
+[:key_held_player_one, 19, 0, 1, 1699, 1503]
+[:key_held_player_one, 15, 0, 1, 1700, 1504]
+[:key_held_player_one, 19, 0, 1, 1701, 1504]
+[:key_held_player_one, 15, 0, 1, 1702, 1505]
+[:key_held_player_one, 19, 0, 1, 1703, 1505]
+[:key_held_player_one, 15, 0, 1, 1704, 1506]
+[:key_held_player_one, 19, 0, 1, 1705, 1506]
+[:key_held_player_one, 15, 0, 1, 1706, 1507]
+[:key_held_player_one, 19, 0, 1, 1707, 1507]
+[:key_held_player_one, 15, 0, 1, 1708, 1508]
+[:key_held_player_one, 19, 0, 1, 1709, 1508]
+[:key_held_player_one, 15, 0, 1, 1710, 1509]
+[:key_held_player_one, 19, 0, 1, 1711, 1509]
+[:key_held_player_one, 15, 0, 1, 1712, 1510]
+[:key_held_player_one, 19, 0, 1, 1713, 1510]
+[:key_held_player_one, 15, 0, 1, 1714, 1511]
+[:key_held_player_one, 19, 0, 1, 1715, 1511]
+[:key_held_player_one, 15, 0, 1, 1716, 1512]
+[:key_held_player_one, 19, 0, 1, 1717, 1512]
+[:key_held_player_one, 15, 0, 1, 1718, 1513]
+[:key_held_player_one, 19, 0, 1, 1719, 1513]
+[:key_held_player_one, 15, 0, 1, 1720, 1514]
+[:key_held_player_one, 19, 0, 1, 1721, 1514]
+[:key_held_player_one, 15, 0, 1, 1722, 1515]
+[:key_held_player_one, 19, 0, 1, 1723, 1515]
+[:key_held_player_one, 15, 0, 1, 1724, 1516]
+[:key_held_player_one, 19, 0, 1, 1725, 1516]
+[:key_held_player_one, 15, 0, 1, 1726, 1517]
+[:key_held_player_one, 19, 0, 1, 1727, 1517]
+[:key_held_player_one, 15, 0, 1, 1728, 1518]
+[:key_held_player_one, 19, 0, 1, 1729, 1518]
+[:key_held_player_one, 15, 0, 1, 1730, 1519]
+[:key_held_player_one, 19, 0, 1, 1731, 1519]
+[:key_held_player_one, 15, 0, 1, 1732, 1520]
+[:key_held_player_one, 19, 0, 1, 1733, 1520]
+[:key_down_player_one, 4, 0, 1, 1734, 1521]
+[:key_held_player_one, 15, 0, 1, 1735, 1521]
+[:key_held_player_one, 19, 0, 1, 1736, 1521]
+[:key_down_player_one, 27, 0, 1, 1737, 1521]
+[:key_held_player_one, 4, 0, 1, 1738, 1522]
+[:key_held_player_one, 15, 0, 1, 1739, 1522]
+[:key_held_player_one, 19, 0, 1, 1740, 1522]
+[:key_held_player_one, 27, 0, 1, 1741, 1522]
+[:key_held_player_one, 4, 0, 1, 1742, 1523]
+[:key_held_player_one, 15, 0, 1, 1743, 1523]
+[:key_held_player_one, 19, 0, 1, 1744, 1523]
+[:key_held_player_one, 27, 0, 1, 1745, 1523]
+[:key_held_player_one, 4, 0, 1, 1746, 1524]
+[:key_held_player_one, 15, 0, 1, 1747, 1524]
+[:key_held_player_one, 19, 0, 1, 1748, 1524]
+[:key_held_player_one, 27, 0, 1, 1749, 1524]
+[:key_held_player_one, 4, 0, 1, 1750, 1525]
+[:key_held_player_one, 15, 0, 1, 1751, 1525]
+[:key_held_player_one, 19, 0, 1, 1752, 1525]
+[:key_held_player_one, 27, 0, 1, 1753, 1525]
+[:key_up_player_one, 4, 0, 1, 1754, 1526]
+[:key_held_player_one, 15, 0, 1, 1755, 1526]
+[:key_held_player_one, 19, 0, 1, 1756, 1526]
+[:key_up_player_one, 27, 0, 1, 1757, 1526]
+[:key_held_player_one, 15, 0, 1, 1758, 1527]
+[:key_held_player_one, 19, 0, 1, 1759, 1527]
+[:key_held_player_one, 15, 0, 1, 1760, 1528]
+[:key_held_player_one, 19, 0, 1, 1761, 1528]
+[:key_held_player_one, 15, 0, 1, 1762, 1529]
+[:key_held_player_one, 19, 0, 1, 1763, 1529]
+[:key_held_player_one, 15, 0, 1, 1764, 1530]
+[:key_held_player_one, 19, 0, 1, 1765, 1530]
+[:key_held_player_one, 15, 0, 1, 1766, 1531]
+[:key_held_player_one, 19, 0, 1, 1767, 1531]
+[:key_held_player_one, 15, 0, 1, 1768, 1532]
+[:key_held_player_one, 19, 0, 1, 1769, 1532]
+[:key_held_player_one, 15, 0, 1, 1770, 1533]
+[:key_held_player_one, 19, 0, 1, 1771, 1533]
+[:key_held_player_one, 15, 0, 1, 1772, 1534]
+[:key_held_player_one, 19, 0, 1, 1773, 1534]
+[:key_held_player_one, 15, 0, 1, 1774, 1535]
+[:key_held_player_one, 19, 0, 1, 1775, 1535]
+[:key_held_player_one, 15, 0, 1, 1776, 1536]
+[:key_held_player_one, 19, 0, 1, 1777, 1536]
+[:key_held_player_one, 15, 0, 1, 1778, 1537]
+[:key_held_player_one, 19, 0, 1, 1779, 1537]
+[:key_held_player_one, 15, 0, 1, 1780, 1538]
+[:key_held_player_one, 19, 0, 1, 1781, 1538]
+[:key_held_player_one, 15, 0, 1, 1782, 1539]
+[:key_held_player_one, 19, 0, 1, 1783, 1539]
+[:key_held_player_one, 15, 0, 1, 1784, 1540]
+[:key_held_player_one, 19, 0, 1, 1785, 1540]
+[:key_held_player_one, 15, 0, 1, 1786, 1541]
+[:key_held_player_one, 19, 0, 1, 1787, 1541]
+[:key_held_player_one, 15, 0, 1, 1788, 1542]
+[:key_held_player_one, 19, 0, 1, 1789, 1542]
+[:key_held_player_one, 15, 0, 1, 1790, 1543]
+[:key_held_player_one, 19, 0, 1, 1791, 1543]
+[:key_held_player_one, 15, 0, 1, 1792, 1544]
+[:key_held_player_one, 19, 0, 1, 1793, 1544]
+[:key_held_player_one, 15, 0, 1, 1794, 1545]
+[:key_held_player_one, 19, 0, 1, 1795, 1545]
+[:key_held_player_one, 15, 0, 1, 1796, 1546]
+[:key_held_player_one, 19, 0, 1, 1797, 1546]
+[:key_held_player_one, 15, 0, 1, 1798, 1547]
+[:key_held_player_one, 19, 0, 1, 1799, 1547]
+[:key_held_player_one, 15, 0, 1, 1800, 1548]
+[:key_held_player_one, 19, 0, 1, 1801, 1548]
+[:key_held_player_one, 15, 0, 1, 1802, 1549]
+[:key_held_player_one, 19, 0, 1, 1803, 1549]
+[:key_held_player_one, 15, 0, 1, 1804, 1550]
+[:key_held_player_one, 19, 0, 1, 1805, 1550]
+[:key_held_player_one, 15, 0, 1, 1806, 1551]
+[:key_held_player_one, 19, 0, 1, 1807, 1551]
+[:key_held_player_one, 15, 0, 1, 1808, 1552]
+[:key_held_player_one, 19, 0, 1, 1809, 1552]
+[:key_held_player_one, 15, 0, 1, 1810, 1553]
+[:key_held_player_one, 19, 0, 1, 1811, 1553]
+[:key_held_player_one, 15, 0, 1, 1812, 1554]
+[:key_held_player_one, 19, 0, 1, 1813, 1554]
+[:key_held_player_one, 15, 0, 1, 1814, 1555]
+[:key_held_player_one, 19, 0, 1, 1815, 1555]
+[:key_held_player_one, 15, 0, 1, 1816, 1556]
+[:key_held_player_one, 19, 0, 1, 1817, 1556]
+[:key_held_player_one, 15, 0, 1, 1818, 1557]
+[:key_held_player_one, 19, 0, 1, 1819, 1557]
+[:key_held_player_one, 15, 0, 1, 1820, 1558]
+[:key_held_player_one, 19, 0, 1, 1821, 1558]
+[:key_held_player_one, 15, 0, 1, 1822, 1559]
+[:key_held_player_one, 19, 0, 1, 1823, 1559]
+[:key_held_player_one, 15, 0, 1, 1824, 1560]
+[:key_held_player_one, 19, 0, 1, 1825, 1560]
+[:key_held_player_one, 15, 0, 1, 1826, 1561]
+[:key_held_player_one, 19, 0, 1, 1827, 1561]
+[:key_held_player_one, 15, 0, 1, 1828, 1562]
+[:key_held_player_one, 19, 0, 1, 1829, 1562]
+[:key_held_player_one, 15, 0, 1, 1830, 1563]
+[:key_held_player_one, 19, 0, 1, 1831, 1563]
+[:key_held_player_one, 15, 0, 1, 1832, 1564]
+[:key_held_player_one, 19, 0, 1, 1833, 1564]
+[:key_held_player_one, 15, 0, 1, 1834, 1565]
+[:key_held_player_one, 19, 0, 1, 1835, 1565]
+[:key_held_player_one, 15, 0, 1, 1836, 1566]
+[:key_held_player_one, 19, 0, 1, 1837, 1566]
+[:key_held_player_one, 15, 0, 1, 1838, 1567]
+[:key_held_player_one, 19, 0, 1, 1839, 1567]
+[:key_held_player_one, 15, 0, 1, 1840, 1568]
+[:key_held_player_one, 19, 0, 1, 1841, 1568]
+[:key_held_player_one, 15, 0, 1, 1842, 1569]
+[:key_held_player_one, 19, 0, 1, 1843, 1569]
+[:key_held_player_one, 15, 0, 1, 1844, 1570]
+[:key_held_player_one, 19, 0, 1, 1845, 1570]
+[:key_held_player_one, 15, 0, 1, 1846, 1571]
+[:key_held_player_one, 19, 0, 1, 1847, 1571]
+[:key_held_player_one, 15, 0, 1, 1848, 1572]
+[:key_held_player_one, 19, 0, 1, 1849, 1572]
+[:key_held_player_one, 15, 0, 1, 1850, 1573]
+[:key_held_player_one, 19, 0, 1, 1851, 1573]
+[:key_held_player_one, 15, 0, 1, 1852, 1574]
+[:key_held_player_one, 19, 0, 1, 1853, 1574]
+[:key_held_player_one, 15, 0, 1, 1854, 1575]
+[:key_held_player_one, 19, 0, 1, 1855, 1575]
+[:key_held_player_one, 15, 0, 1, 1856, 1576]
+[:key_held_player_one, 19, 0, 1, 1857, 1576]
+[:key_held_player_one, 15, 0, 1, 1858, 1577]
+[:key_held_player_one, 19, 0, 1, 1859, 1577]
+[:key_held_player_one, 15, 0, 1, 1860, 1578]
+[:key_held_player_one, 19, 0, 1, 1861, 1578]
+[:key_held_player_one, 15, 0, 1, 1862, 1579]
+[:key_held_player_one, 19, 0, 1, 1863, 1579]
+[:key_held_player_one, 15, 0, 1, 1864, 1580]
+[:key_held_player_one, 19, 0, 1, 1865, 1580]
+[:key_held_player_one, 15, 0, 1, 1866, 1581]
+[:key_held_player_one, 19, 0, 1, 1867, 1581]
+[:key_held_player_one, 15, 0, 1, 1868, 1582]
+[:key_held_player_one, 19, 0, 1, 1869, 1582]
+[:key_held_player_one, 15, 0, 1, 1870, 1583]
+[:key_held_player_one, 19, 0, 1, 1871, 1583]
+[:key_held_player_one, 15, 0, 1, 1872, 1584]
+[:key_held_player_one, 19, 0, 1, 1873, 1584]
+[:key_held_player_one, 15, 0, 1, 1874, 1585]
+[:key_held_player_one, 19, 0, 1, 1875, 1585]
+[:key_up_player_one, 15, 0, 1, 1876, 1586]
+[:key_held_player_one, 19, 0, 1, 1877, 1586]
+[:key_held_player_one, 19, 0, 1, 1878, 1587]
+[:key_up_player_one, 19, 0, 1, 1879, 1588]
+[:key_down_player_one, 19, 0, 1, 1880, 1713]
+[:key_held_player_one, 19, 0, 1, 1881, 1714]
+[:key_held_player_one, 19, 0, 1, 1882, 1715]
+[:key_held_player_one, 19, 0, 1, 1883, 1716]
+[:key_held_player_one, 19, 0, 1, 1884, 1717]
+[:key_held_player_one, 19, 0, 1, 1885, 1718]
+[:key_held_player_one, 19, 0, 1, 1886, 1719]
+[:key_held_player_one, 19, 0, 1, 1887, 1720]
+[:key_held_player_one, 19, 0, 1, 1888, 1721]
+[:key_held_player_one, 19, 0, 1, 1889, 1722]
+[:key_held_player_one, 19, 0, 1, 1890, 1723]
+[:key_held_player_one, 19, 0, 1, 1891, 1724]
+[:key_held_player_one, 19, 0, 1, 1892, 1725]
+[:key_held_player_one, 19, 0, 1, 1893, 1726]
+[:key_held_player_one, 19, 0, 1, 1894, 1727]
+[:key_held_player_one, 19, 0, 1, 1895, 1728]
+[:key_held_player_one, 19, 0, 1, 1896, 1729]
+[:key_held_player_one, 19, 0, 1, 1897, 1730]
+[:key_held_player_one, 19, 0, 1, 1898, 1731]
+[:key_held_player_one, 19, 0, 1, 1899, 1732]
+[:key_held_player_one, 19, 0, 1, 1900, 1733]
+[:key_held_player_one, 19, 0, 1, 1901, 1734]
+[:key_held_player_one, 19, 0, 1, 1902, 1735]
+[:key_held_player_one, 19, 0, 1, 1903, 1736]
+[:key_down_player_one, 4, 0, 1, 1904, 1737]
+[:key_held_player_one, 19, 0, 1, 1905, 1737]
+[:key_down_player_one, 27, 0, 1, 1906, 1737]
+[:key_held_player_one, 4, 0, 1, 1907, 1738]
+[:key_held_player_one, 19, 0, 1, 1908, 1738]
+[:key_held_player_one, 27, 0, 1, 1909, 1738]
+[:key_held_player_one, 4, 0, 1, 1910, 1739]
+[:key_held_player_one, 19, 0, 1, 1911, 1739]
+[:key_held_player_one, 27, 0, 1, 1912, 1739]
+[:key_held_player_one, 4, 0, 1, 1913, 1740]
+[:key_held_player_one, 19, 0, 1, 1914, 1740]
+[:key_held_player_one, 27, 0, 1, 1915, 1740]
+[:key_held_player_one, 4, 0, 1, 1916, 1741]
+[:key_held_player_one, 19, 0, 1, 1917, 1741]
+[:key_held_player_one, 27, 0, 1, 1918, 1741]
+[:key_held_player_one, 4, 0, 1, 1919, 1742]
+[:key_held_player_one, 19, 0, 1, 1920, 1742]
+[:key_held_player_one, 27, 0, 1, 1921, 1742]
+[:key_held_player_one, 4, 0, 1, 1922, 1743]
+[:key_held_player_one, 19, 0, 1, 1923, 1743]
+[:key_held_player_one, 27, 0, 1, 1924, 1743]
+[:key_held_player_one, 4, 0, 1, 1925, 1744]
+[:key_held_player_one, 19, 0, 1, 1926, 1744]
+[:key_held_player_one, 27, 0, 1, 1927, 1744]
+[:key_held_player_one, 4, 0, 1, 1928, 1745]
+[:key_held_player_one, 19, 0, 1, 1929, 1745]
+[:key_held_player_one, 27, 0, 1, 1930, 1745]
+[:key_held_player_one, 4, 0, 1, 1931, 1746]
+[:key_held_player_one, 19, 0, 1, 1932, 1746]
+[:key_held_player_one, 27, 0, 1, 1933, 1746]
+[:key_held_player_one, 4, 0, 1, 1934, 1747]
+[:key_held_player_one, 19, 0, 1, 1935, 1747]
+[:key_held_player_one, 27, 0, 1, 1936, 1747]
+[:key_held_player_one, 4, 0, 1, 1937, 1748]
+[:key_held_player_one, 19, 0, 1, 1938, 1748]
+[:key_held_player_one, 27, 0, 1, 1939, 1748]
+[:key_up_player_one, 4, 0, 1, 1940, 1749]
+[:key_held_player_one, 19, 0, 1, 1941, 1749]
+[:key_up_player_one, 27, 0, 1, 1942, 1749]
+[:key_held_player_one, 19, 0, 1, 1943, 1750]
+[:key_held_player_one, 19, 0, 1, 1944, 1751]
+[:key_held_player_one, 19, 0, 1, 1945, 1752]
+[:key_held_player_one, 19, 0, 1, 1946, 1753]
+[:key_held_player_one, 19, 0, 1, 1947, 1754]
+[:key_held_player_one, 19, 0, 1, 1948, 1755]
+[:key_held_player_one, 19, 0, 1, 1949, 1756]
+[:key_held_player_one, 19, 0, 1, 1950, 1757]
+[:key_held_player_one, 19, 0, 1, 1951, 1758]
+[:key_held_player_one, 19, 0, 1, 1952, 1759]
+[:key_held_player_one, 19, 0, 1, 1953, 1760]
+[:key_held_player_one, 19, 0, 1, 1954, 1761]
+[:key_held_player_one, 19, 0, 1, 1955, 1762]
+[:key_held_player_one, 19, 0, 1, 1956, 1763]
+[:key_held_player_one, 19, 0, 1, 1957, 1764]
+[:key_held_player_one, 19, 0, 1, 1958, 1765]
+[:key_held_player_one, 19, 0, 1, 1959, 1766]
+[:key_held_player_one, 19, 0, 1, 1960, 1767]
+[:key_down_player_one, 14, 0, 1, 1961, 1768]
+[:key_held_player_one, 19, 0, 1, 1962, 1768]
+[:key_held_player_one, 14, 0, 1, 1963, 1769]
+[:key_held_player_one, 19, 0, 1, 1964, 1769]
+[:key_down_player_one, 3, 0, 1, 1965, 1770]
+[:key_held_player_one, 14, 0, 1, 1966, 1770]
+[:key_held_player_one, 19, 0, 1, 1967, 1770]
+[:key_down_player_one, 26, 0, 1, 1968, 1770]
+[:key_held_player_one, 3, 0, 1, 1969, 1771]
+[:key_held_player_one, 14, 0, 1, 1970, 1771]
+[:key_held_player_one, 19, 0, 1, 1971, 1771]
+[:key_held_player_one, 26, 0, 1, 1972, 1771]
+[:key_held_player_one, 3, 0, 1, 1973, 1772]
+[:key_held_player_one, 14, 0, 1, 1974, 1772]
+[:key_held_player_one, 19, 0, 1, 1975, 1772]
+[:key_held_player_one, 26, 0, 1, 1976, 1772]
+[:key_held_player_one, 3, 0, 1, 1977, 1773]
+[:key_held_player_one, 14, 0, 1, 1978, 1773]
+[:key_held_player_one, 19, 0, 1, 1979, 1773]
+[:key_held_player_one, 26, 0, 1, 1980, 1773]
+[:key_held_player_one, 3, 0, 1, 1981, 1774]
+[:key_up_player_one, 14, 0, 1, 1982, 1774]
+[:key_held_player_one, 19, 0, 1, 1983, 1774]
+[:key_held_player_one, 26, 0, 1, 1984, 1774]
+[:key_held_player_one, 3, 0, 1, 1985, 1775]
+[:key_held_player_one, 19, 0, 1, 1986, 1775]
+[:key_held_player_one, 26, 0, 1, 1987, 1775]
+[:key_held_player_one, 3, 0, 1, 1988, 1776]
+[:key_held_player_one, 19, 0, 1, 1989, 1776]
+[:key_held_player_one, 26, 0, 1, 1990, 1776]
+[:key_up_player_one, 3, 0, 1, 1991, 1777]
+[:key_held_player_one, 19, 0, 1, 1992, 1777]
+[:key_up_player_one, 26, 0, 1, 1993, 1777]
+[:key_held_player_one, 19, 0, 1, 1994, 1778]
+[:key_held_player_one, 19, 0, 1, 1995, 1779]
+[:key_down_player_one, 14, 0, 1, 1996, 1780]
+[:key_held_player_one, 19, 0, 1, 1997, 1780]
+[:key_held_player_one, 14, 0, 1, 1998, 1781]
+[:key_held_player_one, 19, 0, 1, 1999, 1781]
+[:key_held_player_one, 14, 0, 1, 2000, 1782]
+[:key_held_player_one, 19, 0, 1, 2001, 1782]
+[:key_held_player_one, 14, 0, 1, 2002, 1783]
+[:key_held_player_one, 19, 0, 1, 2003, 1783]
+[:key_held_player_one, 14, 0, 1, 2004, 1784]
+[:key_held_player_one, 19, 0, 1, 2005, 1784]
+[:key_held_player_one, 14, 0, 1, 2006, 1785]
+[:key_held_player_one, 19, 0, 1, 2007, 1785]
+[:key_up_player_one, 14, 0, 1, 2008, 1786]
+[:key_held_player_one, 19, 0, 1, 2009, 1786]
+[:key_held_player_one, 19, 0, 1, 2010, 1787]
+[:key_held_player_one, 19, 0, 1, 2011, 1788]
+[:key_held_player_one, 19, 0, 1, 2012, 1789]
+[:key_down_player_one, 14, 0, 1, 2013, 1790]
+[:key_held_player_one, 19, 0, 1, 2014, 1790]
+[:key_held_player_one, 14, 0, 1, 2015, 1791]
+[:key_held_player_one, 19, 0, 1, 2016, 1791]
+[:key_held_player_one, 14, 0, 1, 2017, 1792]
+[:key_held_player_one, 19, 0, 1, 2018, 1792]
+[:key_held_player_one, 14, 0, 1, 2019, 1793]
+[:key_held_player_one, 19, 0, 1, 2020, 1793]
+[:key_held_player_one, 14, 0, 1, 2021, 1794]
+[:key_held_player_one, 19, 0, 1, 2022, 1794]
+[:key_down_player_one, 4, 0, 1, 2023, 1795]
+[:key_held_player_one, 14, 0, 1, 2024, 1795]
+[:key_held_player_one, 19, 0, 1, 2025, 1795]
+[:key_down_player_one, 27, 0, 1, 2026, 1795]
+[:key_held_player_one, 4, 0, 1, 2027, 1796]
+[:key_up_player_one, 14, 0, 1, 2028, 1796]
+[:key_held_player_one, 19, 0, 1, 2029, 1796]
+[:key_held_player_one, 27, 0, 1, 2030, 1796]
+[:key_held_player_one, 4, 0, 1, 2031, 1797]
+[:key_held_player_one, 19, 0, 1, 2032, 1797]
+[:key_held_player_one, 27, 0, 1, 2033, 1797]
+[:key_held_player_one, 4, 0, 1, 2034, 1798]
+[:key_held_player_one, 19, 0, 1, 2035, 1798]
+[:key_held_player_one, 27, 0, 1, 2036, 1798]
+[:key_held_player_one, 4, 0, 1, 2037, 1799]
+[:key_held_player_one, 19, 0, 1, 2038, 1799]
+[:key_held_player_one, 27, 0, 1, 2039, 1799]
+[:key_held_player_one, 4, 0, 1, 2040, 1800]
+[:key_down_player_one, 14, 0, 1, 2041, 1800]
+[:key_held_player_one, 19, 0, 1, 2042, 1800]
+[:key_held_player_one, 27, 0, 1, 2043, 1800]
+[:key_up_player_one, 4, 0, 1, 2044, 1801]
+[:key_held_player_one, 14, 0, 1, 2045, 1801]
+[:key_held_player_one, 19, 0, 1, 2046, 1801]
+[:key_up_player_one, 27, 0, 1, 2047, 1801]
+[:key_held_player_one, 14, 0, 1, 2048, 1802]
+[:key_held_player_one, 19, 0, 1, 2049, 1802]
+[:key_held_player_one, 14, 0, 1, 2050, 1803]
+[:key_held_player_one, 19, 0, 1, 2051, 1803]
+[:key_held_player_one, 14, 0, 1, 2052, 1804]
+[:key_held_player_one, 19, 0, 1, 2053, 1804]
+[:key_held_player_one, 14, 0, 1, 2054, 1805]
+[:key_held_player_one, 19, 0, 1, 2055, 1805]
+[:key_held_player_one, 14, 0, 1, 2056, 1806]
+[:key_held_player_one, 19, 0, 1, 2057, 1806]
+[:key_held_player_one, 14, 0, 1, 2058, 1807]
+[:key_held_player_one, 19, 0, 1, 2059, 1807]
+[:key_up_player_one, 14, 0, 1, 2060, 1808]
+[:key_held_player_one, 19, 0, 1, 2061, 1808]
+[:key_held_player_one, 19, 0, 1, 2062, 1809]
+[:key_held_player_one, 19, 0, 1, 2063, 1810]
+[:key_down_player_one, 3, 0, 1, 2064, 1811]
+[:key_down_player_one, 14, 0, 1, 2065, 1811]
+[:key_held_player_one, 19, 0, 1, 2066, 1811]
+[:key_down_player_one, 26, 0, 1, 2067, 1811]
+[:key_held_player_one, 3, 0, 1, 2068, 1812]
+[:key_held_player_one, 14, 0, 1, 2069, 1812]
+[:key_held_player_one, 19, 0, 1, 2070, 1812]
+[:key_held_player_one, 26, 0, 1, 2071, 1812]
+[:key_held_player_one, 3, 0, 1, 2072, 1813]
+[:key_held_player_one, 14, 0, 1, 2073, 1813]
+[:key_held_player_one, 19, 0, 1, 2074, 1813]
+[:key_held_player_one, 26, 0, 1, 2075, 1813]
+[:key_held_player_one, 3, 0, 1, 2076, 1814]
+[:key_held_player_one, 14, 0, 1, 2077, 1814]
+[:key_held_player_one, 19, 0, 1, 2078, 1814]
+[:key_held_player_one, 26, 0, 1, 2079, 1814]
+[:key_held_player_one, 3, 0, 1, 2080, 1815]
+[:key_held_player_one, 14, 0, 1, 2081, 1815]
+[:key_held_player_one, 19, 0, 1, 2082, 1815]
+[:key_held_player_one, 26, 0, 1, 2083, 1815]
+[:key_held_player_one, 3, 0, 1, 2084, 1816]
+[:key_held_player_one, 14, 0, 1, 2085, 1816]
+[:key_held_player_one, 19, 0, 1, 2086, 1816]
+[:key_held_player_one, 26, 0, 1, 2087, 1816]
+[:key_held_player_one, 3, 0, 1, 2088, 1817]
+[:key_held_player_one, 14, 0, 1, 2089, 1817]
+[:key_held_player_one, 19, 0, 1, 2090, 1817]
+[:key_held_player_one, 26, 0, 1, 2091, 1817]
+[:key_held_player_one, 3, 0, 1, 2092, 1818]
+[:key_held_player_one, 14, 0, 1, 2093, 1818]
+[:key_held_player_one, 19, 0, 1, 2094, 1818]
+[:key_held_player_one, 26, 0, 1, 2095, 1818]
+[:key_held_player_one, 3, 0, 1, 2096, 1819]
+[:key_up_player_one, 14, 0, 1, 2097, 1819]
+[:key_held_player_one, 19, 0, 1, 2098, 1819]
+[:key_held_player_one, 26, 0, 1, 2099, 1819]
+[:key_held_player_one, 3, 0, 1, 2100, 1820]
+[:key_held_player_one, 19, 0, 1, 2101, 1820]
+[:key_held_player_one, 26, 0, 1, 2102, 1820]
+[:key_held_player_one, 3, 0, 1, 2103, 1821]
+[:key_held_player_one, 19, 0, 1, 2104, 1821]
+[:key_held_player_one, 26, 0, 1, 2105, 1821]
+[:key_held_player_one, 3, 0, 1, 2106, 1822]
+[:key_held_player_one, 19, 0, 1, 2107, 1822]
+[:key_held_player_one, 26, 0, 1, 2108, 1822]
+[:key_held_player_one, 3, 0, 1, 2109, 1823]
+[:key_down_player_one, 14, 0, 1, 2110, 1823]
+[:key_held_player_one, 19, 0, 1, 2111, 1823]
+[:key_held_player_one, 26, 0, 1, 2112, 1823]
+[:key_held_player_one, 3, 0, 1, 2113, 1824]
+[:key_held_player_one, 14, 0, 1, 2114, 1824]
+[:key_held_player_one, 19, 0, 1, 2115, 1824]
+[:key_held_player_one, 26, 0, 1, 2116, 1824]
+[:key_held_player_one, 3, 0, 1, 2117, 1825]
+[:key_held_player_one, 14, 0, 1, 2118, 1825]
+[:key_held_player_one, 19, 0, 1, 2119, 1825]
+[:key_held_player_one, 26, 0, 1, 2120, 1825]
+[:key_held_player_one, 3, 0, 1, 2121, 1826]
+[:key_held_player_one, 14, 0, 1, 2122, 1826]
+[:key_held_player_one, 19, 0, 1, 2123, 1826]
+[:key_held_player_one, 26, 0, 1, 2124, 1826]
+[:key_up_player_one, 3, 0, 1, 2125, 1827]
+[:key_held_player_one, 14, 0, 1, 2126, 1827]
+[:key_held_player_one, 19, 0, 1, 2127, 1827]
+[:key_up_player_one, 26, 0, 1, 2128, 1827]
+[:key_held_player_one, 14, 0, 1, 2129, 1828]
+[:key_held_player_one, 19, 0, 1, 2130, 1828]
+[:key_held_player_one, 14, 0, 1, 2131, 1829]
+[:key_held_player_one, 19, 0, 1, 2132, 1829]
+[:key_up_player_one, 14, 0, 1, 2133, 1830]
+[:key_held_player_one, 19, 0, 1, 2134, 1830]
+[:key_held_player_one, 19, 0, 1, 2135, 1831]
+[:key_held_player_one, 19, 0, 1, 2136, 1832]
+[:key_held_player_one, 19, 0, 1, 2137, 1833]
+[:key_down_player_one, 14, 0, 1, 2138, 1834]
+[:key_held_player_one, 19, 0, 1, 2139, 1834]
+[:key_held_player_one, 14, 0, 1, 2140, 1835]
+[:key_held_player_one, 19, 0, 1, 2141, 1835]
+[:key_held_player_one, 14, 0, 1, 2142, 1836]
+[:key_held_player_one, 19, 0, 1, 2143, 1836]
+[:key_held_player_one, 14, 0, 1, 2144, 1837]
+[:key_held_player_one, 19, 0, 1, 2145, 1837]
+[:key_held_player_one, 14, 0, 1, 2146, 1838]
+[:key_held_player_one, 19, 0, 1, 2147, 1838]
+[:key_held_player_one, 14, 0, 1, 2148, 1839]
+[:key_held_player_one, 19, 0, 1, 2149, 1839]
+[:key_held_player_one, 14, 0, 1, 2150, 1840]
+[:key_held_player_one, 19, 0, 1, 2151, 1840]
+[:key_up_player_one, 14, 0, 1, 2152, 1841]
+[:key_held_player_one, 19, 0, 1, 2153, 1841]
+[:key_held_player_one, 19, 0, 1, 2154, 1842]
+[:key_held_player_one, 19, 0, 1, 2155, 1843]
+[:key_held_player_one, 19, 0, 1, 2156, 1844]
+[:key_held_player_one, 19, 0, 1, 2157, 1845]
+[:key_held_player_one, 19, 0, 1, 2158, 1846]
+[:key_held_player_one, 19, 0, 1, 2159, 1847]
+[:key_held_player_one, 19, 0, 1, 2160, 1848]
+[:key_held_player_one, 19, 0, 1, 2161, 1849]
+[:key_held_player_one, 19, 0, 1, 2162, 1850]
+[:key_held_player_one, 19, 0, 1, 2163, 1851]
+[:key_held_player_one, 19, 0, 1, 2164, 1852]
+[:key_held_player_one, 19, 0, 1, 2165, 1853]
+[:key_held_player_one, 19, 0, 1, 2166, 1854]
+[:key_held_player_one, 19, 0, 1, 2167, 1855]
+[:key_held_player_one, 19, 0, 1, 2168, 1856]
+[:key_held_player_one, 19, 0, 1, 2169, 1857]
+[:key_held_player_one, 19, 0, 1, 2170, 1858]
+[:key_held_player_one, 19, 0, 1, 2171, 1859]
+[:key_down_player_one, 14, 0, 1, 2172, 1860]
+[:key_held_player_one, 19, 0, 1, 2173, 1860]
+[:key_held_player_one, 14, 0, 1, 2174, 1861]
+[:key_held_player_one, 19, 0, 1, 2175, 1861]
+[:key_held_player_one, 14, 0, 1, 2176, 1862]
+[:key_held_player_one, 19, 0, 1, 2177, 1862]
+[:key_down_player_one, 3, 0, 1, 2178, 1863]
+[:key_held_player_one, 14, 0, 1, 2179, 1863]
+[:key_held_player_one, 19, 0, 1, 2180, 1863]
+[:key_down_player_one, 26, 0, 1, 2181, 1863]
+[:key_held_player_one, 3, 0, 1, 2182, 1864]
+[:key_held_player_one, 14, 0, 1, 2183, 1864]
+[:key_held_player_one, 19, 0, 1, 2184, 1864]
+[:key_held_player_one, 26, 0, 1, 2185, 1864]
+[:key_held_player_one, 3, 0, 1, 2186, 1865]
+[:key_held_player_one, 14, 0, 1, 2187, 1865]
+[:key_held_player_one, 19, 0, 1, 2188, 1865]
+[:key_held_player_one, 26, 0, 1, 2189, 1865]
+[:key_held_player_one, 3, 0, 1, 2190, 1866]
+[:key_held_player_one, 14, 0, 1, 2191, 1866]
+[:key_held_player_one, 19, 0, 1, 2192, 1866]
+[:key_held_player_one, 26, 0, 1, 2193, 1866]
+[:key_held_player_one, 3, 0, 1, 2194, 1867]
+[:key_held_player_one, 14, 0, 1, 2195, 1867]
+[:key_held_player_one, 19, 0, 1, 2196, 1867]
+[:key_held_player_one, 26, 0, 1, 2197, 1867]
+[:key_held_player_one, 3, 0, 1, 2198, 1868]
+[:key_up_player_one, 14, 0, 1, 2199, 1868]
+[:key_held_player_one, 19, 0, 1, 2200, 1868]
+[:key_held_player_one, 26, 0, 1, 2201, 1868]
+[:key_held_player_one, 3, 0, 1, 2202, 1869]
+[:key_held_player_one, 19, 0, 1, 2203, 1869]
+[:key_held_player_one, 26, 0, 1, 2204, 1869]
+[:key_held_player_one, 3, 0, 1, 2205, 1870]
+[:key_held_player_one, 19, 0, 1, 2206, 1870]
+[:key_held_player_one, 26, 0, 1, 2207, 1870]
+[:key_held_player_one, 3, 0, 1, 2208, 1871]
+[:key_held_player_one, 19, 0, 1, 2209, 1871]
+[:key_held_player_one, 26, 0, 1, 2210, 1871]
+[:key_held_player_one, 3, 0, 1, 2211, 1872]
+[:key_held_player_one, 19, 0, 1, 2212, 1872]
+[:key_held_player_one, 26, 0, 1, 2213, 1872]
+[:key_held_player_one, 3, 0, 1, 2214, 1873]
+[:key_held_player_one, 19, 0, 1, 2215, 1873]
+[:key_held_player_one, 26, 0, 1, 2216, 1873]
+[:key_held_player_one, 3, 0, 1, 2217, 1874]
+[:key_down_player_one, 14, 0, 1, 2218, 1874]
+[:key_held_player_one, 19, 0, 1, 2219, 1874]
+[:key_held_player_one, 26, 0, 1, 2220, 1874]
+[:key_held_player_one, 3, 0, 1, 2221, 1875]
+[:key_held_player_one, 14, 0, 1, 2222, 1875]
+[:key_held_player_one, 19, 0, 1, 2223, 1875]
+[:key_held_player_one, 26, 0, 1, 2224, 1875]
+[:key_held_player_one, 3, 0, 1, 2225, 1876]
+[:key_held_player_one, 14, 0, 1, 2226, 1876]
+[:key_held_player_one, 19, 0, 1, 2227, 1876]
+[:key_held_player_one, 26, 0, 1, 2228, 1876]
+[:key_held_player_one, 3, 0, 1, 2229, 1877]
+[:key_held_player_one, 14, 0, 1, 2230, 1877]
+[:key_held_player_one, 19, 0, 1, 2231, 1877]
+[:key_held_player_one, 26, 0, 1, 2232, 1877]
+[:key_held_player_one, 3, 0, 1, 2233, 1878]
+[:key_held_player_one, 14, 0, 1, 2234, 1878]
+[:key_held_player_one, 19, 0, 1, 2235, 1878]
+[:key_held_player_one, 26, 0, 1, 2236, 1878]
+[:key_held_player_one, 3, 0, 1, 2237, 1879]
+[:key_held_player_one, 14, 0, 1, 2238, 1879]
+[:key_held_player_one, 19, 0, 1, 2239, 1879]
+[:key_held_player_one, 26, 0, 1, 2240, 1879]
+[:key_up_player_one, 3, 0, 1, 2241, 1880]
+[:key_held_player_one, 14, 0, 1, 2242, 1880]
+[:key_held_player_one, 19, 0, 1, 2243, 1880]
+[:key_up_player_one, 26, 0, 1, 2244, 1880]
+[:key_held_player_one, 14, 0, 1, 2245, 1881]
+[:key_held_player_one, 19, 0, 1, 2246, 1881]
+[:key_up_player_one, 14, 0, 1, 2247, 1882]
+[:key_held_player_one, 19, 0, 1, 2248, 1882]
+[:key_held_player_one, 19, 0, 1, 2249, 1883]
+[:key_held_player_one, 19, 0, 1, 2250, 1884]
+[:key_held_player_one, 19, 0, 1, 2251, 1885]
+[:key_held_player_one, 19, 0, 1, 2252, 1886]
+[:key_held_player_one, 19, 0, 1, 2253, 1887]
+[:key_held_player_one, 19, 0, 1, 2254, 1888]
+[:key_held_player_one, 19, 0, 1, 2255, 1889]
+[:key_held_player_one, 19, 0, 1, 2256, 1890]
+[:key_held_player_one, 19, 0, 1, 2257, 1891]
+[:key_held_player_one, 19, 0, 1, 2258, 1892]
+[:key_held_player_one, 19, 0, 1, 2259, 1893]
+[:key_held_player_one, 19, 0, 1, 2260, 1894]
+[:key_held_player_one, 19, 0, 1, 2261, 1895]
+[:key_held_player_one, 19, 0, 1, 2262, 1896]
+[:key_held_player_one, 19, 0, 1, 2263, 1897]
+[:key_down_player_one, 4, 0, 1, 2264, 1898]
+[:key_held_player_one, 19, 0, 1, 2265, 1898]
+[:key_down_player_one, 27, 0, 1, 2266, 1898]
+[:key_held_player_one, 4, 0, 1, 2267, 1899]
+[:key_held_player_one, 19, 0, 1, 2268, 1899]
+[:key_held_player_one, 27, 0, 1, 2269, 1899]
+[:key_held_player_one, 4, 0, 1, 2270, 1900]
+[:key_held_player_one, 19, 0, 1, 2271, 1900]
+[:key_held_player_one, 27, 0, 1, 2272, 1900]
+[:key_held_player_one, 4, 0, 1, 2273, 1901]
+[:key_held_player_one, 19, 0, 1, 2274, 1901]
+[:key_held_player_one, 27, 0, 1, 2275, 1901]
+[:key_held_player_one, 4, 0, 1, 2276, 1902]
+[:key_held_player_one, 19, 0, 1, 2277, 1902]
+[:key_held_player_one, 27, 0, 1, 2278, 1902]
+[:key_held_player_one, 4, 0, 1, 2279, 1903]
+[:key_held_player_one, 19, 0, 1, 2280, 1903]
+[:key_held_player_one, 27, 0, 1, 2281, 1903]
+[:key_held_player_one, 4, 0, 1, 2282, 1904]
+[:key_held_player_one, 19, 0, 1, 2283, 1904]
+[:key_held_player_one, 27, 0, 1, 2284, 1904]
+[:key_up_player_one, 4, 0, 1, 2285, 1905]
+[:key_held_player_one, 19, 0, 1, 2286, 1905]
+[:key_up_player_one, 27, 0, 1, 2287, 1905]
+[:key_held_player_one, 19, 0, 1, 2288, 1906]
+[:key_held_player_one, 19, 0, 1, 2289, 1907]
+[:key_held_player_one, 19, 0, 1, 2290, 1908]
+[:key_held_player_one, 19, 0, 1, 2291, 1909]
+[:key_held_player_one, 19, 0, 1, 2292, 1910]
+[:key_held_player_one, 19, 0, 1, 2293, 1911]
+[:key_held_player_one, 19, 0, 1, 2294, 1912]
+[:key_held_player_one, 19, 0, 1, 2295, 1913]
+[:key_held_player_one, 19, 0, 1, 2296, 1914]
+[:key_up_player_one, 19, 0, 1, 2297, 1915]
+[:key_down_raw, 1073741906, 0, 2, 2298, 2063]
+[:key_down_raw, 1073741906, 0, 2, 2299, 2063]
+[:key_down_raw, 1073741906, 0, 2, 2300, 2066]
+[:key_down_raw, 1073741906, 0, 2, 2301, 2070]
+[:key_down_raw, 1073741906, 0, 2, 2302, 2072]
+[:key_down_raw, 1073741906, 0, 2, 2303, 2074]
+[:key_down_raw, 1073741906, 0, 2, 2304, 2076]
+[:key_down_raw, 1073741906, 0, 2, 2305, 2078]
+[:key_down_raw, 1073741906, 0, 2, 2306, 2080]
+[:key_down_raw, 1073741906, 0, 2, 2307, 2082]
+[:key_down_raw, 1073741906, 0, 2, 2308, 2084]
+[:key_down_raw, 1073741906, 0, 2, 2309, 2086]
+[:key_down_raw, 1073741906, 0, 2, 2310, 2088]
+[:key_down_raw, 1073741906, 0, 2, 2311, 2090]
+[:key_down_raw, 1073741906, 0, 2, 2312, 2092]
+[:key_down_raw, 1073741906, 0, 2, 2313, 2094]
+[:key_down_raw, 1073741906, 0, 2, 2314, 2096]
+[:key_down_raw, 1073741906, 0, 2, 2315, 2098]
+[:key_down_raw, 1073741906, 0, 2, 2316, 2100]
+[:key_down_raw, 1073741906, 0, 2, 2317, 2102]
+[:key_down_raw, 1073741906, 0, 2, 2318, 2104]
+[:key_down_raw, 1073741906, 0, 2, 2319, 2106]
+[:key_down_raw, 1073741906, 0, 2, 2320, 2108]
+[:key_down_raw, 1073741906, 0, 2, 2321, 2110]
+[:key_down_raw, 1073741906, 0, 2, 2322, 2113]
+[:key_down_raw, 1073741906, 0, 2, 2323, 2115]
+[:key_down_raw, 1073741906, 0, 2, 2324, 2117]
+[:key_down_raw, 1073741906, 0, 2, 2325, 2119]
+[:key_down_raw, 1073741906, 0, 2, 2326, 2121]
+[:key_down_raw, 1073741906, 0, 2, 2327, 2123]
+[:key_down_raw, 1073741906, 0, 2, 2328, 2125]
+[:key_down_raw, 1073741906, 0, 2, 2329, 2127]
+[:key_down_raw, 1073741906, 0, 2, 2330, 2129]
+[:key_down_raw, 1073741906, 0, 2, 2331, 2131]
+[:key_down_raw, 1073741906, 0, 2, 2332, 2133]
+[:key_down_raw, 1073741906, 0, 2, 2333, 2135]
+[:key_down_raw, 1073741906, 0, 2, 2334, 2137]
+[:key_down_raw, 1073741906, 0, 2, 2335, 2139]
+[:key_down_raw, 1073741906, 0, 2, 2336, 2141]
+[:key_down_raw, 1073741904, 0, 2, 2337, 2141]
+[:key_up_raw, 1073741904, 0, 2, 2338, 2145]
+[:key_down_raw, 1073741904, 0, 2, 2339, 2151]
+[:key_up_raw, 1073741904, 0, 2, 2340, 2156]
+[:key_down_raw, 1073741904, 0, 2, 2341, 2160]
+[:key_up_raw, 1073741904, 0, 2, 2342, 2163]
+[:key_down_raw, 1073741904, 0, 2, 2343, 2177]
+[:key_down_raw, 1073741904, 0, 2, 2344, 2202]
+[:key_down_raw, 1073741904, 0, 2, 2345, 2204]
+[:key_down_raw, 1073741904, 0, 2, 2346, 2206]
+[:key_down_raw, 1073741904, 0, 2, 2347, 2208]
+[:key_down_raw, 32, 0, 2, 2348, 2208]
+[:key_down_raw, 32, 0, 2, 2349, 2233]
+[:key_down_raw, 32, 0, 2, 2350, 2235]
+[:key_down_raw, 32, 0, 2, 2351, 2237]
+[:key_down_raw, 32, 0, 2, 2352, 2239]
+[:key_down_raw, 32, 0, 2, 2353, 2241]
+[:key_down_raw, 32, 0, 2, 2354, 2244]
+[:key_down_raw, 32, 0, 2, 2355, 2246]
+[:key_down_raw, 32, 0, 2, 2356, 2247]
+[:key_down_raw, 32, 0, 2, 2357, 2249]
+[:key_down_raw, 32, 0, 2, 2358, 2251]
+[:key_down_raw, 32, 0, 2, 2359, 2254]
+[:key_down_raw, 32, 0, 2, 2360, 2255]
+[:key_down_raw, 32, 0, 2, 2361, 2257]
+[:key_down_raw, 32, 0, 2, 2362, 2259]
+[:key_up_raw, 1073741904, 0, 2, 2363, 2261]
+[:key_up_raw, 32, 0, 2, 2364, 2261]
+[:key_down_raw, 1073741904, 0, 2, 2365, 2299]
+[:key_up_raw, 1073741904, 0, 2, 2366, 2320]
+[:key_down_raw, 1073741905, 0, 2, 2367, 2338]
+[:key_up_raw, 1073741905, 0, 2, 2368, 2342]
+[:key_down_raw, 1073741905, 0, 2, 2369, 2348]
+[:key_up_raw, 1073741905, 0, 2, 2370, 2354]
+[:key_down_raw, 1073741905, 0, 2, 2371, 2360]
+[:key_up_raw, 1073741905, 0, 2, 2372, 2363]
+[:key_down_raw, 1073741905, 0, 2, 2373, 2367]
+[:key_up_raw, 1073741905, 0, 2, 2374, 2371]
+[:key_down_raw, 1073741905, 0, 2, 2375, 2376]
+[:key_up_raw, 1073741905, 0, 2, 2376, 2380]
+[:key_up_raw, 1073741906, 0, 2, 2377, 2384]
+[:key_down_raw, 1073742051, 1024, 2, 2378, 2682]
+[:key_down_raw, 113, 1024, 2, 2379, 2732]
diff --git a/samples/99_genre_arcade/dueling_starships/sprites/blue_bullet.png b/samples/99_genre_arcade/dueling_starships/sprites/blue_bullet.png
new file mode 100644
index 0000000..78ae7d0
--- /dev/null
+++ b/samples/99_genre_arcade/dueling_starships/sprites/blue_bullet.png
Binary files differ
diff --git a/samples/99_genre_arcade/dueling_starships/sprites/flame.png b/samples/99_genre_arcade/dueling_starships/sprites/flame.png
new file mode 100644
index 0000000..6143f2f
--- /dev/null
+++ b/samples/99_genre_arcade/dueling_starships/sprites/flame.png
Binary files differ
diff --git a/samples/99_genre_arcade/dueling_starships/sprites/red_bullet.png b/samples/99_genre_arcade/dueling_starships/sprites/red_bullet.png
new file mode 100644
index 0000000..3bb6219
--- /dev/null
+++ b/samples/99_genre_arcade/dueling_starships/sprites/red_bullet.png
Binary files differ
diff --git a/samples/99_genre_arcade/dueling_starships/sprites/ship_blue.png b/samples/99_genre_arcade/dueling_starships/sprites/ship_blue.png
new file mode 100644
index 0000000..3ef5f0b
--- /dev/null
+++ b/samples/99_genre_arcade/dueling_starships/sprites/ship_blue.png
Binary files differ
diff --git a/samples/99_genre_arcade/dueling_starships/sprites/ship_red.png b/samples/99_genre_arcade/dueling_starships/sprites/ship_red.png
new file mode 100644
index 0000000..af729b7
--- /dev/null
+++ b/samples/99_genre_arcade/dueling_starships/sprites/ship_red.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/CREDITS.txt b/samples/99_genre_arcade/flappy_dragon/CREDITS.txt
new file mode 100644
index 0000000..e02ebbd
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/CREDITS.txt
@@ -0,0 +1,3 @@
+code: Amir Rajan, https://twitter.com/amirrajan
+graphics and audio: Nick Culbertson, https://twitter.com/MobyPixel
+
diff --git a/samples/99_genre_arcade/flappy_dragon/app/main.rb b/samples/99_genre_arcade/flappy_dragon/app/main.rb
new file mode 100644
index 0000000..56ce3ec
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/app/main.rb
@@ -0,0 +1,360 @@
+class FlappyDragon
+ attr_accessor :grid, :inputs, :state, :outputs
+
+ def tick
+ defaults
+ render
+ calc
+ process_inputs
+ end
+
+ def defaults
+ state.flap_power = 11
+ state.gravity = 0.9
+ state.ceiling = 600
+ state.ceiling_flap_power = 6
+ state.wall_countdown_length = 100
+ state.wall_gap_size = 100
+ state.wall_countdown ||= 0
+ state.hi_score ||= 0
+ state.score ||= 0
+ state.walls ||= []
+ state.x ||= 50
+ state.y ||= 500
+ state.dy ||= 0
+ state.scene ||= :menu
+ state.scene_at ||= 0
+ state.difficulty ||= :normal
+ state.new_difficulty ||= :normal
+ state.countdown ||= 4.seconds
+ state.flash_at ||= 0
+ end
+
+ def render
+ outputs.sounds << "sounds/flappy-song.ogg" if state.tick_count == 1
+ render_score
+ render_menu
+ render_game
+ end
+
+ def render_score
+ outputs.primitives << [10, 710, "HI SCORE: #{state.hi_score}", large_white_typeset].label
+ outputs.primitives << [10, 680, "SCORE: #{state.score}", large_white_typeset].label
+ outputs.primitives << [10, 650, "DIFFICULTY: #{state.difficulty.upcase}", large_white_typeset].label
+ end
+
+ def render_menu
+ return unless state.scene == :menu
+ render_overlay
+
+ outputs.labels << [640, 700, "Flappy Dragon", 50, 1, 255, 255, 255]
+ outputs.labels << [640, 500, "Instructions: Press Spacebar to flap. Don't die.", 4, 1, 255, 255, 255]
+ outputs.labels << [430, 430, "[Tab] Change difficulty", 4, 0, 255, 255, 255]
+ outputs.labels << [430, 400, "[Enter] Start at New Difficulty ", 4, 0, 255, 255, 255]
+ outputs.labels << [430, 370, "[Escape] Cancel/Resume ", 4, 0, 255, 255, 255]
+ outputs.labels << [640, 300, "(mouse, touch, and game controllers work, too!) ", 4, 1, 255, 255, 255]
+ outputs.labels << [640, 200, "Difficulty: #{state.new_difficulty.capitalize}", 4, 1, 255, 255, 255]
+
+ outputs.labels << [10, 100, "Code: @amirrajan", 255, 255, 255]
+ outputs.labels << [10, 80, "Art: @mobypixel", 255, 255, 255]
+ outputs.labels << [10, 60, "Music: @mobypixel", 255, 255, 255]
+ outputs.labels << [10, 40, "Engine: DragonRuby GTK", 255, 255, 255]
+ end
+
+ def render_overlay
+ outputs.primitives << [grid.rect.scale_rect(1.1, 0, 0), 0, 0, 0, 230].solid
+ end
+
+ def render_game
+ render_game_over
+ render_background
+ render_walls
+ render_dragon
+ render_flash
+ end
+
+ def render_game_over
+ return unless state.scene == :game
+ outputs.labels << [638, 358, score_text, 20, 1]
+ outputs.labels << [635, 360, score_text, 20, 1, 255, 255, 255]
+ outputs.labels << [638, 428, countdown_text, 20, 1]
+ outputs.labels << [635, 430, countdown_text, 20, 1, 255, 255, 255]
+ end
+
+ def render_background
+ outputs.sprites << [0, 0, 1280, 720, 'sprites/background.png']
+
+ scroll_point_at = state.tick_count
+ scroll_point_at = state.scene_at if state.scene == :menu
+ scroll_point_at = state.death_at if state.countdown > 0
+ scroll_point_at ||= 0
+
+ outputs.sprites << scrolling_background(scroll_point_at, 'sprites/parallax_back.png', 0.25)
+ outputs.sprites << scrolling_background(scroll_point_at, 'sprites/parallax_middle.png', 0.50)
+ outputs.sprites << scrolling_background(scroll_point_at, 'sprites/parallax_front.png', 1.00, -80)
+ end
+
+ def render_walls
+ state.walls.each do |w|
+ w.sprites = [
+ [w.x, w.bottom_height - 720, 100, 720, 'sprites/wall.png', 180],
+ [w.x, w.top_y, 100, 720, 'sprites/wallbottom.png', 0]
+ ]
+ end
+ outputs.sprites << state.walls.map(&:sprites)
+ end
+
+ def render_dragon
+ state.show_death = true if state.countdown == 3.seconds
+
+ render_debug_hitbox false
+
+ if state.show_death == false || !state.death_at
+ animation_index = state.flapped_at.frame_index 6, 2, false if state.flapped_at
+ sprite_name = "sprites/dragon_fly#{animation_index.or(0) + 1}.png"
+ state.dragon_sprite = [state.x, state.y, 100, 80, sprite_name, state.dy * 1.2]
+ else
+ sprite_name = "sprites/dragon_die.png"
+ state.dragon_sprite = [state.x, state.y, 100, 80, sprite_name, state.dy * 1.2]
+ sprite_changed_elapsed = state.death_at.elapsed_time - 1.seconds
+ state.dragon_sprite.angle += (sprite_changed_elapsed ** 1.3) * state.death_fall_direction * -1
+ state.dragon_sprite.x += (sprite_changed_elapsed ** 1.2) * state.death_fall_direction
+ state.dragon_sprite.y += (sprite_changed_elapsed * 14 - sprite_changed_elapsed ** 1.6)
+ end
+
+ outputs.sprites << state.dragon_sprite
+ end
+
+ def render_debug_hitbox show
+ return unless show
+ outputs.borders << [dragon_collision_box.rect, 255, 0, 0] if state.dragon_sprite
+ outputs.borders << state.walls.flat_map do |w|
+ w.sprites.map { |s| [s.rect, 255, 0, 0] }
+ end
+ end
+
+ def render_flash
+ return unless state.flash_at
+
+ outputs.primitives << [grid.rect,
+ white,
+ 255 * state.flash_at.ease(20, :flip)].solid
+
+ state.flash_at = 0 if state.flash_at.elapsed_time > 20
+ end
+
+ def calc
+ return unless state.scene == :game
+ reset_game if state.countdown == 1
+ state.countdown -= 1 and return if state.countdown > 0
+ calc_walls
+ calc_flap
+ calc_game_over
+ end
+
+ def calc_walls
+ state.walls.each { |w| w.x -= 8 }
+
+ walls_count_before_removal = state.walls.length
+
+ state.walls.reject! { |w| w.x < -100 }
+
+ state.score += 1 if state.walls.count < walls_count_before_removal
+
+ state.wall_countdown -= 1 and return if state.wall_countdown > 0
+
+ state.walls << state.new_entity(:wall) do |w|
+ w.x = grid.right
+ w.opening = grid.top
+ .randomize(:ratio)
+ .greater(200)
+ .lesser(520)
+ w.bottom_height = w.opening - state.wall_gap_size
+ w.top_y = w.opening + state.wall_gap_size
+ end
+
+ state.wall_countdown = state.wall_countdown_length
+ end
+
+ def calc_flap
+ state.y += state.dy
+ state.dy = state.dy.lesser state.flap_power
+ state.dy -= state.gravity
+ return if state.y < state.ceiling
+ state.y = state.ceiling
+ state.dy = state.dy.lesser state.ceiling_flap_power
+ end
+
+ def calc_game_over
+ return unless game_over?
+
+ state.death_at = state.tick_count
+ state.death_from = state.walls.first
+ state.death_fall_direction = -1
+ state.death_fall_direction = 1 if state.x > state.death_from.x
+ outputs.sounds << "sounds/hit-sound.wav"
+ begin_countdown
+ end
+
+ def process_inputs
+ process_inputs_menu
+ process_inputs_game
+ end
+
+ def process_inputs_menu
+ return unless state.scene == :menu
+
+ changediff = inputs.keyboard.key_down.tab || inputs.controller_one.key_down.select
+ if inputs.mouse.click
+ p = inputs.mouse.click.point
+ if (p.y >= 165) && (p.y < 200) && (p.x >= 500) && (p.x < 800)
+ changediff = true
+ end
+ end
+
+ if changediff
+ case state.new_difficulty
+ when :easy
+ state.new_difficulty = :normal
+ when :normal
+ state.new_difficulty = :hard
+ when :hard
+ state.new_difficulty = :flappy
+ when :flappy
+ state.new_difficulty = :easy
+ end
+ end
+
+ if inputs.keyboard.key_down.enter || inputs.controller_one.key_down.start || inputs.controller_one.key_down.a
+ state.difficulty = state.new_difficulty
+ change_to_scene :game
+ reset_game false
+ state.hi_score = 0
+ begin_countdown
+ end
+
+ if inputs.keyboard.key_down.escape || (inputs.mouse.click && !changediff) || inputs.controller_one.key_down.b
+ state.new_difficulty = state.difficulty
+ change_to_scene :game
+ end
+ end
+
+ def process_inputs_game
+ return unless state.scene == :game
+
+ clicked_menu = false
+ if inputs.mouse.click
+ p = inputs.mouse.click.point
+ clicked_menu = (p.y >= 620) && (p.x < 275)
+ end
+
+ if clicked_menu || inputs.keyboard.key_down.escape || inputs.keyboard.key_down.enter || inputs.controller_one.key_down.start
+ change_to_scene :menu
+ elsif (inputs.mouse.down || inputs.mouse.click || inputs.keyboard.key_down.space || inputs.controller_one.key_down.a) && state.countdown == 0
+ state.dy = 0
+ state.dy += state.flap_power
+ state.flapped_at = state.tick_count
+ outputs.sounds << "sounds/fly-sound.wav"
+ end
+ end
+
+ def scrolling_background at, path, rate, y = 0
+ [
+ [ 0 - at.*(rate) % 1440, y, 1440, 720, path],
+ [1440 - at.*(rate) % 1440, y, 1440, 720, path]
+ ]
+ end
+
+ def white
+ [255, 255, 255]
+ end
+
+ def large_white_typeset
+ [5, 0, 255, 255, 255]
+ end
+
+ def at_beginning?
+ state.walls.count == 0
+ end
+
+ def dragon_collision_box
+ state.dragon_sprite
+ .scale_rect(1.0 - collision_forgiveness, 0.5, 0.5)
+ .rect_shift_right(10)
+ .rect_shift_up(state.dy * 2)
+ end
+
+ def game_over?
+ return true if state.y <= 0.-(500 * collision_forgiveness) && !at_beginning?
+
+ state.walls
+ .flat_map { |w| w.sprites }
+ .any? do |s|
+ s.intersect_rect?(dragon_collision_box)
+ end
+ end
+
+ def collision_forgiveness
+ case state.difficulty
+ when :easy
+ 0.9
+ when :normal
+ 0.7
+ when :hard
+ 0.5
+ when :flappy
+ 0.3
+ else
+ 0.9
+ end
+ end
+
+ def countdown_text
+ state.countdown ||= -1
+ return "" if state.countdown == 0
+ return "GO!" if state.countdown.idiv(60) == 0
+ return "GAME OVER" if state.death_at
+ return "READY?"
+ end
+
+ def begin_countdown
+ state.countdown = 4.seconds
+ end
+
+ def score_text
+ return "" unless state.countdown > 1.seconds
+ return "" unless state.death_at
+ return "SCORE: 0 (LOL)" if state.score == 0
+ return "HI SCORE: #{state.score}" if state.score == state.hi_score
+ return "SCORE: #{state.score}"
+ end
+
+ def reset_game set_flash = true
+ state.flash_at = state.tick_count if set_flash
+ state.walls = []
+ state.y = 500
+ state.dy = 0
+ state.hi_score = state.hi_score.greater(state.score)
+ state.score = 0
+ state.wall_countdown = state.wall_countdown_length.fdiv(2)
+ state.show_death = false
+ state.death_at = nil
+ end
+
+ def change_to_scene scene
+ state.scene = scene
+ state.scene_at = state.tick_count
+ inputs.keyboard.clear
+ inputs.controller_one.clear
+ end
+end
+
+$flappy_dragon = FlappyDragon.new
+
+def tick args
+ $flappy_dragon.grid = args.grid
+ $flappy_dragon.inputs = args.inputs
+ $flappy_dragon.state = args.state
+ $flappy_dragon.outputs = args.outputs
+ $flappy_dragon.tick
+end
diff --git a/samples/99_genre_arcade/flappy_dragon/license-for-sample.txt b/samples/99_genre_arcade/flappy_dragon/license-for-sample.txt
new file mode 100644
index 0000000..c25563f
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/license-for-sample.txt
@@ -0,0 +1,9 @@
+Copyright 2019 DragonRuby LLC (code), Nick Culbertson @mobypixel (art/music)
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/samples/99_genre_arcade/flappy_dragon/metadata/game_metadata.txt b/samples/99_genre_arcade/flappy_dragon/metadata/game_metadata.txt
new file mode 100644
index 0000000..022ab17
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/metadata/game_metadata.txt
@@ -0,0 +1,6 @@
+devid=dragonruby
+devtitle=DragonRuby LLC
+gameid=flappydragon
+gametitle=Flappy Dragon
+version=1.3
+icon=sprites/dragon_fly1.png
diff --git a/samples/99_genre_arcade/flappy_dragon/replay.txt b/samples/99_genre_arcade/flappy_dragon/replay.txt
new file mode 100644
index 0000000..3640a47
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/replay.txt
@@ -0,0 +1,957 @@
+replay_version 2.0
+stopped_at 2687
+seed 100
+recorded_at Wed Oct 30 01:03:33 2019
+[:mouse_move, 230, 226, 2, 1, 1]
+[:mouse_move, 242, 232, 2, 2, 2]
+[:mouse_move, 243, 232, 2, 3, 4]
+[:mouse_move, 245, 233, 2, 4, 6]
+[:mouse_move, 247, 233, 2, 5, 7]
+[:mouse_move, 248, 234, 2, 6, 39]
+[:mouse_move, 250, 236, 2, 7, 40]
+[:mouse_move, 252, 240, 2, 8, 41]
+[:mouse_move, 256, 244, 2, 9, 42]
+[:mouse_move, 262, 248, 2, 10, 43]
+[:mouse_move, 266, 250, 2, 11, 44]
+[:mouse_move, 268, 252, 2, 12, 45]
+[:mouse_move, 269, 252, 2, 13, 48]
+[:mouse_move, 269, 253, 2, 14, 52]
+[:mouse_move, 272, 257, 2, 15, 53]
+[:mouse_move, 275, 262, 2, 16, 54]
+[:mouse_move, 278, 268, 2, 17, 55]
+[:mouse_move, 281, 274, 2, 18, 56]
+[:mouse_move, 288, 280, 2, 19, 57]
+[:mouse_move, 296, 286, 2, 20, 58]
+[:mouse_move, 308, 294, 2, 21, 59]
+[:mouse_move, 327, 302, 2, 22, 60]
+[:mouse_move, 353, 310, 2, 23, 61]
+[:mouse_move, 375, 315, 2, 24, 62]
+[:mouse_move, 394, 317, 2, 25, 63]
+[:mouse_move, 406, 317, 2, 26, 64]
+[:mouse_move, 413, 317, 2, 27, 65]
+[:mouse_move, 418, 315, 2, 28, 66]
+[:mouse_move, 419, 314, 2, 29, 67]
+[:mouse_move, 419, 313, 2, 30, 68]
+[:mouse_move, 418, 311, 2, 31, 69]
+[:mouse_move, 417, 308, 2, 32, 70]
+[:mouse_move, 416, 306, 2, 33, 71]
+[:mouse_move, 414, 306, 2, 34, 72]
+[:mouse_move, 414, 305, 2, 35, 73]
+[:mouse_move, 413, 305, 2, 36, 76]
+[:mouse_move, 413, 306, 2, 37, 80]
+[:mouse_move, 413, 307, 2, 38, 83]
+[:mouse_move, 413, 308, 2, 39, 84]
+[:mouse_move, 414, 309, 2, 40, 85]
+[:mouse_move, 414, 310, 2, 41, 86]
+[:mouse_move, 414, 311, 2, 42, 87]
+[:mouse_move, 413, 312, 2, 43, 88]
+[:mouse_move, 412, 313, 2, 44, 90]
+[:mouse_move, 413, 312, 2, 45, 94]
+[:mouse_move, 416, 310, 2, 46, 95]
+[:mouse_move, 419, 307, 2, 47, 96]
+[:mouse_move, 421, 305, 2, 48, 97]
+[:mouse_move, 422, 305, 2, 49, 98]
+[:mouse_move, 421, 305, 2, 50, 101]
+[:mouse_move, 421, 306, 2, 51, 104]
+[:mouse_move, 421, 307, 2, 52, 105]
+[:mouse_move, 420, 307, 2, 53, 106]
+[:mouse_move, 420, 308, 2, 54, 107]
+[:mouse_move, 419, 309, 2, 55, 108]
+[:mouse_move, 418, 309, 2, 56, 109]
+[:mouse_move, 416, 311, 2, 57, 110]
+[:mouse_move, 411, 312, 2, 58, 111]
+[:mouse_move, 407, 314, 2, 59, 112]
+[:mouse_move, 404, 315, 2, 60, 113]
+[:mouse_move, 400, 317, 2, 61, 114]
+[:mouse_move, 397, 318, 2, 62, 115]
+[:mouse_move, 395, 320, 2, 63, 116]
+[:mouse_move, 395, 321, 2, 64, 117]
+[:mouse_move, 395, 322, 2, 65, 120]
+[:mouse_move, 397, 323, 2, 66, 121]
+[:mouse_move, 401, 325, 2, 67, 122]
+[:mouse_move, 405, 326, 2, 68, 123]
+[:mouse_move, 410, 326, 2, 69, 124]
+[:mouse_move, 416, 327, 2, 70, 125]
+[:mouse_move, 421, 327, 2, 71, 126]
+[:mouse_move, 426, 328, 2, 72, 127]
+[:mouse_move, 430, 328, 2, 73, 128]
+[:mouse_move, 436, 328, 2, 74, 129]
+[:mouse_move, 441, 327, 2, 75, 130]
+[:mouse_move, 448, 327, 2, 76, 131]
+[:mouse_move, 454, 326, 2, 77, 132]
+[:mouse_move, 462, 326, 2, 78, 133]
+[:mouse_move, 471, 326, 2, 79, 134]
+[:mouse_move, 482, 327, 2, 80, 135]
+[:mouse_move, 496, 328, 2, 81, 136]
+[:mouse_move, 507, 329, 2, 82, 137]
+[:mouse_move, 519, 329, 2, 83, 138]
+[:mouse_move, 530, 329, 2, 84, 139]
+[:mouse_move, 540, 329, 2, 85, 140]
+[:mouse_move, 551, 330, 2, 86, 141]
+[:mouse_move, 561, 330, 2, 87, 142]
+[:mouse_move, 567, 330, 2, 88, 143]
+[:mouse_move, 573, 330, 2, 89, 144]
+[:mouse_move, 578, 329, 2, 90, 145]
+[:mouse_move, 582, 329, 2, 91, 146]
+[:mouse_move, 587, 329, 2, 92, 147]
+[:mouse_move, 593, 328, 2, 93, 148]
+[:mouse_move, 599, 328, 2, 94, 149]
+[:mouse_move, 605, 327, 2, 95, 150]
+[:mouse_move, 613, 327, 2, 96, 151]
+[:mouse_move, 621, 327, 2, 97, 152]
+[:mouse_move, 632, 327, 2, 98, 153]
+[:mouse_move, 645, 328, 2, 99, 154]
+[:mouse_move, 658, 328, 2, 100, 155]
+[:mouse_move, 669, 328, 2, 101, 156]
+[:mouse_move, 685, 328, 2, 102, 157]
+[:mouse_move, 702, 328, 2, 103, 158]
+[:mouse_move, 721, 328, 2, 104, 159]
+[:mouse_move, 741, 328, 2, 105, 160]
+[:mouse_move, 766, 327, 2, 106, 161]
+[:mouse_move, 790, 326, 2, 107, 162]
+[:mouse_move, 811, 325, 2, 108, 163]
+[:mouse_move, 827, 323, 2, 109, 164]
+[:mouse_move, 835, 321, 2, 110, 165]
+[:mouse_move, 838, 318, 2, 111, 166]
+[:mouse_move, 839, 317, 2, 112, 167]
+[:mouse_move, 839, 316, 2, 113, 168]
+[:mouse_move, 839, 315, 2, 114, 171]
+[:mouse_move, 838, 316, 2, 115, 180]
+[:mouse_move, 837, 316, 2, 116, 181]
+[:mouse_move, 835, 317, 2, 117, 215]
+[:mouse_move, 830, 318, 2, 118, 216]
+[:mouse_move, 821, 321, 2, 119, 217]
+[:mouse_move, 796, 324, 2, 120, 218]
+[:mouse_move, 772, 328, 2, 121, 219]
+[:mouse_move, 750, 331, 2, 122, 220]
+[:mouse_move, 730, 332, 2, 123, 221]
+[:mouse_move, 714, 333, 2, 124, 222]
+[:mouse_move, 699, 333, 2, 125, 223]
+[:mouse_move, 686, 331, 2, 126, 224]
+[:mouse_move, 676, 330, 2, 127, 225]
+[:mouse_move, 667, 330, 2, 128, 226]
+[:mouse_move, 659, 330, 2, 129, 227]
+[:mouse_move, 650, 330, 2, 130, 228]
+[:mouse_move, 640, 330, 2, 131, 229]
+[:mouse_move, 630, 329, 2, 132, 230]
+[:mouse_move, 620, 329, 2, 133, 231]
+[:mouse_move, 610, 330, 2, 134, 232]
+[:mouse_move, 598, 330, 2, 135, 233]
+[:mouse_move, 585, 330, 2, 136, 234]
+[:mouse_move, 571, 330, 2, 137, 235]
+[:mouse_move, 558, 331, 2, 138, 236]
+[:mouse_move, 546, 333, 2, 139, 237]
+[:mouse_move, 533, 334, 2, 140, 238]
+[:mouse_move, 520, 336, 2, 141, 239]
+[:mouse_move, 506, 338, 2, 142, 240]
+[:mouse_move, 497, 340, 2, 143, 241]
+[:mouse_move, 489, 342, 2, 144, 242]
+[:mouse_move, 482, 343, 2, 145, 243]
+[:mouse_move, 476, 344, 2, 146, 244]
+[:mouse_move, 472, 345, 2, 147, 245]
+[:mouse_move, 470, 345, 2, 148, 246]
+[:mouse_move, 469, 346, 2, 149, 248]
+[:mouse_move, 467, 346, 2, 150, 249]
+[:mouse_move, 465, 347, 2, 151, 250]
+[:mouse_move, 461, 347, 2, 152, 251]
+[:mouse_move, 459, 348, 2, 153, 252]
+[:mouse_move, 458, 348, 2, 154, 253]
+[:mouse_move, 457, 348, 2, 155, 254]
+[:mouse_move, 454, 347, 2, 156, 255]
+[:mouse_move, 450, 347, 2, 157, 256]
+[:mouse_move, 443, 347, 2, 158, 257]
+[:mouse_move, 434, 347, 2, 159, 258]
+[:mouse_move, 426, 347, 2, 160, 259]
+[:mouse_move, 422, 347, 2, 161, 260]
+[:mouse_move, 420, 348, 2, 162, 261]
+[:mouse_move, 423, 348, 2, 163, 265]
+[:mouse_move, 430, 349, 2, 164, 266]
+[:mouse_move, 438, 349, 2, 165, 267]
+[:mouse_move, 445, 350, 2, 166, 268]
+[:mouse_move, 453, 350, 2, 167, 269]
+[:mouse_move, 454, 350, 2, 168, 269]
+[:mouse_move, 461, 352, 2, 169, 270]
+[:mouse_move, 470, 352, 2, 170, 271]
+[:mouse_move, 477, 353, 2, 171, 272]
+[:mouse_move, 486, 354, 2, 172, 273]
+[:mouse_move, 499, 354, 2, 173, 274]
+[:mouse_move, 509, 354, 2, 174, 275]
+[:mouse_move, 522, 355, 2, 175, 276]
+[:mouse_move, 532, 355, 2, 176, 277]
+[:mouse_move, 538, 355, 2, 177, 278]
+[:mouse_move, 544, 355, 2, 178, 279]
+[:mouse_move, 549, 356, 2, 179, 280]
+[:mouse_move, 554, 356, 2, 180, 281]
+[:mouse_move, 561, 356, 2, 181, 282]
+[:mouse_move, 568, 356, 2, 182, 283]
+[:mouse_move, 573, 356, 2, 183, 284]
+[:mouse_move, 579, 356, 2, 184, 285]
+[:mouse_move, 586, 357, 2, 185, 286]
+[:mouse_move, 595, 357, 2, 186, 287]
+[:mouse_move, 601, 358, 2, 187, 288]
+[:mouse_move, 612, 358, 2, 188, 289]
+[:mouse_move, 624, 358, 2, 189, 290]
+[:mouse_move, 633, 359, 2, 190, 291]
+[:mouse_move, 645, 359, 2, 191, 292]
+[:mouse_move, 654, 359, 2, 192, 293]
+[:mouse_move, 665, 360, 2, 193, 294]
+[:mouse_move, 676, 360, 2, 194, 295]
+[:mouse_move, 686, 361, 2, 195, 296]
+[:mouse_move, 695, 361, 2, 196, 297]
+[:mouse_move, 705, 362, 2, 197, 298]
+[:mouse_move, 712, 362, 2, 198, 299]
+[:mouse_move, 721, 362, 2, 199, 300]
+[:mouse_move, 728, 362, 2, 200, 301]
+[:mouse_move, 736, 362, 2, 201, 302]
+[:mouse_move, 743, 362, 2, 202, 303]
+[:mouse_move, 750, 362, 2, 203, 304]
+[:mouse_move, 758, 362, 2, 204, 305]
+[:mouse_move, 769, 362, 2, 205, 306]
+[:mouse_move, 779, 362, 2, 206, 307]
+[:mouse_move, 788, 361, 2, 207, 308]
+[:mouse_move, 793, 360, 2, 208, 309]
+[:mouse_move, 796, 360, 2, 209, 310]
+[:mouse_move, 797, 359, 2, 210, 311]
+[:mouse_move, 796, 360, 2, 211, 353]
+[:mouse_move, 793, 362, 2, 212, 354]
+[:mouse_move, 786, 366, 2, 213, 355]
+[:mouse_move, 771, 375, 2, 214, 356]
+[:mouse_move, 750, 389, 2, 215, 357]
+[:mouse_move, 724, 407, 2, 216, 358]
+[:mouse_move, 693, 427, 2, 217, 359]
+[:mouse_move, 662, 445, 2, 218, 360]
+[:mouse_move, 635, 460, 2, 219, 361]
+[:mouse_move, 609, 473, 2, 220, 362]
+[:mouse_move, 590, 483, 2, 221, 363]
+[:mouse_move, 578, 489, 2, 222, 364]
+[:mouse_move, 569, 494, 2, 223, 365]
+[:mouse_move, 563, 497, 2, 224, 366]
+[:mouse_move, 560, 498, 2, 225, 367]
+[:mouse_move, 557, 500, 2, 226, 368]
+[:mouse_move, 554, 501, 2, 227, 369]
+[:mouse_move, 549, 504, 2, 228, 370]
+[:mouse_move, 541, 506, 2, 229, 371]
+[:mouse_move, 534, 509, 2, 230, 372]
+[:mouse_move, 526, 513, 2, 231, 373]
+[:mouse_move, 521, 516, 2, 232, 374]
+[:mouse_move, 516, 519, 2, 233, 375]
+[:mouse_move, 514, 522, 2, 234, 376]
+[:mouse_move, 514, 525, 2, 235, 377]
+[:mouse_move, 516, 531, 2, 236, 378]
+[:mouse_move, 520, 538, 2, 237, 379]
+[:mouse_move, 523, 546, 2, 238, 380]
+[:mouse_move, 524, 553, 2, 239, 381]
+[:mouse_move, 525, 561, 2, 240, 382]
+[:mouse_move, 528, 567, 2, 241, 383]
+[:mouse_move, 532, 573, 2, 242, 384]
+[:mouse_move, 537, 578, 2, 243, 385]
+[:mouse_move, 546, 582, 2, 244, 386]
+[:mouse_move, 561, 585, 2, 245, 387]
+[:mouse_move, 583, 588, 2, 246, 388]
+[:mouse_move, 608, 592, 2, 247, 389]
+[:mouse_move, 637, 594, 2, 248, 390]
+[:mouse_move, 664, 594, 2, 249, 391]
+[:mouse_move, 691, 593, 2, 250, 392]
+[:mouse_move, 712, 589, 2, 251, 393]
+[:mouse_move, 733, 585, 2, 252, 394]
+[:mouse_move, 749, 580, 2, 253, 395]
+[:mouse_move, 762, 574, 2, 254, 396]
+[:mouse_move, 774, 567, 2, 255, 397]
+[:mouse_move, 781, 562, 2, 256, 398]
+[:mouse_move, 788, 555, 2, 257, 399]
+[:mouse_move, 791, 551, 2, 258, 400]
+[:mouse_move, 792, 546, 2, 259, 401]
+[:mouse_move, 791, 539, 2, 260, 402]
+[:mouse_move, 788, 531, 2, 261, 403]
+[:mouse_move, 784, 524, 2, 262, 404]
+[:mouse_move, 777, 519, 2, 263, 405]
+[:mouse_move, 769, 513, 2, 264, 406]
+[:mouse_move, 756, 505, 2, 265, 407]
+[:mouse_move, 737, 497, 2, 266, 408]
+[:mouse_move, 710, 486, 2, 267, 409]
+[:mouse_move, 684, 481, 2, 268, 410]
+[:mouse_move, 665, 480, 2, 269, 411]
+[:mouse_move, 646, 477, 2, 270, 412]
+[:mouse_move, 627, 476, 2, 271, 413]
+[:mouse_move, 605, 474, 2, 272, 414]
+[:mouse_move, 586, 473, 2, 273, 415]
+[:mouse_move, 571, 475, 2, 274, 416]
+[:mouse_move, 560, 478, 2, 275, 417]
+[:mouse_move, 550, 484, 2, 276, 418]
+[:mouse_move, 540, 489, 2, 277, 419]
+[:mouse_move, 532, 496, 2, 278, 420]
+[:mouse_move, 525, 504, 2, 279, 421]
+[:mouse_move, 521, 512, 2, 280, 422]
+[:mouse_move, 520, 521, 2, 281, 423]
+[:mouse_move, 520, 532, 2, 282, 424]
+[:mouse_move, 522, 541, 2, 283, 425]
+[:mouse_move, 524, 549, 2, 284, 426]
+[:mouse_move, 529, 555, 2, 285, 427]
+[:mouse_move, 534, 561, 2, 286, 428]
+[:mouse_move, 541, 568, 2, 287, 429]
+[:mouse_move, 555, 576, 2, 288, 430]
+[:mouse_move, 572, 583, 2, 289, 431]
+[:mouse_move, 596, 588, 2, 290, 432]
+[:mouse_move, 628, 595, 2, 291, 433]
+[:mouse_move, 663, 598, 2, 292, 434]
+[:mouse_move, 698, 600, 2, 293, 435]
+[:mouse_move, 730, 599, 2, 294, 436]
+[:mouse_move, 762, 598, 2, 295, 437]
+[:mouse_move, 787, 596, 2, 296, 438]
+[:mouse_move, 806, 592, 2, 297, 439]
+[:mouse_move, 818, 588, 2, 298, 440]
+[:mouse_move, 824, 584, 2, 299, 441]
+[:mouse_move, 826, 581, 2, 300, 442]
+[:mouse_move, 827, 578, 2, 301, 443]
+[:mouse_move, 827, 576, 2, 302, 444]
+[:mouse_move, 827, 573, 2, 303, 445]
+[:mouse_move, 827, 572, 2, 304, 446]
+[:mouse_move, 827, 571, 2, 305, 448]
+[:mouse_move, 826, 570, 2, 306, 486]
+[:mouse_move, 826, 569, 2, 307, 487]
+[:key_down_raw, 9, 0, 2, 308, 487]
+[:mouse_move, 826, 568, 2, 309, 488]
+[:mouse_move, 825, 568, 2, 310, 489]
+[:mouse_move, 825, 567, 2, 311, 490]
+[:key_up_raw, 9, 0, 2, 312, 494]
+[:key_down_raw, 9, 0, 2, 313, 515]
+[:key_up_raw, 9, 0, 2, 314, 525]
+[:mouse_move, 824, 567, 2, 315, 535]
+[:mouse_move, 821, 567, 2, 316, 536]
+[:mouse_move, 816, 567, 2, 317, 537]
+[:mouse_move, 808, 568, 2, 318, 538]
+[:mouse_move, 803, 568, 2, 319, 539]
+[:mouse_move, 797, 568, 2, 320, 540]
+[:mouse_move, 792, 567, 2, 321, 541]
+[:mouse_move, 788, 567, 2, 322, 542]
+[:mouse_move, 786, 566, 2, 323, 543]
+[:mouse_move, 785, 565, 2, 324, 544]
+[:mouse_move, 784, 564, 2, 325, 545]
+[:mouse_move, 779, 563, 2, 326, 546]
+[:mouse_move, 774, 562, 2, 327, 547]
+[:mouse_move, 771, 562, 2, 328, 548]
+[:mouse_move, 766, 562, 2, 329, 549]
+[:mouse_move, 761, 562, 2, 330, 550]
+[:mouse_move, 755, 561, 2, 331, 551]
+[:mouse_move, 748, 561, 2, 332, 552]
+[:mouse_move, 740, 560, 2, 333, 553]
+[:mouse_move, 733, 561, 2, 334, 554]
+[:mouse_move, 726, 562, 2, 335, 555]
+[:mouse_move, 720, 562, 2, 336, 556]
+[:mouse_move, 713, 563, 2, 337, 557]
+[:mouse_move, 707, 565, 2, 338, 558]
+[:mouse_move, 702, 566, 2, 339, 559]
+[:mouse_move, 701, 566, 2, 340, 560]
+[:mouse_move, 702, 566, 2, 341, 561]
+[:mouse_move, 706, 566, 2, 342, 562]
+[:mouse_move, 711, 565, 2, 343, 563]
+[:mouse_move, 722, 564, 2, 344, 564]
+[:mouse_move, 737, 562, 2, 345, 565]
+[:mouse_move, 747, 560, 2, 346, 566]
+[:mouse_move, 749, 560, 2, 347, 567]
+[:mouse_move, 745, 560, 2, 348, 569]
+[:mouse_move, 724, 557, 2, 349, 570]
+[:mouse_move, 697, 557, 2, 350, 571]
+[:mouse_move, 678, 558, 2, 351, 572]
+[:mouse_move, 663, 561, 2, 352, 573]
+[:mouse_move, 660, 561, 2, 353, 574]
+[:mouse_move, 661, 560, 2, 354, 575]
+[:mouse_move, 665, 556, 2, 355, 576]
+[:mouse_move, 674, 554, 2, 356, 577]
+[:mouse_move, 693, 551, 2, 357, 578]
+[:mouse_move, 723, 548, 2, 358, 579]
+[:mouse_move, 742, 546, 2, 359, 580]
+[:mouse_move, 746, 546, 2, 360, 581]
+[:mouse_move, 742, 547, 2, 361, 583]
+[:mouse_move, 724, 548, 2, 362, 584]
+[:mouse_move, 702, 552, 2, 363, 585]
+[:mouse_move, 684, 556, 2, 364, 586]
+[:mouse_move, 673, 558, 2, 365, 587]
+[:mouse_move, 668, 560, 2, 366, 588]
+[:mouse_move, 669, 560, 2, 367, 590]
+[:mouse_move, 678, 560, 2, 368, 591]
+[:mouse_move, 696, 560, 2, 369, 592]
+[:mouse_move, 714, 560, 2, 370, 593]
+[:mouse_move, 729, 558, 2, 371, 594]
+[:mouse_move, 736, 558, 2, 372, 595]
+[:mouse_move, 732, 558, 2, 373, 597]
+[:mouse_move, 718, 560, 2, 374, 598]
+[:mouse_move, 701, 563, 2, 375, 599]
+[:mouse_move, 685, 566, 2, 376, 600]
+[:mouse_move, 676, 569, 2, 377, 601]
+[:mouse_move, 674, 569, 2, 378, 602]
+[:mouse_move, 680, 569, 2, 379, 604]
+[:mouse_move, 696, 567, 2, 380, 605]
+[:mouse_move, 712, 564, 2, 381, 606]
+[:mouse_move, 723, 562, 2, 382, 607]
+[:mouse_move, 727, 561, 2, 383, 608]
+[:mouse_move, 724, 561, 2, 384, 610]
+[:mouse_move, 708, 563, 2, 385, 611]
+[:mouse_move, 693, 565, 2, 386, 612]
+[:mouse_move, 686, 567, 2, 387, 613]
+[:mouse_move, 690, 565, 2, 388, 616]
+[:mouse_move, 695, 563, 2, 389, 617]
+[:mouse_move, 696, 563, 2, 390, 618]
+[:mouse_move, 693, 564, 2, 391, 626]
+[:mouse_move, 689, 565, 2, 392, 627]
+[:mouse_move, 685, 566, 2, 393, 628]
+[:mouse_move, 683, 567, 2, 394, 629]
+[:mouse_move, 683, 566, 2, 395, 633]
+[:mouse_move, 684, 566, 2, 396, 634]
+[:key_down_raw, 13, 0, 2, 397, 730]
+[:key_up_raw, 13, 0, 2, 398, 735]
+[:mouse_move, 681, 567, 2, 399, 888]
+[:mouse_move, 675, 566, 2, 400, 889]
+[:mouse_move, 660, 562, 2, 401, 890]
+[:mouse_move, 641, 554, 2, 402, 891]
+[:mouse_move, 600, 541, 2, 403, 892]
+[:mouse_move, 568, 532, 2, 404, 893]
+[:mouse_move, 565, 532, 2, 405, 894]
+[:mouse_move, 579, 533, 2, 406, 895]
+[:mouse_move, 597, 531, 2, 407, 896]
+[:mouse_move, 612, 530, 2, 408, 897]
+[:mouse_move, 616, 529, 2, 409, 898]
+[:mouse_move, 613, 529, 2, 410, 904]
+[:mouse_move, 602, 531, 2, 411, 905]
+[:mouse_move, 536, 530, 2, 412, 906]
+[:mouse_move, 422, 494, 2, 413, 907]
+[:mouse_move, 364, 443, 2, 414, 908]
+[:mouse_move, 350, 420, 2, 415, 909]
+[:mouse_move, 340, 404, 2, 416, 910]
+[:mouse_move, 318, 384, 2, 417, 911]
+[:mouse_move, 298, 366, 2, 418, 912]
+[:mouse_move, 289, 357, 2, 419, 913]
+[:mouse_move, 289, 356, 2, 420, 913]
+[:mouse_move, 285, 352, 2, 421, 914]
+[:mouse_move, 283, 345, 2, 422, 915]
+[:mouse_move, 282, 339, 2, 423, 916]
+[:mouse_move, 279, 328, 2, 424, 917]
+[:mouse_move, 275, 311, 2, 425, 918]
+[:mouse_move, 268, 294, 2, 426, 919]
+[:mouse_move, 263, 285, 2, 427, 920]
+[:mouse_move, 253, 277, 2, 428, 921]
+[:mouse_move, 229, 258, 2, 429, 922]
+[:mouse_move, 183, 222, 2, 430, 923]
+[:mouse_move, 144, 196, 2, 431, 924]
+[:mouse_move, 119, 178, 2, 432, 925]
+[:mouse_move, 101, 165, 2, 433, 926]
+[:mouse_move, 86, 154, 2, 434, 927]
+[:mouse_move, 78, 147, 2, 435, 928]
+[:mouse_move, 74, 142, 2, 436, 929]
+[:mouse_move, 71, 138, 2, 437, 930]
+[:mouse_move, 67, 133, 2, 438, 931]
+[:mouse_move, 60, 130, 2, 439, 932]
+[:mouse_move, 56, 125, 2, 440, 933]
+[:mouse_move, 55, 124, 2, 441, 934]
+[:mouse_move, 54, 124, 2, 442, 941]
+[:mouse_move, 51, 122, 2, 443, 942]
+[:mouse_move, 40, 117, 2, 444, 943]
+[:mouse_move, 32, 112, 2, 445, 944]
+[:mouse_move, 26, 108, 2, 446, 945]
+[:mouse_move, 25, 108, 2, 447, 946]
+[:mouse_move, 25, 107, 2, 448, 949]
+[:mouse_move, 27, 108, 2, 449, 952]
+[:mouse_move, 34, 110, 2, 450, 953]
+[:mouse_move, 43, 112, 2, 451, 954]
+[:mouse_move, 53, 113, 2, 452, 955]
+[:mouse_move, 65, 114, 2, 453, 956]
+[:mouse_move, 81, 114, 2, 454, 957]
+[:mouse_move, 96, 115, 2, 455, 958]
+[:mouse_move, 112, 116, 2, 456, 959]
+[:mouse_move, 118, 117, 2, 457, 960]
+[:mouse_move, 123, 117, 2, 458, 961]
+[:mouse_move, 130, 117, 2, 459, 962]
+[:mouse_move, 134, 117, 2, 460, 963]
+[:mouse_move, 138, 117, 2, 461, 964]
+[:mouse_move, 142, 117, 2, 462, 965]
+[:mouse_move, 148, 117, 2, 463, 966]
+[:mouse_move, 151, 117, 2, 464, 967]
+[:mouse_move, 155, 116, 2, 465, 968]
+[:mouse_move, 157, 115, 2, 466, 969]
+[:mouse_move, 161, 115, 2, 467, 970]
+[:mouse_move, 163, 114, 2, 468, 971]
+[:mouse_move, 164, 114, 2, 469, 972]
+[:mouse_move, 166, 114, 2, 470, 973]
+[:mouse_move, 168, 114, 2, 471, 974]
+[:mouse_move, 171, 115, 2, 472, 975]
+[:mouse_move, 178, 116, 2, 473, 976]
+[:mouse_move, 188, 117, 2, 474, 977]
+[:mouse_move, 200, 117, 2, 475, 978]
+[:mouse_move, 210, 117, 2, 476, 979]
+[:mouse_move, 217, 117, 2, 477, 980]
+[:mouse_move, 224, 117, 2, 478, 981]
+[:mouse_move, 230, 117, 2, 479, 982]
+[:mouse_move, 233, 116, 2, 480, 983]
+[:mouse_move, 234, 116, 2, 481, 984]
+[:mouse_move, 235, 116, 2, 482, 985]
+[:mouse_move, 234, 116, 2, 483, 994]
+[:key_down_raw, 32, 0, 2, 484, 998]
+[:key_up_raw, 32, 0, 2, 485, 1004]
+[:key_down_raw, 32, 0, 2, 486, 1008]
+[:key_up_raw, 32, 0, 2, 487, 1013]
+[:key_down_raw, 32, 0, 2, 488, 1017]
+[:key_up_raw, 32, 0, 2, 489, 1021]
+[:key_down_raw, 32, 0, 2, 490, 1025]
+[:key_up_raw, 32, 0, 2, 491, 1029]
+[:key_down_raw, 32, 0, 2, 492, 1034]
+[:key_up_raw, 32, 0, 2, 493, 1037]
+[:key_down_raw, 32, 0, 2, 494, 1042]
+[:key_up_raw, 32, 0, 2, 495, 1046]
+[:mouse_move, 244, 118, 2, 496, 1052]
+[:mouse_move, 304, 142, 2, 497, 1053]
+[:mouse_move, 425, 192, 2, 498, 1054]
+[:mouse_move, 494, 240, 2, 499, 1055]
+[:mouse_move, 513, 264, 2, 500, 1056]
+[:mouse_move, 516, 272, 2, 501, 1057]
+[:mouse_move, 520, 279, 2, 502, 1058]
+[:mouse_move, 531, 290, 2, 503, 1059]
+[:mouse_move, 548, 301, 2, 504, 1060]
+[:mouse_move, 567, 311, 2, 505, 1061]
+[:mouse_move, 584, 316, 2, 506, 1062]
+[:mouse_move, 598, 318, 2, 507, 1063]
+[:mouse_move, 605, 318, 2, 508, 1064]
+[:mouse_move, 612, 317, 2, 509, 1065]
+[:mouse_move, 618, 317, 2, 510, 1066]
+[:mouse_move, 625, 317, 2, 511, 1067]
+[:mouse_move, 629, 316, 2, 512, 1068]
+[:mouse_move, 632, 315, 2, 513, 1069]
+[:key_down_raw, 32, 0, 2, 514, 1083]
+[:key_up_raw, 32, 0, 2, 515, 1089]
+[:mouse_move, 633, 316, 2, 516, 1094]
+[:mouse_move, 640, 325, 2, 517, 1095]
+[:mouse_move, 653, 337, 2, 518, 1096]
+[:mouse_move, 679, 349, 2, 519, 1097]
+[:mouse_move, 708, 359, 2, 520, 1098]
+[:mouse_move, 742, 368, 2, 521, 1099]
+[:mouse_move, 771, 374, 2, 522, 1100]
+[:mouse_move, 792, 380, 2, 523, 1101]
+[:mouse_move, 807, 386, 2, 524, 1102]
+[:mouse_move, 818, 389, 2, 525, 1103]
+[:mouse_move, 825, 391, 2, 526, 1104]
+[:mouse_move, 827, 392, 2, 527, 1105]
+[:mouse_move, 828, 392, 2, 528, 1106]
+[:mouse_move, 828, 393, 2, 529, 1108]
+[:mouse_move, 834, 396, 2, 530, 1109]
+[:mouse_move, 839, 402, 2, 531, 1110]
+[:mouse_move, 841, 404, 2, 532, 1111]
+[:key_down_raw, 32, 0, 2, 533, 1112]
+[:key_up_raw, 32, 0, 2, 534, 1117]
+[:key_down_raw, 32, 0, 2, 535, 1136]
+[:key_up_raw, 32, 0, 2, 536, 1141]
+[:key_down_raw, 32, 0, 2, 537, 1150]
+[:key_up_raw, 32, 0, 2, 538, 1156]
+[:key_down_raw, 32, 0, 2, 539, 1161]
+[:key_up_raw, 32, 0, 2, 540, 1165]
+[:key_down_raw, 32, 0, 2, 541, 1188]
+[:key_up_raw, 32, 0, 2, 542, 1195]
+[:key_down_raw, 32, 0, 2, 543, 1216]
+[:key_up_raw, 32, 0, 2, 544, 1222]
+[:key_down_raw, 32, 0, 2, 545, 1242]
+[:key_up_raw, 32, 0, 2, 546, 1248]
+[:key_down_raw, 32, 0, 2, 547, 1255]
+[:key_up_raw, 32, 0, 2, 548, 1260]
+[:key_down_raw, 32, 0, 2, 549, 1264]
+[:key_up_raw, 32, 0, 2, 550, 1267]
+[:key_down_raw, 32, 0, 2, 551, 1283]
+[:key_up_raw, 32, 0, 2, 552, 1290]
+[:key_down_raw, 32, 0, 2, 553, 1329]
+[:key_up_raw, 32, 0, 2, 554, 1336]
+[:key_down_raw, 32, 0, 2, 555, 1349]
+[:key_up_raw, 32, 0, 2, 556, 1354]
+[:key_down_raw, 32, 0, 2, 557, 1359]
+[:key_up_raw, 32, 0, 2, 558, 1363]
+[:key_down_raw, 32, 0, 2, 559, 1387]
+[:key_up_raw, 32, 0, 2, 560, 1393]
+[:key_down_raw, 32, 0, 2, 561, 1416]
+[:key_up_raw, 32, 0, 2, 562, 1422]
+[:key_down_raw, 32, 0, 2, 563, 1428]
+[:key_up_raw, 32, 0, 2, 564, 1431]
+[:key_down_raw, 32, 0, 2, 565, 1436]
+[:key_up_raw, 32, 0, 2, 566, 1440]
+[:key_down_raw, 32, 0, 2, 567, 1445]
+[:key_up_raw, 32, 0, 2, 568, 1448]
+[:key_down_raw, 32, 0, 2, 569, 1472]
+[:key_up_raw, 32, 0, 2, 570, 1481]
+[:key_down_raw, 32, 0, 2, 571, 1504]
+[:key_up_raw, 32, 0, 2, 572, 1509]
+[:key_down_raw, 32, 0, 2, 573, 1531]
+[:key_up_raw, 32, 0, 2, 574, 1537]
+[:key_down_raw, 32, 0, 2, 575, 1555]
+[:key_up_raw, 32, 0, 2, 576, 1559]
+[:key_down_raw, 32, 0, 2, 577, 1565]
+[:key_up_raw, 32, 0, 2, 578, 1569]
+[:key_down_raw, 32, 0, 2, 579, 1590]
+[:key_up_raw, 32, 0, 2, 580, 1594]
+[:key_down_raw, 32, 0, 2, 581, 1600]
+[:key_up_raw, 32, 0, 2, 582, 1604]
+[:key_down_raw, 32, 0, 2, 583, 1609]
+[:key_up_raw, 32, 0, 2, 584, 1612]
+[:key_down_raw, 32, 0, 2, 585, 1617]
+[:key_up_raw, 32, 0, 2, 586, 1621]
+[:key_down_raw, 32, 0, 2, 587, 1653]
+[:key_up_raw, 32, 0, 2, 588, 1658]
+[:key_down_raw, 32, 0, 2, 589, 1669]
+[:key_up_raw, 32, 0, 2, 590, 1674]
+[:key_down_raw, 32, 0, 2, 591, 1701]
+[:key_up_raw, 32, 0, 2, 592, 1706]
+[:key_down_raw, 32, 0, 2, 593, 1712]
+[:key_up_raw, 32, 0, 2, 594, 1716]
+[:key_down_raw, 32, 0, 2, 595, 1722]
+[:key_up_raw, 32, 0, 2, 596, 1725]
+[:key_down_raw, 32, 0, 2, 597, 1730]
+[:key_up_raw, 32, 0, 2, 598, 1733]
+[:key_down_raw, 32, 0, 2, 599, 1738]
+[:key_up_raw, 32, 0, 2, 600, 1743]
+[:key_down_raw, 32, 0, 2, 601, 1769]
+[:key_up_raw, 32, 0, 2, 602, 1775]
+[:key_down_raw, 32, 0, 2, 603, 1790]
+[:key_up_raw, 32, 0, 2, 604, 1795]
+[:key_down_raw, 32, 0, 2, 605, 1835]
+[:key_up_raw, 32, 0, 2, 606, 1841]
+[:key_down_raw, 32, 0, 2, 607, 1850]
+[:key_up_raw, 32, 0, 2, 608, 1856]
+[:key_down_raw, 32, 0, 2, 609, 1877]
+[:key_up_raw, 32, 0, 2, 610, 1884]
+[:key_down_raw, 32, 0, 2, 611, 1904]
+[:key_up_raw, 32, 0, 2, 612, 1908]
+[:key_down_raw, 32, 0, 2, 613, 1935]
+[:key_up_raw, 32, 0, 2, 614, 1940]
+[:key_down_raw, 32, 0, 2, 615, 1950]
+[:key_up_raw, 32, 0, 2, 616, 1956]
+[:key_down_raw, 32, 0, 2, 617, 1962]
+[:key_up_raw, 32, 0, 2, 618, 1966]
+[:key_down_raw, 32, 0, 2, 619, 1993]
+[:key_up_raw, 32, 0, 2, 620, 1999]
+[:mouse_move, 828, 408, 2, 621, 2035]
+[:mouse_move, 797, 419, 2, 622, 2036]
+[:mouse_move, 775, 427, 2, 623, 2037]
+[:mouse_move, 766, 429, 2, 624, 2038]
+[:mouse_move, 763, 430, 2, 625, 2039]
+[:mouse_move, 759, 433, 2, 626, 2040]
+[:mouse_move, 756, 433, 2, 627, 2041]
+[:mouse_move, 752, 433, 2, 628, 2042]
+[:mouse_move, 746, 432, 2, 629, 2043]
+[:mouse_move, 740, 430, 2, 630, 2044]
+[:mouse_move, 728, 429, 2, 631, 2045]
+[:mouse_move, 713, 427, 2, 632, 2046]
+[:mouse_move, 697, 427, 2, 633, 2047]
+[:mouse_move, 685, 429, 2, 634, 2048]
+[:mouse_move, 678, 432, 2, 635, 2049]
+[:mouse_move, 675, 433, 2, 636, 2050]
+[:mouse_move, 673, 433, 2, 637, 2051]
+[:mouse_move, 670, 433, 2, 638, 2052]
+[:mouse_move, 665, 433, 2, 639, 2053]
+[:mouse_move, 659, 432, 2, 640, 2054]
+[:mouse_move, 654, 433, 2, 641, 2055]
+[:mouse_move, 654, 434, 2, 642, 2056]
+[:mouse_move, 659, 440, 2, 643, 2057]
+[:mouse_move, 670, 450, 2, 644, 2058]
+[:mouse_move, 685, 458, 2, 645, 2059]
+[:mouse_move, 708, 462, 2, 646, 2060]
+[:mouse_move, 745, 461, 2, 647, 2061]
+[:mouse_move, 792, 455, 2, 648, 2062]
+[:mouse_move, 827, 443, 2, 649, 2063]
+[:mouse_move, 848, 429, 2, 650, 2064]
+[:mouse_move, 861, 412, 2, 651, 2065]
+[:mouse_move, 868, 393, 2, 652, 2066]
+[:mouse_move, 868, 373, 2, 653, 2067]
+[:mouse_move, 859, 352, 2, 654, 2068]
+[:mouse_move, 844, 334, 2, 655, 2069]
+[:mouse_move, 830, 320, 2, 656, 2070]
+[:mouse_move, 812, 305, 2, 657, 2071]
+[:mouse_move, 787, 288, 2, 658, 2072]
+[:mouse_move, 747, 266, 2, 659, 2073]
+[:mouse_move, 696, 245, 2, 660, 2074]
+[:mouse_move, 653, 236, 2, 661, 2075]
+[:mouse_move, 622, 233, 2, 662, 2076]
+[:mouse_move, 598, 232, 2, 663, 2077]
+[:mouse_move, 576, 231, 2, 664, 2078]
+[:mouse_move, 553, 230, 2, 665, 2079]
+[:mouse_move, 535, 233, 2, 666, 2080]
+[:mouse_move, 519, 238, 2, 667, 2081]
+[:mouse_move, 503, 246, 2, 668, 2082]
+[:mouse_move, 490, 256, 2, 669, 2083]
+[:mouse_move, 482, 265, 2, 670, 2084]
+[:mouse_move, 472, 276, 2, 671, 2085]
+[:mouse_move, 464, 289, 2, 672, 2086]
+[:mouse_move, 459, 302, 2, 673, 2087]
+[:mouse_move, 457, 318, 2, 674, 2088]
+[:mouse_move, 457, 337, 2, 675, 2089]
+[:mouse_move, 461, 354, 2, 676, 2090]
+[:mouse_move, 471, 368, 2, 677, 2091]
+[:mouse_move, 484, 378, 2, 678, 2092]
+[:mouse_move, 504, 389, 2, 679, 2093]
+[:mouse_move, 536, 402, 2, 680, 2094]
+[:mouse_move, 574, 413, 2, 681, 2095]
+[:mouse_move, 613, 424, 2, 682, 2096]
+[:mouse_move, 658, 430, 2, 683, 2097]
+[:mouse_move, 695, 434, 2, 684, 2098]
+[:mouse_move, 722, 435, 2, 685, 2099]
+[:mouse_move, 748, 432, 2, 686, 2100]
+[:mouse_move, 769, 425, 2, 687, 2101]
+[:mouse_move, 784, 417, 2, 688, 2102]
+[:mouse_move, 796, 408, 2, 689, 2103]
+[:mouse_move, 804, 398, 2, 690, 2104]
+[:mouse_move, 808, 385, 2, 691, 2105]
+[:mouse_move, 809, 364, 2, 692, 2106]
+[:mouse_move, 805, 342, 2, 693, 2107]
+[:mouse_move, 798, 326, 2, 694, 2108]
+[:mouse_move, 790, 313, 2, 695, 2109]
+[:mouse_move, 777, 302, 2, 696, 2110]
+[:mouse_move, 756, 288, 2, 697, 2111]
+[:mouse_move, 724, 266, 2, 698, 2112]
+[:mouse_move, 688, 245, 2, 699, 2113]
+[:mouse_move, 656, 234, 2, 700, 2114]
+[:mouse_move, 630, 229, 2, 701, 2115]
+[:mouse_move, 610, 225, 2, 702, 2116]
+[:mouse_move, 592, 221, 2, 703, 2117]
+[:mouse_move, 569, 218, 2, 704, 2118]
+[:mouse_move, 547, 218, 2, 705, 2119]
+[:mouse_move, 532, 224, 2, 706, 2120]
+[:mouse_move, 518, 233, 2, 707, 2121]
+[:mouse_move, 506, 244, 2, 708, 2122]
+[:mouse_move, 494, 257, 2, 709, 2123]
+[:mouse_move, 481, 278, 2, 710, 2124]
+[:mouse_move, 467, 304, 2, 711, 2125]
+[:mouse_move, 462, 322, 2, 712, 2126]
+[:mouse_move, 465, 338, 2, 713, 2127]
+[:mouse_move, 471, 352, 2, 714, 2128]
+[:mouse_move, 483, 365, 2, 715, 2129]
+[:mouse_move, 498, 379, 2, 716, 2130]
+[:mouse_move, 519, 392, 2, 717, 2131]
+[:mouse_move, 550, 404, 2, 718, 2132]
+[:mouse_move, 594, 413, 2, 719, 2133]
+[:mouse_move, 643, 416, 2, 720, 2134]
+[:mouse_move, 686, 410, 2, 721, 2135]
+[:mouse_move, 727, 398, 2, 722, 2136]
+[:mouse_move, 762, 380, 2, 723, 2137]
+[:mouse_move, 786, 358, 2, 724, 2138]
+[:mouse_move, 797, 327, 2, 725, 2139]
+[:mouse_move, 798, 289, 2, 726, 2140]
+[:mouse_move, 790, 258, 2, 727, 2141]
+[:mouse_move, 777, 238, 2, 728, 2142]
+[:mouse_move, 769, 231, 2, 729, 2143]
+[:mouse_move, 762, 229, 2, 730, 2144]
+[:mouse_move, 756, 227, 2, 731, 2145]
+[:mouse_move, 747, 229, 2, 732, 2146]
+[:mouse_move, 741, 233, 2, 733, 2147]
+[:mouse_move, 734, 242, 2, 734, 2148]
+[:mouse_move, 726, 256, 2, 735, 2149]
+[:mouse_move, 716, 278, 2, 736, 2150]
+[:mouse_move, 712, 304, 2, 737, 2151]
+[:mouse_move, 711, 323, 2, 738, 2152]
+[:mouse_move, 712, 336, 2, 739, 2153]
+[:mouse_move, 712, 344, 2, 740, 2154]
+[:mouse_move, 711, 352, 2, 741, 2155]
+[:mouse_move, 708, 356, 2, 742, 2156]
+[:mouse_move, 706, 359, 2, 743, 2157]
+[:mouse_move, 705, 359, 2, 744, 2187]
+[:mouse_move, 704, 360, 2, 745, 2188]
+[:mouse_move, 702, 361, 2, 746, 2189]
+[:mouse_move, 701, 362, 2, 747, 2196]
+[:mouse_move, 698, 363, 2, 748, 2197]
+[:mouse_move, 694, 364, 2, 749, 2198]
+[:mouse_move, 690, 365, 2, 750, 2199]
+[:mouse_move, 685, 368, 2, 751, 2200]
+[:mouse_move, 682, 370, 2, 752, 2201]
+[:mouse_move, 679, 371, 2, 753, 2202]
+[:mouse_move, 679, 370, 2, 754, 2210]
+[:mouse_move, 674, 368, 2, 755, 2211]
+[:mouse_move, 664, 363, 2, 756, 2212]
+[:mouse_move, 654, 361, 2, 757, 2213]
+[:mouse_move, 644, 359, 2, 758, 2214]
+[:mouse_move, 635, 357, 2, 759, 2215]
+[:mouse_move, 629, 356, 2, 760, 2216]
+[:mouse_move, 627, 355, 2, 761, 2217]
+[:mouse_move, 628, 354, 2, 762, 2219]
+[:mouse_move, 630, 354, 2, 763, 2220]
+[:mouse_move, 631, 354, 2, 764, 2221]
+[:mouse_move, 632, 354, 2, 765, 2222]
+[:mouse_move, 633, 354, 2, 766, 2223]
+[:mouse_move, 631, 354, 2, 767, 2234]
+[:mouse_move, 627, 355, 2, 768, 2235]
+[:mouse_move, 621, 356, 2, 769, 2236]
+[:mouse_move, 612, 356, 2, 770, 2237]
+[:mouse_move, 602, 356, 2, 771, 2238]
+[:mouse_move, 598, 356, 2, 772, 2239]
+[:mouse_move, 599, 356, 2, 773, 2244]
+[:mouse_move, 599, 355, 2, 774, 2245]
+[:mouse_move, 600, 355, 2, 775, 2246]
+[:mouse_move, 599, 356, 2, 776, 2250]
+[:key_down_raw, 32, 0, 2, 777, 2258]
+[:key_up_raw, 32, 0, 2, 778, 2263]
+[:key_down_raw, 32, 0, 2, 779, 2268]
+[:mouse_move, 605, 359, 2, 780, 2271]
+[:mouse_move, 622, 365, 2, 781, 2272]
+[:key_up_raw, 32, 0, 2, 782, 2272]
+[:mouse_move, 648, 377, 2, 783, 2273]
+[:mouse_move, 673, 393, 2, 784, 2274]
+[:mouse_move, 689, 406, 2, 785, 2275]
+[:mouse_move, 700, 413, 2, 786, 2276]
+[:mouse_move, 709, 418, 2, 787, 2277]
+[:key_down_raw, 32, 0, 2, 788, 2277]
+[:mouse_move, 711, 419, 2, 789, 2277]
+[:mouse_move, 718, 421, 2, 790, 2278]
+[:mouse_move, 724, 423, 2, 791, 2279]
+[:mouse_move, 728, 425, 2, 792, 2280]
+[:mouse_move, 730, 426, 2, 793, 2281]
+[:key_up_raw, 32, 0, 2, 794, 2281]
+[:key_down_raw, 32, 0, 2, 795, 2286]
+[:mouse_move, 731, 425, 2, 796, 2286]
+[:key_up_raw, 32, 0, 2, 797, 2290]
+[:key_down_raw, 32, 0, 2, 798, 2294]
+[:mouse_move, 732, 425, 2, 799, 2294]
+[:key_up_raw, 32, 0, 2, 800, 2298]
+[:mouse_move, 732, 424, 2, 801, 2298]
+[:key_down_raw, 32, 0, 2, 802, 2302]
+[:key_up_raw, 32, 0, 2, 803, 2306]
+[:key_down_raw, 32, 0, 2, 804, 2311]
+[:key_up_raw, 32, 0, 2, 805, 2315]
+[:key_down_raw, 32, 0, 2, 806, 2347]
+[:key_up_raw, 32, 0, 2, 807, 2352]
+[:key_down_raw, 32, 0, 2, 808, 2374]
+[:key_up_raw, 32, 0, 2, 809, 2379]
+[:key_down_raw, 32, 0, 2, 810, 2386]
+[:key_up_raw, 32, 0, 2, 811, 2389]
+[:key_down_raw, 32, 0, 2, 812, 2395]
+[:mouse_move, 721, 424, 2, 813, 2397]
+[:mouse_move, 706, 425, 2, 814, 2398]
+[:mouse_move, 695, 428, 2, 815, 2399]
+[:key_up_raw, 32, 0, 2, 816, 2399]
+[:mouse_move, 689, 430, 2, 817, 2400]
+[:mouse_move, 684, 433, 2, 818, 2401]
+[:mouse_move, 680, 433, 2, 819, 2402]
+[:mouse_move, 676, 432, 2, 820, 2403]
+[:mouse_move, 670, 429, 2, 821, 2404]
+[:mouse_move, 668, 429, 2, 822, 2405]
+[:key_down_raw, 32, 0, 2, 823, 2405]
+[:mouse_move, 667, 429, 2, 824, 2405]
+[:key_up_raw, 32, 0, 2, 825, 2410]
+[:mouse_move, 668, 428, 2, 826, 2415]
+[:mouse_move, 669, 426, 2, 827, 2416]
+[:mouse_move, 669, 425, 2, 828, 2417]
+[:mouse_move, 669, 424, 2, 829, 2418]
+[:mouse_move, 668, 423, 2, 830, 2419]
+[:mouse_move, 666, 421, 2, 831, 2436]
+[:mouse_move, 664, 421, 2, 832, 2437]
+[:mouse_move, 661, 420, 2, 833, 2438]
+[:mouse_move, 659, 419, 2, 834, 2439]
+[:mouse_move, 657, 418, 2, 835, 2440]
+[:mouse_move, 656, 418, 2, 836, 2441]
+[:mouse_move, 653, 418, 2, 837, 2442]
+[:mouse_move, 652, 418, 2, 838, 2443]
+[:mouse_move, 651, 417, 2, 839, 2444]
+[:mouse_move, 650, 417, 2, 840, 2464]
+[:mouse_move, 646, 418, 2, 841, 2465]
+[:mouse_move, 636, 417, 2, 842, 2466]
+[:mouse_move, 624, 413, 2, 843, 2467]
+[:mouse_move, 612, 411, 2, 844, 2468]
+[:mouse_move, 605, 410, 2, 845, 2469]
+[:mouse_move, 601, 409, 2, 846, 2470]
+[:mouse_move, 597, 408, 2, 847, 2471]
+[:mouse_move, 592, 407, 2, 848, 2472]
+[:mouse_move, 586, 406, 2, 849, 2473]
+[:mouse_move, 579, 406, 2, 850, 2474]
+[:mouse_move, 570, 407, 2, 851, 2475]
+[:mouse_move, 564, 409, 2, 852, 2476]
+[:mouse_move, 561, 413, 2, 853, 2477]
+[:mouse_move, 558, 418, 2, 854, 2478]
+[:mouse_move, 561, 424, 2, 855, 2479]
+[:mouse_move, 573, 437, 2, 856, 2480]
+[:mouse_move, 600, 454, 2, 857, 2481]
+[:mouse_move, 643, 473, 2, 858, 2482]
+[:mouse_move, 698, 487, 2, 859, 2483]
+[:mouse_move, 763, 494, 2, 860, 2484]
+[:mouse_move, 839, 496, 2, 861, 2485]
+[:mouse_move, 900, 489, 2, 862, 2486]
+[:mouse_move, 935, 483, 2, 863, 2487]
+[:mouse_move, 951, 475, 2, 864, 2488]
+[:mouse_move, 955, 469, 2, 865, 2489]
+[:mouse_move, 956, 459, 2, 866, 2490]
+[:mouse_move, 953, 444, 2, 867, 2491]
+[:mouse_move, 947, 427, 2, 868, 2492]
+[:mouse_move, 934, 409, 2, 869, 2493]
+[:mouse_move, 909, 386, 2, 870, 2494]
+[:mouse_move, 876, 362, 2, 871, 2495]
+[:mouse_move, 851, 346, 2, 872, 2496]
+[:mouse_move, 834, 336, 2, 873, 2497]
+[:mouse_move, 820, 325, 2, 874, 2498]
+[:mouse_move, 797, 313, 2, 875, 2499]
+[:mouse_move, 766, 299, 2, 876, 2500]
+[:mouse_move, 724, 280, 2, 877, 2501]
+[:mouse_move, 685, 269, 2, 878, 2502]
+[:mouse_move, 664, 266, 2, 879, 2503]
+[:mouse_move, 650, 266, 2, 880, 2504]
+[:mouse_move, 640, 266, 2, 881, 2505]
+[:mouse_move, 625, 266, 2, 882, 2506]
+[:mouse_move, 603, 268, 2, 883, 2507]
+[:mouse_move, 580, 273, 2, 884, 2508]
+[:mouse_move, 564, 278, 2, 885, 2509]
+[:mouse_move, 553, 283, 2, 886, 2510]
+[:mouse_move, 541, 291, 2, 887, 2511]
+[:mouse_move, 531, 297, 2, 888, 2512]
+[:mouse_move, 520, 305, 2, 889, 2513]
+[:mouse_move, 510, 315, 2, 890, 2514]
+[:mouse_move, 503, 328, 2, 891, 2515]
+[:mouse_move, 499, 339, 2, 892, 2516]
+[:mouse_move, 497, 348, 2, 893, 2517]
+[:mouse_move, 497, 358, 2, 894, 2518]
+[:mouse_move, 504, 372, 2, 895, 2519]
+[:mouse_move, 516, 387, 2, 896, 2520]
+[:mouse_move, 532, 398, 2, 897, 2521]
+[:mouse_move, 552, 409, 2, 898, 2522]
+[:mouse_move, 573, 419, 2, 899, 2523]
+[:mouse_move, 595, 428, 2, 900, 2524]
+[:mouse_move, 620, 440, 2, 901, 2525]
+[:mouse_move, 650, 449, 2, 902, 2526]
+[:mouse_move, 685, 456, 2, 903, 2527]
+[:mouse_move, 722, 459, 2, 904, 2528]
+[:mouse_move, 760, 460, 2, 905, 2529]
+[:mouse_move, 787, 458, 2, 906, 2530]
+[:mouse_move, 813, 455, 2, 907, 2531]
+[:mouse_move, 832, 451, 2, 908, 2532]
+[:mouse_move, 842, 444, 2, 909, 2533]
+[:mouse_move, 848, 439, 2, 910, 2534]
+[:mouse_move, 851, 429, 2, 911, 2535]
+[:mouse_move, 851, 417, 2, 912, 2536]
+[:mouse_move, 848, 404, 2, 913, 2537]
+[:mouse_move, 844, 396, 2, 914, 2538]
+[:mouse_move, 842, 392, 2, 915, 2539]
+[:mouse_move, 837, 387, 2, 916, 2540]
+[:mouse_move, 828, 381, 2, 917, 2541]
+[:mouse_move, 822, 377, 2, 918, 2542]
+[:mouse_move, 820, 375, 2, 919, 2543]
+[:mouse_move, 818, 375, 2, 920, 2544]
+[:mouse_move, 817, 374, 2, 921, 2545]
+[:mouse_move, 816, 374, 2, 922, 2550]
+[:mouse_move, 813, 374, 2, 923, 2551]
+[:mouse_move, 804, 373, 2, 924, 2552]
+[:mouse_move, 785, 366, 2, 925, 2553]
+[:mouse_move, 741, 348, 2, 926, 2554]
+[:mouse_move, 669, 313, 2, 927, 2555]
+[:mouse_move, 561, 261, 2, 928, 2556]
+[:mouse_move, 432, 200, 2, 929, 2557]
+[:mouse_move, 324, 152, 2, 930, 2558]
+[:mouse_move, 237, 115, 2, 931, 2559]
+[:mouse_move, 169, 82, 2, 932, 2560]
+[:mouse_move, 116, 55, 2, 933, 2561]
+[:mouse_move, 71, 38, 2, 934, 2562]
+[:mouse_move, 42, 29, 2, 935, 2563]
+[:mouse_move, 32, 27, 2, 936, 2564]
+[:mouse_move, 24, 24, 2, 937, 2565]
+[:mouse_move, 16, 22, 2, 938, 2566]
+[:mouse_move, 10, 20, 2, 939, 2567]
+[:mouse_move, 7, 18, 2, 940, 2568]
+[:mouse_move, 4, 17, 2, 941, 2569]
+[:mouse_move, 2, 14, 2, 942, 2570]
+[:mouse_move, 0, 12, 2, 943, 2572]
+[:mouse_move, -3, 11, 2, 944, 2573]
+[:mouse_move, -4, 10, 2, 945, 2574]
+[:mouse_move, -5, 9, 2, 946, 2578]
+[:mouse_move, -8, 8, 2, 947, 2579]
+[:mouse_move, -11, 6, 2, 948, 2580]
+[:mouse_move, -14, 4, 2, 949, 2581]
+[:mouse_move, -17, 3, 2, 950, 2582]
+[:mouse_move, -18, 2, 2, 951, 2583]
+[:mouse_move, -20, 0, 2, 952, 2584]
+[:mouse_move, -22, 0, 2, 953, 2585]
diff --git a/samples/99_genre_arcade/flappy_dragon/sounds/flappy-song.ogg b/samples/99_genre_arcade/flappy_dragon/sounds/flappy-song.ogg
new file mode 100644
index 0000000..aa02e8b
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sounds/flappy-song.ogg
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sounds/fly-sound.wav b/samples/99_genre_arcade/flappy_dragon/sounds/fly-sound.wav
new file mode 100644
index 0000000..d621920
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sounds/fly-sound.wav
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sounds/hit-sound.wav b/samples/99_genre_arcade/flappy_dragon/sounds/hit-sound.wav
new file mode 100644
index 0000000..a701537
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sounds/hit-sound.wav
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/background.png b/samples/99_genre_arcade/flappy_dragon/sprites/background.png
new file mode 100644
index 0000000..6a0a42b
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/background.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_die.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_die.png
new file mode 100644
index 0000000..bb312e9
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_die.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly1.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly1.png
new file mode 100644
index 0000000..fb179af
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly1.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly2.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly2.png
new file mode 100644
index 0000000..8cfe531
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly2.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly3.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly3.png
new file mode 100644
index 0000000..cb462e1
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly3.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly4.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly4.png
new file mode 100644
index 0000000..04c4977
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly4.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly5.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly5.png
new file mode 100644
index 0000000..b29fa3d
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly5.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly6.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly6.png
new file mode 100644
index 0000000..99f4e74
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly6.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/parallax_back.png b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_back.png
new file mode 100644
index 0000000..15c7e2f
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_back.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/parallax_front.png b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_front.png
new file mode 100644
index 0000000..44d6a8a
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_front.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/parallax_middle.png b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_middle.png
new file mode 100644
index 0000000..a3c16b1
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_middle.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/wall.png b/samples/99_genre_arcade/flappy_dragon/sprites/wall.png
new file mode 100644
index 0000000..fe94955
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/wall.png
Binary files differ
diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/wallbottom.png b/samples/99_genre_arcade/flappy_dragon/sprites/wallbottom.png
new file mode 100644
index 0000000..1668be8
--- /dev/null
+++ b/samples/99_genre_arcade/flappy_dragon/sprites/wallbottom.png
Binary files differ
diff --git a/samples/99_genre_arcade/pong/app/main.rb b/samples/99_genre_arcade/pong/app/main.rb
new file mode 100644
index 0000000..bd4eb45
--- /dev/null
+++ b/samples/99_genre_arcade/pong/app/main.rb
@@ -0,0 +1,159 @@
+def tick args
+ defaults args
+ render args
+ calc args
+ input args
+end
+
+def defaults args
+ args.state.ball.debounce ||= 3 * 60
+ args.state.ball.size ||= 10
+ args.state.ball.size_half ||= args.state.ball.size / 2
+ args.state.ball.x ||= 640
+ args.state.ball.y ||= 360
+ args.state.ball.dx ||= 5.randomize(:sign)
+ args.state.ball.dy ||= 5.randomize(:sign)
+ args.state.left_paddle.y ||= 360
+ args.state.right_paddle.y ||= 360
+ args.state.paddle.h ||= 120
+ args.state.paddle.w ||= 10
+ args.state.left_paddle.score ||= 0
+ args.state.right_paddle.score ||= 0
+end
+
+def render args
+ render_center_line args
+ render_scores args
+ render_countdown args
+ render_ball args
+ render_paddles args
+ render_instructions args
+end
+
+begin :render_methods
+ def render_center_line args
+ args.outputs.lines << [640, 0, 640, 720]
+ end
+
+ def render_scores args
+ args.outputs.labels << [
+ [320, 650, args.state.left_paddle.score, 10, 1],
+ [960, 650, args.state.right_paddle.score, 10, 1]
+ ]
+ end
+
+ def render_countdown args
+ return unless args.state.ball.debounce > 0
+ args.outputs.labels << [640, 360, "%.2f" % args.state.ball.debounce.fdiv(60), 10, 1]
+ end
+
+ def render_ball args
+ args.outputs.solids << solid_ball(args)
+ end
+
+ def render_paddles args
+ args.outputs.solids << solid_left_paddle(args)
+ args.outputs.solids << solid_right_paddle(args)
+ end
+
+ def render_instructions args
+ args.outputs.labels << [320, 30, "W and S keys to move left paddle.", 0, 1]
+ args.outputs.labels << [920, 30, "O and L keys to move right paddle.", 0, 1]
+ end
+end
+
+def calc args
+ args.state.ball.debounce -= 1 and return if args.state.ball.debounce > 0
+ calc_move_ball args
+ calc_collision_with_left_paddle args
+ calc_collision_with_right_paddle args
+ calc_collision_with_walls args
+end
+
+begin :calc_methods
+ def calc_move_ball args
+ args.state.ball.x += args.state.ball.dx
+ args.state.ball.y += args.state.ball.dy
+ end
+
+ def calc_collision_with_left_paddle args
+ if solid_left_paddle(args).intersect_rect? solid_ball(args)
+ args.state.ball.dx *= -1
+ elsif args.state.ball.x < 0
+ args.state.right_paddle.score += 1
+ calc_reset_round args
+ end
+ end
+
+ def calc_collision_with_right_paddle args
+ if solid_right_paddle(args).intersect_rect? solid_ball(args)
+ args.state.ball.dx *= -1
+ elsif args.state.ball.x > 1280
+ args.state.left_paddle.score += 1
+ calc_reset_round args
+ end
+ end
+
+ def calc_collision_with_walls args
+ if args.state.ball.y + args.state.ball.size_half > 720
+ args.state.ball.y = 720 - args.state.ball.size_half
+ args.state.ball.dy *= -1
+ elsif args.state.ball.y - args.state.ball.size_half < 0
+ args.state.ball.y = args.state.ball.size_half
+ args.state.ball.dy *= -1
+ end
+ end
+
+ def calc_reset_round args
+ args.state.ball.x = 640
+ args.state.ball.y = 360
+ args.state.ball.dx = 5.randomize(:sign)
+ args.state.ball.dy = 5.randomize(:sign)
+ args.state.ball.debounce = 3 * 60
+ end
+end
+
+def input args
+ input_left_paddle args
+ input_right_paddle args
+end
+
+begin :input_methods
+ def input_left_paddle args
+ if args.inputs.controller_one.key_down.down || args.inputs.keyboard.key_down.s
+ args.state.left_paddle.y -= 40
+ elsif args.inputs.controller_one.key_down.up || args.inputs.keyboard.key_down.w
+ args.state.left_paddle.y += 40
+ end
+ end
+
+ def input_right_paddle args
+ if args.inputs.controller_two.key_down.down || args.inputs.keyboard.key_down.l
+ args.state.right_paddle.y -= 40
+ elsif args.inputs.controller_two.key_down.up || args.inputs.keyboard.key_down.o
+ args.state.right_paddle.y += 40
+ end
+ end
+end
+
+begin :assets
+ def solid_ball args
+ centered_rect args.state.ball.x, args.state.ball.y, args.state.ball.size, args.state.ball.size
+ end
+
+ def solid_left_paddle args
+ centered_rect_vertically 0, args.state.left_paddle.y, args.state.paddle.w, args.state.paddle.h
+ end
+
+ def solid_right_paddle args
+ centered_rect_vertically 1280 - args.state.paddle.w, args.state.right_paddle.y, args.state.paddle.w, args.state.paddle.h
+ end
+
+ def centered_rect x, y, w, h
+ [x - w / 2, y - h / 2, w, h]
+ end
+
+ def centered_rect_vertically x, y, w, h
+ [x, y - h / 2, w, h]
+ end
+end
diff --git a/samples/99_genre_arcade/pong/license-for-sample.txt b/samples/99_genre_arcade/pong/license-for-sample.txt
new file mode 100644
index 0000000..100dcec
--- /dev/null
+++ b/samples/99_genre_arcade/pong/license-for-sample.txt
@@ -0,0 +1,9 @@
+Copyright 2019 DragonRuby LLC
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/samples/99_genre_arcade/pong/replay.txt b/samples/99_genre_arcade/pong/replay.txt
new file mode 100644
index 0000000..c7cc8ed
--- /dev/null
+++ b/samples/99_genre_arcade/pong/replay.txt
@@ -0,0 +1,292 @@
+replay_version 2.0
+stopped_at 1167
+seed 100
+recorded_at Sun Sep 29 23:31:58 2019
+[:mouse_move, 846, 461, 2, 1, 84]
+[:mouse_move, 819, 466, 2, 2, 85]
+[:mouse_move, 773, 482, 2, 3, 86]
+[:mouse_move, 755, 489, 2, 4, 87]
+[:mouse_move, 729, 506, 2, 5, 88]
+[:mouse_move, 706, 522, 2, 6, 89]
+[:mouse_move, 686, 544, 2, 7, 90]
+[:mouse_move, 677, 557, 2, 8, 91]
+[:mouse_move, 672, 569, 2, 9, 92]
+[:mouse_move, 670, 575, 2, 10, 93]
+[:mouse_move, 669, 583, 2, 11, 94]
+[:mouse_move, 668, 585, 2, 12, 95]
+[:mouse_move, 667, 590, 2, 13, 96]
+[:mouse_move, 663, 593, 2, 14, 97]
+[:mouse_move, 653, 600, 2, 15, 98]
+[:mouse_move, 645, 602, 2, 16, 99]
+[:mouse_move, 604, 608, 2, 17, 100]
+[:mouse_move, 557, 611, 2, 18, 101]
+[:mouse_move, 467, 615, 2, 19, 102]
+[:mouse_move, 410, 619, 2, 20, 103]
+[:mouse_move, 291, 631, 2, 21, 104]
+[:mouse_move, 268, 635, 2, 22, 105]
+[:mouse_move, 221, 643, 2, 23, 106]
+[:mouse_move, 195, 649, 2, 24, 107]
+[:mouse_move, 175, 654, 2, 25, 108]
+[:mouse_move, 159, 659, 2, 26, 109]
+[:mouse_move, 152, 662, 2, 27, 110]
+[:mouse_move, 145, 668, 2, 28, 111]
+[:mouse_move, 145, 670, 2, 29, 112]
+[:mouse_move, 144, 676, 2, 30, 123]
+[:mouse_move, 143, 680, 2, 31, 124]
+[:mouse_move, 138, 687, 2, 32, 125]
+[:mouse_move, 136, 691, 2, 33, 126]
+[:mouse_move, 132, 698, 2, 34, 127]
+[:mouse_move, 129, 701, 2, 35, 128]
+[:mouse_move, 128, 704, 2, 36, 129]
+[:mouse_move, 126, 706, 2, 37, 130]
+[:mouse_move, 126, 707, 2, 38, 131]
+[:mouse_move, 130, 707, 2, 39, 133]
+[:mouse_move, 132, 707, 2, 40, 134]
+[:mouse_move, 135, 707, 2, 41, 135]
+[:mouse_move, 141, 706, 2, 42, 136]
+[:mouse_move, 145, 705, 2, 43, 137]
+[:mouse_move, 155, 703, 2, 44, 138]
+[:mouse_move, 160, 701, 2, 45, 139]
+[:mouse_move, 170, 699, 2, 46, 140]
+[:mouse_move, 174, 698, 2, 47, 141]
+[:mouse_move, 182, 696, 2, 48, 142]
+[:mouse_move, 187, 696, 2, 49, 143]
+[:mouse_move, 192, 695, 2, 50, 144]
+[:mouse_move, 197, 695, 2, 51, 145]
+[:mouse_move, 203, 695, 2, 52, 146]
+[:mouse_move, 205, 695, 2, 53, 147]
+[:mouse_move, 211, 695, 2, 54, 148]
+[:mouse_move, 214, 695, 2, 55, 149]
+[:mouse_move, 219, 695, 2, 56, 150]
+[:mouse_move, 222, 695, 2, 57, 151]
+[:mouse_move, 228, 695, 2, 58, 152]
+[:mouse_move, 231, 695, 2, 59, 153]
+[:mouse_move, 237, 695, 2, 60, 154]
+[:mouse_move, 241, 695, 2, 61, 155]
+[:mouse_move, 246, 695, 2, 62, 156]
+[:mouse_move, 250, 695, 2, 63, 157]
+[:mouse_move, 257, 695, 2, 64, 158]
+[:mouse_move, 260, 695, 2, 65, 159]
+[:mouse_move, 267, 696, 2, 66, 160]
+[:mouse_move, 271, 696, 2, 67, 161]
+[:mouse_move, 275, 697, 2, 68, 162]
+[:mouse_move, 283, 698, 2, 69, 163]
+[:mouse_move, 288, 698, 2, 70, 164]
+[:mouse_move, 297, 699, 2, 71, 165]
+[:mouse_move, 303, 700, 2, 72, 166]
+[:mouse_move, 313, 701, 2, 73, 167]
+[:mouse_move, 318, 702, 2, 74, 168]
+[:mouse_move, 330, 703, 2, 75, 169]
+[:mouse_move, 337, 704, 2, 76, 170]
+[:mouse_move, 350, 705, 2, 77, 171]
+[:mouse_move, 356, 706, 2, 78, 172]
+[:mouse_move, 371, 707, 2, 79, 173]
+[:mouse_move, 377, 708, 2, 80, 174]
+[:mouse_move, 393, 709, 2, 81, 175]
+[:mouse_move, 401, 709, 2, 82, 176]
+[:mouse_move, 410, 709, 2, 83, 177]
+[:mouse_move, 415, 709, 2, 84, 178]
+[:mouse_move, 422, 709, 2, 85, 179]
+[:mouse_move, 424, 709, 2, 86, 180]
+[:mouse_move, 429, 709, 2, 87, 181]
+[:mouse_move, 430, 709, 2, 88, 182]
+[:mouse_move, 432, 709, 2, 89, 183]
+[:mouse_move, 433, 709, 2, 90, 185]
+[:mouse_move, 434, 709, 2, 91, 190]
+[:mouse_move, 435, 708, 2, 92, 192]
+[:mouse_move, 437, 708, 2, 93, 193]
+[:mouse_move, 440, 707, 2, 94, 194]
+[:mouse_move, 442, 706, 2, 95, 195]
+[:mouse_move, 446, 705, 2, 96, 196]
+[:mouse_move, 448, 704, 2, 97, 197]
+[:mouse_move, 451, 704, 2, 98, 198]
+[:mouse_move, 451, 703, 2, 99, 199]
+[:mouse_move, 452, 703, 2, 100, 200]
+[:mouse_move, 453, 703, 2, 101, 201]
+[:mouse_move, 454, 703, 2, 102, 210]
+[:mouse_move, 462, 703, 2, 103, 225]
+[:mouse_move, 475, 703, 2, 104, 226]
+[:mouse_move, 511, 703, 2, 105, 227]
+[:mouse_move, 535, 703, 2, 106, 228]
+[:mouse_move, 603, 709, 2, 107, 229]
+[:mouse_move, 645, 711, 2, 108, 230]
+[:mouse_move, 692, 714, 2, 109, 231]
+[:mouse_move, 703, 715, 2, 110, 232]
+[:mouse_move, 725, 715, 2, 111, 233]
+[:mouse_move, 735, 715, 2, 112, 234]
+[:mouse_move, 745, 715, 2, 113, 235]
+[:mouse_move, 747, 715, 2, 114, 236]
+[:mouse_move, 744, 716, 2, 115, 238]
+[:mouse_move, 735, 716, 2, 116, 239]
+[:mouse_move, 732, 716, 2, 117, 240]
+[:mouse_move, 726, 716, 2, 118, 241]
+[:mouse_move, 723, 716, 2, 119, 242]
+[:mouse_move, 721, 717, 2, 120, 243]
+[:mouse_move, 720, 717, 2, 121, 244]
+[:mouse_move, 721, 717, 2, 122, 246]
+[:mouse_move, 722, 717, 2, 123, 247]
+[:mouse_move, 726, 716, 2, 124, 248]
+[:mouse_move, 728, 715, 2, 125, 249]
+[:mouse_move, 732, 713, 2, 126, 250]
+[:mouse_move, 733, 713, 2, 127, 251]
+[:mouse_move, 736, 711, 2, 128, 252]
+[:mouse_move, 738, 711, 2, 129, 253]
+[:mouse_move, 739, 709, 2, 130, 254]
+[:mouse_move, 740, 708, 2, 131, 255]
+[:mouse_move, 743, 708, 2, 132, 273]
+[:mouse_move, 745, 708, 2, 133, 274]
+[:mouse_move, 751, 708, 2, 134, 275]
+[:mouse_move, 755, 708, 2, 135, 276]
+[:mouse_move, 764, 708, 2, 136, 277]
+[:mouse_move, 769, 708, 2, 137, 278]
+[:mouse_move, 778, 709, 2, 138, 279]
+[:mouse_move, 782, 709, 2, 139, 280]
+[:mouse_move, 790, 709, 2, 140, 281]
+[:mouse_move, 794, 709, 2, 141, 282]
+[:mouse_move, 801, 710, 2, 142, 283]
+[:mouse_move, 804, 710, 2, 143, 284]
+[:mouse_move, 812, 710, 2, 144, 285]
+[:mouse_move, 815, 710, 2, 145, 286]
+[:mouse_move, 823, 710, 2, 146, 287]
+[:mouse_move, 827, 710, 2, 147, 288]
+[:mouse_move, 835, 710, 2, 148, 289]
+[:mouse_move, 838, 710, 2, 149, 290]
+[:mouse_move, 846, 710, 2, 150, 291]
+[:mouse_move, 851, 710, 2, 151, 292]
+[:mouse_move, 859, 710, 2, 152, 293]
+[:mouse_move, 862, 710, 2, 153, 294]
+[:mouse_move, 872, 710, 2, 154, 295]
+[:mouse_move, 876, 710, 2, 155, 296]
+[:mouse_move, 880, 710, 2, 156, 297]
+[:mouse_move, 891, 710, 2, 157, 298]
+[:mouse_move, 895, 710, 2, 158, 299]
+[:mouse_move, 904, 710, 2, 159, 300]
+[:mouse_move, 909, 710, 2, 160, 301]
+[:mouse_move, 918, 710, 2, 161, 302]
+[:mouse_move, 922, 709, 2, 162, 303]
+[:mouse_move, 928, 709, 2, 163, 304]
+[:mouse_move, 931, 709, 2, 164, 305]
+[:mouse_move, 939, 708, 2, 165, 306]
+[:mouse_move, 942, 707, 2, 166, 307]
+[:mouse_move, 948, 707, 2, 167, 308]
+[:mouse_move, 952, 707, 2, 168, 309]
+[:mouse_move, 958, 706, 2, 169, 310]
+[:mouse_move, 960, 706, 2, 170, 311]
+[:mouse_move, 965, 706, 2, 171, 312]
+[:mouse_move, 967, 706, 2, 172, 313]
+[:mouse_move, 973, 706, 2, 173, 314]
+[:mouse_move, 975, 706, 2, 174, 315]
+[:mouse_move, 981, 706, 2, 175, 316]
+[:mouse_move, 983, 706, 2, 176, 317]
+[:mouse_move, 989, 706, 2, 177, 318]
+[:mouse_move, 992, 707, 2, 178, 319]
+[:mouse_move, 998, 708, 2, 179, 320]
+[:mouse_move, 1001, 709, 2, 180, 321]
+[:mouse_move, 1008, 710, 2, 181, 322]
+[:mouse_move, 1011, 710, 2, 182, 323]
+[:mouse_move, 1019, 711, 2, 183, 324]
+[:mouse_move, 1023, 711, 2, 184, 325]
+[:mouse_move, 1028, 711, 2, 185, 326]
+[:mouse_move, 1039, 711, 2, 186, 327]
+[:mouse_move, 1044, 711, 2, 187, 328]
+[:mouse_move, 1054, 709, 2, 188, 329]
+[:mouse_move, 1059, 708, 2, 189, 330]
+[:mouse_move, 1067, 707, 2, 190, 331]
+[:mouse_move, 1068, 706, 2, 191, 332]
+[:mouse_move, 1074, 705, 2, 192, 333]
+[:mouse_move, 1076, 705, 2, 193, 334]
+[:mouse_move, 1078, 704, 2, 194, 335]
+[:mouse_move, 1079, 704, 2, 195, 336]
+[:mouse_move, 1080, 703, 2, 196, 338]
+[:mouse_move, 1079, 703, 2, 197, 353]
+[:mouse_move, 1067, 698, 2, 198, 354]
+[:mouse_move, 1050, 690, 2, 199, 355]
+[:mouse_move, 1007, 673, 2, 200, 356]
+[:mouse_move, 980, 663, 2, 201, 357]
+[:mouse_move, 920, 639, 2, 202, 358]
+[:mouse_move, 888, 626, 2, 203, 359]
+[:mouse_move, 854, 611, 2, 204, 360]
+[:mouse_move, 847, 607, 2, 205, 361]
+[:mouse_move, 821, 593, 2, 206, 362]
+[:key_down_raw, 111, 0, 2, 207, 524]
+[:key_up_raw, 111, 0, 2, 208, 529]
+[:key_down_raw, 111, 0, 2, 209, 533]
+[:key_up_raw, 111, 0, 2, 210, 536]
+[:key_down_raw, 111, 0, 2, 211, 541]
+[:key_up_raw, 111, 0, 2, 212, 544]
+[:key_down_raw, 111, 0, 2, 213, 549]
+[:key_up_raw, 111, 0, 2, 214, 551]
+[:key_down_raw, 111, 0, 2, 215, 556]
+[:key_up_raw, 111, 0, 2, 216, 560]
+[:key_down_raw, 108, 0, 2, 217, 591]
+[:key_up_raw, 108, 0, 2, 218, 595]
+[:key_down_raw, 108, 0, 2, 219, 601]
+[:key_up_raw, 108, 0, 2, 220, 606]
+[:key_down_raw, 108, 0, 2, 221, 612]
+[:key_up_raw, 108, 0, 2, 222, 614]
+[:key_down_raw, 119, 0, 2, 223, 651]
+[:key_up_raw, 119, 0, 2, 224, 658]
+[:key_down_raw, 119, 0, 2, 225, 662]
+[:key_up_raw, 119, 0, 2, 226, 666]
+[:key_down_raw, 115, 0, 2, 227, 678]
+[:key_up_raw, 115, 0, 2, 228, 684]
+[:key_down_raw, 115, 0, 2, 229, 689]
+[:key_up_raw, 115, 0, 2, 230, 693]
+[:key_down_raw, 115, 0, 2, 231, 698]
+[:key_up_raw, 115, 0, 2, 232, 700]
+[:key_down_raw, 115, 0, 2, 233, 704]
+[:key_up_raw, 115, 0, 2, 234, 709]
+[:key_down_raw, 115, 0, 2, 235, 713]
+[:key_up_raw, 115, 0, 2, 236, 717]
+[:key_down_raw, 119, 0, 2, 237, 727]
+[:key_up_raw, 119, 0, 2, 238, 732]
+[:key_down_raw, 119, 0, 2, 239, 738]
+[:key_up_raw, 119, 0, 2, 240, 741]
+[:key_down_raw, 119, 0, 2, 241, 745]
+[:key_up_raw, 119, 0, 2, 242, 749]
+[:key_down_raw, 119, 0, 2, 243, 754]
+[:key_up_raw, 119, 0, 2, 244, 758]
+[:key_down_raw, 119, 0, 2, 245, 762]
+[:key_up_raw, 119, 0, 2, 246, 766]
+[:key_down_raw, 119, 0, 2, 247, 770]
+[:key_up_raw, 119, 0, 2, 248, 773]
+[:key_down_raw, 119, 0, 2, 249, 777]
+[:key_up_raw, 119, 0, 2, 250, 781]
+[:key_down_raw, 119, 0, 2, 251, 786]
+[:key_up_raw, 119, 0, 2, 252, 790]
+[:key_down_raw, 119, 0, 2, 253, 793]
+[:key_up_raw, 119, 0, 2, 254, 798]
+[:key_down_raw, 119, 0, 2, 255, 804]
+[:key_up_raw, 119, 0, 2, 256, 809]
+[:key_down_raw, 115, 0, 2, 257, 849]
+[:key_up_raw, 115, 0, 2, 258, 854]
+[:key_down_raw, 108, 0, 2, 259, 980]
+[:key_up_raw, 108, 0, 2, 260, 987]
+[:key_down_raw, 108, 0, 2, 261, 992]
+[:key_up_raw, 108, 0, 2, 262, 995]
+[:key_down_raw, 108, 0, 2, 263, 1000]
+[:key_up_raw, 108, 0, 2, 264, 1004]
+[:key_down_raw, 108, 0, 2, 265, 1009]
+[:key_up_raw, 108, 0, 2, 266, 1012]
+[:key_down_raw, 108, 0, 2, 267, 1017]
+[:key_up_raw, 108, 0, 2, 268, 1020]
+[:key_down_raw, 108, 0, 2, 269, 1024]
+[:key_up_raw, 108, 0, 2, 270, 1030]
+[:key_down_raw, 111, 0, 2, 271, 1040]
+[:key_up_raw, 111, 0, 2, 272, 1045]
+[:key_down_raw, 111, 0, 2, 273, 1051]
+[:key_up_raw, 111, 0, 2, 274, 1054]
+[:key_down_raw, 108, 0, 2, 275, 1059]
+[:key_up_raw, 108, 0, 2, 276, 1064]
+[:key_down_raw, 108, 0, 2, 277, 1068]
+[:key_up_raw, 108, 0, 2, 278, 1072]
+[:key_down_raw, 111, 0, 2, 279, 1078]
+[:key_up_raw, 111, 0, 2, 280, 1081]
+[:key_down_raw, 111, 0, 2, 281, 1086]
+[:key_up_raw, 111, 0, 2, 282, 1090]
+[:key_down_raw, 111, 0, 2, 283, 1095]
+[:key_up_raw, 111, 0, 2, 284, 1098]
+[:key_down_raw, 111, 0, 2, 285, 1103]
+[:key_up_raw, 111, 0, 2, 286, 1107]
+[:key_down_raw, 1073742051, 1024, 2, 287, 1165]
+[:key_down_raw, 113, 1024, 2, 288, 1166]
diff --git a/samples/99_genre_arcade/snakemoji/app/main.rb b/samples/99_genre_arcade/snakemoji/app/main.rb
new file mode 100644
index 0000000..3bffa22
--- /dev/null
+++ b/samples/99_genre_arcade/snakemoji/app/main.rb
@@ -0,0 +1,165 @@
+# coding: utf-8
+################################
+# So I was working on a snake game while
+# learning DragonRuby, and at some point I had a thought
+# what if I use "😀" as a function name, surely it wont work right...?
+# RIGHT....?
+# BUT IT DID, IT WORKED
+# it all went downhill from then
+# Created by Anton K. (ai Doge)
+# https://gist.github.com/scorp200
+#############LICENSE############
+# Feel free to use this anywhere and however you want
+# You can sell this to EA for $1,000,000 if you want, its completely free.
+# Just rememeber you are helping this... thing... to spread...
+# ALSO! I am not liable for any mental, physical or financial damage caused.
+#############LICENSE############
+
+
+class Array
+ #Helper function
+ def move! vector
+ self.x += vector.x
+ self.y += vector.y
+ return self
+ end
+
+ #Helper function to draw snake body
+ def draw! 🎮, 📺, color
+ translate 📺.solids, 🎮.⛓, [self.x * 🎮.⚖️ + 🎮.🛶 / 2, self.y * 🎮.⚖️ + 🎮.🛶 / 2, 🎮.⚖️ - 🎮.🛶, 🎮.⚖️ - 🎮.🛶, color]
+ end
+
+ #This is where it all started, I was trying to find good way to multiply a map by a number, * is already used so is **
+ #I kept trying different combinations of symbols, when suddenly...
+ def 😀 value
+ self.map {|d| d * value}
+ end
+end
+
+#Draw stuff with an offset
+def translate output_collection, ⛓, what
+ what.x += ⛓.x
+ what.y += ⛓.y
+ output_collection << what
+end
+
+BLUE = [33, 150, 243]
+RED = [244, 67, 54]
+GOLD = [255, 193, 7]
+LAST = 0
+
+def tick args
+ defaults args.state
+ render args.state, args.outputs
+ input args.state, args.inputs
+ update args.state
+end
+
+def update 🎮
+ #Update every 10 frames
+ if 🎮.tick_count.mod_zero? 10
+ #Add new snake body piece at head's location
+ 🎮.🐍 << [*🎮.🤖]
+ #Assign Next Direction to Direction
+ 🎮.🚗 = *🎮.🚦
+
+ #Trim the snake a bit if its longer than current size
+ if 🎮.🐍.length > 🎮.🛒
+ 🎮.🐍 = 🎮.🐍[-🎮.🛒..-1]
+ end
+
+ #Move the head in the Direction
+ 🎮.🤖.move! 🎮.🚗
+
+ #If Head is outside the playing field, or inside snake's body restart game
+ if 🎮.🤖.x < 0 || 🎮.🤖.x >= 🎮.🗺.x || 🎮.🤖.y < 0 || 🎮.🤖.y >= 🎮.🗺.y || 🎮.🚗 != [0, 0] && 🎮.🐍.any? {|s| s == 🎮.🤖}
+ LAST = 🎮.💰
+ 🎮.as_hash.clear
+ return
+ end
+
+ #If head lands on food add size and score
+ if 🎮.🤖 == 🎮.🍎
+ 🎮.🛒 += 1
+ 🎮.💰 += (🎮.🛒 * 0.8).floor.to_i + 5
+ spawn_🍎 🎮
+ puts 🎮.🍎
+ end
+ end
+
+ #Every second remove 1 point
+ if 🎮.💰 > 0 && 🎮.tick_count.mod_zero?(60)
+ 🎮.💰 -= 1
+ end
+end
+
+def spawn_🍎 🎮
+ #Food
+ 🎮.🍎 ||= [*🎮.🤖]
+ #Randomly spawns food inside the playing field, keep doing this if the food keeps landing on the snake's body
+ while 🎮.🐍.any? {|s| s == 🎮.🍎} || 🎮.🍎 == 🎮.🤖 do
+ 🎮.🍎 = [rand(🎮.🗺.x), rand(🎮.🗺.y)]
+ end
+end
+
+def render 🎮, 📺
+ #Paint the background black
+ 📺.solids << [0, 0, 1280, 720, 0, 0, 0, 255]
+ #Draw a border for the playing field
+ translate 📺.borders, 🎮.⛓, [0, 0, 🎮.🗺.x * 🎮.⚖️, 🎮.🗺.y * 🎮.⚖️, 255, 255, 255]
+
+ #Draw the snake's body
+ 🎮.🐍.map do |🐍| 🐍.draw! 🎮, 📺, BLUE end
+ #Draw the head
+ 🎮.🤖.draw! 🎮, 📺, BLUE
+ #Draw the food
+ 🎮.🍎.draw! 🎮, 📺, RED
+
+ #Draw current score
+ translate 📺.labels, 🎮.⛓, [5, 715, "Score: #{🎮.💰}", GOLD]
+ #Draw your last score, if any
+ translate 📺.labels, 🎮.⛓, [[*🎮.🤖.😀(🎮.⚖️)].move!([0, 🎮.⚖️ * 2]), "Your Last score is #{LAST}", 0, 1, GOLD] unless LAST == 0 || 🎮.🚗 != [0, 0]
+ #Draw starting message, only if Direction is 0
+ translate 📺.labels, 🎮.⛓, [🎮.🤖.😀(🎮.⚖️), "Press any Arrow key to start", 0, 1, GOLD] unless 🎮.🚗 != [0, 0]
+end
+
+def input 🎮, 🕹
+ #Left and Right keyboard input, only change if X direction is 0
+ if 🕹.keyboard.key_held.left && 🎮.🚗.x == 0
+ 🎮.🚦 = [-1, 0]
+ elsif 🕹.keyboard.key_held.right && 🎮.🚗.x == 0
+ 🎮.🚦 = [1, 0]
+ end
+
+ #Up and Down keyboard input, only change if Y direction is 0
+ if 🕹.keyboard.key_held.up && 🎮.🚗.y == 0
+ 🎮.🚦 = [0, 1]
+ elsif 🕹.keyboard.key_held.down && 🎮.🚗.y == 0
+ 🎮.🚦 = [0, -1]
+ end
+end
+
+def defaults 🎮
+ #Playing field size
+ 🎮.🗺 ||= [20, 20]
+ #Scale for drawing, screen height / Field height
+ 🎮.⚖️ ||= 720 / 🎮.🗺.y
+ #Offset, offset all rendering to the center of the screen
+ 🎮.⛓ ||= [(1280 - 720).fdiv(2), 0]
+ #Padding, make the snake body slightly smaller than the scale
+ 🎮.🛶 ||= (🎮.⚖️ * 0.2).to_i
+ #Snake Size
+ 🎮.🛒 ||= 3
+ #Snake head, the only part we are actually controlling
+ 🎮.🤖 ||= [🎮.🗺.x / 2, 🎮.🗺.y / 2]
+ #Snake body map, follows the head
+ 🎮.🐍 ||= []
+ #Direction the head moves to
+ 🎮.🚗 ||= [0, 0]
+ #Next_Direction, during input check only change this variable and then when game updates asign this to Direction
+ 🎮.🚦 ||= [*🎮.🚗]
+ #Your score
+ 🎮.💰 ||= 0
+ #Spawns Food randomly
+ spawn_🍎(🎮) unless 🎮.🍎?
+end
diff --git a/samples/99_genre_arcade/snakemoji/license-for-sample.txt b/samples/99_genre_arcade/snakemoji/license-for-sample.txt
new file mode 100644
index 0000000..376dd0e
--- /dev/null
+++ b/samples/99_genre_arcade/snakemoji/license-for-sample.txt
@@ -0,0 +1,9 @@
+Copyright 2019 Anton K. (ai Doge)
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/samples/99_genre_arcade/snakemoji/replay.txt b/samples/99_genre_arcade/snakemoji/replay.txt
new file mode 100644
index 0000000..48b3833
--- /dev/null
+++ b/samples/99_genre_arcade/snakemoji/replay.txt
@@ -0,0 +1,145 @@
+replay_version 2.0
+stopped_at 1147
+seed 100
+recorded_at Sun Sep 29 23:35:11 2019
+[:mouse_move, 313, 259, 2, 1, 111]
+[:mouse_move, 317, 254, 2, 2, 112]
+[:mouse_move, 325, 238, 2, 3, 113]
+[:mouse_move, 332, 217, 2, 4, 114]
+[:mouse_move, 345, 162, 2, 5, 115]
+[:mouse_move, 347, 147, 2, 6, 116]
+[:mouse_move, 351, 114, 2, 7, 117]
+[:mouse_move, 352, 97, 2, 8, 118]
+[:mouse_move, 352, 74, 2, 9, 119]
+[:mouse_move, 350, 67, 2, 10, 120]
+[:mouse_move, 347, 63, 2, 11, 121]
+[:mouse_move, 344, 62, 2, 12, 122]
+[:mouse_move, 338, 60, 2, 13, 123]
+[:mouse_move, 334, 60, 2, 14, 124]
+[:mouse_move, 325, 60, 2, 15, 125]
+[:mouse_move, 319, 60, 2, 16, 126]
+[:mouse_move, 313, 59, 2, 17, 127]
+[:mouse_move, 310, 59, 2, 18, 128]
+[:mouse_move, 307, 58, 2, 19, 129]
+[:mouse_move, 303, 57, 2, 20, 130]
+[:mouse_move, 301, 56, 2, 21, 131]
+[:mouse_move, 299, 54, 2, 22, 132]
+[:mouse_move, 298, 54, 2, 23, 133]
+[:mouse_move, 297, 52, 2, 24, 134]
+[:mouse_move, 297, 51, 2, 25, 135]
+[:mouse_move, 295, 48, 2, 26, 136]
+[:mouse_move, 294, 46, 2, 27, 137]
+[:mouse_move, 291, 43, 2, 28, 138]
+[:mouse_move, 290, 42, 2, 29, 139]
+[:mouse_move, 289, 40, 2, 30, 140]
+[:mouse_move, 288, 39, 2, 31, 141]
+[:mouse_move, 289, 39, 2, 32, 145]
+[:mouse_move, 299, 39, 2, 33, 146]
+[:mouse_move, 308, 40, 2, 34, 147]
+[:mouse_move, 337, 41, 2, 35, 148]
+[:mouse_move, 344, 41, 2, 36, 149]
+[:mouse_move, 360, 41, 2, 37, 150]
+[:mouse_move, 367, 41, 2, 38, 151]
+[:mouse_move, 375, 41, 2, 39, 152]
+[:mouse_move, 377, 40, 2, 40, 153]
+[:mouse_move, 378, 40, 2, 41, 154]
+[:mouse_move, 379, 40, 2, 42, 155]
+[:mouse_move, 380, 46, 2, 43, 165]
+[:mouse_move, 383, 54, 2, 44, 166]
+[:mouse_move, 393, 90, 2, 45, 167]
+[:mouse_move, 408, 132, 2, 46, 168]
+[:mouse_move, 444, 221, 2, 47, 169]
+[:mouse_move, 470, 282, 2, 48, 170]
+[:mouse_move, 533, 412, 2, 49, 171]
+[:mouse_move, 548, 439, 2, 50, 172]
+[:mouse_move, 585, 507, 2, 51, 173]
+[:mouse_move, 592, 518, 2, 52, 174]
+[:mouse_move, 590, 518, 2, 53, 184]
+[:mouse_move, 584, 518, 2, 54, 185]
+[:mouse_move, 572, 513, 2, 55, 186]
+[:mouse_move, 564, 507, 2, 56, 187]
+[:mouse_move, 548, 491, 2, 57, 188]
+[:mouse_move, 541, 483, 2, 58, 189]
+[:mouse_move, 523, 464, 2, 59, 190]
+[:mouse_move, 518, 459, 2, 60, 191]
+[:mouse_move, 502, 441, 2, 61, 192]
+[:mouse_move, 496, 434, 2, 62, 193]
+[:mouse_move, 488, 424, 2, 63, 194]
+[:mouse_move, 484, 420, 2, 64, 195]
+[:mouse_move, 479, 414, 2, 65, 196]
+[:mouse_move, 478, 413, 2, 66, 197]
+[:mouse_move, 476, 411, 2, 67, 198]
+[:mouse_move, 475, 410, 2, 68, 199]
+[:mouse_move, 475, 408, 2, 69, 200]
+[:mouse_move, 474, 408, 2, 70, 202]
+[:mouse_move, 474, 407, 2, 71, 204]
+[:mouse_move, 476, 407, 2, 72, 205]
+[:mouse_move, 481, 406, 2, 73, 206]
+[:mouse_move, 487, 406, 2, 74, 207]
+[:mouse_move, 501, 405, 2, 75, 208]
+[:mouse_move, 511, 405, 2, 76, 209]
+[:mouse_move, 519, 405, 2, 77, 210]
+[:mouse_move, 540, 405, 2, 78, 211]
+[:mouse_move, 545, 405, 2, 79, 212]
+[:mouse_move, 564, 405, 2, 80, 213]
+[:mouse_move, 578, 405, 2, 81, 214]
+[:mouse_move, 592, 405, 2, 82, 215]
+[:mouse_move, 600, 405, 2, 83, 216]
+[:mouse_move, 613, 405, 2, 84, 217]
+[:mouse_move, 618, 406, 2, 85, 218]
+[:mouse_move, 628, 407, 2, 86, 219]
+[:mouse_move, 632, 407, 2, 87, 220]
+[:mouse_move, 642, 408, 2, 88, 221]
+[:mouse_move, 647, 408, 2, 89, 222]
+[:mouse_move, 658, 409, 2, 90, 223]
+[:mouse_move, 664, 409, 2, 91, 224]
+[:mouse_move, 676, 409, 2, 92, 225]
+[:mouse_move, 682, 409, 2, 93, 226]
+[:mouse_move, 696, 409, 2, 94, 227]
+[:mouse_move, 703, 409, 2, 95, 228]
+[:mouse_move, 724, 409, 2, 96, 229]
+[:mouse_move, 732, 409, 2, 97, 230]
+[:mouse_move, 745, 409, 2, 98, 231]
+[:mouse_move, 754, 409, 2, 99, 232]
+[:mouse_move, 770, 410, 2, 100, 233]
+[:mouse_move, 777, 410, 2, 101, 234]
+[:mouse_move, 789, 410, 2, 102, 235]
+[:mouse_move, 791, 410, 2, 103, 236]
+[:mouse_move, 795, 410, 2, 104, 237]
+[:mouse_move, 802, 410, 2, 105, 238]
+[:mouse_move, 804, 410, 2, 106, 239]
+[:mouse_move, 806, 410, 2, 107, 240]
+[:mouse_move, 807, 410, 2, 108, 241]
+[:mouse_move, 808, 410, 2, 109, 244]
+[:key_down_raw, 1073741903, 0, 2, 110, 371]
+[:key_up_raw, 1073741903, 0, 2, 111, 381]
+[:key_down_raw, 1073741906, 0, 2, 112, 428]
+[:key_up_raw, 1073741906, 0, 2, 113, 437]
+[:key_down_raw, 1073741904, 0, 2, 114, 459]
+[:key_up_raw, 1073741904, 0, 2, 115, 468]
+[:key_down_raw, 1073741905, 0, 2, 116, 495]
+[:key_up_raw, 1073741905, 0, 2, 117, 504]
+[:key_down_raw, 1073741904, 0, 2, 118, 521]
+[:key_up_raw, 1073741904, 0, 2, 119, 529]
+[:key_down_raw, 1073741906, 0, 2, 120, 631]
+[:key_up_raw, 1073741906, 0, 2, 121, 640]
+[:key_down_raw, 1073741903, 0, 2, 122, 673]
+[:key_up_raw, 1073741903, 0, 2, 123, 683]
+[:key_down_raw, 1073741906, 0, 2, 124, 697]
+[:key_up_raw, 1073741906, 0, 2, 125, 704]
+[:key_down_raw, 1073741903, 0, 2, 126, 739]
+[:key_up_raw, 1073741903, 0, 2, 127, 747]
+[:key_down_raw, 1073741906, 0, 2, 128, 767]
+[:key_up_raw, 1073741906, 0, 2, 129, 773]
+[:key_down_raw, 1073741903, 0, 2, 130, 776]
+[:key_up_raw, 1073741903, 0, 2, 131, 784]
+[:key_down_raw, 1073741905, 0, 2, 132, 880]
+[:key_up_raw, 1073741905, 0, 2, 133, 887]
+[:key_down_raw, 1073741904, 0, 2, 134, 960]
+[:key_up_raw, 1073741904, 0, 2, 135, 967]
+[:key_down_raw, 1073741905, 0, 2, 136, 980]
+[:key_up_raw, 1073741905, 0, 2, 137, 987]
+[:key_down_raw, 1073741903, 0, 2, 138, 1013]
+[:key_up_raw, 1073741903, 0, 2, 139, 1022]
+[:key_down_raw, 1073742051, 1024, 2, 140, 1146]
+[:key_down_raw, 113, 1024, 2, 141, 1146]
diff --git a/samples/99_genre_arcade/solar_system/app/main.rb b/samples/99_genre_arcade/solar_system/app/main.rb
new file mode 100644
index 0000000..273c36a
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/app/main.rb
@@ -0,0 +1,108 @@
+# Focused tutorial video: https://s3.amazonaws.com/s3.dragonruby.org/dragonruby-nddnug-workshop.mp4
+# Workshop/Presentation which provides motivation for creating a game engine: https://www.youtube.com/watch?v=S3CFce1arC8
+
+def defaults args
+ args.outputs.background_color = [0, 0, 0]
+ args.state.x ||= 640
+ args.state.y ||= 360
+ args.state.stars ||= 100.map do
+ [1280 * rand, 720 * rand, rand.fdiv(10), 255 * rand, 255 * rand, 255 * rand]
+ end
+
+ args.state.sun ||= args.state.new_entity(:sun) do |s|
+ s.s = 100
+ s.path = 'sprites/sun.png'
+ end
+
+ args.state.planets = [
+ [:mercury, 65, 5, 88],
+ [:venus, 100, 10, 225],
+ [:earth, 120, 10, 365],
+ [:mars, 140, 8, 687],
+ [:jupiter, 280, 30, 365 * 11.8],
+ [:saturn, 350, 20, 365 * 29.5],
+ [:uranus, 400, 15, 365 * 84],
+ [:neptune, 440, 15, 365 * 164.8],
+ [:pluto, 480, 5, 365 * 247.8],
+ ].map do |name, distance, size, year_in_days|
+ args.state.new_entity(name) do |p|
+ p.path = "sprites/#{name}.png"
+ p.distance = distance * 0.7
+ p.s = size * 0.7
+ p.year_in_days = year_in_days
+ end
+ end
+
+ args.state.ship ||= args.state.new_entity(:ship) do |s|
+ s.x = 1280 * rand
+ s.y = 720 * rand
+ s.angle = 0
+ end
+end
+
+def to_sprite args, entity
+ x = 0
+ y = 0
+
+ if entity.year_in_days
+ day = args.state.tick_count
+ day_in_year = day % entity.year_in_days
+ entity.random_start_day ||= day_in_year * rand
+ percentage_of_year = day_in_year.fdiv(entity.year_in_days)
+ angle = 365 * percentage_of_year
+ x = angle.vector_x(entity.distance)
+ y = angle.vector_y(entity.distance)
+ end
+
+ [640 + x - entity.s.half, 360 + y - entity.s.half, entity.s, entity.s, entity.path]
+end
+
+def render args
+ args.outputs.solids << [0, 0, 1280, 720]
+
+ args.outputs.sprites << args.state.stars.map do |x, y, _, r, g, b|
+ [x, y, 10, 10, 'sprites/star.png', 0, 100, r, g, b]
+ end
+
+ args.outputs.sprites << to_sprite(args, args.state.sun)
+ args.outputs.sprites << args.state.planets.map { |p| to_sprite args, p }
+ args.outputs.sprites << [args.state.ship.x, args.state.ship.y, 20, 20, 'sprites/ship.png', args.state.ship.angle]
+end
+
+def calc args
+ args.state.stars = args.state.stars.map do |x, y, speed, r, g, b|
+ x += speed
+ y += speed
+ x = 0 if x > 1280
+ y = 0 if y > 720
+ [x, y, speed, r, g, b]
+ end
+
+ if args.state.tick_count == 0
+ args.outputs.sounds << 'sounds/bg.ogg'
+ end
+end
+
+def process_inputs args
+ if args.inputs.keyboard.left || args.inputs.controller_one.key_held.left
+ args.state.ship.angle += 1
+ elsif args.inputs.keyboard.right || args.inputs.controller_one.key_held.right
+ args.state.ship.angle -= 1
+ end
+
+ if args.inputs.keyboard.up || args.inputs.controller_one.key_held.a
+ args.state.ship.x += args.state.ship.angle.x_vector
+ args.state.ship.y += args.state.ship.angle.y_vector
+ end
+end
+
+def tick args
+ defaults args
+ render args
+ calc args
+ process_inputs args
+end
+
+def r
+ $gtk.reset
+end
diff --git a/samples/99_genre_arcade/solar_system/license-for-sample.txt b/samples/99_genre_arcade/solar_system/license-for-sample.txt
new file mode 100644
index 0000000..2f938ad
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/license-for-sample.txt
@@ -0,0 +1,9 @@
+Copyright 2019 DragonRuby LLC (code), Nick Culbertson @mobypixel (art), Rafael Langoni Smith (music)
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/samples/99_genre_arcade/solar_system/replay.txt b/samples/99_genre_arcade/solar_system/replay.txt
new file mode 100644
index 0000000..948639c
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/replay.txt
@@ -0,0 +1,1472 @@
+replay_version 2.0
+stopped_at 1198
+seed 100
+recorded_at Sun Sep 29 23:34:16 2019
+[:mouse_move, 1156, 500, 2, 1, 74]
+[:mouse_move, 1151, 501, 2, 2, 75]
+[:mouse_move, 1148, 502, 2, 3, 76]
+[:mouse_move, 1136, 503, 2, 4, 77]
+[:mouse_move, 1125, 503, 2, 5, 78]
+[:mouse_move, 1089, 502, 2, 6, 79]
+[:mouse_move, 1069, 498, 2, 7, 80]
+[:mouse_move, 1020, 485, 2, 8, 81]
+[:mouse_move, 969, 470, 2, 9, 82]
+[:mouse_move, 930, 458, 2, 10, 83]
+[:mouse_move, 842, 428, 2, 11, 84]
+[:mouse_move, 788, 407, 2, 12, 85]
+[:mouse_move, 711, 377, 2, 13, 86]
+[:mouse_move, 665, 358, 2, 14, 87]
+[:mouse_move, 609, 336, 2, 15, 88]
+[:mouse_move, 583, 324, 2, 16, 89]
+[:mouse_move, 545, 305, 2, 17, 90]
+[:mouse_move, 531, 297, 2, 18, 91]
+[:mouse_move, 512, 279, 2, 19, 92]
+[:mouse_move, 481, 273, 2, 20, 160]
+[:mouse_move, 452, 262, 2, 21, 161]
+[:mouse_move, 414, 248, 2, 22, 162]
+[:mouse_move, 391, 241, 2, 23, 163]
+[:mouse_move, 293, 212, 2, 24, 164]
+[:mouse_move, 242, 198, 2, 25, 165]
+[:mouse_move, 220, 191, 2, 26, 166]
+[:mouse_move, 163, 174, 2, 27, 167]
+[:mouse_move, 134, 166, 2, 28, 168]
+[:mouse_move, 109, 156, 2, 29, 169]
+[:mouse_move, 95, 150, 2, 30, 170]
+[:mouse_move, 82, 144, 2, 31, 171]
+[:mouse_move, 77, 141, 2, 32, 172]
+[:mouse_move, 72, 137, 2, 33, 173]
+[:mouse_move, 70, 137, 2, 34, 174]
+[:mouse_move, 69, 135, 2, 35, 175]
+[:mouse_move, 66, 135, 2, 36, 177]
+[:mouse_move, 65, 135, 2, 37, 178]
+[:mouse_move, 62, 135, 2, 38, 179]
+[:mouse_move, 60, 135, 2, 39, 180]
+[:mouse_move, 57, 136, 2, 40, 181]
+[:mouse_move, 55, 137, 2, 41, 182]
+[:mouse_move, 50, 138, 2, 42, 183]
+[:mouse_move, 49, 139, 2, 43, 184]
+[:mouse_move, 44, 141, 2, 44, 185]
+[:mouse_move, 42, 143, 2, 45, 186]
+[:mouse_move, 36, 146, 2, 46, 187]
+[:mouse_move, 34, 147, 2, 47, 188]
+[:mouse_move, 30, 149, 2, 48, 189]
+[:mouse_move, 28, 151, 2, 49, 190]
+[:mouse_move, 26, 152, 2, 50, 191]
+[:mouse_move, 26, 156, 2, 51, 194]
+[:mouse_move, 27, 158, 2, 52, 195]
+[:mouse_move, 30, 162, 2, 53, 196]
+[:mouse_move, 33, 164, 2, 54, 197]
+[:mouse_move, 36, 167, 2, 55, 198]
+[:mouse_move, 38, 168, 2, 56, 199]
+[:mouse_move, 43, 168, 2, 57, 200]
+[:mouse_move, 46, 166, 2, 58, 201]
+[:mouse_move, 51, 157, 2, 59, 202]
+[:mouse_move, 53, 152, 2, 60, 203]
+[:mouse_move, 55, 145, 2, 61, 204]
+[:mouse_move, 56, 141, 2, 62, 205]
+[:mouse_move, 57, 134, 2, 63, 206]
+[:mouse_move, 57, 131, 2, 64, 207]
+[:mouse_move, 56, 125, 2, 65, 208]
+[:mouse_move, 54, 123, 2, 66, 209]
+[:mouse_move, 48, 119, 2, 67, 210]
+[:mouse_move, 44, 117, 2, 68, 211]
+[:mouse_move, 33, 113, 2, 69, 212]
+[:mouse_move, 28, 112, 2, 70, 213]
+[:mouse_move, 21, 111, 2, 71, 214]
+[:mouse_move, 18, 111, 2, 72, 215]
+[:mouse_move, 11, 112, 2, 73, 216]
+[:mouse_move, 10, 113, 2, 74, 217]
+[:mouse_move, 6, 119, 2, 75, 218]
+[:mouse_move, 4, 122, 2, 76, 219]
+[:mouse_move, 1, 127, 2, 77, 220]
+[:mouse_move, 0, 137, 2, 78, 221]
+[:mouse_move, 1, 173, 2, 79, 226]
+[:mouse_move, 10, 177, 2, 80, 226]
+[:mouse_move, 20, 182, 2, 81, 227]
+[:mouse_move, 44, 190, 2, 82, 228]
+[:mouse_move, 58, 192, 2, 83, 229]
+[:mouse_move, 63, 193, 2, 84, 230]
+[:mouse_move, 84, 194, 2, 85, 231]
+[:mouse_move, 89, 194, 2, 86, 232]
+[:mouse_move, 93, 193, 2, 87, 232]
+[:mouse_move, 95, 190, 2, 88, 233]
+[:mouse_move, 98, 187, 2, 89, 234]
+[:mouse_move, 101, 176, 2, 90, 235]
+[:mouse_move, 102, 169, 2, 91, 236]
+[:mouse_move, 100, 148, 2, 92, 237]
+[:mouse_move, 96, 139, 2, 93, 238]
+[:mouse_move, 87, 126, 2, 94, 239]
+[:mouse_move, 82, 120, 2, 95, 240]
+[:mouse_move, 68, 111, 2, 96, 241]
+[:mouse_move, 62, 108, 2, 97, 242]
+[:mouse_move, 51, 105, 2, 98, 243]
+[:mouse_move, 46, 104, 2, 99, 244]
+[:mouse_move, 37, 104, 2, 100, 245]
+[:mouse_move, 32, 104, 2, 101, 246]
+[:mouse_move, 27, 104, 2, 102, 247]
+[:mouse_move, 23, 104, 2, 103, 247]
+[:mouse_move, 21, 105, 2, 104, 248]
+[:mouse_move, 18, 107, 2, 105, 249]
+[:mouse_move, 15, 109, 2, 106, 249]
+[:mouse_move, 12, 112, 2, 107, 250]
+[:mouse_move, 9, 116, 2, 108, 251]
+[:mouse_move, 8, 121, 2, 109, 251]
+[:mouse_move, 8, 128, 2, 110, 252]
+[:mouse_move, 8, 145, 2, 111, 253]
+[:mouse_move, 16, 162, 2, 112, 253]
+[:mouse_move, 29, 183, 2, 113, 254]
+[:mouse_move, 46, 203, 2, 114, 255]
+[:mouse_move, 69, 223, 2, 115, 255]
+[:mouse_move, 96, 241, 2, 116, 256]
+[:mouse_move, 108, 245, 2, 117, 257]
+[:mouse_move, 161, 261, 2, 118, 258]
+[:mouse_move, 201, 263, 2, 119, 259]
+[:mouse_move, 249, 262, 2, 120, 260]
+[:mouse_move, 261, 262, 2, 121, 261]
+[:mouse_move, 310, 261, 2, 122, 262]
+[:key_down_player_one, 4, 0, 1, 123, 274]
+[:key_down_player_one, 27, 0, 1, 124, 274]
+[:key_held_player_one, 4, 0, 1, 125, 275]
+[:key_held_player_one, 27, 0, 1, 126, 275]
+[:key_held_player_one, 4, 0, 1, 127, 276]
+[:key_held_player_one, 27, 0, 1, 128, 276]
+[:key_held_player_one, 4, 0, 1, 129, 277]
+[:key_held_player_one, 27, 0, 1, 130, 277]
+[:key_held_player_one, 4, 0, 1, 131, 278]
+[:key_held_player_one, 27, 0, 1, 132, 278]
+[:key_held_player_one, 4, 0, 1, 133, 279]
+[:key_held_player_one, 27, 0, 1, 134, 279]
+[:key_held_player_one, 4, 0, 1, 135, 280]
+[:key_held_player_one, 27, 0, 1, 136, 280]
+[:key_held_player_one, 4, 0, 1, 137, 281]
+[:key_held_player_one, 27, 0, 1, 138, 281]
+[:key_held_player_one, 4, 0, 1, 139, 282]
+[:key_held_player_one, 27, 0, 1, 140, 282]
+[:key_held_player_one, 4, 0, 1, 141, 283]
+[:key_held_player_one, 27, 0, 1, 142, 283]
+[:key_held_player_one, 4, 0, 1, 143, 284]
+[:key_held_player_one, 27, 0, 1, 144, 284]
+[:key_held_player_one, 4, 0, 1, 145, 285]
+[:key_held_player_one, 27, 0, 1, 146, 285]
+[:key_held_player_one, 4, 0, 1, 147, 286]
+[:key_held_player_one, 27, 0, 1, 148, 286]
+[:key_held_player_one, 4, 0, 1, 149, 287]
+[:key_held_player_one, 27, 0, 1, 150, 287]
+[:key_held_player_one, 4, 0, 1, 151, 288]
+[:key_held_player_one, 27, 0, 1, 152, 288]
+[:key_held_player_one, 4, 0, 1, 153, 289]
+[:key_held_player_one, 27, 0, 1, 154, 289]
+[:key_held_player_one, 4, 0, 1, 155, 290]
+[:key_held_player_one, 27, 0, 1, 156, 290]
+[:key_held_player_one, 4, 0, 1, 157, 291]
+[:key_held_player_one, 27, 0, 1, 158, 291]
+[:key_held_player_one, 4, 0, 1, 159, 292]
+[:key_held_player_one, 27, 0, 1, 160, 292]
+[:key_held_player_one, 4, 0, 1, 161, 293]
+[:key_held_player_one, 27, 0, 1, 162, 293]
+[:key_held_player_one, 4, 0, 1, 163, 294]
+[:key_held_player_one, 27, 0, 1, 164, 294]
+[:key_held_player_one, 4, 0, 1, 165, 295]
+[:key_held_player_one, 27, 0, 1, 166, 295]
+[:key_held_player_one, 4, 0, 1, 167, 296]
+[:key_held_player_one, 27, 0, 1, 168, 296]
+[:key_held_player_one, 4, 0, 1, 169, 297]
+[:key_held_player_one, 27, 0, 1, 170, 297]
+[:key_held_player_one, 4, 0, 1, 171, 298]
+[:key_held_player_one, 27, 0, 1, 172, 298]
+[:key_held_player_one, 4, 0, 1, 173, 299]
+[:key_held_player_one, 27, 0, 1, 174, 299]
+[:key_held_player_one, 4, 0, 1, 175, 300]
+[:key_held_player_one, 27, 0, 1, 176, 300]
+[:key_held_player_one, 4, 0, 1, 177, 301]
+[:key_held_player_one, 27, 0, 1, 178, 301]
+[:key_up_player_one, 4, 0, 1, 179, 302]
+[:key_up_player_one, 27, 0, 1, 180, 302]
+[:key_down_player_one, 3, 0, 1, 181, 313]
+[:key_down_player_one, 26, 0, 1, 182, 313]
+[:key_held_player_one, 3, 0, 1, 183, 314]
+[:key_held_player_one, 26, 0, 1, 184, 314]
+[:key_held_player_one, 3, 0, 1, 185, 315]
+[:key_held_player_one, 26, 0, 1, 186, 315]
+[:key_held_player_one, 3, 0, 1, 187, 316]
+[:key_held_player_one, 26, 0, 1, 188, 316]
+[:key_held_player_one, 3, 0, 1, 189, 317]
+[:key_held_player_one, 26, 0, 1, 190, 317]
+[:key_held_player_one, 3, 0, 1, 191, 318]
+[:key_held_player_one, 26, 0, 1, 192, 318]
+[:key_held_player_one, 3, 0, 1, 193, 319]
+[:key_held_player_one, 26, 0, 1, 194, 319]
+[:key_held_player_one, 3, 0, 1, 195, 320]
+[:key_held_player_one, 26, 0, 1, 196, 320]
+[:key_held_player_one, 3, 0, 1, 197, 321]
+[:key_held_player_one, 26, 0, 1, 198, 321]
+[:key_up_player_one, 3, 0, 1, 199, 322]
+[:key_up_player_one, 26, 0, 1, 200, 322]
+[:key_down_player_one, 19, 0, 1, 201, 344]
+[:key_held_player_one, 19, 0, 1, 202, 345]
+[:key_held_player_one, 19, 0, 1, 203, 346]
+[:key_held_player_one, 19, 0, 1, 204, 347]
+[:key_held_player_one, 19, 0, 1, 205, 348]
+[:key_held_player_one, 19, 0, 1, 206, 349]
+[:key_held_player_one, 19, 0, 1, 207, 350]
+[:key_held_player_one, 19, 0, 1, 208, 351]
+[:key_held_player_one, 19, 0, 1, 209, 352]
+[:key_held_player_one, 19, 0, 1, 210, 353]
+[:key_held_player_one, 19, 0, 1, 211, 354]
+[:key_held_player_one, 19, 0, 1, 212, 355]
+[:key_held_player_one, 19, 0, 1, 213, 356]
+[:key_held_player_one, 19, 0, 1, 214, 357]
+[:key_held_player_one, 19, 0, 1, 215, 358]
+[:key_held_player_one, 19, 0, 1, 216, 359]
+[:key_held_player_one, 19, 0, 1, 217, 360]
+[:key_held_player_one, 19, 0, 1, 218, 361]
+[:key_held_player_one, 19, 0, 1, 219, 362]
+[:key_held_player_one, 19, 0, 1, 220, 363]
+[:key_held_player_one, 19, 0, 1, 221, 364]
+[:key_held_player_one, 19, 0, 1, 222, 365]
+[:key_held_player_one, 19, 0, 1, 223, 366]
+[:key_held_player_one, 19, 0, 1, 224, 367]
+[:key_held_player_one, 19, 0, 1, 225, 368]
+[:key_held_player_one, 19, 0, 1, 226, 369]
+[:key_held_player_one, 19, 0, 1, 227, 370]
+[:key_down_player_one, 1, 0, 1, 228, 371]
+[:key_up_player_one, 19, 0, 1, 229, 371]
+[:key_down_player_one, 24, 0, 1, 230, 371]
+[:key_held_player_one, 1, 0, 1, 231, 372]
+[:key_held_player_one, 24, 0, 1, 232, 372]
+[:key_held_player_one, 1, 0, 1, 233, 373]
+[:key_held_player_one, 24, 0, 1, 234, 373]
+[:key_held_player_one, 1, 0, 1, 235, 374]
+[:key_held_player_one, 24, 0, 1, 236, 374]
+[:key_held_player_one, 1, 0, 1, 237, 375]
+[:key_held_player_one, 24, 0, 1, 238, 375]
+[:key_held_player_one, 1, 0, 1, 239, 376]
+[:key_held_player_one, 24, 0, 1, 240, 376]
+[:key_held_player_one, 1, 0, 1, 241, 377]
+[:key_held_player_one, 24, 0, 1, 242, 377]
+[:key_held_player_one, 1, 0, 1, 243, 378]
+[:key_held_player_one, 24, 0, 1, 244, 378]
+[:key_held_player_one, 1, 0, 1, 245, 379]
+[:key_held_player_one, 24, 0, 1, 246, 379]
+[:key_held_player_one, 1, 0, 1, 247, 380]
+[:key_held_player_one, 24, 0, 1, 248, 380]
+[:key_held_player_one, 1, 0, 1, 249, 381]
+[:key_held_player_one, 24, 0, 1, 250, 381]
+[:key_held_player_one, 1, 0, 1, 251, 382]
+[:key_held_player_one, 24, 0, 1, 252, 382]
+[:key_held_player_one, 1, 0, 1, 253, 383]
+[:key_held_player_one, 24, 0, 1, 254, 383]
+[:key_held_player_one, 1, 0, 1, 255, 384]
+[:key_held_player_one, 24, 0, 1, 256, 384]
+[:key_held_player_one, 1, 0, 1, 257, 385]
+[:key_held_player_one, 24, 0, 1, 258, 385]
+[:key_held_player_one, 1, 0, 1, 259, 386]
+[:key_held_player_one, 24, 0, 1, 260, 386]
+[:key_held_player_one, 1, 0, 1, 261, 387]
+[:key_held_player_one, 24, 0, 1, 262, 387]
+[:key_held_player_one, 1, 0, 1, 263, 388]
+[:key_held_player_one, 24, 0, 1, 264, 388]
+[:key_held_player_one, 1, 0, 1, 265, 389]
+[:key_held_player_one, 24, 0, 1, 266, 389]
+[:key_held_player_one, 1, 0, 1, 267, 390]
+[:key_held_player_one, 24, 0, 1, 268, 390]
+[:key_held_player_one, 1, 0, 1, 269, 391]
+[:key_held_player_one, 24, 0, 1, 270, 391]
+[:key_held_player_one, 1, 0, 1, 271, 392]
+[:key_held_player_one, 24, 0, 1, 272, 392]
+[:key_held_player_one, 1, 0, 1, 273, 393]
+[:key_held_player_one, 24, 0, 1, 274, 393]
+[:key_held_player_one, 1, 0, 1, 275, 394]
+[:key_held_player_one, 24, 0, 1, 276, 394]
+[:key_held_player_one, 1, 0, 1, 277, 395]
+[:key_held_player_one, 24, 0, 1, 278, 395]
+[:key_held_player_one, 1, 0, 1, 279, 396]
+[:key_held_player_one, 24, 0, 1, 280, 396]
+[:key_held_player_one, 1, 0, 1, 281, 397]
+[:key_held_player_one, 24, 0, 1, 282, 397]
+[:key_held_player_one, 1, 0, 1, 283, 398]
+[:key_held_player_one, 24, 0, 1, 284, 398]
+[:key_held_player_one, 1, 0, 1, 285, 399]
+[:key_held_player_one, 24, 0, 1, 286, 399]
+[:key_held_player_one, 1, 0, 1, 287, 400]
+[:key_held_player_one, 24, 0, 1, 288, 400]
+[:key_held_player_one, 1, 0, 1, 289, 401]
+[:key_held_player_one, 24, 0, 1, 290, 401]
+[:key_held_player_one, 1, 0, 1, 291, 402]
+[:key_held_player_one, 24, 0, 1, 292, 402]
+[:key_held_player_one, 1, 0, 1, 293, 403]
+[:key_held_player_one, 24, 0, 1, 294, 403]
+[:key_held_player_one, 1, 0, 1, 295, 404]
+[:key_held_player_one, 24, 0, 1, 296, 404]
+[:key_held_player_one, 1, 0, 1, 297, 405]
+[:key_held_player_one, 24, 0, 1, 298, 405]
+[:key_held_player_one, 1, 0, 1, 299, 406]
+[:key_held_player_one, 24, 0, 1, 300, 406]
+[:key_held_player_one, 1, 0, 1, 301, 407]
+[:key_held_player_one, 24, 0, 1, 302, 407]
+[:key_held_player_one, 1, 0, 1, 303, 408]
+[:key_held_player_one, 24, 0, 1, 304, 408]
+[:key_up_player_one, 1, 0, 1, 305, 409]
+[:key_up_player_one, 24, 0, 1, 306, 409]
+[:key_down_player_one, 14, 0, 1, 307, 411]
+[:key_held_player_one, 14, 0, 1, 308, 412]
+[:key_held_player_one, 14, 0, 1, 309, 413]
+[:key_held_player_one, 14, 0, 1, 310, 414]
+[:key_held_player_one, 14, 0, 1, 311, 415]
+[:key_held_player_one, 14, 0, 1, 312, 416]
+[:key_held_player_one, 14, 0, 1, 313, 417]
+[:key_held_player_one, 14, 0, 1, 314, 418]
+[:key_held_player_one, 14, 0, 1, 315, 419]
+[:key_held_player_one, 14, 0, 1, 316, 420]
+[:key_held_player_one, 14, 0, 1, 317, 421]
+[:key_held_player_one, 14, 0, 1, 318, 422]
+[:key_held_player_one, 14, 0, 1, 319, 423]
+[:key_held_player_one, 14, 0, 1, 320, 424]
+[:key_held_player_one, 14, 0, 1, 321, 425]
+[:key_held_player_one, 14, 0, 1, 322, 426]
+[:key_down_player_one, 4, 0, 1, 323, 427]
+[:key_held_player_one, 14, 0, 1, 324, 427]
+[:key_down_player_one, 27, 0, 1, 325, 427]
+[:key_held_player_one, 4, 0, 1, 326, 428]
+[:key_held_player_one, 14, 0, 1, 327, 428]
+[:key_held_player_one, 27, 0, 1, 328, 428]
+[:key_held_player_one, 4, 0, 1, 329, 429]
+[:key_held_player_one, 14, 0, 1, 330, 429]
+[:key_held_player_one, 27, 0, 1, 331, 429]
+[:key_held_player_one, 4, 0, 1, 332, 430]
+[:key_held_player_one, 14, 0, 1, 333, 430]
+[:key_held_player_one, 27, 0, 1, 334, 430]
+[:key_held_player_one, 4, 0, 1, 335, 431]
+[:key_held_player_one, 14, 0, 1, 336, 431]
+[:key_held_player_one, 27, 0, 1, 337, 431]
+[:key_held_player_one, 4, 0, 1, 338, 432]
+[:key_held_player_one, 14, 0, 1, 339, 432]
+[:key_held_player_one, 27, 0, 1, 340, 432]
+[:key_held_player_one, 4, 0, 1, 341, 433]
+[:key_held_player_one, 14, 0, 1, 342, 433]
+[:key_held_player_one, 27, 0, 1, 343, 433]
+[:key_held_player_one, 4, 0, 1, 344, 434]
+[:key_held_player_one, 14, 0, 1, 345, 434]
+[:key_held_player_one, 27, 0, 1, 346, 434]
+[:key_held_player_one, 4, 0, 1, 347, 435]
+[:key_held_player_one, 14, 0, 1, 348, 435]
+[:key_held_player_one, 27, 0, 1, 349, 435]
+[:key_held_player_one, 4, 0, 1, 350, 436]
+[:key_up_player_one, 14, 0, 1, 351, 436]
+[:key_held_player_one, 27, 0, 1, 352, 436]
+[:key_held_player_one, 4, 0, 1, 353, 437]
+[:key_held_player_one, 27, 0, 1, 354, 437]
+[:key_held_player_one, 4, 0, 1, 355, 438]
+[:key_held_player_one, 27, 0, 1, 356, 438]
+[:key_up_player_one, 4, 0, 1, 357, 439]
+[:key_up_player_one, 27, 0, 1, 358, 439]
+[:key_down_player_one, 2, 0, 1, 359, 440]
+[:key_down_player_one, 3, 0, 1, 360, 440]
+[:key_down_player_one, 25, 0, 1, 361, 440]
+[:key_down_player_one, 26, 0, 1, 362, 440]
+[:key_up_player_one, 2, 0, 1, 363, 441]
+[:key_held_player_one, 3, 0, 1, 364, 441]
+[:key_up_player_one, 25, 0, 1, 365, 441]
+[:key_held_player_one, 26, 0, 1, 366, 441]
+[:key_held_player_one, 3, 0, 1, 367, 442]
+[:key_held_player_one, 26, 0, 1, 368, 442]
+[:key_held_player_one, 3, 0, 1, 369, 443]
+[:key_held_player_one, 26, 0, 1, 370, 443]
+[:key_held_player_one, 3, 0, 1, 371, 444]
+[:key_held_player_one, 26, 0, 1, 372, 444]
+[:key_held_player_one, 3, 0, 1, 373, 445]
+[:key_held_player_one, 26, 0, 1, 374, 445]
+[:key_held_player_one, 3, 0, 1, 375, 446]
+[:key_held_player_one, 26, 0, 1, 376, 446]
+[:key_held_player_one, 3, 0, 1, 377, 447]
+[:key_held_player_one, 26, 0, 1, 378, 447]
+[:key_held_player_one, 3, 0, 1, 379, 448]
+[:key_held_player_one, 26, 0, 1, 380, 448]
+[:key_held_player_one, 3, 0, 1, 381, 449]
+[:key_down_player_one, 15, 0, 1, 382, 449]
+[:key_held_player_one, 26, 0, 1, 383, 449]
+[:key_held_player_one, 3, 0, 1, 384, 450]
+[:key_held_player_one, 15, 0, 1, 385, 450]
+[:key_held_player_one, 26, 0, 1, 386, 450]
+[:key_held_player_one, 3, 0, 1, 387, 451]
+[:key_held_player_one, 15, 0, 1, 388, 451]
+[:key_held_player_one, 26, 0, 1, 389, 451]
+[:key_held_player_one, 3, 0, 1, 390, 452]
+[:key_held_player_one, 15, 0, 1, 391, 452]
+[:key_held_player_one, 26, 0, 1, 392, 452]
+[:key_held_player_one, 3, 0, 1, 393, 453]
+[:key_held_player_one, 15, 0, 1, 394, 453]
+[:key_held_player_one, 26, 0, 1, 395, 453]
+[:key_held_player_one, 3, 0, 1, 396, 454]
+[:key_held_player_one, 15, 0, 1, 397, 454]
+[:key_held_player_one, 26, 0, 1, 398, 454]
+[:key_held_player_one, 3, 0, 1, 399, 455]
+[:key_held_player_one, 15, 0, 1, 400, 455]
+[:key_held_player_one, 26, 0, 1, 401, 455]
+[:key_held_player_one, 3, 0, 1, 402, 456]
+[:key_held_player_one, 15, 0, 1, 403, 456]
+[:key_held_player_one, 26, 0, 1, 404, 456]
+[:key_held_player_one, 3, 0, 1, 405, 457]
+[:key_held_player_one, 15, 0, 1, 406, 457]
+[:key_held_player_one, 26, 0, 1, 407, 457]
+[:key_held_player_one, 3, 0, 1, 408, 458]
+[:key_held_player_one, 15, 0, 1, 409, 458]
+[:key_held_player_one, 26, 0, 1, 410, 458]
+[:key_held_player_one, 3, 0, 1, 411, 459]
+[:key_held_player_one, 15, 0, 1, 412, 459]
+[:key_held_player_one, 26, 0, 1, 413, 459]
+[:key_held_player_one, 3, 0, 1, 414, 460]
+[:key_held_player_one, 15, 0, 1, 415, 460]
+[:key_held_player_one, 26, 0, 1, 416, 460]
+[:key_held_player_one, 3, 0, 1, 417, 461]
+[:key_held_player_one, 15, 0, 1, 418, 461]
+[:key_held_player_one, 26, 0, 1, 419, 461]
+[:key_held_player_one, 3, 0, 1, 420, 462]
+[:key_held_player_one, 15, 0, 1, 421, 462]
+[:key_held_player_one, 26, 0, 1, 422, 462]
+[:key_held_player_one, 3, 0, 1, 423, 463]
+[:key_held_player_one, 15, 0, 1, 424, 463]
+[:key_held_player_one, 26, 0, 1, 425, 463]
+[:key_held_player_one, 3, 0, 1, 426, 464]
+[:key_held_player_one, 15, 0, 1, 427, 464]
+[:key_held_player_one, 26, 0, 1, 428, 464]
+[:key_up_player_one, 3, 0, 1, 429, 465]
+[:key_held_player_one, 15, 0, 1, 430, 465]
+[:key_up_player_one, 26, 0, 1, 431, 465]
+[:key_held_player_one, 15, 0, 1, 432, 466]
+[:key_held_player_one, 15, 0, 1, 433, 467]
+[:key_held_player_one, 15, 0, 1, 434, 468]
+[:key_held_player_one, 15, 0, 1, 435, 469]
+[:key_held_player_one, 15, 0, 1, 436, 470]
+[:key_held_player_one, 15, 0, 1, 437, 471]
+[:key_held_player_one, 15, 0, 1, 438, 472]
+[:key_held_player_one, 15, 0, 1, 439, 473]
+[:key_held_player_one, 15, 0, 1, 440, 474]
+[:key_held_player_one, 15, 0, 1, 441, 475]
+[:key_held_player_one, 15, 0, 1, 442, 476]
+[:key_held_player_one, 15, 0, 1, 443, 477]
+[:key_held_player_one, 15, 0, 1, 444, 478]
+[:key_held_player_one, 15, 0, 1, 445, 479]
+[:key_held_player_one, 15, 0, 1, 446, 480]
+[:key_down_player_one, 4, 0, 1, 447, 481]
+[:key_held_player_one, 15, 0, 1, 448, 481]
+[:key_down_player_one, 27, 0, 1, 449, 481]
+[:key_held_player_one, 4, 0, 1, 450, 482]
+[:key_held_player_one, 15, 0, 1, 451, 482]
+[:key_held_player_one, 27, 0, 1, 452, 482]
+[:key_held_player_one, 4, 0, 1, 453, 483]
+[:key_held_player_one, 15, 0, 1, 454, 483]
+[:key_held_player_one, 27, 0, 1, 455, 483]
+[:key_held_player_one, 4, 0, 1, 456, 484]
+[:key_held_player_one, 15, 0, 1, 457, 484]
+[:key_held_player_one, 27, 0, 1, 458, 484]
+[:key_held_player_one, 4, 0, 1, 459, 485]
+[:key_held_player_one, 15, 0, 1, 460, 485]
+[:key_held_player_one, 27, 0, 1, 461, 485]
+[:key_held_player_one, 4, 0, 1, 462, 486]
+[:key_held_player_one, 15, 0, 1, 463, 486]
+[:key_held_player_one, 27, 0, 1, 464, 486]
+[:key_held_player_one, 4, 0, 1, 465, 487]
+[:key_held_player_one, 15, 0, 1, 466, 487]
+[:key_held_player_one, 27, 0, 1, 467, 487]
+[:key_held_player_one, 4, 0, 1, 468, 488]
+[:key_held_player_one, 15, 0, 1, 469, 488]
+[:key_held_player_one, 27, 0, 1, 470, 488]
+[:key_held_player_one, 4, 0, 1, 471, 489]
+[:key_held_player_one, 15, 0, 1, 472, 489]
+[:key_held_player_one, 27, 0, 1, 473, 489]
+[:key_held_player_one, 4, 0, 1, 474, 490]
+[:key_held_player_one, 15, 0, 1, 475, 490]
+[:key_held_player_one, 27, 0, 1, 476, 490]
+[:key_held_player_one, 4, 0, 1, 477, 491]
+[:key_held_player_one, 15, 0, 1, 478, 491]
+[:key_held_player_one, 27, 0, 1, 479, 491]
+[:key_held_player_one, 4, 0, 1, 480, 492]
+[:key_held_player_one, 15, 0, 1, 481, 492]
+[:key_held_player_one, 27, 0, 1, 482, 492]
+[:key_held_player_one, 4, 0, 1, 483, 493]
+[:key_held_player_one, 15, 0, 1, 484, 493]
+[:key_held_player_one, 27, 0, 1, 485, 493]
+[:key_held_player_one, 4, 0, 1, 486, 494]
+[:key_held_player_one, 15, 0, 1, 487, 494]
+[:key_held_player_one, 27, 0, 1, 488, 494]
+[:key_held_player_one, 4, 0, 1, 489, 495]
+[:key_held_player_one, 15, 0, 1, 490, 495]
+[:key_held_player_one, 27, 0, 1, 491, 495]
+[:key_held_player_one, 4, 0, 1, 492, 496]
+[:key_held_player_one, 15, 0, 1, 493, 496]
+[:key_held_player_one, 27, 0, 1, 494, 496]
+[:key_held_player_one, 4, 0, 1, 495, 497]
+[:key_held_player_one, 15, 0, 1, 496, 497]
+[:key_held_player_one, 27, 0, 1, 497, 497]
+[:key_held_player_one, 4, 0, 1, 498, 498]
+[:key_held_player_one, 15, 0, 1, 499, 498]
+[:key_held_player_one, 27, 0, 1, 500, 498]
+[:key_held_player_one, 4, 0, 1, 501, 499]
+[:key_held_player_one, 15, 0, 1, 502, 499]
+[:key_held_player_one, 27, 0, 1, 503, 499]
+[:key_held_player_one, 4, 0, 1, 504, 500]
+[:key_held_player_one, 15, 0, 1, 505, 500]
+[:key_held_player_one, 27, 0, 1, 506, 500]
+[:key_held_player_one, 4, 0, 1, 507, 501]
+[:key_held_player_one, 15, 0, 1, 508, 501]
+[:key_held_player_one, 27, 0, 1, 509, 501]
+[:key_held_player_one, 4, 0, 1, 510, 502]
+[:key_held_player_one, 15, 0, 1, 511, 502]
+[:key_held_player_one, 27, 0, 1, 512, 502]
+[:key_held_player_one, 4, 0, 1, 513, 503]
+[:key_held_player_one, 15, 0, 1, 514, 503]
+[:key_held_player_one, 27, 0, 1, 515, 503]
+[:key_held_player_one, 4, 0, 1, 516, 504]
+[:key_held_player_one, 15, 0, 1, 517, 504]
+[:key_held_player_one, 27, 0, 1, 518, 504]
+[:key_held_player_one, 4, 0, 1, 519, 505]
+[:key_held_player_one, 15, 0, 1, 520, 505]
+[:key_held_player_one, 27, 0, 1, 521, 505]
+[:key_held_player_one, 4, 0, 1, 522, 506]
+[:key_held_player_one, 15, 0, 1, 523, 506]
+[:key_held_player_one, 27, 0, 1, 524, 506]
+[:key_held_player_one, 4, 0, 1, 525, 507]
+[:key_held_player_one, 15, 0, 1, 526, 507]
+[:key_held_player_one, 27, 0, 1, 527, 507]
+[:key_held_player_one, 4, 0, 1, 528, 508]
+[:key_held_player_one, 15, 0, 1, 529, 508]
+[:key_held_player_one, 27, 0, 1, 530, 508]
+[:key_held_player_one, 4, 0, 1, 531, 509]
+[:key_held_player_one, 15, 0, 1, 532, 509]
+[:key_held_player_one, 27, 0, 1, 533, 509]
+[:key_held_player_one, 4, 0, 1, 534, 510]
+[:key_held_player_one, 15, 0, 1, 535, 510]
+[:key_held_player_one, 27, 0, 1, 536, 510]
+[:key_held_player_one, 4, 0, 1, 537, 511]
+[:key_held_player_one, 15, 0, 1, 538, 511]
+[:key_held_player_one, 27, 0, 1, 539, 511]
+[:key_held_player_one, 4, 0, 1, 540, 512]
+[:key_held_player_one, 15, 0, 1, 541, 512]
+[:key_held_player_one, 27, 0, 1, 542, 512]
+[:key_held_player_one, 4, 0, 1, 543, 513]
+[:key_held_player_one, 15, 0, 1, 544, 513]
+[:key_held_player_one, 27, 0, 1, 545, 513]
+[:key_held_player_one, 4, 0, 1, 546, 514]
+[:key_held_player_one, 15, 0, 1, 547, 514]
+[:key_held_player_one, 27, 0, 1, 548, 514]
+[:key_held_player_one, 4, 0, 1, 549, 515]
+[:key_held_player_one, 15, 0, 1, 550, 515]
+[:key_held_player_one, 27, 0, 1, 551, 515]
+[:key_held_player_one, 4, 0, 1, 552, 516]
+[:key_held_player_one, 15, 0, 1, 553, 516]
+[:key_held_player_one, 27, 0, 1, 554, 516]
+[:key_held_player_one, 4, 0, 1, 555, 517]
+[:key_held_player_one, 15, 0, 1, 556, 517]
+[:key_held_player_one, 27, 0, 1, 557, 517]
+[:key_held_player_one, 4, 0, 1, 558, 518]
+[:key_held_player_one, 15, 0, 1, 559, 518]
+[:key_held_player_one, 27, 0, 1, 560, 518]
+[:key_held_player_one, 4, 0, 1, 561, 519]
+[:key_held_player_one, 15, 0, 1, 562, 519]
+[:key_held_player_one, 27, 0, 1, 563, 519]
+[:key_held_player_one, 4, 0, 1, 564, 520]
+[:key_held_player_one, 15, 0, 1, 565, 520]
+[:key_held_player_one, 27, 0, 1, 566, 520]
+[:key_held_player_one, 4, 0, 1, 567, 521]
+[:key_held_player_one, 15, 0, 1, 568, 521]
+[:key_held_player_one, 27, 0, 1, 569, 521]
+[:key_held_player_one, 4, 0, 1, 570, 522]
+[:key_held_player_one, 15, 0, 1, 571, 522]
+[:key_held_player_one, 27, 0, 1, 572, 522]
+[:key_up_player_one, 4, 0, 1, 573, 523]
+[:key_held_player_one, 15, 0, 1, 574, 523]
+[:key_up_player_one, 27, 0, 1, 575, 523]
+[:key_held_player_one, 15, 0, 1, 576, 524]
+[:key_held_player_one, 15, 0, 1, 577, 525]
+[:key_held_player_one, 15, 0, 1, 578, 526]
+[:key_held_player_one, 15, 0, 1, 579, 527]
+[:key_held_player_one, 15, 0, 1, 580, 528]
+[:key_held_player_one, 15, 0, 1, 581, 529]
+[:key_held_player_one, 15, 0, 1, 582, 530]
+[:key_held_player_one, 15, 0, 1, 583, 531]
+[:key_held_player_one, 15, 0, 1, 584, 532]
+[:key_held_player_one, 15, 0, 1, 585, 533]
+[:key_held_player_one, 15, 0, 1, 586, 534]
+[:key_held_player_one, 15, 0, 1, 587, 535]
+[:key_held_player_one, 15, 0, 1, 588, 536]
+[:key_held_player_one, 15, 0, 1, 589, 537]
+[:key_held_player_one, 15, 0, 1, 590, 538]
+[:key_held_player_one, 15, 0, 1, 591, 539]
+[:key_held_player_one, 15, 0, 1, 592, 540]
+[:key_held_player_one, 15, 0, 1, 593, 541]
+[:key_held_player_one, 15, 0, 1, 594, 542]
+[:key_held_player_one, 15, 0, 1, 595, 543]
+[:key_held_player_one, 15, 0, 1, 596, 544]
+[:key_held_player_one, 15, 0, 1, 597, 545]
+[:key_held_player_one, 15, 0, 1, 598, 546]
+[:key_held_player_one, 15, 0, 1, 599, 547]
+[:key_down_player_one, 3, 0, 1, 600, 548]
+[:key_held_player_one, 15, 0, 1, 601, 548]
+[:key_down_player_one, 26, 0, 1, 602, 548]
+[:key_held_player_one, 3, 0, 1, 603, 549]
+[:key_held_player_one, 15, 0, 1, 604, 549]
+[:key_held_player_one, 26, 0, 1, 605, 549]
+[:key_held_player_one, 3, 0, 1, 606, 550]
+[:key_held_player_one, 15, 0, 1, 607, 550]
+[:key_held_player_one, 26, 0, 1, 608, 550]
+[:key_held_player_one, 3, 0, 1, 609, 551]
+[:key_held_player_one, 15, 0, 1, 610, 551]
+[:key_held_player_one, 26, 0, 1, 611, 551]
+[:key_held_player_one, 3, 0, 1, 612, 552]
+[:key_held_player_one, 15, 0, 1, 613, 552]
+[:key_held_player_one, 26, 0, 1, 614, 552]
+[:key_held_player_one, 3, 0, 1, 615, 553]
+[:key_held_player_one, 15, 0, 1, 616, 553]
+[:key_held_player_one, 26, 0, 1, 617, 553]
+[:key_held_player_one, 3, 0, 1, 618, 554]
+[:key_held_player_one, 15, 0, 1, 619, 554]
+[:key_held_player_one, 26, 0, 1, 620, 554]
+[:key_held_player_one, 3, 0, 1, 621, 555]
+[:key_held_player_one, 15, 0, 1, 622, 555]
+[:key_held_player_one, 26, 0, 1, 623, 555]
+[:key_held_player_one, 3, 0, 1, 624, 556]
+[:key_held_player_one, 15, 0, 1, 625, 556]
+[:key_held_player_one, 26, 0, 1, 626, 556]
+[:key_held_player_one, 3, 0, 1, 627, 557]
+[:key_held_player_one, 15, 0, 1, 628, 557]
+[:key_held_player_one, 26, 0, 1, 629, 557]
+[:key_held_player_one, 3, 0, 1, 630, 558]
+[:key_held_player_one, 15, 0, 1, 631, 558]
+[:key_held_player_one, 26, 0, 1, 632, 558]
+[:key_held_player_one, 3, 0, 1, 633, 559]
+[:key_held_player_one, 15, 0, 1, 634, 559]
+[:key_held_player_one, 26, 0, 1, 635, 559]
+[:key_held_player_one, 3, 0, 1, 636, 560]
+[:key_held_player_one, 15, 0, 1, 637, 560]
+[:key_held_player_one, 26, 0, 1, 638, 560]
+[:key_held_player_one, 3, 0, 1, 639, 561]
+[:key_held_player_one, 15, 0, 1, 640, 561]
+[:key_held_player_one, 26, 0, 1, 641, 561]
+[:key_held_player_one, 3, 0, 1, 642, 562]
+[:key_held_player_one, 15, 0, 1, 643, 562]
+[:key_held_player_one, 26, 0, 1, 644, 562]
+[:key_held_player_one, 3, 0, 1, 645, 563]
+[:key_held_player_one, 15, 0, 1, 646, 563]
+[:key_held_player_one, 26, 0, 1, 647, 563]
+[:key_held_player_one, 3, 0, 1, 648, 564]
+[:key_held_player_one, 15, 0, 1, 649, 564]
+[:key_held_player_one, 26, 0, 1, 650, 564]
+[:key_held_player_one, 3, 0, 1, 651, 565]
+[:key_held_player_one, 15, 0, 1, 652, 565]
+[:key_held_player_one, 26, 0, 1, 653, 565]
+[:key_held_player_one, 3, 0, 1, 654, 566]
+[:key_held_player_one, 15, 0, 1, 655, 566]
+[:key_held_player_one, 26, 0, 1, 656, 566]
+[:key_held_player_one, 3, 0, 1, 657, 567]
+[:key_held_player_one, 15, 0, 1, 658, 567]
+[:key_held_player_one, 26, 0, 1, 659, 567]
+[:key_held_player_one, 3, 0, 1, 660, 568]
+[:key_held_player_one, 15, 0, 1, 661, 568]
+[:key_held_player_one, 26, 0, 1, 662, 568]
+[:key_held_player_one, 3, 0, 1, 663, 569]
+[:key_held_player_one, 15, 0, 1, 664, 569]
+[:key_held_player_one, 26, 0, 1, 665, 569]
+[:key_held_player_one, 3, 0, 1, 666, 570]
+[:key_held_player_one, 15, 0, 1, 667, 570]
+[:key_held_player_one, 26, 0, 1, 668, 570]
+[:key_held_player_one, 3, 0, 1, 669, 571]
+[:key_held_player_one, 15, 0, 1, 670, 571]
+[:key_held_player_one, 26, 0, 1, 671, 571]
+[:key_held_player_one, 3, 0, 1, 672, 572]
+[:key_held_player_one, 15, 0, 1, 673, 572]
+[:key_held_player_one, 26, 0, 1, 674, 572]
+[:key_held_player_one, 3, 0, 1, 675, 573]
+[:key_held_player_one, 15, 0, 1, 676, 573]
+[:key_held_player_one, 26, 0, 1, 677, 573]
+[:key_held_player_one, 3, 0, 1, 678, 574]
+[:key_held_player_one, 15, 0, 1, 679, 574]
+[:key_held_player_one, 26, 0, 1, 680, 574]
+[:key_held_player_one, 3, 0, 1, 681, 575]
+[:key_held_player_one, 15, 0, 1, 682, 575]
+[:key_held_player_one, 26, 0, 1, 683, 575]
+[:key_held_player_one, 3, 0, 1, 684, 576]
+[:key_held_player_one, 15, 0, 1, 685, 576]
+[:key_held_player_one, 26, 0, 1, 686, 576]
+[:key_held_player_one, 3, 0, 1, 687, 577]
+[:key_held_player_one, 15, 0, 1, 688, 577]
+[:key_held_player_one, 26, 0, 1, 689, 577]
+[:key_held_player_one, 3, 0, 1, 690, 578]
+[:key_held_player_one, 15, 0, 1, 691, 578]
+[:key_held_player_one, 26, 0, 1, 692, 578]
+[:key_held_player_one, 3, 0, 1, 693, 579]
+[:key_held_player_one, 15, 0, 1, 694, 579]
+[:key_held_player_one, 26, 0, 1, 695, 579]
+[:key_held_player_one, 3, 0, 1, 696, 580]
+[:key_held_player_one, 15, 0, 1, 697, 580]
+[:key_held_player_one, 26, 0, 1, 698, 580]
+[:key_held_player_one, 3, 0, 1, 699, 581]
+[:key_held_player_one, 15, 0, 1, 700, 581]
+[:key_held_player_one, 26, 0, 1, 701, 581]
+[:key_held_player_one, 3, 0, 1, 702, 582]
+[:key_held_player_one, 15, 0, 1, 703, 582]
+[:key_held_player_one, 26, 0, 1, 704, 582]
+[:key_held_player_one, 3, 0, 1, 705, 583]
+[:key_held_player_one, 15, 0, 1, 706, 583]
+[:key_held_player_one, 26, 0, 1, 707, 583]
+[:key_held_player_one, 3, 0, 1, 708, 584]
+[:key_held_player_one, 15, 0, 1, 709, 584]
+[:key_held_player_one, 26, 0, 1, 710, 584]
+[:key_held_player_one, 3, 0, 1, 711, 585]
+[:key_held_player_one, 15, 0, 1, 712, 585]
+[:key_held_player_one, 26, 0, 1, 713, 585]
+[:key_held_player_one, 3, 0, 1, 714, 586]
+[:key_held_player_one, 15, 0, 1, 715, 586]
+[:key_held_player_one, 26, 0, 1, 716, 586]
+[:key_held_player_one, 3, 0, 1, 717, 587]
+[:key_held_player_one, 15, 0, 1, 718, 587]
+[:key_held_player_one, 26, 0, 1, 719, 587]
+[:key_held_player_one, 3, 0, 1, 720, 588]
+[:key_held_player_one, 15, 0, 1, 721, 588]
+[:key_held_player_one, 26, 0, 1, 722, 588]
+[:key_held_player_one, 3, 0, 1, 723, 589]
+[:key_held_player_one, 15, 0, 1, 724, 589]
+[:key_held_player_one, 26, 0, 1, 725, 589]
+[:key_held_player_one, 3, 0, 1, 726, 590]
+[:key_held_player_one, 15, 0, 1, 727, 590]
+[:key_held_player_one, 26, 0, 1, 728, 590]
+[:key_held_player_one, 3, 0, 1, 729, 591]
+[:key_held_player_one, 15, 0, 1, 730, 591]
+[:key_held_player_one, 26, 0, 1, 731, 591]
+[:key_held_player_one, 3, 0, 1, 732, 592]
+[:key_held_player_one, 15, 0, 1, 733, 592]
+[:key_held_player_one, 26, 0, 1, 734, 592]
+[:key_up_player_one, 3, 0, 1, 735, 593]
+[:key_held_player_one, 15, 0, 1, 736, 593]
+[:key_up_player_one, 26, 0, 1, 737, 593]
+[:key_held_player_one, 15, 0, 1, 738, 594]
+[:key_held_player_one, 15, 0, 1, 739, 595]
+[:key_held_player_one, 15, 0, 1, 740, 596]
+[:key_held_player_one, 15, 0, 1, 741, 597]
+[:key_held_player_one, 15, 0, 1, 742, 598]
+[:key_held_player_one, 15, 0, 1, 743, 599]
+[:key_held_player_one, 15, 0, 1, 744, 600]
+[:key_held_player_one, 15, 0, 1, 745, 601]
+[:key_held_player_one, 15, 0, 1, 746, 602]
+[:key_held_player_one, 15, 0, 1, 747, 603]
+[:key_held_player_one, 15, 0, 1, 748, 604]
+[:key_held_player_one, 15, 0, 1, 749, 605]
+[:key_held_player_one, 15, 0, 1, 750, 606]
+[:key_held_player_one, 15, 0, 1, 751, 607]
+[:key_held_player_one, 15, 0, 1, 752, 608]
+[:key_held_player_one, 15, 0, 1, 753, 609]
+[:key_held_player_one, 15, 0, 1, 754, 610]
+[:key_held_player_one, 15, 0, 1, 755, 611]
+[:key_held_player_one, 15, 0, 1, 756, 612]
+[:key_held_player_one, 15, 0, 1, 757, 613]
+[:key_held_player_one, 15, 0, 1, 758, 614]
+[:key_held_player_one, 15, 0, 1, 759, 615]
+[:key_held_player_one, 15, 0, 1, 760, 616]
+[:key_held_player_one, 15, 0, 1, 761, 617]
+[:key_held_player_one, 15, 0, 1, 762, 618]
+[:key_held_player_one, 15, 0, 1, 763, 619]
+[:key_held_player_one, 15, 0, 1, 764, 620]
+[:key_held_player_one, 15, 0, 1, 765, 621]
+[:key_down_player_one, 4, 0, 1, 766, 622]
+[:key_held_player_one, 15, 0, 1, 767, 622]
+[:key_down_player_one, 27, 0, 1, 768, 622]
+[:key_held_player_one, 4, 0, 1, 769, 623]
+[:key_held_player_one, 15, 0, 1, 770, 623]
+[:key_held_player_one, 27, 0, 1, 771, 623]
+[:key_held_player_one, 4, 0, 1, 772, 624]
+[:key_held_player_one, 15, 0, 1, 773, 624]
+[:key_held_player_one, 27, 0, 1, 774, 624]
+[:key_held_player_one, 4, 0, 1, 775, 625]
+[:key_held_player_one, 15, 0, 1, 776, 625]
+[:key_held_player_one, 27, 0, 1, 777, 625]
+[:key_held_player_one, 4, 0, 1, 778, 626]
+[:key_held_player_one, 15, 0, 1, 779, 626]
+[:key_held_player_one, 27, 0, 1, 780, 626]
+[:key_held_player_one, 4, 0, 1, 781, 627]
+[:key_held_player_one, 15, 0, 1, 782, 627]
+[:key_held_player_one, 27, 0, 1, 783, 627]
+[:key_held_player_one, 4, 0, 1, 784, 628]
+[:key_held_player_one, 15, 0, 1, 785, 628]
+[:key_held_player_one, 27, 0, 1, 786, 628]
+[:key_held_player_one, 4, 0, 1, 787, 629]
+[:key_held_player_one, 15, 0, 1, 788, 629]
+[:key_held_player_one, 27, 0, 1, 789, 629]
+[:key_held_player_one, 4, 0, 1, 790, 630]
+[:key_held_player_one, 15, 0, 1, 791, 630]
+[:key_held_player_one, 27, 0, 1, 792, 630]
+[:key_held_player_one, 4, 0, 1, 793, 631]
+[:key_held_player_one, 15, 0, 1, 794, 631]
+[:key_held_player_one, 27, 0, 1, 795, 631]
+[:key_held_player_one, 4, 0, 1, 796, 632]
+[:key_held_player_one, 15, 0, 1, 797, 632]
+[:key_held_player_one, 27, 0, 1, 798, 632]
+[:key_held_player_one, 4, 0, 1, 799, 633]
+[:key_held_player_one, 15, 0, 1, 800, 633]
+[:key_held_player_one, 27, 0, 1, 801, 633]
+[:key_held_player_one, 4, 0, 1, 802, 634]
+[:key_held_player_one, 15, 0, 1, 803, 634]
+[:key_held_player_one, 27, 0, 1, 804, 634]
+[:key_held_player_one, 4, 0, 1, 805, 635]
+[:key_held_player_one, 15, 0, 1, 806, 635]
+[:key_held_player_one, 27, 0, 1, 807, 635]
+[:key_held_player_one, 4, 0, 1, 808, 636]
+[:key_held_player_one, 15, 0, 1, 809, 636]
+[:key_held_player_one, 27, 0, 1, 810, 636]
+[:key_held_player_one, 4, 0, 1, 811, 637]
+[:key_held_player_one, 15, 0, 1, 812, 637]
+[:key_held_player_one, 27, 0, 1, 813, 637]
+[:key_held_player_one, 4, 0, 1, 814, 638]
+[:key_held_player_one, 15, 0, 1, 815, 638]
+[:key_held_player_one, 27, 0, 1, 816, 638]
+[:key_held_player_one, 4, 0, 1, 817, 639]
+[:key_held_player_one, 15, 0, 1, 818, 639]
+[:key_held_player_one, 27, 0, 1, 819, 639]
+[:key_held_player_one, 4, 0, 1, 820, 640]
+[:key_held_player_one, 15, 0, 1, 821, 640]
+[:key_held_player_one, 27, 0, 1, 822, 640]
+[:key_held_player_one, 4, 0, 1, 823, 641]
+[:key_held_player_one, 15, 0, 1, 824, 641]
+[:key_held_player_one, 27, 0, 1, 825, 641]
+[:key_held_player_one, 4, 0, 1, 826, 642]
+[:key_held_player_one, 15, 0, 1, 827, 642]
+[:key_held_player_one, 27, 0, 1, 828, 642]
+[:key_held_player_one, 4, 0, 1, 829, 643]
+[:key_held_player_one, 15, 0, 1, 830, 643]
+[:key_held_player_one, 27, 0, 1, 831, 643]
+[:key_held_player_one, 4, 0, 1, 832, 644]
+[:key_held_player_one, 15, 0, 1, 833, 644]
+[:key_held_player_one, 27, 0, 1, 834, 644]
+[:key_held_player_one, 4, 0, 1, 835, 645]
+[:key_held_player_one, 15, 0, 1, 836, 645]
+[:key_held_player_one, 27, 0, 1, 837, 645]
+[:key_held_player_one, 4, 0, 1, 838, 646]
+[:key_held_player_one, 15, 0, 1, 839, 646]
+[:key_held_player_one, 27, 0, 1, 840, 646]
+[:key_held_player_one, 4, 0, 1, 841, 647]
+[:key_held_player_one, 15, 0, 1, 842, 647]
+[:key_held_player_one, 27, 0, 1, 843, 647]
+[:key_held_player_one, 4, 0, 1, 844, 648]
+[:key_held_player_one, 15, 0, 1, 845, 648]
+[:key_held_player_one, 27, 0, 1, 846, 648]
+[:key_held_player_one, 4, 0, 1, 847, 649]
+[:key_held_player_one, 15, 0, 1, 848, 649]
+[:key_held_player_one, 27, 0, 1, 849, 649]
+[:key_held_player_one, 4, 0, 1, 850, 650]
+[:key_held_player_one, 15, 0, 1, 851, 650]
+[:key_held_player_one, 27, 0, 1, 852, 650]
+[:key_held_player_one, 4, 0, 1, 853, 651]
+[:key_held_player_one, 15, 0, 1, 854, 651]
+[:key_held_player_one, 27, 0, 1, 855, 651]
+[:key_held_player_one, 4, 0, 1, 856, 652]
+[:key_held_player_one, 15, 0, 1, 857, 652]
+[:key_held_player_one, 27, 0, 1, 858, 652]
+[:key_held_player_one, 4, 0, 1, 859, 653]
+[:key_held_player_one, 15, 0, 1, 860, 653]
+[:key_held_player_one, 27, 0, 1, 861, 653]
+[:key_held_player_one, 4, 0, 1, 862, 654]
+[:key_held_player_one, 15, 0, 1, 863, 654]
+[:key_held_player_one, 27, 0, 1, 864, 654]
+[:key_held_player_one, 4, 0, 1, 865, 655]
+[:key_held_player_one, 15, 0, 1, 866, 655]
+[:key_held_player_one, 27, 0, 1, 867, 655]
+[:key_held_player_one, 4, 0, 1, 868, 656]
+[:key_held_player_one, 15, 0, 1, 869, 656]
+[:key_held_player_one, 27, 0, 1, 870, 656]
+[:key_held_player_one, 4, 0, 1, 871, 657]
+[:key_held_player_one, 15, 0, 1, 872, 657]
+[:key_held_player_one, 27, 0, 1, 873, 657]
+[:key_up_player_one, 4, 0, 1, 874, 658]
+[:key_held_player_one, 15, 0, 1, 875, 658]
+[:key_up_player_one, 27, 0, 1, 876, 658]
+[:key_held_player_one, 15, 0, 1, 877, 659]
+[:key_held_player_one, 15, 0, 1, 878, 660]
+[:key_held_player_one, 15, 0, 1, 879, 661]
+[:key_held_player_one, 15, 0, 1, 880, 662]
+[:key_held_player_one, 15, 0, 1, 881, 663]
+[:key_held_player_one, 15, 0, 1, 882, 664]
+[:key_held_player_one, 15, 0, 1, 883, 665]
+[:key_held_player_one, 15, 0, 1, 884, 666]
+[:key_held_player_one, 15, 0, 1, 885, 667]
+[:key_held_player_one, 15, 0, 1, 886, 668]
+[:key_held_player_one, 15, 0, 1, 887, 669]
+[:key_held_player_one, 15, 0, 1, 888, 670]
+[:key_held_player_one, 15, 0, 1, 889, 671]
+[:key_held_player_one, 15, 0, 1, 890, 672]
+[:key_held_player_one, 15, 0, 1, 891, 673]
+[:key_held_player_one, 15, 0, 1, 892, 674]
+[:key_held_player_one, 15, 0, 1, 893, 675]
+[:key_held_player_one, 15, 0, 1, 894, 676]
+[:key_held_player_one, 15, 0, 1, 895, 677]
+[:key_held_player_one, 15, 0, 1, 896, 678]
+[:key_held_player_one, 15, 0, 1, 897, 679]
+[:key_held_player_one, 15, 0, 1, 898, 680]
+[:key_held_player_one, 15, 0, 1, 899, 681]
+[:key_held_player_one, 15, 0, 1, 900, 682]
+[:key_held_player_one, 15, 0, 1, 901, 683]
+[:key_held_player_one, 15, 0, 1, 902, 684]
+[:key_held_player_one, 15, 0, 1, 903, 685]
+[:key_held_player_one, 15, 0, 1, 904, 686]
+[:key_held_player_one, 15, 0, 1, 905, 687]
+[:key_held_player_one, 15, 0, 1, 906, 688]
+[:key_held_player_one, 15, 0, 1, 907, 689]
+[:key_held_player_one, 15, 0, 1, 908, 690]
+[:key_held_player_one, 15, 0, 1, 909, 691]
+[:key_held_player_one, 15, 0, 1, 910, 692]
+[:key_held_player_one, 15, 0, 1, 911, 693]
+[:key_held_player_one, 15, 0, 1, 912, 694]
+[:key_held_player_one, 15, 0, 1, 913, 695]
+[:key_held_player_one, 15, 0, 1, 914, 696]
+[:key_held_player_one, 15, 0, 1, 915, 697]
+[:key_held_player_one, 15, 0, 1, 916, 698]
+[:key_held_player_one, 15, 0, 1, 917, 699]
+[:key_held_player_one, 15, 0, 1, 918, 700]
+[:key_held_player_one, 15, 0, 1, 919, 701]
+[:key_held_player_one, 15, 0, 1, 920, 702]
+[:key_held_player_one, 15, 0, 1, 921, 703]
+[:key_held_player_one, 15, 0, 1, 922, 704]
+[:key_held_player_one, 15, 0, 1, 923, 705]
+[:key_held_player_one, 15, 0, 1, 924, 706]
+[:key_held_player_one, 15, 0, 1, 925, 707]
+[:key_held_player_one, 15, 0, 1, 926, 708]
+[:key_held_player_one, 15, 0, 1, 927, 709]
+[:key_held_player_one, 15, 0, 1, 928, 710]
+[:key_held_player_one, 15, 0, 1, 929, 711]
+[:key_held_player_one, 15, 0, 1, 930, 712]
+[:key_held_player_one, 15, 0, 1, 931, 713]
+[:key_held_player_one, 15, 0, 1, 932, 714]
+[:key_held_player_one, 15, 0, 1, 933, 715]
+[:key_held_player_one, 15, 0, 1, 934, 716]
+[:key_held_player_one, 15, 0, 1, 935, 717]
+[:key_held_player_one, 15, 0, 1, 936, 718]
+[:key_held_player_one, 15, 0, 1, 937, 719]
+[:key_held_player_one, 15, 0, 1, 938, 720]
+[:key_held_player_one, 15, 0, 1, 939, 721]
+[:key_held_player_one, 15, 0, 1, 940, 722]
+[:key_held_player_one, 15, 0, 1, 941, 723]
+[:key_held_player_one, 15, 0, 1, 942, 724]
+[:key_held_player_one, 15, 0, 1, 943, 725]
+[:key_held_player_one, 15, 0, 1, 944, 726]
+[:key_held_player_one, 15, 0, 1, 945, 727]
+[:key_held_player_one, 15, 0, 1, 946, 728]
+[:key_held_player_one, 15, 0, 1, 947, 729]
+[:key_held_player_one, 15, 0, 1, 948, 730]
+[:key_held_player_one, 15, 0, 1, 949, 731]
+[:key_held_player_one, 15, 0, 1, 950, 732]
+[:key_held_player_one, 15, 0, 1, 951, 733]
+[:key_held_player_one, 15, 0, 1, 952, 734]
+[:key_held_player_one, 15, 0, 1, 953, 735]
+[:key_held_player_one, 15, 0, 1, 954, 736]
+[:key_held_player_one, 15, 0, 1, 955, 737]
+[:key_held_player_one, 15, 0, 1, 956, 738]
+[:key_held_player_one, 15, 0, 1, 957, 739]
+[:key_held_player_one, 15, 0, 1, 958, 740]
+[:key_held_player_one, 15, 0, 1, 959, 741]
+[:key_held_player_one, 15, 0, 1, 960, 742]
+[:key_held_player_one, 15, 0, 1, 961, 743]
+[:key_held_player_one, 15, 0, 1, 962, 744]
+[:key_held_player_one, 15, 0, 1, 963, 745]
+[:key_held_player_one, 15, 0, 1, 964, 746]
+[:key_held_player_one, 15, 0, 1, 965, 747]
+[:key_held_player_one, 15, 0, 1, 966, 748]
+[:key_held_player_one, 15, 0, 1, 967, 749]
+[:key_held_player_one, 15, 0, 1, 968, 750]
+[:key_held_player_one, 15, 0, 1, 969, 751]
+[:key_held_player_one, 15, 0, 1, 970, 752]
+[:key_held_player_one, 15, 0, 1, 971, 753]
+[:key_held_player_one, 15, 0, 1, 972, 754]
+[:key_held_player_one, 15, 0, 1, 973, 755]
+[:key_held_player_one, 15, 0, 1, 974, 756]
+[:key_held_player_one, 15, 0, 1, 975, 757]
+[:key_held_player_one, 15, 0, 1, 976, 758]
+[:key_held_player_one, 15, 0, 1, 977, 759]
+[:key_held_player_one, 15, 0, 1, 978, 760]
+[:key_held_player_one, 15, 0, 1, 979, 761]
+[:key_held_player_one, 15, 0, 1, 980, 762]
+[:key_held_player_one, 15, 0, 1, 981, 763]
+[:key_held_player_one, 15, 0, 1, 982, 764]
+[:key_held_player_one, 15, 0, 1, 983, 765]
+[:key_held_player_one, 15, 0, 1, 984, 766]
+[:key_held_player_one, 15, 0, 1, 985, 767]
+[:key_held_player_one, 15, 0, 1, 986, 768]
+[:key_held_player_one, 15, 0, 1, 987, 769]
+[:key_held_player_one, 15, 0, 1, 988, 770]
+[:key_held_player_one, 15, 0, 1, 989, 771]
+[:key_held_player_one, 15, 0, 1, 990, 772]
+[:key_held_player_one, 15, 0, 1, 991, 773]
+[:key_held_player_one, 15, 0, 1, 992, 774]
+[:key_held_player_one, 15, 0, 1, 993, 775]
+[:key_held_player_one, 15, 0, 1, 994, 776]
+[:key_held_player_one, 15, 0, 1, 995, 777]
+[:key_held_player_one, 15, 0, 1, 996, 778]
+[:key_held_player_one, 15, 0, 1, 997, 779]
+[:key_held_player_one, 15, 0, 1, 998, 780]
+[:key_held_player_one, 15, 0, 1, 999, 781]
+[:key_held_player_one, 15, 0, 1, 1000, 782]
+[:key_held_player_one, 15, 0, 1, 1001, 783]
+[:key_held_player_one, 15, 0, 1, 1002, 784]
+[:key_held_player_one, 15, 0, 1, 1003, 785]
+[:key_held_player_one, 15, 0, 1, 1004, 786]
+[:key_held_player_one, 15, 0, 1, 1005, 787]
+[:key_held_player_one, 15, 0, 1, 1006, 788]
+[:key_held_player_one, 15, 0, 1, 1007, 789]
+[:key_held_player_one, 15, 0, 1, 1008, 790]
+[:key_held_player_one, 15, 0, 1, 1009, 791]
+[:key_held_player_one, 15, 0, 1, 1010, 792]
+[:key_held_player_one, 15, 0, 1, 1011, 793]
+[:key_held_player_one, 15, 0, 1, 1012, 794]
+[:key_held_player_one, 15, 0, 1, 1013, 795]
+[:key_held_player_one, 15, 0, 1, 1014, 796]
+[:key_held_player_one, 15, 0, 1, 1015, 797]
+[:key_held_player_one, 15, 0, 1, 1016, 798]
+[:key_held_player_one, 15, 0, 1, 1017, 799]
+[:key_held_player_one, 15, 0, 1, 1018, 800]
+[:key_held_player_one, 15, 0, 1, 1019, 801]
+[:key_held_player_one, 15, 0, 1, 1020, 802]
+[:key_held_player_one, 15, 0, 1, 1021, 803]
+[:key_held_player_one, 15, 0, 1, 1022, 804]
+[:key_held_player_one, 15, 0, 1, 1023, 805]
+[:key_held_player_one, 15, 0, 1, 1024, 806]
+[:key_held_player_one, 15, 0, 1, 1025, 807]
+[:key_held_player_one, 15, 0, 1, 1026, 808]
+[:key_held_player_one, 15, 0, 1, 1027, 809]
+[:key_held_player_one, 15, 0, 1, 1028, 810]
+[:key_held_player_one, 15, 0, 1, 1029, 811]
+[:key_held_player_one, 15, 0, 1, 1030, 812]
+[:key_held_player_one, 15, 0, 1, 1031, 813]
+[:key_held_player_one, 15, 0, 1, 1032, 814]
+[:key_held_player_one, 15, 0, 1, 1033, 815]
+[:key_held_player_one, 15, 0, 1, 1034, 816]
+[:key_held_player_one, 15, 0, 1, 1035, 817]
+[:key_held_player_one, 15, 0, 1, 1036, 818]
+[:key_held_player_one, 15, 0, 1, 1037, 819]
+[:key_held_player_one, 15, 0, 1, 1038, 820]
+[:key_held_player_one, 15, 0, 1, 1039, 821]
+[:key_held_player_one, 15, 0, 1, 1040, 822]
+[:key_held_player_one, 15, 0, 1, 1041, 823]
+[:key_held_player_one, 15, 0, 1, 1042, 824]
+[:key_held_player_one, 15, 0, 1, 1043, 825]
+[:key_held_player_one, 15, 0, 1, 1044, 826]
+[:key_held_player_one, 15, 0, 1, 1045, 827]
+[:key_held_player_one, 15, 0, 1, 1046, 828]
+[:key_held_player_one, 15, 0, 1, 1047, 829]
+[:key_held_player_one, 15, 0, 1, 1048, 830]
+[:key_held_player_one, 15, 0, 1, 1049, 831]
+[:key_held_player_one, 15, 0, 1, 1050, 832]
+[:key_held_player_one, 15, 0, 1, 1051, 833]
+[:key_held_player_one, 15, 0, 1, 1052, 834]
+[:key_held_player_one, 15, 0, 1, 1053, 835]
+[:key_held_player_one, 15, 0, 1, 1054, 836]
+[:key_held_player_one, 15, 0, 1, 1055, 837]
+[:key_held_player_one, 15, 0, 1, 1056, 838]
+[:key_held_player_one, 15, 0, 1, 1057, 839]
+[:key_held_player_one, 15, 0, 1, 1058, 840]
+[:key_held_player_one, 15, 0, 1, 1059, 841]
+[:key_held_player_one, 15, 0, 1, 1060, 842]
+[:key_held_player_one, 15, 0, 1, 1061, 843]
+[:key_held_player_one, 15, 0, 1, 1062, 844]
+[:key_held_player_one, 15, 0, 1, 1063, 845]
+[:key_held_player_one, 15, 0, 1, 1064, 846]
+[:key_held_player_one, 15, 0, 1, 1065, 847]
+[:key_held_player_one, 15, 0, 1, 1066, 848]
+[:key_held_player_one, 15, 0, 1, 1067, 849]
+[:key_held_player_one, 15, 0, 1, 1068, 850]
+[:key_held_player_one, 15, 0, 1, 1069, 851]
+[:key_held_player_one, 15, 0, 1, 1070, 852]
+[:key_held_player_one, 15, 0, 1, 1071, 853]
+[:key_held_player_one, 15, 0, 1, 1072, 854]
+[:key_held_player_one, 15, 0, 1, 1073, 855]
+[:key_held_player_one, 15, 0, 1, 1074, 856]
+[:key_held_player_one, 15, 0, 1, 1075, 857]
+[:key_held_player_one, 15, 0, 1, 1076, 858]
+[:key_held_player_one, 15, 0, 1, 1077, 859]
+[:key_held_player_one, 15, 0, 1, 1078, 860]
+[:key_held_player_one, 15, 0, 1, 1079, 861]
+[:key_held_player_one, 15, 0, 1, 1080, 862]
+[:key_held_player_one, 15, 0, 1, 1081, 863]
+[:key_held_player_one, 15, 0, 1, 1082, 864]
+[:key_held_player_one, 15, 0, 1, 1083, 865]
+[:key_held_player_one, 15, 0, 1, 1084, 866]
+[:key_held_player_one, 15, 0, 1, 1085, 867]
+[:key_held_player_one, 15, 0, 1, 1086, 868]
+[:key_held_player_one, 15, 0, 1, 1087, 869]
+[:key_held_player_one, 15, 0, 1, 1088, 870]
+[:key_held_player_one, 15, 0, 1, 1089, 871]
+[:key_held_player_one, 15, 0, 1, 1090, 872]
+[:key_down_player_one, 4, 0, 1, 1091, 873]
+[:key_held_player_one, 15, 0, 1, 1092, 873]
+[:key_down_player_one, 27, 0, 1, 1093, 873]
+[:key_held_player_one, 4, 0, 1, 1094, 874]
+[:key_held_player_one, 15, 0, 1, 1095, 874]
+[:key_held_player_one, 27, 0, 1, 1096, 874]
+[:key_held_player_one, 4, 0, 1, 1097, 875]
+[:key_held_player_one, 15, 0, 1, 1098, 875]
+[:key_held_player_one, 27, 0, 1, 1099, 875]
+[:key_held_player_one, 4, 0, 1, 1100, 876]
+[:key_held_player_one, 15, 0, 1, 1101, 876]
+[:key_held_player_one, 27, 0, 1, 1102, 876]
+[:key_held_player_one, 4, 0, 1, 1103, 877]
+[:key_held_player_one, 15, 0, 1, 1104, 877]
+[:key_held_player_one, 27, 0, 1, 1105, 877]
+[:key_held_player_one, 4, 0, 1, 1106, 878]
+[:key_held_player_one, 15, 0, 1, 1107, 878]
+[:key_held_player_one, 27, 0, 1, 1108, 878]
+[:key_held_player_one, 4, 0, 1, 1109, 879]
+[:key_held_player_one, 15, 0, 1, 1110, 879]
+[:key_held_player_one, 27, 0, 1, 1111, 879]
+[:key_held_player_one, 4, 0, 1, 1112, 880]
+[:key_held_player_one, 15, 0, 1, 1113, 880]
+[:key_held_player_one, 27, 0, 1, 1114, 880]
+[:key_held_player_one, 4, 0, 1, 1115, 881]
+[:key_held_player_one, 15, 0, 1, 1116, 881]
+[:key_held_player_one, 27, 0, 1, 1117, 881]
+[:key_held_player_one, 4, 0, 1, 1118, 882]
+[:key_held_player_one, 15, 0, 1, 1119, 882]
+[:key_held_player_one, 27, 0, 1, 1120, 882]
+[:key_held_player_one, 4, 0, 1, 1121, 883]
+[:key_held_player_one, 15, 0, 1, 1122, 883]
+[:key_held_player_one, 27, 0, 1, 1123, 883]
+[:key_held_player_one, 4, 0, 1, 1124, 884]
+[:key_held_player_one, 15, 0, 1, 1125, 884]
+[:key_held_player_one, 27, 0, 1, 1126, 884]
+[:key_up_player_one, 4, 0, 1, 1127, 885]
+[:key_held_player_one, 15, 0, 1, 1128, 885]
+[:key_up_player_one, 27, 0, 1, 1129, 885]
+[:key_held_player_one, 15, 0, 1, 1130, 886]
+[:key_held_player_one, 15, 0, 1, 1131, 887]
+[:key_held_player_one, 15, 0, 1, 1132, 888]
+[:key_held_player_one, 15, 0, 1, 1133, 889]
+[:key_held_player_one, 15, 0, 1, 1134, 890]
+[:key_held_player_one, 15, 0, 1, 1135, 891]
+[:key_held_player_one, 15, 0, 1, 1136, 892]
+[:key_held_player_one, 15, 0, 1, 1137, 893]
+[:key_held_player_one, 15, 0, 1, 1138, 894]
+[:key_held_player_one, 15, 0, 1, 1139, 895]
+[:key_held_player_one, 15, 0, 1, 1140, 896]
+[:key_held_player_one, 15, 0, 1, 1141, 897]
+[:key_held_player_one, 15, 0, 1, 1142, 898]
+[:key_held_player_one, 15, 0, 1, 1143, 899]
+[:key_held_player_one, 15, 0, 1, 1144, 900]
+[:key_held_player_one, 15, 0, 1, 1145, 901]
+[:key_held_player_one, 15, 0, 1, 1146, 902]
+[:key_held_player_one, 15, 0, 1, 1147, 903]
+[:key_held_player_one, 15, 0, 1, 1148, 904]
+[:key_held_player_one, 15, 0, 1, 1149, 905]
+[:key_held_player_one, 15, 0, 1, 1150, 906]
+[:key_held_player_one, 15, 0, 1, 1151, 907]
+[:key_down_player_one, 4, 0, 1, 1152, 908]
+[:key_held_player_one, 15, 0, 1, 1153, 908]
+[:key_down_player_one, 27, 0, 1, 1154, 908]
+[:key_held_player_one, 4, 0, 1, 1155, 909]
+[:key_held_player_one, 15, 0, 1, 1156, 909]
+[:key_held_player_one, 27, 0, 1, 1157, 909]
+[:key_held_player_one, 4, 0, 1, 1158, 910]
+[:key_held_player_one, 15, 0, 1, 1159, 910]
+[:key_held_player_one, 27, 0, 1, 1160, 910]
+[:key_held_player_one, 4, 0, 1, 1161, 911]
+[:key_held_player_one, 15, 0, 1, 1162, 911]
+[:key_held_player_one, 27, 0, 1, 1163, 911]
+[:key_held_player_one, 4, 0, 1, 1164, 912]
+[:key_held_player_one, 15, 0, 1, 1165, 912]
+[:key_held_player_one, 27, 0, 1, 1166, 912]
+[:key_held_player_one, 4, 0, 1, 1167, 913]
+[:key_held_player_one, 15, 0, 1, 1168, 913]
+[:key_held_player_one, 27, 0, 1, 1169, 913]
+[:key_held_player_one, 4, 0, 1, 1170, 914]
+[:key_held_player_one, 15, 0, 1, 1171, 914]
+[:key_held_player_one, 27, 0, 1, 1172, 914]
+[:key_held_player_one, 4, 0, 1, 1173, 915]
+[:key_held_player_one, 15, 0, 1, 1174, 915]
+[:key_held_player_one, 27, 0, 1, 1175, 915]
+[:key_held_player_one, 4, 0, 1, 1176, 916]
+[:key_held_player_one, 15, 0, 1, 1177, 916]
+[:key_held_player_one, 27, 0, 1, 1178, 916]
+[:key_held_player_one, 4, 0, 1, 1179, 917]
+[:key_held_player_one, 15, 0, 1, 1180, 917]
+[:key_held_player_one, 27, 0, 1, 1181, 917]
+[:key_held_player_one, 4, 0, 1, 1182, 918]
+[:key_held_player_one, 15, 0, 1, 1183, 918]
+[:key_held_player_one, 27, 0, 1, 1184, 918]
+[:key_held_player_one, 4, 0, 1, 1185, 919]
+[:key_held_player_one, 15, 0, 1, 1186, 919]
+[:key_held_player_one, 27, 0, 1, 1187, 919]
+[:key_held_player_one, 4, 0, 1, 1188, 920]
+[:key_held_player_one, 15, 0, 1, 1189, 920]
+[:key_held_player_one, 27, 0, 1, 1190, 920]
+[:key_up_player_one, 4, 0, 1, 1191, 921]
+[:key_held_player_one, 15, 0, 1, 1192, 921]
+[:key_up_player_one, 27, 0, 1, 1193, 921]
+[:key_held_player_one, 15, 0, 1, 1194, 922]
+[:key_held_player_one, 15, 0, 1, 1195, 923]
+[:key_held_player_one, 15, 0, 1, 1196, 924]
+[:key_held_player_one, 15, 0, 1, 1197, 925]
+[:key_held_player_one, 15, 0, 1, 1198, 926]
+[:key_held_player_one, 15, 0, 1, 1199, 927]
+[:key_held_player_one, 15, 0, 1, 1200, 928]
+[:key_held_player_one, 15, 0, 1, 1201, 929]
+[:key_held_player_one, 15, 0, 1, 1202, 930]
+[:key_held_player_one, 15, 0, 1, 1203, 931]
+[:key_held_player_one, 15, 0, 1, 1204, 932]
+[:key_held_player_one, 15, 0, 1, 1205, 933]
+[:key_held_player_one, 15, 0, 1, 1206, 934]
+[:key_held_player_one, 15, 0, 1, 1207, 935]
+[:key_held_player_one, 15, 0, 1, 1208, 936]
+[:key_held_player_one, 15, 0, 1, 1209, 937]
+[:key_held_player_one, 15, 0, 1, 1210, 938]
+[:key_held_player_one, 15, 0, 1, 1211, 939]
+[:key_held_player_one, 15, 0, 1, 1212, 940]
+[:key_held_player_one, 15, 0, 1, 1213, 941]
+[:key_held_player_one, 15, 0, 1, 1214, 942]
+[:key_held_player_one, 15, 0, 1, 1215, 943]
+[:key_held_player_one, 15, 0, 1, 1216, 944]
+[:key_held_player_one, 15, 0, 1, 1217, 945]
+[:key_held_player_one, 15, 0, 1, 1218, 946]
+[:key_held_player_one, 15, 0, 1, 1219, 947]
+[:key_held_player_one, 15, 0, 1, 1220, 948]
+[:key_held_player_one, 15, 0, 1, 1221, 949]
+[:key_held_player_one, 15, 0, 1, 1222, 950]
+[:key_held_player_one, 15, 0, 1, 1223, 951]
+[:key_held_player_one, 15, 0, 1, 1224, 952]
+[:key_held_player_one, 15, 0, 1, 1225, 953]
+[:key_held_player_one, 15, 0, 1, 1226, 954]
+[:key_held_player_one, 15, 0, 1, 1227, 955]
+[:key_held_player_one, 15, 0, 1, 1228, 956]
+[:key_held_player_one, 15, 0, 1, 1229, 957]
+[:key_held_player_one, 15, 0, 1, 1230, 958]
+[:key_held_player_one, 15, 0, 1, 1231, 959]
+[:key_held_player_one, 15, 0, 1, 1232, 960]
+[:key_held_player_one, 15, 0, 1, 1233, 961]
+[:key_held_player_one, 15, 0, 1, 1234, 962]
+[:key_held_player_one, 15, 0, 1, 1235, 963]
+[:key_held_player_one, 15, 0, 1, 1236, 964]
+[:key_held_player_one, 15, 0, 1, 1237, 965]
+[:key_held_player_one, 15, 0, 1, 1238, 966]
+[:key_held_player_one, 15, 0, 1, 1239, 967]
+[:key_held_player_one, 15, 0, 1, 1240, 968]
+[:key_held_player_one, 15, 0, 1, 1241, 969]
+[:key_held_player_one, 15, 0, 1, 1242, 970]
+[:key_held_player_one, 15, 0, 1, 1243, 971]
+[:key_held_player_one, 15, 0, 1, 1244, 972]
+[:key_held_player_one, 15, 0, 1, 1245, 973]
+[:key_held_player_one, 15, 0, 1, 1246, 974]
+[:key_held_player_one, 15, 0, 1, 1247, 975]
+[:key_held_player_one, 15, 0, 1, 1248, 976]
+[:key_held_player_one, 15, 0, 1, 1249, 977]
+[:key_held_player_one, 15, 0, 1, 1250, 978]
+[:key_held_player_one, 15, 0, 1, 1251, 979]
+[:key_held_player_one, 15, 0, 1, 1252, 980]
+[:key_held_player_one, 15, 0, 1, 1253, 981]
+[:key_held_player_one, 15, 0, 1, 1254, 982]
+[:key_held_player_one, 15, 0, 1, 1255, 983]
+[:key_held_player_one, 15, 0, 1, 1256, 984]
+[:key_held_player_one, 15, 0, 1, 1257, 985]
+[:key_held_player_one, 15, 0, 1, 1258, 986]
+[:key_held_player_one, 15, 0, 1, 1259, 987]
+[:key_held_player_one, 15, 0, 1, 1260, 988]
+[:key_held_player_one, 15, 0, 1, 1261, 989]
+[:key_held_player_one, 15, 0, 1, 1262, 990]
+[:key_held_player_one, 15, 0, 1, 1263, 991]
+[:key_held_player_one, 15, 0, 1, 1264, 992]
+[:key_held_player_one, 15, 0, 1, 1265, 993]
+[:key_held_player_one, 15, 0, 1, 1266, 994]
+[:key_held_player_one, 15, 0, 1, 1267, 995]
+[:key_held_player_one, 15, 0, 1, 1268, 996]
+[:key_held_player_one, 15, 0, 1, 1269, 997]
+[:key_held_player_one, 15, 0, 1, 1270, 998]
+[:key_held_player_one, 15, 0, 1, 1271, 999]
+[:key_held_player_one, 15, 0, 1, 1272, 1000]
+[:key_held_player_one, 15, 0, 1, 1273, 1001]
+[:key_held_player_one, 15, 0, 1, 1274, 1002]
+[:key_held_player_one, 15, 0, 1, 1275, 1003]
+[:key_held_player_one, 15, 0, 1, 1276, 1004]
+[:key_held_player_one, 15, 0, 1, 1277, 1005]
+[:key_held_player_one, 15, 0, 1, 1278, 1006]
+[:key_held_player_one, 15, 0, 1, 1279, 1007]
+[:key_held_player_one, 15, 0, 1, 1280, 1008]
+[:key_held_player_one, 15, 0, 1, 1281, 1009]
+[:key_held_player_one, 15, 0, 1, 1282, 1010]
+[:key_held_player_one, 15, 0, 1, 1283, 1011]
+[:key_held_player_one, 15, 0, 1, 1284, 1012]
+[:key_held_player_one, 15, 0, 1, 1285, 1013]
+[:key_held_player_one, 15, 0, 1, 1286, 1014]
+[:key_held_player_one, 15, 0, 1, 1287, 1015]
+[:key_held_player_one, 15, 0, 1, 1288, 1016]
+[:key_held_player_one, 15, 0, 1, 1289, 1017]
+[:key_held_player_one, 15, 0, 1, 1290, 1018]
+[:key_held_player_one, 15, 0, 1, 1291, 1019]
+[:key_held_player_one, 15, 0, 1, 1292, 1020]
+[:key_held_player_one, 15, 0, 1, 1293, 1021]
+[:key_held_player_one, 15, 0, 1, 1294, 1022]
+[:key_held_player_one, 15, 0, 1, 1295, 1023]
+[:key_held_player_one, 15, 0, 1, 1296, 1024]
+[:key_held_player_one, 15, 0, 1, 1297, 1025]
+[:key_held_player_one, 15, 0, 1, 1298, 1026]
+[:key_held_player_one, 15, 0, 1, 1299, 1027]
+[:key_held_player_one, 15, 0, 1, 1300, 1028]
+[:key_held_player_one, 15, 0, 1, 1301, 1029]
+[:key_held_player_one, 15, 0, 1, 1302, 1030]
+[:key_held_player_one, 15, 0, 1, 1303, 1031]
+[:key_held_player_one, 15, 0, 1, 1304, 1032]
+[:key_held_player_one, 15, 0, 1, 1305, 1033]
+[:key_held_player_one, 15, 0, 1, 1306, 1034]
+[:key_held_player_one, 15, 0, 1, 1307, 1035]
+[:key_held_player_one, 15, 0, 1, 1308, 1036]
+[:key_held_player_one, 15, 0, 1, 1309, 1037]
+[:key_held_player_one, 15, 0, 1, 1310, 1038]
+[:key_held_player_one, 15, 0, 1, 1311, 1039]
+[:key_held_player_one, 15, 0, 1, 1312, 1040]
+[:key_held_player_one, 15, 0, 1, 1313, 1041]
+[:key_held_player_one, 15, 0, 1, 1314, 1042]
+[:key_held_player_one, 15, 0, 1, 1315, 1043]
+[:key_held_player_one, 15, 0, 1, 1316, 1044]
+[:key_held_player_one, 15, 0, 1, 1317, 1045]
+[:key_held_player_one, 15, 0, 1, 1318, 1046]
+[:key_held_player_one, 15, 0, 1, 1319, 1047]
+[:key_held_player_one, 15, 0, 1, 1320, 1048]
+[:key_held_player_one, 15, 0, 1, 1321, 1049]
+[:key_held_player_one, 15, 0, 1, 1322, 1050]
+[:key_held_player_one, 15, 0, 1, 1323, 1051]
+[:key_held_player_one, 15, 0, 1, 1324, 1052]
+[:key_held_player_one, 15, 0, 1, 1325, 1053]
+[:key_held_player_one, 15, 0, 1, 1326, 1054]
+[:key_held_player_one, 15, 0, 1, 1327, 1055]
+[:key_held_player_one, 15, 0, 1, 1328, 1056]
+[:key_held_player_one, 15, 0, 1, 1329, 1057]
+[:key_held_player_one, 15, 0, 1, 1330, 1058]
+[:key_held_player_one, 15, 0, 1, 1331, 1059]
+[:key_held_player_one, 15, 0, 1, 1332, 1060]
+[:key_held_player_one, 15, 0, 1, 1333, 1061]
+[:key_held_player_one, 15, 0, 1, 1334, 1062]
+[:key_held_player_one, 15, 0, 1, 1335, 1063]
+[:key_down_player_one, 3, 0, 1, 1336, 1064]
+[:key_held_player_one, 15, 0, 1, 1337, 1064]
+[:key_down_player_one, 26, 0, 1, 1338, 1064]
+[:key_held_player_one, 3, 0, 1, 1339, 1065]
+[:key_held_player_one, 15, 0, 1, 1340, 1065]
+[:key_held_player_one, 26, 0, 1, 1341, 1065]
+[:key_held_player_one, 3, 0, 1, 1342, 1066]
+[:key_held_player_one, 15, 0, 1, 1343, 1066]
+[:key_held_player_one, 26, 0, 1, 1344, 1066]
+[:key_held_player_one, 3, 0, 1, 1345, 1067]
+[:key_held_player_one, 15, 0, 1, 1346, 1067]
+[:key_held_player_one, 26, 0, 1, 1347, 1067]
+[:key_held_player_one, 3, 0, 1, 1348, 1068]
+[:key_held_player_one, 15, 0, 1, 1349, 1068]
+[:key_held_player_one, 26, 0, 1, 1350, 1068]
+[:key_held_player_one, 3, 0, 1, 1351, 1069]
+[:key_held_player_one, 15, 0, 1, 1352, 1069]
+[:key_held_player_one, 26, 0, 1, 1353, 1069]
+[:key_held_player_one, 3, 0, 1, 1354, 1070]
+[:key_held_player_one, 15, 0, 1, 1355, 1070]
+[:key_held_player_one, 26, 0, 1, 1356, 1070]
+[:key_held_player_one, 3, 0, 1, 1357, 1071]
+[:key_held_player_one, 15, 0, 1, 1358, 1071]
+[:key_held_player_one, 26, 0, 1, 1359, 1071]
+[:key_held_player_one, 3, 0, 1, 1360, 1072]
+[:key_held_player_one, 15, 0, 1, 1361, 1072]
+[:key_held_player_one, 26, 0, 1, 1362, 1072]
+[:key_held_player_one, 3, 0, 1, 1363, 1073]
+[:key_held_player_one, 15, 0, 1, 1364, 1073]
+[:key_held_player_one, 26, 0, 1, 1365, 1073]
+[:key_held_player_one, 3, 0, 1, 1366, 1074]
+[:key_held_player_one, 15, 0, 1, 1367, 1074]
+[:key_held_player_one, 26, 0, 1, 1368, 1074]
+[:key_held_player_one, 3, 0, 1, 1369, 1075]
+[:key_held_player_one, 15, 0, 1, 1370, 1075]
+[:key_held_player_one, 26, 0, 1, 1371, 1075]
+[:key_held_player_one, 3, 0, 1, 1372, 1076]
+[:key_held_player_one, 15, 0, 1, 1373, 1076]
+[:key_held_player_one, 26, 0, 1, 1374, 1076]
+[:key_held_player_one, 3, 0, 1, 1375, 1077]
+[:key_held_player_one, 15, 0, 1, 1376, 1077]
+[:key_held_player_one, 26, 0, 1, 1377, 1077]
+[:key_held_player_one, 3, 0, 1, 1378, 1078]
+[:key_held_player_one, 15, 0, 1, 1379, 1078]
+[:key_held_player_one, 26, 0, 1, 1380, 1078]
+[:key_held_player_one, 3, 0, 1, 1381, 1079]
+[:key_held_player_one, 15, 0, 1, 1382, 1079]
+[:key_held_player_one, 26, 0, 1, 1383, 1079]
+[:key_held_player_one, 3, 0, 1, 1384, 1080]
+[:key_held_player_one, 15, 0, 1, 1385, 1080]
+[:key_held_player_one, 26, 0, 1, 1386, 1080]
+[:key_held_player_one, 3, 0, 1, 1387, 1081]
+[:key_held_player_one, 15, 0, 1, 1388, 1081]
+[:key_held_player_one, 26, 0, 1, 1389, 1081]
+[:key_held_player_one, 3, 0, 1, 1390, 1082]
+[:key_held_player_one, 15, 0, 1, 1391, 1082]
+[:key_held_player_one, 26, 0, 1, 1392, 1082]
+[:key_held_player_one, 3, 0, 1, 1393, 1083]
+[:key_held_player_one, 15, 0, 1, 1394, 1083]
+[:key_held_player_one, 26, 0, 1, 1395, 1083]
+[:key_held_player_one, 3, 0, 1, 1396, 1084]
+[:key_held_player_one, 15, 0, 1, 1397, 1084]
+[:key_held_player_one, 26, 0, 1, 1398, 1084]
+[:key_held_player_one, 3, 0, 1, 1399, 1085]
+[:key_held_player_one, 15, 0, 1, 1400, 1085]
+[:key_held_player_one, 26, 0, 1, 1401, 1085]
+[:key_held_player_one, 3, 0, 1, 1402, 1086]
+[:key_held_player_one, 15, 0, 1, 1403, 1086]
+[:key_held_player_one, 26, 0, 1, 1404, 1086]
+[:key_held_player_one, 3, 0, 1, 1405, 1087]
+[:key_held_player_one, 15, 0, 1, 1406, 1087]
+[:key_held_player_one, 26, 0, 1, 1407, 1087]
+[:key_held_player_one, 3, 0, 1, 1408, 1088]
+[:key_held_player_one, 15, 0, 1, 1409, 1088]
+[:key_held_player_one, 26, 0, 1, 1410, 1088]
+[:key_held_player_one, 3, 0, 1, 1411, 1089]
+[:key_held_player_one, 15, 0, 1, 1412, 1089]
+[:key_held_player_one, 26, 0, 1, 1413, 1089]
+[:key_held_player_one, 3, 0, 1, 1414, 1090]
+[:key_held_player_one, 15, 0, 1, 1415, 1090]
+[:key_held_player_one, 26, 0, 1, 1416, 1090]
+[:key_held_player_one, 3, 0, 1, 1417, 1091]
+[:key_held_player_one, 15, 0, 1, 1418, 1091]
+[:key_held_player_one, 26, 0, 1, 1419, 1091]
+[:key_held_player_one, 3, 0, 1, 1420, 1092]
+[:key_held_player_one, 15, 0, 1, 1421, 1092]
+[:key_held_player_one, 26, 0, 1, 1422, 1092]
+[:key_held_player_one, 3, 0, 1, 1423, 1093]
+[:key_held_player_one, 15, 0, 1, 1424, 1093]
+[:key_held_player_one, 26, 0, 1, 1425, 1093]
+[:key_held_player_one, 3, 0, 1, 1426, 1094]
+[:key_held_player_one, 15, 0, 1, 1427, 1094]
+[:key_held_player_one, 26, 0, 1, 1428, 1094]
+[:key_held_player_one, 3, 0, 1, 1429, 1095]
+[:key_held_player_one, 15, 0, 1, 1430, 1095]
+[:key_held_player_one, 26, 0, 1, 1431, 1095]
+[:key_held_player_one, 3, 0, 1, 1432, 1096]
+[:key_held_player_one, 15, 0, 1, 1433, 1096]
+[:key_held_player_one, 26, 0, 1, 1434, 1096]
+[:key_held_player_one, 3, 0, 1, 1435, 1097]
+[:key_held_player_one, 15, 0, 1, 1436, 1097]
+[:key_held_player_one, 26, 0, 1, 1437, 1097]
+[:key_held_player_one, 3, 0, 1, 1438, 1098]
+[:key_held_player_one, 15, 0, 1, 1439, 1098]
+[:key_held_player_one, 26, 0, 1, 1440, 1098]
+[:key_held_player_one, 3, 0, 1, 1441, 1099]
+[:key_held_player_one, 15, 0, 1, 1442, 1099]
+[:key_held_player_one, 26, 0, 1, 1443, 1099]
+[:key_held_player_one, 3, 0, 1, 1444, 1100]
+[:key_held_player_one, 15, 0, 1, 1445, 1100]
+[:key_held_player_one, 26, 0, 1, 1446, 1100]
+[:key_held_player_one, 3, 0, 1, 1447, 1101]
+[:key_held_player_one, 15, 0, 1, 1448, 1101]
+[:key_held_player_one, 26, 0, 1, 1449, 1101]
+[:key_held_player_one, 3, 0, 1, 1450, 1102]
+[:key_held_player_one, 15, 0, 1, 1451, 1102]
+[:key_held_player_one, 26, 0, 1, 1452, 1102]
+[:key_held_player_one, 3, 0, 1, 1453, 1103]
+[:key_held_player_one, 15, 0, 1, 1454, 1103]
+[:key_held_player_one, 26, 0, 1, 1455, 1103]
+[:key_held_player_one, 3, 0, 1, 1456, 1104]
+[:key_up_player_one, 15, 0, 1, 1457, 1104]
+[:key_held_player_one, 26, 0, 1, 1458, 1104]
+[:key_held_player_one, 3, 0, 1, 1459, 1105]
+[:key_held_player_one, 26, 0, 1, 1460, 1105]
+[:key_held_player_one, 3, 0, 1, 1461, 1106]
+[:key_held_player_one, 26, 0, 1, 1462, 1106]
+[:key_up_player_one, 3, 0, 1, 1463, 1107]
+[:key_up_player_one, 26, 0, 1, 1464, 1107]
+[:key_down_raw, 1073742051, 1024, 2, 1465, 1197]
+[:key_down_raw, 113, 1024, 2, 1466, 1197]
+[:key_up_raw, 113, 1024, 2, 1467, 1197]
+[:key_up_raw, 1073742051, 0, 2, 1468, 1197]
diff --git a/samples/99_genre_arcade/solar_system/sounds/bg.ogg b/samples/99_genre_arcade/solar_system/sounds/bg.ogg
new file mode 100644
index 0000000..8a02a75
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sounds/bg.ogg
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/earth.png b/samples/99_genre_arcade/solar_system/sprites/earth.png
new file mode 100644
index 0000000..294f3aa
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/earth.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/jupiter.png b/samples/99_genre_arcade/solar_system/sprites/jupiter.png
new file mode 100644
index 0000000..b128b0e
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/jupiter.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/mars.png b/samples/99_genre_arcade/solar_system/sprites/mars.png
new file mode 100644
index 0000000..5d0f8ed
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/mars.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/mercury.png b/samples/99_genre_arcade/solar_system/sprites/mercury.png
new file mode 100644
index 0000000..3ace04d
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/mercury.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/neptune.png b/samples/99_genre_arcade/solar_system/sprites/neptune.png
new file mode 100644
index 0000000..1f22686
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/neptune.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/orbit.png b/samples/99_genre_arcade/solar_system/sprites/orbit.png
new file mode 100644
index 0000000..39d0891
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/orbit.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/particle.png b/samples/99_genre_arcade/solar_system/sprites/particle.png
new file mode 100644
index 0000000..6143f2f
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/particle.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/pluto.png b/samples/99_genre_arcade/solar_system/sprites/pluto.png
new file mode 100644
index 0000000..2d9916c
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/pluto.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/saturn.png b/samples/99_genre_arcade/solar_system/sprites/saturn.png
new file mode 100644
index 0000000..8ca95a8
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/saturn.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/ship.png b/samples/99_genre_arcade/solar_system/sprites/ship.png
new file mode 100644
index 0000000..3ef5f0b
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/ship.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/star.png b/samples/99_genre_arcade/solar_system/sprites/star.png
new file mode 100644
index 0000000..e0ee0f9
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/star.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/sun.png b/samples/99_genre_arcade/solar_system/sprites/sun.png
new file mode 100644
index 0000000..9ee3cba
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/sun.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/uranus.png b/samples/99_genre_arcade/solar_system/sprites/uranus.png
new file mode 100644
index 0000000..bb9c206
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/uranus.png
Binary files differ
diff --git a/samples/99_genre_arcade/solar_system/sprites/venus.png b/samples/99_genre_arcade/solar_system/sprites/venus.png
new file mode 100644
index 0000000..28ac8e4
--- /dev/null
+++ b/samples/99_genre_arcade/solar_system/sprites/venus.png
Binary files differ