enrohk
Published © GPL3+

Monophonic 8Bits Drum Sequencer

A very simple Drum sequencer using a 16x2 LCD screen and PCM library. With the goal to make something similar to a real drum sequencer.

BeginnerFull instructions provided184
Monophonic 8Bits Drum Sequencer

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
PCM Library works on most boards but I can't get working on my Elegoo Mega256 Board so I Switch to UNO
×1
Alphanumeric LCD, 16 x 2
Alphanumeric LCD, 16 x 2
×1
Tactile Switch, Top Actuated
Tactile Switch, Top Actuated
×6
Rotary Potentiometer, 10 kohm
Rotary Potentiometer, 10 kohm
×2
Speaker: 0.25W, 8 ohms
Speaker: 0.25W, 8 ohms
×1
Jumper wires (generic)
Jumper wires (generic)
×1
Solderless Breadboard Full Size
Solderless Breadboard Full Size
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Fritzing diagram

Full schematic of the project

Code

stepdrum.ino

Arduino
Remember u need PCM and LCD library
/*
  "NotMozzi NotMega" Step Sequencer 0.7
  Created By Salvador Huerta "Enrohk"
    19/10/2021 Created
    05/04/2022 Last updated  
  Changelog :
    0.4 - Finally made it working but no as expected
    0.5 - Removed mozzi for simple PCM library
    0.6 - Reworked some things to fit into UNO board
          PCM library don't work for my Elegoo Mega256 board
    0.7 - Added 4 more steps so it can do 4/4 and clean the code a bit
    0.8 - Changed the two tempo buttons into a single pot and
          added multiple "banks" of steps
    0.9 - More friendly display and "bank" mode
    1.0 - Cleaned code, added more options
    1.1 - Reworked the buttons and made simpler

  Check the PCM library info on how to convert samples at :
  http://highlowtech.org/?p=1963
*/

//include the PCM and LCD library
#include <PCM.h>
#include <LiquidCrystal.h>

