Group 3- Your Own Talking and Loving Teddy Bear
THE CYBEARG – YOUR OWN MINI SECURITY SYSTEM
Imagine entering your home and your Teddy Bear greeting you with a welcoming message or with lighting up eyes. Also, it will be great if the Teddy Bear is not so welcoming to other members in the house (just for fun!). For this, you are encouraged to use an RFID tag and reader with a choice of tags one of them being your own hence Teddy realising it is you and delivering a friendly message! You need to use at least one other tag that is not yours and hence delivering unwelcoming messages and maybe red eyes! Remember, you do not have to use a real Teddy bear but you can use other prototyping options
DESIGN BLOG
THE MAKING PROCESS
Monday 21/11/22
Today we began the process of designing our Teddy Bear Robot. We began sketching out our initial ideas and planning out how we want to make our system interactive. The aim of today was to get rough idea of how we planned on creating a bear that reacts to external stimulus and then put our two different responses, one friendly, and one not so friendly.
We spent our first session brainstorming potential movements for the bear including ideas like a spinning head on a motor, red LED eyes, waving arms, a speaker that plays voices or an alarm, an RFID scanner and a motion sensor.
Monday 28/11/22
Having now come up with a concept and a rough plan of how to proceed, we began by finding the teddy that would become the main basis for the project. Once procured, we moved onto to dismembering our poor monkey and tearing it from limb to limb. We took measurements of the bear after removing its stuffing and started to make the frame that would house all the electronics and sit on the inside of the bear.
We also began scavenging recycled parts to use within the bear. Since our initial design was quite broad, we knew we would be able to change aspects of the bear based on what we were able to find. Among the recycled parts, we found an old LCD screen, many different sized servos, a speaker, and many other small parts.
We then began wiring up all these found parts and finding code to test them. It took a lot of trial and error and we soon found out the speaker was broken, the LCD was able to turn on but couldn’t display any writing and around half the servos worked.
Using the bigger servos that did work, we redesigned the bears moving arm using the more powerful servo and some metal spindles from a broken umbrella.
Monday 05/12/22
This morning we received the new components we ordered, including the RFID scanner, the speaker and LCD screen and began testing them and figuring out the code for the parts individually. Unfortunately, we couldn’t get the RFID scanner to work after countless tries and hours of working. Also, we began facing an issue where whenever we tried to power the servo using a 9v battery instead of being plugged directly into a laptop. After plugging the servos back into the laptop, they no longer worked so we spent a lot of time trying to get everything to work again.
We also tested the motion sensor and found it wasn’t very sensitive, the sensor would go off at incorrect times and sometimes wouldn’t work at all. Luckily after a day full of setbacks we at least got the speaker and LCD working.
Tuesday 06/12/22
We managed to finally fix the servos and began making a new arm mechanism out of some recycled thin, lightweight acrylic instead of the metal spindle in case it was the weight of the arm that kept making the servo break. We also used some tiny screws to hold it together as everything had been previously kept together using masking tape.
Sole also got the RFID scanner working after reinstalling Arduino and restarting the program. Now that we had all the parts tested individually we needed to arrange them within the bear.
Wednesday 07/12/22
Everything is finally beginning to come together. All the individual components have been working separately so we have begun moving everything onto one Arduino board and planning out how all the components are going to fit within the bear.
We also found that the speaker was very quiet so we worked on trying to improve the volume by trying to add a transistor into the circuit which should increase it. We also stared to write new code that merges all the existing code we wrote for the original parts. This included a series of IF statements that cause the LCD screen and the LED eyes to react when the RFID scanner is activated.
We have also been testing as many card as we can on the RFID scanner, we have found that things like apple pay are scannable by the scanner and we can elicit a response from this action. We’ve also tried Oyster cards, hotel cards, our university key cards and other things.
As well as this, the speaker has been stitched into the right leg of the bear.
However, a big issue has emerged. The two libraries that we need to use for the servo and the LCD screen are clashing. Whenever the servo is activated, the LCD screen no longer works, and vice versa.
Thursday 08/12/2022
Since the servo library is clashing with the library we used for the LCD, we tried using a motor instead of the servo to make the arm move, but quickly realised that this wasn’t a viable solution. Therefore, we went back to the servo and opted instead to find a different library for the speaker that wouldn’t crash. After a long time searching, we managed to find something, but it still didn’t work perfectly so we ended up going into the library and changing some code in there to try and fix the problem. Luckily, doing this solved the problem and we were able to continue finalising parts of the bear.
We then stitched all the components we could into place like the LCD in the stomach and the RFID scanner into the leg.
Friday 09/12/2022
As the teddy monkey is nearing completion, all we had to do today was solder all the wires in place and then apply heat shrink tubing into the areas that needed it. We spent a lot of time working on cable management and organising all our wiring as we knew that once everything was in the bear, it would be difficult to take it apart to get to the wires if there were any issues. We made all the wiring as flat as well as we could to make everything fit as flush to the Arduino and breadboard to minimise the chance of anything being knocked out of place as the bear moves.
Saturday 10/12/2022
Today we tried to add a second sound file into the code that would be played through the speaker when the correct card was scanned. We began by creating a voice recording that brought that into Audacity to edit the sound quality to make it 8-bit which would allow us to play it on the speaker. After that we took that sound file and encoded it so it gave us a series of numbers that could be interpreted it as sound by the speaker. However when we tested it, the bear no longer worked as the code file became too big for the arduino to read. We tried shortening parts to fix this but when we finally managed to play the sound it was too deep and distorted so we decided to remove it.
After deciding not to put in the speaker sound in the bear, we moved on to finally attaching the last section which was the servo arm. We then edited the code to make the arm movement smoother and began bug testing.
We trialled the bear many times to make sure the movements were all smooth and that each component worked as they should. When the bear starts up, the eyes should glow a yellowish colour and the LCD screen should show the message “SCAN YOUR KEYCARD”. When the correct card is scanned, the bear’s eyes turn green, the LCD displays the message “WELCOME BACK ZAYNA”, and the servo arm will wave at the user. If the incorrect card is scanned, the eyes turn red, the LCD shows “GO AWAY SOLE”, and the speaker in the foot begins to bark aggressively at the user. The barking was supposed to be a fun, jokey take on the idea of a “guard dog” since the barking would be coming from a monkey.
We decided to put the speaker and the RFID scanner in the feet as these are the elements of the teddy that are the most interactive so we decided to place them closest to the user. As for the scanner, the user should be able to see the red LED in the foot and intuitively scan their card there.
PROJECT TASK
LIST
GANT CHART
MAKER MANUAL
OVERVIEW
The Guard Monkey starts with a message, “Scan your keycard”, on the LCD screen, where the user will be prompted to scan the RFID tag with the module. The module will be looking out for a valid new card available for scanning. If the serial read by the module is the same as the string recorded as your card UID, it would print out the welcome back message on the LCD screen with green eyes and a servo-controlled wave movement with the arm which is achieved through limiting the change in position of the actuator between 110 and 180. If any other keycard has been scanned, the monkey goes into guard mode, printing out go away to the intruder with hostile red eyes and dog barking speaker sound playing through the speaker using the preset array of 16-bit 8000hz WAV file data.
TOOLS AND SUPPLIES
Electrical Components:
- Arduino Uno
- Breadboard
- Speaker
- Servo
- RFID Scanner
- RFID readable cards
- LCD screem
- PN2222A Transistor
- 2x RGD LED
- Wire
Non Electrical Components:
- Cardboard
- Electrical Tape
- Recycled 15mm wood
- 4mm Acrylic
- 5mm Screws and nuts
- Old teddy bear
- Zipper
- Heatshrink tubing
- Solder
Tools:
- Scissors
- Unpicker
- Needle and thread
- Pillar Drill
- Band Saw
- Heat Gun
- Soldering Iron
- Wire Cutter
LAYOUT AND CIRCUIT DIAGRAM
BUILD SECTION
Building our robot bear monkey begins with carefully unpicking the seems of our teddy and removing both the limbs and stuffing from the innocent toy. Then using the stomach section of the bear as a reference, cut down a relatively thick piece of wood to a roundish shape that will sit inside the bear for structure and to house the Arduino uno and breadboard.
Once the wood is the right shape, measure out a rectangle using the Arduino and breadboard as a guide and, using a forstner bit on a pillar drill, carve out a section that will hold the Arduino flush in the wooden board. Then cut out a notch in the top tight corner where the servo will be affixed.
Then, using a thin strip of acrylic plastic, cut it down to roughly 1.5cm by 10cm or any size that fits within the bear’s arm. We then use a pillar drill with a 3mm bit to add holes to this piece which will match up with existing holes on a plastic servo arm. Then screw these pieces together with a small screw and nut. These must be small enough to not interfere with the movement of the servo.
Once all the wiring of the components is done, begin lining up the parts with the affiliated limbs of the bear to begin stitching them in place. This includes the RFID scanner in the left leg, the speaker in the right leg, the LCD screen in the torso, two RGB LEDs for the eyes and the acrylic servo attachment into the right arm.
Once everything is in place and power is attached to the bear, it will begin to interact with the user.
COMMENTED CODE
//Libraries for LCD screen
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//Library for Servo
#include <Servo.h>
//Libraries for RFID tag
#include <SPI.h>
#include <MFRC522.h>
//Library for speaker
#include <FlagPCM.h>
//Definition of pins to their sensor/actuators
#define RST_PIN 9
#define SS_PIN 10
#define LED_G 7
#define LED_R 8
#define LED_G2 2
#define LED_R2 4
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal_I2C lcd(0x27, 16, 2);
//Unsigned 8-bit characters for the barking sound delivered through the speaker
const unsigned char barking[] PROGMEM = {
126, 126, 127, 128, 128, 127, 129, 129, 129, 129, 128, 127, 127, 127, 127, 127, 127, 127, 128, 129, 127, 125, 125, 128, 129, 129, 128, 125, 125, 125, 127, 130, 130, 128, 127, 127, 128, 129, 127, 126, 126, 127, 129, 131, 130, 129, 127, 126, 126, 126, 127, 127, 125, 126, 127, 127, 127, 125, 125, 129, 130, 128, 128, 129, 130, 130, 129, 129, 129, 129, 126, 125, 127, 127, 124, 124, 126, 126, 126, 127, 128, 130, 129, 127, 129, 132, 131, 129, 127, 127, 127, 126, 126, 127, 129, 128, 127, 126, 126, 125, 127, 130, 129, 129, 127, 125, 126, 129, 129, 127, 126, 126, 128, 132, 133, 129, 126, 124, 122, 124, 128, 130, 131, 127, 123, 125, 130, 131, 130, 129, 128, 127, 127, 125, 125, 124, 123, 126, 132, 132, 128, 128, 131, 132, 132, 130, 127, 128, 128, 125, 123, 121, 117, 120, 129, 132, 129, 127, 126, 128, 133, 132, 131, 138, 139, 129, 123, 123, 119, 120, 124, 127, 129, 126, 119, 124, 132, 129, 128, 133, 133, 131, 131, 127, 124, 126, 125, 120, 124, 131, 132, 136, 137, 127, 122, 126, 122, 121, 130, 126, 118, 127, 134, 132, 138, 135, 120, 121, 129, 125, 123, 126, 125, 121, 121, 125, 141, 157, 149, 125, 119, 124, 115, 112, 122, 122, 116, 119, 127, 144, 152, 135, 124, 129, 130, 131, 129, 114, 111, 116, 110, 115, 143, 164, 159, 141, 127, 121, 117, 121, 121, 104, 99, 113, 122, 137, 149, 137, 129, 133, 130, 140, 162, 153, 121, 108, 107, 103, 111, 126, 126, 125, 126, 124, 142, 166, 145, 107, 104, 115, 127, 136, 121, 113, 132, 139, 147, 162, 151, 131, 115, 96, 105, 124, 106, 97, 119, 128, 131, 144, 147, 145, 143, 145, 156, 152, 130, 111, 94, 85, 96, 111, 129, 150, 155, 145, 131, 116, 111, 118, 127, 133, 133, 129, 128, 131, 152, 166, 139, 112, 113, 109, 106, 117, 114, 112, 124, 128, 137, 156, 155, 134, 109, 101, 126, 153, 153, 140, 120, 108, 117, 123, 137, 154, 127, 84, 89, 114, 120, 122, 134, 147, 159, 164, 167, 175, 158, 113, 83, 80, 79, 94, 120, 124, 140, 158, 136, 132, 155, 137, 112, 116, 109, 120, 147, 140, 147, 167, 134, 109, 132, 134, 122, 119, 88, 65, 89, 115, 132, 150, 151, 165, 204, 192, 155, 143, 105, 64, 64, 71, 90, 131, 137, 128, 155, 140, 107, 127, 139, 148, 165, 157, 154, 154, 107, 75, 115, 126, 106, 119, 117, 116, 137, 139, 124, 124, 114, 90, 117, 167, 195, 195, 144, 91, 82, 91, 95, 124, 141, 107, 95, 108, 117, 130, 168, 219, 197, 139, 127, 124, 98, 89, 84, 72, 110, 138, 135, 165, 166, 131, 108, 104, 122, 144, 141, 142, 173, 168, 121, 89, 95, 124, 125, 128, 122, 88, 84, 108, 122, 110, 108, 162, 230, 221, 157, 133, 106, 77, 81, 72, 102, 138, 115, 120, 136, 97, 90, 134, 149, 213, 255, 147, 49, 99, 90, 51, 96, 131, 129, 129, 107, 123, 165, 104, 49, 119, 173, 174, 203, 190, 127, 89, 64, 70, 125, 140, 101, 93, 112, 104, 94, 107, 159, 237, 236, 158, 107, 105, 108, 71, 57, 110, 141, 119, 111, 145, 141, 85, 77, 136, 216, 232, 195, 148, 86, 66, 73, 93, 124, 120, 115, 99, 77, 85, 122, 201, 255, 234, 121, 69, 84, 89, 110, 113, 106, 113, 101, 98, 112, 115, 107, 150, 241, 255, 168, 59, 31, 47, 80, 79, 87, 157, 149, 121, 158, 153, 102, 75, 99, 163, 213, 165, 125, 133, 92, 82, 93, 141, 193, 104, 48, 93, 99, 84, 110, 165, 230, 235, 133, 96, 113, 98, 109, 71, 62, 117, 120, 122, 127, 92, 85, 166, 240, 245, 175, 67, 41, 49, 81, 123, 128, 146, 107, 70, 100, 124, 183, 254, 229, 153, 120, 57, 45, 122, 110, 101, 124, 109, 113, 102, 71, 77, 157, 250, 255, 194, 93, 63, 53, 88, 110, 92, 105, 71, 32, 63, 165, 255, 255, 198, 147, 119, 64, 61, 118, 107, 104, 78, 50, 78, 61, 79, 200, 255, 255, 184, 106, 6, 34, 90, 71, 100, 132, 111, 111, 116, 71, 80, 171, 245, 255, 238, 124, 29, 50, 100, 94, 92, 111, 122, 99, 77, 71, 127, 243, 255, 216, 141, 64, 91, 115, 102, 78, 63, 68, 55, 89, 114, 113, 167, 238, 255, 210, 123, 55, 57, 107, 75, 77, 103, 58, 68, 87, 128, 249, 255, 207, 176, 102, 30, 69, 123, 103, 84, 84, 89, 115, 81, 60, 147, 246, 255, 225, 101, 44, 37, 88, 101, 90, 111, 73, 51, 69, 129, 239, 255, 211, 164, 98, 44, 52, 124, 143, 124, 86, 54, 76, 33, 56, 195, 248, 255, 202, 90, 24, 23, 100, 122, 98, 120, 114, 83, 49, 85, 190, 251, 253, 201, 130, 44, 24, 109, 139, 144, 127, 61, 73, 64, 64, 173, 235, 249, 225, 124, 34, 32, 118, 151, 113, 81, 73, 83, 44, 86, 219, 249, 227, 163, 92, 61, 53, 97, 110, 123, 111, 51, 61, 47, 96, 233, 254, 240, 204, 82, 0, 21, 88, 97, 141, 138, 84, 78, 33, 78, 226, 255, 255, 204, 87, 12, 18, 89, 131, 128, 89, 64, 87, 66, 123, 242, 249, 238, 164, 29, 4, 66, 120, 138, 145, 97, 68, 81, 21, 85, 236, 255, 250, 182, 42, 0, 49, 139, 155, 160, 120, 36, 29, 61, 146, 245, 255, 239, 144, 30, 0, 57, 147, 159, 151, 120, 79, 66, 20, 80, 226, 255, 242, 181, 73, 11, 50, 142, 163, 125, 61, 23, 59, 108, 190, 248, 242, 207, 120, 46, 29, 82, 170, 161, 102, 68, 46, 35, 49, 136, 242, 255, 234, 105, 0, 0, 37, 104, 161, 188, 161, 128, 92, 13, 71, 223, 251, 236, 184, 72, 13, 44, 105, 166, 200, 133, 79, 81, 30, 49, 148, 235, 255, 244, 115, 14, 14, 93, 158, 155, 129, 136, 106, 36, 13, 66, 189, 255, 255, 183, 100, 45, 55, 89, 114, 144, 146, 119, 80, 54, 87, 156, 222, 247, 223, 132, 26, 35, 105, 119, 92, 98, 122, 115, 126, 139, 134, 119, 123, 188, 218, 163, 110, 98, 96, 88, 77, 81, 150, 197, 158, 109, 55, 28, 101, 210, 252, 246, 203, 104, 38, 43, 81, 115, 111, 105, 113, 102, 66, 77, 165, 255, 255, 210, 102, 41, 55, 78, 68, 102, 165, 175, 138, 104, 79, 79, 134, 202, 255, 255, 156, 44, 2, 42, 99, 151, 188, 164, 130, 107, 77, 54, 92, 188, 250, 253, 190, 118, 84, 57, 66, 97, 121, 148, 156, 138, 101, 54, 44, 123, 227, 255, 239, 173, 85, 37, 58, 86, 114, 152, 138, 96, 80, 68, 71, 162, 255, 255, 233, 143, 35, 24, 59, 88, 130, 173, 164, 127, 105, 79, 104, 141, 143, 177, 226, 225, 163, 90, 47, 55, 106, 128, 133, 157, 164, 123, 71, 65, 92, 140, 209, 245, 222, 176, 99, 27, 49, 100, 117, 136, 154, 152, 117, 76, 69, 108, 159, 201, 228, 212, 174, 112, 41, 42, 83, 112, 137, 151, 159, 150, 114, 86, 98, 140, 170, 166, 152, 151, 146, 129, 120, 111, 97, 99, 114, 131, 139, 129, 137, 144, 131, 117, 93, 91, 138, 203, 222, 172, 115, 84, 77, 81, 97, 139, 182, 178, 118, 74, 79, 83, 107, 164, 185, 181, 196, 167, 100, 77, 83, 100, 129, 130, 100, 107, 131, 142, 170, 163, 120, 110, 112, 112, 111, 129, 166, 183, 159, 112, 88, 84, 101, 140, 158, 151, 130, 110, 110, 115, 126, 134, 139, 149, 142, 124, 116, 126, 143, 121, 75, 75, 115, 154, 176, 166, 136, 118, 113, 91, 90, 119, 134, 147, 144, 129, 138, 163, 164, 124, 112, 126, 108, 92, 93, 98, 98, 108, 135, 156, 169, 158, 138, 155, 175, 163, 129, 98, 66, 47, 62, 85, 112, 173, 219, 206, 154, 99, 91, 111, 121, 130, 139, 138, 114, 95, 96, 113, 137, 132, 128, 128, 122, 144, 158, 151, 130, 108, 103, 102, 110, 125, 137, 128, 110, 117, 127, 140, 146, 130, 126, 126, 116, 107, 106, 114, 122, 121, 132, 156, 162, 146, 123, 107, 108, 117, 117, 111, 117, 129, 146, 146, 123, 121, 129, 132, 119, 99, 116, 138, 137, 135, 141, 145, 134, 127, 119, 119, 118, 106, 107, 101, 110, 145, 150, 141, 135, 119, 117, 129, 130, 127, 134, 119, 102, 115, 126, 129, 128, 119, 126, 145, 158, 157, 138, 123, 106, 85, 91, 124, 147, 152, 144, 125, 110, 115, 125, 123, 122, 130, 134, 123, 110, 110, 121, 140, 137, 126, 140, 140, 123, 128, 134, 128, 123, 115, 106, 120, 134, 126, 124, 120, 122, 141, 141, 132, 133, 134, 128, 119, 118, 119, 124, 123, 116, 118, 122, 136, 148, 143, 136, 133, 130, 121, 118, 111, 103, 122, 140, 139, 130, 116, 108, 127, 149, 147, 143, 131, 112, 111, 123, 130, 130, 136, 135, 127, 121, 113, 113, 123, 136, 134, 125, 131, 135, 136, 132, 133, 138, 130, 120, 108, 100, 106, 116, 129, 142, 155, 154, 145, 130, 112, 117, 124, 116, 117, 129, 137, 129, 118, 118, 131, 137, 132, 131, 121, 114, 126, 138, 146, 151, 138, 123, 121, 121, 127, 128, 113, 108, 117, 119, 120, 132, 138, 135, 140, 149, 145, 131, 116, 108, 110, 122, 129, 129, 129, 124, 127, 134, 123, 121, 139, 142, 131, 127, 126, 129, 133, 134, 139, 132, 110, 112, 124, 116, 114, 126, 132, 137, 135, 124, 125, 134, 138, 139, 129, 116, 118, 127, 126, 120, 123, 129, 124, 124, 135, 135, 128, 127, 127, 134, 141, 132, 122, 119, 117, 127, 137, 132, 125, 121, 113, 119, 131, 134, 131, 126, 126, 136, 132, 123, 126, 127, 126, 129, 127, 125, 125, 122, 120, 122, 127, 130, 132, 133, 132, 130, 125, 121, 119, 124, 127, 125, 127, 132, 136, 134, 130, 128, 125, 126, 127, 122, 120, 126, 127, 129, 135, 127, 118, 123, 132, 134, 131, 127, 125, 132, 134, 122, 115, 114, 117, 128, 140, 138, 129, 125, 121, 124, 129, 126, 125, 126, 128, 134, 133, 129, 129, 127, 119, 118, 125, 126, 132, 131, 122, 122, 125, 127, 128, 127, 125, 132, 138, 130, 128, 129, 119, 116, 122, 126, 127, 126, 126, 128, 133, 130, 124, 128, 130, 128, 129, 126, 121, 126, 132, 133, 129, 126, 127, 125, 123, 128, 129, 129, 129, 123, 118, 125, 132, 130, 130, 128, 124, 123, 123, 127, 131, 131, 127, 126, 130, 129, 127, 124, 123, 125, 128, 134, 135, 131, 126, 124, 126, 123, 126, 125, 118, 123, 131, 138, 139, 132, 126, 127, 128, 127, 126, 123, 121, 123, 121, 122, 129, 134, 134, 133, 127, 124, 128, 127, 129, 133, 130, 126, 122, 120, 123, 129, 133, 133, 132, 128, 128, 125, 121, 124, 126, 127, 128, 127, 126, 128, 130, 128, 129, 129, 128, 132, 132, 129, 128, 126, 123, 124, 125, 123, 125, 128, 131, 133, 130, 127, 127, 126, 125, 129, 132, 130, 128, 126, 123, 122, 125, 128, 130, 130, 130, 129, 130, 130, 129, 128, 127, 125, 123, 124, 124, 128, 133, 133, 130, 127, 127, 126, 128, 130, 131, 129, 125, 122, 121, 122, 126, 130, 132, 131, 131, 131, 127, 124, 125, 126, 130, 131, 128, 126, 124, 123, 127, 130, 130, 129, 127, 126, 126, 127, 130, 131, 131, 127, 123, 122, 124, 128, 133, 133, 129, 126, 125, 126, 129, 127, 126, 127, 128, 127, 125, 125, 127, 129, 131, 130, 129, 129, 129, 128, 127, 126, 126, 127, 126, 127, 126, 126, 128, 130, 130, 126, 124, 127, 129, 130, 129, 127, 128, 129, 129, 128, 128, 126, 125, 125, 123, 125, 128, 130, 129, 128, 128, 130, 131, 129, 127, 126, 125, 124, 124, 126, 127, 128, 129, 129, 132, 133, 132, 129, 123, 123, 126, 128, 128, 125, 123, 128, 131, 131, 130, 128, 127, 125, 124, 126, 127, 128, 128, 128, 129, 129, 130, 130, 130, 130, 126, 125, 128, 127, 128, 128, 127, 126, 127, 127, 126, 125, 125, 126, 128, 132, 132, 131, 128, 126, 126, 125, 126, 127, 126, 125, 123, 126, 128, 131, 133, 132, 131, 128, 124, 125, 129, 130, 129, 128, 126, 124, 126, 128, 130, 130, 131, 129, 127, 125, 125, 127, 126, 124, 124, 126, 127, 128, 130, 131, 132, 132, 130, 128, 125, 124, 126, 129, 128, 125, 126, 127, 128, 129, 129, 129, 129, 126, 124, 125, 126, 128, 129, 128, 127, 127, 128, 128, 128, 128, 127, 128, 128, 128, 126, 124, 126, 128, 130, 130, 128, 126, 127, 129, 131, 132, 128, 126, 126, 126, 128, 128, 127, 127, 125, 125, 126, 127, 127, 129, 130, 128, 129, 128, 126, 126, 127, 127, 128, 128, 128, 130, 128, 125, 125, 125, 129, 130, 129, 127, 126, 127, 128, 128, 127, 125, 127, 129, 131, 131, 128, 127, 126, 125, 126, 126, 127, 129, 128, 126, 126, 127, 128, 129, 131, 131, 129, 127, 124, 124, 126, 127, 129, 129, 129, 130, 130, 128, 126, 125, 126, 126, 124, 123, 124, 128, 131, 132, 130, 129, 129, 131, 131, 129, 127, 126, 125, 125, 125, 125, 125, 125, 126, 128, 130, 130, 128, 125, 124, 127, 131, 132, 131, 130, 128, 127, 126, 125, 126, 129, 130, 128, 124, 123, 125, 129, 131, 131, 129, 128, 126, 125, 125, 126, 127, 127, 126, 125, 128, 132, 132, 129, 124, 124, 128, 132, 133, 130, 127, 127, 127, 126, 124, 124, 125, 127, 126, 125, 125, 127, 129, 132, 133, 133, 131, 127, 124, 123, 126, 129, 130, 126, 122, 122, 127, 132, 134, 133, 131, 130, 129, 126, 125, 126, 125, 124, 122, 120, 122, 126, 130, 134, 134, 133, 133, 132, 131, 129, 128, 127, 123, 120, 118, 121, 125, 128, 131, 132, 133, 133, 135, 135, 133, 128, 121, 118, 116, 116, 120, 122, 128, 133, 134, 135, 134, 134, 135, 137, 133, 127, 123, 118, 120, 122, 121, 122, 122, 125, 129, 132, 132, 130, 133, 132, 132, 129, 121, 118, 115, 117, 122, 127, 137, 147, 153, 151, 138, 124, 115, 113, 113, 113, 113, 114, 115, 120, 129, 138, 144, 143, 138, 137, 135, 137, 141, 138, 127, 112, 100, 100, 107, 118, 132, 145, 146, 137, 125, 116, 121, 132, 134, 128, 118, 118, 130, 146, 156, 151, 140, 129, 118, 110, 100, 100, 111, 122, 124, 121, 124, 136, 150, 149, 138, 131, 132, 145, 152, 139, 117, 105, 105, 111, 116, 113, 120, 130, 131, 126, 119, 126, 139, 144, 140, 134, 140, 153, 159, 143, 117, 103, 101, 109, 108, 105, 114, 126, 132, 126, 126, 132, 142, 147, 145, 145, 148, 152, 143, 119, 98, 94, 109, 127, 131, 120, 106, 101, 105, 118, 132, 143, 152, 167, 180, 177, 156, 122, 100, 94, 97, 101, 103, 108, 110, 115, 125, 138, 151, 148, 139, 126, 130, 150, 163, 159, 137, 114, 100, 98, 100, 105, 124, 139, 136, 115, 96, 91, 105, 139, 179, 209, 205, 170, 126, 94, 86, 91, 99, 105, 107, 105, 104, 113, 125, 132, 133, 144, 177, 208, 205, 164, 115, 77, 69, 73, 86, 108, 120, 131, 132, 125, 118, 105, 111, 148, 210, 238, 199, 133, 69, 50, 71, 99, 127, 135, 121, 108, 99, 95, 98, 116, 178, 242, 250, 200, 104, 36, 41, 77, 104, 116, 125, 124, 122, 111, 97, 92, 103, 174, 250, 255, 204, 108, 31, 31, 72, 102, 138, 153, 139, 115, 79, 66, 65, 130, 231, 255, 255, 173, 43, 0, 22, 75, 115, 144, 156, 153, 127, 84, 60, 54, 130, 236, 255, 255, 145, 24, 0, 39, 93, 143, 167, 146, 115, 74, 57, 50, 108, 231, 255, 255, 190, 42, 0, 9, 64, 120, 138, 152, 148, 129, 106, 87, 74, 134, 222, 249, 235, 142, 42, 12, 36, 86, 121, 146, 137, 114, 99, 90, 93, 139, 219, 232, 226, 169, 58, 29, 27, 61, 113, 122, 138, 145, 132, 125, 106, 78, 137, 219, 228, 223, 144, 52, 38, 56, 78, 86, 124, 150, 156, 169, 126, 86, 79, 119, 202, 242, 212, 141, 75, 42, 51, 79, 112, 143, 138, 130, 122, 95, 65, 91, 181, 247, 255, 219, 87, 1, 8, 65, 118, 140, 130, 126, 127, 120, 112, 100, 148, 224, 253, 219, 113, 18, 24, 89, 127, 152, 156, 110, 79, 61, 42, 80, 188, 255, 255, 225, 90, 0, 0, 50, 139, 168, 156, 140, 104, 71, 57, 88, 145, 231, 255, 234, 155, 48, 0, 30, 125, 180, 177, 127, 44, 21, 71, 125, 218, 255, 255, 227, 132, 10, 0, 19, 111, 196, 201, 111, 52, 37, 63, 146, 220, 255, 255, 228, 113, 0, 0, 30, 130, 207, 198, 144, 80, 39, 65, 109, 143, 223, 255, 244, 158, 43, 0, 39, 124, 194, 195, 132, 53, 13, 46, 90, 164, 255, 255, 217, 144, 44, 0, 44, 113, 148, 146, 114, 84, 75, 92, 113, 167, 232, 225, 207, 163, 57, 18, 54, 96, 135, 143, 104, 58, 68, 117, 167, 239, 255, 236, 184, 108, 23, 22, 56, 83, 135, 144, 100, 72, 84, 129, 188, 255, 255, 230, 168, 67, 0, 19, 61, 112, 162, 156, 137, 118, 95, 104, 134, 170, 213, 230, 195, 117, 50, 39, 71, 132, 160, 136, 108, 57, 46, 90, 120, 194, 255, 222, 179, 131, 63, 38, 54, 72, 94, 113, 105, 98, 107, 103, 131, 220, 245, 210, 184, 92, 22, 39, 46, 72, 108, 106, 113, 131, 148, 180, 216, 224, 205, 188, 134, 45, 12, 20, 34, 88, 130, 143, 158, 159, 184, 221, 219, 201, 163, 117, 77, 31, 24, 40, 67, 139, 180, 177, 172, 140, 113, 125, 166, 196, 202, 186, 129, 80, 61, 28, 38, 93, 107, 128, 166, 140, 144, 185, 183, 199, 191, 123, 70, 61, 55, 42, 75, 97, 107, 142, 128, 117, 158, 188, 205, 211, 149, 76, 62, 46, 47, 57, 52, 86, 132, 185, 213, 203, 200, 197, 186, 120, 55, 41, 36, 63, 89, 87, 95, 130, 177, 229, 247, 195, 169, 150, 106, 87, 61, 42, 45, 84, 127, 139, 172, 178, 153, 130, 115, 141, 175, 189, 166, 126, 83, 50, 66, 95, 111, 107, 127, 141, 124, 151, 178, 196, 214, 175, 104, 47, 38, 52, 83, 114, 114, 128, 134, 119, 122, 160, 194, 216, 218, 141, 54, 8, 0, 25, 63, 103, 150, 196, 209, 176, 155, 164, 191, 189, 133, 60, 12, 9, 34, 75, 109, 146, 195, 217, 206, 171, 156, 165, 166, 135, 84, 55, 38, 38, 44, 55, 114, 213, 255, 251, 177, 119, 83, 93, 113, 125, 126, 105, 60, 22, 29, 78, 195, 255, 255, 196, 106, 55, 47, 84, 117, 117, 135, 135, 117, 95, 85, 108, 144, 185, 204, 199, 155, 85, 50, 61, 103, 131, 155, 145, 86, 61, 59, 85, 139, 202, 241, 213, 161, 79, 34, 68, 104, 127, 114, 71, 48, 79, 115, 153, 232, 255, 255, 187, 74, 19, 29, 93, 137, 127, 103, 79, 92, 105, 103, 127, 188, 255, 255, 202, 81, 15, 11, 55, 116, 139, 146, 114, 67, 58, 83, 168, 255, 255, 233, 140, 60, 9, 5, 50, 118, 175, 190, 156, 95, 47, 53, 150, 241, 255, 253, 156, 42, 0, 0, 65, 132, 153, 159, 138, 109, 91, 116, 186, 231, 240, 192, 83, 19, 17, 31, 70, 116, 167, 184, 151, 116, 92, 120, 192, 221, 209, 162, 84, 43, 31, 24, 66, 146, 208, 203, 146, 84, 34, 84, 187, 227, 251, 206, 86, 20, 0, 39, 141, 201, 192, 133, 56, 20, 51, 155, 255, 255, 242, 159, 62, 26, 21, 57, 123, 164, 153, 105, 82, 85, 121, 182, 201, 199, 191, 155, 109, 72, 62, 96, 150, 162, 131, 100, 83, 79, 82, 97, 119, 178, 243, 230, 181, 125, 84, 91, 89, 92, 112, 94, 53, 38, 63, 136, 224, 255, 240, 172, 106, 76, 77, 98, 129, 145, 121, 73, 51, 82, 147, 202, 211, 173, 119, 84, 74, 93, 134, 184, 207, 162, 99, 65, 73, 111, 124, 118, 114, 117, 138, 152, 162, 168, 153, 136, 115, 112, 126, 118, 103, 76, 65, 99, 144, 183, 196, 162, 122, 104, 96, 115, 154, 159, 152, 137, 105, 88, 86, 96, 122, 159, 175, 144, 111, 93, 105, 142, 148, 136, 133, 138, 145, 138, 125, 118, 119, 132, 130, 121, 134, 133, 118, 101, 77, 88, 122, 164, 200, 183, 146, 111, 92, 109, 124, 134, 133, 105, 78, 75, 89, 127, 185, 224, 218, 158, 78, 48, 74, 127, 167, 164, 139, 116, 113, 121, 134, 166, 180, 155, 103, 49, 41, 82, 127, 158, 175, 176, 158, 134, 117, 109, 126, 148, 139, 118, 100, 95, 110, 128, 133, 140, 151, 140, 110, 94, 101, 124, 150, 156, 143, 131, 130, 128, 131, 140, 141, 135, 110, 79, 73, 94, 126, 145, 148, 147, 136, 139, 152, 161, 174, 165, 140, 107, 73, 73, 90, 113, 140, 141, 131, 126, 123, 134, 159, 172, 168, 146, 113, 89, 80, 88, 109, 133, 154, 152, 133, 122, 116, 121, 143, 157, 152, 140, 118, 93, 79, 88, 113, 142, 165, 162, 147, 135, 127, 131, 140, 144, 134, 120, 105, 82, 80, 98, 123, 151, 159, 148, 137, 135, 141, 145, 145, 139, 123, 104, 90, 82, 94, 122, 143, 146, 136, 132, 139, 146, 143, 132, 124, 115, 110, 108, 111, 125, 142, 156, 148, 131, 128, 136, 138, 123, 110, 106, 107, 119, 127, 127, 131, 140, 141, 138, 140, 146, 158, 159, 138, 111, 97, 97, 102, 108, 108, 105, 115, 126, 129, 138, 154, 162, 163, 152, 124, 107, 111, 117, 115, 112, 114, 120, 130, 131, 127, 130, 137, 140, 135, 126, 118, 124, 134, 122, 113, 119, 129, 136, 134, 128, 127, 131, 132, 124, 113, 110, 115, 118, 118, 119, 134, 151, 153, 148, 137, 133, 137, 132, 123, 117, 113, 111, 109, 107, 111, 121, 128, 128, 127, 131, 135, 143, 151, 149, 149, 151, 137, 120, 114, 107, 99, 98, 100, 109, 123, 131, 138, 144, 146, 145, 142, 140, 133, 134, 137, 124, 113, 116, 116, 114, 115, 115, 121, 134, 139, 137, 137, 136, 136, 137, 136, 132, 131, 127, 114, 105, 106, 116, 129, 139, 137, 128, 122, 116, 112, 123, 136, 143, 144, 134, 123, 120, 119, 128, 136, 130, 124, 117, 113, 116, 122, 133, 137, 137, 142, 139, 134, 134, 131, 129, 123, 111, 109, 115, 118, 122, 126, 125, 131, 139, 142, 141, 139, 137, 128, 116, 109, 106, 116, 129, 130, 130, 133, 133, 135, 134, 131, 133, 137, 134, 128, 125, 121, 119, 120, 115, 111, 117, 125, 128, 128, 130, 135, 141, 144, 144, 140, 134, 126, 119, 119, 119, 122, 131, 128, 122, 123, 125, 132, 137, 137, 136, 130, 125, 124, 123, 127, 127, 124, 121, 115, 115, 122, 129, 137, 140, 137, 131, 127, 123, 122, 126, 128, 126, 125, 125, 124, 125, 125, 125, 123, 124, 128, 134, 137, 138, 140, 140, 133, 127, 124, 120, 114, 113, 112, 112, 121, 130, 137, 139, 137, 137, 135, 130, 126, 125, 127, 123, 122, 122, 121, 123, 125, 124, 123, 124, 127, 129, 135, 138, 137, 136, 133, 131, 131, 130, 129, 124, 120, 120, 120, 123, 124, 129, 134, 128, 125, 128, 130, 133, 134, 134, 134, 133, 131, 127, 123, 121, 123, 123, 120, 119, 124, 131, 126, 123, 127, 129, 134, 136, 133, 133, 133, 130, 124, 120, 122, 126, 125, 119, 113, 116, 125, 130, 133, 133, 134, 136, 132, 128, 129, 132, 132, 124, 120, 119, 119, 126, 129, 127, 126, 128, 130, 130, 127, 127, 128, 123, 121, 124, 127, 130, 131, 133, 133, 130, 130, 131, 130, 129, 125, 122, 120, 120, 124, 131, 133, 136, 137, 133, 125, 121, 122, 125, 128, 125, 121, 123, 126, 130, 128, 127, 129, 129, 132, 129, 124, 125, 126, 127, 127, 123, 124, 129, 128, 130, 136, 136, 135, 133, 128, 124, 124, 124, 121, 121, 122, 125, 127, 125, 123, 125, 132, 133, 132, 130, 125, 124, 125, 130, 134, 133, 130, 124, 118, 117, 118, 122, 125, 128, 130, 133, 134, 135, 138, 139, 137, 133, 127, 122, 118, 115, 117, 124, 129, 129, 129, 127, 127, 130, 131, 129, 129, 129, 128, 127, 122, 121, 127, 130, 130, 128, 126, 124, 126, 127, 126, 129, 130, 128, 125, 124, 124, 126, 133, 134, 131, 129, 128, 127, 126, 129, 129, 129, 128, 125, 125, 125, 125, 128, 129, 127, 126, 127, 129, 130, 131, 130, 129, 128, 125, 125, 126, 126, 128, 129, 127, 127, 128, 129, 131, 130, 129, 129, 127, 125, 125, 126, 127, 128, 126, 124, 125, 125, 128, 131, 132, 131, 129, 129, 126, 125, 128, 127, 126, 127, 126, 126, 128, 127, 129, 129, 128, 128, 127, 126, 127, 127, 128, 126, 125, 125, 125, 127, 129, 127, 126, 127, 128, 130, 131, 129, 129, 129, 128, 127, 124, 125, 127, 129, 130, 130, 128, 125, 126, 127, 129, 130, 130, 129, 126, 124, 125, 126, 127, 130, 130, 128, 126, 126, 127, 127, 127, 128, 129, 129, 126, 125, 125, 124, 127, 131, 131, 131, 130, 127, 124, 125, 127, 130, 131, 129, 128, 127, 126, 126, 126, 127, 128, 128, 127, 128, 128, 127, 128, 127, 127, 128, 127, 127, 126, 124, 125, 126, 127, 128, 129, 131, 130, 130, 129, 127, 125, 126, 127, 128, 129, 129, 130, 131, 132, 130, 128, 127, 125, 125, 125, 124, 126, 127, 127, 129, 128, 127, 130, 130, 129, 130, 128, 127, 125, 125, 126, 126, 128, 127, 126, 128, 128, 129, 130, 129, 128, 128, 128, 128, 129, 128, 128, 128, 125, 126, 126, 125, 127, 127, 128, 130, 129, 127, 128, 127, 127, 127, 127, 127, 125, 126, 128, 129, 131, 131, 130, 128, 125, 125, 125, 125, 128, 130, 130, 129, 128, 126, 126, 128, 131, 132, 131, 128, 125, 124, 125, 126, 126, 127, 126, 126, 125, 125, 127, 128, 129, 129, 128, 129, 128, 128, 129, 128, 128, 126, 126, 127, 128, 130, 130, 130, 128, 127, 127, 125, 125, 125, 126, 128, 128, 127, 126, 127, 129, 130, 130, 129, 127, 126, 126, 127, 126, 126, 126, 127, 127, 129, 130, 129, 130, 130, 128, 126, 125, 125, 124, 126, 128, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 128, 124, 123, 123, 124, 128, 129, 129, 129, 128, 126, 127, 129, 130, 130, 128, 127, 126, 125, 125, 125, 125, 129, 131, 131, 129, 127, 127, 128, 128, 128, 128, 128, 127, 126, 126, 126, 128, 129, 130, 129, 127, 128, 128, 127, 126, 127, 127, 126, 126, 126, 127, 128, 127, 127, 128, 128, 129, 129, 130, 128, 126, 126, 127, 127, 127, 127, 129, 128, 128, 128, 126, 127, 129, 130, 130, 129, 128, 125, 125, 126, 126, 127, 128, 128, 127, 127, 128, 127, 128, 128, 128, 128, 126, 125, 126, 126, 127, 128, 129, 128, 129, 129, 128, 129, 130, 129, 128, 127, 124, 125, 126, 126, 128, 129, 128, 128, 127, 128, 129, 129, 129, 128, 127, 125, 124, 126, 127, 128, 128, 128, 128, 127, 127, 128, 128, 129, 128, 126, 125, 125, 126, 127, 129, 129, 130, 129, 128, 128, 128, 128, 128, 127, 127, 126, 125, 127, 127, 128, 128, 128, 129, 129, 128, 128, 127, 126, 125, 125, 126, 126, 128, 129, 129, 130, 129, 128, 129, 129, 128, 127, 126, 125, 124, 124, 125, 128, 128, 129, 131, 131, 130, 129, 129, 129, 127, 127, 127, 125, 125, 124, 125, 127, 128, 130, 131, 129, 128, 127, 126, 127, 128, 127, 128, 128, 127, 126, 128, 128, 128, 131, 130, 128, 127, 125, 124, 125, 126, 126, 126, 128, 128, 128, 129, 129, 130, 129, 128, 128, 127, 127, 125, 125, 125, 125, 127, 128, 129, 129, 128, 128, 128, 126, 126, 128, 128, 128, 128, 128, 128, 129, 130, 130, 131, 130, 128, 128, 125, 124, 125, 124, 126, 127, 125, 127, 129, 128, 128, 129, 130, 129, 129, 128, 127, 125, 125, 126, 127, 129, 129, 129, 128, 128, 127, 128, 129, 127, 126, 126, 125, 126, 126, 128, 129, 128, 129, 129, 129, 129, 129, 128, 127, 127, 126, 125, 127, 127, 128, 130, 130, 129, 128, 127, 128, 129, 127, 127, 126, 125, 125, 125, 124, 128, 130, 131, 131, 129, 127, 126, 127, 128, 128, 128, 126, 124, 123, 125, 128, 128, 129, 131, 132, 132, 130, 126, 125, 126, 128, 128, 126, 124, 123, 124, 128, 128, 129, 131, 132, 132, 129, 124, 125, 128, 128, 127, 125, 124, 125, 125, 128, 130, 131, 133, 130, 127, 127, 126, 127, 127, 127, 127, 126, 126, 124, 126, 128, 128, 129, 128, 128, 128, 127, 127, 128, 126, 124, 127, 128, 129, 129, 129, 132, 133, 131, 129, 128, 128, 126, 124, 122, 125, 127, 128, 127, 125, 124, 128, 129, 130, 130, 127, 125, 126, 125, 127, 129, 130, 133, 133, 132, 129, 128, 127, 125, 125, 125, 126, 127, 125, 121, 119, 123, 126, 129, 132, 130, 128, 126, 128, 133, 135, 134, 133, 134, 133, 129, 122, 119, 121, 124, 124, 118, 114, 119, 126, 133, 139, 140, 142, 139, 131, 127, 125, 119, 114, 111, 116, 127, 137, 142, 138, 134, 131, 128, 128, 125, 123, 120, 116, 115, 117, 126, 134, 139, 139, 133, 126, 123, 125, 126, 130, 137, 140, 139, 129, 118, 115, 119, 125, 126, 123, 119, 118, 121, 127, 138, 146, 143, 135, 125, 116, 117, 126, 141, 151, 143, 128, 111, 107, 114, 117, 120, 125, 125, 126, 130, 136, 142, 145, 140, 129, 117, 111, 111, 115, 125, 133, 140, 149, 146, 137, 130, 126, 127, 122, 108, 92, 90, 108, 130, 142, 147, 154, 158, 150, 137, 131, 136, 139, 128, 108, 98, 102, 109, 114, 118, 123, 130, 135, 136, 139, 148, 157, 155, 141, 122, 108, 107, 116, 121, 117, 117, 124, 130, 127, 118, 116, 129, 150, 154, 139, 122, 119, 127, 130, 124, 123, 135, 143, 134, 124, 122, 125, 123, 113, 105, 104, 113, 126, 136, 145, 149, 154, 160, 151, 140, 135, 125, 109, 89, 74, 83, 114, 149, 162, 148, 132, 127, 129, 129, 116, 110, 127, 148, 162, 155, 134, 125, 122, 119, 115, 106, 105, 107, 101, 106, 120, 134, 148, 157, 163, 170, 171, 158, 125, 99, 89, 85, 92, 106, 118, 134, 139, 131, 129, 129, 124, 128, 148, 166, 166, 154, 132, 109, 102, 104, 107, 111, 104, 99, 111, 131, 144, 147, 150, 155, 150, 138, 121, 117, 139, 152, 137, 106, 81, 89, 116, 140, 149, 134, 115, 106, 100, 106, 122, 148, 194, 216, 191, 140, 90, 68, 74, 87, 103, 118, 129, 131, 124, 129, 141, 138, 132, 138, 161, 185, 178, 141, 99, 72, 76, 104, 125, 129, 123, 107, 98, 103, 108, 129, 179, 228, 238, 196, 122, 64, 48, 58, 75, 102, 136, 148, 138, 132, 128, 132, 137, 128, 134, 169, 184, 165, 130, 99, 89, 95, 108, 125, 137, 136, 120, 101, 91, 86, 106, 163, 219, 236, 203, 139, 85, 58, 55, 75, 111, 141, 147, 128, 102, 95, 108, 130, 166, 211, 232, 201, 126, 59, 38, 60, 100, 131, 148, 155, 139, 114, 95, 79, 87, 145, 216, 244, 208, 136, 77, 61, 83, 114, 133, 135, 116, 90, 80, 84, 109, 167, 229, 255, 248, 162, 54, 2, 20, 64, 102, 135, 163, 181, 177, 143, 101, 82, 90, 121, 164, 190, 183, 151, 112, 86, 89, 120, 147, 145, 113, 73, 52, 60, 102, 171, 237, 255, 222, 143, 66, 29, 47, 88, 117, 136, 155, 156, 131, 108, 106, 120, 131, 140, 153, 174, 188, 168, 123, 85, 79, 93, 104, 111, 118, 133, 148, 147, 130, 102, 93, 118, 164, 197, 194, 162, 118, 88, 76, 87, 124, 154, 145, 108, 76, 56, 63, 126, 206, 249, 249, 197, 88, 0, 0, 47, 111, 163, 184, 174, 149, 125, 110, 115, 120, 105, 100, 122, 155, 172, 173, 160, 146, 139, 111, 84, 88, 101, 109, 112, 102, 72, 81, 157, 236, 255, 230, 146, 49, 7, 28, 78, 141, 185, 186, 133, 61, 36, 83, 176, 246, 255, 204, 95, 17, 2, 37, 102, 174, 210, 188, 137, 90, 72, 79, 100, 139, 186, 213, 189, 137, 95, 86, 111, 139, 139, 105, 84, 87, 75, 53, 74, 163, 242, 255, 245, 166, 68, 11, 11, 39, 90, 145, 159, 144, 121, 112, 153, 213, 209, 132, 81, 77, 85, 104, 123, 143, 162, 159, 117, 83, 110, 153, 162, 129, 83, 69, 92, 136, 184, 235, 255, 217, 125, 24, 0, 39, 106, 139, 141, 133, 109, 92, 115, 183, 253, 255, 199, 85, 6, 0, 19, 100, 190, 235, 198, 121, 71, 63, 99, 170, 238, 246, 189, 106, 41, 28, 64, 128, 175, 180, 151, 116, 89, 54, 45, 109, 207, 255, 239, 170, 92, 52, 51, 66, 101, 141, 154, 124, 74, 45, 77, 171, 246, 253, 203, 115, 29, 0, 27, 77, 138, 179, 175, 147, 136, 154, 156, 123, 82, 70, 97, 137, 174, 194, 189, 170, 140, 99, 68, 70, 79, 68, 61, 76, 131, 201, 232, 215, 185, 157, 120, 68, 37, 53, 87, 115, 137, 148, 151, 133, 110, 119, 142, 173, 189, 162, 123, 96, 86, 98, 119, 130, 137, 136, 117, 99, 91, 97, 109, 135, 189, 218, 193, 155, 120, 90, 81, 93, 113, 121, 95, 71, 72, 97, 167, 233, 249, 219, 140, 71, 42, 36, 60, 105, 149, 161, 124, 86, 88, 114, 170, 236, 236, 168, 77, 17, 36, 99, 159, 195, 177, 108, 43, 26, 72, 151, 215, 254, 231, 135, 60, 45, 77, 127, 147, 150, 133, 86, 51, 47, 79, 158, 241, 255, 236, 130, 44, 41, 77, 116, 134, 122, 94, 66, 76, 128, 183, 218, 227, 195, 134, 86, 64, 79, 103, 109, 124, 137, 136, 131, 114, 102, 99, 118, 175, 219, 203, 150, 96, 63, 62, 84, 122, 155, 156, 133, 86, 41, 44, 111, 220, 255, 255, 187, 85, 13, 0, 49, 139, 200, 191, 116, 33, 0, 48, 181, 255, 255, 225, 89, 0, 0, 22, 135, 228, 238, 161, 57, 3, 22, 107, 223, 255, 255, 162, 61, 9, 24, 103, 195, 225, 177, 87, 15, 0, 42, 129, 222, 255, 233, 147, 78, 61, 104, 164, 185, 133, 39, 0, 11, 95, 205, 255, 255, 212, 91, 14, 31, 102, 167, 182, 142, 89, 59, 81, 134, 170, 176, 156, 117, 77, 84, 140, 193, 202, 163, 113, 81, 73, 91, 122, 149, 155, 127, 81, 55, 73, 149, 238, 255, 197, 109, 54, 50, 80, 134, 174, 165, 109, 40, 13, 58, 162, 255, 255, 220, 118, 50, 47, 73, 106, 132, 136, 111, 78, 78, 119, 170, 208, 211, 165, 102, 68, 75, 115, 152, 166, 152, 117, 89, 93, 131, 161, 151, 112, 79, 72, 81, 121, 175, 201, 192, 154, 113, 104, 132, 172, 171, 107, 29, 2, 41, 122, 189, 225, 233, 197, 134, 89, 87, 127, 173, 179, 120, 29, 0, 25, 118, 200, 246, 242, 187, 110, 44, 38, 103, 184, 230, 202, 114, 28, 3, 58, 150, 214, 229, 192, 112, 45, 41, 99, 179, 221, 200, 123, 36, 0, 35, 133, 230, 255, 229, 143, 57, 15, 46, 122, 178, 192, 161, 102, 49, 42, 100, 182, 233, 225, 165, 94, 57, 66, 107, 145, 153, 135, 110, 93, 93, 117, 163, 188, 171, 136, 105, 96, 107, 128, 145, 140, 126, 114, 105, 107, 116, 133, 147, 148, 136, 130, 140, 148, 144, 133, 118, 105, 103, 117, 136, 140, 131, 118, 97, 94, 120, 158, 189, 182, 142, 106, 87, 97, 121, 140, 148, 132, 110, 99, 100, 117, 149, 175, 167, 133, 99, 90, 111, 143, 165, 163, 138, 105, 81, 76, 97, 133, 164, 174, 146, 104, 90, 107, 139, 159, 155, 139, 115, 108, 117, 124, 130, 134, 130, 121, 111, 107, 119, 142, 154, 144, 124, 106, 103, 118, 141, 156, 152, 137, 124, 107, 97, 106, 125, 146, 151, 133, 108, 94, 108, 141, 166, 165, 138, 112, 105, 110, 117, 129, 147, 152, 145, 127, 103, 96, 113, 138, 150, 138, 117, 107, 106, 114, 125, 135, 152, 162, 153, 133, 114, 111, 125, 137, 131, 111, 99, 104, 114, 125, 133, 140, 145, 147, 138, 119, 113, 120, 134, 149, 148, 132, 116, 105, 104, 108, 116, 130, 138, 140, 136, 123, 115, 117, 128, 140, 146, 145, 138, 129, 123, 116, 113, 116, 122, 123, 119, 117, 115, 121, 137, 145, 145, 140, 133, 127, 123, 124, 127, 129, 130, 126, 121, 121, 122, 121, 119, 119, 123, 127, 133, 133, 127, 129, 130, 131, 136, 140, 141, 136, 126, 117, 110, 113, 121, 124, 121, 117, 115, 122, 135, 145, 148, 144, 136, 127, 119, 115, 117, 124, 134, 141, 137, 127, 119, 110, 109, 118, 124, 130, 137, 139, 138, 129, 122, 124, 130, 137, 139, 133, 127, 121, 117, 115, 113, 116, 127, 137, 137, 130, 125, 127, 133, 136, 137, 135, 128, 129, 126, 116, 113, 118, 128, 134, 127, 118, 116, 124, 133, 135, 136, 137, 137, 137, 131, 124, 124, 129, 130, 121, 109, 107, 115, 130, 139, 137, 126, 120, 123, 131, 142, 150, 147, 137, 127, 114, 105, 107, 117, 126, 129, 127, 124, 119, 122, 129, 134, 141, 145, 149, 148, 136, 123, 114, 113, 114, 109, 104, 105, 116, 135, 150, 149, 135, 127, 130, 135, 143, 148, 143, 131, 115, 102, 96, 103, 118, 134, 142, 138, 127, 122, 129, 139, 145, 146, 141, 131, 123, 119, 117, 117, 122, 126, 123, 115, 113, 116, 127, 141, 148, 146, 139, 129, 123, 124, 128, 129, 127, 125, 121, 117, 118, 125, 130, 132, 133, 132, 131, 130, 130, 129, 129, 127, 123, 123, 124, 127, 126, 124, 123, 122, 127, 135, 141, 141, 135, 125, 116, 112, 115, 123, 131, 135, 133, 127, 122, 125, 132, 139, 139, 132, 123, 119, 119, 119, 124, 132, 137, 135, 127, 119, 118, 123, 131, 137, 138, 131, 123, 119, 119, 125, 133, 139, 137, 130, 121, 116, 118, 125, 134, 139, 137, 129, 122, 119, 121, 127, 133, 131, 126, 123, 122, 124, 128, 132, 136, 135, 132, 126, 121, 122, 125, 128, 131, 130, 128, 125, 125, 124, 123, 125, 126, 127, 129, 132, 131, 130, 133, 135, 132, 127, 124, 122, 122, 121, 123, 126, 127, 127, 127, 127, 129, 130, 131, 131, 131, 132, 131, 127, 123, 121, 123, 125, 128, 132, 132, 130, 126, 122, 122, 123, 127, 131, 132, 132, 130, 130, 129, 127, 126, 125, 126, 126, 125, 126, 129, 129, 128, 127, 128, 131, 131, 128, 124, 122, 126, 127, 127, 128, 127, 129, 130, 130, 131, 131, 128, 125, 123, 122, 122, 125, 128, 130, 130, 128, 127, 129, 132, 133, 132, 129, 127, 124, 121, 119, 121, 127, 131, 132, 132, 132, 131, 130, 128, 125, 125, 126, 128, 128, 127, 126, 124, 123, 125, 126, 130, 133, 135, 134, 130, 126, 124, 124, 125, 125, 125, 126, 126, 125, 128, 130, 131, 131, 129, 129, 129, 128, 126, 125, 126, 125, 126, 126, 127, 129, 129, 130, 130, 130, 129, 127, 124, 123, 125, 127, 129, 131, 131, 129, 127, 127, 128, 129, 130, 128, 126, 127, 127, 127, 126, 127, 127, 125, 126, 126, 127, 129, 128, 129, 129, 127, 128, 128, 128, 127, 127, 127, 125, 125, 125, 127, 130, 129, 129, 129, 129, 130, 128, 126, 126, 127, 129, 128, 126, 125, 126, 130, 131, 129, 130, 131, 127, 125, 125, 125, 128, 128, 126, 127, 126, 127, 128, 129, 130, 128, 128, 126, 124, 125, 128, 130, 130, 129, 125, 121, 124, 127, 132, 133, 130, 130, 128, 128, 127, 126, 125, 125, 126, 126, 125, 127, 129, 132, 132, 131, 131, 128, 129, 129, 127, 125, 123, 122, 123, 124, 126, 129, 129, 131, 131, 131, 130, 128, 126, 126, 128, 127, 125, 124, 125, 127, 127, 126, 126, 129, 131, 131, 132, 131, 130, 128, 125, 124, 124, 126, 125, 126, 126, 128, 131, 131, 131, 129, 129, 128, 127, 127, 126, 124, 125, 125, 126, 128, 128, 128, 129, 129, 128, 128, 126, 125, 126, 128, 129, 129, 128, 125, 126, 129, 129, 129, 128, 128, 129, 129, 129, 129, 126, 124, 125, 126, 126, 126, 128, 129, 131, 132, 128, 127, 127, 127, 130, 129, 125, 125, 126, 126, 126, 126, 126, 127, 129, 131, 131, 131, 128, 126, 125, 126, 127, 128, 128, 128, 128, 126, 126, 127, 129, 131, 129, 128, 127, 126, 127, 127, 127, 127, 127, 129, 127, 125, 126, 126, 128, 129, 129, 129, 128, 128, 130, 129, 128, 128, 126, 125, 125, 125, 127, 129, 129, 129, 127, 127, 127, 128, 129, 130, 130, 128, 126, 125, 124, 124, 126, 129, 130, 129, 128, 128, 128, 129, 129, 128, 128, 128, 126, 125, 124, 127, 129, 128, 128, 127, 127, 129, 129, 129, 128, 128, 126, 126, 126, 127, 128, 129, 128, 126, 125, 126, 127, 128, 129, 130, 129, 129, 128, 127, 127, 127, 128, 128, 126, 127, 126, 126, 126, 127, 130, 130, 128, 127, 127, 128, 129, 130, 129, 127, 127, 125, 124, 125, 126, 128, 129, 130, 129, 130, 129, 127, 128, 126, 126, 127, 126, 126, 127, 128, 128, 129, 128, 127, 128, 127, 126, 127, 128, 128, 128, 128, 126, 126, 128, 128, 126, 127, 127, 128, 130, 128, 127, 128, 128, 128, 127, 126, 125, 126, 127, 128, 129, 130, 129, 129, 128, 128, 128, 127, 128, 126, 125, 126, 126, 126, 127, 129, 129, 129, 129, 128, 127, 127, 126, 125, 125, 127, 129, 129, 128, 126, 127, 127, 128, 129, 129, 128, 128, 128, 128, 127, 128, 127, 127, 127, 126, 127, 126, 128, 128, 129, 130, 129, 128, 126, 125, 126, 126, 128, 128, 127, 126, 126, 127, 128, 129, 129, 129, 128, 126, 127, 128, 128, 128, 128, 128, 128, 127, 126, 126, 127, 127, 129, 128, 127, 127, 127, 127, 127, 126, 127, 128, 128, 127, 129, 130, 130, 129, 129, 128, 126, 127, 127, 126, 127, 127, 127, 127, 127, 128, 129, 128, 127, 127, 128, 128, 127, 126, 127, 127, 128, 128, 128, 128, 128, 127, 127, 128, 129, 130, 130, 127, 125, 125, 126, 126, 127, 128, 128, 128, 127, 128, 130, 130, 130, 129, 126, 126, 125, 127, 127, 127, 127, 127, 128, 126, 127, 128, 128, 130, 130, 129, 126, 124, 125, 126, 128, 129, 128, 127, 126, 127, 128, 129, 130, 129, 128, 126, 125, 125, 126, 128, 129, 129, 129, 128, 126, 127, 128, 129, 130, 128, 126, 126, 126, 124, 126, 128, 129, 129, 129, 127, 125, 127, 129, 129, 129, 129, 127, 127, 127, 126, 127, 129, 129, 128, 127, 126, 125, 128, 129, 130, 129, 127, 126, 126, 126, 126, 127, 128, 129, 128, 128, 127, 127, 128, 129, 128, 126, 126, 127, 127, 128, 128, 127, 128, 129, 128, 128, 127, 127, 128, 127, 126, 127, 127, 128, 128, 127, 126, 126, 127, 127, 128, 127, 126, 127, 128, 129, 130, 129, 129, 128, 128, 128, 127, 126, 128, 128, 128, 127, 125, 127, 127, 126, 128, 128, 128, 128, 126, 127, 126, 127, 130, 129, 128, 127, 127, 127, 128, 128, 128, 129, 128, 128, 127, 126, 127, 127, 128, 128, 126, 126, 126, 127, 129, 130, 129, 127, 127, 125, 126, 128, 128, 128, 129, 127, 127, 127, 127, 128, 128, 128, 128, 127, 126, 126, 127, 128, 128, 129, 129, 129, 128, 127, 127, 127, 129, 129, 127, 126, 125, 126, 128, 128, 128, 127, 126, 126, 127, 129, 130, 130, 131, 129, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 130, 130, 130, 130, 128, 127, 127, 126, 126, 127, 126, 126, 127, 127, 128, 129, 130, 128, 127, 127, 126, 126, 125, 125, 127, 128, 128, 129, 130, 129, 128, 128, 128, 128, 128, 128, 129, 126, 126, 127, 125, 126, 128, 128, 130, 130, 128, 128, 128, 126, 126, 127, 127, 128, 128, 128, 129, 128, 127, 126, 125, 126, 127, 128, 128, 129, 129, 129, 129, 128, 127, 128, 128, 126, 127, 128, 127, 127, 125, 126, 129, 129, 129, 129, 128, 127, 128, 127, 126, 128, 129, 128, 126, 125, 125, 126, 128, 130, 129, 128, 129, 128, 128, 128, 127, 126, 124, 124, 126, 128, 129, 130, 132, 131, 129, 128, 129, 127, 127, 126, 125, 125, 126, 127, 128, 129, 129, 130, 128, 124, 124, 123, 125, 129, 129, 129, 130, 129, 129, 129, 129, 128, 126, 124, 125, 128, 128, 128, 130, 132, 131, 129, 128, 126, 124, 124, 124, 123, 125, 128, 132, 133, 130, 128, 127, 124, 126, 128, 128, 127, 126, 127, 129, 129, 128, 125, 125, 125, 127, 131, 134, 134, 133, 131, 125, 123, 123, 123, 127, 126, 125, 127, 125, 127, 130, 131, 132, 133, 130, 127, 122, 119, 120, 122, 125, 128, 130, 137, 142, 142, 136, 126, 120, 118, 117, 117, 119, 124, 129, 134, 135, 134, 135, 137, 132, 127, 123, 117, 116, 118, 121, 127, 129, 129, 129, 130, 136, 145, 150, 144, 129, 115, 107, 107, 113, 119, 126, 131, 130, 130, 133, 132, 137, 140, 134, 128, 118, 115, 118, 119, 123, 126, 131, 143, 149, 143, 136, 125, 116, 111, 106, 112, 125, 130, 134, 134, 132, 137, 142, 140, 132, 118, 108, 111, 119, 123, 127, 129, 132, 145, 156, 154, 145, 129, 109, 97, 93, 98, 117, 134, 140, 140, 140, 142, 143, 141, 133, 121, 110, 105, 108, 118, 125, 135, 155, 163, 149, 130, 117, 112, 110, 105, 107, 119, 129, 135, 140, 144, 149, 148, 129, 112, 108, 108, 114, 122, 126, 140, 157, 152, 142, 135, 121, 112, 104, 100, 112, 118, 121, 139, 149, 148, 154, 150, 135, 118, 97, 93, 105, 111, 121, 133, 142, 162, 169, 152, 140, 128, 105, 94, 93, 98, 115, 130, 142, 157, 159, 148, 132, 114, 106, 112, 117, 126, 139, 139, 135, 133, 131, 136, 134, 122, 111, 105, 106, 118, 130, 141, 155, 152, 132, 114, 109, 115, 123, 136, 150, 146, 130, 117, 109, 114, 133, 139, 129, 121, 112, 112, 124, 137, 147, 143, 128, 118, 113, 119, 143, 160, 150, 132, 109, 98, 111, 122, 128, 136, 132, 122, 120, 123, 137, 150, 135, 118, 114, 110, 126, 149, 154, 147, 131, 111, 104, 107, 114, 134, 141, 131, 124, 121, 129, 140, 134, 125, 123, 119, 124, 140, 144, 139, 131, 116, 108, 112, 119, 131, 140, 135, 125, 122, 127, 133, 132, 125, 124, 127, 138, 145, 137, 129, 120, 107, 102, 113, 126, 134, 143, 146, 137, 129, 124, 117, 116, 123, 130, 137, 146, 142, 129, 118, 112, 112, 116, 121, 127, 134, 140, 139, 131, 124, 123, 114, 114, 139, 161, 163, 143, 110, 91, 91, 102, 124, 148, 152, 137, 122, 125, 137, 134, 125, 120, 124, 132, 133, 134, 136, 131, 117, 102, 106, 125, 137, 137, 138, 139, 135, 125, 112, 112, 126, 134, 133, 137, 145, 142, 130, 113, 104, 110, 116, 125, 136, 144, 146, 138, 130, 125, 113, 101, 108, 133, 160, 167, 145, 119, 104, 97, 100, 116, 140, 152, 152, 145, 132, 119, 102, 93, 105, 134, 169, 179, 152, 117, 94, 88, 99, 118, 142, 164, 157, 133, 120, 118, 110, 93, 106, 145, 168, 166, 143, 119, 106, 92, 92, 124, 153, 154, 143, 134, 127, 111, 96, 107, 138, 161, 157, 130, 111, 111, 122, 129, 131, 131, 124, 111, 111, 134, 157, 159, 139, 109, 97, 96, 97, 130, 181, 189, 152, 109, 79, 83, 105, 123, 153, 175, 164, 136, 107, 84, 80, 106, 152, 185, 176, 140, 101, 85, 96, 117, 141, 149, 143, 140, 128, 118, 119, 118, 121, 122, 116, 126, 156, 167, 145, 113, 90, 96, 118, 135, 149, 159, 146, 112, 86, 95, 132, 164, 167, 143, 113, 101, 107, 115, 131, 147, 148, 129, 112, 118, 128, 128, 131, 138, 135, 111, 92, 123, 173, 173, 131, 96, 92, 110, 126, 144, 158, 146, 122, 99, 90, 110, 147, 176, 174, 140, 103, 80, 84, 112, 143, 167, 166, 140, 116, 99, 95, 116, 141, 144, 142, 142, 134, 118, 106, 113, 133, 143, 136, 128, 125, 115, 109, 114, 130, 156, 165, 145, 117, 94, 95, 113, 133, 159, 161, 134, 103, 101, 129, 138, 122, 127, 147, 147, 116, 84, 106, 163, 175, 141, 100, 86, 112, 134, 147, 163, 152, 120, 83, 72, 118, 171, 191, 166, 109, 75, 75, 101, 148, 179, 175, 142, 102, 93, 114, 125, 138, 151, 137, 103, 75, 100, 165, 187, 163, 129, 106, 99, 99, 123, 159, 161, 126, 85, 78, 114, 160, 181, 161, 121, 90, 91, 108, 132, 157, 164, 160, 147, 117, 82, 71, 101, 143, 148, 127, 127, 152, 156, 135, 123, 126, 129, 117, 113, 130, 137, 125, 103, 98, 126, 159, 162, 133, 105, 105, 118, 128, 140, 155, 152, 140, 134, 124, 99, 70, 80, 124, 142, 139, 151, 178, 178, 139, 105, 102, 112, 111, 111, 124, 131, 129, 120, 112, 128, 156, 172, 155, 116, 89, 86, 108, 140, 157, 152, 142, 146, 146, 112, 64, 59, 100, 136, 150, 164, 185, 189, 153, 108, 90, 96, 108, 115, 118, 120, 122, 117, 110, 129, 164, 188, 176, 135, 105, 95, 92, 103, 120, 134, 143, 151, 157, 141, 101, 69, 74, 110, 149, 175, 187, 181, 149, 114, 96, 98, 106, 106, 107, 122, 136, 135, 124, 114, 112, 129, 164, 194, 191, 146, 93, 71, 74, 88, 117, 154, 171, 154, 117, 85, 79, 96, 135, 189, 212, 181, 130, 94, 93, 114, 127, 124, 109, 86, 71, 82, 121, 175, 220, 227, 184, 119, 74, 59, 74, 105, 134, 150, 136, 113, 126, 164, 180, 151, 106, 85, 80, 77, 93, 143, 202, 213, 172, 132, 115, 114, 108, 91, 84, 86, 82, 85, 113, 170, 231, 247, 201, 126, 73, 57, 59, 77, 110, 134, 140, 142, 168, 200, 183, 119, 69, 63, 81, 99, 123, 161, 187, 174, 141, 130, 145, 150, 127, 89, 67, 69, 83, 105, 132, 153, 171, 185, 190, 177, 148, 117, 88, 67, 68, 96, 126, 138, 139, 136, 132, 129, 138, 155, 161, 145, 121, 108, 107, 114, 124, 134, 138, 129, 114, 110, 122, 134, 135, 127, 118, 112, 115, 134, 163, 174, 158, 127, 100, 94, 112, 134, 140, 124, 102, 89, 88, 107, 152, 192, 197, 168, 133, 110, 108, 119, 124, 113, 93, 80, 83, 99, 131, 176, 205, 194, 157, 120, 103, 106, 112, 109, 96, 88, 96, 118, 151, 182, 192, 170, 126, 92, 87, 100, 119, 129, 127, 124, 124, 126, 135, 158, 179, 170, 127, 81, 60, 74, 108, 137, 152, 154, 151, 147, 141, 142, 150, 148, 121, 87, 71, 82, 110, 139, 153, 147, 136, 133, 138, 144, 150, 152, 140, 116, 97, 90, 95, 111, 130, 136, 128, 122, 132, 149, 159, 160, 150, 131, 113, 102, 99, 100, 109, 122, 131, 134, 138, 146, 149, 142, 129, 121, 121, 123, 125, 125, 123, 121, 121, 127, 136, 139, 135, 126, 117, 111, 110, 117, 132, 145, 152, 147, 136, 127, 124, 123, 118, 112, 110, 115, 123, 132, 139, 140, 137, 133, 129, 126, 126, 130, 132, 129, 123, 120, 121, 123, 129, 132, 129, 124, 121, 122, 124, 129, 135, 140, 140, 134, 127, 121, 118, 121, 127, 128, 125, 122, 126, 131, 132, 133, 134, 131, 124, 120, 118, 120, 126, 134, 140, 138, 133, 128, 126, 123, 120, 118, 120, 125, 129, 130, 129, 128, 131, 132, 128, 124, 126, 132, 136, 133, 127, 125, 125, 127, 128, 124, 121, 121, 122, 123, 126, 131, 138, 144, 143, 135, 127, 120, 115, 113, 115, 119, 124, 128, 133, 137, 139, 141, 138, 132, 124, 117, 112, 114, 120, 129, 136, 138, 134, 130, 128, 128, 128, 128, 128, 124, 121, 122, 127, 131, 132, 130, 126, 124, 124, 126, 126, 126, 128, 132, 135, 138, 137, 131, 122, 116, 116, 120, 123, 124, 127, 131, 132, 130, 129, 132, 136, 138, 135, 128, 121, 118, 119, 120, 123, 126, 128, 128, 127, 128, 131, 132, 132, 132, 134, 135, 135, 131, 125, 119, 114, 115, 120, 124, 127, 131, 132, 132, 130, 128, 129, 132, 132, 131, 128, 126, 126, 127, 127, 126, 125, 124, 123, 121, 121, 123, 126, 130, 133, 135, 138, 140, 137, 131, 126, 123, 120, 118, 117, 121, 126, 129, 129, 128, 129, 130, 129, 128, 128, 128, 129, 129, 130, 132, 132, 130, 128, 125, 123, 122, 121, 121, 122, 125, 127, 129, 131, 130, 129, 130, 131, 133, 133, 133, 132, 130, 128, 125, 122, 122, 122, 121, 122, 124, 127, 130, 132, 131, 130, 131, 130, 128, 127, 128, 129, 129, 128, 128, 128, 128, 128, 126, 124, 123, 122, 122, 122, 124, 129, 134, 136, 135, 133, 131, 128, 126, 124, 124, 125, 125, 126, 128, 128, 128, 128, 128, 128, 127, 126, 126, 127, 129, 129, 129, 130, 130, 128, 127, 127, 127, 126, 126, 125, 126, 128, 128, 129, 130, 131, 129, 126, 124, 122, 123, 126, 127, 128, 129, 131, 130, 129, 128, 127, 127, 128, 127, 128, 129, 129, 128, 128, 129, 130, 129, 127, 125, 125, 126, 127, 128, 127, 127, 128, 129, 129, 128, 128, 127, 127, 126, 125, 126, 128, 128, 128, 128, 127, 127, 128, 130, 130, 129, 128, 128, 127, 127, 127, 126, 126, 127, 126, 126, 128, 129, 128, 128, 128, 129, 129, 128, 127, 126, 127, 127, 126, 127, 127, 127, 126, 127, 128, 129, 130, 130, 129, 129, 128, 126, 127, 127, 126, 126, 126, 126, 126, 126, 128, 129, 129, 130, 129, 128, 128, 127, 126, 126, 126, 127, 127, 128, 128, 127, 127, 128, 128, 129, 129, 129, 128, 127, 126, 127, 128, 128, 128, 128, 128, 129, 128, 126, 126, 126, 127, 127, 127, 129, 130, 130, 128, 126, 126, 127, 127, 127, 127, 127, 126, 127, 129, 130, 128, 128, 128, 127, 127, 127, 127, 126, 127, 127, 128, 129, 129, 128, 127, 126, 126, 127, 129, 128, 127, 127, 127, 128, 130, 130, 128, 127, 125, 124, 125, 127, 129, 129, 130, 130, 128, 128, 127, 127, 128, 127, 126, 126, 127, 129, 129, 127, 126, 127, 128, 130, 128, 127, 128, 127, 127, 127, 128, 129, 129, 128, 127, 126, 126, 126, 126, 127, 128, 129, 130, 129, 127, 127, 126, 125, 127, 127, 128, 128, 128, 129, 128, 128, 128, 127, 127, 127, 128, 129, 129, 129, 128, 127, 127, 127, 129, 128, 127, 126, 125, 125, 127, 129, 128, 129, 129, 127, 127, 127, 127, 126, 126, 128, 129, 129, 128, 129, 129, 128, 126, 125, 127, 127, 127, 128, 128, 129, 129, 128, 127, 127, 128, 127, 127, 126, 126, 128, 128, 128, 128, 129, 128, 127, 127, 126, 125, 126, 127, 128, 128, 128, 128, 127, 126, 127, 128, 128, 128, 128, 129, 128, 128, 129, 128, 128, 128, 127, 125, 126, 127, 127, 127, 127, 128, 129, 129, 129, 127, 126, 125, 126, 129, 128, 128, 127, 127, 128, 127, 127, 127, 129, 128, 127, 128, 128, 130, 129, 128, 127, 126, 127, 126, 125, 126, 127, 128, 128, 128, 128, 129, 128, 127, 127, 126, 127, 127, 128, 128, 127, 128, 127, 128, 128, 128, 129, 127, 127, 127, 127, 129, 129, 128, 128, 127, 126, 125, 126, 128, 128, 128, 128, 128, 128, 129, 129, 128, 128, 127, 126, 126, 127, 128, 128, 127, 126, 126, 126, 127, 128, 129, 128, 127, 128, 128, 128, 129, 128, 126, 127, 126, 126, 127, 128, 130, 129, 128, 128, 127, 128, 128, 127, 126, 126, 126, 127, 129, 128, 127, 128, 127, 127, 127, 127, 126, 127, 127, 128, 130, 129, 129, 128, 127, 127, 124, 125, 127, 126, 128, 128, 129, 130, 129, 128, 127, 128, 128, 127, 127, 126, 127, 127, 128, 129, 130, 129, 128, 126, 125, 126, 127, 128, 128, 128, 129, 128, 127, 127, 127, 126, 126, 127, 127, 127, 127, 128, 129, 129, 129, 129, 128, 126, 126, 126, 126, 128, 128, 129, 129, 128, 129, 127, 127, 126, 126, 127, 126, 128, 129, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 129, 128, 128, 127, 128, 129, 127, 127, 126, 127, 127, 126, 128, 127, 128, 129, 128, 128, 127, 126, 127, 126, 128, 130, 129, 129, 129, 128, 126, 124, 126, 127, 127, 128, 129, 129, 129, 128, 129, 127, 126, 126, 128, 129, 128, 128, 127, 127, 127, 127, 128, 127, 127, 128, 126, 127, 127, 127, 129, 129, 128, 128, 128, 127, 127, 126, 126, 126, 127, 128, 129, 129, 129, 128, 126, 126, 127, 127, 128, 129, 128, 128, 128, 128, 126, 127, 128, 128, 128, 126, 126, 128, 129, 128, 128, 127, 128, 128, 127, 127, 126, 127, 129, 127, 126, 126, 128, 127, 128, 128, 127, 129, 128, 126, 127, 127, 128, 129, 129, 127, 128, 127, 127, 127, 126, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 129, 128, 128, 127, 128, 128, 128, 128, 127, 126, 127, 129, 128, 127, 127, 127, 128, 127, 127, 128, 128, 128, 127, 127, 128, 128, 129, 127, 126, 127, 128, 127, 127, 127, 127, 128, 128, 127, 128, 128, 127, 128, 128, 127, 127, 127, 127, 128, 127, 129, 129, 127, 127, 127, 126, 127, 127, 128, 129, 128, 127, 127, 127, 128, 127, 127, 127, 128, 130, 128, 127, 127, 127, 128, 127, 127, 127, 127, 128, 127, 126, 127, 128, 128, 129, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 126, 128, 127, 127, 128, 126, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 126, 126, 128, 129, 129, 128, 127, 127, 128, 128, 126, 127, 128, 128, 127, 125, 126, 127, 129, 128, 128, 128, 128, 128, 126, 126, 128, 128, 128, 128, 128, 128, 128, 127, 126, 126, 128, 127, 128, 129, 127, 129, 128, 127, 127, 128, 129, 128, 129, 126, 126, 127, 126, 127, 127, 127, 130, 130, 129, 128, 126, 126, 129, 128, 125, 128, 128, 128, 126, 126, 128, 129, 129, 128, 127, 127, 125, 125, 126, 127, 128, 130, 129, 129, 129, 127, 127, 126, 127, 126, 126, 128, 127, 128, 130, 130, 127, 127, 128, 126, 126, 127, 126, 127, 128, 127, 127, 130, 128, 129, 129, 128, 127, 125, 125, 126, 126, 127, 127, 128, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 126, 126, 127, 128, 129, 127, 127, 127, 127, 127, 127, 128, 128, 129, 128, 127, 127, 127, 128, 128, 128, 127, 127, 128, 126, 127, 127, 128, 129, 128, 128, 128, 128, 128, 129, 129, 128, 128, 128, 127, 127, 127, 125, 125, 127, 126, 126, 127, 128, 130, 129, 128, 127, 127, 127, 126, 127, 127, 128, 128, 128, 128, 128, 127, 127, 128, 127, 128, 127, 128, 129, 129, 128, 128, 128, 128, 126, 125, 125, 127, 126, 128, 129, 128, 129, 129, 127, 128, 127, 127, 128, 128, 127, 128, 128, 128, 127, 128, 131, 129, 127, 126, 126, 126, 124, 126, 125, 127, 129, 128, 130, 130, 130, 128, 127, 129, 126, 125, 125, 126, 128, 129, 129, 128, 128, 130, 128, 127, 126, 126, 127, 128, 128, 127, 129, 131, 130, 128, 126, 125, 125, 125, 125, 125, 128, 130, 129, 130, 128, 128, 127, 126, 128, 127, 130, 128, 125, 127, 128, 130, 129, 130, 129, 126, 129, 127, 123, 125, 127, 129, 127, 127, 124, 126, 131, 128, 126, 128, 128, 128, 128, 126, 126, 129, 129, 128, 129, 127, 127, 128, 129, 127, 126, 127, 128, 128, 126, 128, 128, 127, 129, 128, 127, 127, 126, 125, 127, 129, 128, 129, 129, 127, 124, 125, 128, 128, 129, 130, 130, 129, 126, 126, 126, 126, 128, 129, 130, 132, 127, 126, 128, 128, 127, 126, 126, 126, 127, 126, 121, 125, 129, 129, 131, 129, 129, 129, 131, 130, 127, 128, 126, 127, 125, 122, 122, 126, 132, 130, 130, 129, 129, 132, 127, 126, 126, 124, 124, 124, 127, 127, 131, 131, 129, 130, 126, 125, 126, 127, 127, 129, 130, 128, 131, 130, 128, 128, 126, 125, 123, 124, 124, 126, 128, 128, 131, 130, 130, 129, 126, 126, 123, 127, 130, 130, 128, 128, 130, 127, 128, 124, 125, 133, 129, 125, 126, 128, 126, 127, 127, 124, 127, 125, 124, 131, 132, 130, 130, 130, 129, 130, 126, 124, 127, 125, 125, 127, 128, 130, 129, 130, 130, 126, 123, 124, 127, 125, 127, 128, 129, 131, 129, 129, 129, 128, 127, 127, 128, 127, 128, 128, 129, 128, 125, 126, 125, 125, 127, 128, 127, 127, 128, 127, 129, 128, 125, 130, 129, 127, 128, 129, 129, 128, 131, 129, 128, 128, 124, 126, 124, 123, 125, 124, 129, 131, 129, 128, 131, 131, 125, 125, 126, 127, 127, 126, 128, 129, 131, 129, 129, 128, 124, 126, 126, 125, 124, 123, 129, 131, 130, 129, 130, 132, 129, 126, 124, 125, 128, 127, 128, 128, 130, 130, 129, 129, 128, 127, 128, 127, 127, 127, 128, 128, 128, 126, 123, 125, 127, 126, 124, 126, 130, 128, 126, 126, 126, 127, 128, 129, 130, 131, 131, 130, 128, 127, 127, 127, 127, 127, 128, 128, 125, 126, 126, 126, 127, 124, 124, 129, 126, 127, 130, 133, 134, 130, 123, 124, 131, 128, 126, 131, 131, 130, 127, 124, 126, 127, 124, 121, 123, 123, 125, 129, 131, 132, 133, 135, 132, 126, 124, 123, 125, 123, 123, 127, 130, 133, 130, 131, 131, 127, 128, 127, 126, 126, 125, 127, 129, 129, 128, 127, 129, 128, 126, 124, 123, 126, 129, 130, 129, 129, 129, 125, 123, 124, 125, 131, 132, 128, 129, 129, 130, 130, 128, 128, 130, 131, 127, 124, 121, 121, 125, 125, 127, 129, 130, 129, 129, 129, 127, 128, 130, 127, 126, 126, 128, 128, 128, 127, 124, 129, 131, 128, 128, 129, 130, 130, 128, 121, 119, 124, 126, 124, 127, 131, 135, 135, 130, 128, 127, 127, 127, 124, 125, 127, 127, 128, 130, 131, 132, 132, 128, 126, 125, 122, 122, 123, 125, 126, 128, 131, 130, 130, 127, 125, 127, 126, 128, 130, 129, 128, 130, 132, 130, 129, 128, 126, 125, 124, 124, 123, 124, 127, 130, 130, 129, 130, 129, 129, 127, 124, 127, 129, 127, 127, 129, 127, 125, 129, 129, 128, 128, 127, 126, 128, 129, 128, 130, 128, 127, 127, 122, 123, 124, 129, 128, 124, 130, 133, 134, 130, 124, 127, 127, 127, 124, 126, 129, 128, 132, 128, 128, 128, 125, 127, 126, 127, 126, 127, 128, 127, 131, 130, 129, 128, 127, 130, 124, 123, 123, 124, 127, 128, 131, 130, 131, 129, 126, 124, 121, 125, 129, 129, 128, 130, 131, 132, 132, 128, 129, 129, 126, 124, 124, 128, 125, 124, 126, 127, 130, 127, 128, 126, 129, 130, 123, 128, 130, 133, 133, 122, 122, 126, 129, 128, 127, 131, 131, 134, 127, 121, 126, 126, 126, 127, 127, 125, 125, 125, 124, 132, 134, 132, 132, 128, 127, 127, 128, 124, 124, 127, 126, 125, 125, 128, 131, 129, 129, 129, 129, 129, 128, 128, 129, 129, 126, 123, 121, 123, 127, 127, 130, 131, 130, 130, 128, 125, 124, 129, 131, 126, 124, 125, 128, 129, 126, 128, 133, 134, 132, 128, 126, 127, 125, 121, 122, 125, 125, 127, 129, 130, 132, 133, 131, 128, 127, 126, 123, 123, 125, 127, 129, 129, 132, 130, 129, 127, 124, 125, 124, 125, 127, 128, 127, 128, 132, 133, 130, 131, 128, 121, 122, 125, 126, 127, 129, 132, 133, 133, 130, 125, 125, 124, 123, 121, 120, 126, 130, 131, 132, 133, 134, 130, 127, 125, 124, 123, 123, 125, 126, 130, 131, 132, 132, 129, 127, 126, 125, 123, 125, 130, 130, 128, 128, 130, 130, 128, 129, 127, 126, 125, 124, 125, 125, 126, 128, 132, 131, 127, 127, 127, 127, 126, 128, 128, 128, 131, 126, 125, 127, 126, 128, 128, 128, 124, 125, 128, 129, 131, 129, 130, 130, 128, 126, 124, 125, 124, 125, 127, 127, 130, 133, 133, 132, 131, 128, 125, 124, 121, 121, 124, 126, 128, 131, 133, 134, 131, 129, 128, 125, 122, 121, 122, 125, 126, 130, 133, 133, 131, 128, 127, 125, 125, 125, 124, 127, 128, 129, 130, 131, 133, 131, 131, 129, 126, 124, 121, 121, 122, 127, 130, 130, 130, 128, 130, 129, 128, 126, 125, 129, 128, 127, 127, 128, 130, 127, 127, 123, 123, 126, 123, 126, 132, 131, 130, 133, 133, 128, 127, 124, 123, 125, 124, 124, 126, 129, 132, 133, 131, 128, 128, 127, 126, 126, 125, 125, 128, 129, 128, 129, 130, 130, 129, 125, 121, 122, 126, 125, 127, 131, 132, 132, 130, 129, 128, 126, 126, 126, 126, 127, 129, 130, 128, 130, 131, 127, 126, 126, 123, 122, 125, 125, 127, 133, 132, 132, 133, 129, 126, 125, 122, 121, 124, 126, 126, 130, 133, 134, 133, 129, 128, 125, 123, 121, 120, 123, 125, 130, 135, 135, 136, 135, 130, 125, 121, 117, 120, 122, 122, 128, 133, 136, 134, 132, 130, 127, 125, 122, 123, 122, 123, 129, 131, 136, 135, 132, 130, 124, 123, 121, 121, 122, 124, 127, 129, 135, 134, 131, 129, 124, 125, 125, 124, 122, 123, 131, 133, 134, 133, 132, 134, 129, 124, 119, 120, 122, 123, 127, 128, 131, 133, 130, 129, 130, 128, 124, 127, 125, 123, 128, 128, 128, 133, 134, 128, 127, 124, 118, 123, 126, 125, 127, 130, 131, 132, 133, 129, 128, 126, 124, 125, 127, 128, 124, 125, 129, 130, 130, 127, 128, 129, 129, 129, 126, 129, 130, 128, 127, 125, 126, 125, 126, 125, 126, 127, 126, 129, 129, 130, 128, 128, 127, 124, 125, 125, 127, 128, 133, 137, 129, 129, 128, 126, 127, 123, 124, 125, 127, 127, 127, 131, 130, 128, 127, 128, 127, 125, 126, 125, 129, 131, 129, 128, 128, 129, 126, 125, 125, 127, 131, 131, 132, 130, 128, 126, 123, 123, 123, 124, 125, 125, 129, 132, 133, 133, 133, 130, 126, 125, 121, 120, 121, 123, 127, 130, 132, 134, 136, 135, 131, 129, 126, 122, 121, 122, 124, 125, 126, 129, 131, 131, 130, 128, 125, 125, 126, 124, 122, 127, 133, 135, 134, 130, 127, 128, 126, 122, 123, 125, 126, 127, 129, 130, 131, 129, 128, 129, 127, 123, 123, 125, 126, 128, 127, 129, 132, 133, 132, 130, 127, 127, 124, 123, 124, 125, 127, 127, 129, 131, 130, 130, 126, 125, 128, 127, 124, 124, 128, 129, 130, 129, 125, 131, 132, 123, 123, 126, 126, 128, 130, 129, 131, 134, 129, 126, 129, 126, 123, 126, 124, 120, 125, 128, 129, 131, 131, 130, 131, 126, 124, 127, 127, 128, 131, 130, 131, 131, 127, 124, 128, 128, 125, 125, 123, 125, 126, 125, 127, 131, 132, 127, 126, 127, 126, 128, 127, 126, 129, 131, 129, 128, 130, 126, 127, 129, 128, 129, 127, 126, 126, 129, 131, 127, 126, 121, 123, 127, 124, 128, 129, 131, 132, 133, 130, 126, 129, 126, 123, 122, 122, 130, 129, 127, 130, 132, 130, 127, 127, 125, 129, 128, 126, 131, 129, 129, 128, 125, 125, 125, 125, 123, 126, 127, 127, 133, 132, 131, 130, 127, 126, 130, 126, 120, 124, 128, 129, 132, 131, 132, 132, 131, 125, 123, 123, 119, 123, 126, 127, 130, 132, 133, 131, 131, 127, 122, 128, 125, 124, 129, 127, 127, 131, 132, 130, 130, 126, 122, 127, 126, 124, 127, 125, 124, 125, 126, 128, 129, 130, 129, 133, 135, 128, 125, 126, 126, 125, 123, 124, 126, 129, 129, 129, 132, 130, 129, 129, 128, 130, 127, 127, 127, 124, 124, 126, 127, 127, 130, 129, 127, 126, 125, 125, 125, 127, 131, 130, 130, 130, 130, 130, 127, 125, 127, 128, 125, 128, 128, 125, 127, 125, 124, 125, 127, 128, 129, 128, 126, 131, 132, 131, 132, 128, 126, 126, 126, 126, 126, 129, 127, 130, 129, 125, 127, 124, 126, 127, 125, 128, 127, 127, 131, 130, 127, 131, 132, 123, 125, 127, 122, 126, 128, 127, 133, 133, 130, 129, 128, 125, 126, 127, 127, 128, 126, 126, 128, 127, 126, 124, 124, 126, 126, 128, 128, 127, 128, 128, 128, 129, 128, 127, 131, 131, 128, 128, 127, 129, 129, 125, 125, 127, 126, 124, 127, 127, 127, 131, 127, 128, 130, 129, 129, 128, 129, 127, 128, 124, 122, 129, 126, 128, 131, 129, 131, 129, 129, 125, 127, 129, 124, 125, 125, 128, 127, 125, 126, 125, 130, 128, 131, 139, 130, 123, 122, 125, 124, 126, 129, 127, 135, 133, 129, 133, 129, 125, 124, 125, 120, 119, 126, 127, 130, 130, 128, 131, 130, 130, 128, 126, 124, 124, 127, 128, 131, 131, 132, 133, 133, 130, 123, 121, 120, 122, 125, 127, 130, 132, 133, 131, 130, 127, 125, 124, 122, 125, 125, 127, 130, 132, 136, 130, 127, 125, 125, 124, 121, 125, 126, 133, 135, 132, 135, 125, 120, 123, 127, 124, 119, 126, 127, 132, 131, 128, 135, 133, 131, 126, 124, 124, 121, 127, 127, 130, 133, 134, 133, 125, 124, 122, 121, 122, 121, 131, 133, 132, 131, 128, 128, 127, 130, 126, 124, 127, 127, 130, 129, 130, 131, 132, 131, 126, 123, 120, 119, 123, 127, 130, 130, 131, 132, 131, 129, 127, 126, 124, 125, 126, 124, 124, 127, 130, 132, 133, 131, 128, 128, 126, 125, 125, 124, 126, 127, 126, 127, 129, 128, 127, 126, 126, 128, 130, 128, 128, 131, 128, 127, 128, 129, 129, 129, 129, 126, 127, 127, 124, 126, 124, 125, 131, 132, 129, 126, 125, 124, 125, 122, 126, 137, 135, 131, 130, 127, 127, 128, 123, 122, 129, 127, 124, 127, 126, 126, 130, 132, 128, 127, 127, 122, 125, 127, 129, 131, 130, 131, 130, 128, 124, 125, 127, 127, 128, 122, 126, 133, 130, 132, 128, 128, 129, 126, 124, 124, 128, 123, 126, 129, 127, 132, 130, 130, 128, 126, 129, 129, 131, 124, 119, 125, 127, 124, 121, 127, 132, 135, 135, 126, 128, 128, 125, 125, 124, 126, 127, 131, 130, 130, 131, 127, 128, 127, 126, 123, 122, 125, 124, 128, 129, 130, 130, 128, 131, 127, 126, 125, 125, 131, 129, 130, 127, 128, 130, 128, 132, 127, 124, 125, 122, 124, 125, 129, 131, 131, 133, 130, 130, 127, 125, 126, 123, 122, 121, 127, 131, 131, 133, 132, 132, 133, 129, 125, 125, 123, 123, 123, 122, 123, 128, 129, 130, 132, 128, 126, 128, 125, 125, 127, 129, 133, 132, 131, 131, 132, 130, 126, 126, 121, 120, 123, 122, 124, 126, 128, 130, 133, 134, 131, 131, 128, 127, 125, 124, 126, 126, 126, 126, 126, 126, 129, 133, 130, 130, 129, 126, 123, 122, 128, 127, 126, 128, 127, 132, 133, 129, 126, 125, 128, 126, 125, 126, 129, 131, 130, 132, 123, 118, 124, 126, 128, 129, 133, 134, 135, 134, 123, 122, 124, 122, 124, 123, 126, 127, 129, 130, 129, 131, 129, 131, 128, 124, 129, 123, 120, 127, 132, 132, 133, 135, 133, 134, 127, 120, 121, 121, 122, 122, 126, 127, 129, 133, 129, 130, 130, 128, 127, 124, 123, 124, 127, 125, 130, 134, 132, 133, 129, 124, 125, 127, 126, 125, 129, 127, 130, 130, 128, 129, 127, 127, 125, 128, 125, 121, 132, 132, 127, 126, 127, 129, 129, 130, 128, 130, 129, 124, 126, 125, 125, 126, 126, 126, 121, 125, 126, 127, 129, 130, 134, 132, 135, 132, 127, 128, 125, 122, 123, 126, 128, 131, 132, 128, 129, 128, 125, 125, 124, 125, 126, 128, 127, 129, 129, 131, 132, 126, 127, 128, 126, 127, 127, 129, 128, 128, 127, 127, 126, 122, 126, 124, 122, 127, 127, 128, 133, 137, 137, 135, 128, 119, 126, 123, 117, 122, 125, 132, 135, 134, 135, 135, 130, 122, 120, 117, 118, 123, 124, 131, 137, 135, 135, 135, 133, 129, 123, 116, 116, 121, 124, 127, 130, 129, 132, 139, 135, 126, 125, 128, 124, 123, 121, 123, 132, 132, 127, 131, 133, 130, 127, 129, 126, 124, 126, 122, 125, 129, 129, 128, 127, 128, 128, 126, 125, 124, 127, 131, 131, 128, 127, 128, 131, 130, 126, 125, 129, 129, 123, 125, 131, 133, 130, 124, 123, 124, 124, 127, 128, 130, 132, 132, 130, 130, 129, 126, 128, 124, 121, 124, 124, 125, 130, 131, 130, 129, 128, 123, 125, 127, 122, 124, 126, 128, 133, 132, 131, 135, 135, 133, 129, 125, 120, 120, 123, 123, 125, 126, 128, 131, 131, 133, 131, 127, 126, 125, 124, 121, 122, 128, 132, 131, 132, 133, 131, 129, 128, 125, 123, 122, 122, 122, 124, 128, 129, 133, 136, 135, 133, 131, 127, 121, 117, 117, 120, 124, 128, 130, 135, 139, 136, 130, 129, 126, 124, 123, 122, 124, 126, 129, 132, 132, 129, 127, 125, 122, 125, 128, 126, 127, 130, 130, 129, 124, 125, 129, 127, 126, 129, 133, 132, 130, 129, 127, 129, 123, 117, 124, 127, 128, 129, 130, 131, 133, 132, 125, 125, 126, 125, 124, 122, 124, 128, 133, 134, 131, 131, 130, 129, 127, 122, 122, 126, 123, 119, 125, 128, 131, 135, 132, 129, 130, 128, 124, 126, 127, 125, 129, 127, 128, 129, 128, 128, 125, 127, 129, 130, 128, 126, 131, 130, 127, 125, 125, 127, 124, 125, 125, 125, 129, 131, 132, 132, 131, 126, 125, 125, 118, 120, 126, 129, 135, 136, 133, 132, 130, 127, 128, 127, 123, 123, 125, 128, 130, 127, 127, 130, 127, 123, 122, 122, 125, 126, 128, 132, 132, 134, 133, 132, 129, 123, 121, 123, 125, 126, 127, 131, 131, 132, 129, 128, 129, 125, 122, 120, 123, 128, 130, 131, 131, 133, 133, 130, 126, 124, 126, 125, 123, 123, 128, 132, 132, 132, 129, 126, 124, 123, 124, 123, 124, 127, 129, 129, 127, 131, 135, 133, 130, 131, 130, 126, 123, 119, 119, 124, 128, 132, 133, 134, 136, 132, 129, 125, 122, 121, 120, 123, 124, 126, 127, 130, 136, 131, 129, 131, 128, 127, 127, 127, 126, 129, 130, 127, 129, 126, 124, 126, 126, 126, 124, 125, 125, 125, 128, 130, 132, 134, 136, 134, 126, 121, 117, 119, 124, 124, 127, 134, 137, 136, 132, 131, 128, 123, 121, 121, 122, 126, 129, 132, 134, 134, 132, 129, 128, 125, 124, 120, 117, 120, 123, 128, 128, 125, 134, 140, 134, 126, 123, 125, 126, 127, 126, 130, 136, 133, 127, 125, 127, 126, 122, 123, 125, 128, 127, 127, 131, 131, 129, 126, 125, 126, 126, 124, 125, 130, 131, 131, 133, 133, 129, 126, 126, 123, 120, 122, 124, 128, 130, 130, 131, 129, 129, 129, 129, 129, 127, 126, 123, 124, 125, 128, 130, 126, 129, 130, 127, 129, 126, 126, 129, 130, 132, 132, 133, 129, 126, 125, 119, 120, 123, 126, 129, 129, 129, 129, 130, 128, 125, 128, 128, 127, 124, 126, 132, 131, 130, 130, 130, 130, 127, 126, 124, 122, 125, 127, 126, 127, 125, 123, 127, 127, 123, 130, 141, 137, 133, 131, 127, 128, 124, 118, 121, 122, 123, 126, 129, 129, 133, 136, 132, 131, 130, 123, 121, 121, 121, 125, 128, 126, 130, 136, 134, 131, 128, 126, 127, 125, 123, 125, 129, 130, 132, 131, 128, 130, 130, 126, 125, 121, 118, 122, 124, 125, 131, 134, 135, 134, 130, 126, 123, 122, 121, 124, 130, 131, 132, 133, 132, 131, 129, 124, 123, 124, 123, 123, 122, 124, 128, 131, 132, 131, 132, 130, 127, 124, 123, 126, 128, 129, 130, 130, 131, 130, 127, 126, 125, 125, 126, 127, 125, 125, 129, 132, 131, 130, 130, 127, 123, 122, 123, 126, 124, 122, 126, 130, 135, 134, 131, 131, 130, 129, 126, 125, 125, 125, 126, 124, 127, 130, 129, 130, 134, 133, 130, 128, 124, 123, 124, 123, 122, 122, 125, 128, 127, 132, 135, 133, 129, 125, 124, 125, 128, 130, 131, 131, 129, 125, 123, 123, 122, 127, 129, 129, 131, 129, 132, 132, 129, 127, 124, 123, 121, 123, 126, 128, 132, 132, 133, 132, 127, 126, 122, 122, 126, 128, 130, 127, 128, 130, 130, 128, 124, 124, 123, 124, 126, 127, 132, 132, 133, 131, 130, 129, 125, 124, 122, 125, 130, 128, 129, 130, 130, 128, 126, 126, 124, 125, 127, 125, 127, 129, 129, 131, 134, 131, 128, 127, 124, 124, 126, 129, 126, 121, 125, 126, 127, 131, 129, 129, 129, 130, 128, 126, 128, 127, 127, 128, 126, 124, 127, 130, 128, 128, 129, 129, 130, 129, 126, 126, 126, 125, 126, 126, 125, 125, 128, 130, 131, 131, 133, 132, 131, 128, 124, 124, 124, 123, 126, 129, 127, 130, 130, 128, 130, 126, 123, 124, 122, 118, 121, 136, 138, 135, 135, 131, 129, 125, 117, 119, 128, 130, 126, 128, 132, 133, 133, 127, 125, 126, 122, 118, 122, 127, 130, 136, 135, 135, 135, 127, 123, 119, 116, 122, 127, 127, 127, 132, 131, 129, 134, 131, 127, 126, 124, 126, 132, 131, 128, 132, 131, 128, 129, 124, 119, 119, 122, 126, 128, 130, 131, 136, 133, 126, 126, 123, 122, 124, 125, 128, 130, 134, 132, 129, 129, 128, 125, 122, 123, 127, 129, 127, 127, 129, 131, 130, 126, 125, 125, 128, 128, 128, 131, 131, 129, 129, 126, 127, 127, 126, 125, 120, 122, 127, 130, 133, 134, 134, 132, 129, 126, 124, 125, 123, 124, 126, 125, 128, 128, 128, 130, 130, 130, 126, 123, 124, 122, 123, 128, 129, 132, 135, 134, 132, 132, 129, 125, 123, 122, 123, 124, 125, 125, 127, 130, 128, 129, 131, 130, 130, 130, 128, 126, 124, 126, 127, 125, 126, 128, 128, 129, 129, 129, 131, 129, 125, 126, 127, 126, 129, 130, 129, 131, 131, 126, 124, 119, 119, 123, 125, 129, 135, 138, 134, 131, 130, 126, 123, 119, 117, 123, 125, 126, 129, 134, 139, 137, 133, 131, 128, 125, 120, 120, 121, 123, 128, 129, 132, 133, 131, 131, 127, 124, 123, 123, 124, 126, 130, 130, 132, 132, 126, 128, 130, 128, 129, 128, 125, 127, 129, 127, 128, 130, 129, 127, 124, 123, 125, 124, 124, 126, 126, 131, 133, 129, 129, 130, 127, 125, 123, 124, 129, 131, 128, 129, 133, 130, 127, 126, 126, 127, 126, 123, 126, 132, 131, 128, 128, 127, 127, 126, 125, 126, 127, 128, 127, 128, 129, 128, 127, 128, 129, 128, 129, 127, 127, 128, 125, 127, 128, 124, 127, 130, 132, 129, 127, 124, 122, 126, 123, 124, 132, 134, 134, 133, 126, 123, 125, 127, 128, 127, 125, 127, 130, 129, 126, 128, 131, 126, 124, 126, 127, 128, 127, 129, 131, 133, 131, 126, 128, 126, 123, 123, 125, 129, 126, 125, 128, 131, 130, 122, 123, 130, 131, 127, 125, 129, 133, 132, 128, 125, 126, 126, 127, 127, 126, 129, 128, 128, 131, 130, 128, 127, 125, 124, 126, 127, 125, 125, 128, 130, 132, 130, 128, 129, 128, 125, 125, 125, 127, 126, 122, 130, 136, 131, 129, 127, 127, 125, 121, 119, 123, 129, 128, 131, 134, 133, 134, 131, 126, 125, 123, 123, 126, 128, 128, 130, 130, 127, 125, 126, 127, 126, 127, 127, 128, 130, 129, 130, 129, 127, 125, 123, 126, 126, 125, 130, 131, 132, 132, 130, 128, 127, 125, 123, 122, 125, 125, 125, 127, 130, 131, 131, 131, 128, 126, 127, 127, 125, 124, 125, 127, 127, 128, 129, 129, 130, 127, 125, 127, 127, 127, 127, 130, 130, 129, 129, 127, 126, 125, 123, 124, 125, 130, 135, 132, 127, 126, 128, 126, 125, 125, 125, 128, 130, 129, 131, 133, 132, 129, 125, 121, 120, 122, 123, 129, 133, 132, 132, 130, 131, 129, 128, 124, 121, 123, 122, 124, 129, 129, 136, 137, 132, 129, 126, 124, 122, 125, 127, 124, 126, 129, 130, 133, 133, 128, 128, 124, 119, 119, 121, 128, 132, 133, 134, 133, 134, 129, 124, 124, 119, 118, 119, 121, 130, 137, 136, 135, 138, 134, 124, 122, 119, 121, 124, 123, 125, 131, 130, 130, 133, 130, 130, 128, 122, 124, 123, 123, 127, 130, 131, 133, 139, 134, 129, 128, 124, 124, 122, 121, 125, 129, 130, 130, 130, 128, 127, 124, 123, 128, 125, 125, 128, 131, 134, 135, 134, 130, 128, 125, 121, 122, 122, 123, 129, 131, 130, 131, 132, 131, 127, 124, 124, 123, 121, 123, 126, 130, 130, 132, 135, 133, 131, 127, 126, 128, 125, 123, 124, 130, 131, 130, 132, 129, 126, 126, 123, 121, 122, 126, 129, 131, 133, 132, 130, 130, 126, 122, 123, 123, 125, 125, 123, 127, 128, 128, 130, 134, 134, 134, 135, 128, 127, 125, 123, 127, 128, 128, 126, 125, 124, 123, 127, 126, 125, 128, 129, 130, 130, 131, 130, 129, 131, 128, 125, 124, 124, 124, 128, 129, 129, 131, 130, 130, 130, 126, 125, 122, 123, 126, 128, 129, 129, 131, 130, 129, 130, 128, 126, 124, 125, 127, 124, 124, 127, 127, 130, 131, 129, 133, 134, 131, 128, 128, 126, 123, 123, 122, 123, 128, 128, 129, 131, 129, 130, 131, 129, 128, 128, 126, 122, 125, 125, 126, 129, 128, 131, 132, 129, 125, 125, 125, 124, 127, 128, 130, 134, 130, 131, 131, 125, 124, 126, 125, 123, 126, 127, 127, 128, 127, 128, 130, 129, 126, 126, 127, 123, 128, 130, 127, 129, 128, 130, 131, 130, 126, 125, 128, 124, 127, 128, 125, 129, 130, 129, 125, 123, 120, 122, 128, 127, 130, 133, 134, 132, 130, 129, 128, 129, 122, 121, 128, 124, 127, 127, 128, 132, 130, 131, 125, 127, 126, 122, 128, 126, 127, 128, 130, 131, 127, 128, 123, 123, 127, 126, 128, 127, 128, 127, 126, 127, 124, 127, 128, 130, 127, 127, 135, 134, 135, 133, 131, 132, 128, 126, 121, 122, 123, 125, 129, 128, 131, 131, 130, 132, 129, 126, 124, 126, 126, 128, 130, 128, 126, 126, 128, 128, 127, 126, 124, 126, 124, 123, 123, 123, 127, 128, 128, 128, 129, 127, 127, 130, 126, 126, 125, 125, 129, 128, 129, 127, 129, 128, 126, 127, 125, 128, 130, 132, 130, 130, 136, 133, 133, 128, 122, 124, 122, 123, 124, 127, 129, 129, 132, 128, 128, 124, 120, 127, 127, 127, 129, 131, 132, 133, 134, 127, 125, 124, 122, 124, 122, 123, 125, 128, 131, 132, 133, 131, 131, 128, 125, 128, 127, 126, 127, 129, 132, 132, 131, 128, 128, 127, 126, 123, 123, 126, 129, 129, 131, 131, 129, 130, 128, 122, 123, 123, 120, 122, 124, 126, 132, 135, 132, 131, 131, 128, 126, 126, 124, 124, 124, 121, 127, 129, 125, 131, 135, 135, 135, 133, 131, 129, 128, 121, 121, 124, 120, 124, 126, 127, 130, 129, 130, 128, 128, 130, 130, 131, 127, 126, 127, 126, 125, 124, 128, 131, 133, 132, 130, 128, 124, 123, 122, 122, 124, 126, 129, 130, 132, 130, 131, 134, 130, 127, 126, 126, 127, 126, 125, 127, 128, 124, 125, 129, 128, 128, 129, 130, 129, 122, 119, 125, 128, 127, 130, 129, 131, 134, 127, 128, 132, 127, 125, 124, 124, 124, 128, 128, 131, 136, 132, 132, 130, 127, 129, 128, 127, 127, 126, 125, 125, 128, 127, 127, 128, 126, 125, 125, 126, 125, 127, 128, 129, 132, 130, 126, 126, 125, 127, 129, 125, 125, 128, 129, 127, 126, 124, 126, 130, 128, 127, 130, 131, 132, 132, 133, 133, 130, 128, 124, 124, 125, 124, 127, 129, 130, 132, 130, 125, 125, 126, 121, 121, 123, 123, 127, 130, 131, 130, 131, 130, 127, 127, 125, 125, 122, 123, 126, 127, 131, 131, 132, 132, 130, 131, 126, 126, 126, 124, 124, 124, 126, 126, 129, 132, 130, 130, 129, 129, 125, 124, 130, 132, 132, 134, 133, 133, 130, 127, 123, 124, 126, 124, 123, 125, 127, 126, 126, 128, 130, 125, 121, 122, 125, 125, 125, 128, 132, 133, 131, 125, 127, 130, 129, 129, 129, 128, 125, 123, 125, 127, 127, 128, 133, 135, 132, 130, 130, 128, 125, 124, 121, 122, 126, 129, 131, 134, 132, 128, 126, 125, 123, 121, 117, 120, 124, 128, 134, 136, 136, 136, 132, 124, 120, 119, 117, 121, 126, 127, 131, 133, 133, 135, 133, 130, 126, 125, 124, 121, 126, 131, 135, 140, 140, 138, 133, 132, 127, 119, 118, 114, 117, 123, 121, 126, 129, 131, 130, 128, 128, 123, 121, 120, 120, 121, 123, 131, 132, 130, 133, 130, 128, 126, 126, 126, 128, 129, 130, 136, 138, 136, 135, 135, 130, 124, 123, 123, 125, 127, 126, 130, 132, 130, 128, 130, 126, 122, 123, 119, 117, 121, 127, 130, 133, 135, 131, 128, 120, 115, 119, 119, 125, 127, 129, 135, 136, 138, 135, 134, 131, 123, 122, 119, 121, 125, 129, 138, 138, 136, 135, 129, 126, 121, 118, 119, 122, 127, 128, 131, 138, 138, 136, 133, 127, 123, 120, 118, 118, 122, 132, 132, 132, 136, 134, 134, 129, 123, 121, 119, 121, 121, 124, 128, 132, 136, 133, 133, 131, 125, 125, 121, 120, 127, 126, 125, 129, 132, 131, 131, 130, 126, 128, 123, 118, 122, 123, 123, 127, 128, 129, 130, 129, 127, 126, 125, 122, 120, 125, 130, 133, 135, 135, 136, 135, 132, 127, 126, 124, 121, 127, 128, 125, 129, 131, 134, 132, 133, 133, 127, 129, 127, 124, 125, 126, 128, 131, 134, 131, 127, 130, 127, 127, 126, 124, 128, 127, 126, 128, 126, 126, 128, 127, 126, 124, 122, 121, 120, 124, 128, 130, 130, 129, 131, 129, 125, 126, 124, 126, 125, 126, 127, 127, 132, 131, 132, 134, 129, 129, 125, 121, 119, 121, 126, 125, 128, 131, 132, 133, 129, 127, 126, 124, 121, 122, 127, 129, 131, 133, 134, 131, 127, 127, 126, 125, 124, 125, 127, 129, 129, 130, 132, 129, 127, 127, 125, 127, 127, 128, 129, 131, 133, 131, 130, 128, 126, 125, 122, 122, 122, 126, 128, 130, 131, 130, 133, 130, 122, 123, 124, 123, 124, 125, 128, 133, 134, 130, 129, 130, 126, 124, 123, 122, 125, 128, 130, 130, 132, 133, 131, 130, 128, 124, 123, 120, 123, 128, 124, 123, 131, 134, 134, 133, 128, 127, 126, 120, 121, 125, 127, 129, 131, 132, 132, 131, 129, 128, 126, 120, 121, 123, 124, 126, 132, 135, 132, 133, 131, 127, 125, 123, 123, 125, 127, 128, 129, 130, 132, 131, 128, 126, 125, 123, 121, 122, 125, 127, 130, 133, 132, 130, 130, 126, 126, 127, 123, 125, 130, 130, 131, 132, 129, 130, 132, 125, 123, 126, 122, 125, 127, 127, 130, 131, 131, 128, 126, 124, 124, 127, 123, 123, 126, 128, 132, 133, 133, 135, 134, 128, 122, 122, 120, 122, 127, 129, 132, 134, 129, 125, 126, 124, 122, 125, 127, 128, 129, 130, 131, 134, 133, 129, 126, 124, 122, 123, 125, 126, 130, 133, 134, 135, 132, 128, 127, 123, 118, 117, 121, 122, 126, 132, 134, 136, 135, 132, 129, 127, 124, 118, 119, 121, 124, 129, 130, 133, 134, 133, 130, 128, 127, 124, 126, 124, 123, 125, 123, 128, 134, 136, 131, 128, 127, 123, 122, 121, 123, 128, 132, 133, 130, 131, 132, 129, 127, 128, 128, 125, 125, 126, 126, 127, 125, 127, 130, 131, 130, 129, 126, 123, 125, 126, 126, 129, 129, 130, 131, 130, 128, 127, 126, 123, 124, 124, 123, 124, 126, 130, 132, 133, 131, 129, 127, 126, 124, 120, 120, 125, 130, 132, 133, 132, 133, 134, 128, 125, 126, 124, 124, 125, 124, 126, 130, 129, 126, 128, 129, 127, 125, 122, 126, 129, 129, 132, 133, 134, 133, 133, 129, 125, 123, 121, 123, 124, 124, 123, 127, 134, 130, 128, 129, 128, 127, 124, 124, 125, 128, 129, 127, 129, 128, 127, 125, 124, 128, 128, 127, 130, 130, 130, 130, 129, 125, 126, 127, 125, 127, 128, 128, 129, 130, 131, 130, 131, 128, 127, 128, 126, 125, 126, 126, 127, 129, 130, 129, 128, 127, 126, 123, 120, 124, 125, 129, 133, 130, 128, 129, 128, 124, 123, 123, 123, 127, 129, 132, 134, 135, 136, 131, 127, 127, 124, 124, 123, 121, 125, 128, 126, 129, 131, 131, 133, 127, 123, 127, 130, 128, 128, 132, 129, 130, 129, 125, 128, 127, 126, 127, 125, 126, 127, 128, 125, 124, 128, 125, 125, 127, 127, 131, 131, 131, 129, 129, 127, 122, 124, 123, 123, 127, 128, 131, 134, 133, 131, 130, 128, 123, 125, 118, 114, 126, 132, 134, 138, 136, 134, 134, 128, 119, 121, 125, 124, 128, 126, 126, 133, 137, 136, 133, 130, 127, 126, 124, 121, 123, 128, 130, 127, 127, 130, 128, 130, 128, 124, 126, 126, 127, 126, 128, 128, 128, 131, 127, 125, 125, 124, 125, 125, 127, 126, 126, 131, 131, 129, 125, 124, 125, 125, 127, 128, 128, 129, 127, 127, 126, 126, 125, 127, 131, 129, 127, 130, 130, 131, 132, 131, 130, 127, 128, 126, 125, 128, 127, 126, 125, 126, 128, 127, 128, 126, 125, 125, 125, 126, 127, 131, 134, 133, 130, 126, 128, 129, 129, 131, 131, 126, 124, 125, 123, 124, 127, 126, 127, 129, 129, 130, 131, 132, 131, 131, 128, 123, 121, 122, 124, 125, 126, 129, 131, 129, 128, 128, 126, 124, 122, 123, 127, 128, 128, 129, 131, 133, 132, 128, 128, 128, 127, 127, 127, 127, 129, 132, 132, 132, 130, 127, 127, 125, 123, 127, 127, 129, 131, 132, 131, 126, 124, 126, 122, 118, 121, 124, 124, 130, 134, 134, 137, 135, 130, 125, 122, 120, 121, 124, 124, 128, 130, 130, 129, 126, 128, 128, 127, 127, 127, 128, 126, 129, 131, 129, 131, 132, 131, 129, 126, 125, 127, 128, 125, 125, 128, 128, 127, 126, 125, 126, 128, 127, 126, 127, 125, 126, 127, 127, 127, 129, 131, 130, 129, 129, 130, 128, 126, 128, 127, 125, 126, 127, 129, 131, 132, 132, 129, 123, 120, 127, 126, 123, 126, 127, 128, 127, 124, 123, 127, 131, 130, 130, 129, 127, 129, 129, 126, 126, 126, 124, 126, 127, 125, 126, 126, 127, 130, 129, 128, 130, 131, 129, 130, 128, 125, 130, 130, 128, 130, 130, 131, 131, 128, 125, 127, 127, 124, 123, 123, 126, 128, 125, 125, 126, 128, 131, 128, 126, 128, 130, 130, 127, 127, 126, 126, 129, 125, 124, 128, 131, 134, 131, 128, 126, 127, 124, 119, 122, 124, 127, 129, 128, 128, 128, 129, 125, 122, 127, 126, 126, 128, 129, 130, 134, 136, 133, 133, 127, 123, 124, 121, 120, 124, 128, 132, 135, 134, 130, 130, 126, 123, 124, 121, 122, 126, 131, 132, 130, 133, 136, 139, 132, 125, 125, 122, 121, 121, 122, 125, 128, 129, 129, 130, 130, 128, 129, 126, 121, 120, 122, 126, 126, 129, 133, 133, 133, 132, 130, 130, 128, 126, 123, 121, 123, 125, 127, 127, 128, 132, 131, 129, 124, 122, 122, 120, 122, 126, 130, 135, 134, 133, 132, 130, 128, 128, 127, 124, 126, 126, 123, 123, 128, 132, 133, 130, 128, 128, 127, 123, 120, 121, 123, 126, 127, 128, 131, 133, 131, 131, 129, 127, 125, 125, 127, 127, 129, 129, 129, 129, 128, 128, 124, 122, 124, 127, 128, 129, 130, 131, 133, 134, 132, 129, 125, 124, 123, 123, 123, 125, 129, 129, 131, 132, 131, 130, 125, 123, 121, 121, 123, 124, 127, 129, 131, 131, 131, 127, 121, 124, 127, 126, 127, 130, 134, 136, 135, 129, 127, 129, 125, 123, 123, 123, 126, 127, 130, 129, 131, 131, 125, 125, 128, 127, 125, 125, 129, 132, 131, 129, 130, 133, 130, 127, 126, 124, 124, 124, 122, 125, 130, 131, 132, 134, 132, 131, 128, 124, 121, 121, 121, 121, 125, 126, 128, 134, 134, 134, 133, 129, 127, 127, 125, 123, 125, 126, 129, 132, 129, 125, 125, 123, 119, 121, 124, 123, 128, 128, 127, 134, 131, 129, 130, 130, 132, 130, 128, 126, 127, 131, 130, 130, 129, 130, 130, 123, 119, 124, 130, 131, 132, 132, 130, 132, 128, 122, 123, 125, 123, 123, 126, 126, 128, 133, 131, 130, 127, 121, 120, 120, 121, 123, 124, 128, 132, 134, 134, 130, 130, 129, 126, 125, 124, 127, 130, 130, 131, 131, 131, 130, 130, 129, 127, 129, 128, 127, 127, 125, 124, 126, 129, 127, 128, 130, 129, 127, 125, 124, 126, 127, 127, 128, 130, 129, 128, 127, 125, 127, 128, 126, 125, 128, 125, 125, 130, 128, 127, 129, 127, 126, 126, 126, 127, 130, 131, 130, 130, 131, 130, 128, 126, 124, 124, 126, 126, 128, 130, 132, 132, 131, 131, 128, 123, 125, 127, 126, 125, 127, 126, 124, 128, 129, 127, 126, 127, 128, 130, 128, 127, 129, 129, 128, 126, 127, 131, 129, 128, 125, 120, 121, 124, 125, 127, 131, 135, 134, 134, 132, 127, 126, 125, 123, 123, 123, 124, 127, 132, 134, 133, 131, 130, 130, 124, 118, 116, 117, 120, 124, 126, 127, 130, 134, 134, 131, 130, 131, 129, 126, 125, 125, 127, 129, 130, 132, 131, 131, 128, 125, 125, 126, 124, 126, 129, 129, 130, 128, 127, 129, 128, 127, 129, 128, 125, 124, 126, 124, 121, 124, 127, 129, 131, 133, 132, 132, 131, 125, 126, 125, 124, 126, 126, 125, 126, 129, 131, 132, 131, 127, 124, 125, 126, 124, 125, 129, 131, 132, 130, 128, 127, 126, 126, 127, 125, 122, 122, 124, 130, 134, 129, 131, 135, 131, 127, 124, 122, 125, 127, 126, 127, 129, 128, 129, 131, 126, 125, 128, 126, 123, 125, 130, 131, 133, 135, 133, 130, 128, 126, 124, 124, 125, 127, 127, 128, 129, 127, 127, 125, 125, 127, 125, 125, 127, 128, 129, 128, 127, 126, 125, 122, 121, 126, 128, 129, 128, 126, 128, 128, 124, 126, 129, 128, 132, 135, 130, 131, 132, 128, 133, 133, 129, 131, 129, 127, 125, 123, 121, 122, 124, 123, 125, 127, 126, 128, 127, 126, 127, 128, 128, 125, 127, 127, 126, 126, 127, 129, 129, 128, 129, 129, 130, 131, 132, 129, 126, 127, 130, 130, 125, 127, 131, 132, 130, 125, 125, 128, 126, 123, 124, 123, 125, 129, 126, 123, 127, 128, 127, 127, 126, 125, 127, 127, 127, 129, 131, 131, 129, 129, 128, 126, 131, 133, 132, 130, 130, 133, 133, 131, 128, 127, 128, 126, 124, 123, 122, 122, 124, 125, 126, 126, 130, 133, 129, 126, 126, 126, 127, 127, 127, 126, 129, 130, 127, 130, 129, 127, 129, 127, 126, 124, 124, 125, 125, 126, 126, 126, 127, 126, 125, 126, 127, 128, 130, 129, 130, 131, 131, 128, 122, 127, 131, 127, 127, 127, 128, 130, 127, 124, 125, 129, 127, 125, 125, 126, 128, 129, 129, 129, 128, 130, 133, 131, 126, 124, 123, 122, 122, 124, 126, 128, 133, 136, 132, 128, 125, 124, 125, 125, 124, 127, 129, 129, 129, 126, 124, 124, 126, 125, 125, 127, 127, 127, 129, 129, 132, 133, 130, 127, 127, 126, 126, 124, 122, 127, 129, 131, 132, 130, 128, 128, 127, 125, 128, 128, 124, 126, 129, 129, 130, 129, 130, 130, 130, 126, 124, 127, 125, 127, 130, 129, 127, 127, 129, 129, 127, 126, 124, 126, 127, 125, 125, 125, 127, 131, 129, 126, 126, 126, 126, 124, 121, 119, 121, 126, 130, 132, 135, 138, 137, 131, 129, 128, 125, 123, 125, 127, 127, 128, 128, 132, 135, 132, 129, 124, 122, 123, 123, 123, 127, 131, 133, 135, 133, 127, 124, 122, 122, 123, 125, 125, 124, 125, 128, 131, 131, 131, 128, 127, 127, 124, 123, 125, 128, 131, 131, 133, 132, 131, 129, 126, 128, 124, 122, 127, 128, 132, 134, 134, 132, 129, 127, 122, 120, 118, 120, 124, 126, 128, 130, 133, 129, 127, 130, 130, 128, 126, 127, 129, 130, 128, 127, 131, 130, 127, 126, 123, 123, 122, 124, 128, 129, 134, 136, 136, 134, 133, 130, 125, 123, 121, 121, 121, 124, 127, 129, 131, 130, 130, 130, 128, 124, 122, 124, 126, 127, 129, 131, 132, 132, 131, 129, 128, 126, 126, 123, 120, 125, 128, 131, 132, 131, 133, 134, 133, 125, 123, 129, 128, 126, 127, 128, 130, 132, 130, 124, 123, 121, 122, 124, 124, 125, 124, 130, 135, 132, 130, 130, 128, 122, 123, 123, 122, 127, 130, 131, 134, 136, 133, 132, 132, 127, 127, 126, 123, 122, 121, 124, 126, 128, 128, 129, 130, 128, 127, 126, 126, 129, 131, 128, 127, 129, 127, 126, 124, 123, 125, 125, 128, 128, 127, 127, 129, 130, 128, 128, 127, 131, 130, 123, 127, 126, 125, 128, 127, 127, 127, 128, 126, 126, 126, 125, 126, 126, 126, 129, 131, 131, 132, 133, 130, 131, 129, 127, 127, 124, 126, 131, 131, 130, 128, 127, 126, 126, 124, 122, 121, 123, 127, 132, 133, 134, 137, 134, 128, 125, 125, 124, 120, 121, 121, 123, 126, 127, 131, 131, 132, 130, 126, 126, 120, 123, 127, 128, 132, 132, 135, 135, 131, 128, 126, 125, 123, 126, 126, 124, 128, 129, 131, 130, 128, 125, 125, 125, 122, 125, 129, 131, 133, 133, 132, 132, 131, 128, 125, 123, 123, 125, 127, 128, 130, 131, 130, 129, 127, 125, 126, 125, 125, 126, 127, 127, 128, 129, 129, 128, 128, 128, 127, 123, 122, 122, 127, 128, 128, 129, 127, 129, 128, 127, 127, 127, 131, 129, 129, 128, 126, 131, 130, 125, 125, 130, 131, 128, 128, 127, 130, 130, 126, 125, 127, 128, 126, 127, 126, 125, 129, 128, 126, 127, 126, 127, 128, 129, 129, 129, 129, 128, 128, 128, 127, 125, 125, 123, 122, 126, 130, 130, 126, 130, 133, 128, 128, 125, 125, 127, 127, 129, 130, 130, 130, 130, 131, 127, 125, 126, 123, 119, 120, 125, 127, 128, 130, 130, 132, 132, 128, 128, 127, 126, 125, 125, 129, 128, 128, 130, 127, 130, 128, 126, 130, 130, 128, 126, 124, 126, 126, 127, 126, 124, 127, 130, 130, 131, 130, 128, 129, 128, 125, 124, 126, 127, 126, 131, 131, 128, 129, 127, 127, 127, 125, 126, 128, 128, 125, 128, 130, 130, 130, 127, 126, 125, 124, 121, 124, 128, 129, 131, 131, 131, 131, 130, 126, 125, 126, 127, 131, 132, 129, 129, 129, 128, 126, 124, 123, 122, 123, 123, 123, 125, 129, 133, 133, 132, 130, 127, 125, 123, 123, 125, 127, 127, 130, 133, 133, 132, 131, 129, 128, 125, 123, 125, 128, 129, 130, 131, 131, 130, 130, 127, 123, 124, 125, 124, 123, 126, 129, 128, 129, 127, 124, 126, 126, 125, 126, 127, 128, 129, 129, 127, 125, 125, 124, 123, 122, 123, 128, 129, 127, 131, 134, 134, 133, 130, 127, 127, 127, 125, 126, 129, 130, 135, 137, 133, 131, 129, 126, 125, 123, 121, 124, 127, 127, 129, 132, 131, 130, 129, 124, 123, 124, 119, 120, 124, 125, 125, 126, 125, 126, 128, 127, 128, 132, 130, 127, 129, 129, 128, 128, 128, 129, 131, 132, 130, 128, 130, 130, 130, 129, 127, 128, 128, 126, 127, 129, 129, 130, 128, 124, 127, 129, 129, 129, 130, 130, 130, 129, 124, 124, 126, 122, 122, 125, 125, 123, 123, 123, 119, 119, 122, 125, 128, 127, 127, 129, 132, 132, 132, 132, 129, 127, 127, 127, 128, 130, 131, 129, 131, 131, 128, 128, 128, 130, 129, 128, 127, 125, 124, 123, 123, 122, 123, 127, 129, 128, 126, 127, 129, 129, 128, 128, 129, 128, 128, 129, 131, 130, 125, 129, 132, 130, 128, 124, 124, 124, 124, 124, 125, 127, 129, 131, 130, 128, 129, 128, 127, 126, 124, 125, 127, 128, 131, 131, 130, 126, 124, 125, 124, 123, 124, 126, 130, 131, 133, 134, 132, 132, 130, 128, 126, 123, 124, 125, 127, 129, 129, 130, 132, 132, 130, 128, 126, 125, 125, 125, 125, 125, 126, 128, 129, 130, 130, 129, 128, 127, 126, 125, 125, 125, 124, 124, 125, 126, 127, 128, 129, 129, 128, 127, 126, 126, 126, 123, 125, 129, 130, 131, 129, 127, 126, 127, 127, 129, 131, 129, 126, 124, 127, 129, 128, 130, 131, 131, 130, 129, 129, 128, 129, 128, 128, 131, 132, 130, 127, 125, 123, 123, 123, 123, 126, 127, 127, 130, 132, 131, 128, 127, 125, 122, 121, 121, 126, 128, 128, 131, 133, 133, 130, 126, 122, 121, 124, 124, 125, 128, 131, 134, 135, 133, 130, 130, 127, 124, 124, 124, 126, 130, 132, 132, 133, 133, 130, 126, 122, 121, 123, 125, 126, 127, 131, 132, 130, 129, 128, 128, 128, 124, 120, 118, 122, 128, 129, 131, 134, 136, 135, 131, 126, 119, 117, 121, 122, 125, 129, 132, 136, 137, 132, 128, 129, 127, 124, 123, 121, 121, 125, 127, 129, 132, 132, 129, 129, 128, 125, 124, 125, 125, 127, 130, 131, 131, 131, 129, 129, 127, 126, 125, 123, 125, 127, 129, 130, 130, 132, 131, 134, 131, 126, 124, 124, 127, 127, 126, 127, 127, 129, 130, 127, 125, 126, 127, 126, 128, 127, 126, 127, 127, 126, 125, 124, 124, 127, 128, 128, 128, 126, 128, 131, 129, 128, 129, 131, 131, 130, 127, 125, 126, 126, 125, 124, 125, 125, 130, 132, 130, 131, 134, 133, 130, 128, 124, 123, 126, 124, 124, 128, 129, 129, 131, 131, 130, 129, 127, 124, 125, 127, 126, 126, 127, 126, 129, 131, 129, 128, 127, 126, 127, 124, 120, 122, 125, 128, 129, 132, 135, 135, 134, 133, 126, 123, 125, 121, 122, 124, 126, 128, 129, 131, 131, 131, 132, 131, 129, 129, 127, 125, 125, 123, 122, 125, 126, 126, 127, 127, 129, 129, 128, 127, 127, 129, 130, 128, 129, 129, 128, 129, 128, 127, 129, 129, 127, 127, 127, 125, 125, 126, 125, 126, 126, 128, 130, 130, 130, 130, 132, 131, 127, 123, 124, 127, 127, 127, 127, 128, 131, 131, 129, 126, 126, 126, 126, 127, 124, 125, 128, 129, 129, 129, 130, 131, 128, 126, 126, 126, 128, 129, 127, 127, 129, 130, 131, 129, 127, 128, 128, 124, 123, 122, 123, 129, 132, 130, 130, 131, 131, 130, 128, 125, 124, 125, 125, 125, 128, 130, 130, 130, 131, 129, 127, 127, 125, 124, 127, 126, 125, 126, 126, 126, 126, 127, 128, 129, 131, 129, 129, 130, 129, 129, 130, 130, 127, 126, 127, 126, 127, 125, 124, 126, 128, 127, 127, 130, 129, 130, 128, 121, 122, 124, 124, 127, 129, 129, 131, 134, 133, 129, 128, 128, 127, 126, 124, 126, 127, 128, 128, 129, 130, 131, 132, 132, 129, 127, 124, 125, 129, 128, 125, 128, 132, 131, 129, 124, 119, 120, 117, 118, 125, 129, 132, 134, 134, 135, 136, 131, 125, 122, 121, 122, 122, 125, 131, 135, 137, 135, 132, 128, 123, 122, 119, 121, 123, 125, 130, 132, 134, 133, 133, 129, 125, 125, 121, 120, 121, 123, 130, 133, 135, 135, 135, 132, 126, 124, 121, 119, 120, 123, 126, 131, 135, 133, 133, 133, 130, 126, 122, 121, 124, 125, 125, 127, 129, 129, 131, 129, 127, 126, 125, 126, 126, 127, 128, 130, 131, 129, 127, 126, 124, 123, 125, 126, 125, 128, 128, 128, 134, 134, 132, 132, 131, 131, 129, 126, 123, 118, 122, 125, 122, 125, 130, 132, 135, 135, 128, 128, 132, 127, 123, 121, 121, 125, 128, 128, 128, 131, 132, 131, 131, 127, 124, 124, 125, 123, 123, 126, 128, 130, 131, 131, 132, 131, 129, 126, 124, 124, 125, 125, 125, 129, 131, 131, 131, 128, 127, 128, 127, 126, 124, 127, 128, 130, 131, 130, 127, 126, 128, 128, 127, 126, 125, 129, 130, 128, 128, 129, 128, 128, 128, 126, 125, 123, 123, 122, 120, 126, 129, 130, 134, 134, 133, 133, 131, 126, 122, 122, 123, 125, 126, 128, 129, 130, 131, 129, 127, 129, 129, 127, 125, 124, 126, 127, 128, 130, 130, 131, 130, 128, 127, 125, 124, 124, 125, 128, 128, 130, 130, 130, 130, 127, 126, 124, 123, 124, 124, 125, 127, 129, 133, 133, 131, 128, 128, 128, 127, 126, 125, 125, 127, 127, 129, 128, 127, 128, 127, 126, 125, 124, 126, 127, 130, 130, 131, 134, 132, 129, 127, 126, 123, 122, 122, 122, 125, 129, 131, 132, 132, 131, 128, 126, 125, 122, 124, 126, 128, 131, 134, 134, 133, 131, 130, 131, 125, 119, 117, 121, 125, 121, 123, 129, 134, 135, 133, 133, 131, 132, 129, 123, 122, 119, 121, 125, 127, 127, 128, 134, 134, 132, 131, 128, 128, 125, 125, 124, 124, 126, 127, 129, 130, 130, 130, 130, 131, 127, 127, 125, 126, 128, 129, 129, 129, 129, 130, 128, 125, 125, 126, 122, 123, 125, 126, 131, 133, 130, 129, 129, 126, 125, 126, 125, 125, 126, 126, 128, 130, 130, 130, 131, 130, 129, 130, 127, 125, 125, 125, 127, 128, 128, 128, 130, 128, 126, 128, 128, 127, 125, 123, 124, 125, 127, 128, 129, 131, 130, 129, 127, 126, 125, 126, 127, 126, 127, 130, 129, 130, 131, 130, 129, 130, 127, 125, 126, 126, 127, 130, 131, 130, 131, 131, 129, 127, 126, 125, 124, 124, 124, 124, 126, 128, 128, 129, 129, 127, 125, 126, 128, 129, 130, 130, 129, 129, 124, 120, 120, 122, 125, 126, 131, 132, 132, 133, 132, 130, 129, 128, 124, 123, 123, 120, 126, 131, 131, 134, 135, 132, 131, 129, 123, 121, 123, 124, 127, 133, 132, 132, 134, 134, 130, 126, 124, 122, 124, 122, 120, 127, 131, 133, 132, 129, 130, 129, 123, 121, 121, 121, 123, 127, 128, 131, 134, 133, 130, 128, 126, 121, 123, 125, 125, 130, 132, 133, 134, 133, 128, 127, 129, 125, 127, 128, 122, 125, 126, 125, 131, 133, 132, 132, 130, 124, 121, 121, 119, 122, 125, 127, 131, 134, 136, 135, 134, 129, 125, 125, 125, 124, 123, 126, 127, 127, 130, 131, 132, 132, 130, 127, 124, 123, 123, 124, 126, 128, 131, 131, 130, 128, 127, 125, 125, 124, 123, 125, 126, 126, 128, 131, 133, 132, 131, 128, 127, 127, 122, 120, 124, 127, 131, 133, 132, 132, 132, 129, 126, 125, 125, 124, 125, 126, 125, 126, 128, 129, 129, 129, 129, 129, 128, 125, 124, 126, 127, 129, 129, 128, 129, 127, 127, 126, 126, 126, 127, 129, 126, 126, 126, 126, 129, 131, 129, 129, 131, 130, 128, 130, 127, 125, 124, 120, 122, 126, 129, 129, 131, 133, 134, 132, 127, 125, 124, 122, 122, 123, 126, 127, 130, 133, 132, 132, 130, 126, 128, 126, 121, 121, 122, 124, 128, 130, 132, 132, 132, 131, 126, 124, 123, 124, 124, 124, 126, 129, 132, 132, 131, 131, 129, 128, 126, 123, 124, 126, 129, 128, 129, 130, 129, 132, 130, 127, 125, 122, 123, 123, 125, 128, 132, 134, 132, 131, 126, 126, 129, 125, 123, 122, 124, 127, 129, 131, 132, 132, 131, 130, 125, 122, 122, 124, 125, 125, 127, 130, 132, 134, 131, 127, 126, 123, 122, 125, 127, 127, 129, 128, 128, 129, 129, 127, 127, 127, 124, 125, 126, 125, 128, 129, 129, 131, 132, 130, 128, 128, 126, 123, 125, 125, 126, 128, 129, 130, 131, 133, 130, 128, 128, 126, 123, 125, 126, 126, 128, 128, 128, 129, 127, 127, 130, 130, 127, 126, 127, 126, 127, 127, 126, 127, 129, 127, 126, 127, 127, 126, 128, 128, 128, 128, 127, 126, 126, 124, 123, 125, 126, 127, 129, 130, 131, 131, 132, 130, 127, 127, 126, 126, 127, 127, 129, 128, 129, 129, 128, 130, 130, 128, 126, 127, 127, 128, 129, 127, 127, 128, 129, 128, 128, 128, 127, 128, 129, 127, 127, 129, 129, 128, 129, 127, 124, 123, 120, 122, 124, 125, 127, 130, 131, 131, 131, 130, 128, 128, 126, 124, 125, 126, 126, 128, 132, 133, 132, 130, 128, 127, 125, 125, 123, 124, 126, 126, 127, 128, 130, 131, 133, 133, 129, 127, 126, 123, 124, 124, 126, 129, 131, 131, 130, 129, 129, 127, 125, 124, 123, 123, 124, 126, 131, 135, 134, 133, 132, 128, 126, 124, 123, 125, 125, 124, 126, 130, 131, 130, 130, 129, 127, 127, 125, 124, 124, 126, 126, 128, 130, 128, 128, 127, 126, 127, 124, 126, 123, 122, 130, 135, 131, 129, 130, 128, 131, 133, 125, 124, 127, 127, 129, 129, 129, 126, 127, 128, 125, 125, 124, 127, 130, 130, 130, 128, 128, 127, 126, 126, 124, 127, 127, 127, 130, 129, 128, 129, 132, 132, 130, 129, 126, 127, 124, 123, 126, 127, 128, 130, 131, 129, 130, 129, 125, 125, 125, 124, 127, 129, 127, 127, 128, 126, 125, 127, 128, 127, 129, 129, 128, 129, 128, 130, 131, 128, 129, 129, 130, 130, 129, 128, 124, 121, 120, 123, 125, 127, 130, 132, 135, 134, 129, 127, 125, 123, 122, 123, 123, 125, 130, 134, 135, 132, 133, 132, 129, 126, 120, 119, 122, 124, 126, 127, 131, 133, 135, 133, 128, 127, 126, 123, 120, 121, 124, 129, 132, 132, 134, 134, 132, 129, 124, 120, 119, 122, 126, 128, 131, 133, 134, 134, 129, 121, 118, 123, 122, 123, 128, 127, 133, 139, 133, 128, 129, 126, 124, 125, 121, 121, 127, 128, 128, 129, 131, 131, 132, 132, 127, 127, 127, 127, 128, 126, 125, 126, 126, 125, 125, 126, 126, 127, 127, 128, 129, 130, 132, 131, 129, 129, 127, 126, 125, 125, 126, 129, 131, 130, 129, 129, 129, 126, 125, 124, 122, 124, 126, 126, 127, 129, 131, 133, 131, 127, 127, 126, 126, 126, 124, 125, 126, 126, 128, 130, 130, 129, 129, 128, 125, 126, 126, 127, 128, 128, 129, 131, 132, 130, 128, 127, 127, 127, 127, 126, 127, 128, 128, 127, 127, 127, 126, 126, 128, 128, 128, 128, 126, 126, 128, 127, 126, 127, 128, 128, 128, 126, 125, 126, 127, 130, 131, 130, 129, 131, 130, 125, 125, 126, 125, 126, 126, 127, 126, 128, 129, 128, 130, 127, 127, 127, 125, 126, 124, 127, 129, 129, 129, 128, 129, 128, 128, 128, 128, 128, 126, 128, 128, 126, 127, 129, 128, 127, 129, 128, 129, 129, 127, 128, 128, 127, 126, 126, 127, 127, 127, 127, 129, 130, 126, 126, 125, 127, 126, 125, 128, 129, 131, 131, 131, 129, 127, 124, 121, 124, 126, 129, 130, 131, 134, 134, 133, 130, 127, 125, 123, 120, 118, 120, 123, 127, 131, 131, 133, 133, 131, 128, 127, 124, 123, 126, 125, 127, 130, 130, 132, 136, 136, 130, 128, 127, 125, 126, 122, 120, 122, 124, 127, 128, 129, 128, 130, 131, 129, 129, 128, 130, 129, 127, 124, 124, 127, 126, 127, 128, 129, 129, 124, 123, 128, 129, 127, 128, 130, 127, 128, 129, 128, 129, 129, 128, 126, 126, 125, 124, 128, 128, 126, 125, 128, 131, 131, 130, 129, 128, 125, 123, 125, 125, 126, 129, 130, 130, 131, 129, 128, 128, 127, 125, 121, 120, 123, 126, 130, 131, 132, 132, 132, 130, 127, 127, 126, 125, 126, 127, 127, 128, 128, 131, 133, 131, 128, 128, 126, 123, 122, 121, 120, 122, 128, 130, 131, 133, 133, 131, 130, 130, 125, 125, 127, 126, 126, 128, 128, 128, 129, 129, 128, 128, 127, 125, 125, 127, 128, 130, 130, 127, 129, 128, 127, 127, 125, 124, 125, 126, 125, 126, 129, 128, 130, 131, 129, 129, 129, 128, 129, 129, 127, 127, 127, 127, 125, 121, 121, 123, 125, 126, 129, 131, 131, 134, 133, 128, 129, 126, 124, 124, 124, 122, 124, 130, 132, 133, 135, 131, 129, 127, 127, 126, 123, 122, 124, 126, 127, 130, 131, 131, 132, 132, 131, 128, 124, 119, 121, 124, 122, 123, 126, 130, 134, 133, 132, 132, 132, 129, 127, 125, 123, 123, 124, 125, 124, 123, 128, 131, 132, 130, 130, 130, 129, 129, 125, 125, 126, 125, 126, 127, 127, 127, 128, 129, 129, 128, 127, 127, 128, 129, 128, 130, 129, 126, 127, 125, 125, 128, 128, 129, 128, 130, 129, 129, 129, 127, 130, 129, 128, 127, 123, 125, 125, 127, 128, 130, 133, 127, 129, 128, 124, 125, 126, 127, 125, 128, 128, 127, 131, 131, 130, 128, 127, 127, 125, 126, 126, 127, 128, 128, 130, 128, 126, 125, 126, 124, 123, 126, 127, 128, 129, 130, 127, 128, 130, 130, 129, 125, 124, 122, 123, 128, 129, 133, 130, 134, 137, 130, 128, 127, 125, 124, 124, 124, 124, 130, 126, 125, 129, 130, 130, 129, 131, 129, 128, 129, 125, 126, 124, 123, 124, 126, 126, 126, 128, 128, 128, 129, 129, 130, 128, 129, 128, 128, 128, 127, 130, 129, 129, 128, 129, 131, 129, 128, 125, 123, 122, 122, 123, 124, 129, 129, 129, 130, 130, 131, 130, 129, 129, 127, 127, 125, 125, 126, 127, 127, 125, 125, 128, 130, 129, 129, 128, 128, 128, 127, 128, 127, 125, 126, 127, 128, 129, 129, 130, 130, 130, 130, 128, 127, 126, 125, 125, 125, 126, 127, 128, 129, 130, 131, 130, 129, 129, 129, 128, 126, 128, 127, 126, 124, 123, 125, 122, 123, 128, 132, 131, 128, 129, 128, 129, 125, 120, 125, 127, 129, 129, 131, 130, 130, 135, 131, 129, 129, 124, 124, 124, 123, 121, 124, 128, 127, 130, 130, 132, 132, 132, 129, 126, 126, 123, 126, 127, 126, 129, 129, 132, 130, 129, 129, 126, 128, 126, 125, 127, 129, 126, 122, 124, 125, 125, 128, 130, 128, 130, 134, 132, 132, 130, 125, 124, 125, 123, 119, 124, 126, 130, 135, 128, 128, 132, 132, 129, 125, 127, 121, 125, 129, 125, 129, 128, 128, 129, 129, 126, 121, 126, 124, 124, 127, 124, 127, 130, 131, 128, 128, 129, 127, 130, 130, 128, 130, 129, 130, 130, 131, 128, 127, 127, 125, 124, 122, 125, 127, 128, 128, 128, 129, 128, 131, 129, 127, 129, 127, 127, 127, 126, 126, 126, 129, 127, 128, 129, 127, 128, 126, 129, 130, 126, 124, 123, 125, 126, 128, 130, 129, 133, 132, 130, 131, 127, 125, 124, 122, 119, 118, 122, 126, 133, 134, 132, 134, 135, 133, 129, 125, 121, 120, 124, 123, 124, 127, 131, 134, 136, 133, 127, 126, 124, 123, 122, 122, 124, 127, 131, 133, 132, 131, 128, 129, 128, 127, 126, 126, 128, 130, 132, 128, 126, 127, 127, 128, 124, 123, 125, 129, 130, 129, 129, 128, 129, 128, 125, 124, 124, 125, 128, 130, 129, 128, 131, 132, 131, 129, 127, 124, 122, 124, 125, 127, 127, 128, 132, 133, 131, 128, 126, 124, 122, 123, 124, 127, 128, 132, 133, 130, 129, 127, 127, 127, 125, 125, 125, 129, 131, 132, 131, 128, 126, 123, 122, 121, 123, 126, 129, 133, 136, 135, 134, 133, 129, 125, 122, 119, 117, 120, 125, 127, 131, 134, 135, 135, 133, 129, 125, 122, 120, 120, 124, 126, 130, 132, 133, 136, 133, 130, 125, 123, 121, 119, 121, 123, 127, 130, 132, 135, 133, 130, 130, 128, 126, 125, 126, 125, 125, 127, 129, 129, 129, 129, 128, 129, 127, 126, 126, 126, 128, 128, 128, 128, 130, 129, 127, 128, 126, 127, 128, 125, 125, 124, 125, 126, 130, 131, 129, 132, 131, 130, 130, 128, 124, 119, 120, 121, 124, 125, 128, 133, 135, 136, 133, 130, 130, 125, 123, 120, 120, 122, 125, 129, 132, 134, 135, 133, 129, 126, 123, 119, 119, 123, 127, 132, 133, 133, 133, 132, 131, 128, 123, 121, 120, 122, 125, 128, 131, 134, 135, 134, 130, 126, 122, 119, 119, 121, 121, 124, 127, 131, 137, 137, 135, 133, 130, 128, 125, 123, 121, 121, 125, 127, 129, 130, 131, 131, 130, 129, 126, 125, 125, 124, 125, 128, 130, 129, 130, 131, 131, 131, 129, 125, 123, 124, 125, 126, 123, 124, 127, 131, 134, 131, 130, 129, 129, 130, 125, 124, 123, 123, 126, 128, 127, 124, 125, 129, 133, 132, 127, 128, 131, 132, 131, 126, 125, 125, 127, 128, 125, 124, 123, 128, 128, 126, 126, 127, 129, 131, 130, 127, 126, 128, 128, 128, 127, 128, 131, 131, 131, 129, 128, 127, 128, 128, 125, 124, 123, 124, 125, 126, 127, 128, 129, 130, 130, 129, 128, 128, 127, 127, 127, 127, 126, 128, 129, 129, 128, 127, 126, 126, 125, 125, 125, 129, 129, 130, 130, 130, 131, 128, 127, 125, 125, 128, 126, 127, 131, 132, 132, 129, 128, 126, 122, 122, 122, 122, 125, 127, 128, 132, 134, 133, 133, 131, 126, 124, 122, 120, 123, 124, 128, 131, 132, 134, 133, 130, 126, 124, 123, 121, 122, 123, 126, 129, 132, 134, 132, 130, 128, 126, 127, 126, 125, 127, 128, 130, 130, 127, 128, 129, 128, 126, 124, 124, 126, 129, 131, 131, 130, 129, 131, 129, 126, 124, 123, 124, 127, 129, 129, 128, 130, 131, 131, 126, 124, 123, 123, 125, 126, 126, 129, 132, 134, 133, 130, 127, 124, 123, 123, 121, 122, 126, 129, 133, 134, 132, 130, 130, 129, 125, 123, 122, 122, 126, 128, 129, 130, 132, 131, 131, 131, 128, 127, 125, 125, 127, 126, 128, 128, 130, 130, 129, 129, 126, 125, 126, 128, 128, 128, 128, 128, 129, 129, 129, 126, 124, 125, 125, 126, 126, 126, 129, 131, 131, 128, 127, 127, 126, 124, 124, 126, 124, 125, 129, 131, 132, 131, 132, 131, 130, 128, 125, 124, 123, 124, 125, 126, 128, 130, 132, 131, 130, 128, 127, 127, 126, 127, 126, 127, 129, 129, 130, 130, 130, 127, 125, 125, 123, 123, 123, 126, 127, 128, 131, 132, 131, 129, 127, 127, 125, 124, 123, 123, 125, 130, 132, 131, 131, 130, 129, 128, 126, 124, 124, 125, 126, 127, 129, 130, 131, 131, 130, 129, 129, 127, 124, 125, 126, 127, 129, 129, 130, 130, 129, 127, 126, 126, 126, 126, 125, 126, 127, 128, 129, 129, 129, 128, 128, 127, 127, 127, 127, 127, 128, 128, 129, 128, 127, 128, 128, 128, 126, 126, 127, 128, 128, 127, 127, 128, 127, 128, 128, 128, 127, 127, 128, 130, 130, 128, 128, 130, 131, 129, 127, 128, 127, 127, 127, 125, 126, 127, 127, 127, 127, 126, 127, 128, 126, 127, 128, 127, 129, 128, 128, 128, 129, 129, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 127, 126, 126, 127, 126, 125, 126, 127, 127, 127, 128, 128, 128, 128, 126, 127, 127, 128, 128, 128, 129, 129, 129, 129, 128, 129, 129, 128, 128, 127, 127, 127, 126, 127, 127, 126, 128, 128, 128, 127, 128, 127, 126, 127, 126, 127, 126, 126, 127, 126, 127, 127, 127, 128, 127, 127, 126, 126, 127, 126, 127, 128, 128, 127, 128, 128, 129, 129, 128, 127, 128, 128, 128, 128, 128, 127, 128, 128, 129, 129, 129, 130, 129, 129, 128, 128, 127, 126, 127, 126, 127, 129, 128, 128, 128, 127, 126, 126, 127, 127, 127, 126, 127, 127, 128, 129, 128, 128, 128, 128, 128, 127, 127, 127, 126, 127, 127, 127, 127, 127, 127, 128, 127, 127, 126, 127, 128, 127, 128, 128, 128, 129, 128, 128, 129, 129, 129, 129, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 127, 128, 128, 128, 129, 130, 129, 129, 129, 130, 130, 128, 128, 128, 127, 127, 128, 127, 126, 127, 127, 127, 127, 127, 128, 128, 127, 126, 126, 126, 126, 125, 125, 125, 126, 126, 126, 126, 126, 126, 127, 128, 127, 127, 127, 127, 127, 128, 129, 129, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 127, 128, 128, 128, 128, 127, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 127, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 127, 128, 128, 128, 128, 127, 128, 128, 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, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 127, 128, 128, 128, 128, 127, 128, 127, 127, 127, 127, 128, 128, 127, 128, 128, 127, 127, 127, 127, 127, 128, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 127, 128, 127, 127, 127, 127, 127, 128, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 127, 128, 128, 128, 127, 127, 128, 128, 128, 128, 127, 127, 128, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 128, 128, 127, 128, 127, 127, 127, 127, 128, 127, 128, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 127, 127, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 128, 127, 127, 127, 127, 127, 128, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 128, 127, 127, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128,
};
//Define for servo
Servo myservo;
int pos = 0;
//Function for servo movement
void servo(){
for (pos = 60; pos <= 180; pos += 1) { // goes from 60 degrees to 180 degrees with increment of 1
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(10); // waits 10 ms for the servo to reach the position
}
for (pos = 180; pos >= 60; pos -= 1) { // goes from 180 degrees to 60 degrees with decrement of 1
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(10); // waits 10 ms for the servo to reach the position
}
for (pos = 60; pos <= 180; pos += 1) { // goes from 60 degrees to 180 degrees with increment of 1
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(10); // waits 10 ms for the servo to reach the position
}
for (pos = 180; pos >= 60; pos -= 1) { // goes from 180 degrees to 60 degrees with decrement of 1
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(10); // waits 10 ms for the servo to reach the position
}
for (pos = 60; pos <= 180; pos += 1) { // goes from 60 degrees to 180 degrees with increment of 1
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(10); // waits 10 ms for the servo to reach the position
}
for (pos = 180; pos >= 60; pos -= 1) { // goes from 180 degrees to 60 degrees with decrement of 1
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(10); // waits 10 ms for the servo to reach the position
}
}
void setup() {
//Wave in the beginning as a welcome gesture
servo();
// initialize the LCD ----------------------->
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("SCAN YOUR KEYCARD");
lcd.clear();
SPI.begin();
//RFID start
mfrc522.PCD_Init();
//Output the leds
pinMode(LED_G, OUTPUT);
pinMode(LED_R, OUTPUT);
pinMode(LED_G2, OUTPUT);
pinMode(LED_R2, OUTPUT);
//Attach the servo to pin 6
myservo.attach(6);
}
void loop() {
// Clear the LCD and print "Scan your keycard" and clear it to initialise the process
lcd.clear();
lcd.print("SCAN YOUR KEYCARD");
delay(1000);
lcd.clear();
// Looking for new cards, if not return nothing
if (!mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards, if not return nothing
if (!mfrc522.PICC_ReadCardSerial()) {
return;
}
//Initialise variable content to take in the serial read by the RFID tag
String content = "";
byte letter;
//Reading in the data and concatenate the serial to the content variable declared above
for (byte i = 0; i < mfrc522.uid.size; i++) {
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
//Set the serial read in to uppercase to avoid complication with casing
content.toUpperCase();
//If the content serial read by the RFID matches the pre-recorded card UID
if (content.substring(1) == "53 61 7B 19") {
//LCD screen prints out the custom welcome message
lcd.print("WELCOME BACK ZAYNA");
//Both leds in the eyes turn green
digitalWrite(LED_G, HIGH);
digitalWrite(LED_G2, HIGH);
delay(2000);
//The wave movement in the arm using the servo
servo();
delay(2000);
//Remove the welcome message
lcd.clear();
//Turn off the green in the RGB leds in the eyes
digitalWrite(LED_G, LOW);
digitalWrite(LED_G2, LOW);
}
//If RFID tag read serial different than the preset one
else {
//LCD screen prints out hostile and offensive message
lcd.print("GO AWAY SOLE");
//Guard monkey daunting red eyes turn off
digitalWrite(LED_R, HIGH);
digitalWrite(LED_R2, HIGH);
//The intimidating barking sets off from the speaker
playback(barking, sizeof(barking));
delay(2000);
//Remove message from the LCD screen
lcd.clear();
//Turn the leds back off
digitalWrite(LED_R, LOW);
digitalWrite(LED_R2, LOW);
}
}
TESTING AND SHORTCOMINGS
We aimed to recycle as many components as possible. After managing to find an LCD, distance sensor, motion sensor, speaker, and servos, we trialled each component individually. None of the components could be used as they were either faulty or broken, other than a few servos. After buying the components we could not get working from our recycled parts, we tested them individually and found the speak was far too quiet, this was resolved by adding a transistor and changing the speaker library. However, the speaker and servo were unable to work at the same time due to their interfering serial libraries, this resulted in a processing error with each component cross obstructing one another. Changing the libraries used for the speaker along with the library files to pin 3 instead of pin 11, as it was used by the RFID module MOSI cleared the processing error.
When trialling the components using the 9V battery, we found it had too low a voltage to charge the sensors and actuators in the circuit.
We encountered problems due to the bear being inaccessible internally without being unstitched, as this meant we were unable to access the wires and components inside the bear after we attached them in place and put the bear back together. Soldering initially lead to unsecure connections, so we added a zip to the bear to allow easy access to ensure we could resolve any connectivity issues if they were to potentially occur. Connection issues also occurred due to components being surrounded by stuffing, so a casing was made to cover the breadboard to ensure no stuffing got into the wiring so as to also avoid any possible fire hazards if any components were to overheat near the stuffing in the bear.
You must be logged in to post a comment.