From cadac01133f837417e095159308867aeb166cc86 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 20 Sep 2006 11:05:55 +0100 Subject: [PATCH] checkpoint --- Makefile | 127 +- bitstreams/slipway_drone.bst | 7691 ++++++++++++++++++++++++++++++ src/com/ftdi/usb/FtdiUart.java | 33 +- src/edu/berkeley/slipway/FtdiBoard.java | 7 +- src/edu/berkeley/slipway/slipway_drone.c | 344 ++ 5 files changed, 8149 insertions(+), 53 deletions(-) create mode 100644 bitstreams/slipway_drone.bst create mode 100644 src/edu/berkeley/slipway/slipway_drone.c diff --git a/Makefile b/Makefile index fbe196b..270b0ec 100644 --- a/Makefile +++ b/Makefile @@ -1,55 +1,110 @@ +ifeq ($(shell uname),Darwin) +linkerflags = -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation +jnilib = libFtdiUartNative.jnilib +else +linkerflags = +jnilib = libFtdiUartNative.so +endif -java = java -Djava.library.path=$(shell pwd)/lib/ -cp lib/RXTXcomm.jar:obits.jar +## slipway ############################################################################ -led0: obits.jar - $(java) edu.berkeley.obits.AtmelSerial < bitstreams/led0.md4 +run: slipway.jar + java -cp slipway.jar edu.berkeley.obits.AtmelSerial < bitstreams/led0.md4 -led1: obits.jar - $(java) edu.berkeley.obits.AtmelSerial < bitstreams/led1.md4 +build/src/com/ftdi/usb/FtdiUart.c: src/com/ftdi/usb/FtdiUart.i + mkdir -p `dirname $@` + mkdir -p src/com/ftdi/usb + swig -module FtdiUartNative -noproxy -package com.ftdi.usb -o $@ -outdir `dirname $@` -java $< -run: obits.jar - $(java) edu.berkeley.obits.AtmelSerial < stupid.md4 +build/$(jnilib): build/src/com/ftdi/usb/FtdiUart.c + gcc -I. -Iupstream/libftdi -Iupstream/usb \ + -I$(JAVA_HOME)/include \ + $< \ + upstream/libftdi/ftdi.c \ + upstream/libusb/.libs/libusb.a \ + $(linkerflags) \ + -o $@ -dynamiclib -framework JavaVM -obits.jar: $(shell find src -name \*.java) - javac -cp lib/RXTXcomm.jar -d build $(shell find src -name \*.java) +slipway.jar: build/$(jnilib) $(shell find src build/src -name \*.java) bitstreams/slipway_drone.bst + mkdir -p build + javac -d build $(shell find src build/src -name \*.java) + cp bitstreams/slipway_drone.bst build/edu/berkeley/slipway/ cd build; jar cvf ../$@ . -# -O3 is required; otherwise the poor AVR can't keep up with us! -avrdrone.hex: src/edu/berkeley/obits/device/atmel/AvrDrone.c - avr-gcc -O3 -mmcu=at94k $< - avr-objcopy -O ihex a.out $@ -demo: ftdi.jar - java -cp ftdi.jar edu.berkeley.obits.device.atmel.Demo -build/src/com/ftdi/usb/FtdiUart.c: src/com/ftdi/usb/FtdiUart.i +## libusb ############################################################################## + +upstream/libusb: mkdir -p `dirname $@` - mkdir -p src/com/ftdi/usb - swig -noproxy -package com.ftdi.usb -outdir `dirname $@` -java $< + cd upstream; curl http://umn.dl.sourceforge.net/sourceforge/libusb/libusb-0.1.12.tar.gz | tar -xvzf - + cd upstream; mv libusb-0.1.12 libusb -build/libFtdi.jnilib: build/src/com/ftdi/usb/FtdiUart.c - gcc -I. -I/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Headers/ \ - $< -o $@ -lftdi -dynamiclib -framework JavaVM +upstream/libusb/.built: upstream/libusb + cd upstream/libusb; \ + ./configure && + make + touch $@ + +#java = java -Djava.library.path=$(shell pwd)/lib/ -cp lib/RXTXcomm.jar:slipway.jar -javafiles := $(shell find src build/src -name \*.java) -ftdi.jar: $(javafiles) build/libFtdi.jnilib - mkdir -p build - javac -d build $(javafiles) - cd build; jar cvf ../$@ . -drone.hex: src/drone.c - avr-gcc -mmcu=at94k -O3 $< - avr-objcopy -O ihex a.out $@ +## for rebuilding usbdrone.hex ########################################################### -rcompile: - cp src/edu/berkeley/obits/device/atmel/usbdrone.c /afs/megacz.com/goliath/work/tmp/ - ssh research.cs.berkeley.edu 'cd /afs/megacz.com/goliath/work/tmp; avr-gcc -O3 -mmcu=at94k usbdrone.c; avr-objcopy -O ihex a.out usbdrone.hex' - cp /afs/megacz.com/goliath/work/tmp/usbdrone.hex /afs/research.cs.berkeley.edu/user/megacz/edu.berkeley.obits/usbdrone.hex +build/slipway_drone.hex: src/edu/berkeley/slipway/slipway_drone.c upstream/avr-libc/.built + upstream/prefix/bin/avr-gcc -O3 -mmcu=at94k $< -o $@.o + upstream/prefix/bin/avr-objcopy -O ihex $@.o $@ + +# this only works on my personal setup [adam] +bitstreams/slipway_drone.bst: build/slipway_drone.hex + cp $< /afs/research.cs.berkeley.edu/user/megacz/edu.berkeley.obits/usbdrone.hex fs flush /afs/research.cs.berkeley.edu/user/megacz/edu.berkeley.obits/usbdrone.hex echo okay... read rm /afs/research.cs.berkeley.edu/user/megacz/edu.berkeley.obits/usbdrone.hex - diff -u /afs/research.cs.berkeley.edu/user/megacz/stupid/fpslic_stupid.bst bitstreams/usbdrone.bst && exit -1; true - mv /afs/research.cs.berkeley.edu/user/megacz/stupid/fpslic_stupid.bst bitstreams/usbdrone.bst - make demo \ No newline at end of file + diff -u /afs/research.cs.berkeley.edu/user/megacz/stupid/fpslic_stupid.bst $@ && exit -1; true + mv /afs/research.cs.berkeley.edu/user/megacz/stupid/fpslic_stupid.bst $@ + + + +## avr-gcc toolchain and libc ################################################################ + +upstream/binutils: + cd upstream; curl http://ftp.gnu.org/pub/pub/pub/gnu/binutils/binutils-2.16.1.tar.bz2 | tar -xvjf - + cd upstream; mv binutils-2.16.1 binutils + +upstream/binutils/.built: upstream/binutils + mkdir -p upstream/prefix + cd upstream/binutils; \ + PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \ + ./configure --prefix=$(shell pwd)/upstream/prefix --target=avr && \ + make && \ + make install + touch $@ + +upstream/gcc: + cd upstream; curl http://ftp.gnu.org/pub/gnu/gcc/gcc-4.0.3/gcc-core-4.0.3.tar.bz2 | tar -xvjf - + cd upstream; mv gcc-4.0.3 gcc + +upstream/gcc/.built: upstream/gcc upstream/binutils/.built + mkdir -p upstream/prefix + mkdir -p upstream/gcc-build + cd upstream/gcc-build; \ + PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \ + ../gcc/configure --prefix=$(shell pwd)/upstream/prefix --target=avr && \ + PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make && \ + PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make install + touch $@ + +upstream/avr-libc: + cd upstream; curl http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.4.3.tar.bz2 | tar -xvjf - + cd upstream; mv avr-libc-1.4.3 avr-libc + +upstream/avr-libc/.built: upstream/avr-libc upstream/gcc/.built + cd upstream/avr-libc; \ + PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \ + ./configure --prefix=$(shell pwd)/upstream/prefix --host=avr && \ + PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make && \ + PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make install + touch $@ \ No newline at end of file diff --git a/bitstreams/slipway_drone.bst b/bitstreams/slipway_drone.bst new file mode 100644 index 0000000..86eacbf --- /dev/null +++ b/bitstreams/slipway_drone.bst @@ -0,0 +1,7691 @@ +00000000 +10110111 +11001100 +00000000 +10000000 +00001101 +00000010 +00100101 +00000000 +00000000 +11010100 +00000000 +00000000 +11010111 +01010001 +11101111 +00000000 +00001001 +00000000 +00001000 +10000000 +00000000 +00001000 +10000111 +00001100 +01001000 +00001100 +01100011 +00001100 +01001101 +00001100 +01100011 +00000000 +00001000 +10001000 +00000000 +00001000 +10001111 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00000001 +00001000 +10000000 +00000001 +00001000 +10000111 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00000001 +00001000 +10001000 +00000001 +00001000 +10001111 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00000010 +00001000 +10000000 +00000010 +00001000 +10000111 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00000010 +00001000 +10001000 +00000010 +00001000 +10001111 +00001100 +01100011 +00001100 +00010000 +00001100 +10011100 +00001100 +01100011 +00000011 +00001000 +10000000 +00000011 +00001000 +10000111 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00000011 +00001000 +10001000 +00000011 +00001000 +10001111 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00001100 +01100011 +00000100 +00001000 +10000000 +00000100 +00001000 +10000111 +00001100 +01100011 +00001100 +01100011 +00001100 +10111000 +00001100 +01100011 +00000100 +00001000 +10001000 +00000100 +00001000 +10001111 +00010001 +00011111 +11001111 +11011111 +11011110 +11001101 +00010000 +10100000 +00000101 +00001000 +10000000 +00000101 +00001000 +10000111 +10110000 +11100000 +11110001 +00000010 +00000101 +00001101 +10100000 +10110001 +00000101 +00001000 +10001000 +00000101 +00001000 +10001111 +11011001 +00011000 +10100000 +10110000 +00000001 +00011101 +10100100 +10110001 +00000110 +00001000 +10000000 +00000110 +00001000 +10000111 +11100001 +00001100 +00000010 +00001100 +00000000 +00101001 +00110011 +00101111 +00000110 +00001000 +10001000 +00000110 +00001000 +10001111 +00100000 +10001001 +10001010 +10001000 +10001010 +01100111 +00010001 +01011001 +00000111 +00001000 +10000000 +00000111 +00001000 +10000111 +00001000 +01011001 +00001000 +00001000 +00000001 +00100100 +10000000 +10010010 +00000111 +00001000 +10001000 +00000111 +00001000 +10001111 +00010100 +10000000 +10010000 +00001000 +10010111 +00001000 +10010000 +10000001 +00001000 +00001000 +10000000 +00001000 +00001000 +10000111 +10011111 +00001000 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +00001000 +00001000 +10001000 +00001000 +00001000 +10001111 +10010000 +01101101 +00101000 +00111001 +01011100 +00100000 +01101100 +00110000 +00001001 +00001000 +10000000 +00001001 +00001000 +10000111 +01101101 +10000000 +01110000 +10010000 +01110001 +00101000 +00111001 +00001010 +00001001 +00001000 +10001000 +00001001 +00001000 +10001111 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01101101 +00001010 +00001000 +10000000 +00001010 +00001000 +10000111 +00101000 +00111001 +11001001 +00001000 +00100000 +01101100 +00110000 +01101101 +00001010 +00001000 +10001000 +00001010 +00001000 +10001111 +10000000 +01110000 +10010000 +01110001 +01000000 +01010000 +00101000 +00111001 +00001011 +00001000 +10000000 +00001011 +00001000 +10000111 +00010001 +01000001 +01010000 +11001010 +00001000 +00100000 +01110000 +00110000 +00001011 +00001000 +10001000 +00001011 +00001000 +10001111 +01110001 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +01101001 +00001100 +00001000 +10000000 +00001100 +00001000 +10000111 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01101101 +00001100 +00001000 +10001000 +00001100 +00001000 +10001111 +00101000 +00111001 +10000100 +10000000 +01101100 +10010000 +01101101 +00100000 +00001101 +00001000 +10000000 +00001101 +00001000 +10000111 +01110000 +00110000 +01110001 +01000000 +01010000 +10000010 +10010011 +10000000 +00001101 +00001000 +10001000 +00001101 +00001000 +10001111 +10010010 +10101100 +00001111 +10000000 +01110000 +10010000 +01110001 +00100000 +00001110 +00001000 +10000000 +00001110 +00001000 +10000111 +01101100 +00110000 +01101101 +01000000 +01010000 +10000010 +10010011 +10000001 +00001110 +00001000 +10001000 +00001110 +00001000 +10001111 +10010010 +00101100 +01000001 +01010000 +00000010 +01000000 +01010000 +11001010 +00001111 +00001000 +10000000 +00001111 +00001000 +10000111 +00001000 +00100000 +01110010 +00110000 +01110011 +10000000 +01101110 +10010000 +00001111 +00001000 +10001000 +00001111 +00001000 +10001111 +01101111 +01000000 +01010000 +00101000 +00111001 +00010001 +01000001 +01010000 +00010000 +00001000 +10000000 +00010000 +00001000 +10000111 +11001010 +00001000 +00100000 +01101110 +00110000 +01101111 +10000000 +01110010 +00010000 +00001000 +10001000 +00010000 +00001000 +10001111 +10010000 +01110011 +00101000 +00111001 +01101001 +00100000 +01101110 +00110000 +00010001 +00001000 +10000000 +00010001 +00001000 +10000111 +01101111 +10000000 +01110010 +10010000 +01110011 +00101000 +00111001 +10000100 +00010001 +00001000 +10001000 +00010001 +00001000 +10001111 +10000000 +01110010 +10010000 +01110011 +00100000 +01101110 +00110000 +01101111 +00010010 +00001000 +10000000 +00010010 +00001000 +10000111 +01000000 +01010000 +10000010 +10010011 +10000000 +10010010 +10101100 +00001111 +00010010 +00001000 +10001000 +00010010 +00001000 +10001111 +10000000 +01101110 +10010000 +01101111 +00100000 +01110010 +00110000 +01110011 +00010011 +00001000 +10000000 +00010011 +00001000 +10000111 +01000000 +01010000 +10000010 +10010011 +10000001 +10010010 +00101100 +01000001 +00010011 +00001000 +10001000 +00010011 +00001000 +10001111 +01010000 +00000010 +01000000 +01010000 +11001010 +00001000 +10001001 +00101001 +00010100 +00001000 +10000000 +00010100 +00001000 +10000111 +10000000 +10000011 +10001000 +10000111 +00001000 +00010111 +00010011 +00001000 +00010100 +00001000 +10001000 +00010100 +00001000 +10001111 +01001000 +01101001 +10001010 +00101011 +00001000 +00011111 +00001111 +00001111 +00010101 +00001000 +10000000 +00010101 +00001000 +10000111 +00001111 +00010001 +00011111 +01111000 +00001111 +00001111 +00001111 +00011111 +00010101 +00001000 +10001000 +00010101 +00001000 +10001111 +00011000 +10011000 +10000000 +10001010 +00110000 +10001001 +10011001 +10000111 +00010110 +00001000 +10000000 +00010110 +00001000 +10000111 +10010000 +11000000 +00001000 +10001001 +10000001 +10000110 +00111000 +10001001 +00010110 +00001000 +10001000 +00010110 +00001000 +10001111 +10011001 +10000111 +10010000 +10000111 +10010000 +00001000 +10001001 +10000001 +00010111 +00001000 +10000000 +00010111 +00001000 +10000111 +10000110 +00110000 +10001001 +10011001 +10000111 +10010000 +11000111 +00001000 +00010111 +00001000 +10001000 +00010111 +00001000 +10001111 +10001111 +10011111 +00001000 +00100101 +00110000 +01001110 +11100000 +11110000 +00011000 +00001000 +10000000 +00011000 +00001000 +10000111 +01011101 +01101011 +01110111 +01000010 +11001111 +00000001 +11110001 +01010010 +00011000 +00001000 +10001000 +00011000 +00001000 +10001111 +11001111 +00000001 +11110001 +01100010 +11001111 +00000001 +11110001 +01110010 +00011001 +00001000 +10000000 +00011001 +00001000 +10000111 +11001111 +00000001 +11110001 +00100001 +00110000 +01101001 +10001111 +10000010 +00011001 +00001000 +10001000 +00011001 +00001000 +10001111 +10001000 +10010000 +00101100 +00001111 +11111000 +10101000 +10000001 +00001111 +00011010 +00001000 +10000000 +00011010 +00001000 +10000111 +00100001 +11111111 +00100000 +01110000 +00110000 +01110001 +00101111 +00111111 +00011010 +00001000 +10001000 +00011010 +00001000 +10001111 +10000100 +00100000 +00111000 +00010100 +00100000 +00110000 +10000000 +01101100 +00011011 +00001000 +10000000 +00011011 +00001000 +10000111 +10010000 +01101101 +01000000 +01010000 +00101000 +00111001 +00010001 +01000001 +00011011 +00001000 +10001000 +00011011 +00001000 +10001111 +01010000 +11001010 +00001000 +00100000 +01101110 +00110000 +01101111 +00101111 +00011100 +00001000 +10000000 +00011100 +00001000 +10000111 +00111111 +10000100 +00100000 +00111000 +00010100 +00100000 +00110000 +10000000 +00011100 +00001000 +10001000 +00011100 +00001000 +10001111 +01110010 +10010000 +01110011 +01000000 +01010000 +00101000 +00111001 +00010001 +00011101 +00001000 +10000000 +00011101 +00001000 +10000111 +01000001 +01010000 +11001010 +00001000 +00100000 +01100010 +00110000 +01100011 +00011101 +00001000 +10001000 +00011101 +00001000 +10001111 +01000000 +01100100 +01010000 +01100101 +00101111 +00111111 +01001111 +01011111 +00011110 +00001000 +10000000 +00011110 +00001000 +10000111 +00100000 +01100010 +00110000 +01100011 +01000000 +01100100 +01010000 +01100101 +00011110 +00001000 +10001000 +00011110 +00001000 +10001111 +10001001 +00011001 +00111100 +00111010 +00001000 +00111100 +00111010 +00001000 +00011111 +00001000 +10000000 +00011111 +00001000 +10000111 +11111000 +10000000 +01100010 +10010000 +01100011 +10100000 +01100100 +10110000 +00011111 +00001000 +10001000 +00011111 +00001000 +10001111 +01100101 +00000001 +10100001 +10110001 +10000000 +01100010 +10010000 +01100011 +00100000 +00001000 +10000000 +00100000 +00001000 +10000111 +10100000 +01100100 +10110000 +01100101 +00111100 +00111010 +10000000 +10010000 +00100000 +00001000 +10001000 +00100000 +00001000 +10001111 +00000001 +11110001 +11111111 +00100000 +01101100 +00110000 +01101101 +10000000 +00100001 +00001000 +10000000 +00100001 +00001000 +10000111 +01110000 +10010000 +01110001 +00101000 +00111001 +00001001 +01011110 +11100000 +00100001 +00001000 +10001000 +00100001 +00001000 +10001111 +01101100 +11110000 +01101101 +11101110 +11111011 +11100000 +10000000 +01101100 +00100010 +00001000 +10000000 +00100010 +00001000 +10000111 +10010000 +01101101 +00000001 +00100100 +10000000 +10010010 +00010100 +10000000 +00100010 +00001000 +10001000 +00100010 +00001000 +10001111 +10010000 +10010000 +01101101 +10000000 +01101100 +00100000 +01110000 +00110000 +00100011 +00001000 +10000000 +00100011 +00001000 +10000111 +01110001 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +11001001 +00100011 +00001000 +10001000 +00100011 +00001000 +10001111 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01101101 +00100100 +00001000 +10000000 +00100100 +00001000 +10000111 +00101000 +00111001 +00100100 +10000000 +01110000 +10010000 +01110001 +00100000 +00100100 +00001000 +10001000 +00100100 +00001000 +10001111 +01101100 +00110000 +01101101 +10000010 +10010011 +10000001 +10010010 +00001100 +00100101 +00001000 +10000000 +00100101 +00001000 +10000111 +01000110 +10000000 +01100010 +10010000 +01100011 +10100000 +01100100 +10110000 +00100101 +00001000 +10001000 +00100101 +00001000 +10001111 +01100101 +00000001 +10100001 +10110001 +10000000 +01100010 +10010000 +01100011 +00100110 +00001000 +10000000 +00100110 +00001000 +10000111 +10100000 +01100100 +10110000 +01100101 +00111100 +00111010 +00110000 +10000000 +00100110 +00001000 +10001000 +00100110 +00001000 +10001111 +01101100 +10010000 +01101101 +00100000 +01110000 +00110000 +01110001 +10000010 +00100111 +00001000 +10000000 +00100111 +00001000 +10000111 +10010011 +10000000 +10010010 +11101100 +00100010 +01000000 +01100010 +01010000 +00100111 +00001000 +10001000 +00100111 +00001000 +10001111 +01100011 +01100000 +01100100 +01110000 +01100101 +01001111 +01011111 +01101111 +00101000 +00001000 +10000000 +00101000 +00001000 +10000111 +01111111 +00111100 +00111010 +00100000 +01101100 +00110000 +01101101 +10000000 +00101000 +00001000 +10001000 +00101000 +00001000 +10001111 +01110000 +10010000 +01110001 +00101000 +00111001 +01111001 +01000000 +01100010 +00101001 +00001000 +10000000 +00101001 +00001000 +10000111 +01010000 +01100011 +01100000 +01100100 +01110000 +01100101 +10000000 +10001110 +00101001 +00001000 +10001000 +00101001 +00001000 +10001111 +10011001 +10000111 +10010000 +00001000 +00011111 +00001111 +00001111 +00001111 +00101010 +00001000 +10000000 +00101010 +00001000 +10000111 +00010001 +00101111 +00111111 +10001111 +10011111 +11101111 +11111111 +00100000 +00101010 +00001000 +10001000 +00101010 +00001000 +10001111 +01110010 +00110000 +01110011 +10000000 +01101110 +10010000 +01101111 +00101000 +00101011 +00001000 +10000000 +00101011 +00001000 +10000111 +00111001 +11010001 +11100000 +01110010 +11110000 +01110011 +11100000 +11111111 +00101011 +00001000 +10001000 +00101011 +00001000 +10001111 +11100000 +10000000 +01110010 +10010000 +01110011 +00000001 +00100100 +10000000 +00101100 +00001000 +10000000 +00101100 +00001000 +10000111 +10010010 +00111100 +10010000 +01110011 +10000000 +01110010 +11101100 +01111000 +00101100 +00001000 +10001000 +00101100 +00001000 +10001111 +00000100 +10000000 +10010000 +11110110 +01010101 +11111111 +11101111 +10011111 +00101101 +00001000 +10000000 +00101101 +00001000 +10000111 +10001111 +00111111 +00101111 +00001111 +00001111 +00001111 +00011111 +00011000 +00101101 +00001000 +10001000 +00101101 +00001000 +10001111 +01001000 +00100000 +01101110 +00110000 +01101111 +00101111 +00111111 +10000100 +00101110 +00001000 +10000000 +00101110 +00001000 +10000111 +00100000 +00111000 +00010100 +00100000 +00110000 +10000000 +01110010 +10010000 +00101110 +00001000 +10001000 +00101110 +00001000 +10001111 +01110011 +00101000 +00111001 +01101001 +11100000 +01101110 +11110000 +01101111 +00101111 +00001000 +10000000 +00101111 +00001000 +10000111 +11100000 +11111111 +01000000 +10000000 +01101110 +10010000 +01101111 +00000001 +00101111 +00001000 +10001000 +00101111 +00001000 +10001111 +00100100 +10000000 +10010010 +00010100 +10000000 +10010000 +10010000 +01101111 +00110000 +00001000 +10000000 +00110000 +00001000 +10000111 +10000000 +01101110 +00111010 +00000110 +00111010 +01010101 +00111011 +00000110 +00110000 +00001000 +10001000 +00110000 +00001000 +10001111 +00111011 +00001000 +00111010 +01010101 +00111011 +11111010 +00111011 +00001000 +00110001 +00001000 +10000000 +00110001 +00001000 +10000111 +00011111 +00001111 +00001111 +00001111 +00010001 +00101111 +00111111 +10001111 +00110001 +00001000 +10001000 +00110001 +00001000 +10001111 +10011111 +10101111 +10111111 +11101111 +11111111 +01011100 +00000110 +10001001 +00110010 +00001000 +10000000 +00110010 +00001000 +10000111 +10010000 +10010000 +01100111 +10000000 +01100110 +01011011 +00000110 +10001010 +00110010 +00001000 +10001000 +00110010 +00001000 +10001111 +10010000 +10010000 +01100111 +10000000 +01100110 +00100000 +01110000 +00110000 +00110011 +00001000 +10000000 +00110011 +00001000 +10000111 +01110001 +00101111 +00111111 +10000100 +00100000 +00111000 +00010100 +00100000 +00110011 +00001000 +10001000 +00110011 +00001000 +10001111 +00110000 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +00001001 +00110100 +00001000 +10000000 +00110100 +00001000 +10000111 +01011111 +11100000 +01110000 +11110000 +01110001 +10001100 +11101110 +11111011 +00110100 +00001000 +10001000 +00110100 +00001000 +10001111 +10000000 +10000000 +01110000 +10010000 +01110001 +00000001 +00100100 +10000000 +00110101 +00001000 +10000000 +00110101 +00001000 +10000111 +10010010 +00010100 +10000000 +10010000 +10010000 +01110001 +10000000 +01110000 +00110101 +00001000 +10001000 +00110101 +00001000 +10001111 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01101101 +00110110 +00001000 +10000000 +00110110 +00001000 +10000111 +00101000 +00111001 +00001001 +01000011 +00100000 +01110000 +00110000 +01110001 +00110110 +00001000 +10001000 +00110110 +00001000 +10001111 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +00011100 +10000000 +00110111 +00001000 +10000000 +00110111 +00001000 +10000111 +01101100 +10010000 +01101101 +00100000 +01110000 +00110000 +01110001 +10000010 +00110111 +00001000 +10001000 +00110111 +00001000 +10001111 +10010011 +10000000 +10010010 +01011100 +10000000 +01100010 +10010000 +01100011 +00111000 +00001000 +10000000 +00111000 +00001000 +10000111 +10100000 +01100100 +10110000 +01100101 +00000001 +10100001 +10110001 +10000000 +00111000 +00001000 +10001000 +00111000 +00001000 +10001111 +01100010 +10010000 +01100011 +10100000 +01100100 +10110000 +01100101 +00111100 +00111001 +00001000 +10000000 +00111001 +00001000 +10000111 +00111010 +00010101 +10000000 +01110000 +10010000 +01110001 +00100000 +01101100 +00111001 +00001000 +10001000 +00111001 +00001000 +10001111 +00110000 +01101101 +10000010 +10010011 +10000001 +10010010 +01000100 +11011100 +00111010 +00001000 +10000000 +00111010 +00001000 +10000111 +10001011 +10010000 +10010000 +01100111 +10000000 +01100110 +10011010 +10001111 +00111010 +00001000 +10001000 +00111010 +00001000 +10001111 +10000000 +10001111 +01111000 +11111111 +11101111 +10111111 +10101111 +10011111 +00111011 +00001000 +10000000 +00111011 +00001000 +10000111 +10001111 +00111111 +00101111 +00001111 +00001111 +00001111 +00011111 +00011000 +00111011 +00001000 +10001000 +00111011 +00001000 +10001111 +00011111 +00001111 +00001111 +00001111 +00010001 +10001111 +10011111 +10101111 +00111100 +00001000 +10000000 +00111100 +00001000 +10000111 +10111111 +10000000 +01100000 +10010000 +01100001 +10000010 +00000001 +10010000 +00111100 +00001000 +10001000 +00111100 +00001000 +10001111 +01100001 +10000000 +01100000 +10000000 +01101000 +10010000 +01101001 +10100000 +00111101 +00001000 +10000000 +00111101 +00001000 +10000111 +01101010 +10110000 +01101011 +00000001 +10100001 +10110001 +10000000 +01101000 +00111101 +00001000 +10001000 +00111101 +00001000 +10001111 +10010000 +01101001 +10100000 +01101010 +10110000 +01101011 +10000000 +10000011 +00111110 +00001000 +10000000 +00111110 +00001000 +10000111 +10001000 +10000111 +10111111 +10101111 +10011111 +10001111 +00001111 +00001111 +00111110 +00001000 +10001000 +00111110 +00001000 +10001111 +00001111 +00011111 +00011000 +00010000 +01101101 +00010000 +01101100 +00010000 +00111111 +00001000 +10000000 +00111111 +00001000 +10000111 +01110001 +00010000 +01110000 +00010000 +01110011 +00010000 +01110010 +00010000 +00111111 +00001000 +10001000 +00111111 +00001000 +10001111 +01101111 +00010000 +01101110 +00010000 +00011001 +10001010 +10001000 +10001010 +01000000 +00001000 +10000000 +01000000 +00001000 +10000111 +01011001 +00001000 +11001111 +11011111 +11011110 +11001101 +10001100 +10000110 +01000000 +00001000 +10001000 +01000000 +00001000 +10001111 +00010111 +00010000 +01101101 +00010000 +01101100 +00010000 +01110001 +00010000 +01000001 +00001000 +10000000 +01000001 +00001000 +10000111 +01110000 +00010000 +01110011 +00010000 +01110010 +00010000 +01101111 +00010000 +01000001 +00001000 +10001000 +01000001 +00001000 +10001111 +01101110 +00010000 +00011001 +10001010 +10001000 +10001010 +01011001 +10001111 +01000010 +00001000 +10000000 +01000010 +00001000 +10000111 +10001011 +00011111 +01111000 +00111111 +01000000 +01100010 +01010000 +01100011 +01000010 +00001000 +10001000 +01000010 +00001000 +10001111 +01100000 +01100100 +01110000 +01100101 +00111100 +00111010 +01001110 +01011111 +01000011 +00001000 +10000000 +01000011 +00001000 +10000111 +01101111 +01111111 +01111010 +10001011 +01000000 +01100010 +01010000 +01100011 +01000011 +00001000 +10001000 +01000011 +00001000 +10001111 +01100000 +01100100 +01110000 +01100101 +00111100 +00111010 +00111011 +00111101 +01000100 +00001000 +10000000 +01000100 +00001000 +10000111 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +01000100 +00001000 +10001000 +01000100 +00001000 +10001111 +10000010 +10010011 +00001001 +00010101 +10000000 +01101100 +10010000 +01101101 +01000101 +00001000 +10000000 +01000101 +00001000 +10000111 +10000000 +01101100 +10010000 +01101101 +00000001 +00100100 +10000000 +10010010 +01000101 +00001000 +10001000 +01000101 +00001000 +10001111 +00010100 +10000000 +10010000 +10010000 +01101101 +10000000 +01101100 +00100000 +01000110 +00001000 +10000000 +01000110 +00001000 +10000111 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01101101 +00101000 +01000110 +00001000 +10001000 +01000110 +00001000 +10001111 +00111001 +11001001 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +01000111 +00001000 +10000000 +01000111 +00001000 +10000111 +10010000 +01101101 +00101000 +00111001 +00001100 +00001000 +10000000 +01101100 +01000111 +00001000 +10001000 +01000111 +00001000 +10001111 +10010000 +01101101 +00100000 +01110000 +00110000 +01110001 +10000010 +10010011 +01001000 +00001000 +10000000 +01001000 +00001000 +10000111 +10000000 +10010010 +01110100 +01001111 +01011111 +01101111 +01111111 +01000000 +01001000 +00001000 +10001000 +01001000 +00001000 +10001111 +01100010 +01010000 +01100011 +01100000 +01100100 +01110000 +01100101 +00111100 +01001001 +00001000 +10000000 +01001001 +00001000 +10000111 +00111010 +00100000 +01101110 +00110000 +01101111 +00101111 +00111111 +10000100 +01001001 +00001000 +10001000 +01001001 +00001000 +10001111 +00100000 +00111000 +00010100 +00100000 +00110000 +10000000 +01110010 +10010000 +01001010 +00001000 +10000000 +01001010 +00001000 +10000111 +01110011 +00101000 +00111001 +01101001 +11100000 +01101110 +11110000 +01101111 +01001010 +00001000 +10001000 +01001010 +00001000 +10001111 +11100000 +11111111 +10001111 +10000000 +10000000 +01101110 +10010000 +01101111 +01001011 +00001000 +10000000 +01001011 +00001000 +10000111 +00000001 +00100100 +10000000 +10010010 +00010100 +10000000 +10010000 +10010000 +01001011 +00001000 +10001000 +01001011 +00001000 +10001111 +01101111 +10000000 +01101110 +00111010 +11010100 +00111010 +01010101 +00111011 +01001100 +00001000 +10000000 +01001100 +00001000 +10000111 +11001100 +00111011 +00100000 +01101110 +00110000 +01101111 +00101111 +00111111 +01001100 +00001000 +10001000 +01001100 +00001000 +10001111 +10000100 +00100000 +00111000 +00010100 +00100000 +00110000 +10000000 +01110010 +01001101 +00001000 +10000000 +01001101 +00001000 +10000111 +10010000 +01110011 +00101000 +00111001 +01101001 +11100000 +01101110 +11110000 +01001101 +00001000 +10001000 +01001101 +00001000 +10001111 +01101111 +11100000 +11111111 +10000010 +10000000 +10000000 +01101110 +10010000 +01001110 +00001000 +10000000 +01001110 +00001000 +10000111 +01101111 +00000001 +00100100 +10000000 +10010010 +00010100 +10000000 +10010000 +01001110 +00001000 +10001000 +01001110 +00001000 +10001111 +10010000 +01101111 +10000000 +01101110 +00111010 +10100101 +00111010 +01010101 +01001111 +00001000 +10000000 +01001111 +00001000 +10000111 +00111011 +10011101 +00111011 +00100000 +01101110 +00110000 +01101111 +00101111 +01001111 +00001000 +10001000 +01001111 +00001000 +10001111 +00111111 +10000100 +00100000 +00111000 +00010100 +00100000 +00110000 +10000000 +01010000 +00001000 +10000000 +01010000 +00001000 +10000111 +01110010 +10010000 +01110011 +00101000 +00111001 +01101001 +11100000 +01101110 +01010000 +00001000 +10001000 +01010000 +00001000 +10001111 +11110000 +01101111 +11100000 +11111111 +10001001 +10000000 +10000000 +01101110 +01010001 +00001000 +10000000 +01010001 +00001000 +10000111 +10010000 +01101111 +00000001 +00100100 +10000000 +10010010 +00010100 +10000000 +01010001 +00001000 +10001000 +01010001 +00001000 +10001111 +10010000 +10010000 +01101111 +10000000 +01101110 +00111010 +01111000 +00111010 +01010010 +00001000 +10000000 +01010010 +00001000 +10000111 +01010101 +00111011 +01110010 +00111011 +00100000 +01101110 +00110000 +01101111 +01010010 +00001000 +10001000 +01010010 +00001000 +10001111 +00101111 +00111111 +10000100 +00100000 +00111000 +00010100 +00100000 +00110000 +01010011 +00001000 +10000000 +01010011 +00001000 +10000111 +10000000 +01110010 +10010000 +01110011 +00101000 +00111001 +01101001 +11100000 +01010011 +00001000 +10001000 +01010011 +00001000 +10001111 +01101110 +11110000 +01101111 +11100000 +11111111 +10000100 +10000000 +10000000 +01010100 +00001000 +10000000 +01010100 +00001000 +10000111 +01101110 +10010000 +01101111 +00000001 +00100100 +10000000 +10010010 +00010100 +01010100 +00001000 +10001000 +01010100 +00001000 +10001111 +10000000 +10010000 +10010000 +01101111 +10000000 +01101110 +00111010 +01001011 +01010101 +00001000 +10000000 +01010101 +00001000 +10000111 +00111010 +01010101 +00111011 +01000101 +00111011 +00100000 +01101110 +00110000 +01010101 +00001000 +10001000 +01010101 +00001000 +10001111 +01101111 +00101111 +00111111 +10000100 +00100000 +00111000 +00010100 +00100000 +01010110 +00001000 +10000000 +01010110 +00001000 +10000111 +00110000 +10000000 +01110010 +10010000 +01110011 +00101000 +00111001 +01101001 +01010110 +00001000 +10001000 +01010110 +00001000 +10001111 +11100000 +01101110 +11110000 +01101111 +11100000 +11111111 +10000011 +10000000 +01010111 +00001000 +10000000 +01010111 +00001000 +10000111 +10000000 +01101110 +10010000 +01101111 +00000001 +00100100 +10000000 +10010010 +01010111 +00001000 +10001000 +01010111 +00001000 +10001111 +00010100 +10000000 +10010000 +10010000 +01101111 +10000000 +01101110 +00111010 +01011000 +00001000 +10000000 +01011000 +00001000 +10000111 +00011110 +00111010 +01010101 +00111011 +00011000 +00111011 +00100000 +01101110 +01011000 +00001000 +10001000 +01011000 +00001000 +10001111 +00110000 +01101111 +00101111 +00111111 +10000100 +00100000 +00111000 +00010100 +01011001 +00001000 +10000000 +01011001 +00001000 +10000111 +00100000 +00110000 +10000000 +01110010 +10010000 +01110011 +00101000 +00111001 +01011001 +00001000 +10001000 +01011001 +00001000 +10001111 +01101001 +11100000 +01101110 +11110000 +01101111 +11100000 +11111111 +10001010 +01011010 +00001000 +10000000 +01011010 +00001000 +10000111 +10000000 +10000000 +01101110 +10010000 +01101111 +00000001 +00100100 +10000000 +01011010 +00001000 +10001000 +01011010 +00001000 +10001111 +10010010 +00010100 +10000000 +10010000 +10010000 +01101111 +10000000 +01101110 +01011011 +00001000 +10000000 +01011011 +00001000 +10000111 +00111010 +10000010 +00111010 +01010101 +00111011 +10000010 +00111011 +00100000 +01011011 +00001000 +10001000 +01011011 +00001000 +10001111 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +10000010 +01011100 +00001000 +10000000 +01011100 +00001000 +10000111 +10010011 +00001001 +10000010 +11100000 +01101100 +11110000 +01101101 +11101110 +01011100 +00001000 +10001000 +01011100 +00001000 +10001111 +11111011 +11100000 +10000000 +01101100 +10010000 +01101101 +00000001 +00100100 +01011101 +00001000 +10000000 +01011101 +00001000 +10000111 +10000000 +10010010 +00010100 +10000000 +10010000 +10010000 +01101101 +10000000 +01011101 +00001000 +10001000 +01011101 +00001000 +10001111 +01101100 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01011110 +00001000 +10000000 +01011110 +00001000 +10000111 +01101101 +00101000 +00111001 +00001001 +11001010 +00100000 +01110000 +00110000 +01011110 +00001000 +10001000 +01011110 +00001000 +10001111 +01110001 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +00001100 +01011111 +00001000 +10000000 +01011111 +00001000 +10000111 +10110000 +10000000 +01101100 +10010000 +01101101 +00100000 +01110000 +00110000 +01011111 +00001000 +10001000 +01011111 +00001000 +10001111 +01110001 +10000010 +10010011 +10000000 +10010010 +00001100 +10110000 +11111111 +01100000 +00001000 +10000000 +01100000 +00001000 +10000111 +11100111 +11110000 +11100001 +00001001 +10110010 +11100010 +00001001 +10101111 +01100000 +00001000 +10001000 +01100000 +00001000 +10001111 +01000100 +00100000 +01101110 +00110000 +01101111 +00101111 +00111111 +10000100 +01100001 +00001000 +10000000 +01100001 +00001000 +10000111 +00100000 +00111000 +00010100 +00100000 +00110000 +10000000 +01110010 +10010000 +01100001 +00001000 +10001000 +01100001 +00001000 +10001111 +01110011 +00101000 +00111001 +01101001 +11100000 +01101110 +11110000 +01101111 +01100010 +00001000 +10000000 +01100010 +00001000 +10000111 +11100000 +11111111 +01000000 +10000000 +01101110 +10010000 +01101111 +00000001 +01100010 +00001000 +10001000 +01100010 +00001000 +10001111 +00100100 +10000000 +10010010 +00010100 +10000000 +10010000 +10010000 +01101111 +01100011 +00001000 +10000000 +01100011 +00001000 +10000111 +10000000 +01101110 +00111010 +01111110 +00111010 +01010101 +00111011 +01111110 +01100011 +00001000 +10001000 +01100011 +00001000 +10001111 +00111011 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01100100 +00001000 +10000000 +01100100 +00001000 +10000111 +01110001 +10000010 +10010011 +00001001 +01111110 +00111100 +00111010 +00100000 +01100100 +00001000 +10001000 +01100100 +00001000 +10001111 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +00101000 +01100101 +00001000 +10000000 +01100101 +00001000 +10000111 +00111001 +00001001 +01110000 +00111100 +00111010 +00100000 +01101100 +00110000 +01100101 +00001000 +10001000 +01100101 +00001000 +10001111 +01101101 +10000000 +01110000 +10010000 +01110001 +00101000 +00111001 +00101001 +01100110 +00001000 +10000000 +01100110 +00001000 +10000111 +01100010 +00001000 +11100001 +11110001 +00000001 +00010001 +00111100 +00111010 +01100110 +00001000 +10001000 +01100110 +00001000 +10001111 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +01100111 +00001000 +10000000 +01100111 +00001000 +10000111 +10000010 +10010011 +01110001 +10111000 +10100111 +11100000 +01100010 +11110000 +01100111 +00001000 +10001000 +01100111 +00001000 +10001111 +01100011 +00000000 +01100100 +00010000 +01100101 +11001110 +10000000 +01110000 +01101000 +00001000 +10000000 +01101000 +00001000 +10000111 +10010000 +01110001 +00100000 +01101100 +00110000 +01101101 +10000010 +10010011 +01101000 +00001000 +10001000 +01101000 +00001000 +10001111 +10000001 +10010010 +00001100 +11110111 +00000100 +00111011 +00110011 +00111011 +01101001 +00001000 +10000000 +01101001 +00001000 +10000111 +01100010 +00111010 +00101011 +00111010 +01011010 +00111011 +10001101 +00111010 +01101001 +00001000 +10001000 +01101001 +00001000 +10001111 +10000111 +00111011 +10111010 +00111010 +10110100 +00111011 +11100111 +00111010 +01101010 +00001000 +10000000 +01101010 +00001000 +10000111 +11100001 +10000000 +01110000 +10010000 +01110001 +00100000 +01101100 +00110000 +01101010 +00001000 +10001000 +01101010 +00001000 +10001111 +01101101 +10000010 +10010011 +10000001 +10010010 +00001100 +01010000 +00111100 +01101011 +00001000 +10000000 +01101011 +00001000 +10000111 +00111010 +11111111 +11100111 +11110000 +11100001 +00001001 +01001110 +00100000 +01101011 +00001000 +10001000 +01101011 +00001000 +10001111 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +10000010 +01101100 +00001000 +10000000 +01101100 +00001000 +10000111 +10010011 +00001001 +00110101 +11100000 +01101100 +11110000 +01101101 +11101110 +01101100 +00001000 +10001000 +01101100 +00001000 +10001111 +11111011 +11100000 +10000000 +01101100 +10010000 +01101101 +00000001 +00100100 +01101101 +00001000 +10000000 +01101101 +00001000 +10000111 +10000000 +10010010 +00010100 +10000000 +10010000 +10010000 +01101101 +10000000 +01101101 +00001000 +10001000 +01101101 +00001000 +10001111 +01101100 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01101110 +00001000 +10000000 +01101110 +00001000 +10000111 +01101101 +00101000 +00111001 +00001001 +10000110 +00100000 +01110000 +00110000 +01101110 +00001000 +10001000 +01101110 +00001000 +10001111 +01110001 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +00001100 +01101111 +00001000 +10000000 +01101111 +00001000 +10000111 +01101100 +10000000 +01101100 +10010000 +01101101 +00100000 +01110000 +00110000 +01101111 +00001000 +10001000 +01101111 +00001000 +10001111 +01110001 +10000010 +10010011 +10000000 +10010010 +00001100 +01101100 +10101110 +01110000 +00001000 +10000000 +01110000 +00001000 +10000111 +10111011 +10100111 +10110000 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +00001000 +10001000 +01110000 +00001000 +10001111 +01110000 +10010000 +01110001 +00101000 +00111001 +00001001 +00000101 +11100000 +01110001 +00001000 +10000000 +01110001 +00001000 +10000111 +01101100 +11110000 +01101101 +11101110 +11111011 +11100000 +10000000 +01101100 +01110001 +00001000 +10001000 +01110001 +00001000 +10001111 +10010000 +01101101 +00000001 +00100100 +10000000 +10010010 +00010100 +10000000 +01110010 +00001000 +10000000 +01110010 +00001000 +10000111 +10010000 +10010000 +01101101 +10000000 +01101100 +00100000 +01110000 +00110000 +01110010 +00001000 +10001000 +01110010 +00001000 +10001111 +01110001 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +00001001 +01110011 +00001000 +10000000 +01110011 +00001000 +10000111 +01001011 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01110011 +00001000 +10001000 +01110011 +00001000 +10001111 +01101101 +00101000 +00111001 +00001100 +00110001 +10000000 +01101100 +10010000 +01110100 +00001000 +10000000 +01110100 +00001000 +10000111 +01101101 +00100000 +01110000 +00110000 +01110001 +10000010 +10010011 +10000000 +01110100 +00001000 +10001000 +01110100 +00001000 +10001111 +10010010 +00001100 +00110001 +01101110 +01110111 +01100111 +01110000 +00100000 +01110101 +00001000 +10000000 +01110101 +00001000 +10000111 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +10000010 +01110101 +00001000 +10001000 +01110101 +00001000 +10001111 +10010011 +00001001 +11010101 +11100000 +01101100 +11110000 +01101101 +11101110 +01110110 +00001000 +10000000 +01110110 +00001000 +10000111 +11111011 +11100000 +10000000 +01101100 +10010000 +01101101 +00000001 +00100100 +01110110 +00001000 +10001000 +01110110 +00001000 +10001111 +10000000 +10010010 +00010100 +10000000 +10010000 +10010000 +01101101 +10000000 +01110111 +00001000 +10000000 +01110111 +00001000 +10000111 +01101100 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01110111 +00001000 +10001000 +01110111 +00001000 +10001111 +01101101 +00101000 +00111001 +00001001 +11011101 +00100000 +01110000 +00110000 +01111000 +00001000 +10000000 +01111000 +00001000 +10000111 +01110001 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +00001100 +01111000 +00001000 +10001000 +01111000 +00001000 +10001111 +11000011 +10000000 +01101100 +10010000 +01101101 +00100000 +01110000 +00110000 +01111001 +00001000 +10000000 +01111001 +00001000 +10000111 +01110001 +10000010 +10010011 +10000000 +10010010 +00001100 +11000011 +01001110 +01111001 +00001000 +10001000 +01111001 +00001000 +10001111 +01010101 +01000111 +01010000 +00100000 +01101100 +00110000 +01101101 +10000000 +01111010 +00001000 +10000000 +01111010 +00001000 +10000111 +01110000 +10010000 +01110001 +10000010 +10010011 +01101001 +00111100 +00111010 +01111010 +00001000 +10001000 +01111010 +00001000 +10001111 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +01111011 +00001000 +10000000 +01111011 +00001000 +10000111 +00101000 +00111001 +10011001 +11100000 +01101100 +11110000 +01101101 +11101110 +01111011 +00001000 +10001000 +01111011 +00001000 +10001111 +11111011 +11100000 +10000000 +01101100 +10010000 +01101101 +00000001 +00100100 +01111100 +00001000 +10000000 +01111100 +00001000 +10000111 +10000000 +10010010 +00010100 +10000000 +10010000 +10010000 +01101101 +10000000 +01111100 +00001000 +10001000 +01111100 +00001000 +10001111 +01101100 +00100000 +01110000 +00110000 +01110001 +10000000 +01101100 +10010000 +01111101 +00001000 +10000000 +01111101 +00001000 +10000111 +01101101 +00101000 +00111001 +11001001 +00100000 +01110000 +00110000 +01110001 +01111101 +00001000 +10001000 +01111101 +00001000 +10001111 +10000000 +01101100 +10010000 +01101101 +00101000 +00111001 +00001100 +10011111 +01111110 +00001000 +10000000 +01111110 +00001000 +10000111 +10000000 +01101100 +10010000 +01101101 +00100000 +01110000 +00110000 +01110001 +01111110 +00001000 +10001000 +01111110 +00001000 +10001111 +10000010 +10010011 +10000000 +10010010 +00010100 +00111100 +00111010 +01001000 +01111111 +00001000 +10000000 +01111111 +00001000 +10000111 +01101001 +10101010 +10001110 +10011001 +10000111 +10010000 +10001011 +10111111 +01111111 +00001000 +10001000 +01111111 +00001000 +10001111 +00111100 +00111010 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +00000000 +00000111 +10000000 +00000000 +00000111 +10000111 +10010000 +01110001 +10000010 +10010011 +00001001 +10111101 +00111100 +00111010 +00000000 +00000111 +10001000 +00000000 +00000111 +10001111 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +00000001 +00000111 +10000000 +00000001 +00000111 +10000111 +10000010 +10010011 +00101001 +10101111 +00111100 +00111010 +00100000 +01101100 +00000001 +00000111 +10001000 +00000001 +00000111 +10001111 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +00101000 +00111001 +00000010 +00000111 +10000000 +00000010 +00000111 +10000111 +00001001 +11101101 +00111100 +00111010 +00100000 +01101100 +00110000 +01101101 +00000010 +00000111 +10001000 +00000010 +00000111 +10001111 +10000000 +01110000 +10010000 +01110001 +00101000 +00111001 +00101001 +11011111 +00000011 +00000111 +10000000 +00000011 +00000111 +10000111 +00111100 +00111010 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +00000011 +00000111 +10001000 +00000011 +00000111 +10001111 +10010000 +01110001 +10000010 +10010011 +00001001 +00011101 +00111100 +00111010 +00000100 +00000111 +10000000 +00000100 +00000111 +10000111 +00100000 +01101100 +00110000 +01101101 +10000000 +01110000 +10010000 +01110001 +00000100 +00000111 +10001000 +00000100 +00000111 +10001111 +10000010 +10010011 +00101001 +00001111 +10000000 +01110000 +10010000 +01110001 +00000101 +00000111 +10000000 +00000101 +00000111 +10000111 +00100000 +01101100 +00110000 +01101101 +10000010 +10010011 +10000001 +10010010 +00000101 +00000111 +10001000 +00000101 +00000111 +10001111 +00001100 +00111101 +00111100 +00111010 +00111010 +10000000 +01110000 +10010000 +00000110 +00000111 +10000000 +00000110 +00000111 +10000111 +01110001 +00100000 +01101100 +00110000 +01101101 +10000010 +10010011 +10000001 +00000110 +00000111 +10001000 +00000110 +00000111 +10001111 +10010010 +00001100 +10010100 +00111100 +00111010 +10010001 +10000000 +01110000 +00000111 +00000111 +10000000 +00000111 +00000111 +10000111 +10010000 +01110001 +00100000 +01101100 +00110000 +01101101 +10000010 +10010011 +00000111 +00000111 +10001000 +00000111 +00000111 +10001111 +10000001 +10010010 +00001100 +11001111 +00111100 +00111010 +11001100 +10000000 +00001000 +00000111 +10000000 +00001000 +00000111 +10000111 +01110000 +10010000 +01110001 +00100000 +01101100 +00110000 +01101101 +10000010 +00001000 +00000111 +10001000 +00001000 +00000111 +10001111 +10010011 +10000001 +10010010 +00001100 +01100010 +00111100 +00111010 +01011111 +10000000 +00001000 +10000000 +10000000 +00001000 +10000111 +10010100 +00000000 +10010100 +00000000 +10010100 +00000001 +10010100 +00000000 +10000000 +00001000 +10001000 +10000000 +00001000 +10001111 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10000001 +00001000 +10000000 +10000001 +00001000 +10000111 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10000001 +00001000 +10001000 +10000001 +00001000 +10001111 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10000010 +00001000 +10000000 +10000010 +00001000 +10000111 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10000010 +00001000 +10001000 +10000010 +00001000 +10001111 +10010100 +00000000 +10010100 +00000011 +10010100 +00000010 +10010100 +00000000 +10000011 +00001000 +10000000 +10000011 +00001000 +10000111 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10000011 +00001000 +10001000 +10000011 +00001000 +10001111 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10010100 +00000000 +10000100 +00001000 +10000000 +10000100 +00001000 +10000111 +10010100 +00000000 +10010100 +00000000 +10010100 +00000011 +10010100 +00000000 +10000100 +00001000 +10001000 +10000100 +00001000 +10001111 +00100100 +10111110 +11101111 +11100000 +10111111 +10111111 +11100000 +11100110 +10000101 +00001000 +10000000 +10000101 +00001000 +10000111 +11100000 +11100010 +11100001 +11000000 +10010000 +10010010 +00110110 +00000111 +10000101 +00001000 +10001000 +10000101 +00001000 +10001111 +11110111 +11100000 +11100110 +11100000 +11000000 +10010010 +00110111 +00000111 +10000110 +00001000 +10000000 +10000110 +00001000 +10000111 +11110111 +10010100 +00000100 +10010100 +00000000 +00101111 +00100111 +01110000 +10000110 +00001000 +10001000 +10000110 +00001000 +10001111 +10111101 +10111001 +10110001 +01101001 +10111001 +00101011 +11110000 +10011010 +10000111 +00001000 +10000000 +10000111 +00001000 +10000111 +10010101 +10011000 +10010101 +10010101 +10010110 +11100000 +00110000 +00000111 +10000111 +00001000 +10001000 +10000111 +00001000 +10001111 +11110000 +11100000 +11100000 +10010101 +11111111 +10010101 +10010101 +10010101 +10001000 +00001000 +10000000 +10001000 +00001000 +10000111 +01001111 +10010101 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10001000 +00001000 +10001000 +10001000 +00001000 +10001111 +10010001 +00000000 +00010111 +00000111 +11110100 +10010001 +00000000 +10010001 +10001001 +00001000 +10000000 +10001001 +00001000 +10000111 +00000000 +10010001 +00000100 +10010001 +00000100 +00011011 +00001011 +11000000 +10001001 +00001000 +10001000 +10001001 +00001000 +10001111 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +00000000 +10001010 +00001000 +10000000 +10001010 +00001000 +10000111 +00011011 +00001011 +00000001 +10010101 +10010001 +00000000 +10010001 +00000000 +10001010 +00001000 +10001000 +10001010 +00001000 +10001111 +10010001 +00000100 +10010001 +00000100 +11100000 +11100000 +00010111 +00000111 +10001011 +00001000 +10000000 +10001011 +00001000 +10000111 +11110100 +11100000 +11100000 +00000001 +10010101 +10010001 +00000100 +10010001 +10001011 +00001000 +10001000 +10001011 +00001000 +10001111 +00000100 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110001 +10001100 +00001000 +10000000 +10001100 +00001000 +10000111 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +00000000 +10001100 +00001000 +10001000 +10001100 +00001000 +10001111 +00010111 +00000111 +11110100 +10010001 +00000000 +10010001 +00000000 +10010001 +10001101 +00001000 +10000000 +10001101 +00001000 +10000111 +00000100 +10010001 +00000100 +11100000 +11100000 +00011011 +00001011 +01010000 +10001101 +00001000 +10001000 +10001101 +00001000 +10001111 +01000000 +11110100 +11000000 +10010001 +00000100 +10010001 +00000100 +10010001 +10001110 +00001000 +10000000 +10001110 +00001000 +10000111 +00000000 +10010001 +00000000 +11100000 +11100000 +00011011 +00001011 +01010000 +10001110 +00001000 +10001000 +10001110 +00001000 +10001111 +01000000 +11110000 +11100000 +11100000 +11000000 +11100000 +11100000 +00000001 +10001111 +00001000 +10000000 +10001111 +00001000 +10000111 +10010101 +10010001 +00001000 +10010001 +00001000 +10010001 +00000000 +10010001 +10001111 +00001000 +10001000 +10001111 +00001000 +10001111 +00000000 +11100000 +11100000 +00010111 +00000111 +11110100 +11100000 +11100000 +10010000 +00001000 +10000000 +10010000 +00001000 +10000111 +00000001 +10010101 +10010001 +00000000 +10010001 +00000000 +10010001 +00001000 +10010000 +00001000 +10001000 +10010000 +00001000 +10001111 +10010001 +00001000 +00010111 +00000111 +11110001 +10010001 +00000000 +10010001 +10010001 +00001000 +10000000 +10010001 +00001000 +10000111 +00000000 +10010001 +00001000 +10010001 +00001000 +00010111 +00000111 +11110100 +10010001 +00001000 +10001000 +10010001 +00001000 +10001111 +10010001 +00001000 +10010001 +00001000 +10010001 +00000000 +10010001 +00000000 +10010010 +00001000 +10000000 +10010010 +00001000 +10000111 +11100000 +11100000 +00011011 +00001011 +01010000 +01000000 +11110100 +11000000 +10010010 +00001000 +10001000 +10010010 +00001000 +10001111 +10010001 +00000000 +10010001 +00000000 +10010001 +00001000 +10010001 +00001000 +10010011 +00001000 +10000000 +10010011 +00001000 +10000111 +11100000 +11100000 +00011011 +00001011 +01010000 +01000000 +11110000 +11100000 +10010011 +00001000 +10001000 +10010011 +00001000 +10001111 +11100000 +11000000 +11100000 +11100000 +00000001 +10010101 +00101011 +11110000 +10010100 +00001000 +10000000 +10010100 +00001000 +10000111 +11101000 +10111011 +11100000 +10111011 +10010101 +10111010 +10111010 +10010101 +10010100 +00001000 +10001000 +10010100 +00001000 +10001111 +10111011 +10111011 +10111011 +10111011 +10010101 +10010010 +10010010 +10110110 +10010101 +00001000 +10000000 +10010101 +00001000 +10000111 +10010010 +00100100 +10111110 +10010100 +10010000 +10111110 +10010000 +10010000 +10010101 +00001000 +10001000 +10010101 +00001000 +10001111 +10010101 +00101111 +01010011 +00110000 +11110100 +00101111 +00100111 +11111101 +10010110 +00001000 +10000000 +10010110 +00001000 +10000111 +10010101 +10010111 +10010101 +00101111 +01010110 +00110000 +11110100 +00101111 +10010110 +00001000 +10001000 +10010110 +00001000 +10001111 +00100111 +11111101 +10010101 +01010101 +01000000 +10010101 +00101111 +01010100 +10010111 +00001000 +10000000 +10010111 +00001000 +10000111 +00110000 +11110100 +00101111 +00100111 +11111101 +10010101 +10010111 +10010101 +10010111 +00001000 +10001000 +10010111 +00001000 +10001111 +11101111 +11101111 +10010101 +11100000 +11100000 +11101111 +11100000 +11100000 +10011000 +00001000 +10000000 +10011000 +00001000 +10000111 +11101111 +11101111 +11101111 +10111011 +00000001 +10010111 +11110111 +10111011 +10011000 +00001000 +10001000 +10011000 +00001000 +10001111 +00000001 +10010111 +11110111 +10111011 +00000001 +10010111 +11110111 +10111011 +10011001 +00001000 +10000000 +10011001 +00001000 +10000111 +00000001 +10010111 +11110111 +01010000 +01000000 +11110111 +11101111 +10111011 +10011001 +00001000 +10001000 +10011001 +00001000 +10001111 +11100001 +11100000 +11100000 +10110110 +10010100 +10010101 +10111101 +10111110 +10011010 +00001000 +10000000 +10011010 +00001000 +10000111 +10111101 +11001111 +10010001 +00000100 +10010001 +00000100 +01011111 +01001111 +10011010 +00001000 +10001000 +10011010 +00001000 +10001111 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +10010001 +00000000 +10011011 +00001000 +10000000 +10011011 +00001000 +10000111 +10010001 +00000000 +11100000 +11100000 +00010111 +00000111 +11110100 +11100000 +10011011 +00001000 +10001000 +10011011 +00001000 +10001111 +11100000 +00000001 +10010101 +10010001 +00000000 +10010001 +00000000 +01011111 +10011100 +00001000 +10000000 +10011100 +00001000 +10000111 +01001111 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +10010001 +10011100 +00001000 +10001000 +10011100 +00001000 +10001111 +00001000 +10010001 +00001000 +11100000 +11100000 +00010111 +00000111 +11110100 +10011101 +00001000 +10000000 +10011101 +00001000 +10000111 +11100000 +11100000 +00000001 +10010101 +10010001 +00000000 +10010001 +00000000 +10011101 +00001000 +10001000 +10011101 +00001000 +10001111 +10010001 +00000000 +10010001 +00000000 +01011111 +01001111 +01001111 +01001111 +10011110 +00001000 +10000000 +10011110 +00001000 +10000111 +10010011 +00000000 +10010011 +00000000 +10010011 +00000000 +10010011 +00000000 +10011110 +00001000 +10001000 +10011110 +00001000 +10001111 +00101011 +11110000 +10011010 +10011010 +10010101 +10011000 +10011000 +10010101 +10011111 +00001000 +10000000 +10011111 +00001000 +10000111 +10010100 +10010001 +00000000 +10010001 +00000000 +10010001 +00000000 +10010001 +10011111 +00001000 +10001000 +10011111 +00001000 +10001111 +00000000 +10010110 +00011101 +00011101 +10010011 +00000000 +10010011 +00000000 +10100000 +00001000 +10000000 +10100000 +00001000 +10000111 +10010011 +00000000 +10010011 +00000000 +10011000 +10011000 +11100000 +11100000 +10100000 +00001000 +10001000 +10100000 +00001000 +10001111 +10010111 +11110111 +11001111 +10010001 +00000000 +10010001 +00000000 +10010001 +10100001 +00001000 +10000000 +10100001 +00001000 +10000111 +00000100 +10010001 +00000100 +00010111 +00000111 +11110100 +11000000 +10010001 +10100001 +00001000 +10001000 +10100001 +00001000 +10001111 +00000000 +10010001 +00000000 +01011000 +01001111 +10000001 +10010001 +00000000 +10100010 +00001000 +10000000 +10100010 +00001000 +10000111 +10010001 +00000000 +10010110 +11100000 +00110000 +00000111 +11110000 +11100000 +10100010 +00001000 +10001000 +10100010 +00001000 +10001111 +11100000 +10010011 +00000000 +10010011 +00000000 +10010001 +00000100 +10010001 +10100011 +00001000 +10000000 +10100011 +00001000 +10000111 +00000100 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110000 +10100011 +00001000 +10001000 +10100011 +00001000 +10001111 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +00000000 +10100100 +00001000 +10000000 +10100100 +00001000 +10000111 +00010111 +00000111 +11110001 +10010001 +00000100 +10010001 +00000100 +10010001 +10100100 +00001000 +10001000 +10100100 +00001000 +10001111 +00000000 +10010001 +00000000 +00011011 +00001011 +01010000 +01000000 +11110000 +10100101 +00001000 +10000000 +10100101 +00001000 +10000111 +11000000 +10010001 +00000000 +10010001 +00000000 +10010001 +00000000 +10010001 +10100101 +00001000 +10001000 +10100101 +00001000 +10001111 +00000000 +10010110 +00011101 +00011101 +10010011 +00000000 +10010011 +00000000 +10100110 +00001000 +10000000 +10100110 +00001000 +10000111 +10010011 +00000000 +10010011 +00000000 +10011010 +10011010 +11000000 +10010001 +10100110 +00001000 +10001000 +10100110 +00001000 +10001111 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +00011011 +10100111 +00001000 +10000000 +10100111 +00001000 +10000111 +00001011 +01010000 +01000000 +11110110 +11000000 +10010001 +00000000 +10010001 +10100111 +00001000 +10001000 +10100111 +00001000 +10001111 +00000000 +10010001 +00000000 +10010001 +00000000 +01011111 +01001111 +01001111 +10101000 +00001000 +10000000 +10101000 +00001000 +10000111 +01001111 +10011010 +10011010 +10010001 +00000000 +10010001 +00000000 +10010001 +10101000 +00001000 +10001000 +10101000 +00001000 +10001111 +00000100 +10010001 +00000100 +00010111 +00000111 +11110011 +10010011 +00000000 +10101001 +00001000 +10000000 +10101001 +00001000 +10000111 +10010011 +00000000 +10010011 +00000000 +10010011 +00000000 +11001111 +00101111 +10101001 +00001000 +10001000 +10101001 +00001000 +10001111 +00100111 +11111101 +10010101 +10010101 +10010010 +10010010 +10110110 +10010010 +10101010 +00001000 +10000000 +10101010 +00001000 +10000111 +00100100 +10010011 +10010011 +10010011 +10010011 +10010011 +10010011 +10010001 +10101010 +00001000 +10001000 +10101010 +00001000 +10001111 +00001000 +10010001 +00001000 +10010001 +00000000 +10010001 +00000000 +00010111 +10101011 +00001000 +10000000 +10101011 +00001000 +10000111 +00000111 +11110000 +10010001 +00001000 +10010001 +00001000 +01011001 +01001111 +10101011 +00001000 +10001000 +10101011 +00001000 +10001111 +10000001 +10010001 +00001000 +10010001 +00001000 +10010110 +11100000 +00110000 +10101100 +00001000 +10000000 +10101100 +00001000 +10000111 +00000111 +11110100 +10010011 +00001000 +10010011 +00001000 +10111001 +10010100 +10101100 +00001000 +10001000 +10101100 +00001000 +10001111 +11000000 +11100000 +11100000 +11001111 +10011000 +10010001 +10010001 +10010001 +10101101 +00001000 +10000000 +10101101 +00001000 +10000111 +10010001 +10010001 +10010001 +10010000 +10111110 +10010000 +10010000 +10010101 +10101101 +00001000 +10001000 +10101101 +00001000 +10001111 +00101111 +10010001 +00000000 +10010001 +00000000 +01011111 +01001111 +11100000 +10101110 +00001000 +10000000 +10101110 +00001000 +10000111 +00110000 +00000111 +11110000 +11100000 +11100000 +10010001 +00001000 +10010001 +10101110 +00001000 +10001000 +10101110 +00001000 +10001111 +00001000 +00010111 +00000111 +11110011 +10010001 +00000000 +10010001 +00000000 +10101111 +00001000 +10000000 +10101111 +00001000 +10000111 +01011001 +01001111 +10000011 +10010001 +00000000 +10010001 +00000000 +10010110 +10101111 +00001000 +10001000 +10101111 +00001000 +10001111 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +10010011 +00000000 +10110000 +00001000 +10000000 +10110000 +00001000 +10000111 +10010011 +00000000 +10011011 +11000000 +10011000 +10011010 +10011011 +11000000 +10110000 +00001000 +10001000 +10110000 +00001000 +10001111 +10011000 +10010101 +10011010 +10011010 +10011001 +11001111 +10011010 +10010101 +10110001 +00001000 +10000000 +10110001 +00001000 +10000111 +10010010 +10010010 +10110110 +10010010 +00100100 +10010011 +10010011 +10010011 +10110001 +00001000 +10001000 +10110001 +00001000 +10001111 +10010011 +10010011 +10010011 +10010011 +10010011 +10011011 +11000000 +11101100 +10110010 +00001000 +10000000 +10110010 +00001000 +10000111 +11100000 +10010011 +00000000 +10010011 +00000000 +10011011 +11000000 +11101100 +10110010 +00001000 +10001000 +10110010 +00001000 +10001111 +11100000 +10010011 +00000000 +10010011 +00000000 +10010001 +00000100 +10010001 +10110011 +00001000 +10000000 +10110011 +00001000 +10000111 +00000100 +01011111 +01001111 +11100000 +00110000 +00000111 +11110000 +11100000 +10110011 +00001000 +10001000 +10110011 +00001000 +10001111 +11100000 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110100 +10110100 +00001000 +10000000 +10110100 +00001000 +10000111 +11000000 +10010001 +00000100 +10010001 +00000100 +10110001 +01011000 +01001111 +10110100 +00001000 +10001000 +10110100 +00001000 +10001111 +10000011 +10010001 +00000100 +10010001 +00000100 +10010110 +11100000 +00110000 +10110101 +00001000 +10000000 +10110101 +00001000 +10000111 +00000111 +11110000 +11100000 +11100000 +10010011 +00000100 +10010011 +00000100 +10110101 +00001000 +10001000 +10110101 +00001000 +10001111 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +00000000 +10110110 +00001000 +10000000 +10110110 +00001000 +10000111 +00010111 +00000111 +11110100 +11000000 +10010001 +00000100 +10010001 +00000100 +10110110 +00001000 +10001000 +10110110 +00001000 +10001111 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110101 +10010001 +10110111 +00001000 +10000000 +10110111 +00001000 +10000111 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +00011011 +10110111 +00001000 +10001000 +10110111 +00001000 +10001111 +00001011 +01010000 +01000000 +11110101 +10010001 +00000000 +10010001 +00000000 +10111000 +00001000 +10000000 +10111000 +00001000 +10000111 +10010001 +00000000 +10010001 +00000000 +10010110 +00011101 +00011101 +10010011 +10111000 +00001000 +10001000 +10111000 +00001000 +10001111 +00000000 +10010011 +00000000 +10010011 +00000000 +10010011 +00000000 +10011000 +10111001 +00001000 +10000000 +10111001 +00001000 +10000111 +10011000 +11000000 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10111001 +00001000 +10001000 +10111001 +00001000 +10001111 +10010001 +00000000 +00011011 +00001011 +01010000 +01000000 +11110000 +11001111 +10111010 +00001000 +10000000 +10111010 +00001000 +10000111 +11101100 +11100000 +10010011 +00000000 +10010011 +00000000 +11001111 +10110111 +10111010 +00001000 +10001000 +10111010 +00001000 +10001111 +01101000 +10111111 +10010100 +10010001 +10010001 +10010001 +10010001 +10010001 +10111011 +00001000 +10000000 +10111011 +00001000 +10000111 +10010001 +10010001 +10010001 +10010000 +10111110 +10010000 +10010000 +10010101 +10111011 +00001000 +10001000 +10111011 +00001000 +10001111 +10010010 +10010010 +10110110 +10010010 +00100100 +10010011 +10010011 +10010011 +10111100 +00001000 +10000000 +10111100 +00001000 +10000111 +10010011 +10010001 +00000000 +10010001 +00000000 +10111011 +10010110 +10010011 +10111100 +00001000 +10001000 +10111100 +00001000 +10001111 +00000000 +10010011 +00000000 +10010001 +00000000 +10010001 +00000000 +10010001 +10111101 +00001000 +10000000 +10111101 +00001000 +10000111 +00000000 +10010001 +00000000 +10010110 +00011101 +00011101 +10010011 +00000000 +10111101 +00001000 +10001000 +10111101 +00001000 +10001111 +10010011 +00000000 +10010011 +00000000 +10010011 +00000000 +11101000 +10111011 +10111110 +00001000 +10000000 +10111110 +00001000 +10000111 +11100000 +10111011 +10010001 +10010001 +10010001 +10010001 +10010000 +10111110 +10111110 +00001000 +10001000 +10111110 +00001000 +10001111 +10010000 +10010000 +10010101 +10010010 +00000000 +10010010 +00000000 +10010010 +10111111 +00001000 +10000000 +10111111 +00001000 +10000111 +00000100 +10010010 +00000100 +10010010 +00001000 +10010010 +00001000 +10010010 +10111111 +00001000 +10001000 +10111111 +00001000 +10001111 +00000000 +10010010 +00000000 +10111100 +10111000 +10110001 +01101001 +10111001 +11000000 +00001000 +10000000 +11000000 +00001000 +10000111 +10011000 +10010101 +11101111 +11100000 +10111111 +10111111 +11101011 +10111001 +11000000 +00001000 +10001000 +11000000 +00001000 +10001111 +10111000 +10010010 +00000000 +10010010 +00000000 +10010010 +00000100 +10010010 +11000001 +00001000 +10000000 +11000001 +00001000 +10000111 +00000100 +10010010 +00001000 +10010010 +00001000 +10010010 +00000000 +10010010 +11000001 +00001000 +10001000 +11000001 +00001000 +10001111 +00000000 +10111100 +10111000 +10110001 +01101001 +10111001 +10011000 +11101111 +11000010 +00001000 +10000000 +11000010 +00001000 +10000111 +10111111 +10111110 +10010100 +10011000 +10010001 +00000000 +10010001 +00000000 +11000010 +00001000 +10001000 +11000010 +00001000 +10001111 +10010001 +00000000 +10010001 +00000000 +10011000 +10011000 +01011111 +01001111 +11000011 +00001000 +10000000 +11000011 +00001000 +10000111 +01001111 +01001111 +00000001 +00000001 +10010011 +00000000 +10010011 +00000000 +11000011 +00001000 +10001000 +11000011 +00001000 +10001111 +10010011 +00000000 +10010011 +00000000 +10011010 +10011010 +10011010 +10011010 +11000100 +00001000 +10000000 +11000100 +00001000 +10000111 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +11000100 +00001000 +10001000 +11000100 +00001000 +10001111 +00010111 +00000111 +11110100 +11000010 +10010001 +00000000 +10010001 +00000000 +11000101 +00001000 +10000000 +11000101 +00001000 +10000111 +10010001 +00000000 +10010001 +00000000 +10010110 +11100000 +00110000 +00000111 +11000101 +00001000 +10001000 +11000101 +00001000 +10001111 +11110000 +11100000 +11100000 +10010011 +00000000 +10010011 +00000000 +10010001 +11000110 +00001000 +10000000 +11000110 +00001000 +10000111 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +00000000 +00010111 +11000110 +00001000 +10001000 +11000110 +00001000 +10001111 +00000111 +11110000 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +11000111 +00001000 +10000000 +11000111 +00001000 +10000111 +10010001 +00000000 +00010111 +00000111 +11110000 +11000010 +10010001 +00000000 +11000111 +00001000 +10001000 +11000111 +00001000 +10001111 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +00011011 +00001011 +11001000 +00001000 +10000000 +11001000 +00001000 +10000111 +01010000 +01000000 +11110000 +01011111 +01001111 +01001111 +01001111 +10010011 +11001000 +00001000 +10001000 +11001000 +00001000 +10001111 +00000000 +10010011 +00000000 +10010011 +00000000 +10010011 +00000000 +10011010 +11001001 +00001000 +10000000 +11001001 +00001000 +10000111 +10011010 +10010001 +00000000 +10010001 +00000000 +01011111 +01001111 +11100000 +11001001 +00001000 +10001000 +11001001 +00001000 +10001111 +00110000 +00000111 +11110000 +11100000 +11100000 +10010001 +00001000 +10010001 +11001010 +00001000 +10000000 +11001010 +00001000 +10000111 +00001000 +00010111 +00000111 +11110011 +10010001 +00000000 +10010001 +00000000 +11001010 +00001000 +10001000 +11001010 +00001000 +10001111 +01011001 +01001111 +11100100 +10000011 +10010001 +00000000 +10010001 +00000000 +11001011 +00001000 +10000000 +11001011 +00001000 +10000111 +10010110 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +10010011 +11001011 +00001000 +10001000 +11001011 +00001000 +10001111 +00000000 +10010011 +00000000 +10011011 +11000001 +10011000 +10011010 +10011011 +11001100 +00001000 +10000000 +11001100 +00001000 +10000111 +11000001 +10011000 +10010001 +00000000 +10010001 +00000000 +01011111 +01001111 +11001100 +00001000 +10001000 +11001100 +00001000 +10001111 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +10010001 +00001000 +11001101 +00001000 +10000000 +11001101 +00001000 +10000111 +10010001 +00001000 +00010111 +00000111 +11110011 +10010001 +00000000 +10010001 +11001101 +00001000 +10001000 +11001101 +00001000 +10001111 +00000000 +01011001 +01001111 +11100100 +10000011 +10010001 +00000000 +10010001 +11001110 +00001000 +10000000 +11001110 +00001000 +10000111 +00000000 +10010110 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +11001110 +00001000 +10001000 +11001110 +00001000 +10001111 +10010011 +00000000 +10010011 +00000000 +10011011 +11000001 +10011000 +10011010 +11001111 +00001000 +10000000 +11001111 +00001000 +10000111 +10011011 +11000001 +10011000 +10010001 +00000000 +10010001 +00000000 +01011111 +11001111 +00001000 +10001000 +11001111 +00001000 +10001111 +01001111 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +10010001 +11010000 +00001000 +10000000 +11010000 +00001000 +10000111 +00001000 +10010001 +00001000 +00010111 +00000111 +11110011 +10010001 +00000000 +11010000 +00001000 +10001000 +11010000 +00001000 +10001111 +10010001 +00000000 +01011001 +01001111 +11100100 +10000011 +10010001 +00000000 +11010001 +00001000 +10000000 +11010001 +00001000 +10000111 +10010001 +00000000 +10010110 +11100000 +00110000 +00000111 +11110000 +11100000 +11010001 +00001000 +10001000 +11010001 +00001000 +10001111 +11100000 +10010011 +00000000 +10010011 +00000000 +10011011 +11000001 +10011000 +11010010 +00001000 +10000000 +11010010 +00001000 +10000111 +10011010 +10011011 +11000001 +10011000 +10010001 +00000000 +10010001 +00000000 +11010010 +00001000 +10001000 +11010010 +00001000 +10001111 +01011111 +01001111 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +11010011 +00001000 +10000000 +11010011 +00001000 +10000111 +10010001 +00001000 +10010001 +00001000 +00010111 +00000111 +11110011 +10010001 +11010011 +00001000 +10001000 +11010011 +00001000 +10001111 +00000000 +10010001 +00000000 +01011001 +01001111 +11100101 +10000011 +10010001 +11010100 +00001000 +10000000 +11010100 +00001000 +10000111 +00000000 +10010001 +00000000 +10010110 +11100000 +00110000 +00000111 +11110000 +11010100 +00001000 +10001000 +11010100 +00001000 +10001111 +11100000 +11100000 +10010011 +00000000 +10010011 +00000000 +10011011 +11000001 +11010101 +00001000 +10000000 +11010101 +00001000 +10000111 +10011000 +10011010 +10011011 +11000001 +10011000 +10010001 +00000000 +10010001 +11010101 +00001000 +10001000 +11010101 +00001000 +10001111 +00000000 +01011111 +01001111 +11100000 +00110000 +00000111 +11110000 +11100000 +11010110 +00001000 +10000000 +11010110 +00001000 +10000111 +11100000 +10010001 +00001000 +10010001 +00001000 +00010111 +00000111 +11110011 +11010110 +00001000 +10001000 +11010110 +00001000 +10001111 +10010001 +00000000 +10010001 +00000000 +01011001 +01001111 +11100101 +10000011 +11010111 +00001000 +10000000 +11010111 +00001000 +10000111 +10010001 +00000000 +10010001 +00000000 +10010110 +11100000 +00110000 +00000111 +11010111 +00001000 +10001000 +11010111 +00001000 +10001111 +11110000 +11100000 +11100000 +10010011 +00000000 +10010011 +00000000 +10011011 +11011000 +00001000 +10000000 +11011000 +00001000 +10000111 +11000001 +10011000 +10011010 +10011011 +11000001 +10011000 +10010001 +00000000 +11011000 +00001000 +10001000 +11011000 +00001000 +10001111 +10010001 +00000000 +01011111 +01001111 +11100000 +00110000 +00000111 +11110000 +11011001 +00001000 +10000000 +11011001 +00001000 +10000111 +11100000 +11100000 +10010001 +00001000 +10010001 +00001000 +00010111 +00000111 +11011001 +00001000 +10001000 +11011001 +00001000 +10001111 +11110011 +10010001 +00000000 +10010001 +00000000 +01011001 +01001111 +11100000 +11011010 +00001000 +10000000 +11011010 +00001000 +10000111 +10000011 +10010001 +00000000 +10010001 +00000000 +10010110 +11100000 +00110000 +11011010 +00001000 +10001000 +11011010 +00001000 +10001111 +00000111 +11110000 +11100000 +11100000 +10010011 +00000000 +10010011 +00000000 +11011011 +00001000 +10000000 +11011011 +00001000 +10000111 +10011001 +11000000 +10011010 +10011010 +10011011 +11000000 +10011000 +10010001 +11011011 +00001000 +10001000 +11011011 +00001000 +10001111 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +00010111 +11011100 +00001000 +10000000 +11011100 +00001000 +10000111 +00000111 +11110100 +11000000 +10010001 +00000000 +10010001 +00000000 +01011000 +11011100 +00001000 +10001000 +11011100 +00001000 +10001111 +01001111 +10000001 +10010001 +00000000 +10010001 +00000000 +10010110 +11100000 +11011101 +00001000 +10000000 +11011101 +00001000 +10000111 +00110000 +00000111 +11110000 +11100000 +11100000 +10010011 +00000000 +10010011 +11011101 +00001000 +10001000 +11011101 +00001000 +10001111 +00000000 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +11011110 +00001000 +10000000 +11011110 +00001000 +10000111 +00000000 +00010111 +00000111 +11110100 +11000000 +10010001 +00000100 +10010001 +11011110 +00001000 +10001000 +11011110 +00001000 +10001111 +00000100 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110000 +11011111 +00001000 +10000000 +11011111 +00001000 +10000111 +11000000 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +11011111 +00001000 +10001000 +11011111 +00001000 +10001111 +00000100 +00011011 +00001011 +01010000 +01000000 +11110000 +11000000 +00100111 +11100000 +00001000 +10000000 +11100000 +00001000 +10000111 +11111101 +10010101 +00110000 +11110100 +11000000 +00110000 +11110000 +11001111 +11100000 +00001000 +10001000 +11100000 +00001000 +10001111 +10110011 +10010001 +00000000 +10010001 +00000000 +01011111 +01001111 +11100000 +11100001 +00001000 +10000000 +11100001 +00001000 +10000111 +00110000 +00000111 +11110000 +11100000 +11100000 +10010001 +00001000 +10010001 +11100001 +00001000 +10001000 +11100001 +00001000 +10001111 +00001000 +00010111 +00000111 +11110011 +10010001 +00000000 +10010001 +00000000 +11100010 +00001000 +10000000 +11100010 +00001000 +10000111 +01011001 +01001111 +10000011 +10010001 +00000000 +10010001 +00000000 +10010110 +11100010 +00001000 +10001000 +11100010 +00001000 +10001111 +11100000 +00110000 +00000111 +11110000 +11100000 +11100000 +10010011 +00000000 +11100011 +00001000 +10000000 +11100011 +00001000 +10000111 +10010011 +00000000 +10011011 +11001111 +10011000 +10011010 +10011001 +11001111 +11100011 +00001000 +10001000 +11100011 +00001000 +10001111 +10011010 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +11100100 +00001000 +10000000 +11100100 +00001000 +10000111 +00000100 +00010111 +00000111 +11110000 +11001111 +10011010 +10011010 +10010001 +11100100 +00001000 +10001000 +11100100 +00001000 +10001111 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +00010111 +11100101 +00001000 +10000000 +11100101 +00001000 +10000111 +00000111 +11110000 +11001111 +10011010 +10011010 +10010001 +00000000 +10010001 +11100101 +00001000 +10001000 +11100101 +00001000 +10001111 +00000000 +10010001 +00000100 +10010001 +00000100 +00010111 +00000111 +11110011 +11100110 +00001000 +10000000 +11100110 +00001000 +10000111 +11001111 +10010100 +00011100 +00011100 +00011101 +00011101 +10011010 +10011010 +11100110 +00001000 +10001000 +11100110 +00001000 +10001111 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +11100111 +00001000 +10000000 +11100111 +00001000 +10000111 +00010111 +00000111 +11110011 +00000001 +00000001 +10010010 +00000000 +10010010 +11100111 +00001000 +10001000 +11100111 +00001000 +10001111 +00000000 +10010011 +00000000 +10010011 +00000000 +11001101 +10010001 +00000100 +11101000 +00001000 +10000000 +11101000 +00001000 +10000111 +10010001 +00000100 +10010001 +00000000 +10010001 +00000000 +00011011 +00001011 +11101000 +00001000 +10001000 +11101000 +00001000 +10001111 +01010000 +01000000 +11110100 +11001101 +11001110 +10011010 +11001110 +10011010 +11101001 +00001000 +10000000 +11101001 +00001000 +10000111 +11001110 +10011010 +11001110 +10011010 +11001110 +10011010 +11001110 +10011010 +11101001 +00001000 +10001000 +11101001 +00001000 +10001111 +11001110 +10011010 +11001110 +10011010 +11001110 +10011010 +11001110 +10011010 +11101010 +00001000 +10000000 +11101010 +00001000 +10000111 +11001110 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +11101010 +00001000 +10001000 +11101010 +00001000 +10001111 +00000000 +00011011 +00001011 +01010000 +01000000 +11110000 +11001111 +10011010 +11101011 +00001000 +10000000 +11101011 +00001000 +10000111 +10011010 +00100111 +11111101 +10010101 +00110000 +11110000 +11001111 +10010001 +11101011 +00001000 +10001000 +11101011 +00001000 +10001111 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +00010111 +11101100 +00001000 +10000000 +11101100 +00001000 +10000111 +00000111 +11110100 +11000001 +10010001 +00000000 +10010001 +00000000 +01011000 +11101100 +00001000 +10001000 +11101100 +00001000 +10001111 +01001111 +10000001 +10010001 +00000000 +10010001 +00000000 +10010110 +11100000 +11101101 +00001000 +10000000 +11101101 +00001000 +10000111 +00110000 +00000111 +11110000 +11100000 +11100000 +10010011 +00000000 +10010011 +11101101 +00001000 +10001000 +11101101 +00001000 +10001111 +00000000 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +11101110 +00001000 +10000000 +11101110 +00001000 +10000111 +00000000 +00010111 +00000111 +11110100 +11000001 +10010001 +00000100 +10010001 +11101110 +00001000 +10001000 +11101110 +00001000 +10001111 +00000100 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110000 +11101111 +00001000 +10000000 +11101111 +00001000 +10000111 +11000001 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +11101111 +00001000 +10001000 +11101111 +00001000 +10001111 +00000100 +00011011 +00001011 +01010000 +01000000 +11110000 +11000001 +00101111 +11110000 +00001000 +10000000 +11110000 +00001000 +10000111 +00100111 +11111101 +10010101 +10010001 +00000000 +10010001 +00000000 +10010001 +11110000 +00001000 +10001000 +11110000 +00001000 +10001111 +00000100 +10010001 +00000100 +00010111 +00000111 +11110100 +11000001 +10010001 +11110001 +00001000 +10000000 +11110001 +00001000 +10000111 +00000000 +10010001 +00000000 +01011000 +01001111 +10000001 +10010001 +00000000 +11110001 +00001000 +10001000 +11110001 +00001000 +10001111 +10010001 +00000000 +10010110 +11100000 +00110000 +00000111 +11110000 +11100000 +11110010 +00001000 +10000000 +11110010 +00001000 +10000111 +11100000 +10010011 +00000000 +10010011 +00000000 +10010001 +00000100 +10010001 +11110010 +00001000 +10001000 +11110010 +00001000 +10001111 +00000100 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110100 +11110011 +00001000 +10000000 +11110011 +00001000 +10000111 +11000001 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +11110011 +00001000 +10001000 +11110011 +00001000 +10001111 +00000000 +00010111 +00000111 +11110000 +11000001 +10010001 +00000000 +10010001 +11110100 +00001000 +10000000 +11110100 +00001000 +10000111 +00000000 +10010001 +00000100 +10010001 +00000100 +00011011 +00001011 +01010000 +11110100 +00001000 +10001000 +11110100 +00001000 +10001111 +01000000 +11110000 +11000001 +00101111 +00100111 +11111101 +10010101 +10010001 +11110101 +00001000 +10000000 +11110101 +00001000 +10000111 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +00010111 +11110101 +00001000 +10001000 +11110101 +00001000 +10001111 +00000111 +11110100 +11000000 +10010001 +00000000 +10010001 +00000000 +01011000 +11110110 +00001000 +10000000 +11110110 +00001000 +10000111 +01001111 +10000001 +10010001 +00000000 +10010001 +00000000 +10010110 +11100000 +11110110 +00001000 +10001000 +11110110 +00001000 +10001111 +00110000 +00000111 +11110000 +11100000 +11100000 +10010011 +00000000 +10010011 +11110111 +00001000 +10000000 +11110111 +00001000 +10000111 +00000000 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +11110111 +00001000 +10001000 +11110111 +00001000 +10001111 +00000000 +00010111 +00000111 +11110100 +11000000 +10010001 +00000100 +10010001 +11111000 +00001000 +10000000 +11111000 +00001000 +10000111 +00000100 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110000 +11111000 +00001000 +10001000 +11111000 +00001000 +10001111 +11000000 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +11111001 +00001000 +10000000 +11111001 +00001000 +10000111 +00000100 +00011011 +00001011 +01010000 +01000000 +11110000 +11000000 +00101111 +11111001 +00001000 +10001000 +11111001 +00001000 +10001111 +00100111 +11111101 +10010101 +10010001 +00000000 +10010001 +00000000 +10010001 +11111010 +00001000 +10000000 +11111010 +00001000 +10000111 +00000100 +10010001 +00000100 +00010111 +00000111 +11110100 +10011010 +10011010 +11111010 +00001000 +10001000 +11111010 +00001000 +10001111 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +11111011 +00001000 +10000000 +11111011 +00001000 +10000111 +00010111 +00000111 +11110011 +10010001 +00000000 +10010001 +00000000 +01011000 +11111011 +00001000 +10001000 +11111011 +00001000 +10001111 +01001111 +10000001 +10010001 +00000000 +10010001 +00000000 +10010110 +11100000 +11111100 +00001000 +10000000 +11111100 +00001000 +10000111 +00110000 +00000111 +11110000 +11100000 +11100000 +10010011 +00000000 +10010011 +11111100 +00001000 +10001000 +11111100 +00001000 +10001111 +00000000 +10010001 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +11111101 +00001000 +10000000 +11111101 +00001000 +10000111 +00000000 +00010111 +00000111 +11110000 +10010001 +00000100 +10010001 +00000100 +11111101 +00001000 +10001000 +11111101 +00001000 +10001111 +10010001 +00000000 +10010001 +00000000 +00010111 +00000111 +11110000 +11000000 +11111110 +00001000 +10000000 +11111110 +00001000 +10000111 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +11111110 +00001000 +10001000 +11111110 +00001000 +10001111 +00011011 +00001011 +01010000 +01000000 +11110000 +10011010 +10011010 +10111011 +11111111 +00001000 +10000000 +11111111 +00001000 +10000111 +10111011 +10111011 +00101111 +00100111 +11111101 +10010101 +10111011 +11001101 +11111111 +00001000 +10001000 +11111111 +00001000 +10001111 +10011010 +10011010 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10000000 +00000111 +10000000 +10000000 +00000111 +10000111 +10010001 +00000100 +00010111 +00000111 +11110000 +11001110 +10011010 +10011010 +10000000 +00000111 +10001000 +10000000 +00000111 +10001111 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +10000001 +00000111 +10000000 +10000001 +00000111 +10000111 +00010111 +00000111 +11110011 +11001110 +10011010 +10011010 +10010001 +00000000 +10000001 +00000111 +10001000 +10000001 +00000111 +10001111 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +00010111 +00000111 +10000010 +00000111 +10000000 +10000010 +00000111 +10000111 +11110000 +11001110 +10011010 +10011010 +10010001 +00000000 +10010001 +00000000 +10000010 +00000111 +10001000 +10000010 +00000111 +10001111 +10010001 +00000100 +10010001 +00000100 +00010111 +00000111 +11110011 +11001110 +10000011 +00000111 +10000000 +10000011 +00000111 +10000111 +10011010 +10011010 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10000011 +00000111 +10001000 +10000011 +00000111 +10001111 +10010001 +00000100 +00010111 +00000111 +11110000 +11001111 +10011010 +10011010 +10000100 +00000111 +10000000 +10000100 +00000111 +10000111 +10010001 +00000000 +10010001 +00000000 +10010001 +00000100 +10010001 +00000100 +10000100 +00000111 +10001000 +10000100 +00000111 +10001111 +00010111 +00000111 +11110011 +11001111 +10010001 +00000100 +10010001 +00000100 +10000101 +00000111 +10000000 +10000101 +00000111 +10000111 +10010001 +00000000 +10010001 +00000000 +00011011 +00001011 +01010000 +01000000 +10000101 +00000111 +10001000 +10000101 +00000111 +10001111 +11110000 +11001111 +10011010 +10011010 +11001111 +10010001 +00000100 +10010001 +10000110 +00000111 +10000000 +10000110 +00000111 +10000111 +00000100 +10010001 +00000000 +10010001 +00000000 +00011011 +00001011 +01010000 +10000110 +00000111 +10001000 +10000110 +00000111 +10001111 +01000000 +11110000 +11001110 +10011010 +10011010 +11001110 +10010001 +00000100 +10000111 +00000111 +10000000 +10000111 +00000111 +10000111 +10010001 +00000100 +10010001 +00000000 +10010001 +00000000 +00011011 +00001011 +10000111 +00000111 +10001000 +10000111 +00000111 +10001111 +01010000 +01000000 +11110000 +11001110 +10011010 +10011010 +11001110 +10010001 +10001000 +00000111 +10000000 +10001000 +00000111 +10000111 +00000100 +10010001 +00000100 +10010001 +00000000 +10010001 +00000000 +00011011 +10001000 +00000111 +10001000 +10001000 +00000111 +10001111 +00001011 +01010000 +01000000 +11110000 +11001111 +10011010 +10011010 +11001111 +11100111 diff --git a/src/com/ftdi/usb/FtdiUart.java b/src/com/ftdi/usb/FtdiUart.java index c897b4e..e43b261 100644 --- a/src/com/ftdi/usb/FtdiUart.java +++ b/src/com/ftdi/usb/FtdiUart.java @@ -12,20 +12,23 @@ import java.io.*; */ public class FtdiUart { - private SWIGTYPE_p_ftdi_context context = example.new_ftdi_context(); - - public OutputStream getOutputStream() { return out; } - public InputStream getInputStream() { return in; } + private SWIGTYPE_p_ftdi_context context = FtdiUartNative.new_ftdi_context(); public FtdiUart(int vendor, int product, int baud) throws IOException { - example.ftdi_init(context); - example.ftdi_usb_open(context, vendor, product); - example.ftdi_usb_reset(context); - example.ftdi_set_baudrate(context, baud); - example.ftdi_set_line_property(context, 8, 0, 0); + FtdiUartNative.ftdi_init(context); + FtdiUartNative.ftdi_usb_open(context, vendor, product); + FtdiUartNative.ftdi_usb_reset(context); + FtdiUartNative.ftdi_set_baudrate(context, baud); + FtdiUartNative.ftdi_set_line_property(context, 8, 0, 0); purge(); } + /** the output stream to the uart or dbus pins (depending on mode) */ + public OutputStream getOutputStream() { return out; } + + /** the input stream from the uart or dbus pins (depending on mode) */ + public InputStream getInputStream() { return in; } + /** * Switch to uart mode, with read/write access to four CBUS lines. * This function is used to write to the CBUS lines (re-invoke it to change their state). @@ -35,7 +38,7 @@ public class FtdiUart { * @param cbus_bits a four-bit mask; the bits to assert on the write-enabled CBUS lines */ public synchronized void uart_and_cbus_mode(int cbus_mask, int cbus_bits) throws IOException { - example.ftdi_set_bitmode(context, (short)((cbus_mask << 4) | cbus_bits), (short)0x20); + FtdiUartNative.ftdi_set_bitmode(context, (short)((cbus_mask << 4) | cbus_bits), (short)0x20); } /** @@ -45,20 +48,20 @@ public class FtdiUart { * @param dbus_mask an eight-bit mask; set bit=1 to write to a DBUS line, bit=0 to read from it */ public synchronized void dbus_mode(int dbus_mask) throws IOException { - example.ftdi_set_bitmode(context, (short)dbus_mask, (short)0x01); + FtdiUartNative.ftdi_set_bitmode(context, (short)dbus_mask, (short)0x01); } /** returns the instantaneous value present on the DBUS pins */ public synchronized int readPins() throws IOException { getOutputStream().flush(); byte[] b = new byte[1]; - example.ftdi_read_pins(context, b); + FtdiUartNative.ftdi_read_pins(context, b); return b[0]; } /** purge the on-chip buffers */ public synchronized void purge() throws IOException { - example.ftdi_usb_purge_buffers(context); + FtdiUartNative.ftdi_usb_purge_buffers(context); } private final InputStream in = new InputStream() { @@ -79,7 +82,7 @@ public class FtdiUart { if (len==0) return 0; byte[] b0 = new byte[len]; synchronized(FtdiUart.this) { - result = example.ftdi_read_data(context, b0, len); + result = FtdiUartNative.ftdi_read_data(context, b0, len); } if (result>0) { System.arraycopy(b0, 0, b, off, result); @@ -102,7 +105,7 @@ public class FtdiUart { System.arraycopy(b, off, b2, 0, Math.min(b2.length, len)); int result; synchronized(FtdiUart.this) { - result = example.ftdi_write_data(context, b2, Math.min(b2.length, len)); + result = FtdiUartNative.ftdi_write_data(context, b2, Math.min(b2.length, len)); } off += result; len -= result; diff --git a/src/edu/berkeley/slipway/FtdiBoard.java b/src/edu/berkeley/slipway/FtdiBoard.java index b32ba76..a2a2123 100644 --- a/src/edu/berkeley/slipway/FtdiBoard.java +++ b/src/edu/berkeley/slipway/FtdiBoard.java @@ -10,7 +10,7 @@ import gnu.io.*; public class FtdiBoard extends Board { static { - System.load(new File("build/"+System.mapLibraryName("Ftdi")).getAbsolutePath()); + System.load(new File("build/"+System.mapLibraryName("FtdiUartNative")).getAbsolutePath()); } private final ChipImpl chip; @@ -22,7 +22,10 @@ public class FtdiBoard extends Board { public FtdiBoard() throws Exception { chip = new ChipImpl(); - boot(new InputStreamReader(new FileInputStream("bitstreams/usbdrone.bst"))); + String bstFile = this.getClass().getName(); + bstFile = bstFile.substring(0, bstFile.lastIndexOf('.')); + bstFile = bstFile.replace('.', '/')+"/slipway_drone.bst"; + boot(new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream(bstFile))); in = chip.getInputStream(); out = chip.getOutputStream(); for(int i=0; i<255; i++) out.write(0); diff --git a/src/edu/berkeley/slipway/slipway_drone.c b/src/edu/berkeley/slipway/slipway_drone.c new file mode 100644 index 0000000..884d540 --- /dev/null +++ b/src/edu/berkeley/slipway/slipway_drone.c @@ -0,0 +1,344 @@ +// +// YOU MUST COMPILE THIS WITH -O3 OR THE AVR WILL NOT BE ABLE TO KEEP UP!!!! +// + +//#define F_CPU 3960000 +#define F_CPU 12000000 + +#if !defined(__AVR_AT94K__) +#error you forgot to put -mmcu=at94k on the command line +#endif + +#include +#include +#include +#include + +int err = 0; + +void initUART0(unsigned int baudRate, unsigned int doubleRate) { + UBRRHI = (((baudRate) >> 8) & 0x000F); + UBRR0 = ((baudRate) & 0x00FF); + UCSR0B |= ((1 << RXEN0) | (1 << TXEN0) | (1 << RXCIE0)); + + if (doubleRate) + UCSR0A |= (1 << U2X0); + else + UCSR0A &= ~(1 << U2X0); +} + +#define BUFSIZE (1024) + +inline void portd(int bit, int on) { + /* + if (on) { + PORTD &= ~(1<=BUFSIZE) x=0; return x; } +inline int read_full() { return inc(read_buf_tail)==read_buf_head; } +inline int abs(int x) { return x<0 ? -x : x; } +inline int read_size() { return read_buf_tail (BUFSIZE/2); +} + +inline int write_full() { return inc(write_buf_tail)==write_buf_head; } +inline int write_empty() { return write_buf_head==write_buf_tail; } +inline int write_nearlyFull() { + if (write_buf_tail==write_buf_head) return 0; + if (write_buf_tail < write_buf_head) return (write_buf_head-write_buf_tail) < (BUFSIZE/2); + return (write_buf_tail-write_buf_head) > (BUFSIZE/2); +} + +inline char recv() { + int q; + char ret; + while(read_empty()) cts(1); + ret = read_buf[read_buf_head]; + read_buf_head = inc(read_buf_head); + if (!read_nearlyFull()) cts(1); + return ret; +} + +ISR(SIG_UART0_DATA) { + if (write_empty()) { + UCSR0B &= ~(1 << UDRIE0); + return; + } + char ret = write_buf[write_buf_head]; + write_buf_head = inc(write_buf_head); + UDR0 = (int)ret; + sei(); +} + +void send(char c) { + while (write_full()); + write_buf[write_buf_tail] = c; + write_buf_tail = inc(write_buf_tail); + if (PORTE & (1<<2)) PORTE &= ~(1<<2); + else PORTE |= (1<<2); + UCSR0B |= (1 << UDRIE0); + if (PORTE & (1<<3)) PORTE &= ~(1<<3); + else PORTE |= (1<<3); +} + + +void fpga_interrupts(int on) { + if (on/* && interrupt_count<301*/) { + //FISUA = 0x1; + FISCR = 0x80; + FISUD = 0x08; + } else { + FISUD = 0; + FISCR = 0; + } +} + +void init() { + read_buf_head = 0; + read_buf_tail = 0; + write_buf_head = 0; + write_buf_tail = 0; + //initUART0(1, 0); //for slow board + initUART0(0, 0); //for slow board + //initUART0(0, 1); //for slow board +} + +void conf(int z, int y, int x, int d) { + FPGAX = x; + FPGAY = y; + FPGAZ = z; + FPGAD = d; +} + +void doreset() { + int i; + for(i=0; i<5; i++) { + PORTD = ~0x01; + _delay_ms(50); + PORTD = ~0x02; + _delay_ms(50); + PORTD = ~0x04; + _delay_ms(50); + PORTD = ~0x08; + _delay_ms(50); + } + PORTD = ~0x00; + wdt_enable(WDTO_250MS); + while(1) { } +} + +#define TIMERVAL 100 +int portdc = 0; + +ISR(SIG_FPGA_INTERRUPT15) { + PORTD = portdc++; + interrupt_count++; + //PORTD = ~(interrupt_count & 0xff); + //if (interrupt_count >= 301) fpga_interrupts(0); + //sei(); + fpga_interrupts(1); +} +/* +ISR(SIG_OVERFLOW0) { + fpga_interrupts(0); + PORTD = ~FISUA; + TCNT0 = TIMERVAL; // load the nearest-to-one-second value into the timer0 + TIMSK |= (1<= '0' && c <= '9') return (c - '0'); + if (c >= 'a' && c <= 'f') return ((c - 'a') + 0xa); + if (c >= 'A' && c <= 'F') return ((c - 'A') + 0xa); + return -1; +} + +int main() { + DDRE = (1<<7) | (1<<5) | (1<<4) | (1<<3) | (1<<2); + PORTE = 0; + + init(); + + EIMF = 0xFF; + SREG = INT0; + sei(); + + PORTE &= ~(1<<7); + + int count = 0; + long long bad = 0; + int left = 0; + char v = 0; + long int oldi = 0; + cts(0); + cts(1); + /* + while(1) { + long int i = recv() & 0xff; + //if (i < 0) err = 200; + //if (err < 200) { + long int newi = oldi+1; + if (newi >= 256) newi -= 256; + if (i != newi) err++; + //} + oldi = i; + + send(err >= 10 ? 255 : i); + //send(err); + } + */ + + PORTE |= (1<<3); + PORTE |= (1<<5); + recv(); + send('O'); + send('B'); + send('I'); + send('T'); + send('S'); + send('\n'); + + int x=0, y=0, z=0; + //while(1) send(/*FISUA*/2); + for(;;) { + /* + if (PORTE & (1<<6)) PORTE &= ~(1<<6); + else PORTE |= (1<<6); + */ + int i, d=0; + int r = recv(); + switch(r) { + case 1: + z = recv(); + y = recv(); + x = recv(); + d = recv(); + //portd(1,1); + conf(z, y, x, d); + //portd(1,0); + break; + case 2: + //fpga_interrupts(0); + //portd(1,1); + send(FISUA); + //portd(1,0); + //fpga_interrupts(1); + break; + /* + case 3: + //init_timer(); + break; + case 4: + sending = 1; + break; + case 5: + sending = 0; + break; + case 6: { + int32_t local_interrupt_count = interrupt_count; + interrupt_count = 0; + send((local_interrupt_count >> 24) & 0xff); + send((local_interrupt_count >> 16) & 0xff); + send((local_interrupt_count >> 8) & 0xff); + send((local_interrupt_count >> 0) & 0xff); + fpga_interrupts(1); + break; + } + */ + /* + default: { + if ((r & 0x80) == 0x80) { + switch (r & 0x44) { + case 0x44: z = recv(); break; + case 0x40: z++; break; + case 0x04: z--; break; + } + switch (r & 0x22) { + case 0x22: y = recv(); break; + case 0x20: y++; break; + case 0x02: y--; break; + } + switch (r & 0x11) { + case 0x11: x = recv(); break; + case 0x10: x++; break; + case 0x01: x--; break; + } + d = recv(); + portd(1,1); + conf(z, y, x, d); + portd(1,0); + break; + } + die(); + } + */ + } + } + return 0; + +} + -- 1.7.10.4