//SAMPLES
// 808
const unsigned char kick[] PROGMEM = {
  126, 141, 183, 212, 238, 255, 255, 255, 255, 255, 255, 255, 255, 237, 216, 196, 174, 153, 132, 111, 90, 69, 50, 31, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 23, 39, 53, 67, 80, 92, 103, 114, 124, 134, 144, 153, 162, 171, 179, 188, 196, 203, 211, 218, 224, 231, 237, 243, 249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 241, 233, 224, 215, 206, 196, 185, 174, 163, 152, 140, 128, 116, 104, 91, 79, 67, 54, 42, 30, 18, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 15, 22, 30, 38, 46, 53, 61, 69, 78, 86, 94, 102, 111, 119, 128, 136, 144, 152, 160, 168, 176, 184, 192, 199, 206, 213, 220, 227, 233, 240, 246, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 247, 240, 233, 226, 218, 209, 200, 191, 181, 171, 161, 150, 140, 129, 118, 107, 96, 84, 73, 62, 52, 41, 31, 20, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 24, 30, 37, 44, 52, 59, 66, 73, 81, 88, 96, 103, 110, 118, 125, 133, 140, 148, 155, 162, 169, 176, 183, 190, 197, 203, 210, 216, 222, 228, 234, 240, 246, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 246, 241, 235, 229, 222, 216, 209, 201, 193, 185, 177, 168, 160, 150, 141, 132, 122, 112, 102, 93, 83, 73, 63, 53, 44, 35, 26, 17, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 13, 19, 25, 31, 37, 43, 50, 56, 63, 70, 76, 83, 90, 97, 104, 110, 117, 124, 131, 138, 145, 152, 159, 165, 172, 178, 185, 191, 198, 204, 210, 216, 221, 227, 233, 238, 243, 248, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 250, 245, 240, 235, 230, 225, 219, 213, 207, 201, 194, 188, 180, 173, 166, 158, 150, 141, 133, 125, 116, 107, 98, 90, 81, 72, 64, 55, 47, 39, 31, 23, 15, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 13, 18, 24, 30, 35, 41, 47, 54, 60, 66, 73, 79, 86, 92, 99, 105, 112, 119, 125, 132, 139, 145, 152, 158, 165, 171, 177, 183, 189, 195, 201, 207, 212, 218, 223, 228, 233, 238, 243, 247, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 250, 245, 241, 236, 231, 226, 221, 216, 210, 204, 199, 193, 186, 180, 173, 166, 159, 152, 144, 137, 129, 121, 113, 105, 97, 89, 81, 73, 65, 57, 49, 41, 34, 27, 20, 13, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 10, 15, 20, 25, 31, 36, 42, 47, 53, 59, 65, 71, 77, 83, 90, 96, 102, 108, 115, 121, 127, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 193, 199, 204, 210, 215, 220, 225, 229, 234, 238, 243, 247, 250, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 250, 246, 242, 238, 234, 229, 225, 220, 215, 210, 205, 199, 194, 188, 182, 176, 170, 164, 157, 151, 144, 137, 130, 123, 116, 108, 101, 93, 86, 79, 71, 64, 57, 50, 43, 37, 30, 24, 18, 12, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 10, 14, 19, 23, 28, 33, 38, 43, 48, 54, 59, 65, 70, 76, 82, 87, 93, 99, 105, 111, 117, 123, 129, 135, 141, 147, 152, 158, 164, 170, 175, 181, 186, 192, 197, 202, 207, 212, 217, 221, 226, 230, 234, 238, 242, 245, 249, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 248, 245, 241, 238, 234, 230, 225, 221, 217, 212, 207, 202, 197, 192, 187, 181, 176, 170, 164, 159, 152, 146, 140, 133, 127, 120, 114, 107, 100, 93, 86, 79, 73, 66, 59, 53, 46, 40, 34, 28, 23, 18, 13, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 18, 22, 26, 30, 35, 40, 44, 49, 54, 59, 65, 70, 75, 81, 86, 92, 97, 103, 109, 114, 120, 126, 131, 137, 143, 148, 154, 159, 165, 170, 175, 181, 186, 191, 196, 201, 205, 210, 214, 219, 223, 227, 231, 234, 238, 241, 244, 247, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 249, 246, 243, 240, 237, 233, 229, 226, 221, 217, 213, 209, 204, 199, 195, 190, 185, 180, 175, 169, 164, 158, 153, 147, 141, 135, 129, 123, 117, 110, 104, 98, 91, 85, 79, 73, 66, 60, 54, 49, 43, 38, 32, 27, 22, 18, 14, 10, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 8, 11, 14, 18, 21, 25, 29, 33, 37, 42, 46, 51, 56, 60, 65, 70, 75, 80, 86, 91, 96, 102, 107, 112, 118, 123, 129, 134, 139, 145, 150, 155, 161, 166, 171, 176, 181, 186, 191, 196, 200, 205, 209, 213, 217, 221, 225, 229, 232, 235, 238, 241, 244, 247, 249, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 251, 249, 246, 244, 241, 238, 235, 232, 228, 225, 221, 217, 213, 209, 205, 201, 196, 192, 187, 182, 177, 172, 167, 162, 157, 152, 146, 141, 135, 129, 124, 118, 112, 106, 100, 94, 88, 82, 77, 71, 65, 60, 54, 49, 44, 39, 34, 30, 25, 21, 18, 14, 11, 8, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 5, 7, 10, 13, 16, 19, 22, 26, 29, 33, 37, 41, 45, 49, 54, 58, 63, 67, 72, 77, 82, 87, 92, 97, 102, 107, 112, 117, 122, 127, 132, 137, 143, 148, 153, 158, 163, 167, 172, 177, 181, 186, 190, 195, 199, 203, 207, 211, 215, 218, 222, 225, 228, 231, 234, 237, 239, 242, 244, 246, 248, 249, 251, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 254, 253, 252, 251, 249, 248, 246, 244, 242, 239, 237, 234, 231, 228, 225, 222, 218, 215, 211, 207, 204, 200, 195, 191, 187, 182, 178, 173, 169, 164, 159, 154, 149, 144, 139, 134, 129, 123, 118, 112, 107, 101, 96, 91, 85, 80, 74, 69, 64, 59, 54, 49, 45, 41, 36, 32, 29, 25, 22, 19, 16, 13, 11, 9, 7, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 15, 17, 20, 22, 25, 28, 31, 35, 38, 42, 46, 49, 53, 57, 62, 66, 70, 75, 79, 84, 88, 93, 98, 102, 107, 112, 117, 122, 127, 131, 136, 141, 146, 151, 155, 160, 165, 169, 174, 178, 183, 187, 191, 195, 199, 203, 207, 210, 214, 217, 220, 223, 226, 229, 231, 234, 236, 238, 240, 242, 244, 245, 246, 247, 248, 249, 249, 249, 249, 249, 249, 249, 248, 247, 246, 245, 243, 242, 240, 238, 236, 234, 231, 229, 226, 223, 220, 217, 214, 210, 207, 203, 199, 195, 191, 187, 183, 179, 175, 170, 166, 161, 157, 152, 147, 143, 138, 133, 128, 123, 118, 113, 108, 103, 98, 93, 88, 83, 78, 73, 68, 63, 59, 54, 50, 46, 42, 38, 34, 31, 28, 25, 22, 20, 17, 15, 13, 11, 10, 9, 7, 6, 6, 5, 5, 5, 5, 5, 5, 6, 6, 7, 8, 10, 11, 13, 15, 17, 19, 21, 24, 26, 29, 32, 35, 38, 42, 45, 49, 52, 56, 60, 64, 68, 72, 77, 81, 86, 90, 95, 99, 104, 108, 113, 118, 123, 127, 132, 137, 141, 146, 151, 155, 160, 164, 168, 173, 177, 181, 185, 189, 193, 197, 201, 204, 208, 211, 214, 217, 220, 223, 225, 228, 230, 232, 234, 236, 238, 239, 241, 242, 243, 244, 244, 245, 245, 245, 245, 245, 245, 244, 243, 242, 241, 240, 238, 237, 235, 233, 231, 228, 226, 223, 220, 218, 214, 211, 208, 205, 201, 197, 194, 190, 186, 182, 177, 173, 169, 165, 160, 156, 151, 147, 142, 137, 133, 128, 123, 118, 113, 109, 104, 99, 94, 89, 85, 80, 75, 71, 66, 62, 58, 54, 50, 46, 43, 39, 36, 33, 30, 27, 25, 22, 20, 18, 17, 15, 14, 13, 12, 11, 10, 10, 10, 10, 10, 10, 11, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 27, 29, 32, 35, 38, 41, 44, 47, 51, 54, 58, 61, 65, 69, 73, 77, 81, 85, 90, 94, 98, 102, 107, 111, 116, 120, 125, 129, 134, 138, 142, 147, 151, 155, 160, 164, 168, 172, 176, 180, 184, 188, 191, 195, 198, 202, 205, 208, 211, 214, 216, 219, 221, 224, 226, 228, 230, 231, 233, 234, 235, 236, 237, 238, 238, 239, 239, 239, 239, 238, 238, 237, 236, 235, 234, 232, 231, 229, 227, 225, 223, 221, 219, 216, 213, 211, 208, 205, 201, 198, 195, 191, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 147, 143, 139, 134, 130, 126, 121, 117, 112, 108, 103, 99, 94, 90, 86, 81, 77, 73, 69, 65, 61, 57, 54, 50, 47, 44, 41, 38, 35, 33, 31, 28, 27, 25, 23, 22, 20, 19, 18, 18, 17, 17, 16, 16, 16, 17, 17, 18, 18, 19, 20, 21, 23, 24, 26, 28, 30, 32, 34, 37, 39, 42, 45, 48, 51, 54, 57, 61, 64, 68, 72, 75, 79, 83, 87, 91, 95, 99, 103, 108, 112, 116, 120, 125, 129, 133, 137, 142, 146, 150, 154, 158, 162, 166, 170, 174, 177, 181, 185, 188, 192, 195, 198, 201, 204, 207, 210, 212, 215, 217, 219, 221, 223, 225, 227, 228, 229, 230, 231, 232, 233, 233, 234, 234, 234, 234, 234, 233, 233, 232, 231, 230, 228, 227, 225, 224, 222, 220, 218, 215, 213, 210, 208, 205, 202, 199, 196, 192, 189, 186, 182, 178, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 126, 122, 118, 114, 109, 105, 101, 97, 93, 88, 84, 80, 76, 73, 69, 65, 62, 58, 55, 52, 49, 46, 44, 41, 39, 37, 35, 33, 31, 29, 28, 27, 26, 25, 24, 23, 23, 23, 23, 23, 23, 23, 24, 24, 25, 26, 27, 28, 30, 31, 33, 35, 37, 39, 41, 44, 46, 49, 51, 54, 57, 60, 63, 66, 70, 73, 77, 80, 84, 88, 91, 95, 99, 103, 107, 111, 115, 119, 123, 127, 131, 135, 139, 143, 147, 151, 155, 159, 162, 166, 170, 173, 177, 180, 184, 187, 190, 193, 196, 199, 202, 204, 207, 209, 212, 214, 216, 218, 219, 221, 222, 224, 225, 226, 227, 227, 228, 228, 228, 229, 228, 228, 228, 227, 227, 226, 225, 224, 223, 221, 220, 218, 216, 214, 212, 210, 208, 205, 203, 200, 197, 194, 191, 188, 185, 182, 178, 175, 171, 168, 164, 160, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 94, 90, 86, 82, 79, 75, 71, 68, 65, 62, 59, 56, 53, 50, 48, 45, 43, 41, 39, 37, 35, 34, 32, 31, 30, 29, 29, 28, 27, 27, 27, 27, 27, 28, 28, 29, 29, 30, 31, 33, 34, 36, 37, 39, 41, 43, 45, 47, 50, 52, 55, 58, 60, 63, 66, 70, 73, 76, 79, 83, 86, 90, 93, 97, 101, 104, 108, 112, 116, 119, 123, 127, 131, 135, 138, 142, 146, 150, 153, 157, 161, 164, 168, 171, 174, 178, 181, 184, 187, 190, 193, 196, 198, 201, 203, 206, 208, 210, 212, 214, 215, 217, 218, 219, 221, 221, 222, 223, 224, 224, 224, 224, 224, 224, 224, 223, 222, 222, 221, 220, 218, 217, 216, 214, 212, 210, 208, 206, 204, 202, 199, 197, 194, 191, 188, 185, 182, 179, 176, 173, 169, 166, 162, 159, 155, 152, 148, 145, 141, 137, 133, 130, 126, 122, 118, 115, 111, 107, 103, 100, 96, 93, 89, 85, 82, 79, 75, 72, 69, 66, 63, 60, 58, 55, 53, 51, 48, 46, 45, 43, 41, 40, 39, 37, 36, 35, 35, 34, 34, 33, 33, 33, 33, 34, 34, 35, 35, 36, 37, 38, 39, 41, 42, 44, 46, 48, 50, 52, 54, 56, 59, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 92, 95, 98, 102, 105, 109, 112, 116, 120, 123, 127, 130, 134, 138, 141, 145, 148, 152, 155, 159, 162, 165, 169, 172, 175, 178, 181, 184, 187, 189, 192, 194, 197, 199, 201, 203, 205, 207, 209, 211, 212, 213, 215, 216, 217, 218, 218, 219, 219, 219, 220, 220, 219, 219, 219, 218, 217, 216, 215, 214, 213, 212, 210, 209, 207, 205, 203, 201, 199, 196, 194, 191, 189, 186, 183, 180, 177, 174, 171, 168, 165, 161, 158, 155, 151, 148, 144, 141, 137, 134, 130, 126, 123, 119, 116, 112, 109, 105, 102, 98, 95, 92, 88, 85, 82, 79, 76, 73, 70, 67, 65, 62, 60, 57, 55, 53, 51, 49, 48, 46, 45, 44, 42, 41, 40, 40, 39, 38, 38, 38, 38, 38, 38, 38, 39, 39, 40, 41, 42, 43, 44, 46, 47, 49, 51, 52, 54, 56, 59, 61, 63, 66, 68, 71, 74, 76, 79, 82, 85, 88, 92, 95, 98, 101, 105, 108, 111, 115, 118, 122, 125, 128, 132, 135, 139, 142, 145, 149, 152, 155, 159, 162, 165, 168, 171, 174, 177, 179, 182, 185, 187, 190, 192, 194, 196, 198, 200, 202, 204, 205, 207, 208, 209, 210, 211, 212, 213, 213, 214, 214, 214, 214, 214, 214, 214, 213, 213, 212, 211, 210, 209, 208, 206, 205, 203, 202, 200, 198, 196, 194, 191, 189, 187, 184, 181, 179, 176, 173, 170, 167, 164, 161, 158, 155, 152, 148, 145, 142, 138, 135, 132, 128, 125, 121, 118, 115, 111, 108, 105, 101, 98, 95, 92, 89, 86, 83, 80, 77, 74, 72, 69, 67, 64, 62, 60, 58, 56, 54, 53, 51, 50, 48, 47, 46, 45, 44, 44, 43, 43, 42, 42, 42, 42, 42, 43, 43, 44, 44, 45, 46, 47, 48, 50, 51, 53, 54, 56, 58, 60, 62, 64, 67, 69, 71, 74, 77, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 110, 113, 116, 119, 123, 126, 129, 132, 136, 139, 142, 145, 149, 152, 155, 158, 161, 164, 167, 170, 172, 175, 178, 180, 183, 185, 187, 190, 192, 194, 196, 197, 199, 201, 202, 204, 205, 206, 207, 208, 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 209, 209, 208, 207, 206, 205, 204, 202, 201, 199, 198, 196, 194, 192, 190, 188, 185, 183, 181, 178, 175, 173, 170, 167, 164, 161, 158, 155, 152, 149, 146, 143, 140, 136, 133, 130, 127, 124, 120, 117, 114, 111, 108, 104, 101, 98, 95, 92, 89, 86, 84, 81, 78, 76, 73, 71, 69, 66, 64, 62, 60, 58, 57, 55, 54, 52, 51, 50, 49, 48, 48, 47, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 48, 49, 50, 51, 52, 54, 55, 57, 58, 60, 62, 64, 66, 68, 70, 72, 75, 77, 80, 82, 85, 88, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 121, 124, 127, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, 160, 163, 166, 168, 171, 174, 176, 179, 181, 183, 185, 187, 189, 191, 193, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 205, 206, 206, 206, 206, 206, 206, 206, 205, 205, 204, 203, 203, 202, 201, 199, 198, 197, 195, 193, 192, 190, 188, 186, 184, 182, 179, 177, 175, 172, 170, 167, 164, 162, 159, 156, 153, 150, 147, 144, 141, 138, 135, 132, 129, 126, 123, 120, 117, 114, 111, 108, 105, 102, 99, 97, 94, 91, 88, 86, 83, 81, 78, 76, 74, 72, 70, 68, 66, 64, 62, 60, 59, 58, 56, 55, 54, 53, 52, 51, 51, 50, 50, 50, 49, 49, 50, 50, 50, 50, 51, 52, 52, 53, 54, 55, 57, 58, 59, 61, 63, 64, 66, 68, 70, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 100, 103, 106, 109, 112, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 155, 158, 161, 163, 166, 168, 171, 173, 176, 178, 180, 182, 184, 186, 188, 189, 191, 192, 194, 195, 196, 197, 198, 199, 200, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 201, 201, 200, 199, 198, 197, 196, 195, 194, 192, 191, 189, 187, 186, 184, 182, 180, 177, 175, 173, 171, 168, 166, 163, 161, 158, 155, 152, 150, 147, 144, 141, 138, 136, 133, 130, 127, 124, 121, 118, 115, 112, 110, 107, 104, 101, 99, 96, 93, 91, 88, 86, 84, 81, 79, 77, 75, 73, 71, 69, 68, 66, 64, 63, 62, 60, 59, 58, 57, 56, 56, 55, 55, 54, 54, 54, 54, 54, 54, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 68, 70, 72, 73, 75, 77, 80, 82, 84, 86, 89, 91, 94, 96, 99, 102, 104, 107, 110, 113, 115, 118, 121, 124, 127, 129, 132, 135, 138, 141, 143, 146, 149, 151, 154, 157, 159, 162, 164, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 186, 188, 189, 191, 192, 193, 194, 195, 196, 197, 197, 198, 198, 199, 199, 199, 199, 199, 199, 198, 198, 197, 197, 196, 195, 194, 193, 192, 191, 189, 188, 186, 185, 183, 181, 179, 177, 175, 173, 171, 169, 166, 164, 162, 159, 157, 154, 151, 149, 146, 143, 141, 138, 135, 133, 130, 127, 124, 122, 119, 116, 113, 111, 108, 105, 103, 100, 98, 95, 93, 90, 88, 86, 84, 82, 80, 78, 76, 74, 72, 71, 69, 68, 66, 65, 64, 63, 62, 61, 60, 60, 59, 59, 58, 58, 58, 58, 58, 58, 58, 59, 59, 60, 61, 61, 62, 63, 65, 66, 67, 68, 70, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 94, 96, 99, 101, 104, 106, 109, 111, 114, 117, 119, 122, 125, 127, 130, 133, 135, 138, 141, 143, 146, 148, 151, 153, 156, 158, 161, 163, 165, 167, 169, 172, 174, 175, 177, 179, 181, 182, 184, 185, 187, 188, 189, 190, 191, 192, 193, 193, 194, 194, 195, 195, 195, 195, 195, 195, 195, 195, 194, 194, 193, 192, 191, 191, 190, 189, 187, 186, 185, 183, 182, 180, 178, 177, 175, 173, 171, 169, 167, 164, 162, 160, 158, 155, 153, 150, 148, 145, 143, 140, 138, 135, 133, 130, 127, 125, 122, 120, 117, 114, 112, 109, 107, 104, 102, 100, 97, 95, 93, 91, 88, 86, 84, 82, 81, 79, 77, 75, 74, 72, 71, 70, 68, 67, 66, 65, 65, 64, 63, 63, 62, 62, 62, 61, 61, 61, 62, 62, 62, 63, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 76, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 105, 107, 109, 112, 114, 117, 120, 122, 125, 127, 130, 132, 135, 137, 140, 142, 145, 147, 150, 152, 154, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 176, 178, 179, 181, 182, 184, 185, 186, 187, 188, 189, 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 192, 191, 191, 191, 190, 189, 189, 188, 187, 186, 184, 183, 182, 180, 179, 177, 176, 174, 172, 170, 169, 167, 165, 162, 160, 158, 156, 154, 151, 149, 147, 144, 142, 139, 137, 134, 132, 129, 127, 124, 122, 120, 117, 115, 112, 110, 107, 105, 103, 101, 98, 96, 94, 92, 90, 88, 86, 84, 82, 81, 79, 78, 76, 75, 73, 72, 71, 70, 69, 68, 67, 67, 66, 66, 65, 65, 65, 64, 64, 64, 65, 65, 65, 66, 66, 67, 67, 68, 69, 70, 71, 72, 74, 75, 76, 78, 79, 81, 83, 84, 86, 88, 90, 92, 94, 96, 98, 100, 103, 105, 107, 110, 112, 114, 117, 119, 122, 124, 126, 129, 131, 134, 136, 139, 141, 143, 146, 148, 150, 152, 155, 157, 159, 161, 163, 165, 167, 169, 170, 172, 174, 175, 177, 178, 179, 181, 182, 183, 184, 185, 186, 186, 187, 188, 188, 188, 189, 189, 189, 189, 189, 189, 188, 188, 187, 187, 186, 186, 185, 184, 183, 182, 181, 179, 178, 177, 175, 174, 172, 170, 169, 167, 165, 163, 161, 159, 157, 155, 153, 151, 148, 146, 144, 142, 139, 137, 134, 132, 130, 127, 125, 123, 120, 118, 116, 113, 111, 109, 107, 104, 102, 100, 98, 96, 94, 92, 90, 88, 87, 85, 83, 82, 80, 79, 77, 76, 75, 74, 73, 72, 71, 70, 70, 69, 69, 68, 68, 68, 67, 67, 67, 68, 68, 68, 68, 69, 70, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 83, 84, 86, 88, 90, 92, 93, 95, 97, 99, 101, 104, 106, 108, 110, 112, 115, 117, 119, 121, 124, 126, 128, 131, 133, 135, 138, 140, 142, 144, 146, 149, 151, 153, 155, 157, 159, 161, 163, 164, 166, 168, 170, 171, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 183, 184, 185, 185, 185, 186, 186, 186, 186, 186, 186, 185, 185, 185, 184, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 173, 172, 170, 169, 167, 165, 164, 162, 160, 158, 156, 154, 152, 150, 148, 146, 143, 141, 139, 137, 135, 132, 130, 128, 126, 123, 121, 119, 117, 115, 112, 110, 108, 106, 104, 102, 100, 98, 96, 94, 92, 91, 89, 87, 86, 84, 83, 82, 80, 79, 78, 77, 76, 75, 74, 73, 73, 72, 72, 71, 71, 71, 71, 71, 71, 71, 71, 71, 72, 72, 73, 74, 74, 75, 76, 77, 78, 79, 80, 81, 83, 84, 86, 87, 89, 90, 92, 94, 96, 97, 99, 101, 103, 105, 107, 109, 111, 114, 116, 118, 120, 122, 124, 126, 129, 131, 133, 135, 137, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 159, 161, 163, 164, 166, 168, 169, 170, 172, 173, 174, 175, 177, 178, 178, 179, 180, 181, 181, 182, 182, 183, 183, 183, 183, 183, 183, 183, 183, 182, 182, 181, 181, 180, 179, 179, 178, 177, 176, 175, 173, 172, 171, 169, 168, 166, 165, 163, 162, 160, 158, 156, 154, 152, 151, 149, 147, 145, 143, 140, 138, 136, 134, 132, 130, 128, 126, 124, 122, 119, 117, 115, 113, 111, 109, 107, 105, 103, 101, 100, 98, 96, 94, 93, 91, 90, 88, 87, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 76, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 76, 77, 78, 78, 79, 80, 81, 82, 84, 85, 86, 87, 89, 90, 92, 94, 95, 97, 99, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 137, 139, 141, 143, 145, 146, 148, 150, 152, 154, 156, 157, 159, 161, 162, 164, 165, 167, 168, 169, 171, 172, 173, 174, 175, 176, 176, 177, 178, 178, 179, 179, 180, 180, 180, 180, 180, 180, 180, 180, 180, 179, 179, 178, 178, 177, 176, 175, 175, 174, 173, 171, 170, 169, 168, 166, 165, 164, 162, 160, 159, 157, 155, 154, 152, 150, 148, 146, 144, 142, 141, 139, 137, 135, 133, 131, 128, 126, 124, 122, 120, 118, 116, 114, 113, 111, 109, 107, 105, 103, 102, 100, 98, 97, 95, 93, 92, 91, 89, 88, 87, 85, 84, 83, 82, 81, 81, 80, 79, 78, 78, 77, 77, 77, 76, 76, 76, 76, 76, 76, 77, 77, 77, 78, 78, 79, 80, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 92, 93, 95, 96, 98, 99, 101, 103, 105, 106, 108, 110, 112, 114, 116, 118, 120, 122, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 148, 150, 152, 154, 155, 157, 158, 160, 161, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 174, 175, 176, 176, 177, 177, 177, 177, 178, 178, 178, 178, 177, 177, 177, 176, 176, 175, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 163, 162, 160, 159, 157, 156, 154, 152, 151, 149, 147, 145, 144, 142, 140, 138, 136, 134, 132, 130, 128, 126, 124, 123, 121, 119, 117, 115, 113, 111, 109, 108, 106, 104, 103, 101, 99, 98, 96, 95, 93, 92, 91, 90, 88, 87, 86, 85, 84, 83, 83, 82, 81, 81, 80, 80, 79, 79, 79, 79, 79, 78, 79, 79, 79, 79, 80, 80, 81, 81, 82, 83, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 95, 96, 98, 99, 101, 102, 104, 106, 107, 109, 111, 113, 114, 116, 118, 120, 122, 124, 126, 127, 129, 131, 133, 135, 137, 139, 140, 142, 144, 146, 147, 149, 151, 152, 154, 155, 157, 158, 160, 161, 162, 163, 165, 166, 167, 168, 169, 170, 170, 171, 172, 173, 173, 174, 174, 174, 175, 175, 175, 175, 175, 175, 175, 174, 174, 174, 173, 173, 172, 171, 171, 170, 169, 168, 167, 166, 165, 164, 163, 161, 160, 159, 157, 156, 155, 153, 151, 150, 148, 147, 145, 143, 141, 140, 138, 136, 134, 132, 131, 129, 127, 125, 123, 122, 120, 118, 116, 114, 113, 111, 109, 108, 106, 104, 103, 101, 100, 98, 97, 96, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 84, 83, 83, 82, 82, 82, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 83, 83, 84, 85, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, 107, 108, 110, 112, 113, 115, 117, 118, 120, 122, 124, 126, 127, 129, 131, 133, 135, 136, 138, 140, 141, 143, 145, 146, 148, 150, 151, 153, 154, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 169, 170, 171, 171, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 171, 171, 170, 170, 169, 168, 167, 167, 166, 165, 164, 163, 161, 160, 159, 158, 156, 155, 154, 152, 151, 149, 148, 146, 144, 143, 141, 139, 138, 136, 134, 132, 131, 129, 127, 125, 124, 122, 120, 119, 117, 115, 114, 112, 110, 109, 107, 106, 104, 103, 101, 100, 99, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 87, 86, 86, 85, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85, 86, 86, 87, 88, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 103, 104, 106, 107, 109, 110, 112, 113, 115, 117, 118, 120, 122, 123, 125, 127, 128, 130, 132, 133, 135, 137, 138, 140, 142, 143, 145, 146, 148, 149, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 164, 164, 165, 166, 167, 167, 168, 168, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 168, 168, 167, 167, 166, 165, 165, 164, 163, 162, 161, 160, 159, 157, 156, 155, 154, 152, 151, 150, 148, 147, 145, 144, 142, 141, 139, 138, 136, 134, 133, 131, 129, 128, 126, 124, 123, 121, 120, 118, 116, 115, 113, 112, 110, 109, 107, 106, 105, 103, 102, 101, 99, 98, 97, 96, 95, 94, 93, 92, 91, 91, 90, 89, 89, 88, 88, 87, 87, 86, 86, 86, 86, 86, 86, 86, 86, 86, 87, 87, 87, 88, 88, 89, 90, 90, 91, 92, 93, 94, 94, 96, 97, 98, 99, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 122, 124, 125, 127, 128, 130, 132, 133, 135, 136, 138, 139, 141, 142, 144, 145, 147, 148, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 163, 164, 165, 165, 166, 166, 167, 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 167, 167, 167, 166, 166, 165, 164, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 151, 150, 149, 147, 146, 145, 143, 142, 140, 139, 137, 136, 134, 132, 131, 129, 128, 126, 125, 123, 122, 120, 119, 117, 116, 114, 113, 111, 110, 108, 107, 106, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 92, 91, 90, 90, 89, 89, 89, 88, 88, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 90, 90, 91, 91, 92, 93, 93, 94, 95, 96, 97, 98, 99, 100, 101, 103, 104, 105, 106, 108, 109, 110, 112, 113, 115, 116, 117, 119, 120, 122, 123, 125, 126, 128, 130, 131, 133, 134, 135, 137, 138, 140, 141, 143, 144, 145, 147, 148, 149, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 161, 162, 163, 163, 164, 164, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 164, 164, 163, 162, 162, 161, 160, 159, 159, 158, 157, 156, 155, 154, 153, 151, 150, 149, 148, 146, 145, 144, 142, 141, 140, 138, 137, 135, 134, 132, 131, 129, 128, 126, 125, 123, 122, 121, 119, 118, 116, 115, 113, 112, 111, 110, 108, 107, 106, 105, 103, 102, 101, 100, 99, 98, 98, 97, 96, 95, 94, 94, 93, 93, 92, 92, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 91, 91, 91, 92, 92, 92, 93, 93, 94, 95, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 110, 111, 112, 114, 115, 116, 118, 119, 121, 122, 123, 125, 126, 128, 129, 130, 132, 133, 135, 136, 138, 139, 140, 142, 143, 144, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 158, 159, 160, 160, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 164, 163, 163, 163, 162, 162, 162, 161, 160, 160, 159, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 144, 143, 142, 140, 139, 138, 136, 135, 134, 132, 131, 130, 128, 127, 125, 124, 123, 121, 120, 119, 117, 116, 115, 113, 112, 111, 110, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 99, 98, 97, 96, 96, 95, 95, 94, 94, 93, 93, 93, 92, 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 94, 94, 95, 95, 96, 97, 97, 98, 99, 100, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 118, 119, 120, 122, 123, 124, 126, 127, 128, 130, 131, 133, 134, 135, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 153, 154, 155, 156, 157, 157, 158, 159, 159, 160, 160, 160, 161, 161, 161, 161, 162, 162, 162, 162, 162, 161, 161, 161, 161, 161, 160, 160, 159, 159, 158, 157, 157, 156, 155, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 143, 142, 141, 140, 139, 137, 136, 135, 133, 132, 131, 130, 128, 127, 126, 124, 123, 122, 120, 119, 118, 117, 115, 114, 113, 112, 111, 109, 108, 107, 106, 105, 104, 103, 102, 102, 101, 100, 99, 99, 98, 97, 97, 96, 96, 95, 95, 95, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 95, 95, 95, 96, 96, 96, 97, 98, 98, 99, 100, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 130, 131, 132, 133, 135, 136, 137, 138, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 155, 156, 157, 157, 158, 158, 159, 159, 159, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 159, 159, 158, 158, 158, 157, 156, 156, 155, 154, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 137, 136, 135, 134, 132, 131, 130, 129, 127, 126, 125, 123, 122, 121, 120, 119, 117, 116, 115, 114, 113, 112, 110, 109, 108, 107, 106, 106, 105, 104, 103, 102, 101, 101, 100, 99, 99, 98, 98, 97, 97, 97, 96, 96, 96, 96, 96, 96, 95, 96, 96, 96, 96, 96, 96, 97, 97, 98, 98, 98, 99, 100, 100, 101, 102, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 125, 126, 127, 128, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 147, 148, 149, 150, 151, 152, 153, 153, 154, 155, 155, 156, 156, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 159, 159, 159, 158, 158, 158, 158, 157, 157, 157, 156, 156, 155, 155, 154, 153, 153, 152, 151, 150, 149, 148, 148, 147, 146, 145, 144, 143, 141, 140, 139, 138, 137, 136, 135, 134, 132, 131, 130, 129, 128, 126, 125, 124, 123, 122, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 105, 104, 103, 102, 102, 101, 101, 100, 100, 99, 99, 99, 98, 98, 98, 98, 98, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 100, 100, 101, 101, 102, 102, 103, 104, 105, 105, 106, 107, 108, 109, 110, 111, 111, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 148, 149, 150, 151, 151, 152, 153, 153, 154, 154, 155, 155, 155, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 156, 156, 156, 156, 155, 155, 155, 154, 154, 153, 153, 152, 152, 151, 150, 150, 149, 148, 147, 146, 145, 144, 144, 143, 142, 141, 140, 139, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 107, 106, 105, 104, 104, 103, 103, 102, 102, 101, 101, 100, 100, 100, 100, 99, 99, 99, 99, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 102, 102, 103, 103, 104, 104, 105, 106, 106, 107, 108, 109, 110, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 138, 140, 141, 141, 142, 143, 144, 145, 146, 147, 147, 148, 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, 154, 154, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 154, 154, 154, 153, 153, 153, 152, 152, 151, 150, 150, 149, 148, 148, 147, 146, 145, 144, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 113, 112, 111, 110, 109, 108, 108, 107, 106, 106, 105, 104, 104, 103, 103, 103, 102, 102, 101, 101, 101, 101, 101, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 102, 102, 102, 103, 103, 104, 104, 105, 105, 106, 107, 107, 108, 109, 110, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 141, 142, 143, 144, 145, 146, 146, 147, 148, 148, 149, 149, 150, 151, 151, 151, 152, 152, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 153, 153, 153, 153, 152, 152, 152, 151, 151, 150, 150, 149, 149, 148, 147, 147, 146, 145, 145, 144, 143, 142, 141, 140, 139, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 112, 111, 110, 109, 109, 108, 107, 107, 106, 106, 105, 105, 104, 104, 103, 103, 103, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 106, 106, 107, 107, 108, 109, 110, 110, 111, 112, 113, 113, 114, 115, 116, 117, 118, 119, 120, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 139, 140, 141, 142, 143, 143, 144, 145, 146, 146, 147, 147, 148, 149, 149, 150, 150, 150, 151, 151, 151, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 151, 151, 151, 150, 150, 149, 149, 148, 148, 147, 147, 146, 145, 145, 144, 143, 142, 142, 141, 140, 139, 138, 137, 136, 135, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 119, 118, 117, 116, 115, 114, 114, 113, 112, 111, 111, 110, 109, 109, 108, 107, 107, 106, 106, 105, 105, 105, 104, 104, 104, 104, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 105, 105, 105, 106, 106, 107, 107, 108, 108, 109, 110, 110, 111, 112, 112, 113, 114, 115, 116, 117, 117, 118, 119, 120, 121, 122, 123, 124, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 135, 136, 137, 138, 139, 140, 140, 141, 142, 142, 143, 144, 144, 145, 146, 146, 147, 147, 148, 148, 149, 149, 149, 150, 150, 150, 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, 150, 150, 150, 150, 149, 149, 149, 148, 148, 148, 147, 147, 146, 145, 145, 144, 144, 143, 142, 142, 141, 140, 139, 138, 138, 137, 136, 135, 134, 133, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 124, 123, 122, 121, 120, 119, 118, 118, 117, 116, 115, 114, 114, 113, 112, 112, 111, 110, 110, 109, 109, 108, 108, 107, 107, 106, 106, 106, 106, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 113, 113, 114, 115, 116, 116, 117, 118, 119, 120, 120, 121, 122, 123, 124, 125, 126, 127, 127, 128, 129, 130, 131, 132, 133, 133, 134, 135, 136, 137, 137, 138, 139, 140, 140, 141, 142, 142, 143, 144, 144, 145, 145, 146, 146, 147, 147, 147, 148, 148, 148, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 148, 148, 148, 147, 147, 147, 146, 146, 145, 145, 144, 143, 143, 142, 142, 141, 140, 139, 139, 138, 137, 136, 136, 135, 134, 133, 132, 132, 131, 130, 129, 128, 127, 126, 126, 125, 124, 123, 122, 121, 121, 120, 119, 118, 118, 117, 116, 115, 115, 114, 113, 113, 112, 112, 111, 110, 110, 109, 109, 109, 108, 108, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 108, 108, 108, 109, 109, 110, 110, 111, 111, 112, 113, 113, 114, 115, 115, 116, 117, 117, 118, 119, 120, 121, 121, 122, 123, 124, 125, 125, 126, 127, 128, 129, 130, 130, 131, 132, 133, 134, 134, 135, 136, 137, 137, 138, 139, 140, 140, 141, 141, 142, 143, 143, 144, 144, 145, 145, 146, 146, 146, 147, 147, 147, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 147, 147, 147, 146, 146, 146, 145, 145, 144, 144, 143, 143, 142, 141, 141, 140, 140, 139, 138, 138, 137, 136, 135, 135, 134, 133, 132, 131, 131, 130, 129, 128, 127, 127, 126, 125, 124, 123, 123, 122, 121, 120, 120, 119, 118, 117, 117, 116, 115, 115, 114, 113, 113, 112, 112, 111, 111, 110, 110, 110, 109, 109, 108, 108, 108, 108, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 109, 109, 110, 110, 110, 111, 111, 112, 112, 113, 113, 114, 115, 115, 116, 117, 117, 118, 119, 119, 120, 121, 122, 122, 123, 124, 125, 126, 126, 127, 128, 129, 130, 130, 131, 132, 133, 133, 134, 135, 136, 136, 137, 138, 138, 139, 140, 140, 141, 142, 142, 143, 143, 144, 144, 144, 145, 145, 146, 146, 146, 146, 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, 147, 147, 147, 147, 147, 147, 146, 146, 146, 146, 145, 145, 144, 144, 144, 143, 143, 142, 142, 141, 140, 140, 139, 139, 138, 137, 137, 136, 135, 134, 134, 133, 132, 132, 131, 130, 129, 128, 128, 127, 126, 125, 125, 124, 123, 122, 122, 121, 120, 120, 119, 118, 118, 117, 116, 116, 115, 114, 114, 113, 113, 112, 112, 111, 111, 111, 110, 110, 110, 109, 109, 109, 109, 109, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 110, 110, 111, 111, 112, 112, 112, 113, 113, 114, 115, 115, 116, 116, 117, 118, 118, 119, 120, 120, 121, 122, 122, 123, 124, 125, 125, 126, 127, 128, 128, 129, 130, 131, 131, 132, 133, 134, 134, 135, 136, 136, 137, 138, 138, 139, 139, 140, 141, 141, 142, 142, 143, 143, 143, 144, 144, 144, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 145, 145, 145, 145, 144, 144, 144, 143, 143, 142, 142, 141, 141, 140, 140, 139, 139, 138, 138, 137, 136, 136, 135, 134, 134, 133, 132, 131, 131, 130, 129, 129, 128, 127, 126, 126, 125, 124, 123, 123, 122, 121, 121, 120, 119, 119, 118, 118, 117, 116, 116, 115, 115, 114, 114, 113, 113, 112, 112, 112, 111, 111, 111, 110, 110, 110, 110, 110, 109, 109, 109, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110, 110, 111, 111, 111, 112, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 118, 118, 119, 119, 120, 121, 121, 122, 123, 123, 124, 125, 125, 126, 127, 128, 128, 129, 130, 130, 131, 132, 132, 133, 134, 134, 135, 136, 136, 137, 137, 138, 139, 139, 140, 140, 141, 141, 141, 142, 142, 143, 143, 143, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 144, 144, 144, 144, 143, 143, 143, 142, 142, 142, 141, 141, 140, 140, 139, 139, 138, 138, 137, 136, 136, 135, 135, 134, 133, 133, 132, 131, 131, 130, 129, 129, 128, 127, 127, 126, 125, 125, 124, 123, 123, 122, 121, 121, 120, 119, 119, 118, 118, 117, 117, 116, 116, 115, 115, 114, 114, 113, 113, 113, 112, 112, 112, 112, 111, 111, 111, 111, 111, 111, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 121, 121, 122, 122, 123, 124, 124, 125, 126, 126, 127, 128, 128, 129, 130, 130, 131, 132, 132, 133, 133, 134, 135, 135, 136, 136, 137, 137, 138, 139, 139, 139, 140, 140, 141, 141, 142, 142, 142, 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 143, 143, 143, 143, 142, 142, 142, 141, 141, 140, 140, 140, 139, 139, 138, 138, 137, 136, 136, 135, 135, 134, 134, 133, 132, 132, 131, 130, 130, 129, 128, 128, 127, 126, 126, 125, 125, 124, 123, 123, 122, 121, 121, 120, 120, 119, 119, 118, 117, 117, 116, 116, 116, 115, 115, 114, 114, 114, 113, 113, 113, 112, 112, 112, 112, 112, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 112, 112, 112, 112, 112, 113, 113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 121, 121, 122, 122, 123, 124, 124, 125, 125, 126, 127, 127, 128, 129, 129, 130, 130, 131, 132, 132, 133, 133, 134, 135, 135, 136, 136, 137, 137, 138, 138, 139, 139, 139, 140, 140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 142, 142, 142, 142, 141, 141, 141, 140, 140, 140, 139, 139, 138, 138, 138, 137, 137, 136, 135, 135, 134, 134, 133, 133, 132, 132, 131, 130, 130, 129, 129, 128, 127, 127, 126, 126, 125, 124, 124, 123, 123, 122, 122, 121, 120, 120, 119, 119, 118, 118, 118, 117, 117, 116, 116, 115, 115, 115, 114, 114, 114, 114, 113, 113, 113, 113, 113, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 114, 114, 114, 114, 115, 115, 115, 116, 116, 117, 117, 118, 118, 118, 119, 119, 120, 120, 121, 122, 122, 123, 123, 124, 124, 125, 126, 126, 127, 127, 128, 129, 129, 130, 130, 131, 131, 132, 133, 133, 134, 134, 135, 135, 136, 136, 137, 137, 138, 138, 138, 139, 139, 140, 140, 140, 140, 141, 141, 141, 141, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 141, 141, 141, 141, 140, 140, 140, 139, 139, 139, 138, 138, 137, 137, 137, 136, 136, 135, 135, 134, 134, 133, 133, 132, 132, 131, 130, 130, 129, 129, 128, 128, 127, 126, 126, 125, 125, 124, 124, 123, 122, 122, 121, 121, 120, 120, 119, 119, 119, 118, 118, 117, 117, 116, 116, 116, 115, 115, 115, 115, 114, 114, 114, 114, 114, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 125, 125, 126, 126, 127, 127, 128, 128, 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 136, 136, 137, 137, 137, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, 142, 142, 142, 141, 141, 141, 141, 141, 141, 140, 140, 140, 140, 139, 139, 139, 138, 138, 138, 137, 137, 137, 136, 136, 135, 135, 134, 134, 133, 133, 132, 132, 131, 131, 130, 130, 129, 129, 128, 128, 127, 126, 126, 125, 125, 124, 124, 123, 123, 122, 122, 121, 121, 120, 120, 120, 119, 119, 118, 118, 117, 117, 117, 116, 116, 116, 116, 115, 115, 115, 115, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 122, 123, 123, 124, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 135, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 140, 140, 140, 140, 140, 140, 140, 139, 139, 139, 139, 138, 138, 138, 137, 137, 137, 136, 136, 135, 135, 135, 134, 134, 133, 133, 132, 132, 131, 131, 130, 130, 129, 129, 128, 128, 127, 127, 126, 126, 125, 125, 124, 124, 123, 123, 122, 122, 121, 121, 120, 120, 120, 119, 119, 119, 118, 118, 118, 117, 117, 117, 116, 116, 116, 116, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119, 119, 120, 120, 121, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 131, 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 138, 138, 138, 138, 139, 139, 139, 139, 139, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 139, 139, 139, 139, 139, 138, 138, 138, 138, 137, 137, 137, 136, 136, 136, 135, 135, 134, 134, 134, 133, 133, 132, 132, 132, 131, 131, 130, 130, 129, 129, 128, 128, 127, 127, 126, 126, 125, 125, 124, 124, 124, 123, 123, 122, 122, 121, 121, 121, 120, 120, 119, 119, 119, 118, 118, 118, 118, 117, 117, 117, 117, 116, 116, 116, 116, 116, 116, 116, 115, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 120, 121, 121, 122, 122, 123, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 127, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, 133, 134, 134, 134, 135, 135, 136, 136, 136, 137, 137, 137, 137, 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 138, 138, 138, 138, 138, 137, 137, 137, 137, 136, 136, 136, 135, 135, 135, 134, 134, 133, 133, 133, 132, 132, 131, 131, 130, 130, 130, 129, 129, 128, 128, 127, 127, 126, 126, 125, 125, 125, 124, 124, 123, 123, 122, 122, 122, 121, 121, 121, 120, 120, 119, 119, 119, 119, 118, 118, 118, 118, 117, 117, 117, 117, 117, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 117, 118, 118, 118, 119, 119, 119, 119, 120, 120, 120, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 127, 128, 128, 129, 129, 130, 130, 130, 131, 131, 132, 132, 133, 133, 133, 134, 134, 134, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 137, 138, 138, 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, 139, 139, 138, 138, 138, 138, 138, 138, 138, 138, 137, 137, 137, 137, 136, 136, 136, 135, 135, 135, 135, 134, 134, 133, 133, 133, 132, 132, 132, 131, 131, 130, 130, 130, 129, 129, 128, 128, 127, 127, 127, 126, 126, 125, 125, 124, 124, 124, 123, 123, 122, 122, 122, 121, 121, 121, 120, 120, 120, 119, 119, 119, 119, 118, 118, 118, 118, 118, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 119, 119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, 129, 129, 129, 130, 130, 131, 131, 131, 132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 137, 137, 137, 137, 137, 137, 136, 136, 136, 136, 136, 135, 135, 135, 134, 134, 134, 133, 133, 133, 132, 132, 132, 131, 131, 131, 130, 130, 129, 129, 129, 128, 128, 127, 127, 127, 126, 126, 125, 125, 125, 124, 124, 123, 123, 123, 122, 122, 122, 121, 121, 121, 120, 120, 120, 120, 119, 119, 119, 119, 118, 118, 118, 118, 118, 118, 118, 118, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 130, 130, 130, 131, 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, 134, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 136, 136, 136, 136, 136, 136, 135, 135, 135, 135, 134, 134, 134, 133, 133, 133, 133, 132, 132, 132, 131, 131, 130, 130, 130, 129, 129, 129, 128, 128, 128, 127, 127, 126, 126, 126, 125, 125, 125, 124, 124, 124, 123, 123, 123, 122, 122, 122, 121, 121, 121, 120, 120, 120, 120, 120, 119, 119, 119, 119, 119, 119, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 121, 121, 121, 122, 122, 122, 122, 123, 123, 123, 124, 124, 124, 125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130, 131, 131, 131, 132, 132, 132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 136, 136, 136, 136, 136, 136, 136, 135, 135, 135, 135, 135, 134, 134, 134, 134, 133, 133, 133, 133, 132, 132, 132, 131, 131, 131, 130, 130, 130, 129, 129, 129, 128, 128, 128, 127, 127, 126, 126, 126, 125, 125, 125, 124, 124, 124, 123, 123, 123, 123, 122, 122, 122, 121, 121, 121, 121, 120, 120, 120, 120, 120, 120, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 123, 123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130, 130, 131, 131, 131, 132, 132, 132, 132, 133, 133, 133, 134, 134, 134, 134, 134, 135, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 133, 133, 133, 133, 132, 132, 132, 131, 131, 131, 131, 130, 130, 130, 129, 129, 129, 128, 128, 128, 127, 127, 127, 126, 126, 126, 125, 125, 125, 124, 124, 124, 123, 123, 123, 123, 122, 122, 122, 122, 121, 121, 121, 121, 121, 120, 120, 120, 120, 120, 120, 120, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 122, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 136, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 133, 133, 133, 133, 133, 132, 132, 132, 131, 131, 131, 131, 130, 130, 130, 129, 129, 129, 129, 128, 128, 128, 127, 127, 127, 126, 126, 126, 125, 125, 125, 125, 124, 124, 124, 123, 123, 123, 123, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, 133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 134, 134, 133, 133, 133, 133, 132, 132, 132, 132, 132, 131, 131, 131, 131, 130, 130, 130, 129, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 125, 125, 125, 125, 124, 124, 124, 124, 123, 123, 123, 123, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, 134, 135, 134, 134, 134, 134, 134, 134, 134, 134, 134, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 131, 131, 131, 131, 130, 130, 130, 129, 129, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 125, 125, 125, 125, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 133, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 131, 131, 131, 131, 130, 130, 130, 130, 129, 129, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 125, 125, 125, 125, 125, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 133, 133, 133, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 132, 131, 131, 131, 131, 131, 130, 130, 130, 130, 129, 129, 129, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 132, 132, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 129, 129, 129, 129, 128, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 132, 132, 132, 132, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 130, 131, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 129, 130, 129, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 128, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 128, 128, 127, 128, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 128, 127, 128, 
};
const unsigned char snare[] PROGMEM = {
  124, 41, 39, 0, 0, 0, 0, 0, 37, 78, 102, 248, 231, 255, 199, 255, 255, 255, 255, 159, 255, 245, 52, 130, 123, 21, 34, 19, 103, 0, 163, 102, 0, 236, 244, 87, 179, 255, 255, 228, 197, 229, 183, 134, 93, 184, 0, 0, 26, 4, 0, 0, 33, 118, 0, 13, 255, 0, 215, 255, 134, 255, 197, 167, 255, 245, 231, 187, 163, 160, 149, 97, 105, 123, 44, 123, 57, 58, 137, 133, 112, 156, 215, 115, 221, 153, 155, 168, 160, 178, 108, 161, 13, 151, 0, 38, 110, 0, 114, 143, 0, 90, 66, 101, 240, 0, 203, 235, 139, 255, 99, 246, 214, 67, 255, 122, 229, 87, 184, 41, 173, 161, 0, 234, 58, 159, 170, 82, 71, 177, 178, 133, 184, 180, 90, 70, 134, 178, 97, 101, 80, 119, 34, 38, 77, 109, 75, 85, 75, 84, 211, 0, 196, 170, 164, 151, 180, 226, 68, 172, 255, 184, 28, 245, 107, 103, 235, 113, 88, 112, 188, 128, 67, 146, 150, 140, 96, 126, 209, 97, 125, 89, 166, 87, 90, 156, 105, 126, 42, 107, 76, 164, 45, 41, 168, 55, 139, 134, 52, 173, 154, 158, 137, 162, 196, 76, 193, 188, 129, 144, 171, 109, 193, 119, 86, 203, 120, 137, 78, 143, 219, 30, 123, 190, 65, 186, 117, 75, 160, 107, 116, 158, 75, 55, 153, 141, 52, 115, 81, 75, 184, 87, 90, 116, 154, 134, 93, 181, 101, 157, 135, 130, 205, 83, 173, 172, 143, 149, 147, 138, 138, 129, 128, 190, 82, 155, 107, 116, 148, 92, 183, 94, 143, 110, 111, 156, 85, 80, 172, 114, 59, 111, 178, 93, 22, 173, 132, 113, 69, 121, 147, 167, 76, 114, 165, 173, 94, 97, 210, 121, 171, 143, 160, 85, 137, 178, 140, 138, 167, 85, 154, 159, 56, 174, 135, 129, 141, 85, 132, 122, 124, 100, 140, 137, 52, 191, 53, 147, 94, 129, 116, 95, 132, 84, 189, 42, 150, 128, 139, 121, 126, 156, 128, 103, 140, 187, 138, 100, 121, 210, 114, 130, 143, 121, 197, 89, 113, 178, 122, 125, 113, 148, 116, 113, 134, 147, 101, 121, 111, 117, 130, 116, 144, 90, 88, 147, 126, 74, 163, 101, 113, 127, 141, 125, 106, 132, 117, 162, 110, 117, 133, 176, 133, 128, 136, 141, 152, 111, 127, 174, 134, 90, 172, 148, 106, 112, 168, 99, 117, 156, 117, 120, 126, 124, 115, 143, 88, 121, 124, 141, 88, 116, 155, 85, 127, 148, 93, 122, 127, 118, 133, 112, 151, 115, 163, 105, 137, 125, 154, 131, 100, 191, 115, 116, 143, 177, 88, 159, 131, 106, 152, 129, 152, 101, 120, 163, 100, 115, 153, 94, 134, 126, 118, 124, 140, 107, 88, 133, 129, 137, 100, 121, 131, 122, 150, 79, 124, 152, 121, 142, 114, 123, 142, 149, 117, 117, 168, 119, 117, 143, 139, 148, 106, 148, 128, 142, 120, 139, 155, 70, 162, 129, 122, 111, 125, 148, 108, 132, 102, 132, 146, 100, 94, 160, 116, 109, 137, 120, 118, 113, 125, 141, 127, 109, 139, 120, 156, 103, 125, 150, 109, 150, 132, 137, 138, 119, 148, 110, 136, 155, 104, 146, 152, 110, 108, 173, 101, 125, 127, 138, 135, 98, 145, 106, 147, 108, 112, 141, 133, 105, 113, 136, 116, 118, 137, 131, 111, 133, 130, 113, 131, 119, 139, 140, 112, 136, 124, 139, 129, 140, 120, 143, 124, 126, 147, 114, 149, 135, 124, 113, 140, 138, 135, 112, 125, 146, 111, 127, 125, 125, 136, 125, 107, 125, 137, 117, 122, 129, 122, 119, 131, 127, 123, 118, 120, 143, 113, 129, 152, 98, 145, 125, 120, 154, 112, 144, 119, 132, 139, 123, 133, 138, 124, 132, 145, 104, 144, 129, 115, 143, 118, 133, 134, 117, 124, 119, 138, 127, 112, 129, 122, 137, 113, 121, 144, 106, 125, 130, 124, 138, 118, 116, 127, 134, 136, 118, 123, 142, 128, 129, 119, 132, 143, 118, 138, 125, 131, 134, 141, 122, 114, 151, 119, 130, 135, 130, 113, 131, 138, 127, 116, 121, 139, 117, 135, 112, 127, 128, 129, 127, 110, 137, 131, 112, 122, 140, 122, 128, 120, 126, 135, 126, 126, 140, 116, 127, 142, 111, 141, 127, 132, 129, 131, 136, 120, 133, 131, 133, 121, 132, 128, 131, 124, 122, 142, 118, 126, 127, 125, 130, 124, 124, 121, 132, 123, 126, 130, 115, 133, 130, 121, 117, 136, 133, 116, 128, 125, 138, 122, 125, 132, 134, 130, 119, 131, 137, 124, 127, 136, 123, 130, 139, 120, 125, 135, 131, 131, 119, 135, 127, 127, 124, 126, 131, 127, 127, 130, 124, 116, 136, 123, 124, 128, 126, 122, 125, 136, 120, 120, 138, 122, 121, 133, 129, 121, 128, 133, 128, 127, 128, 137, 120, 130, 129, 125, 136, 132, 124, 126, 130, 129, 135, 123, 127, 135, 124, 124, 129, 128, 130, 125, 126, 124, 132, 127, 117, 136, 121, 124, 133, 116, 132, 128, 121, 132, 122, 127, 133, 122, 128, 130, 123, 131, 125, 132, 129, 125, 132, 126, 132, 131, 125, 125, 132, 133, 122, 129, 134, 125, 129, 127, 124, 131, 129, 127, 127, 128, 130, 121, 125, 127, 129, 127, 126, 131, 120, 127, 129, 126, 125, 128, 127, 126, 131, 123, 127, 129, 127, 132, 123, 130, 131, 124, 126, 131, 130, 127, 130, 128, 130, 132, 125, 127, 128, 131, 128, 123, 135, 123, 129, 129, 124, 131, 126, 125, 128, 127, 125, 128, 127, 124, 131, 124, 124, 131, 125, 128, 127, 124, 129, 130, 122, 132, 124, 129, 128, 126, 131, 127, 131, 122, 129, 134, 123, 129, 129, 127, 129, 128, 129, 128, 130, 123, 131, 126, 126, 130, 127, 125, 128, 128, 129, 126, 123, 129, 127, 130, 123, 129, 126, 125, 127, 127, 131, 124, 126, 130, 127, 127, 126, 129, 130, 124, 128, 127, 131, 130, 126, 127, 130, 130, 126, 127, 130, 127, 126, 133, 124, 129, 128, 127, 128, 129, 125, 127, 129, 125, 131, 126, 125, 126, 129, 125, 129, 124, 128, 128, 127, 129, 124, 129, 125, 127, 131, 126, 125, 130, 127, 127, 128, 130, 127, 126, 129, 128, 126, 131, 126, 128, 129, 127, 129, 129, 126, 127, 130, 126, 129, 126, 127, 131, 127, 124, 129, 129, 127, 125, 128, 126, 128, 127, 125, 130, 125, 129, 127, 125, 128, 128, 125, 128, 130, 127, 126, 128, 129, 129, 125, 128, 129, 127, 129, 127, 128, 129, 127, 127, 130, 126, 130, 127, 126, 129, 126, 129, 126, 130, 126, 127, 127, 126, 129, 127, 127, 127, 128, 126, 127, 126, 128, 127, 127, 128, 126, 128, 127, 128, 127, 127, 128, 128, 128, 127, 127, 129, 129, 126, 129, 128, 127, 128, 128, 130, 126, 128, 129, 127, 128, 126, 129, 129, 126, 128, 128, 126, 128, 127, 127, 128, 127, 126, 129, 127, 127, 128, 126, 128, 126, 128, 127, 127, 129, 127, 128, 126, 127, 129, 127, 128, 127, 127, 130, 127, 128, 128, 127, 128, 128, 128, 128, 127, 129, 128, 126, 129, 127, 128, 127, 127, 129, 127, 128, 126, 127, 128, 128, 128, 126, 127, 128, 127, 127, 129, 126, 127, 128, 128, 127, 127, 128, 128, 128, 129, 127, 127, 128, 128, 128, 127, 129, 127, 127, 128, 129, 127, 127, 128, 127, 128, 128, 127, 127, 129, 127, 127, 128, 127, 128, 127, 129, 126, 126, 129, 126, 127, 128, 128, 126, 128, 128, 126, 127, 128, 126, 129, 127, 126, 128, 127, 128, 128, 128, 127, 128, 128, 127, 127, 129, 127, 128, 127, 129, 128, 127, 128, 127, 128, 128, 127, 127, 128, 128, 128, 127, 127, 128, 127, 127, 127, 128, 128, 126, 127, 128, 127, 127, 129, 126, 127, 128, 127, 128, 127, 127, 128, 127, 128, 128, 127, 128, 127, 128, 128, 128, 126, 128, 128, 126, 129, 127, 127, 128, 127, 128, 129, 126, 128, 128, 126, 128, 128, 127, 127, 129, 126, 127, 128, 127, 128, 127, 127, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 127, 127, 129, 128, 127, 129, 127, 128, 128, 128, 128, 127, 127, 127, 127, 128, 127, 128, 127, 128, 127, 127, 128, 127, 128, 128, 127, 127, 128, 127, 128, 127, 127, 127, 128, 127, 127, 128, 127, 127, 127, 128, 128, 127, 128, 128, 127, 128, 127, 127, 128, 128, 127, 127, 128, 128, 127, 128, 128, 127, 127, 127, 128, 128, 128, 127, 128, 128, 127, 128, 127, 127, 127, 127, 128, 128, 127, 128, 128, 127, 127, 127, 127, 128, 128, 126, 128, 128, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 127, 128, 128, 127, 127, 128, 128, 127, 128, 128, 127, 128, 128, 127, 127, 128, 128, 127, 127, 128, 127, 127, 127, 128, 127, 127, 128, 127, 128, 128, 127, 127, 127, 128, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 127, 128, 128, 127, 128, 127, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 127, 127, 127, 128, 127, 128, 127, 127, 127, 128, 127, 127, 128, 127, 127, 127, 128, 128, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 128, 127, 128, 128, 127, 127, 127, 128, 128, 127, 128, 128, 127, 128, 127, 128, 127, 127, 127, 128, 128, 128, 127, 128, 127, 128, 127, 127, 128, 128, 127, 127, 128, 127, 128, 127, 127, 128, 127, 127, 128, 127, 128, 127, 127, 128, 127, 127, 128, 128, 127, 128, 128, 128, 128, 127, 128, 128, 127, 128, 127, 127, 128, 128, 128, 127, 128, 127, 128, 128, 127, 128, 127, 127, 127, 128, 127, 127, 128, 127, 128, 128, 127, 127, 128, 128, 128, 128, 127, 128, 128, 127, 127, 128, 127, 128, 128, 127, 128, 127, 128, 128, 127, 127, 128, 127, 127, 128, 128, 127, 128, 128, 127, 127, 128, 127, 128, 127, 127, 128, 127, 127, 128, 128, 127, 127, 127, 128, 127, 127, 128, 127, 128, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 127, 128, 128, 127, 128, 128, 127, 127, 128, 128, 127, 128, 127, 127, 128, 127, 127, 128, 127, 128, 127, 127, 128, 128, 128, 127, 127, 128, 127, 127, 127, 128, 127, 128, 127, 127, 128, 127, 128, 127, 128, 128, 127, 128, 128, 127, 127, 128, 127, 128, 127, 128, 128, 128, 127, 127, 128, 127, 127, 127, 128, 127, 128, 127, 127, 128, 127, 128, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 127, 128, 128, 127, 128, 127, 127, 128, 128, 127, 127, 128, 128, 127, 128, 127, 127, 128, 128, 127, 127, 128, 128, 127, 128, 127, 128, 128, 127, 128, 127, 127, 127, 128, 127, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 128, 128, 127, 128, 128, 127, 127, 128, 127, 127, 128, 127, 128, 127, 128, 127, 127, 128, 128, 127, 127, 127, 128, 127, 127, 128, 127, 127, 128, 127, 128, 128, 127, 127, 128, 127, 128, 128, 127, 127, 128, 127, 128, 127, 127, 127, 128, 128, 127, 127, 127, 128, 128, 127, 127, 128, 128, 127, 128, 127, 128, 127, 127, 128, 128, 127, 127, 128, 127, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 127, 128, 127, 128, 127, 127, 128, 127, 128, 127, 128, 128, 127, 127, 128, 128, 127, 127, 127, 128, 128, 127, 128, 127, 128, 127, 127, 128, 127, 128, 127, 128, 128, 127, 127, 128, 127, 128, 127, 127, 128, 127, 128, 127, 127, 127, 128, 127, 128, 128, 127, 127, 128, 127, 128, 127, 127, 128, 127, 127, 128, 128, 128, 127, 128, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 128, 128, 128, 128, 127, 128, 127, 128, 127, 128, 127, 128, 128, 128, 128, 127, 128, 128, 128, 
};
const unsigned char hat[] PROGMEM = {
  71, 199, 110, 142, 86, 176, 72, 119, 236, 4, 194, 103, 118, 176, 75, 170, 64, 166, 195, 0, 255, 85, 103, 168, 74, 179, 86, 160, 123, 108, 160, 104, 120, 148, 118, 112, 120, 183, 86, 135, 181, 29, 167, 142, 121, 105, 159, 136, 103, 150, 89, 156, 101, 181, 76, 136, 156, 79, 183, 109, 92, 168, 127, 104, 139, 122, 141, 124, 108, 158, 106, 114, 175, 80, 152, 114, 135, 134, 104, 145, 142, 113, 100, 172, 108, 101, 173, 112, 103, 157, 109, 144, 109, 140, 121, 123, 143, 107, 146, 112, 138, 107, 143, 149, 94, 149, 123, 107, 149, 130, 99, 156, 126, 92, 162, 141, 99, 125, 138, 119, 137, 114, 147, 108, 129, 146, 89, 168, 112, 116, 139, 130, 120, 124, 134, 133, 112, 140, 126, 102, 166, 113, 122, 119, 138, 126, 141, 116, 96, 187, 93, 117, 149, 118, 129, 123, 133, 108, 162, 100, 132, 142, 98, 163, 96, 142, 137, 100, 145, 135, 118, 124, 120, 146, 119, 119, 139, 112, 145, 114, 138, 110, 145, 120, 118, 152, 98, 152, 110, 133, 129, 122, 133, 124, 126, 129, 127, 127, 132, 127, 111, 151, 124, 107, 157, 99, 148, 113, 138, 130, 111, 138, 128, 128, 112, 150, 108, 140, 120, 132, 123, 127, 135, 113, 145, 111, 132, 132, 118, 133, 126, 129, 125, 125, 132, 130, 117, 132, 130, 124, 128, 127, 126, 124, 140, 115, 127, 133, 127, 121, 134, 122, 127, 130, 124, 129, 129, 122, 133, 128, 121, 134, 125, 129, 122, 135, 116, 137, 125, 132, 119, 127, 131, 123, 135, 119, 131, 133, 123, 124, 129, 132, 123, 125, 134, 120, 135, 122, 130, 121, 140, 112, 137, 130, 116, 138, 118, 138, 115, 137, 126, 119, 137, 122, 127, 130, 125, 131, 117, 145, 117, 126, 130, 126, 130, 119, 139, 115, 137, 124, 126, 129, 128, 128, 127, 128, 125, 130, 126, 123, 134, 123, 127, 130, 123, 133, 123, 128, 127, 129, 125, 128, 128, 128, 126, 130, 124, 130, 126, 125, 130, 126, 129, 128, 125, 129, 130, 122, 131, 127, 126, 128, 128, 127, 128, 126, 130, 124, 131, 127, 124, 129, 128, 129, 125, 129, 126, 130, 124, 129, 127, 127, 127, 128, 127, 126, 129, 126, 127, 128, 128, 126, 128, 128, 128, 124, 131, 123, 130, 128, 124, 131, 126, 127, 128, 126, 129, 126, 128, 128, 127, 128, 127, 128, 125, 131, 127, 125, 128, 130, 124, 130, 128, 124, 129, 127, 127, 128, 126, 128, 126, 128, 129, 125, 128, 127, 128, 126, 129, 127, 126, 128, 127, 128, 127, 130, 125, 127, 130, 125, 128, 127, 128, 125, 129, 128, 126, 131, 124, 130, 126, 128, 130, 123, 132, 126, 125, 129, 128, 127, 126, 128, 127, 127, 128, 126, 128, 127, 129, 126, 127, 128, 128, 126, 128, 128, 125, 129, 128, 126, 129, 126, 127, 128, 128, 127, 127, 129, 127, 128, 128, 128, 127, 128, 127, 127, 127, 128, 126, 128, 129, 124, 129, 128, 126, 128, 127, 127, 128, 126, 128, 127, 127, 127, 127, 127, 128, 126, 128, 127, 127, 128, 126, 128, 127, 127, 128, 126, 128, 127, 127, 128, 126, 129, 126, 128, 128, 127, 128, 126, 128, 126, 128, 127, 128, 127, 128, 128, 126, 129, 127, 128, 127, 127, 128, 127, 128, 127, 128, 128, 126, 129, 127, 126, 129, 127, 128, 127, 127, 128, 127, 128, 128, 126, 129, 127, 126, 129, 126, 128, 127, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 126, 128, 128, 127, 127, 127, 128, 127, 127, 129, 126, 128, 128, 127, 127, 128, 128, 127, 128, 127, 127, 128, 127, 128, 128, 128, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 127, 128, 126, 128, 126, 129, 126, 127, 128, 127, 128, 127, 127, 128, 126, 128, 128, 127, 127, 127, 127, 127, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 127, 128, 127, 128, 127, 127, 128, 126, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 127, 128, 127, 128, 128, 127, 128, 127, 127, 128, 127, 127, 127, 128, 128, 127, 128, 127, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 127, 128, 127, 128, 127, 127, 128, 127, 128, 127, 128, 127, 128, 128, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 127, 128, 127, 128, 128, 127, 128, 127, 127, 128, 127, 128, 127, 128, 127, 127, 128, 127, 128, 128, 127, 128, 128, 127, 128, 127, 127, 128, 127, 128, 128, 127, 128, 128, 127, 128, 127, 128, 
};
const unsigned char ride[] PROGMEM = {
  124, 126, 132, 122, 140, 119, 125, 130, 127, 120, 146, 119, 126, 113, 153, 118, 117, 137, 126, 139, 102, 145, 120, 137, 122, 128, 121, 129, 146, 114, 110, 152, 120, 138, 93, 173, 107, 112, 161, 87, 160, 98, 179, 66, 163, 123, 120, 123, 163, 86, 133, 172, 64, 166, 108, 144, 107, 163, 110, 95, 146, 166, 59, 193, 102, 120, 113, 163, 108, 115, 163, 102, 149, 81, 188, 78, 161, 106, 133, 139, 113, 135, 147, 100, 144, 59, 236, 79, 84, 239, 0, 237, 89, 106, 153, 83, 224, 35, 144, 179, 86, 137, 74, 255, 9, 178, 111, 109, 189, 60, 179, 78, 177, 97, 142, 129, 104, 172, 87, 124, 163, 104, 134, 110, 172, 82, 159, 98, 131, 166, 82, 163, 99, 139, 133, 138, 94, 147, 116, 157, 110, 119, 129, 128, 132, 129, 103, 179, 122, 80, 164, 96, 164, 80, 148, 160, 113, 138, 91, 116, 167, 130, 106, 96, 189, 137, 100, 115, 131, 164, 139, 70, 134, 143, 111, 166, 91, 137, 152, 111, 110, 170, 94, 130, 126, 130, 142, 123, 123, 123, 126, 131, 121, 129, 144, 141, 84, 164, 124, 69, 186, 91, 189, 59, 153, 129, 154, 115, 95, 144, 126, 144, 95, 158, 73, 236, 40, 163, 103, 129, 173, 50, 201, 79, 142, 154, 75, 188, 55, 184, 163, 13, 235, 39, 212, 76, 144, 119, 109, 199, 22, 228, 69, 134, 148, 117, 159, 57, 192, 82, 106, 199, 99, 130, 117, 143, 90, 187, 133, 55, 145, 145, 117, 157, 83, 173, 117, 105, 148, 119, 126, 105, 194, 57, 162, 128, 92, 131, 189, 84, 153, 99, 149, 145, 38, 209, 112, 121, 128, 107, 143, 181, 57, 163, 84, 176, 132, 111, 102, 142, 124, 134, 173, 46, 188, 104, 130, 87, 205, 66, 152, 147, 115, 144, 73, 134, 166, 104, 109, 211, 54, 144, 119, 136, 154, 87, 148, 80, 197, 127, 42, 217, 78, 132, 169, 91, 134, 174, 42, 166, 107, 154, 124, 120, 175, 60, 173, 83, 170, 63, 196, 146, 48, 178, 132, 85, 181, 109, 110, 140, 98, 159, 126, 151, 87, 184, 35, 174, 168, 27, 224, 96, 157, 94, 90, 208, 38, 193, 113, 118, 172, 42, 220, 45, 177, 143, 68, 195, 54, 193, 71, 154, 185, 21, 218, 54, 178, 123, 82, 185, 82, 208, 32, 174, 109, 151, 150, 17, 230, 95, 144, 129, 121, 134, 77, 173, 58, 214, 133, 75, 182, 66, 204, 61, 127, 167, 63, 198, 111, 98, 135, 179, 69, 122, 199, 76, 94, 153, 168, 61, 211, 102, 53, 220, 83, 146, 61, 174, 200, 28, 198, 69, 131, 195, 77, 78, 209, 120, 70, 185, 108, 123, 99, 202, 75, 107, 212, 32, 191, 151, 63, 108, 155, 169, 80, 154, 83, 153, 170, 137, 37, 167, 186, 70, 98, 134, 196, 65, 185, 114, 63, 169, 129, 94, 218, 17, 208, 111, 117, 169, 24, 227, 49, 188, 86, 125, 208, 58, 118, 168, 87, 196, 42, 180, 92, 131, 214, 0, 252, 127, 52, 129, 192, 72, 121, 214, 59, 113, 209, 44, 135, 110, 199, 99, 98, 203, 31, 218, 80, 107, 168, 50, 225, 67, 157, 140, 67, 216, 36, 217, 43, 166, 134, 107, 161, 67, 197, 133, 52, 164, 153, 100, 167, 63, 113, 206, 147, 29, 173, 100, 215, 37, 145, 143, 111, 161, 105, 149, 76, 209, 50, 138, 197, 87, 81, 163, 113, 164, 98, 141, 59, 220, 157, 52, 116, 135, 176, 104, 149, 63, 171, 104, 166, 122, 101, 158, 120, 66, 177, 143, 138, 94, 182, 70, 87, 236, 52, 149, 96, 156, 127, 127, 135, 104, 130, 168, 106, 91, 197, 85, 125, 187, 38, 130, 138, 195, 48, 171, 160, 75, 155, 70, 174, 63, 248, 53, 140, 164, 65, 148, 91, 237, 28, 140, 215, 32, 163, 110, 143, 128, 84, 196, 73, 165, 125, 107, 178, 49, 179, 122, 55, 237, 64, 154, 134, 99, 173, 44, 213, 52, 170, 176, 27, 209, 85, 153, 109, 103, 191, 45, 162, 132, 184, 94, 101, 139, 91, 212, 35, 165, 142, 128, 142, 117, 152, 54, 126, 213, 40, 176, 121, 130, 160, 81, 187, 53, 163, 63, 174, 176, 96, 66, 213, 108, 63, 210, 127, 61, 131, 227, 30, 146, 163, 67, 151, 199, 55, 161, 71, 153, 136, 170, 106, 49, 229, 78, 110, 138, 165, 73, 151, 201, 78, 59, 194, 78, 141, 193, 115, 42, 225, 104, 73, 181, 94, 152, 55, 206, 120, 182, 69, 64, 170, 196, 77, 108, 141, 95, 198, 88, 211, 26, 101, 224, 19, 229, 71, 120, 196, 53, 222, 15, 198, 100, 93, 218, 34, 239, 46, 100, 216, 31, 212, 126, 49, 126, 188, 159, 84, 162, 21, 244, 113, 69, 127, 124, 235, 9, 189, 125, 117, 101, 108, 218, 71, 121, 169, 61, 189, 126, 67, 204, 67, 158, 105, 123, 200, 30, 180, 129, 97, 182, 58, 166, 150, 114, 138, 47, 192, 114, 105, 207, 45, 177, 115, 111, 72, 241, 116, 63, 153, 122, 156, 52, 246, 0, 233, 103, 60, 233, 23, 170, 187, 17, 219, 122, 54, 206, 91, 134, 79, 185, 93, 172, 104, 125, 98, 152, 142, 140, 104, 100, 202, 15, 250, 69, 82, 219, 68, 114, 198, 114, 40, 171, 207, 31, 141, 175, 67, 146, 215, 16, 147, 178, 81, 94, 170, 187, 31, 191, 76, 185, 87, 144, 95, 124, 174, 130, 118, 144, 122, 48, 199, 105, 108, 152, 176, 34, 238, 33, 163, 142, 84, 192, 28, 241, 50, 147, 138, 78, 220, 61, 158, 87, 127, 236, 0, 232, 80, 119, 182, 67, 135, 79, 230, 108, 96, 204, 39, 118, 173, 70, 160, 196, 50, 113, 251, 0, 197, 110, 124, 156, 92, 183, 114, 73, 146, 115, 160, 146, 38, 225, 50, 248, 33, 141, 143, 62, 231, 46, 123, 203, 68, 145, 128, 146, 162, 13, 204, 67, 199, 100, 96, 217, 86, 65, 201, 103, 65, 189, 151, 89, 143, 184, 54, 83, 226, 102, 44, 255, 21, 169, 169, 117, 57, 118, 248, 32, 111, 183, 116, 124, 170, 98, 107, 130, 110, 141, 108, 154, 157, 43, 255, 0, 174, 173, 55, 185, 54, 218, 84, 116, 156, 49, 197, 151, 74, 176, 42, 223, 95, 107, 182, 29, 206, 161, 45, 110, 153, 226, 21, 149, 155, 87, 163, 68, 220, 18, 213, 90, 134, 184, 52, 138, 104, 209, 48, 123, 233, 37, 166, 94, 132, 176, 47, 198, 43, 214, 111, 100, 201, 18, 195, 109, 77, 206, 79, 200, 36, 155, 194, 35, 177, 80, 180, 79, 168, 151, 60, 160, 161, 37, 213, 105, 79, 200, 82, 163, 124, 125, 64, 207, 96, 72, 215, 140, 65, 109, 149, 156, 72, 206, 80, 119, 179, 66, 191, 44, 223, 55, 147, 162, 56, 217, 41, 147, 165, 93, 174, 49, 231, 63, 86, 249, 0, 206, 122, 73, 147, 191, 46, 163, 153, 96, 210, 11, 166, 74, 198, 138, 70, 212, 41, 193, 75, 128, 185, 52, 195, 90, 105, 216, 70, 63, 239, 109, 26, 216, 133, 98, 172, 105, 86, 127, 163, 86, 138, 179, 102, 154, 103, 119, 134, 97, 200, 45, 125, 253, 0, 187, 117, 115, 147, 75, 209, 37, 183, 162, 58, 201, 71, 125, 168, 82, 155, 52, 221, 147, 63, 98, 171, 177, 56, 178, 52, 195, 115, 141, 142, 64, 191, 34, 203, 113, 98, 196, 53, 208, 62, 118, 197, 39, 184, 156, 49, 176, 181, 35, 151, 130, 115, 118, 128, 184, 101, 169, 89, 94, 173, 101, 111, 98, 205, 107, 133, 177, 17, 189, 111, 142, 86, 135, 205, 42, 157, 175, 113, 57, 146, 114, 148, 188, 42, 201, 118, 67, 175, 69, 215, 37, 162, 172, 91, 154, 114, 176, 0, 235, 80, 105, 221, 26, 163, 181, 128, 60, 138, 103, 166, 168, 32, 240, 50, 126, 200, 20, 226, 50, 169, 143, 50, 210, 93, 183, 52, 136, 184, 28, 229, 40, 184, 151, 61, 190, 44, 196, 116, 161, 56, 117, 208, 87, 147, 159, 66, 71, 242, 78, 89, 200, 105, 89, 185, 98, 161, 88, 149, 131, 46, 251, 38, 166, 149, 51, 174, 180, 88, 60, 177, 185, 47, 167, 154, 32, 219, 111, 58, 186, 176, 82, 87, 168, 111, 82, 236, 84, 99, 156, 80, 132, 200, 137, 69, 92, 188, 114, 80, 216, 108, 65, 162, 145, 60, 253, 43, 94, 173, 182, 88, 71, 193, 63, 206, 80, 92, 221, 50, 153, 152, 90, 202, 30, 166, 110, 170, 95, 108, 181, 54, 213, 98, 129, 109, 102, 184, 67, 158, 172, 85, 101, 179, 130, 41, 253, 41, 146, 161, 65, 148, 107, 218, 34, 151, 174, 71, 162, 108, 172, 37, 186, 136, 54, 242, 34, 195, 51, 180, 128, 81, 213, 46, 195, 99, 115, 100, 147, 185, 42, 166, 148, 105, 186, 27, 192, 99, 144, 125, 68, 230, 60, 186, 74, 122, 175, 36, 250, 64, 96, 193, 62, 206, 82, 127, 91, 177, 107, 113, 171, 127, 156, 42, 165, 120, 124, 123, 103, 161, 151, 136, 148, 18, 181, 185, 18, 215, 91, 115, 201, 28, 183, 122, 123, 92, 134, 215, 35, 162, 155, 115, 101, 121, 148, 107, 100, 210, 78, 169, 129, 36, 199, 114, 166, 52, 143, 157, 113, 204, 48, 100, 175, 123, 76, 177, 168, 16, 232, 103, 74, 169, 165, 110, 56, 209, 87, 112, 200, 87, 101, 149, 116, 127, 91, 196, 105, 169, 106, 81, 174, 113, 86, 141, 175, 58, 198, 107, 163, 98, 59, 236, 20, 188, 165, 43, 198, 55, 224, 38, 170, 132, 79, 228, 0, 253, 59, 118, 183, 68, 172, 107, 144, 80, 141, 173, 92, 206, 11, 182, 136, 78, 189, 35, 230, 82, 156, 118, 104, 146, 88, 197, 65, 131, 209, 24, 175, 159, 78, 116, 144, 174, 37, 207, 119, 63, 217, 106, 59, 207, 108, 103, 94, 179, 177, 49, 152, 88, 161, 181, 50, 118, 171, 169, 96, 56, 234, 34, 168, 180, 34, 172, 123, 85, 204, 132, 19, 240, 69, 137, 181, 29, 199, 129, 83, 133, 109, 233, 35, 122, 178, 90, 186, 43, 180, 121, 99, 210, 21, 153, 191, 45, 213, 46, 181, 120, 102, 149, 73, 231, 59, 98, 206, 105, 71, 211, 59, 160, 172, 24, 204, 96, 84, 218, 79, 186, 54, 162, 112, 86, 237, 16, 201, 82, 172, 115, 67, 225, 55, 113, 218, 92, 55, 205, 138, 44, 217, 70, 160, 120, 86, 211, 17, 240, 62, 129, 178, 42, 210, 74, 170, 97, 101, 216, 32, 192, 97, 131, 151, 74, 194, 46, 192, 111, 143, 145, 60, 186, 70, 192, 72, 155, 165, 52, 184, 47, 215, 109, 69, 209, 93, 138, 111, 148, 115, 138, 147, 49, 184, 90, 125, 162, 149, 147, 17, 192, 175, 44, 143, 192, 42, 189, 150, 37, 191, 109, 134, 79, 174, 168, 36, 227, 75, 96, 202, 74, 113, 113, 221, 66, 111, 221, 25, 132, 216, 80, 58, 196, 114, 104, 189, 143, 37, 126, 229, 62, 77, 209, 93, 169, 133, 27, 224, 62, 168, 111, 106, 205, 35, 205, 95, 110, 173, 79, 136, 121, 153, 113, 96, 234, 37, 117, 211, 47, 165, 138, 48, 217, 131, 67, 186, 61, 196, 77, 133, 175, 27, 236, 75, 127, 169, 57, 205, 34, 207, 125, 74, 189, 53, 205, 70, 178, 50, 200, 116, 62, 255, 3, 196, 117, 117, 125, 119, 159, 65, 176, 141, 88, 210, 25, 168, 148, 82, 184, 47, 222, 54, 162, 153, 77, 134, 96, 229, 41, 167, 143, 47, 209, 137, 56, 121, 238, 32, 137, 161, 96, 168, 97, 122, 115, 186, 84, 78, 181, 150, 135, 115, 98, 121, 149, 134, 96, 157, 104, 179, 53, 176, 164, 23, 203, 116, 171, 22, 194, 140, 58, 213, 50, 182, 136, 63, 221, 27, 187, 151, 38, 179, 143, 159, 79, 127, 73, 203, 138, 75, 144, 173, 107, 88, 152, 130, 104, 147, 157, 81, 110, 197, 111, 58, 236, 51, 145, 149, 97, 108, 139, 204, 51, 124, 187, 52, 175, 142, 63, 160, 171, 117, 91, 142, 85, 216, 52, 164, 110, 116, 212, 24, 179, 125, 112, 119, 116, 184, 75, 159, 148, 53, 217, 53, 168, 132, 64, 214, 74, 160, 101, 140, 137, 76, 211, 72, 152, 74, 151, 192, 59, 178, 45, 213, 87, 123, 163, 75, 178, 104, 175, 61, 114, 210, 30, 182, 133, 113, 160, 72, 189, 52, 179, 135, 68, 168, 166, 71, 159, 133, 77, 170, 113, 129, 109, 160, 88, 161, 174, 61, 107, 170, 159, 89, 66, 244, 53, 126, 199, 28, 197, 118, 78, 134, 181, 115, 118, 141, 122, 149, 61, 164, 116, 116, 195, 29, 216, 114, 73, 142, 187, 113, 47, 208, 82, 130, 200, 61, 101, 197, 97, 114, 98, 185, 118, 149, 111, 98, 133, 142, 92, 153, 192, 29, 192, 102, 160, 70, 139, 185, 69, 160, 90, 126, 179, 98, 138, 77, 197, 114, 90, 177, 41, 231, 82, 108, 187, 74, 112, 176, 93, 108, 188, 123, 84, 197, 59, 139, 142, 91, 188, 62, 216, 34, 171, 139, 75, 200, 88, 138, 90, 140, 199, 39, 166, 160, 50, 206, 81, 146, 79, 174, 153, 57, 206, 81, 103, 172, 119, 143, 108, 107, 141, 127, 133, 119, 121, 117, 190, 76, 157, 121, 103, 181, 82, 109, 132, 173, 95, 93, 207, 88, 143, 120, 68, 227, 67, 132, 179, 43, 171, 164, 45, 209, 76, 149, 123, 101, 186, 43, 228, 67, 131, 166, 44, 181, 135, 133, 108, 89, 218, 96, 60, 187, 156, 71, 141, 120, 109, 206, 92, 94, 111, 202, 107, 88, 190, 41, 176, 156, 51, 188, 145, 78, 122, 192, 66, 130, 158, 107, 128, 112, 183, 56, 177, 135, 97, 144, 117, 133, 82, 191, 125, 98, 175, 61, 159, 144, 109, 118, 95, 226, 46, 158, 142, 62, 215, 93, 87, 126, 176, 160, 43, 180, 115, 111, 167, 86, 132, 101, 215, 82, 81, 204, 75, 160, 127, 90, 122, 163, 164, 59, 175, 71, 160, 164, 48, 213, 60, 155, 153, 87, 163, 85, 155, 108, 121, 177, 69, 169, 115, 147, 128, 69, 182, 81, 154, 144, 104, 139, 166, 69, 123, 180, 96, 85, 176, 149, 62, 184, 131, 62, 165, 176, 52, 160, 128, 112, 152, 148, 94, 91, 202, 94, 77, 175, 140, 116, 125, 154, 124, 70, 163, 108, 106, 216, 77, 104, 197, 53, 170, 96, 145, 151, 57, 174, 125, 153, 138, 66, 114, 223, 69, 113, 127, 132, 163, 110, 118, 102, 177, 101, 104, 179, 100, 145, 134, 84, 181, 62, 178, 139, 81, 121, 136, 192, 91, 103, 106, 160, 169, 111, 79, 114, 204, 111, 90, 144, 99, 193, 65, 170, 104, 115, 191, 42, 195, 116, 95, 139, 112, 157, 93, 173, 129, 64, 222, 55, 134, 174, 58, 158, 175, 82, 121, 143, 114, 99, 189, 124, 92, 134, 121, 189, 30, 189, 140, 65, 180, 126, 104, 144, 150, 72, 124, 214, 42, 161, 126, 91, 206, 60, 173, 65, 190, 110, 95, 187, 57, 196, 98, 108, 180, 55, 190, 98, 110, 181, 84, 158, 70, 183, 128, 117, 113, 105, 186, 99, 96, 179, 92, 124, 195, 54, 138, 169, 71, 146, 165, 93, 132, 138, 148, 71, 171, 102, 110, 200, 71, 98, 183, 154, 62, 113, 189, 138, 59, 187, 93, 102, 203, 83, 91, 171, 133, 122, 129, 161, 73, 92, 217, 73, 118, 195, 49, 160, 167, 51, 176, 115, 168, 68, 117, 209, 52, 168, 112, 100, 186, 96, 125, 92, 178, 147, 68, 189, 69, 158, 151, 78, 112, 165, 142, 111, 170, 68, 137, 126, 107, 196, 65, 172, 103, 114, 176, 62, 183, 87, 157, 113, 99, 176, 142, 104, 91, 132, 182, 87, 110, 193, 60, 184, 115, 103, 115, 136, 167, 70, 140, 165, 109, 137, 122, 139, 120, 95, 131, 121, 177, 93, 152, 132, 114, 110, 118, 162, 82, 175, 119, 100, 186, 105, 89, 112, 192, 99, 102, 191, 58, 179, 115, 132, 135, 81, 170, 86, 158, 130, 96, 165, 149, 98, 99, 153, 104, 132, 169, 110, 104, 178, 102, 85, 180, 80, 161, 138, 82, 167, 131, 149, 73, 106, 190, 98, 160, 84, 115, 180, 112, 157, 80, 117, 171, 97, 117, 157, 117, 123, 130, 146, 105, 131, 130, 125, 114, 135, 177, 82, 122, 146, 116, 98, 176, 120, 82, 176, 124, 125, 157, 59, 143, 158, 117, 146, 75, 184, 85, 135, 164, 58, 197, 107, 115, 116, 133, 181, 44, 179, 142, 67, 178, 148, 60, 139, 175, 81, 142, 163, 99, 94, 190, 101, 78, 194, 126, 79, 170, 96, 120, 180, 95, 145, 98, 129, 175, 59, 170, 130, 93, 175, 81, 179, 67, 168, 132, 73, 210, 60, 169, 104, 117, 180, 66, 154, 151, 92, 141, 146, 117, 82, 178, 100, 140, 155, 97, 128, 96, 205, 67, 157, 128, 89, 174, 109, 139, 74, 191, 124, 62, 206, 95, 122, 123, 134, 137, 100, 182, 69, 146, 170, 77, 111, 193, 94, 88, 197, 86, 148, 116, 100, 179, 99, 148, 92, 126, 169, 104, 158, 101, 139, 88, 152, 149, 68, 194, 100, 116, 175, 71, 168, 102, 119, 167, 90, 150, 94, 164, 122, 98, 146, 161, 99, 99, 158, 131, 133, 144, 75, 131, 174, 91, 119, 124, 175, 100, 148, 103, 133, 136, 95, 174, 72, 162, 157, 72, 172, 97, 136, 149, 69, 198, 83, 137, 166, 66, 166, 104, 124, 161, 84, 167, 90, 154, 163, 54, 164, 128, 136, 96, 133, 174, 66, 158, 163, 59, 163, 154, 68, 134, 182, 69, 161, 146, 82, 153, 115, 136, 93, 157, 147, 111, 130, 127, 130, 123, 124, 143, 69, 185, 117, 101, 184, 80, 147, 94, 176, 95, 112, 165, 121, 125, 150, 110, 101, 156, 98, 157, 115, 106, 185, 82, 137, 157, 75, 184, 71, 157, 124, 136, 145, 84, 159, 90, 163, 97, 158, 128, 76, 196, 103, 122, 143, 101, 129, 141, 135, 83, 168, 126, 126, 132, 116, 164, 62, 157, 136, 97, 185, 67, 157, 144, 101, 139, 92, 187, 85, 126, 159, 127, 129, 107, 96, 164, 158, 81, 113, 160, 155, 85, 159, 93, 118, 189, 77, 120, 180, 85, 125, 150, 138, 76, 166, 124, 110, 164, 88, 153, 85, 184, 114, 88, 179, 121, 82, 146, 163, 85, 155, 142, 63, 182, 118, 106, 150, 119, 170, 54, 162, 141, 66, 208, 96, 109, 162, 91, 174, 70, 173, 120, 91, 188, 82, 148, 103, 157, 100, 121, 173, 100, 147, 111, 113, 138, 129, 137, 114, 126, 109, 182, 103, 98, 188, 65, 160, 125, 114, 138, 127, 159, 64, 165, 122, 91, 197, 86, 125, 138, 147, 92, 118, 188, 99, 96, 130, 182, 68, 167, 121, 106, 178, 61, 175, 112, 114, 151, 78, 186, 108, 128, 143, 84, 159, 123, 158, 65, 153, 169, 60, 174, 112, 124, 109, 148, 151, 79, 174, 99, 140, 135, 109, 117, 126, 169, 77, 156, 128, 136, 135, 68, 179, 121, 114, 157, 72, 155, 160, 109, 116, 109, 163, 127, 94, 157, 109, 129, 166, 82, 143, 128, 142, 88, 144, 169, 67, 166, 135, 116, 120, 111, 150, 99, 140, 152, 114, 165, 77, 128, 144, 129, 107, 133, 152, 93, 153, 147, 103, 103, 164, 127, 86, 163, 128, 107, 172, 81, 151, 127, 115, 115, 125, 190, 60, 172, 118, 91, 185, 87, 140, 126, 101, 169, 112, 148, 119, 106, 140, 127, 114, 118, 177, 87, 132, 169, 98, 95, 169, 112, 114, 179, 62, 168, 143, 65, 188, 101, 142, 107, 117, 176, 72, 172, 100, 146, 133, 100, 146, 113, 128, 117, 160, 131, 123, 96, 121, 177, 85, 161, 113, 96, 177, 109, 150, 84, 163, 104, 117, 171, 73, 170, 118, 105, 164, 99, 145, 133, 105, 146, 122, 121, 108, 167, 126, 99, 117, 177, 110, 91, 156, 131, 145, 117, 119, 96, 163, 150, 70, 141, 173, 84, 137, 168, 78, 120, 173, 102, 123, 130, 133, 106, 148, 158, 69, 176, 97, 149, 122, 99, 187, 60, 161, 136, 91, 175, 109, 133, 91, 165, 135, 84, 179, 75, 176, 107, 110, 163, 81, 175, 121, 99, 137, 145, 102, 123, 181, 71, 151, 136, 96, 158, 126, 142, 67, 176, 126, 87, 178, 114, 112, 125, 162, 113, 90, 179, 95, 121, 171, 98, 119, 117, 181, 89, 115, 165, 93, 141, 158, 84, 126, 169, 81, 143, 169, 85, 129, 106, 157, 141, 94, 176, 70, 170, 109, 133, 131, 95, 182, 73, 159, 136, 100, 167, 76, 158, 135, 104, 162, 83, 162, 108, 148, 93, 153, 131, 106, 161, 78, 197, 73, 131, 161, 89, 162, 85, 151, 141, 96, 167, 95, 163, 84, 139, 159, 79, 171, 94, 121, 158, 136, 126, 85, 133, 181, 77, 141, 144, 92, 180, 91, 116, 174, 69, 177, 94, 138, 142, 96, 175, 80, 157, 129, 108, 109, 165, 129, 90, 169, 134, 82, 145, 150, 90, 124, 179, 81, 144, 146, 89, 168, 91, 159, 93, 141, 155, 74, 176, 120, 93, 145, 155, 120, 77, 184, 111, 105, 172, 108, 104, 146, 138, 84, 167, 121, 131, 127, 146, 111, 92, 167, 117, 121, 127, 110, 160, 129, 129, 126, 86, 183, 89, 127, 149, 126, 138, 108, 117, 122, 162, 106, 130, 134, 114, 160, 106, 105, 169, 121, 97, 136, 154, 88, 157, 131, 103, 170, 88, 142, 132, 111, 132, 105, 180, 100, 129, 145, 87, 170, 96, 153, 110, 116, 181, 63, 158, 139, 104, 127, 121, 164, 85, 163, 116, 96, 188, 96, 110, 146, 131, 96, 169, 105, 124, 167, 76, 149, 138, 123, 123, 102, 147, 145, 126, 129, 98, 140, 138, 115, 127, 130, 141, 113, 118, 156, 99, 144, 136, 101, 167, 79, 160, 125, 106, 166, 68, 180, 114, 110, 156, 92, 176, 87, 142, 125, 119, 153, 102, 132, 108, 162, 120, 128, 124, 130, 146, 72, 167, 116, 121, 159, 83, 169, 95, 156, 114, 102, 182, 73, 158, 133, 92, 157, 141, 89, 144, 155, 81, 129, 171, 117, 85, 148, 170, 76, 147, 144, 82, 154, 154, 107, 84, 182, 122, 96, 173, 89, 143, 141, 96, 144, 113, 164, 93, 127, 162, 89, 157, 116, 118, 110, 170, 126, 93, 163, 103, 136, 132, 116, 136, 102, 167, 116, 125, 139, 91, 173, 89, 163, 106, 127, 144, 96, 169, 80, 162, 128, 94, 160, 119, 137, 124, 115, 151, 105, 134, 109, 140, 147, 91, 138, 151, 141, 78, 137, 173, 75, 139, 158, 80, 154, 153, 79, 144, 149, 97, 128, 135, 155, 101, 143, 109, 121, 156, 108, 112, 142, 162, 71, 163, 137, 107, 120, 126, 152, 91, 164, 126, 91, 173, 100, 134, 130, 121, 139, 97, 168, 98, 143, 139, 87, 172, 99, 136, 133, 104, 155, 118, 143, 118, 112, 120, 157, 110, 115, 161, 102, 150, 121, 119, 106, 150, 138, 91, 176, 93, 125, 159, 96, 157, 102, 128, 147, 110, 118, 135, 150, 118, 129, 96, 162, 115, 124, 127, 117, 169, 80, 154, 129, 101, 170, 86, 137, 148, 107, 161, 88, 146, 122, 125, 143, 106, 137, 107, 162, 123, 100, 169, 97, 119, 162, 101, 124, 150, 129, 97, 152, 117, 118, 146, 112, 134, 121, 152, 121, 90, 173, 108, 121, 141, 111, 150, 101, 160, 97, 139, 151, 74, 172, 113, 130, 124, 113, 160, 91, 165, 111, 99, 182, 91, 144, 116, 115, 168, 92, 136, 140, 106, 141, 122, 137, 112, 138, 134, 102, 161, 99, 146, 123, 117, 151, 91, 150, 153, 83, 131, 147, 130, 128, 119, 105, 145, 150, 96, 143, 126, 146, 100, 129, 141, 95, 168, 117, 114, 136, 132, 140, 94, 151, 123, 110, 159, 106, 126, 141, 128, 96, 163, 133, 85, 153, 151, 93, 110, 183, 94, 128, 155, 79, 152, 138, 128, 117, 110, 164, 94, 146, 129, 110, 152, 112, 123, 113, 165, 116, 108, 165, 103, 122, 133, 120, 124, 163, 115, 96, 162, 98, 153, 114, 121, 154, 88, 157, 129, 113, 146, 89, 159, 134, 95, 158, 105, 143, 121, 139, 119, 109, 163, 99, 122, 159, 105, 146, 109, 136, 130, 112, 154, 88, 154, 131, 136, 123, 111, 129, 129, 132, 126, 128, 117, 132, 138, 127, 149, 88, 125, 164, 85, 155, 118, 126, 151, 113, 109, 142, 123, 116, 134, 147, 118, 133, 132, 99, 158, 102, 142, 129, 116, 142, 95, 160, 135, 89, 151, 141, 122, 102, 147, 115, 125, 160, 112, 113, 129, 141, 107, 142, 132, 113, 153, 126, 99, 139, 127, 130, 106, 162, 112, 128, 140, 106, 151, 91, 164, 126, 88, 166, 122, 106, 165, 107, 103, 148, 154, 102, 106, 146, 150, 110, 121, 140, 114, 124, 142, 131, 91, 172, 120, 104, 163, 96, 136, 145, 98, 136, 127, 155, 93, 127, 159, 90, 149, 135, 119, 107, 148, 143, 103, 128, 131, 116, 143, 146, 100, 118, 159, 117, 114, 152, 99, 137, 147, 113, 106, 156, 132, 93, 174, 100, 117, 154, 103, 134, 135, 129, 132, 108, 151, 109, 123, 151, 97, 158, 97, 140, 147, 104, 143, 98, 164, 116, 112, 155, 98, 147, 133, 113, 110, 156, 130, 107, 146, 119, 128, 106, 158, 126, 104, 158, 90, 153, 139, 93, 156, 116, 138, 118, 120, 137, 120, 133, 121, 120, 157, 125, 97, 134, 141, 144, 110, 123, 115, 144, 151, 81, 141, 156, 91, 147, 142, 110, 107, 154, 132, 98, 157, 130, 98, 142, 149, 93, 143, 146, 105, 115, 159, 119, 109, 160, 103, 117, 160, 113, 121, 117, 152, 128, 109, 148, 99, 145, 137, 111, 117, 150, 134, 110, 139, 127, 115, 123, 143, 118, 115, 164, 102, 129, 138, 107, 160, 92, 155, 111, 122, 156, 98, 151, 104, 143, 132, 99, 168, 99, 122, 161, 97, 146, 121, 122, 131, 120, 136, 112, 146, 145, 96, 134, 140, 114, 117, 138, 149, 101, 145, 134, 99, 133, 144, 108, 136, 146, 93, 157, 122, 112, 143, 105, 157, 106, 132, 143, 98, 153, 120, 137, 116, 121, 141, 100, 149, 131, 115, 153, 104, 128, 136, 113, 121, 137, 144, 116, 136, 128, 111, 125, 139, 107, 154, 126, 102, 153, 123, 136, 129, 91, 158, 132, 96, 159, 112, 129, 144, 110, 122, 130, 127, 142, 108, 134, 137, 130, 125, 116, 147, 93, 147, 136, 101, 157, 120, 116, 144, 116, 123, 129, 144, 110, 122, 157, 113, 123, 131, 109, 142, 147, 111, 116, 128, 155, 102, 129, 145, 103, 139, 132, 121, 112, 153, 129, 98, 167, 106, 114, 157, 105, 122, 153, 128, 94, 160, 118, 106, 149, 133, 125, 103, 151, 137, 100, 137, 121, 125, 145, 126, 129, 107, 149, 113, 128, 148, 93, 157, 114, 117, 155, 109, 138, 108, 138, 141, 99, 162, 102, 126, 142, 124, 137, 101, 143, 118, 124, 151, 115, 127, 110, 155, 123, 121, 130, 106, 170, 101, 137, 117, 127, 144, 107, 146, 112, 147, 109, 121, 162, 92, 143, 133, 106, 154, 120, 119, 118, 144, 126, 108, 151, 139, 93, 139, 142, 108, 147, 126, 108, 124, 154, 122, 99, 153, 129, 115, 147, 104, 141, 123, 128, 119, 128, 156, 97, 129, 152, 107, 113, 158, 114, 119, 143, 132, 117, 119, 136, 118, 127, 156, 97, 129, 145, 119, 142, 121, 108, 134, 133, 124, 127, 124, 137, 127, 136, 100, 148, 129, 100, 168, 107, 116, 156, 95, 150, 124, 121, 136, 101, 163, 107, 133, 142, 115, 116, 127, 155, 97, 138, 143, 98, 152, 130, 117, 115, 143, 127, 117, 148, 102, 141, 139, 119, 122, 125, 130, 114, 148, 126, 109, 161, 101, 132, 139, 112, 143, 106, 139, 133, 123, 144, 114, 121, 122, 138, 122, 124, 150, 96, 152, 127, 108, 147, 116, 135, 129, 116, 123, 132, 150, 109, 129, 137, 116, 120, 128, 154, 102, 143, 125, 118, 135, 123, 129, 112, 161, 110, 121, 150, 113, 125, 125, 131, 124, 135, 125, 115, 142, 137, 122, 113, 130, 129, 131, 116, 136, 148, 92, 149, 129, 114, 141, 112, 142, 111, 140, 140, 99, 147, 120, 127, 121, 135, 137, 98, 158, 120, 118, 146, 111, 113, 155, 121, 111, 144, 126, 138, 110, 129, 123, 125, 156, 106, 117, 147, 127, 121, 136, 133, 102, 140, 136, 112, 127, 148, 118, 109, 163, 97, 140, 129, 125, 131, 112, 152, 104, 140, 130, 109, 146, 119, 140, 126, 107, 151, 108, 142, 119, 122, 150, 111, 133, 110, 154, 120, 110, 157, 110, 132, 112, 141, 138, 109, 144, 114, 137, 115, 140, 126, 115, 153, 96, 144, 133, 114, 141, 102, 156, 121, 119, 140, 108, 145, 122, 134, 116, 125, 140, 105, 149, 123, 122, 138, 111, 141, 130, 134, 107, 131, 140, 114, 132, 126, 129, 124, 135, 111, 145, 128, 108, 145, 122, 141, 110, 117, 157, 106, 139, 125, 116, 144, 118, 127, 117, 152, 111, 128, 143, 104, 148, 122, 114, 126, 152, 116, 117, 147, 111, 135, 116, 140, 132, 108, 144, 122, 139, 120, 115, 138, 120, 140, 116, 119, 146, 122, 134, 120, 122, 139, 121, 123, 136, 113, 146, 127, 115, 142, 113, 138, 108, 144, 135, 105, 154, 108, 128, 146, 108, 129, 130, 128, 118, 139, 144, 112, 115, 132, 146, 102, 148, 124, 110, 151, 117, 128, 122, 138, 119, 121, 151, 104, 141, 134, 105, 147, 119, 134, 114, 131, 143, 106, 149, 119, 115, 147, 120, 116, 126, 140, 130, 122, 140, 120, 112, 133, 141, 109, 142, 130, 107, 155, 116, 123, 133, 125, 122, 127, 141, 110, 144, 130, 102, 157, 116, 124, 130, 115, 149, 119, 130, 129, 119, 127, 132, 119, 140, 123, 118, 138, 130, 136, 114, 122, 124, 140, 135, 101, 145, 132, 113, 146, 107, 146, 115, 132, 129, 116, 153, 99, 138, 142, 114, 122, 133, 129, 121, 139, 124, 121, 138, 122, 126, 119, 149, 116, 118, 140, 126, 139, 114, 122, 120, 150, 125, 106, 150, 117, 122, 150, 110, 119, 145, 127, 115, 133, 126, 129, 117, 143, 127, 112, 152, 105, 143, 115, 133, 137, 109, 149, 105, 141, 131, 113, 146, 107, 143, 124, 122, 136, 108, 152, 113, 141, 116, 126, 139, 116, 136, 115, 149, 108, 134, 134, 111, 149, 111, 129, 133, 128, 137, 103, 148, 117, 125, 142, 112, 145, 105, 140, 134, 112, 138, 113, 142, 133, 108, 143, 130, 108, 144, 126, 116, 139, 124, 127, 117, 137, 144, 99, 139, 142, 102, 142, 125, 122, 131, 139, 124, 110, 152, 109, 128, 146, 114, 123, 135, 125, 124, 132, 132, 111, 136, 145, 112, 115, 150, 125, 114, 139, 116, 141, 112, 141, 125, 117, 150, 103, 137, 138, 113, 131, 124, 132, 120, 134, 130, 119, 143, 109, 141, 123, 121, 137, 123, 128, 134, 127, 116, 132, 126, 129, 130, 123, 129, 126, 134, 124, 118, 145, 125, 113, 130, 144, 111, 134, 136, 114, 134, 121, 127, 122, 140, 127, 123, 137, 117, 130, 123, 132, 121, 134, 135, 105, 152, 117, 128, 131, 114, 145, 111, 140, 127, 119, 144, 111, 135, 122, 131, 128, 114, 149, 116, 139, 119, 118, 143, 127, 118, 124, 142, 112, 136, 130, 133, 127, 109, 145, 114, 129, 142, 106, 146, 125, 128, 122, 123, 142, 112, 142, 118, 124, 147, 111, 122, 145, 123, 120, 124, 136, 130, 125, 129, 121, 126, 141, 112, 138, 127, 116, 151, 104, 141, 127, 113, 143, 127, 124, 126, 121, 135, 134, 125, 123, 122, 133, 129, 123, 129, 131, 121, 131, 137, 118, 118, 147, 116, 121, 147, 116, 117, 147, 122, 118, 135, 123, 129, 123, 136, 128, 125, 138, 111, 122, 148, 119, 120, 124, 143, 122, 121, 142, 109, 138, 136, 114, 129, 131, 128, 123, 127, 139, 111, 139, 129, 124, 136, 110, 141, 117, 131, 137, 110, 142, 125, 122, 121, 137, 137, 116, 136, 111, 144, 120, 127, 134, 111, 149, 117, 132, 122, 131, 132, 113, 147, 111, 137, 131, 111, 147, 113, 139, 119, 127, 136, 111, 143, 119, 131, 125, 134, 129, 111, 144, 115, 127, 145, 121, 118, 130, 134, 119, 138, 117, 126, 140, 126, 126, 115, 147, 112, 131, 138, 108, 145, 120, 118, 137, 127, 138, 111, 131, 136, 114, 134, 125, 122, 135, 139, 106, 141, 129, 114, 134, 137, 124, 111, 150, 115, 126, 142, 106, 139, 129, 124, 132, 113, 147, 119, 122, 140, 118, 131, 128, 118, 136, 127, 134, 121, 124, 139, 113, 139, 124, 124, 133, 123, 126, 137, 121, 126, 127, 129, 130, 125, 125, 125, 142, 118, 124, 132, 124, 123, 141, 122, 120, 140, 125, 125, 129, 121, 133, 118, 138, 136, 109, 143, 119, 130, 127, 125, 127, 123, 146, 109, 129, 141, 109, 143, 120, 127, 129, 125, 134, 109, 150, 121, 124, 128, 125, 135, 115, 141, 121, 128, 136, 117, 127, 123, 144, 115, 124, 143, 118, 137, 117, 133, 124, 127, 130, 117, 141, 115, 132, 134, 123, 138, 106, 136, 135, 116, 132, 133, 127, 124, 131, 113, 142, 123, 129, 121, 129, 143, 113, 129, 124, 133, 126, 126, 130, 117, 142, 126, 117, 142, 113, 138, 127, 121, 128, 128, 133, 117, 138, 128, 116, 132, 141, 113, 127, 136, 125, 131, 122, 125, 131, 124, 131, 122, 133, 135, 110, 141, 129, 117, 131, 128, 128, 121, 139, 123, 117, 144, 119, 122, 139, 121, 132, 129, 112, 142, 120, 133, 125, 122, 142, 114, 136, 126, 122, 130, 127, 129, 123, 134, 125, 120, 145, 116, 126, 132, 125, 124, 130, 131, 123, 138, 108, 140, 129, 122, 132, 115, 143, 123, 122, 136, 115, 135, 129, 126, 134, 115, 138, 120, 130, 131, 115, 145, 117, 128, 134, 119, 129, 124, 141, 112, 135, 134, 112, 140, 128, 120, 124, 140, 116, 133, 131, 125, 128, 117, 145, 119, 124, 134, 116, 137, 128, 125, 127, 132, 126, 122, 136, 116, 131, 140, 117, 119, 141, 132, 113, 131, 134, 123, 128, 125, 130, 122, 140, 122, 122, 141, 114, 134, 120, 139, 120, 121, 144, 117, 133, 128, 117, 134, 134, 122, 119, 139, 130, 119, 130, 120, 138, 127, 119, 132, 128, 127, 138, 112, 128, 140, 117, 129, 129, 126, 124, 134, 125, 125, 129, 125, 131, 125, 128, 129, 120, 137, 130, 119, 124, 134, 125, 122, 139, 119, 133, 130, 118, 135, 123, 126, 125, 132, 136, 111, 141, 122, 123, 135, 120, 135, 116, 137, 132, 115, 135, 131, 120, 127, 132, 126, 127, 131, 119, 136, 133, 119, 127, 127, 131, 123, 134, 120, 133, 132, 117, 137, 118, 129, 133, 116, 139, 123, 130, 129, 117, 140, 115, 135, 128, 121, 136, 123, 136, 124, 120, 131, 124, 132, 131, 121, 123, 135, 131, 128, 121, 123, 139, 124, 125, 121, 141, 122, 123, 138, 113, 138, 128, 116, 134, 129, 130, 126, 128, 126, 124, 129, 128, 127, 125, 136, 117, 134, 131, 115, 133, 136, 123, 115, 143, 122, 120, 142, 119, 120, 141, 127, 120, 123, 140, 124, 119, 140, 116, 131, 135, 116, 131, 136, 127, 117, 130, 137, 114, 136, 131, 121, 130, 125, 128, 123, 133, 129, 117, 140, 124, 125, 130, 121, 136, 119, 135, 122, 131, 125, 128, 130, 120, 142, 114, 132, 134, 118, 133, 119, 138, 127, 121, 137, 120, 133, 118, 136, 126, 124, 138, 112, 135, 132, 115, 139, 122, 124, 135, 122, 131, 118, 136, 133, 117, 130, 131, 126, 127, 130, 125, 121, 136, 125, 120, 136, 130, 117, 132, 131, 117, 140, 123, 126, 128, 125, 131, 124, 131, 123, 123, 142, 118, 127, 130, 124, 138, 115, 136, 122, 126, 138, 118, 123, 139, 120, 130, 128, 120, 140, 120, 123, 129, 135, 127, 116, 137, 123, 126, 136, 115, 140, 120, 126, 137, 119, 131, 123, 126, 135, 127, 122, 125, 132, 133, 127, 121, 127, 129, 126, 127, 125, 138, 123, 123, 129, 125, 132, 122, 129, 133, 121, 134, 128, 117, 133, 131, 123, 123, 136, 127, 120, 135, 126, 127, 133, 114, 138, 122, 129, 130, 119, 141, 117, 131, 130, 124, 125, 128, 134, 124, 130, 129, 117, 137, 128, 122, 125, 136, 124, 123, 140, 117, 130, 125, 131, 123, 130, 135, 114, 135, 132, 121, 125, 127, 137, 117, 131, 133, 117, 138, 125, 124, 128, 127, 129, 124, 132, 127, 125, 134, 119, 132, 124, 127, 135, 119, 129, 134, 122, 131, 129, 119, 131, 129, 132, 118, 132, 132, 124, 125, 130, 124, 128, 136, 121, 127, 126, 135, 120, 133, 127, 119, 139, 121, 123, 134, 127, 132, 119, 131, 125, 124, 140, 118, 125, 138, 124, 120, 138, 120, 128, 131, 128, 127, 118, 139, 122, 126, 135, 116, 136, 127, 127, 127, 124, 135, 117, 136, 125, 123, 139, 120, 123, 136, 125, 131, 122, 129, 131, 122, 131, 126, 128, 128, 127, 125, 137, 121, 124, 134, 127, 129, 124, 124, 131, 126, 129, 124, 129, 133, 120, 135, 119, 134, 126, 122, 139, 118, 130, 128, 123, 137, 117, 135, 127, 122, 134, 123, 131, 121, 134, 124, 127, 132, 124, 126, 128, 126, 129, 132, 122, 123, 134, 130, 121, 129, 128, 124, 132, 131, 118, 134, 127, 124, 129, 128, 128, 124, 128, 130, 124, 127, 134, 119, 130, 133, 120, 130, 130, 124, 125, 133, 127, 121, 138, 119, 130, 134, 121, 127, 124, 137, 123, 123, 132, 128, 130, 127, 123, 128, 128, 128, 127, 125, 133, 128, 121, 133, 123, 130, 130, 122, 133, 124, 132, 126, 124, 129, 128, 130, 124, 130, 127, 124, 137, 124, 124, 131, 124, 127, 130, 126, 125, 132, 127, 130, 123, 129, 129, 118, 135, 126, 128, 131, 120, 131, 126, 129, 124, 125, 138, 116, 133, 131, 120, 133, 126, 125, 125, 131, 129, 119, 137, 127, 121, 135, 125, 125, 128, 129, 124, 132, 129, 124, 126, 130, 129, 122, 130, 131, 125, 132, 122, 125, 134, 123, 126, 125, 136, 122, 127, 135, 120, 132, 123, 126, 134, 121, 132, 124, 128, 133, 120, 129, 127, 127, 131, 125, 125, 133, 126, 128, 128, 124, 127, 128, 130, 122, 131, 130, 124, 127, 129, 125, 128, 133, 123, 129, 130, 124, 128, 127, 128, 124, 136, 125, 123, 134, 122, 134, 125, 125, 127, 127, 135, 121, 128, 131, 123, 130, 128, 126, 126, 131, 124, 127, 134, 123, 129, 127, 124, 126, 134, 124, 129, 128, 125, 130, 124, 131, 125, 126, 132, 125, 129, 127, 126, 129, 127, 130, 120, 135, 126, 123, 133, 124, 129, 123, 133, 127, 124, 133, 124, 126, 126, 134, 123, 126, 133, 120, 133, 124, 130, 127, 124, 134, 122, 130, 128, 121, 135, 125, 128, 126, 124, 136, 120, 131, 129, 125, 128, 127, 129, 123, 132, 130, 119, 132, 129, 122, 132, 128, 122, 129, 131, 126, 125, 128, 133, 123, 126, 133, 120, 131, 133, 121, 128, 127, 129, 125, 131, 128, 122, 
};

