题目名称:erweima
通过下载附件我们拿到了一个zip文件
打开flag1文本通过观察附件得到附件为一个文本 全由01组成
根据题目名称erweima得知这个应该是是通过PIL库将01转换为像素点来构造二维码,根据文本长度160000并编写脚本
from PIL import Image
from zlib import *
MAX = 400
pic = Image.new("RGB",(MAX,MAX))
str ="0100011101000111001011100100110100000110001011100000011010011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000111111111111111111111111111111111111111000000000000000000001111111110000000000111111111100000000000000000000000000000111111111100000000001111111110000000000000000000000000000001111111111111111111000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000011111111111111111111111111111111111111100000000000000000000111111111000000000011111111110000000000000000000000000000011111111110000000000111111111000000000000000000000000000000111111111111111111100000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111111111111111111111110000000000000000000011111111100000000001111111111000000000000000000000000000001111111111000000000011111111100000000000000000000000000000011111111111111111110000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000111111111111111111111111111111111111111000000000000000000001111111110000000000111111111100000000000000000000000000000111111111100000000001111111110000000000000000000000000000001111111111111111111000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000011111111111111111111111111111111111111100000000000000000000111111111000000000011111111110000000000000000000000000000011111111110000000000111111111000000000000000000000000000000111111111111111111100000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111111111111111111111110000000000000000000011111111100000000001111111111000000000000000000000000000001111111111000000000011111111100000000000000000000000000000011111111111111111110000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000111111111111111111111111111111111111111000000000000000000001111111110000000000111111111100000000000000000000000000000111111111100000000001111111110000000000000000000000000000001111111111111111111000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000011111111111111111111111111111111111111100000000000000000000111111111000000000011111111110000000000000000000000000000011111111110000000000111111111000000000000000000000000000000111111111111111111100000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111111111111111111111110000000000000000000011111111100000000001111111111000000000000000000000000000001111111111000000000011111111100000000000000000000000000000011111111111111111110000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000111111111111111111111111111111111111111000000000000000000001111111110000000000111111111100000000000000000000000000000111111111100000000001111111110000000000000000000000000000001111111111111111111000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111000000000000000000001111111111000000000000000000011111111110000000000111111111111111111100000000001111111111111111111111111111111111111110000000000000000000111111111100000000001111111111111111111111111111111111111110000000000111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111100000000000000000000111111111100000000000000000001111111111000000000011111111111111111110000000000111111111111111111111111111111111111111000000000000000000011111111110000000000111111111111111111111111111111111111111000000000011111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111110000000000000000000011111111110000000000000000000111111111100000000001111111111111111111000000000011111111111111111111111111111111111111100000000000000000001111111111000000000011111111111111111111111111111111111111100000000001111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111000000000000000000001111111111000000000000000000011111111110000000000111111111111111111100000000001111111111111111111111111111111111111110000000000000000000111111111100000000001111111111111111111111111111111111111110000000000111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111100000000000000000000111111111100000000000000000001111111111000000000011111111111111111110000000000111111111111111111111111111111111111111000000000000000000011111111110000000000111111111111111111111111111111111111111000000000011111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111110000000000000000000011111111110000000000000000000111111111100000000001111111111111111111000000000011111111111111111111111111111111111111100000000000000000001111111111000000000011111111111111111111111111111111111111100000000001111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111000000000000000000001111111111000000000000000000011111111110000000000111111111111111111100000000001111111111111111111111111111111111111110000000000000000000111111111100000000001111111111111111111111111111111111111110000000000111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111100000000000000000000111111111100000000000000000001111111111000000000011111111111111111110000000000111111111111111111111111111111111111111000000000000000000011111111110000000000111111111111111111111111111111111111111000000000011111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111110000000000000000000011111111110000000000000000000111111111100000000001111111111111111111000000000011111111111111111111111111111111111111100000000000000000001111111111000000000011111111111111111111111111111111111111100000000001111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111000000000000000000001111111111000000000000000000011111111110000000000111111111111111111100000000001111111111111111111111111111111111111110000000000000000000111111111100000000001111111111111111111111111111111111111110000000000111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000000000000000111111111111111111100000000000000000000000000000011111111100000000000000000000111111111111111111100000000000000000000111111111100000000011111111111111111111000000000000000000000000000001111111111000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000000000000011111111111111111110000000000000000000000000000001111111110000000000000000000011111111111111111110000000000000000000011111111110000000001111111111111111111100000000000000000000000000000111111111100000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000000000000001111111111111111111000000000000000000000000000000111111111000000000000000000001111111111111111111000000000000000000001111111111000000000111111111111111111110000000000000000000000000000011111111110000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000000000000000111111111111111111100000000000000000000000000000011111111100000000000000000000111111111111111111100000000000000000000111111111100000000011111111111111111111000000000000000000000000000001111111111000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000000000000011111111111111111110000000000000000000000000000001111111110000000000000000000011111111111111111110000000000000000000011111111110000000001111111111111111111100000000000000000000000000000111111111100000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000000000000001111111111111111111000000000000000000000000000000111111111000000000000000000001111111111111111111000000000000000000001111111111000000000111111111111111111110000000000000000000000000000011111111110000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000000000000000111111111111111111100000000000000000000000000000011111111100000000000000000000111111111111111111100000000000000000000111111111100000000011111111111111111111000000000000000000000000000001111111111000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000000000000011111111111111111110000000000000000000000000000001111111110000000000000000000011111111111111111110000000000000000000011111111110000000001111111111111111111100000000000000000000000000000111111111100000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000000000000001111111111111111111000000000000000000000000000000111111111000000000000000000001111111111111111111000000000000000000001111111111000000000111111111111111111110000000000000000000000000000011111111110000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000001111111111000000000000000000011111111111111111111111111111111111111111111111110000000000111111111100000000011111111110000000000000000000000000000011111111111111111111111111111100000000011111111110000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000111111111100000000000000000001111111111111111111111111111111111111111111111111000000000011111111110000000001111111111000000000000000000000000000001111111111111111111111111111110000000001111111111000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000011111111110000000000000000000111111111111111111111111111111111111111111111111100000000001111111111000000000111111111100000000000000000000000000000111111111111111111111111111111000000000111111111100000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000001111111111000000000000000000011111111111111111111111111111111111111111111111110000000000111111111100000000011111111110000000000000000000000000000011111111111111111111111111111100000000011111111110000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000111111111100000000000000000001111111111111111111111111111111111111111111111111000000000011111111110000000001111111111000000000000000000000000000001111111111111111111111111111110000000001111111111000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000011111111110000000000000000000111111111111111111111111111111111111111111111111100000000001111111111000000000111111111100000000000000000000000000000111111111111111111111111111111000000000111111111100000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000001111111111000000000000000000011111111111111111111111111111111111111111111111110000000000111111111100000000011111111110000000000000000000000000000011111111111111111111111111111100000000011111111110000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000111111111100000000000000000001111111111111111111111111111111111111111111111111000000000011111111110000000001111111111000000000000000000000000000001111111111111111111111111111110000000001111111111000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000011111111110000000000000000000111111111111111111111111111111111111111111111111100000000001111111111000000000111111111100000000000000000000000000000111111111111111111111111111111000000000111111111100000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000001111111111000000000000000000011111111111111111111111111111111111111111111111110000000000111111111100000000011111111110000000000000000000000000000011111111111111111111111111111100000000011111111110000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000000000000011111111111111111110000000000000000000011111111111111111110000000000000000000011111111110000000000000000000111111111111111111111111111111111111111111111111111111111110000000001111111111000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000000000000001111111111111111111000000000000000000001111111111111111111000000000000000000001111111111000000000000000000011111111111111111111111111111111111111111111111111111111111000000000111111111100000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000000000000000111111111111111111100000000000000000000111111111111111111100000000000000000000111111111100000000000000000001111111111111111111111111111111111111111111111111111111111100000000011111111110000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000000000000011111111111111111110000000000000000000011111111111111111110000000000000000000011111111110000000000000000000111111111111111111111111111111111111111111111111111111111110000000001111111111000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000000000000001111111111111111111000000000000000000001111111111111111111000000000000000000001111111111000000000000000000011111111111111111111111111111111111111111111111111111111111000000000111111111100000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000000000000000111111111111111111100000000000000000000111111111111111111100000000000000000000111111111100000000000000000001111111111111111111111111111111111111111111111111111111111100000000011111111110000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000000000000011111111111111111110000000000000000000011111111111111111110000000000000000000011111111110000000000000000000111111111111111111111111111111111111111111111111111111111110000000001111111111000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111110000000000111111111000000000000000000001111111111111111111000000000000000000001111111111111111111000000000000000000001111111111000000000000000000011111111111111111111111111111111111111111111111111111111111000000000111111111100000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111000000000011111111100000000000000000000111111111111111111100000000000000000000111111111111111111100000000000000000000111111111100000000000000000001111111111111111111111111111111111111111111111111111111111100000000011111111110000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111100000000001111111110000000000000000000011111111111111111110000000000000000000011111111111111111110000000000000000000011111111110000000000000000000111111111111111111111111111111111111111111111111111111111110000000001111111111000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000111111111111111111110000000000111111111000000000011111111111111111111111111111000000000000000000000000000000111111111000000000011111111110000000000111111111111111111100000000000000000000111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111100000000000000000000000000000000000000011111111111111111111000000000011111111100000000001111111111111111111111111111100000000000000000000000000000011111111100000000001111111111000000000011111111111111111110000000000000000000011111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111110000000000000000000000000000000000000001111111111111111111100000000001111111110000000000111111111111111111111111111110000000000000000000000000000001111111110000000000111111111100000000001111111111111111111000000000000000000001111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000111111111111111111110000000000111111111000000000011111111111111111111111111111000000000000000000000000000000111111111000000000011111111110000000000111111111111111111100000000000000000000111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111100000000000000000000000000000000000000011111111111111111111000000000011111111100000000001111111111111111111111111111100000000000000000000000000000011111111100000000001111111111000000000011111111111111111110000000000000000000011111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111110000000000000000000000000000000000000001111111111111111111100000000001111111110000000000111111111111111111111111111110000000000000000000000000000001111111110000000000111111111100000000001111111111111111111000000000000000000001111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000111111111111111111110000000000111111111000000000011111111111111111111111111111000000000000000000000000000000111111111000000000011111111110000000000111111111111111111100000000000000000000111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111100000000000000000000000000000000000000011111111111111111111000000000011111111100000000001111111111111111111111111111100000000000000000000000000000011111111100000000001111111111000000000011111111111111111110000000000000000000011111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111110000000000000000000000000000000000000001111111111111111111100000000001111111110000000000111111111111111111111111111110000000000000000000000000000001111111110000000000111111111100000000001111111111111111111000000000000000000001111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000111111111111111111110000000000111111111000000000011111111111111111111111111111000000000000000000000000000000111111111000000000011111111110000000000111111111111111111100000000000000000000111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111100000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111110000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000111111111100000000000000000000000000000111111111100000000000000000001111111111000000000011111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000011111111110000000000000000000000000000011111111110000000000000000000111111111100000000001111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000001111111111000000000000000000000000000001111111111000000000000000000011111111110000000000111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000111111111100000000000000000000000000000111111111100000000000000000001111111111000000000011111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000011111111110000000000000000000000000000011111111110000000000000000000111111111100000000001111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000001111111111000000000000000000000000000001111111111000000000000000000011111111110000000000111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000111111111100000000000000000000000000000111111111100000000000000000001111111111000000000011111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000011111111110000000000000000000000000000011111111110000000000000000000111111111100000000001111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000001111111111000000000000000000000000000001111111111000000000000000000011111111110000000000111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000111111111100000000000000000000000000000111111111100000000000000000001111111111000000000011111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000001111111111111111111000000000011111111111111111110000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000011111111110000000000000000000111111111100000000000000000000000000000000000000000000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000111111111111111111100000000001111111111111111111000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000001111111111000000000000000000011111111110000000000000000000000000000000000000000000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000011111111111111111110000000000111111111111111111100000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000111111111100000000000000000001111111111000000000000000000000000000000000000000000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000001111111111111111111000000000011111111111111111110000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000011111111110000000000000000000111111111100000000000000000000000000000000000000000000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000111111111111111111100000000001111111111111111111000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000001111111111000000000000000000011111111110000000000000000000000000000000000000000000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000011111111111111111110000000000111111111111111111100000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000111111111100000000000000000001111111111000000000000000000000000000000000000000000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000001111111111111111111000000000011111111111111111110000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000011111111110000000000000000000111111111100000000000000000000000000000000000000000000000000000000000111111111000000000011111111111111111111111111111000000000011111111110000000000111111111111111111100000000001111111111111111111000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000001111111111000000000000000000011111111110000000000000000000000000000000000000000000000000000000000011111111100000000001111111111111111111111111111100000000001111111111000000000011111111111111111110000000000111111111111111111100000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000111111111100000000000000000001111111111000000000000000000000000000000000000000000000000000000000001111111110000000000111111111111111111111111111110000000000111111111100000000001111111111111111111000000000011111111111111111110000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000011111111110000000000000000000111111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000001111111111111111111111111111111111111110000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000111111111100000000001111111111000000000000000000000000000001111111111111111111000000000011111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000111111111111111111111111111111111111111000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000011111111110000000000111111111100000000000000000000000000000111111111111111111100000000001111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000011111111111111111111111111111111111111100000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000001111111111000000000011111111110000000000000000000000000000011111111111111111110000000000111111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000001111111111111111111111111111111111111110000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000111111111100000000001111111111000000000000000000000000000001111111111111111111000000000011111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000111111111111111111111111111111111111111000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000011111111110000000000111111111100000000000000000000000000000111111111111111111100000000001111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000011111111111111111111111111111111111111100000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000001111111111000000000011111111110000000000000000000000000000011111111111111111110000000000111111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000001111111111111111111111111111111111111110000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000111111111100000000001111111111000000000000000000000000000001111111111111111111000000000011111111110000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000111111111111111111111111111111111111111000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000011111111110000000000111111111100000000000000000000000000000111111111111111111100000000001111111111000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000011111111111111111111111111111111111111100000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000001111111111000000000011111111110000000000000000000000000000011111111111111111110000000000111111111100000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000001111111111111111111111111111111111111110000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000111111111100000000001111111111000000000000000000000000000001111111111111111111000000000011111111110000000000000000000000000000000000000000000000000111111111100000000011111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000111111111111111111111111111111111111111111111111100000000000000000000000000000111111111100000000000000000001111111111111111111111111111100000000001111111111111111111111111111111111111110000000000111111111111111111100000000001111111111000000000000000000000000000000000000000000000000011111111110000000001111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000011111111111111111111111111111111111111111111111110000000000000000000000000000011111111110000000000000000000111111111111111111111111111110000000000111111111111111111111111111111111111111000000000011111111111111111110000000000111111111100000000000000000000000000000000000000000000000001111111111000000000111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000001111111111111111111111111111111111111111111111111000000000000000000000000000001111111111000000000000000000011111111111111111111111111111000000000011111111111111111111111111111111111111100000000001111111111111111111000000000011111111110000000000000000000000000000000000000000000000000111111111100000000011111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000111111111111111111111111111111111111111111111111100000000000000000000000000000111111111100000000000000000001111111111111111111111111111100000000001111111111111111111111111111111111111110000000000111111111111111111100000000001111111111000000000000000000000000000000000000000000000000011111111110000000001111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000011111111111111111111111111111111111111111111111110000000000000000000000000000011111111110000000000000000000111111111111111111111111111110000000000111111111111111111111111111111111111111000000000011111111111111111110000000000111111111100000000000000000000000000000000000000000000000001111111111000000000111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000001111111111111111111111111111111111111111111111111000000000000000000000000000001111111111000000000000000000011111111111111111111111111111000000000011111111111111111111111111111111111111100000000001111111111111111111000000000011111111110000000000000000000000000000000000000000000000000111111111100000000011111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000111111111111111111111111111111111111111111111111100000000000000000000000000000111111111100000000000000000001111111111111111111111111111100000000001111111111111111111111111111111111111110000000000111111111111111111100000000001111111111000000000000000000000000000000000000000000000000011111111110000000001111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000011111111111111111111111111111111111111111111111110000000000000000000000000000011111111110000000000000000000111111111111111111111111111110000000000111111111111111111111111111111111111111000000000011111111111111111110000000000111111111100000000000000000000000000000000000000000000000001111111111000000000111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000001111111111111111111111111111111111111111111111111000000000000000000000000000001111111111000000000000000000011111111111111111111111111111000000000011111111111111111111111111111111111111100000000001111111111111111111000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000011111111110000000000000000000000000000000000000001111111111111111111111111111100000000001111111111000000000011111111100000000000000000000000000000011111111111111111110000000000111111111111111111111111111110000000000000000000011111111100000000001111111111111111111100000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000001111111111000000000000000000000000000000000000000111111111111111111111111111110000000000111111111100000000001111111110000000000000000000000000000001111111111111111111000000000011111111111111111111111111111000000000000000000001111111110000000000111111111111111111110000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000111111111100000000000000000000000000000000000000011111111111111111111111111111000000000011111111110000000000111111111000000000000000000000000000000111111111111111111100000000001111111111111111111111111111100000000000000000000111111111000000000011111111111111111111000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000011111111110000000000000000000000000000000000000001111111111111111111111111111100000000001111111111000000000011111111100000000000000000000000000000011111111111111111110000000000111111111111111111111111111110000000000000000000011111111100000000001111111111111111111100000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000001111111111000000000000000000000000000000000000000111111111111111111111111111110000000000111111111100000000001111111110000000000000000000000000000001111111111111111111000000000011111111111111111111111111111000000000000000000001111111110000000000111111111111111111110000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000111111111100000000000000000000000000000000000000011111111111111111111111111111000000000011111111110000000000111111111000000000000000000000000000000111111111111111111100000000001111111111111111111111111111100000000000000000000111111111000000000011111111111111111111000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000011111111110000000000000000000000000000000000000001111111111111111111111111111100000000001111111111000000000011111111100000000000000000000000000000011111111111111111110000000000111111111111111111111111111110000000000000000000011111111100000000001111111111111111111100000000000000000001111111111000000000000000000000000000000000000000111111111100000000000000000000000000000000000000011111111110000000001111111111000000000000000000000000000000000000000111111111111111111111111111110000000000111111111100000000001111111110000000000000000000000000000001111111111111111111000000000011111111111111111111111111111000000000000000000001111111110000000000111111111111111111110000000000000000000111111111100000000000000000000000000000000000000011111111110000000000000000000000000000000000000001111111111000000000111111111100000000000000000000000000000000000000011111111111111111111111111111000000000011111111110000000000111111111000000000000000000000000000000111111111111111111100000000001111111111111111111111111111100000000000000000000111111111000000000011111111111111111111000000000000000000011111111110000000000000000000000000000000000000001111111111000000000000000000000000000000000000000111111111100000000011111111110000000000000000000000000000000000000001111111111111111111111111111100000000001111111111000000000011111111100000000000000000000000000000011111111111111111110000000000111111111111111111111111111110000000000000000000011111111100000000001111111111111111111100000000000000000001111111111000000000000000000000000000000000000000111111111100000000001111111110000000000000000000000000000001111111110000000000111111111100000000000000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111000000000011111111110000000000000000000111111111111111111111111111111111111111000000000000000000001111111111111111111111111111100000000000000000000000000000000000000011111111110000000000111111111000000000000000000000000000000111111111000000000011111111110000000000000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111111111111110000000000111111111111111111100000000001111111111000000000000000000011111111111111111111111111111111111111100000000000000000000111111111111111111111111111110000000000000000000000000000000000000001111111111000000000011111111100000000000000000000000000000011111111100000000001111111111000000000000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111111111111111000000000011111111111111111110000000000111111111100000000000000000001111111111111111111111111111111111111110000000000000000000011111111111111111111111111111000000000000000000000000000000000000000111111111100000000001111111110000000000000000000000000000001111111110000000000111111111100000000000000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111000000000011111111110000000000000000000111111111111111111111111111111111111111000000000000000000001111111111111111111111111111100000000000000000000000000000000000000011111111110000000000111111111000000000000000000000000000000111111111000000000011111111110000000000000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111111111111110000000000111111111111111111100000000001111111111000000000000000000011111111111111111111111111111111111111100000000000000000000111111111111111111111111111110000000000000000000000000000000000000001111111111000000000011111111100000000000000000000000000000011111111100000000001111111111000000000000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111111111111111000000000011111111111111111110000000000111111111100000000000000000001111111111111111111111111111111111111110000000000000000000011111111111111111111111111111000000000000000000000000000000000000000111111111100000000001111111110000000000000000000000000000001111111110000000000111111111100000000000000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111000000000011111111110000000000000000000111111111111111111111111111111111111111000000000000000000001111111111111111111111111111100000000000000000000000000000000000000011111111110000000000111111111000000000000000000000000000000111111111000000000011111111110000000000000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111111111111110000000000111111111111111111100000000001111111111000000000000000000011111111111111111111111111111111111111100000000000000000000111111111111111111111111111110000000000000000000000000000000000000001111111111000000000011111111100000000000000000000000000000011111111100000000001111111111000000000000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111111111111111000000000011111111111111111110000000000111111111100000000000000000001111111111111111111111111111111111111110000000000000000000011111111111111111111111111111000000000000000000000000000000000000000111111111100000000001111111110000000000000000000000000000001111111110000000000111111111100000000000000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111000000000011111111110000000000000000000111111111111111111111111111111111111111000000000000000000001111111111111111111111111111100000000000000000000000000000000000000000000000001111111111000000000111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111100000000001111111111111111111000000000011111111111111111111000000000000000000011111111110000000000111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000111111111100000000011111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111110000000000111111111111111111100000000001111111111111111111100000000000000000001111111111000000000011111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000011111111110000000001111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111000000000011111111111111111110000000000111111111111111111110000000000000000000111111111100000000001111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000001111111111000000000111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111100000000001111111111111111111000000000011111111111111111111000000000000000000011111111110000000000111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000111111111100000000011111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111110000000000111111111111111111100000000001111111111111111111100000000000000000001111111111000000000011111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000011111111110000000001111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111000000000011111111111111111110000000000111111111111111111110000000000000000000111111111100000000001111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000001111111111000000000111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111100000000001111111111111111111000000000011111111111111111111000000000000000000011111111110000000000111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000111111111100000000011111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111110000000000111111111111111111100000000001111111111111111111100000000000000000001111111111000000000011111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000011111111110000000001111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111000000000011111111111111111110000000000111111111111111111110000000000000000000111111111100000000001111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000001111111111000000000111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111100000000001111111111111111111000000000011111111111111111111000000000000000000011111111110000000000111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000001111111111000000000011111111111111111110000000000111111111111111111111111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111100000000011111111111111111111000000000000000000000000000000000000000111111111111111111100000000001111111111000000000000000000011111111111111111111000000000000000000000000000000000000000111111111100000000001111111111111111111000000000011111111111111111111111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111111111111110000000001111111111111111111100000000000000000000000000000000000000011111111111111111110000000000111111111100000000000000000001111111111111111111100000000000000000000000000000000000000011111111110000000000111111111111111111100000000001111111111111111111111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111111111111111000000000111111111111111111110000000000000000000000000000000000000001111111111111111111000000000011111111110000000000000000000111111111111111111110000000000000000000000000000000000000001111111111000000000011111111111111111110000000000111111111111111111111111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111100000000011111111111111111111000000000000000000000000000000000000000111111111111111111100000000001111111111000000000000000000011111111111111111111000000000000000000000000000000000000000111111111100000000001111111111111111111000000000011111111111111111111111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111111111111110000000001111111111111111111100000000000000000000000000000000000000011111111111111111110000000000111111111100000000000000000001111111111111111111100000000000000000000000000000000000000011111111110000000000111111111111111111100000000001111111111111111111111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111111111111111000000000111111111111111111110000000000000000000000000000000000000001111111111111111111000000000011111111110000000000000000000111111111111111111110000000000000000000000000000000000000001111111111000000000011111111111111111110000000000111111111111111111111111111110000000000000000000000000000000000000001111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111100000000011111111111111111111000000000000000000000000000000000000000111111111111111111100000000001111111111000000000000000000011111111111111111111000000000000000000000000000000000000000111111111100000000001111111111111111111000000000011111111111111111111111111111000000000000000000000000000000000000000111111111100000000001111111111111111111111111111111111111111111111111111111111111111111111111111110000000001111111111111111111100000000000000000000000000000000000000011111111111111111110000000000111111111100000000000000000001111111111111111111100000000000000000000000000000000000000011111111110000000000111111111111111111100000000001111111111111111111111111111100000000000000000000000000000000000000011111111110000000000111111111111111111111111111111111111111111111111111111111111111111111111111111000000000111111111111111111110000000000000000000000000000000000000001111111111111111111000000000011111111110000000000000000000111111111111111111110000000000000000000000000000000000000001111111111000000000000000000011111111111111111111111111111100000000000000000001111111111000000000011111111100000000001111111111111111111100000000000000000000000000000111111111100000000011111111111111111111000000000000000000000000000000000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111100000000000000000001111111111111111111111111111110000000000000000000111111111100000000001111111110000000000111111111111111111110000000000000000000000000000011111111110000000001111111111111111111100000000000000000000000000000000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111110000000000000000000111111111111111111111111111111000000000000000000011111111110000000000111111111000000000011111111111111111111000000000000000000000000000001111111111000000000111111111111111111110000000000000000000000000000000000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111111000000000000000000011111111111111111111111111111100000000000000000001111111111000000000011111111100000000001111111111111111111100000000000000000000000000000111111111100000000011111111111111111111000000000000000000000000000000000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111100000000000000000001111111111111111111111111111110000000000000000000111111111100000000001111111110000000000111111111111111111110000000000000000000000000000011111111110000000001111111111111111111100000000000000000000000000000000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111110000000000000000000111111111111111111111111111111000000000000000000011111111110000000000111111111000000000011111111111111111111000000000000000000000000000001111111111000000000111111111111111111110000000000000000000000000000000000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111111000000000000000000011111111111111111111111111111100000000000000000001111111111000000000011111111100000000001111111111111111111100000000000000000000000000000111111111100000000011111111111111111111000000000000000000000000000000000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000111111111100000000000000000001111111111111111111111111111110000000000000000000111111111100000000001111111110000000000111111111111111111110000000000000000000000000000011111111110000000001111111111111111111100000000000000000000000000000000000000011111111111111111111111111111000000000011111111110000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000011111111110000000000000000000111111111111111111111111111111000000000000000000011111111110000000000111111111000000000011111111111111111111000000000000000000000000000001111111111000000000111111111111111111110000000000000000000000000000000000000001111111111111111111111111111100000000001111111111000000000000000000000000000000000000000000000000111111111100000000000000000000000000000000000000000000000001111111111000000000000000000011111111111111111111111111111100000000000000000001111111111000000000011111111100000000001111111111111111111100000000000000000000000000000111111111100000000011111111111111111111000000000000000000000000000000000000000111111111111111111111111111110000000000111111111100000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111000000000011111111110000000001111111111111111111100000000000000000000000000000000000000000000000001111111111111111111111111111111111111110000000001111111111111111111111111111110000000000000000000111111111111111111111111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111100000000001111111111000000000111111111111111111110000000000000000000000000000000000000000000000000111111111111111111111111111111111111111000000000111111111111111111111111111111000000000000000000011111111111111111111111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111110000000000111111111100000000011111111111111111111000000000000000000000000000000000000000000000000011111111111111111111111111111111111111100000000011111111111111111111111111111100000000000000000001111111111111111111111111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111000000000011111111110000000001111111111111111111100000000000000000000000000000000000000000000000001111111111111111111111111111111111111110000000001111111111111111111111111111110000000000000000000111111111111111111111111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111100000000001111111111000000000111111111111111111110000000000000000000000000000000000000000000000000111111111111111111111111111111111111111000000000111111111111111111111111111111000000000000000000011111111111111111111111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111110000000000111111111100000000011111111111111111111000000000000000000000000000000000000000000000000011111111111111111111111111111111111111100000000011111111111111111111111111111100000000000000000001111111111111111111111111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111000000000011111111110000000001111111111111111111100000000000000000000000000000000000000000000000001111111111111111111111111111111111111110000000001111111111111111111111111111110000000000000000000111111111111111111111111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111100000000001111111111000000000111111111111111111110000000000000000000000000000000000000000000000000111111111111111111111111111111111111111000000000111111111111111111111111111111000000000000000000011111111111111111111111111111111111111100000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111110000000000111111111100000000011111111111111111111000000000000000000000000000000000000000000000000011111111111111111111111111111111111111100000000011111111111111111111111111111100000000000000000001111111111111111111111111111111111111110000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111000000000011111111110000000001111111111111111111100000000000000000000000000000000000000000000000001111111111111111111111111111111111111110000000001111111111111111111111111111110000000000000000000111111111111111111111111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111100000000000000000000000000000111111111100000000001111111111000000000000000000000000000000000000000111111111111111111100000000000000000000111111111111111111111111111111111111111111111111000000000011111111111111111111000000000000000000011111111111111111111111111111111111111100000000001111111111000000000111111111111111111110000000000000000000000000000000000000000000000000000000000011111111111111111110000000000000000000000000000011111111110000000000111111111100000000000000000000000000000000000000011111111111111111110000000000000000000011111111111111111111111111111111111111111111111100000000001111111111111111111100000000000000000001111111111111111111111111111111111111110000000000111111111100000000011111111111111111111000000000000000000000000000000000000000000000000000000000001111111111111111111000000000000000000000000000001111111111000000000011111111110000000000000000000000000000000000000001111111111111111111000000000000000000001111111111111111111111111111111111111111111111110000000000111111111111111111110000000000000000000111111111111111111111111111111111111111000000000011111111110000000001111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111100000000000000000000000000000111111111100000000001111111111000000000000000000000000000000000000000111111111111111111100000000000000000000111111111111111111111111111111111111111111111111000000000011111111111111111111000000000000000000011111111111111111111111111111111111111100000000001111111111000000000111111111111111111110000000000000000000000000000000000000000000000000000000000011111111111111111110000000000000000000000000000011111111110000000000111111111100000000000000000000000000000000000000011111111111111111110000000000000000000011111111111111111111111111111111111111111111111100000000001111111111111111111100000000000000000001111111111111111111111111111111111111110000000000111111111100000000011111111111111111111000000000000000000000000000000000000000000000000000000000001111111111111111111000000000000000000000000000001111111111000000000011111111110000000000000000000000000000000000000001111111111111111111000000000000000000001111111111111111111111111111111111111111111111110000000000111111111111111111110000000000000000000111111111111111111111111111111111111111000000000011111111110000000001111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111100000000000000000000000000000111111111100000000001111111111000000000000000000000000000000000000000111111111111111111100000000000000000000111111111111111111111111111111111111111111111111000000000011111111111111111111000000000000000000011111111111111111111111111111111111111100000000001111111111000000000111111111111111111110000000000000000000000000000000000000000000000000000000000011111111111111111110000000000000000000000000000011111111110000000000111111111100000000000000000000000000000000000000011111111111111111110000000000000000000011111111111111111111111111111111111111111111111100000000001111111111111111111100000000000000000001111111111111111111111111111111111111110000000000111111111100000000011111111111111111111000000000000000000000000000000000000000000000000000000000001111111111111111111000000000000000000000000000001111111111000000000011111111110000000000000000000000000000000000000001111111111111111111000000000000000000001111111111111111111111111111111111111111111111110000000000111111111111111111110000000000000000000111111111111111111111111111111111111111000000000011111111110000000001111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111100000000000000000000000000000111111111100000000001111111111000000000000000000000000000000000000000111111111111111111100000000000000000000111111111111111111111111111111111111111111111111000000000011111111111111111111000000000000000000011111111111111111111111111111111111111100000000001111111111000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000111111111111111111111111111110000000000111111111111111111100000000001111111111000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000000000000000000000000000000000000000000000000000011111111111111111111111111111000000000011111111111111111111111111111000000000011111111111111111110000000000111111111100000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111000000000000000000000000000000000000000000000000000000000001111111111111111111111111111100000000001111111111111111111111111111100000000001111111111111111111000000000011111111110000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000111111111111111111111111111110000000000111111111111111111100000000001111111111000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000000000000000000000000000000000000000000000000000011111111111111111111111111111000000000011111111111111111111111111111000000000011111111111111111110000000000111111111100000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111000000000000000000000000000000000000000000000000000000000001111111111111111111111111111100000000001111111111111111111111111111100000000001111111111111111111000000000011111111110000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000111111111111111111111111111110000000000111111111111111111100000000001111111111000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000000000000000000000000000000000000000000000000000011111111111111111111111111111000000000011111111111111111111111111111000000000011111111111111111110000000000111111111100000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111000000000000000000000000000000000000000000000000000000000001111111111111111111111111111100000000001111111111111111111111111111100000000001111111111111111111000000000011111111110000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000001111111111000000000011111111100000000000000000000111111111100000000011111111111111111111111111111100000000000000000000000000000000000000000000000011111111110000000000000000000000000000011111111110000000000000000000000000000011111111111111111111111111111100000000011111111111111111111000000000000000000011111111110000000000111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
i=0
for y in range(0,MAX):
for x in range(0,MAX):
if(str[i] == '1'):
pic.putpixel([x,y],(0,0,0))
else:pic.putpixel([x,y],(255,255,255))
i = i+1
pic.show()
pic.save("flag.png")
运行脚本得到一张图片打开发现是二维码的上半部分
然后我们打开flag2附件 发现里面有张加密的png文件,尝试伪加密未果我们尝试生成字典爆破,最终得到压缩包密码为pp8
打开png文件发现是张很奇怪的图片
尝试binwalk发现并不存在附件
于是我们觉得是png宽高,使用crc32脚本进行爆破生成图片打开得到二维码后半段
import zlib
import struct
import binascii
file = 'flag2 .png'
fr = open(file, 'rb').read()
data = bytearray(fr[12:29])
# crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
crc32key = struct.unpack('>I', fr[29:33])[0] & 0xffffffff
print(crc32key)
# data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00')
n = 4096
for w in range(n):
width = bytearray(struct.pack('>i', w))
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x + 4] = width[x]
data[x + 8] = height[x]
# print(data)
crc32result = zlib.crc32(data)
if crc32result == crc32key:
print(crc32key)
print(width, height)
print(data)
newpic = bytearray(fr)
for x in range(4):
newpic[x + 16] = width[x]
newpic[x + 20] = height[x]
fw = open(file + '.png', 'wb')
fw.write(newpic)
fw.close
得到图像为这样
我们将这俩张二维码进行拼接扫码得到flag
FLAG:flag{adca24b024aeaecc74ed901e2426486c)