//-- CONSTANTS
//pin numbers
const byte playButtonPin = A5;
const byte leftButtonPin = A0;
const byte rightButtonPin = A1;
const byte upButtonPin = A2;    //reworked
const byte downButtonPin = 4;
const byte cycleButtonPin = 5;

const byte tempoKnobPin = A4;     //tempo knob

//step sequencer data
const byte steps = 15;      //changed to 16
const byte banks = 3;       //4 banks of 16 steps

//-- VARIABLES
byte currentStep = 0;
byte currentBank = 0;       //added for support more "banks"
int timer = 0;
bool playing;
byte tempo = 0;
//bank mode variables
bool bankRepeat = false;

//using a md array for handling steps and banks easy
byte stepsData[4][16] = { {1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0}, {1, 4, 0, 0, 1, 4, 0, 0, 1, 4, 0, 0, 1, 4, 0, 0}, {1, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 2, 0, 0, 0}, {1, 3, 0, 3, 2, 0, 0, 3, 0, 0, 1, 0, 2, 0, 0, 0} };

//initialize the library with the numbers of the interface pins
//remember pin 11 is changed to 6
LiquidCrystal lcd(7, 8, 9, 10, 6, 12);

//CUSTOM CHARACTERS
//Those are basic letters but inverted to represent current step
byte stepChar[8] = {
  B11111, B11111, B11111, B11111, B11111, B10011, B10011, B11111
};
byte stepKickChar[8] = {
  B01110, B01101, B01011, B00111, B01011, B01101, B01110, B11111
};
byte stepSnareChar[8] = {
  B10001, B01111, B01111, B10001, B11110, B11110, B10001, B11111
};
byte stepHatChar[8] = {
  B01110, B01110, B01110, B00000, B01110, B01110, B01110, B11111
};
byte stepRideChar[8] = {
  B00001, B01110, B01110, B00001, B01011, B01101, B01110, B11111
};
//bank repeat
byte repeatBankChar[8] = {
  B11111, B11111, B00011, B00011, B11000, B11000, B11111, B11111
};
//bank repeat inactive
byte repeatInactiveChar[8] = {
  B00000, B00000, B11100, B11100, B00111, B00111, B00000, B00000
};
//step hat cursor
byte stopChar[8] = {
  B00111,
  B01011,
  B00111,
  B01011,
  B00100,
  B11010,
  B11001,
  B11010
};

//hexadecimal table with characters for steps
int stepsChars[10] = {
  0x2E,
  0x4B,
  0x53,
  0x48,
  0x52,
  0x00,
  0x01,
  0x02,
  0x03,
  0x04
};

//list with characters for steps

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);

  //less resistors using the pullup resistors
  pinMode(playButtonPin, INPUT_PULLUP);
  pinMode(leftButtonPin, INPUT_PULLUP);
  pinMode(rightButtonPin, INPUT_PULLUP);
  pinMode(cycleButtonPin, INPUT_PULLUP);

  pinMode(upButtonPin, INPUT_PULLUP);
  pinMode(downButtonPin, INPUT_PULLUP);
  
  //add custom characters to table
  lcd.createChar(0, stepChar);
  lcd.createChar(1, stepKickChar);
  lcd.createChar(2, stepSnareChar);
  lcd.createChar(3, stepHatChar);
  lcd.createChar(4, stepRideChar);
  lcd.createChar(5, repeatBankChar);
  lcd.createChar(6, repeatInactiveChar);
  lcd.createChar(7, stopChar);
  lcd.setCursor(0, 0);

  playing = false;

  bankRepeat = false;
}



//-- START/STOP sequencer
void startStep() {
  //invert state
  playing = !playing;
  //resets steps if playing
  if (!playing) {
    currentStep = 0;
    currentBank = 0;
  }
  delay(250);
}

//-- Cycle options of current step in current bank
void cycleStep() {
  stepsData[currentBank][currentStep]++;
  //change 4 if you add more samples
  if (stepsData[currentBank][currentStep] >= 5) {
    stepsData[currentBank][currentStep] = 0;
  }
  //play sample and delay
  
  delay(250);
}

//-- Move cursor left in edit mode
void moveLeft() {
  currentStep --;
  //if number is higher, just reset
  if (currentStep > 16) {
    currentStep = steps;
  }
  delay(250);
}

//-- Move cursor right
void moveRight() {
  currentStep ++;
  if (currentStep > steps) {
    currentStep = 0;
  }
  delay(250);
}

//-- change bank number down
void bankDown(){
  currentBank--;
  // banks go to 3, if number is high, that means we go from 0 to 255
  // so we change currentBank to 3
  if(currentBank > 200) {
    currentBank = banks;
  }
  delay(250);
}

//-- Move bank down
void bankUp(){
  currentBank++;
  if (currentBank > banks) {
    currentBank = 0;
  }
  delay(250);
}

//--Repeat the current bank or not, only in play mode
void makeBankRepeat(){
   //invert state
  bankRepeat = !bankRepeat;
  delay(200);
}

//--Play sample
void playSample(byte _sample) {
  //this matters ? needs check
  //stopPlayback();
  if (_sample == 1) {
    startPlayback(kick, sizeof(kick));
  }
  if (_sample == 2) {
    startPlayback(snare, sizeof(snare));
  }
  if (_sample == 3) {
    startPlayback(hat, sizeof(hat));
  }
  if (_sample == 4) {
    startPlayback(ride, sizeof(ride));
  }
}

//-- Draw data in LCD screen
void drawScreen() {
  lcd.noCursor();
  lcd.setCursor(0, 0);
  //bank repeat icon
  if (bankRepeat) {
    lcd.write(0x05);
  }
  else {
    lcd.write(0x06);
  }
  //print play or stop state
  //lcd.setCursor(1, 0);
  
  if (playing) {
    lcd.print(" PLAY ");
  }
  else {
    lcd.print(" STOP ");
  }
  
  lcd.print(currentBank + 1);
  lcd.print("/4 ");
  //tempo information
  lcd.print("T");
  lcd.print(tempo);
  
  //print the step data using custom characters
  for (int i = 0; i <= steps; i++) {
    byte _chara = stepsData[currentBank][i];
    //terrible hack
    if (i == currentStep){
      _chara = _chara + 5;
    }
    lcd.setCursor(i, 1);
    //lcd.write((byte)stepsData[currentBank][i]);
    
    //we print the desired character with the terrible hack
    lcd.write(stepsChars[_chara]);
  }
}


//-- LOOP LOGIC
void loop() {

  //read button pins
  int playButtonValue = digitalRead(playButtonPin);
  int leftButtonValue = digitalRead(leftButtonPin);
  int rightButtonValue = digitalRead(rightButtonPin);
  int cycleButtonValue = digitalRead(cycleButtonPin);
  int upButtonValue = digitalRead(upButtonPin);
  int downButtonValue = digitalRead(downButtonPin);
  
  //read tempo from knob
  int tempoAnalog = analogRead(tempoKnobPin);
  
  // REWORK NEEDED to make values smooth...
  //clamp the values for tempo
  tempo = map(tempoAnalog, 0, 1023, 2, 8);

  //CONTROLS
  //start or pause
  if (playButtonValue == LOW) {
    startStep();
  }
  
  //managing buttons 
  
  //this only avaliable in STOP mode
  if (!playing) {
    if (leftButtonValue == LOW) {
      moveLeft();
    }
    if (rightButtonValue == LOW) {
      moveRight();
    }
    if (upButtonValue == LOW) {
      bankUp();
    }
    if (downButtonValue == LOW) {
      bankDown();
    }
    if (cycleButtonValue == LOW) {
      cycleStep();
    }
    
  }
  //controls only avaliable in play mode  
  
  //PLAYING LOGIC
  if (playing) {
    //Add to timer, changed to be faster
    timer++;

    //bank repeat push button
    if (cycleButtonValue == LOW) {
      makeBankRepeat();
    }
    //if timer reached tempo table timer, reset and play sample
    if (timer >= tempo) {
      timer = 0;
      //add step and check if we reached max steps
      currentStep++;
      if (currentStep > steps) {
        currentStep = 0;
        //handling change "banks"
        if (bankRepeat){
          currentBank++; 
        }
        
        if (currentBank > banks){
          currentBank = 0;
        }
      }
      //play sample
      if (stepsData[currentBank][currentStep] > 0) {
        //hook to play other samples if button is pressed
        if (leftButtonValue == LOW || rightButtonValue == LOW || upButtonValue == LOW || downButtonValue == LOW){
          if (leftButtonValue == LOW) {
            playSample(0);
          }
          if (rightButtonValue == LOW) {
            playSample(1);
          }
          if (upButtonValue == LOW) {
            playSample(2);
          }
          if (downButtonValue == LOW) {
            playSample(3);
          }
        }
        else {
          playSample(stepsData[currentBank][currentStep]);
        }
        
      }
    }
  }
  //finally draw the screen
  drawScreen();
}

Credits

enrohk
0 projects • 0 followers
Contact

Comments

Please log in or sign up to comment.