[mapserver] 02/11: Imported Upstream version 7.0.1

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Thu Feb 25 22:00:49 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository mapserver.

commit 4661a0d758eaa40c0fe53196f6028fefa389d2f6
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Thu Feb 25 20:33:45 2016 +0100

    Imported Upstream version 7.0.1
---
 .gitmodules                            |    0
 .travis.yml                            |   87 -
 CMakeLists.txt                         |  124 +-
 COMMITERS                              |   29 -
 Makefile                               |   15 +-
 astyle.sh                              |   10 -
 genhtml.patch                          |   43 -
 github_issue_no_activity_closer.py     |  123 -
 install-msautotest.sh                  |   14 -
 mapagg.cpp                             |    3 +
 mapaxisorder.csv                       | 1788 -------
 mapaxisorder.h                         | 8206 ++++++++++++++++----------------
 mapaxisorder.sh                        |  110 -
 mapcontour.c                           |  135 +-
 mapdraw.c                              |   91 +-
 mapdrawgdal.c                          |   42 +-
 mapfile.c                              |   33 +-
 mapfile.h                              |    6 +-
 mapgeomtransform.c                     |   39 +-
 mapimageio.c                           |   13 +-
 mapjoin.c                              |    1 +
 maplabel.c                             |   13 +-
 maplayer.c                             |   13 +-
 maplegend.c                            |    4 +-
 maplexer.c                             | 4007 ++++++++--------
 maplexer.l                             |    1 +
 mapogcfilter.c                         |    1 +
 mapogcsld.c                            |  239 +-
 mapogr.cpp                             |   32 +-
 mapogroutput.c                         |   72 +-
 maporaclespatial.c                     |   12 +-
 mappostgis.c                           |    5 +-
 mapprimitive.c                         |    6 +-
 mapproject.c                           |    6 +-
 maprasterquery.c                       |   40 +-
 maprendering.c                         |    1 -
 mapresample.c                          |   95 +-
 mapscript/csharp/examples/drawquery.cs |    2 +-
 mapscript/java/javamodule.i            |    8 +-
 mapscript/mserror.i                    |    2 +-
 mapscript/php/map.c                    |    2 +-
 mapscript/php/nmake.opt                |   35 -
 mapscript/php/php_mapscript.c          |   13 +-
 mapscript/python/setup.py              |   13 +
 mapscript/ruby/rbmodule.i              |   12 +-
 mapserver-config-version.cmake.in      |   11 +
 mapserver-config.cmake.in              |   18 +
 mapshape.c                             |    1 +
 mapstring.c                            |   10 +-
 maptemplate.c                          |    7 +-
 mapthread.c                            |    2 +-
 maptime.c                              |    4 +
 maputil.c                              |   10 +-
 mapuvraster.c                          |   30 +-
 mapv8.cpp                              |    2 +
 mapwcs20.c                             |   30 +-
 mapwfs.c                               |    2 +
 mapwms.c                               |   15 +-
 mapwmslayer.c                          |    2 +-
 nmake.opt                              |  856 ----
 print-test-results.sh                  |   65 -
 release-notes.sh                       |   11 -
 run-test-suite.sh                      |   22 -
 run_code_coverage_upload.sh            |   37 -
 scalebar.c                             |    1 +
 stablemerge.sh                         |   29 -
 xmlmapfile/mapfile.xsd                 |    4 +-
 67 files changed, 6982 insertions(+), 9733 deletions(-)

diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index e69de29..0000000
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 9a2e3ed..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,87 +0,0 @@
-language: php
-php:
-  - 5.5
-  - 5.6
-
-env:
-  global:
-# Encrypted private key of the deploy key of the github.com/mapserver/coverage.git repository
-     - secure: "B1Tt18Q4F82+cXlj4fBoZDiyWbXLuzpJD6jt828qiS/i9ws8IEqYF7x3V4fo\nAnO1pZ84hdIOEfcSj2tFnysCPZ+zpOPzN2ma7iVEgmFTPNXf8pSx8CTXtiI/\nohUEcnARRCyuCK7cjEP5m4iWGazI+Pc563X4g67ToRPkLhIdrEg="
-     - secure: "OvxCriM3Dwa0wkZ+nQL8e6nuMrG2hrfET+QEPRps/fPSGSR+yRWo04hBqRn2\niBTJGpi0JvaTN0pxjCx2I/+4jbzkNt+J6IqSz2KTUzseiWA3tyAN8uel6fIo\nkS90UJ7OeKUuYkvzfVwYn6pxM6b+CN6+DTs0dlWgxyMg/AtVdz8="
-     - secure: "Vcf+jOzNtXapBf8qfM8N0ZTarQ9B7qqvG8X8fLJP5M2uDO2BrruMIZPpxwcL\nGMBkkZZGuofeqOs+BNxwnO1l4YOC+JUzQGQnExbEi02QDVzdR4+3sUvruXtL\nU/ppXvjghchgqvVp8QMjiVkUG1Ja1qwwCDM0GSN/PTfBy+Pjav0="
-     - secure: "FcCFPhMjgeAcSMFiTaZC6cp3IrAP9PvpAiuiKchG2smlQe85nvwdUbap7aFu\nJ8ujnuqzQJ1pc2+GAtCn0OZZ1Bh9mW31FEESiU74TphaKOFY8qAKrR7TamWx\n5XLqHvNu16LlOy/Cy8G82dMCGzPJCadM/ZwdI/RsWwRqjHgIHv0="
-     - secure: "Zs2+0yF2P6WWVT4o1kmgkSRmHUL1dkAYk+tHU0Piie+czblouMmqdJwsBNP6\nQF454VinL3Pu2tgbDAF10V+HknW/0ZevvmcrNa9k+Hjry8VtMNdM7jMqv4it\nYU5IGR55wfRg5q6c1jRxIPwc3Ssh2VOlz7HByppPG6i37prYO8I="
-     - secure: "rnFScHTmX9VDMUquOlP1FPGCr/GpCu64xw4m5AC5nIP/BCSdFSak02cc/JgC\nJPvuoud5xftyBspPRDB2eBP4YXOcPuSEdysibpGGBagKj7faCNQmCZSDd3zR\nWvLJwlfuQ39PoTIHU6O/TCX4U+v/gm4WJMwm1Tip1ID+wqqyoNU="
-     - secure: "h57JVvts9A0XF9ckGGokZwuD1hTBDOS0o1Yq3lD0Xd2BeJrgAXwgnKsBnBNP\nEMTBfRLGVyTgR8hiamySlWUUyVVQXMuLvKu1JnlrnZltMC8YGH4QEQwc7Twj\ni2GmsouUUHGOHU10U1F+YllSWZJjfLa6kgjkMNHg617c+PZfPLg="
-     - secure: "gB/9lGc5o6xeJSLler3s5ZmP0Kn+x1knSw5BIUQkke7rzWlMIaeZHqEf1iQm\n49Q2Aepo0I+RdAaGNlPHR3KrUc3P3/ZokWZ1zv449Mh0OKLNrLSE+CruuVYj\n2XcOrLC2vjSsMfaM9520spdjbvVpcTUKJho9kGRTPKLs8YbGLv8="
-     - secure: "px+guXOAtfmiBRub6sgvzlidKEmCNVthyAcaRHRzdtl6j7XoXHPGL2QHb8YH\nxV/wtDnLFIZi1eoShpLwABGvqQ1KQ20X+nz8FWZDnmDK3PXVBTqaUMyarmEB\nT7UohY94d8S2NqWJqeiOqVfMBOsIve9N1g3mcSUAlYMngEYoVt0="
-     - secure: "jPxrLpA61LxMH2a8k9P22l3/7Yx+Lhzmrne61xkFGo1F9oqwHap88AKm0gP3\nEApgDmCVRvHgetfEFIxapF+6yPZinE0EsqJonKS1NCeKjs91LMsM7Dr3UiU3\nNaco2w3B0v6dDOdG1JhAV6N/CqdWXz85hooSWsLrWpYMtPbOfJQ="
-     - secure: "dFvmnenj189QmbFdTW2ckHPbYojouowtz8cURDrR/2BiU0a3GUUDHP0h9O+c\nLDfJ1g03hsMr8m/45QdpL/x2lROimczFNu/U+uS8Vtja1z4SYaOMDjW4p3pq\nqPzQc/WmlpBY8wmfCH1WqmRRPvrfKceEDtVhWXruxpSZUx/OvoY="
-     - secure: "TmOZmx8kyEOCUOMmWKuPpKzqBpbCKMOJpankHhhEAwJ00iJ3bMzdZk7dFsMV\nq9sk2nAgkARsVakfhiUvM516CKgf3J5rskUq+AQs6JdFP8w9A3LKowLHxlqg\nCvhQtOm3ff1EVQKeDOfgUxaI20Ulq6sl+b1/uq2W1v25IqwR1ps="
-     - secure: "rYU47VfOGgheYhF/Xy6DM9iRi+NPSoyfMQ9B0Hoznm7k/TI1ojEky/wnIp3A\n+UdkoNo0xYzLZdjY4b1UBukMTKZJXVpYHs+KwKMhJQU3UaXpWEWo0Hqr8fU1\nOf7nspF27o79xcc3R+Okuz7L2J8+jD6Ggi2NW5vvp2S+jQW4Py4="
-     - secure: "PXqhXu3cK9nf80Pv4AgqS2R8HVLAHVGozqfAeAgPDOZQYUCbAyEm/QZ5WbPb\nzNQAYuEFVjt59H0b3fOM5rUSX8Igx0NeG9rxG6WYyitXZWinXyeKeZ5yKn1f\nI/gIZPVH1r1H30+TCOH9sD9rH/2eRzb5ycDGKccZfv5/MocwKwg="
-     - secure: "KK6YzOtwmbd3UbfiavTowvUkTGXN23ZMONwP7OpTTDZ+1/XVBeiuGLJAdHsn\nLPOImlytI9SavQekA6w4EaPb9VLRoC+O1CXOlllEjxfo0LojXDBKCaoyXOx3\nu1K8aXjyeZ2dPagjz06NV6r+y9tGypHrR7qXArVANRkzsajpABM="
-     - secure: "XH1YshS/QJTOWxlccDjHVCSnN3IDYqug8hw+xOpNXeKR/VbZ82lv6s1gURHh\nKI6jDPGUFiD/OA37SDmArT/CbZ2zDJtSB8YNDr8w/wInlp7vnWBoRWlFQ3eP\nsJDexlZTCvo3TUogHFpLrbq9WuEXLCJ/yfYq1zJfFvipDWR6MhQ="
-     - secure: "QoM0cJU0QioMMcD8Vs4xD04+jMGrTmbxxESpR4fwllAhP0ZpZt8E1qPQV9Hq\nVNzRVF/FLMlmDL8LzAYOFzVZASpb0X0l5KmxqRN3rRkSDc/LLSQf+701W00T\nJLAUXB05JPvJE5QBM5VgqNivO1JAC/Y0D83Pio8fHxYFUG6M9DM="
-     - secure: "LufnBePmcGefhwb3ofhBiPWdiGjGMa8G83HNdYv4BGMNyJqGa4rVaFg5yPa2\nLZx0JPwEoWK+i3QuI2ug37bSSBMf0130sUOn+E+Vy4fHeGrCdt3WrwSjACq5\nGgaBQ1JN6zLI8Gt4ekcOBOZNme6a+eMoW6asAhroIPoU1Jo/5o0="
-     - secure: "LZorvKqv/ncsk6sZS5NaZch/msx3HCHcy3e6BEJwudQHnF5iLz8TGbJFL9UL\nXjVX6H+CmnOQW9qbMEWTfMVXuLEXCVpX0YoQuhYwYEbhdSmz8PFJlv8BxxJg\n3OOZo0QgD2ZZ/KBenj3XIVVKeS2jHBUhXKP8G6D88xmdt3GtzRY="
-     - secure: "JmHFSkvxfoY6vfSM35K2eC4X0GN9n1SWapBzIFT70rz3PNKAY2QAGlvcMI2W\nZZ5JouXHHESXR+mujllzZRcx9ZJQ67k65OxG+a1ID+rivTO1A0kU36chBy8Q\nNgskyAD68gixuYts+4MXb1biXKdEO9AmUTu3zDvgqo5vcTIjvPU="
-     - secure: "QMjLOqEDegfPTTlm1f4SX2/77XLqAjpPrQ483EGRY59/xrS1aI0l9jTgpgTv\nZ/JyuYOX+JkbQBeW1ZuAhaXH1Q2AZ7Sun+adJ0B4yLZTHFiiy2mIFe7CcUCi\np+WgxwSPvi+uZUvEEAczKFWDKvM8qyUwZoHqaYj7VU4mComfsyE="
-     - secure: "RynRoItVw0gkM5OznZYhoDuukwOXVVXS5sF75G53FpoobXQYaUR20BoPFqtT\nHptuGei3f23Afiq3j807GWNoOxqVIaIoijMVxEBk6/xu43DYqUO3Nx4fB6Bk\nHdp4qNTfTVtsqy7IuXzbB3koS5xc1DUPHFDYh10pH5xWItUxlEc="
-     - secure: "UVtqSIfAKYSW0J06QEo+HveY+krqc7rEvnO5SNVzcQCFahnfWOIec6WQPd6O\nF/wPRjcC/zxg8PK/u5RHOKDNY6/nFNnRE7b8+MkxKcWZiFy0TipGjr57n6GW\nzgBGFi4Kw8XqFkC4hKC2eqiA8iYC+xCVzLNtnT3zp0fBG/nSrR8="
-     - secure: "jGoUxEIa0Mi1RZU+nZpgO9c5vw82Yl4s1h+0bimQ17OA44mmOD4UQ4ygkH+1\nKsDwJ1JxP85K2EVZdwI4EswHCH1gYRzHyO0Mo6r9LOB8aGb60mq4BCQj80oI\nlw/i4K037sb0zqys7uu0J0UD9Xep0F49uYBdrnXl5l/fLzHTm1w="
-     - secure: "CzFKm/g+wLUdsu4ecEx6v93ZS/CM0/3hcBxPtt/nRbmF95KW+QZMIpwUbmsH\nIZhljPkWjKOceB1sotdJjXWzEuPMj64rh9cJyWw2WO7eGG0NtbovZPUEZF4P\nz6sa3KcjNnLYAMq3Op29p23DLaZWzJqy6yzFvYQF8lxUYIyhLDU="
-     - secure: "fwO9vY9pIHgsCoETgQCkTVzKguuItFwLnkWOzZtzvt8fiJw2/ZafycnsTJMc\nh3/jZpn1+K+dQr7jMks9vKTXLq5101Z4SBbxaa0bt9NjyGlL72gf8sB331Oh\nLZ/E/415jeRT8sFoYNvKOfL+rtqqHaimJkaS/XvRUfru/zrb5Rw="
-     - secure: "TN6ig2qgH6EFGEttDtD9rxj2bH3BUJA4rJafjOXiAdQUVcH9E6lWeIaorzy9\n5Empsi/iC2rXF9i+JwE+OreUh47NL3P9jQN8dNkRmyLiuGpVVmreXynLydsS\nmaxPVwRKKSkL1PR54ICQ/Blw0vR27AqlvxO/gLcESG9Xu3Isa4o="
-     - secure: "BacSp+HDt0fEiSElLIzfTxi72sjO1VZkQc2/+AEJqYnGmBse1eofV9XRSlfd\nfm2qDXER34y2PerxBL5EmF3D0kG8vhBANOtHTHw5LlTR8xa/MJIMZag6zw7q\nBacSmiRNbw9XpTN+lcYvzrKFaf29exBvdKCGBv7qdMzLcEMxBVw="
-     - secure: "Bj/9iVBA6DGVcGRdbt3bQms8VglgSjdhI7IwvRkO3Gfvq0FTg1Hu8nodAiwM\nrfMfHzvTGNZudAkBRmPE6xZtIbID6v89S8CqEx3iGU+qbvni2nVt1SzEppb4\n8oZLKlZf3dCthrR2rpIdVMcccWhW3AjDfHKO9OlV2VR90NkWKz4="
-     - secure: "OJqQvNnWc0MWNOxsyhtfnn6XLj3Ssmcl+nRAp2KBwI691HvXMDsqmIXBEjq1\nql+iuNn7sxn9v+ooGXmrFS9CHndncmtKEvNzdi1HKlJhEAG0+MCYnwYwaQHr\n+6HhCnLoZ2wiE+OANFjodkQRNQ4VyATOEn5WFnp56CEtiFQiNzM="
-
-compiler:
-  - gcc
-  - clang
-
-before_install:
-  - mkdir tmp
-  - cd tmp
-  - wget http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.38.tar.bz2
-  - tar xjf harfbuzz-0.9.38.tar.bz2
-  - cd harfbuzz-0.9.38
-  - ./configure --without-cairo --without-glib --without-icu
-  - make -j3
-  - sudo make install && sudo ldconfig
-  - cd ../..
-  - sudo mv /etc/apt/sources.list.d/pgdg-source.list* /tmp
-  - sudo apt-get  remove postgis libpq5 libpq-dev postgresql-9.1-postgis postgresql-9.2-postgis postgresql-9.3-postgis postgresql-9.1 postgresql-9.2 postgresql-9.3 libgdal1
-  - sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
-  - sudo apt-get update
-  - sudo apt-get install bison flex python-lxml libfribidi-dev swig cmake librsvg2-dev colordiff postgis postgresql-9.1 postgresql-9.1-postgis-2.1 postgresql-9.1-postgis-2.1-scripts libpq-dev libpng12-dev libjpeg-dev libgif-dev libgeos-dev libgd2-xpm-dev libfreetype6-dev libfcgi-dev libcurl4-gnutls-dev libcairo2-dev libgdal1-dev libproj-dev libxml2-dev python-dev php5-dev libexempi-dev lcov lftp
-  - sudo pip install git+git://github.com/tbonfort/cpp-coveralls.git@extensions
-  - ./install-msautotest.sh
-  - cd msautotest
-  - ./create_postgis_test_data.sh
-  - python -m SimpleHTTPServer &> /dev/null &
-  - cd ..
-  - touch maplexer.l
-  - touch mapparser.y
-
-
-script:
-  - ./run-test-suite.sh
-
-after_success:
-# Only run coverage when it is safe to do so (not on pull requests), and only on master branch
-  - echo "$TRAVIS_SECURE_ENV_VARS"
-  - echo "$TRAVIS_BRANCH"
-  - sh -c 'if test "$TRAVIS_SECURE_ENV_VARS" = "true" -a "$TRAVIS_BRANCH" = "master"; then echo "run coverage"; ./run_code_coverage_upload.sh; fi'
-  - coveralls --exclude renderers --exclude mapscript --exclude apache --exclude build/mapscript/mapscriptJAVA_wrap.c --exclude build/mapscript/mapscriptPYTHON_wrap.c --exclude shp2img.c --exclude legend.c --exclude scalebar.c --exclude msencrypt.c --exclude sortshp.c --exclude shptreevis.c --exclude shptree.c --exclude testexpr.c --exclude sym2img.c --exclude testcopy.c --exclude shptreetst.c --exclude tile4ms.c --extension .c --extension .cpp
-
-notifications:
-  email:
-    recipients:
-      - thomas.bonfort at gmail.com
-  irc:
-    channels:
-      - "irc.freenode.org#mapserver"
-    use_notice: true
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ff893a8..3788c1a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,7 +17,7 @@ include(CheckCSourceCompiles)
 
 set (MapServer_VERSION_MAJOR 7)
 set (MapServer_VERSION_MINOR 0)
-set (MapServer_VERSION_REVISION 0)
+set (MapServer_VERSION_REVISION 1)
 set (MapServer_VERSION_SUFFIX "")
 
 set(TARGET_VERSION_MAJOR ${MapServer_VERSION_MAJOR})
@@ -37,6 +37,24 @@ if (APPLE)
   set(CMAKE_FIND_FRAMEWORK "LAST")
 endif (APPLE)
 
+# Offer the user the choice of overriding the installation directories
+set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
+set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
+set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
+if(WIN32 AND NOT CYGWIN)
+  set(DEF_INSTALL_CMAKE_DIR CMake)
+else()
+  set(DEF_INSTALL_CMAKE_DIR share/mapserver/cmake)
+endif()
+set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
+
+# Make relative paths absolute (needed later on)
+foreach(p LIB BIN INCLUDE CMAKE)
+  set(var INSTALL_${p}_DIR)
+  if(NOT IS_ABSOLUTE "${${var}}")
+    set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
+  endif()
+endforeach()
 
 macro (ms_link_libraries)
   if(BUILD_DYNAMIC)
@@ -135,7 +153,7 @@ option(WITH_MSSQL2008 "include mssql 2008 database input support as plugin" OFF)
 option(WITH_EXEMPI "include xmp output metadata support" OFF)
 option(WITH_XMLMAPFILE "include native xml mapfile support (requires libxslt/libexslt)" OFF)
 option(WITH_V8 "include javacript v8 scripting" OFF)
-option(WITH_PIXMAN "use pixman for layer compositing operations" OFF)
+option(WITH_PIXMAN "use (experimental) support for pixman for layer compositing operations" OFF)
 
 option(BUILD_STATIC "Also build a static version of mapserver" OFF)
 option(LINK_STATIC_LIBMAPSERVER "Link to static version of libmapserver (also for mapscripts)" OFF)
@@ -246,6 +264,15 @@ mapgeomtransform.c mapogroutput.c mapwfslayer.c mapagg.cpp mapkml.cpp
 mapgeomutil.cpp mapkmlrenderer.cpp fontcache.c textlayout.c maputfgrid.cpp
 mapogr.cpp mapcontour.c mapsmoothing.c mapv8.cpp ${REGEX_SOURCES} kerneldensity.c)
 
+set(mapserver_HEADERS
+cgiutil.h dejavu-sans-condensed.h dxfcolor.h fontcache.h hittest.h mapagg.h
+mapaxisorder.h mapcopy.h mapentities.h maperror.h mapfile.h mapgml.h maphash.h
+maphttp.h mapio.h mapkmlrenderer.h maplibxml2.h mapogcfilter.h mapogcsld.h
+mapoglcontext.h mapoglrenderer.h mapowscommon.h mapows.h mapparser.h
+mappostgis.h mapprimitive.h mapproject.h mapraster.h mapregex.h mapresample.h
+mapserver-api.h mapserver.h mapserv.h mapshape.h mapsymbol.h maptemplate.h
+mapthread.h maptile.h maptime.h maptree.h maputfgrid.h mapwcs.h uthash.h)
+
 if(BUILD_DYNAMIC)
   add_library(mapserver SHARED ${mapserver_SOURCES} ${agg_SOURCES} ${v8_SOURCES})
   set_target_properties( mapserver  PROPERTIES
@@ -299,6 +326,7 @@ find_package(PNG)
 if(PNG_FOUND)
   include_directories(${PNG_INCLUDE_DIR})
   ms_link_libraries( ${PNG_LIBRARIES})
+  list(APPEND ALL_INCLUDE_DIRS ${PNG_INCLUDE_DIR})
   set(USE_PNG 1)
 else(PNG_FOUND)
   report_mandatory_not_found(PNG)
@@ -308,6 +336,7 @@ find_package(JPEG)
 if(JPEG_FOUND)
   include_directories(${JPEG_INCLUDE_DIR})
   ms_link_libraries( ${JPEG_LIBRARY})
+  list(APPEND ALL_INCLUDE_DIRS ${JPEG_INCLUDE_DIR})
   set(USE_JPEG 1)
 else(JPEG_FOUND)
   report_mandatory_not_found(JPEG)
@@ -319,6 +348,7 @@ if(NOT FREETYPE_FOUND)
 endif(NOT FREETYPE_FOUND)
 include_directories(${FREETYPE_INCLUDE_DIR})
 ms_link_libraries( ${FREETYPE_LIBRARY})
+list(APPEND ALL_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR})
 
 
 if(WITH_PROJ)
@@ -328,6 +358,7 @@ if(WITH_PROJ)
  else(NOT PROJ_FOUND)
     include_directories(${PROJ_INCLUDE_DIR})
     ms_link_libraries( ${PROJ_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${PROJ_INCLUDE_DIR})
     set (USE_PROJ 1)
  endif(NOT PROJ_FOUND)
 endif (WITH_PROJ)
@@ -337,6 +368,7 @@ if(WITH_PIXMAN)
   if(PIXMAN_FOUND)
     include_directories(${PIXMAN_INCLUDE_DIR})
     ms_link_libraries(${PIXMAN_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${PIXMAN_INCLUDE_DIR})
     set (USE_PIXMAN 1)
   else(PIXMAN_FOUND)
     report_optional_not_found(PIXMAN)
@@ -358,6 +390,7 @@ if(WITH_FRIBIDI)
  else(NOT FRIBIDI_FOUND)
     include_directories(${FRIBIDI_INCLUDE_DIR})
     ms_link_libraries( ${FRIBIDI_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${FRIBIDI_INCLUDE_DIR})
     set (USE_FRIBIDI 1)
     if(FRIBIDI_LEGACY)
       message(WARNING "Old Fribidi found, upgrade recommended")
@@ -372,6 +405,7 @@ if(WITH_HARFBUZZ)
  else(NOT HARFBUZZ_FOUND)
     include_directories(${HARFBUZZ_INCLUDE_DIR})
     ms_link_libraries( ${HARFBUZZ_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${HARFBUZZ_INCLUDE_DIR})
     set (USE_HARFBUZZ 1)
  endif(NOT HARFBUZZ_FOUND)
 endif (WITH_HARFBUZZ)
@@ -389,6 +423,7 @@ if(WITH_ICONV)
   if(ICONV_FOUND)
     include_directories(${ICONV_INCLUDE_DIR})
     ms_link_libraries( ${ICONV_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${ICONV_INCLUDE_DIR})
     set (USE_ICONV 1)
   else(ICONV_FOUND)
     report_optional_not_found(ICONV)
@@ -405,6 +440,7 @@ if(WITH_CAIRO)
   if(CAIRO_FOUND)
     include_directories(${CAIRO_INCLUDE_DIRS})
     ms_link_libraries( ${CAIRO_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${CAIRO_INCLUDE_DIR})
     set (USE_CAIRO 1)
   else(CAIRO_FOUND)
     report_optional_not_found(CAIRO)
@@ -416,6 +452,7 @@ if(WITH_MYSQL)
   if(MYSQL_FOUND)
     include_directories(${MYSQL_INCLUDE_DIR})
     ms_link_libraries( ${MYSQL_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${MYSQL_INCLUDE_DIR})
     set (USE_MYSQL 1)
   else(MYSQL_FOUND)
     report_optional_not_found(MYSQL)
@@ -433,6 +470,7 @@ if(WITH_ORACLESPATIAL OR WITH_ORACLE_PLUGIN)
   find_package(Oracle)
   if(ORACLE_FOUND)
     include_directories(${ORACLE_INCLUDE_DIR})
+    list(APPEND ALL_INCLUDE_DIRS ${ORACLE_INCLUDE_DIR})
   else(ORACLE_FOUND)
     report_optional_not_found(ORACLESPATIAL)
     #FIXME: error message here could be misleading, only states ORACLESPATIAL whereas
@@ -459,6 +497,7 @@ if(WITH_MSSQL2008)
 	add_library(msplugin_mssql2008 MODULE mapmssql2008.c)
 	target_link_libraries(msplugin_mssql2008 ${ODBC_LIBRARY} ${MAPSERVER_LIBMAPSERVER})
     set_target_properties(msplugin_mssql2008 PROPERTIES COMPILE_FLAGS "-DUSE_MSSQL2008_PLUGIN -DUSE_MSSQL2008")
+    list(APPEND ALL_INCLUDE_DIRS ${ODBC_INCLUDE_DIR})
 	set (USE_MSSQL2008 1)
   else(ODBC_FOUND)
     report_optional_not_found(ODBC)
@@ -470,6 +509,7 @@ if(WITH_FCGI)
   if(FCGI_FOUND)
     include_directories(${FCGI_INCLUDE_DIR})
     target_link_libraries(mapserv ${FCGI_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${FCGI_INCLUDE_DIR})
     set (USE_FASTCGI 1)
   else(FCGI_FOUND)
     report_optional_not_found(FCGI)
@@ -481,6 +521,7 @@ if(WITH_GEOS)
   if(GEOS_FOUND)
     include_directories(${GEOS_INCLUDE_DIR})
     ms_link_libraries( ${GEOS_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${GEOS_INCLUDE_DIR})
     set (USE_GEOS 1)
   else(GEOS_FOUND)
     report_optional_not_found(GEOS)
@@ -500,6 +541,7 @@ if(WITH_POSTGIS)
     include_directories(${POSTGRESQL_INCLUDE_DIR})
     ms_link_libraries( ${POSTGRESQL_LIBRARY})
     CHECK_LIBRARY_EXISTS(pq "PQserverVersion" POSTGRESQL_LIBRARY POSTGIS_HAS_SERVER_VERSION)
+    list(APPEND ALL_INCLUDE_DIRS ${POSTGRESQL_INCLUDE_DIR})
     set (USE_POSTGIS 1)
   else(POSTGRESQL_FOUND)
     report_optional_not_found(POSTGIS)
@@ -511,6 +553,7 @@ if(WITH_GDAL)
   if(GDAL_FOUND)
     include_directories(${GDAL_INCLUDE_DIR})
     ms_link_libraries( ${GDAL_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${GDAL_INCLUDE_DIR})
     set (USE_GDAL 1)
   else(GDAL_FOUND)
     report_optional_not_found(GDAL)
@@ -525,6 +568,7 @@ if(WITH_SVGCAIRO)
   if(SVGCAIRO_FOUND)
     include_directories(${SVG_INCLUDE_DIR} ${SVGCAIRO_INCLUDE_DIR})
     ms_link_libraries( ${SVG_LIBRARY} ${SVGCAIRO_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${SVG_INCLUDE_DIR} ${SVGCAIRO_INCLUDE_DIR})
     set (USE_SVG_CAIRO 1)
   else(SVGCAIRO_FOUND)
     report_optional_not_found(SVGCAIRO)
@@ -539,8 +583,10 @@ if(WITH_RSVG)
   if(RSVG_FOUND AND GOBJECT_FOUND)
     include_directories(${RSVG_INCLUDE_DIRS})
     ms_link_libraries( ${RSVG_LIBRARY} )
+    list(APPEND ALL_INCLUDE_DIRS ${RSVG_INCLUDE_DIRS})
     include_directories(${GOBJECT_INCLUDE_DIRS})
     ms_link_libraries( ${GOBJECT_LIBRARY} )
+    list(APPEND ALL_INCLUDE_DIRS ${GOBJECT_INCLUDE_DIRS})
     set (USE_RSVG 1)
   else(RSVG_FOUND AND GOBJECT_FOUND)
     report_optional_not_found(RSVG)
@@ -555,6 +601,7 @@ if(WITH_OGR)
     if(GDAL_FOUND)
       include_directories(${GDAL_INCLUDE_DIR})
       ms_link_libraries( ${GDAL_LIBRARY})
+      list(APPEND ALL_INCLUDE_DIRS ${GDAL_INCLUDE_DIR})
       set (USE_OGR 1)
     else(GDAL_FOUND)
       message(SEND_ERROR "GDAL library could not be found and is needed for OGR support.
@@ -574,6 +621,7 @@ if(WITH_CURL)
    if(CURL_FOUND)
      include_directories(${CURL_INCLUDE_DIR})
      ms_link_libraries( ${CURL_LIBRARY})
+     list(APPEND ALL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
      set(USE_CURL 1)
    else(CURL_FOUND)
      report_optional_not_found(CURL)
@@ -652,6 +700,7 @@ if(WITH_LIBXML2)
       set(LIBXML2_LIBRARY ${LIBXML2_LIBRARIES})
     endif()
     ms_link_libraries( ${LIBXML2_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIR})
     set (USE_LIBXML2 1)
   else(LIBXML2_FOUND)
     report_optional_not_found(LIBXML2)
@@ -716,6 +765,7 @@ if(WITH_XMLMAPFILE)
     endif()
     include_directories(${LIBXSLT_INCLUDE_DIR})
     ms_link_libraries( ${LIBXSLT_LIBRARY} ${LIBXSLT_EXSLT_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${LIBXSLT_INCLUDE_DIR})
     set(USE_XMLMAPFILE 1)
   else(LIBXSLT_FOUND)
     message(SEND_ERROR "Xml Mapfile support requires XSLT support which was not found.
@@ -731,6 +781,7 @@ if(WITH_GIF)
   if(GIF_FOUND)
     include_directories(${GIF_INCLUDE_DIR})
     ms_link_libraries( ${GIF_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${GIF_INCLUDE_DIR})
     set(USE_GIF 1)
   else(GIF_FOUND)
     report_optional_not_found(GIF)
@@ -742,6 +793,7 @@ if(WITH_EXEMPI)
   if(LIBEXEMPI_FOUND)
     include_directories(${LIBEXEMPI_INCLUDE_DIR})
     ms_link_libraries( ${LIBEXEMPI_LIBRARY})
+    list(APPEND ALL_INCLUDE_DIRS ${LIBEXEMPI_INCLUDE_DIR})
     set(USE_EXEMPI 1)
   else(LIBEXEMPI_FOUND)
     report_optional_not_found(EXEMPI)
@@ -759,6 +811,7 @@ if(WITH_V8)
     SET(USE_V8_MAPSCRIPT 1)
     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
     INCLUDE_DIRECTORIES(${V8_INCLUDE})
+    list(APPEND ALL_INCLUDE_DIRS ${V8_INCLUDE})
     MS_LINK_LIBRARIES( ${V8_LIBS})
   ELSE(V8_FOUND)
     MESSAGE(SEND_ERROR "V8 JavaScript support requested but not found.
@@ -817,7 +870,11 @@ configure_file (
   "${PROJECT_BINARY_DIR}/mapserver-version.h"
   )
 
-
+if(BUILD_DYNAMIC)
+  set_target_properties(mapserver PROPERTIES
+    PUBLIC_HEADER "${mapserver_HEADERS};${PROJECT_BINARY_DIR}/mapserver-config.h;${PROJECT_BINARY_DIR}/mapserver-version.h"
+  )
+endif(BUILD_DYNAMIC)
 
 macro(status_optional_component component enabled libpath)
   if("${enabled}" EQUAL "1")
@@ -895,7 +952,7 @@ status_optional_feature("Apache Module (Experimental)" "${USE_APACHE_MODULE}")
 
 message(STATUS "")
 message(STATUS "Will install files to ${CMAKE_INSTALL_PREFIX}")
-message(STATUS "Will install libraries to ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+message(STATUS "Will install libraries to ${INSTALL_LIB_DIR}")
 
 
 include_directories("${PROJECT_BINARY_DIR}")
@@ -908,20 +965,67 @@ endif(WIN32)
 
 #INSTALL(FILES mapserver-api.h ${PROJECT_BINARY_DIR}/mapserver-version.h DESTINATION include)
 if(USE_ORACLE_PLUGIN)
-   INSTALL(TARGETS msplugin_oracle DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   INSTALL(TARGETS msplugin_oracle DESTINATION ${INSTALL_LIB_DIR})
 endif(USE_ORACLE_PLUGIN)
 
 if(USE_MSSQL2008)
-   INSTALL(TARGETS msplugin_mssql2008 DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   INSTALL(TARGETS msplugin_mssql2008 DESTINATION ${INSTALL_LIB_DIR})
 endif(USE_MSSQL2008)
 
 
-INSTALL(TARGETS sortshp shptree shptreevis msencrypt legend scalebar tile4ms shptreetst shp2img mapserv RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+INSTALL(TARGETS sortshp shptree shptreevis msencrypt legend scalebar tile4ms shptreetst shp2img mapserv
+        RUNTIME DESTINATION ${INSTALL_BIN_DIR} COMPONENT bin
+)
 
 if(BUILD_STATIC)
-   INSTALL(TARGETS mapserver_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   INSTALL(TARGETS mapserver_static
+           DESTINATION ${INSTALL_LIB_DIR} COMPONENT staticlib
+   )
 endif(BUILD_STATIC)
 if(BUILD_DYNAMIC)
-   INSTALL(TARGETS mapserver DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   INSTALL(TARGETS mapserver
+           EXPORT mapserverTargets
+           ARCHIVE DESTINATION ${INSTALL_LIB_DIR} COMPONENT shlib
+           LIBRARY DESTINATION ${INSTALL_LIB_DIR} COMPONENT shlib
+           PUBLIC_HEADER DESTINATION ${INSTALL_INCLUDE_DIR}/mapserver COMPONENT dev
+   )
+
+   # Add all targets to the build-tree export set
+   export(TARGETS mapserver
+          FILE "${PROJECT_BINARY_DIR}/mapserverTargets.cmake"
+   )
+
+   # Export the package for use from the build-tree
+   # (this registers the build-tree with a global CMake-registry)
+   export(PACKAGE mapserver)
+
+   list(APPEND ALL_INCLUDE_DIRS ${INSTALL_INCLUDE_DIR})
+   list(APPEND ALL_INCLUDE_DIRS ${INSTALL_INCLUDE_DIR}/mapserver)
+
+   list(REMOVE_DUPLICATES ALL_INCLUDE_DIRS)
+
+   # Create the mapserver-config.cmake and mapserver-config-version files
+   file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${ALL_INCLUDE_DIRS}")
+
+   # ... for the build tree
+   set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}")
+   configure_file(mapserver-config.cmake.in "${PROJECT_BINARY_DIR}/mapserver-config.cmake" @ONLY)
+
+   # ... for the install tree
+   set(CONF_INCLUDE_DIRS "\${MAPSERVER_CMAKE_DIR}/${REL_INCLUDE_DIR}")
+   configure_file(mapserver-config.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/mapserver-config.cmake" @ONLY)
+
+   # ... for both
+   configure_file(mapserver-config-version.cmake.in "${PROJECT_BINARY_DIR}/mapserver-config-version.cmake" @ONLY)
+
+   # Install the mapserver-config.cmake and mapserver-config-version.cmake
+   install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/mapserver-config.cmake"
+                 "${PROJECT_BINARY_DIR}/mapserver-config-version.cmake"
+           DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev
+   )
+
+   # Install the export set for use with the install-tree
+   install(EXPORT mapserverTargets
+           DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev
+   )
 endif(BUILD_DYNAMIC)
-
diff --git a/COMMITERS b/COMMITERS
deleted file mode 100644
index 1ade4f6..0000000
--- a/COMMITERS
+++ /dev/null
@@ -1,29 +0,0 @@
-============ =====================  ===================================  ================================
- Login(s)     Name                   Email / Contact                     Area(s)
-============ =====================  ===================================  ================================
-sdlime       Steve Lime             steve.lime at dnr.state.mn.us        Overall
-dan          Daniel Morissette      dmorissette at mapgears.com          OGC Web Services, PHP MapScript
-sean         Sean Gillies           sgillies at frii.com                 SWIG MapScript (retired)
-assefa       Assefa Yewondwossen    assefay at gmail.com             	 OGC Web Services,  PHP MapScript 
-julien       Julien-Samuel Lacroix  jlacroix at dmsolutions.ca           OGC Web Services
-warmerdam    Frank Warmerdam        warmerdam at pobox.com               Raster, outputFormatObj, 
-hobu         Howard Butler          howard at hobu.co                    docs
-pramsey      Paul Ramsey            pramsey at cleverelephant.ca         mappostgis.c, maptile.c
-jerryp       Jerry Pisk             jerry.pisk at gmail.com             
-ned          Ned Harding            nharding at extendthereach.com      
-attila       Attila Csipa           plists at prometheus.org.yu          imagemap, mygis
-fsimon       Fernando Simon         fsimon at univali.br                 maporacle
-novak        John Novak             hetzerrrat gmail.com                 mapgraticule
-jani         Jani Averbach          javerbach extendthereach com         External Plugin Layers
-tamas        Tamas Szekeres         szekerest at gmail.com               MapScript C#
-umberto      Umberto Nicoletti      umberto.nicoletti at gmail.com       MapScript Java
-tomkralidis  Tom Kralidis           tomkralidis at gmail.com             OGC, Perl Mapscript
-tbonfort     Thomas Bonfort         tbonfort at terriscope.fr            AGG, Charting, Core Maintenance
-jmckenna     Jeff McKenna           jmckenna at gatewaygeomatics.com     Documentation
-aboudreault  Alan Boudreault        aboudreault at mapgears.com          OGR, general bug fixes
-toby         Toby Rahilly           toby.rahilly at gmail.com            OpenGL
-jbourke      Jonathan Bourke        jonathan.bourke at mapds.com.au      OpenGL
-jimk         James Klassen          klassen.js at gmail.com              maporacle
-rouault      Even Rouault           even.rouault at mines-paris.org      OGC WFS
-schpidi      Stephan Meissl         stephan.meissl at eox.at             OGC WCS
-============ =====================  ===================================  ================================
diff --git a/Makefile b/Makefile
index 59c04ff..d78ea03 100644
--- a/Makefile
+++ b/Makefile
@@ -20,22 +20,19 @@ warning:
 	$(error "This Makefile is used to run the \"test\" target")
 
 wxs-testcase:
-	cd msautotest/wxs && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+	cd msautotest/wxs && chmod 777 tmp && rm -f result/* && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
 
 renderers-testcase:
-	cd msautotest/renderers && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+	cd msautotest/renderers  && rm -f result/* && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
 
 misc-testcase:
-	cd msautotest/misc && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+	cd msautotest/misc  && rm -f result/* && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
 
 gdal-testcase:
-	cd msautotest/gdal && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+	cd msautotest/gdal  && rm -f result/* && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
 
 query-testcase:
-	cd msautotest/query && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
-
-autotest-install:
-	test -d "msautotest/wxs" ||  ( git submodule init && git submodule update )
+	cd msautotest/query  && rm -f result/* && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
 
 mspython-testcase:
 	test -f "$(PYTHON_MAPSCRIPT_PATH)/_mapscript.so" && (export PYTHONPATH="../../$(PYTHON_MAPSCRIPT_PATH)" && cd msautotest/mspython && python run_all_tests.py)
@@ -46,7 +43,7 @@ php-testcase:
 java-testcase:
 	test -d "$(JAVA_MAPSCRIPT_PATH)" && (export JAVA_MAPSCRIPT_SO="../../$(JAVA_MAPSCRIPT_PATH)" && cd mapscript/java && ./run_test.sh)
 
-test: autotest-install cmakebuild
+test:  cmakebuild
 	@$(MAKE) $(MFLAGS)	wxs-testcase renderers-testcase misc-testcase gdal-testcase query-testcase mspython-testcase
 	@./print-test-results.sh
 	@$(MAKE) $(MFLAGS)	php-testcase
diff --git a/astyle.sh b/astyle.sh
deleted file mode 100755
index 4b6d301..0000000
--- a/astyle.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-ASTYLEOPTS="--style=kr --indent=spaces=2 -c --lineend=linux -S"
-ASTYLEBIN=astyle
-
-$ASTYLEBIN $ASTYLEOPTS *.c *.h *.cpp opengl/*.h
-$ASTYLEBIN $ASTYLEOPTS -R 'mapscript/*.c'
-$ASTYLEBIN $ASTYLEOPTS -R 'mapscript/*.h'
-
-#find . -name '*.orig' -exec rm -f {} \;
diff --git a/genhtml.patch b/genhtml.patch
deleted file mode 100644
index 9f11730..0000000
--- a/genhtml.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- genhtml_ori	2013-07-10 19:23:55.041055126 +0200
-+++ genhtml	2013-07-10 19:31:39.041172541 +0200
-@@ -2351,7 +2351,8 @@
- 
- 	($year, $month, $day) = (localtime())[5, 4, 3];
- 
--	return sprintf("%d-%02d-%02d", $year+1900, $month+1, $day);
-+	#return sprintf("%d-%02d-%02d", $year+1900, $month+1, $day);
-+    return "XXXX-XX-XX";
- }
- 
- 
-@@ -3807,9 +3808,10 @@
- 			} else {
- 				$class	= "branchCov";
- 				$text	= " + ";
--				$title	= "Branch $br_num was taken $taken ".
--					  "time";
--				$title .= "s" if ($taken > 1);
-+				#$title	= "Branch $br_num was taken $taken ".
-+				#	  "time";
-+				#$title .= "s" if ($taken > 1);
-+                $title  = "Branch $br_num was taken X times";
- 			}
- 			$current .= "[" if ($open);
- 			$current .= "<span class=\"$class\" title=\"$title\">";
-@@ -3892,6 +3894,8 @@
- 		$count_format	= format_count($count, $count_field_width);
- 	}
- 	else {
-+        # force to 1 to avoid huge diffs between runs
-+        $count = 1;
- 		$result		= $count;
- 		$source_format	= '<span class="lineCov">';
- 		$count_format	= format_count($count, $count_field_width);
-@@ -5127,6 +5131,7 @@
- 			$countstyle = "coverFnLo";
- 		} else {
- 			$countstyle = "coverFnHi";
-+            $count = "X";
- 		}
- 
- 		write_html(*HTML_HANDLE, <<END_OF_HTML)
diff --git a/github_issue_no_activity_closer.py b/github_issue_no_activity_closer.py
deleted file mode 100644
index 2575acb..0000000
--- a/github_issue_no_activity_closer.py
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/env python
-
-import datetime
-import getpass
-import json
-import re
-import time
-
-import requests
-
-AUTOCLOSE_MESSAGE = """\
-### This is an automated comment
-
-This issue has been closed due to lack of activity. This doesn't mean the \
-issue is invalid, it simply got no attention within the last year. Please \
-reopen if still valid.
-"""
-
-AUTOCLOSE_LABEL = "No Recent Activity"
-
-
-def fetch_issues(github_auth):
-    issues = []
-    url = ("https://api.github.com/repos/mapserver/mapserver-import/issues?"
-            "per_page=100")
-    
-    while url:
-        print "Fetching %s" % url
-        r = requests.get(url, auth=github_auth)
-        r.raise_for_status()
-        time.sleep(1)
-        issues.extend(r.json())
-        
-        match = re.match(r'<(.*?)>; rel="next"', r.headers['Link'] or '')
-        url = match.group(1) if match else None
-    
-    return issues
-
-
-def close_issue(issue, github_auth):
-    """Attempt to close an issue and return whether it succeeded."""
-    r = requests.post("https://api.github.com/repos/mapserver/mapserver-import/"
-            "issues/%s" % issue['number'],
-            data=json.dumps({'state': 'closed'}), auth=github_auth)
-    
-    try:
-        r.raise_for_status()
-        time.sleep(1)
-        return True
-    except requests.HTTPError:
-        return False
-
-
-def post_issue_comment(issue, comment_text, github_auth):
-    """Attempt to post an issue comment and return whether it succeeded."""
-    r = requests.post("https://api.github.com/repos/mapserver/mapserver-import/"
-            "issues/%s/comments" % issue['number'],
-            data=json.dumps({'body': comment_text}), auth=github_auth)
-    
-    try:
-        r.raise_for_status()
-        time.sleep(1)
-        return True
-    except requests.HTTPError:
-        return False
-
-
-def add_issue_label(issue, label, github_auth):
-    """Attempt to add a label to the issue and return whether it succeeded."""
-    r = requests.post("https://api.github.com/repos/mapserver/mapserver-import/"
-            "issues/%s/labels" % issue['number'],
-            data=json.dumps([label]), auth=github_auth)
-    
-    try:
-        r.raise_for_status()
-        time.sleep(1)
-        return True
-    except requests.HTTPError:
-        return False
-
-
-def close_old_issues(close_before, github_auth):
-    all_issues = fetch_issues(github_auth)
-    
-    for issue in all_issues:
-        issue_last_activity = datetime.datetime.strptime(
-            issue['updated_at'], "%Y-%m-%dT%H:%M:%SZ")
-        
-        print "Processing issue %s with last activity at %s" % (issue['number'], issue_last_activity)
-        
-        if issue_last_activity < close_before:
-            if post_issue_comment(issue, AUTOCLOSE_MESSAGE, github_auth):
-                print "    Added comment to old issue %s" % issue['number']
-            else:
-                print "    Error adding comment to old issue %s" % issue['number']
-                continue
-            
-            if add_issue_label(issue, AUTOCLOSE_LABEL, github_auth):
-                print "    Added label to old issue %s" % issue['number']
-            else:
-                print "    Error adding label to old issue %s" % issue['number']
-            
-            if close_issue(issue, github_auth):
-                print "    Closed old issue %s" % issue['number']
-            else:
-                print "    Error closing old issue %s" % issue['number']
-
-
-if __name__ == '__main__':
-    close_before = datetime.datetime.today() - datetime.timedelta(days=366)
-    
-    print
-    print "This script will close all issues with no activity for a year."
-    print
-    
-    default_user = "mapserver-bot"
-    github_user = (raw_input("GitHub username [%s]: " % default_user)
-            or default_user)
-    github_pass = getpass.getpass()
-    print
-    github_auth = (github_user, github_pass)
-    
-    close_old_issues(close_before, github_auth)
diff --git a/install-msautotest.sh b/install-msautotest.sh
deleted file mode 100755
index 2ccd0f8..0000000
--- a/install-msautotest.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-msa_commit=`git log -n1 | grep  "msautotest=" | sed 's/msautotest=//'`
-branch=branch-7-0
-repo=git://github.com/mapserver/msautotest.git
-if [ -n "$msa_commit" ]; then
-  repo=`echo "$msa_commit" | grep -o '^[^@]*'`
-  branch=`echo "$msa_commit" | grep -o '[^@]*$'`
-fi
-echo "git clone $repo msautotest"
-git clone $repo msautotest
-cd msautotest
-echo "git checkout $branch"
-git checkout $branch
diff --git a/mapagg.cpp b/mapagg.cpp
index a9666a0..e214d51 100644
--- a/mapagg.cpp
+++ b/mapagg.cpp
@@ -822,6 +822,8 @@ imageObj *agg2CreateImage(int width, int height, outputFormatObj *format, colorO
   if( (AGG_INT64U)bufSize != bufSize64 ) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating " AGG_INT64U_FRMT " bytes.\n", "agg2CreateImage()",
                __FILE__, __LINE__, bufSize64);
+    free(image);
+    delete r;
     return NULL;
   }
 
@@ -830,6 +832,7 @@ imageObj *agg2CreateImage(int width, int height, outputFormatObj *format, colorO
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating " AGG_INT64U_FRMT " bytes.\n", "agg2CreateImage()",
                __FILE__, __LINE__, bufSize64);
     free(image);
+    delete r;
     return NULL;
   }
   r->m_rendering_buffer.attach(r->buffer, width, height, width * 4);
diff --git a/mapaxisorder.csv b/mapaxisorder.csv
deleted file mode 100755
index 5127d2b..0000000
--- a/mapaxisorder.csv
+++ /dev/null
@@ -1,1788 +0,0 @@
-epsg_code
-4326
-4258
-31466
-31467
-31468
-31469
-2166
-2167
-2168
-2036
-2044
-2045
-2065
-2081
-2082
-2083
-2085
-2086
-2091
-2092
-2093
-2096
-2097
-2098
-2105
-2106
-2107
-2108
-2109
-2110
-2111
-2112
-2113
-2114
-2115
-2116
-2117
-2118
-2119
-2120
-2121
-2122
-2123
-2124
-2125
-2126
-2127
-2128
-2129
-2130
-2131
-2132
-2169
-2170
-2171
-2172
-2173
-2174
-2175
-2176
-2177
-2178
-2179
-2180
-2193
-2199
-2200
-2206
-2207
-2208
-2209
-2210
-2211
-2212
-2319
-2320
-2321
-2322
-2323
-2324
-2325
-2326
-2327
-2328
-2329
-2330
-2331
-2332
-2333
-2334
-2335
-2336
-2337
-2338
-2339
-2340
-2341
-2342
-2343
-2344
-2345
-2346
-2347
-2348
-2349
-2350
-2351
-2352
-2353
-2354
-2355
-2356
-2357
-2358
-2359
-2360
-2361
-2362
-2363
-2364
-2365
-2366
-2367
-2368
-2369
-2370
-2371
-2372
-2373
-2374
-2375
-2376
-2377
-2378
-2379
-2380
-2381
-2382
-2383
-2384
-2385
-2386
-2387
-2388
-2389
-2390
-2391
-2392
-2393
-2394
-2395
-2396
-2397
-2398
-2399
-2400
-2401
-2402
-2403
-2404
-2405
-2406
-2407
-2408
-2409
-2410
-2411
-2412
-2413
-2414
-2415
-2416
-2417
-2418
-2419
-2420
-2421
-2422
-2423
-2424
-2425
-2426
-2427
-2428
-2429
-2430
-2431
-2432
-2433
-2434
-2435
-2436
-2437
-2438
-2439
-2440
-2441
-2442
-2443
-2444
-2445
-2446
-2447
-2448
-2449
-2450
-2451
-2452
-2453
-2454
-2455
-2456
-2457
-2458
-2459
-2460
-2461
-2462
-2463
-2464
-2465
-2466
-2467
-2468
-2469
-2470
-2471
-2472
-2473
-2474
-2475
-2476
-2477
-2478
-2479
-2480
-2481
-2482
-2483
-2484
-2485
-2486
-2487
-2488
-2489
-2490
-2491
-2492
-2493
-2494
-2495
-2496
-2497
-2498
-2499
-2500
-2501
-2502
-2503
-2504
-2505
-2506
-2507
-2508
-2509
-2510
-2511
-2512
-2513
-2514
-2515
-2516
-2517
-2518
-2519
-2520
-2521
-2522
-2523
-2524
-2525
-2526
-2527
-2528
-2529
-2530
-2531
-2532
-2533
-2534
-2535
-2536
-2537
-2538
-2539
-2540
-2541
-2542
-2543
-2544
-2545
-2546
-2547
-2548
-2549
-2551
-2552
-2553
-2554
-2555
-2556
-2557
-2558
-2559
-2560
-2561
-2562
-2563
-2564
-2565
-2566
-2567
-2568
-2569
-2570
-2571
-2572
-2573
-2574
-2575
-2576
-2577
-2578
-2579
-2580
-2581
-2582
-2583
-2584
-2585
-2586
-2587
-2588
-2589
-2590
-2591
-2592
-2593
-2594
-2595
-2596
-2597
-2598
-2599
-2600
-2601
-2602
-2603
-2604
-2605
-2606
-2607
-2608
-2609
-2610
-2611
-2612
-2613
-2614
-2615
-2616
-2617
-2618
-2619
-2620
-2621
-2622
-2623
-2624
-2625
-2626
-2627
-2628
-2629
-2630
-2631
-2632
-2633
-2634
-2635
-2636
-2637
-2638
-2639
-2640
-2641
-2642
-2643
-2644
-2645
-2646
-2647
-2648
-2649
-2650
-2651
-2652
-2653
-2654
-2655
-2656
-2657
-2658
-2659
-2660
-2661
-2662
-2663
-2664
-2665
-2666
-2667
-2668
-2669
-2670
-2671
-2672
-2673
-2674
-2675
-2676
-2677
-2678
-2679
-2680
-2681
-2682
-2683
-2684
-2685
-2686
-2687
-2688
-2689
-2690
-2691
-2692
-2693
-2694
-2695
-2696
-2697
-2698
-2699
-2700
-2701
-2702
-2703
-2704
-2705
-2706
-2707
-2708
-2709
-2710
-2711
-2712
-2713
-2714
-2715
-2716
-2717
-2718
-2719
-2720
-2721
-2722
-2723
-2724
-2725
-2726
-2727
-2728
-2729
-2730
-2731
-2732
-2733
-2734
-2735
-2738
-2739
-2740
-2741
-2742
-2743
-2744
-2745
-2746
-2747
-2748
-2749
-2750
-2751
-2752
-2753
-2754
-2755
-2756
-2757
-2758
-2935
-2936
-2937
-2938
-2939
-2940
-2941
-2953
-2963
-3006
-3007
-3008
-3009
-3010
-3011
-3012
-3013
-3014
-3015
-3016
-3017
-3018
-3019
-3020
-3021
-3022
-3023
-3024
-3025
-3026
-3027
-3028
-3029
-3030
-3034
-3035
-3038
-3039
-3040
-3041
-3042
-3043
-3044
-3045
-3046
-3047
-3048
-3049
-3050
-3051
-3058
-3059
-3068
-3114
-3115
-3116
-3117
-3118
-3120
-3126
-3127
-3128
-3129
-3130
-3131
-3132
-3133
-3134
-3135
-3136
-3137
-3138
-3139
-3140
-3146
-3147
-3150
-3151
-3152
-3300
-3301
-3328
-3329
-3330
-3331
-3332
-3333
-3334
-3335
-3346
-3350
-3351
-3352
-3366
-3386
-3387
-3388
-3389
-3390
-3396
-3397
-3398
-3399
-3407
-3414
-3416
-3764
-3788
-3789
-3790
-3791
-3793
-3795
-3796
-3819
-3821
-3823
-3824
-3833
-3834
-3835
-3836
-3837
-3838
-3839
-3840
-3841
-3842
-3843
-3844
-3845
-3846
-3847
-3848
-3849
-3850
-3851
-3852
-3854
-3873
-3874
-3875
-3876
-3877
-3878
-3879
-3880
-3881
-3882
-3883
-3884
-3885
-3888
-3889
-3906
-3907
-3908
-3909
-3910
-3911
-4001
-4002
-4003
-4004
-4005
-4006
-4007
-4008
-4009
-4010
-4011
-4012
-4013
-4014
-4015
-4016
-4017
-4018
-4019
-4020
-4021
-4022
-4023
-4024
-4025
-4026
-4027
-4028
-4029
-4030
-4031
-4032
-4033
-4034
-4035
-4036
-4037
-4038
-4040
-4041
-4042
-4043
-4044
-4045
-4046
-4047
-4052
-4053
-4054
-4055
-4074
-4075
-4080
-4081
-4120
-4121
-4122
-4123
-4124
-4125
-4126
-4127
-4128
-4129
-4130
-4131
-4132
-4133
-4134
-4135
-4136
-4137
-4138
-4139
-4140
-4141
-4142
-4143
-4144
-4145
-4146
-4147
-4148
-4149
-4150
-4151
-4152
-4153
-4154
-4155
-4156
-4157
-4158
-4159
-4160
-4161
-4162
-4163
-4164
-4165
-4166
-4167
-4168
-4169
-4170
-4171
-4172
-4173
-4174
-4175
-4176
-4178
-4179
-4180
-4181
-4182
-4183
-4184
-4185
-4188
-4189
-4190
-4191
-4192
-4193
-4194
-4195
-4196
-4197
-4198
-4199
-4200
-4201
-4202
-4203
-4204
-4205
-4206
-4207
-4208
-4209
-4210
-4211
-4212
-4213
-4214
-4215
-4216
-4218
-4219
-4220
-4221
-4222
-4223
-4224
-4225
-4226
-4227
-4228
-4229
-4230
-4231
-4232
-4233
-4234
-4235
-4236
-4237
-4238
-4239
-4240
-4241
-4242
-4243
-4244
-4245
-4246
-4247
-4248
-4249
-4250
-4251
-4252
-4253
-4254
-4255
-4256
-4257
-4259
-4260
-4261
-4262
-4263
-4264
-4265
-4266
-4267
-4268
-4269
-4270
-4271
-4272
-4273
-4274
-4275
-4276
-4277
-4278
-4279
-4280
-4281
-4282
-4283
-4284
-4285
-4286
-4287
-4288
-4289
-4291
-4292
-4293
-4294
-4295
-4296
-4297
-4298
-4299
-4300
-4301
-4302
-4303
-4304
-4306
-4307
-4308
-4309
-4310
-4311
-4312
-4313
-4314
-4315
-4316
-4317
-4318
-4319
-4322
-4324
-4327
-4329
-4339
-4341
-4343
-4345
-4347
-4349
-4351
-4353
-4355
-4357
-4359
-4361
-4363
-4365
-4367
-4369
-4371
-4373
-4375
-4377
-4379
-4381
-4383
-4386
-4388
-4417
-4434
-4463
-4466
-4469
-4470
-4472
-4475
-4480
-4482
-4483
-4490
-4491
-4492
-4493
-4494
-4495
-4496
-4497
-4498
-4499
-4500
-4501
-4502
-4503
-4504
-4505
-4506
-4507
-4508
-4509
-4510
-4511
-4512
-4513
-4514
-4515
-4516
-4517
-4518
-4519
-4520
-4521
-4522
-4523
-4524
-4525
-4526
-4527
-4528
-4529
-4530
-4531
-4532
-4533
-4534
-4535
-4536
-4537
-4538
-4539
-4540
-4541
-4542
-4543
-4544
-4545
-4546
-4547
-4548
-4549
-4550
-4551
-4552
-4553
-4554
-4555
-4557
-4558
-4568
-4569
-4570
-4571
-4572
-4573
-4574
-4575
-4576
-4577
-4578
-4579
-4580
-4581
-4582
-4583
-4584
-4585
-4586
-4587
-4588
-4589
-4600
-4601
-4602
-4603
-4604
-4605
-4606
-4607
-4608
-4609
-4610
-4611
-4612
-4613
-4614
-4615
-4616
-4617
-4618
-4619
-4620
-4621
-4622
-4623
-4624
-4625
-4626
-4627
-4628
-4629
-4630
-4631
-4632
-4633
-4634
-4635
-4636
-4637
-4638
-4639
-4640
-4641
-4642
-4643
-4644
-4645
-4646
-4652
-4653
-4654
-4655
-4656
-4657
-4658
-4659
-4660
-4661
-4662
-4663
-4664
-4665
-4666
-4667
-4668
-4669
-4670
-4671
-4672
-4673
-4674
-4675
-4676
-4677
-4678
-4679
-4680
-4681
-4682
-4683
-4684
-4685
-4686
-4687
-4688
-4689
-4690
-4691
-4692
-4693
-4694
-4695
-4696
-4697
-4698
-4699
-4700
-4701
-4702
-4703
-4704
-4705
-4706
-4707
-4708
-4709
-4710
-4711
-4712
-4713
-4714
-4715
-4716
-4717
-4718
-4719
-4720
-4721
-4722
-4723
-4724
-4725
-4726
-4727
-4728
-4729
-4730
-4731
-4732
-4733
-4734
-4735
-4736
-4737
-4738
-4739
-4740
-4741
-4742
-4743
-4744
-4745
-4746
-4747
-4748
-4749
-4750
-4751
-4752
-4753
-4754
-4755
-4756
-4757
-4758
-4759
-4760
-4761
-4762
-4763
-4764
-4765
-4766
-4767
-4768
-4769
-4770
-4771
-4772
-4773
-4774
-4775
-4776
-4777
-4778
-4779
-4780
-4781
-4782
-4783
-4784
-4785
-4786
-4787
-4788
-4789
-4790
-4791
-4792
-4793
-4794
-4795
-4796
-4797
-4798
-4799
-4800
-4801
-4802
-4803
-4804
-4805
-4806
-4807
-4808
-4809
-4810
-4811
-4812
-4813
-4814
-4815
-4816
-4817
-4818
-4819
-4820
-4821
-4822
-4823
-4824
-4839
-4855
-4856
-4857
-4858
-4859
-4860
-4861
-4862
-4863
-4864
-4865
-4866
-4867
-4868
-4869
-4870
-4871
-4872
-4873
-4874
-4875
-4876
-4877
-4878
-4879
-4880
-4883
-4885
-4887
-4889
-4891
-4893
-4895
-4898
-4900
-4901
-4902
-4903
-4904
-4907
-4909
-4921
-4923
-4925
-4927
-4929
-4931
-4933
-4935
-4937
-4939
-4941
-4943
-4945
-4947
-4949
-4951
-4953
-4955
-4957
-4959
-4961
-4963
-4965
-4967
-4969
-4971
-4973
-4975
-4977
-4979
-4981
-4983
-4985
-4987
-4989
-4991
-4993
-4995
-4997
-4999
-5012
-5013
-5017
-5048
-5105
-5106
-5107
-5108
-5109
-5110
-5111
-5112
-5113
-5114
-5115
-5116
-5117
-5118
-5119
-5120
-5121
-5122
-5123
-5124
-5125
-5126
-5127
-5128
-5129
-5130
-5132
-5167
-5168
-5169
-5170
-5171
-5172
-5173
-5174
-5175
-5176
-5177
-5178
-5179
-5180
-5181
-5182
-5183
-5184
-5185
-5186
-5187
-5188
-5224
-5228
-5229
-5233
-5245
-5246
-5251
-5252
-5253
-5254
-5255
-5256
-5257
-5258
-5259
-5263
-5264
-5269
-5270
-5271
-5272
-5273
-5274
-5275
-5323
-5324
-5340
-5342
-5343
-5344
-5345
-5346
-5347
-5348
-5349
-5353
-5354
-5359
-5360
-5364
-5365
-5367
-5370
-5371
-5372
-5373
-5380
-5381
-5392
-5393
-5451
-5464
-5467
-5479
-5480
-5481
-5482
-5488
-5489
-5513
-5515
-5518
-5519
-5520
-5524
-5527
-5545
-5546
-5560
-5561
-5562
-5563
-5564
-5565
-5566
-5567
-5568
-5569
-5570
-5571
-5572
-5573
-5574
-5575
-5576
-5577
-5578
-5579
-5580
-5581
-5582
-5583
-5588
-5592
-5593
-5632
-5633
-5634
-5635
-5636
-5637
-5638
-5639
-5651
-5652
-5653
-5681
-5801
-5802
-5803
-5804
-5808
-5809
-5810
-5811
-5812
-5813
-5814
-5815
-5816
-5830
-20004
-20005
-20006
-20007
-20008
-20009
-20010
-20011
-20012
-20013
-20014
-20015
-20016
-20017
-20018
-20019
-20020
-20021
-20022
-20023
-20024
-20025
-20026
-20027
-20028
-20029
-20030
-20031
-20032
-20064
-20065
-20066
-20067
-20068
-20069
-20070
-20071
-20072
-20073
-20074
-20075
-20076
-20077
-20078
-20079
-20080
-20081
-20082
-20083
-20084
-20085
-20086
-20087
-20088
-20089
-20090
-20091
-20092
-21413
-21414
-21415
-21416
-21417
-21418
-21419
-21420
-21421
-21422
-21423
-21453
-21454
-21455
-21456
-21457
-21458
-21459
-21460
-21461
-21462
-21463
-21473
-21474
-21475
-21476
-21477
-21478
-21479
-21480
-21481
-21482
-21483
-21896
-21897
-21898
-21899
-22171
-22172
-22173
-22174
-22175
-22176
-22177
-22181
-22182
-22183
-22184
-22185
-22186
-22187
-22191
-22192
-22193
-22194
-22195
-22196
-22197
-25884
-27205
-27206
-27207
-27208
-27209
-27210
-27211
-27212
-27213
-27214
-27215
-27216
-27217
-27218
-27219
-27220
-27221
-27222
-27223
-27224
-27225
-27226
-27227
-27228
-27229
-27230
-27231
-27232
-27391
-27392
-27393
-27394
-27395
-27396
-27397
-27398
-27492
-28402
-28403
-28404
-28405
-28406
-28407
-28408
-28409
-28410
-28411
-28412
-28413
-28414
-28415
-28416
-28417
-28418
-28419
-28420
-28421
-28422
-28423
-28424
-28425
-28426
-28427
-28428
-28429
-28430
-28431
-28432
-28462
-28463
-28464
-28465
-28466
-28467
-28468
-28469
-28470
-28471
-28472
-28473
-28474
-28475
-28476
-28477
-28478
-28479
-28480
-28481
-28482
-28483
-28484
-28485
-28486
-28487
-28488
-28489
-28490
-28491
-28492
-29701
-29702
-30161
-30162
-30163
-30164
-30165
-30166
-30167
-30168
-30169
-30170
-30171
-30172
-30173
-30174
-30175
-30176
-30177
-30178
-30179
-30800
-31251
-31252
-31253
-31254
-31255
-31256
-31257
-31258
-31259
-31275
-31276
-31277
-31278
-31279
-31281
-31282
-31283
-31284
-31285
-31286
-31287
-31288
-31289
-31290
-31700
diff --git a/mapaxisorder.h b/mapaxisorder.h
index 4321bcb..23c65f9 100644
--- a/mapaxisorder.h
+++ b/mapaxisorder.h
@@ -14,7 +14,7 @@
  * and/or sell copies of the Software, and to permit persons to whom the
  * Software is furnished to do so, subject to the following conditions:
  *
- * The above copyright notice and this permission notice shall be included in
+ * The above copyright notice and this permission notice shall be included in 
  * all copies of this Software or works derived from this Software.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
@@ -25,4116 +25,4116 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  ****************************************************************************/
-
+ 
 /*
  * Generated file
  *
  * This file was generated from by means of a script. Do not edit manually.
  */
-
+ 
 #ifdef __cplusplus
 extern "C" {
 #endif
-
-  static unsigned char axisOrientationEpsgCodes[] = {
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
-    0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0
-  };
-
+ 
+static unsigned char axisOrientationEpsgCodes[] = {
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0,
+        0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0
+};
+ 
 #ifdef __cplusplus
 }
 #endif
diff --git a/mapaxisorder.sh b/mapaxisorder.sh
deleted file mode 100755
index e744ef0..0000000
--- a/mapaxisorder.sh
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/bash
-INFILE="./mapaxisorder.csv"
-OUTFILE="./mapaxisorder.h"
-
-# define an array 8x4096 filled with 0
-unset ARRAY
-declare -a ARRAY
-for i in {0..4095}
-do
-	ARRAY[$i]="00000000"
-done
-	
-# fill array from $INFILE
-while read -r LINE
-do
-	# numeric values only
-	if [ "$LINE" -eq "$LINE" ] 2>/dev/null
-	then
-		let row=$(( $LINE / 8 ))
-		let index=$(( $LINE % 8 ))
-		unset tmp
-
-		if [ $index -gt 0 ]
-		then
-			tmp=${ARRAY[$row]:0:$(( $index ))}
-		fi
-
-		ARRAY[$row]=${tmp}1${ARRAY[$row]:$(( $index+1 ))}
-	fi
-done < $INFILE
-
-print_header ()
-{
-
-	echo '/******************************************************************************'
-	echo ' * $Id: $'
-	echo ' *'
-	echo ' * Project:  MapServer'
-	echo ' * Purpose:  Axis lookup table'
-	echo ' *'
-	echo ' ******************************************************************************'
-	echo ' * Copyright (c) 1996-2005 Regents of the University of Minnesota.'
-	echo ' *'
-	echo ' * Permission is hereby granted, free of charge, to any person obtaining a'
-	echo ' * copy of this software and associated documentation files (the "Software"),'
-	echo ' * to deal in the Software without restriction, including without limitation'
-	echo ' * the rights to use, copy, modify, merge, publish, distribute, sublicense,'
-	echo ' * and/or sell copies of the Software, and to permit persons to whom the'
-	echo ' * Software is furnished to do so, subject to the following conditions:'
-	echo ' *'
-	echo ' * The above copyright notice and this permission notice shall be included in '
-	echo ' * all copies of this Software or works derived from this Software.'
-	echo ' *'
-	echo ' * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS'
-	echo ' * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,'
-	echo ' * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL'
-	echo ' * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER'
-	echo ' * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING'
-	echo ' * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER'
-	echo ' * DEALINGS IN THE SOFTWARE.'
-	echo ' ****************************************************************************/'
-
-}
-
-print_comment ()
-{
-	echo ' '
-	echo '/*'
-	echo ' * Generated file'
-	echo ' *'
-	echo ' * This file was generated from by means of a script. Do not edit manually.'
-	echo ' */'
-	echo ' '
-
-}
-
-print_body ()
-{
-	echo '#ifdef __cplusplus'
-	echo 'extern "C" '{
-	echo '#endif'
-	echo ' '
-	echo 'static unsigned char axisOrientationEpsgCodes[] = {'
-   
-	# traverse array and print out elements
-	for i in {0..4095}
-	do
-		echo -n "        ${ARRAY[$i]:7:1} << 7 | ${ARRAY[$i]:6:1} << 6 | ${ARRAY[$i]:5:1} << 5 | ${ARRAY[$i]:4:1} << 4 | ${ARRAY[$i]:3:1} << 3 | ${ARRAY[$i]:2:1} << 2 | ${ARRAY[$i]:1:1} << 1 | ${ARRAY[$i]:0:1} << 0"
-		if [ $i -le 4094 ]
-		then
-			echo ,
-		else
-			echo
-		fi
-	done
-
-	echo '};'
-	echo ' '
-
-	echo '#ifdef __cplusplus'
-	echo '}'
-	echo '#endif'
-
-}
-
-print_header > ./$OUTFILE
-print_comment >> ./$OUTFILE
-print_body >> ./$OUTFILE
-
-exit 0
diff --git a/mapcontour.c b/mapcontour.c
index e1a9836..74cf7d1 100644
--- a/mapcontour.c
+++ b/mapcontour.c
@@ -39,6 +39,7 @@
 #include "gdal_alg.h"
 
 #include "mapthread.h"
+#include "mapraster.h"
 #include "cpl_string.h"
 
 #define GEO_TRANS(tr,x,y)  ((tr)[0]+(tr)[1]*(x)+(tr)[2]*(y))
@@ -344,11 +345,11 @@ static int msContourLayerReadRaster(layerObj *layer, rectObj rect)
     ury = floor(ury / virtual_grid_step_y) * virtual_grid_step_y - (virtual_grid_step_x*5);
     lly = ceil(lly / virtual_grid_step_y) * virtual_grid_step_y + (virtual_grid_step_x*5);
     
-    src_xoff = MAX(0,(int) floor(llx+0.5));
-    src_yoff = MAX(0,(int) floor(ury+0.5));
-    src_xsize = MIN(MAX(0,(int) (urx - llx + 0.5)),
+    src_xoff = MS_MAX(0,(int) floor(llx+0.5));
+    src_yoff = MS_MAX(0,(int) floor(ury+0.5));
+    src_xsize = MS_MIN(MS_MAX(0,(int) (urx - llx + 0.5)),
                     GDALGetRasterXSize(clinfo->hOrigDS) - src_xoff);
-    src_ysize = MIN(MAX(0,(int) (lly - ury + 0.5)),
+    src_ysize = MS_MIN(MS_MAX(0,(int) (lly - ury + 0.5)),
                     GDALGetRasterYSize(clinfo->hOrigDS) - src_yoff);
 
     /* Update the geographic extent (buffer added) */
@@ -385,8 +386,8 @@ static int msContourLayerReadRaster(layerObj *layer, rectObj rect)
   } else {
     src_xoff = 0;
     src_yoff = 0;
-    dst_xsize = src_xsize = MIN(map->width,src_xsize);
-    dst_ysize = src_ysize = MIN(map->height,src_ysize);
+    dst_xsize = src_xsize = MS_MIN(map->width,src_xsize);
+    dst_ysize = src_ysize = MS_MIN(map->height,src_ysize);
     copyRect.minx = copyRect.miny = 0;
     copyRect.maxx = map->width;
     copyRect.maxy = map->height;
@@ -435,7 +436,7 @@ static int msContourLayerReadRaster(layerObj *layer, rectObj rect)
   adfGeoTransform[4] = 0;
   adfGeoTransform[5] = -dst_cellsize_y;
 
-  clinfo->cellsize = MAX(dst_cellsize_x, dst_cellsize_y);
+  clinfo->cellsize = MS_MAX(dst_cellsize_x, dst_cellsize_y);
   {
     char buf[64];
     sprintf(buf, "%lf", clinfo->cellsize);
@@ -621,7 +622,7 @@ static int msContourLayerGenerateContour(layerObj *layer)
 int msContourLayerOpen(layerObj *layer)
 {
   char *decrypted_path;
-  char szPath[MS_MAXPATHLEN];  
+  char szPath[MS_MAXPATHLEN];
   contourLayerInfo *clinfo;
 
   if (layer->debug)
@@ -632,12 +633,71 @@ int msContourLayerOpen(layerObj *layer)
     msContourLayerInfoInitialize(layer);
 
   clinfo = (contourLayerInfo *) layer->layerinfo;
+  if (layer->data == NULL && layer->tileindex == NULL ) {
+    msSetError(MS_MISCERR,
+               "Layer %s has neither DATA nor TILEINDEX defined.",
+               "msContourLayerOpen()",
+               layer->name);
+    return MS_FAILURE;
+  }
+
+  if( layer->tileindex != NULL )
+  {
+      char szTilename[MS_MAXPATHLEN];
+      int status;
+      int tilelayerindex, tileitemindex, tilesrsindex;
+      rectObj searchrect;
+      layerObj* tlp;
+      shapeObj tshp;
+      char tilesrsname[1];
+
+      msInitShape(&tshp);
+      searchrect = layer->map->extent;
+
+      status = msDrawRasterSetupTileLayer(layer->map, layer,
+                                 &searchrect, MS_FALSE,
+                                 &tilelayerindex,
+                                 &tileitemindex,
+                                 &tilesrsindex,
+                                 &tlp);
+      if( status == MS_FAILURE )
+      {
+          return MS_FAILURE;
+      }
+
+      status = msDrawRasterIterateTileIndex(layer, tlp, &tshp,
+                                            tileitemindex, -1,
+                                            szTilename, sizeof(szTilename),
+                                            tilesrsname, sizeof(tilesrsname));
+      if( status == MS_FAILURE || status == MS_DONE ) {
+          if( status == MS_DONE )
+          {
+              if (layer->debug)
+                msDebug("No raster matching filter.\n");
+          }
+          msDrawRasterCleanupTileLayer(tlp, tilelayerindex);
+          return MS_FAILURE;
+      }
+
+      msDrawRasterCleanupTileLayer(tlp, tilelayerindex);
 
+      msDrawRasterBuildRasterPath(layer->map, layer, szTilename, szPath);
+      decrypted_path = msStrdup(szPath);
+
+      /* Cancel the time filter that might have been set on ours in case of */
+      /* a inline tileindex */
+      msFreeExpression(&layer->filter);
+      msInitExpression(&layer->filter);
+  }
+  else
+  {
+      msTryBuildPath3(szPath, layer->map->mappath, layer->map->shapepath, layer->data);
+      decrypted_path = msDecryptStringTokens(layer->map, szPath);
+  }
+  
   GDALAllRegister();
 
   /* Open the original Dataset */
-  msTryBuildPath3(szPath, layer->map->mappath, layer->map->shapepath, layer->data);
-  decrypted_path = msDecryptStringTokens(layer->map, szPath);
 
   msAcquireLock(TLOCK_GDAL);
   if (decrypted_path) {
@@ -846,23 +906,60 @@ int msContourLayerGetExtent(layerObj *layer, rectObj *extent)
   return MS_SUCCESS;
 }
 
+/************************************************************************/
+/*                     msContourLayerSetTimeFilter()                    */
+/*                                                                      */
+/*      This function is actually just used in the context of           */
+/*      setting a filter on the tileindex for time based queries.       */
+/*      For instance via WMS requests.                                  */
+/*                                                                      */
+/*      If a local shapefile tileindex is in use, we will set a         */
+/*      backtics filter (shapefile compatible).  If another layer is    */
+/*      being used as the tileindex then we will forward the            */
+/*      SetTimeFilter call to it.  If there is no tileindex in          */
+/*      place, we do nothing.                                           */
+/************************************************************************/
+
 int msContourLayerSetTimeFilter(layerObj *layer, const char *timestring,
-                                const char *timefield)
+                               const char *timefield)
 {
-  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+  int tilelayerindex;
 
   if (layer->debug)
-    msDebug("Entering msContourLayerSetTimeFilter().\n");
+    msDebug("msContourLayerSetTimeFilter(%s,%s).\n", timestring, timefield);
 
-  if (clinfo == NULL) {
-    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
-               "msContourLayerSetTimeFilter()");
-    return MS_FAILURE;
+  /* -------------------------------------------------------------------- */
+  /*      If we don't have a tileindex the time filter has no effect.     */
+  /* -------------------------------------------------------------------- */
+  if( layer->tileindex == NULL )
+  {
+      if (layer->debug)
+          msDebug("msContourLayerSetTimeFilter(): time filter without effect on layers without tileindex.\n");
+      return MS_SUCCESS;
   }
 
-  return msLayerSetTimeFilter(&clinfo->ogrLayer, timestring, timefield);
-}
+  /* -------------------------------------------------------------------- */
+  /*      Find the tileindex layer.                                       */
+  /* -------------------------------------------------------------------- */
+  tilelayerindex = msGetLayerIndex(layer->map, layer->tileindex);
+
+  /* -------------------------------------------------------------------- */
+  /*      If we are using a local shapefile as our tileindex (that is     */
+  /*      to say, the tileindex name is not of another layer), then we    */
+  /*      just install a backtics style filter on the current layer.      */
+  /* -------------------------------------------------------------------- */
+  if( tilelayerindex == -1 )
+    return msLayerMakeBackticsTimeFilter( layer, timestring, timefield );
 
+  /* -------------------------------------------------------------------- */
+  /*      Otherwise we invoke the tileindex layers SetTimeFilter          */
+  /*      method.                                                         */
+  /* -------------------------------------------------------------------- */
+  if ( msCheckParentPointer(layer->map,"map")==MS_FAILURE )
+    return MS_FAILURE;
+  return msLayerSetTimeFilter( layer->GET_LAYER(map,tilelayerindex),
+                               timestring, timefield );
+}
 
 /************************************************************************/
 /*                msRASTERLayerInitializeVirtualTable()                 */
diff --git a/mapdraw.c b/mapdraw.c
index 1a7a73a..825f1b4 100644
--- a/mapdraw.c
+++ b/mapdraw.c
@@ -669,6 +669,12 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
      layer->project true to recheck projection needs (Bug #673) */
   layer->project = MS_TRUE;
 
+  /* make sure labelcache setting is set correctly if postlabelcache is set. This is done by the parser but
+     may have been altered by a mapscript. see #5142 */
+  if(layer->postlabelcache) {
+    layer->labelcache = MS_FALSE;
+  }
+
   if(layer->mask) {
     int maskLayerIdx;
     /* render the mask layer in its own imageObj */
@@ -916,13 +922,17 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
   if(status != MS_SUCCESS) return MS_FAILURE;
 
   /* build item list. STYLEITEM javascript needs the shape attributes */
-  if (layer->styleitem &&
-     (strncasecmp(layer->styleitem, "javascript://", 13) == 0)) {  
+  if (layer->styleitem && (strncasecmp(layer->styleitem, "javascript://", 13) == 0)) {  
     status = msLayerWhichItems(layer, MS_TRUE, NULL);
   } else {
     status = msLayerWhichItems(layer, MS_FALSE, NULL);
   }
 
+  if(status != MS_SUCCESS) {
+    msLayerClose(layer);
+    return MS_FAILURE;
+  }
+
   /* identify target shapes */
   if(layer->transform == MS_TRUE) {
     searchrect = map->extent;
@@ -973,6 +983,7 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
     }
 
     if(maxfeatures >=0 && featuresdrawn >= maxfeatures) {
+      msFreeShape(&shape);
       status = MS_DONE;
       break;
     }
@@ -995,12 +1006,14 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
       if(strcasecmp(layer->styleitem, "AUTO") == 0) {
         if(msLayerGetAutoStyle(map, layer, layer->class[shape.classindex], &shape) != MS_SUCCESS) {
           retcode = MS_FAILURE;
+          msFreeShape(&shape);
           break;
         }
       } else {
         /* Generic feature style handling as per RFC-61 */
         if(msLayerGetFeatureStyle(map, layer, layer->class[shape.classindex], &shape) != MS_SUCCESS) {
           retcode = MS_FAILURE;
+          msFreeShape(&shape);
           break;
         }
       }
@@ -1060,6 +1073,7 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
 
     if(cache) {
       if(insertFeatureList(&shpcache, &shape) == NULL) {
+        msFreeShape(&shape);
         retcode = MS_FAILURE; /* problem adding to the cache */
         break;
       }
@@ -2039,7 +2053,7 @@ int msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image,
             return MS_FAILURE;
           }
       }
-      if(labeltext) {
+      if(labeltext && *labeltext) {
         textSymbolObj *ts = msSmallMalloc(sizeof(textSymbolObj));
         initTextSymbol(ts);
         msPopulateTextSymbolForLabelAndString(ts, label, msStrdup(labeltext), layer->scalefactor, image->resolutionfactor, layer->labelcache);
@@ -2048,6 +2062,11 @@ int msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image,
             return(MS_FAILURE);
           }
         } else {
+          if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,ts))) {
+            freeTextSymbol(ts);
+            free(ts);
+            return MS_FAILURE;
+          }
           ret = msDrawTextSymbol(map,image,*point,ts);
           freeTextSymbol(ts);
           free(ts); 
@@ -2074,13 +2093,19 @@ int msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, l
   textSymbolObj ts;
   int needLabelPoly=MS_TRUE;
   int needLabelPoint=MS_TRUE;
+  int haveLabelText=MS_TRUE;
 
-  
-  initTextSymbol(&ts);
-  msPopulateTextSymbolForLabelAndString(&ts, label, string, scalefactor, image->resolutionfactor, 0);
-  if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,&ts))) {
-    freeTextSymbol(&ts);
-    return MS_FAILURE;
+
+  if(!string || !*string)
+    haveLabelText = MS_FALSE;
+
+  if(haveLabelText) {
+    initTextSymbol(&ts);
+    msPopulateTextSymbolForLabelAndString(&ts, label, string, scalefactor, image->resolutionfactor, 0);
+    if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,&ts))) {
+      freeTextSymbol(&ts);
+      return MS_FAILURE;
+    }
   }
 
   labelPoly.line = &labelPolyLine; /* setup the label polygon structure */
@@ -2096,12 +2121,14 @@ int msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, l
       int i;
 
       for(i=0; i<label->numstyles; i++) {
-        if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+        if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT
+           || label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_NONE) {
           if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, image, &labelPnt, label->styles[i], scalefactor))) {
-            freeTextSymbol(&ts);
+            if(haveLabelText)
+              freeTextSymbol(&ts);
             return MS_FAILURE;
           }
-        } else if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+        } else if(haveLabelText && label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
           if(needLabelPoly) {
             p = get_metrics(&labelPnt, label->position, ts.textpath, label->offsetx * ts.scalefactor,
                     label->offsety * ts.scalefactor, ts.rotation, 1, &lbounds);
@@ -2125,20 +2152,23 @@ int msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, l
           }
         } else {
           msSetError(MS_MISCERR,"Unknown label geomtransform %s", "msDrawLabel()",label->styles[i]->_geomtransform.string);
-          freeTextSymbol(&ts);
+          if(haveLabelText)
+            freeTextSymbol(&ts);
           return MS_FAILURE;
         }
       }
     }
 
-    if(needLabelPoint)
-      p = get_metrics(&labelPnt, label->position, ts.textpath, label->offsetx * ts.scalefactor,
-              label->offsety * ts.scalefactor, ts.rotation, 0, &lbounds);
+    if(haveLabelText) {
+      if(needLabelPoint)
+        p = get_metrics(&labelPnt, label->position, ts.textpath, label->offsetx * ts.scalefactor,
+                        label->offsety * ts.scalefactor, ts.rotation, 0, &lbounds);
 
-    /* draw the label text */
-    if(UNLIKELY(MS_FAILURE == msDrawTextSymbol(map,image,p,&ts))) {
-      freeTextSymbol(&ts);
-      return MS_FAILURE;
+      /* draw the label text */
+      if(UNLIKELY(MS_FAILURE == msDrawTextSymbol(map,image,p,&ts))) {
+        freeTextSymbol(&ts);
+        return MS_FAILURE;
+      }
     }
   } else {
     labelPnt.x += label->offsetx * ts.scalefactor;
@@ -2148,12 +2178,13 @@ int msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, l
       int i;
 
       for(i=0; i<label->numstyles; i++) {
-        if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+        if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT ||
+           label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_NONE) {
           if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, image, &labelPnt, label->styles[i], scalefactor))) {
             freeTextSymbol(&ts);
             return MS_FAILURE;
           }
-        } else if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+        } else if(haveLabelText && label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
           if(needLabelPoly) {
             get_metrics(&labelPnt, label->position, ts.textpath, label->offsetx * ts.scalefactor,
                     label->offsety * ts.scalefactor, ts.rotation, 1, &lbounds);
@@ -2176,19 +2207,23 @@ int msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, l
           }
         } else {
           msSetError(MS_MISCERR,"Unknown label geomtransform %s", "msDrawLabel()",label->styles[i]->_geomtransform.string);
-          freeTextSymbol(&ts);
+          if(haveLabelText)
+            freeTextSymbol(&ts);
           return MS_FAILURE;
         }
       }
     }
 
-    /* draw the label text */
-    if(UNLIKELY(MS_FAILURE == msDrawTextSymbol(map,image,labelPnt,&ts))) {
-      freeTextSymbol(&ts);
-      return MS_FAILURE;
+    if(haveLabelText) {
+      /* draw the label text */
+      if(UNLIKELY(MS_FAILURE == msDrawTextSymbol(map,image,labelPnt,&ts))) {
+        freeTextSymbol(&ts);
+        return MS_FAILURE;
+      }
     }
   }
-  freeTextSymbol(&ts);
+  if(haveLabelText)
+    freeTextSymbol(&ts);
 
   return MS_SUCCESS;
 }
diff --git a/mapdrawgdal.c b/mapdrawgdal.c
index e843318..f90f2ac 100644
--- a/mapdrawgdal.c
+++ b/mapdrawgdal.c
@@ -217,21 +217,21 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
     urx = GEO_TRANS(adfInvGeoTransform+0,copyRect.maxx,copyRect.maxy);
     ury = GEO_TRANS(adfInvGeoTransform+3,copyRect.maxx,copyRect.maxy);
 
-    src_xoff = MAX(0,(int) floor(llx+0.5));
-    src_yoff = MAX(0,(int) floor(ury+0.5));
-    src_xsize = MIN(MAX(0,(int) (urx - llx + 0.5)),
+    src_xoff = MS_MAX(0,(int) floor(llx+0.5));
+    src_yoff = MS_MAX(0,(int) floor(ury+0.5));
+    src_xsize = MS_MIN(MS_MAX(0,(int) (urx - llx + 0.5)),
                     GDALGetRasterXSize(hDS) - src_xoff);
-    src_ysize = MIN(MAX(0,(int) (lly - ury + 0.5)),
+    src_ysize = MS_MIN(MS_MAX(0,(int) (lly - ury + 0.5)),
                     GDALGetRasterYSize(hDS) - src_yoff);
 
     /* We want very small windows to use at least one source pixel (#4172) */
     if( src_xsize == 0 && (urx - llx) > 0.0 ) {
       src_xsize = 1;
-      src_xoff = MIN(src_xoff,GDALGetRasterXSize(hDS)-1);
+      src_xoff = MS_MIN(src_xoff,GDALGetRasterXSize(hDS)-1);
     }
     if( src_ysize == 0 && (lly - ury) > 0.0 ) {
       src_ysize = 1;
-      src_yoff = MIN(src_yoff,GDALGetRasterYSize(hDS)-1);
+      src_yoff = MS_MIN(src_yoff,GDALGetRasterYSize(hDS)-1);
     }
 
     if( src_xsize == 0 || src_ysize == 0 ) {
@@ -251,11 +251,11 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
 
     dst_lrx = (int) ((copyRect.maxx - mapRect.minx) / map->cellsize + 0.5);
     dst_lry = (int) ((mapRect.maxy - copyRect.miny) / map->cellsize + 0.5);
-    dst_lrx = MAX(0,MIN(image->width,dst_lrx));
-    dst_lry = MAX(0,MIN(image->height,dst_lry));
+    dst_lrx = MS_MAX(0,MS_MIN(image->width,dst_lrx));
+    dst_lry = MS_MAX(0,MS_MIN(image->height,dst_lry));
 
-    dst_xsize = MAX(0,MIN(image->width,dst_lrx - dst_xoff));
-    dst_ysize = MAX(0,MIN(image->height,dst_lry - dst_yoff));
+    dst_xsize = MS_MAX(0,MS_MIN(image->width,dst_lrx - dst_xoff));
+    dst_ysize = MS_MAX(0,MS_MIN(image->height,dst_lry - dst_yoff));
 
     if( dst_xsize == 0 || dst_ysize == 0 ) {
       if( layer->debug )
@@ -290,8 +290,8 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
   else {
     dst_xoff = src_xoff = 0;
     dst_yoff = src_yoff = 0;
-    dst_xsize = src_xsize = MIN(image->width,src_xsize);
-    dst_ysize = src_ysize = MIN(image->height,src_ysize);
+    dst_xsize = src_xsize = MS_MIN(image->width,src_xsize);
+    dst_ysize = src_ysize = MS_MIN(image->height,src_ysize);
   }
 
   /*
@@ -533,7 +533,7 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
       return -1;
     }
 
-    color_count = MIN(256,GDALGetColorEntryCount(hColorMap));
+    color_count = MS_MIN(256,GDALGetColorEntryCount(hColorMap));
     for(i=0; i < color_count; i++) {
       colorObj pixel;
       int colormap_index;
@@ -598,7 +598,7 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
     cmap_set = TRUE;
 #endif
 
-    color_count = MIN(256,GDALGetColorEntryCount(hColorMap));
+    color_count = MS_MIN(256,GDALGetColorEntryCount(hColorMap));
 
     for(i=0; i < color_count; i++) {
       GDALColorEntry sEntry;
@@ -889,8 +889,8 @@ static int ParseDefaultLUT( const char *lut_def, GByte *lut )
         lut_read++;
     }
 
-    this_in = MAX(0,MIN(255,this_in));
-    this_out = MAX(0,MIN(255,this_out));
+    this_in = MS_MAX(0,MS_MIN(255,this_in));
+    this_out = MS_MAX(0,MS_MIN(255,this_out));
 
     /* apply linear values from last in:out to this in:out */
     for( lut_i = last_in; lut_i <= this_in; lut_i++ ) {
@@ -1275,8 +1275,8 @@ LoadGDALImages( GDALDatasetH hDS, int band_numbers[4], int band_count,
           bMinMaxSet = TRUE;
         }
 
-        dfScaleMin = MIN(dfScaleMin,pafRawData[i]);
-        dfScaleMax = MAX(dfScaleMax,pafRawData[i]);
+        dfScaleMin = MS_MIN(dfScaleMin,pafRawData[i]);
+        dfScaleMax = MS_MAX(dfScaleMax,pafRawData[i]);
       }
 
       if( dfScaleMin == dfScaleMax )
@@ -1768,8 +1768,8 @@ msDrawRasterLayerGDAL_16BitClassification(
       fDataMin = fDataMax = pafRawData[i];
       bGotFirstValue = TRUE;
     } else {
-      fDataMin = MIN(fDataMin,pafRawData[i]);
-      fDataMax = MAX(fDataMax,pafRawData[i]);
+      fDataMin = MS_MIN(fDataMin,pafRawData[i]);
+      fDataMax = MS_MAX(fDataMax,pafRawData[i]);
     }
   }
 
@@ -2018,7 +2018,7 @@ int *msGetGDALBandList( layerObj *layer, void *hDS,
   /* -------------------------------------------------------------------- */
   if( CSLFetchNameValue( layer->processing, "BANDS" ) == NULL ) {
     if( max_bands > 0 )
-      *band_count = MIN(file_bands,max_bands);
+      *band_count = MS_MIN(file_bands,max_bands);
     else
       *band_count = file_bands;
 
diff --git a/mapfile.c b/mapfile.c
index e83bfe4..244c0d6 100644
--- a/mapfile.c
+++ b/mapfile.c
@@ -62,7 +62,7 @@ extern char *msyystring;
 extern char *msyybasepath;
 extern int msyyreturncomments;
 extern char *msyystring_buffer;
-extern char msyystring_icase;
+extern int msyystring_icase;
 
 extern int loadSymbol(symbolObj *s, char *symbolpath); /* in mapsymbol.c */
 extern void writeSymbol(symbolObj *s, FILE *stream); /* in mapsymbol.c */
@@ -548,7 +548,7 @@ static void writeNumber(FILE *stream, int indent, const char *name, double defau
 {
   if(number == defaultNumber) return; /* don't output default */
   writeIndent(stream, ++indent);
-  msIO_fprintf(stream, "%s %g\n", name, number);
+  msIO_fprintf(stream, "%s %.15g\n", name, number);
 }
 
 static void writeCharacter(FILE *stream, int indent, const char *name, const char defaultCharacter, char character)
@@ -956,7 +956,7 @@ static int loadFeature(layerObj *player, int type)
         }
         if (string) {
           if(shape->values) msFreeCharArray(shape->values, shape->numvalues);
-          shape->values = msStringSplit(string, ';', &shape->numvalues);
+          shape->values = msStringSplitComplex(string, ";", &shape->numvalues,MS_ALLOWEMPTYTOKENS);
           msFree(string); /* clean up */
         }
         break;
@@ -5059,13 +5059,16 @@ static int loadOutputFormat(mapObj *map)
               || format->imagemode == MS_IMAGEMODE_BYTE )
             format->renderer = MS_RENDER_WITH_RAWDATA;
         }
-
-        format->numformatoptions = numformatoptions;
-        if( numformatoptions > 0 ) {
-          format->formatoptions = (char **)
-          msSmallMalloc(sizeof(char *)*numformatoptions );
-          memcpy( format->formatoptions, formatoptions,
-                  sizeof(char *)*numformatoptions );
+        while(numformatoptions--) {
+          char *key = strchr(formatoptions[numformatoptions],'=');
+          if(!key || !*(key+1)) {
+            msSetError(MS_MISCERR,"Failed to parse FORMATOPTION, expecting \"KEY=VALUE\" syntax.","loadOutputFormat()");
+            goto load_output_error;
+          }
+          *key = 0;
+          key++;
+          msSetOutputFormatOption(format,formatoptions[numformatoptions],key);
+          free(formatoptions[numformatoptions]);
         }
 
         format->inmapfile = MS_TRUE;
@@ -5106,8 +5109,7 @@ static int loadOutputFormat(mapObj *map)
         if(getString(&value) == MS_FAILURE)
           goto load_output_error;
         if( numformatoptions < MAX_FORMATOPTIONS )
-          formatoptions[numformatoptions++] = msStrdup(value);
-        free(value);
+          formatoptions[numformatoptions++] = value;
         value=NULL;
         break;
       case(IMAGEMODE):
@@ -6235,12 +6237,19 @@ int msSaveMap(mapObj *map, char *filename)
 static int loadMapInternal(mapObj *map)
 {
   int foundMapToken=MS_FALSE;
+  int foundBomToken = MS_FALSE;
   int token;
 
   for(;;) {
 
     token = msyylex();
 
+    if(!foundBomToken && token == BOM) {
+      foundBomToken = MS_TRUE;
+      if(!foundMapToken) {
+        continue; /*skip a leading bom*/
+      }
+    }
     if(!foundMapToken && token != MAP) {
       msSetError(MS_IDENTERR, "First token must be MAP, this doesn't look like a mapfile.", "msLoadMap()");
       return(MS_FAILURE);
diff --git a/mapfile.h b/mapfile.h
index 4057de8..8633f84 100644
--- a/mapfile.h
+++ b/mapfile.h
@@ -312,6 +312,8 @@ enum MS_TOKEN_SOURCES {MS_FILE_TOKENS=0, MS_STRING_TOKENS, MS_URL_TOKENS};
 #define SCALETOKEN 1270
 #define VALUES 1271
 
+#define TILESRS 1272
+
 /* rfc 93 support for utfgrid */
 #define UTFDATA 1280
 #define UTFITEM 1281
@@ -321,9 +323,11 @@ enum MS_TOKEN_SOURCES {MS_FILE_TOKENS=0, MS_STRING_TOKENS, MS_URL_TOKENS};
 #define COMPOP 1291
 #define COMPFILTER 1292
 
+
+#define BOM 1300
+
 /* rfc59 bindvals objects */
 #define BINDVALS 2000
 
-#define TILESRS 1272
 
 #endif /* MAPFILE_H */
diff --git a/mapgeomtransform.c b/mapgeomtransform.c
index 1458017..e427ad5 100644
--- a/mapgeomtransform.c
+++ b/mapgeomtransform.c
@@ -83,12 +83,30 @@ double calcOrientation(pointObj *p1, pointObj *p2)
 
 double calcMidAngle(pointObj *p1, pointObj *p2, pointObj *p3)
 {
-  double theta1,theta2;
-  theta1 = atan2(p1->x-p2->x,p1->y-p2->y);
-  if(theta1<0) theta1 += MS_2PI;
-  theta2 = atan2(p3->x-p2->x,p3->y-p2->y);
-  if(theta2<0) theta2 += MS_2PI;
-  return MS_RAD_TO_DEG*((theta1+theta2)/2.0);
+  pointObj p1n;
+  double dx12, dy12, dx23, dy23, l12, l23;
+
+  /* We treat both segments as vector 1-2 and vector 2-3 and 
+   * compute their dx,dy and length 
+   */
+  dx12 = p2->x - p1->x;
+  dy12 = p2->y - p1->y;
+  l12 = sqrt(dx12*dx12 + dy12*dy12);
+  dx23 = p3->x - p2->x;
+  dy23 = p3->y - p2->y;
+  l23 = sqrt(dx23*dx23 + dy23*dy23);
+
+  /* Normalize length of vector 1-2 to same as length of vector 2-3 */
+  if (l12 > 0.0)
+  {
+    p1n.x = p2->x - dx12*(l23/l12);
+    p1n.y = p2->y - dy12*(l23/l12);
+  }
+  else
+    p1n = *p2;  /* segment 1-2 is 0-length, use segment 2-3 for orientation */
+
+  /* Return the orientation defined by the sum of the normalized vectors */
+  return calcOrientation(&p1n, p3);
 }
 
 /*
@@ -180,6 +198,15 @@ int msDrawTransformedShape(mapObj *map, imageObj *image, shapeObj *shape, styleO
 
       p.shape = shape; /* set a few parser globals (hence the lock) */
       p.expr = &(style->_geomtransform);
+
+      if(p.expr->tokens == NULL) { /* this could happen if drawing originates from legend code (#5193) */
+        status = msTokenizeExpression(p.expr, NULL, NULL);
+        if(status != MS_SUCCESS) {
+          msSetError(MS_MISCERR, "Unable to tokenize expression.", "msDrawTransformedShape()");
+          return MS_FAILURE;
+        }
+      }
+
       p.expr->curtoken = p.expr->tokens; /* reset */
       p.type = MS_PARSE_TYPE_SHAPE;
 
diff --git a/mapimageio.c b/mapimageio.c
index e6bdcb5..95feda2 100644
--- a/mapimageio.c
+++ b/mapimageio.c
@@ -210,7 +210,7 @@ int saveAsJPEG(mapObj *map, rasterBufferObj *rb, streamInfo *info,
       /* If the user doesn't provide a value for JPEGMEM, we want to be sure */
       /* that at least the image size will be used before creating the temporary file */
       cinfo.mem->max_memory_to_use =
-        MAX(cinfo.mem->max_memory_to_use, cinfo.input_components * rb->width * rb->height);
+        MS_MAX(cinfo.mem->max_memory_to_use, cinfo.input_components * rb->width * rb->height);
     }
   }
 
@@ -391,11 +391,13 @@ int readPalette(const char *palette, rgbaPixel *entries, unsigned int *nEntries,
       continue; /* skip comments and blank lines */
     if(!useAlpha) {
       if(3 != sscanf(buffer,"%d,%d,%d\n",&r,&g,&b)) {
+        fclose(stream);
         msSetError(MS_MISCERR,"failed to parse color %d r,g,b triplet in line \"%s\" from file %s","readPalette()",*nEntries+1,buffer,palette);
         return MS_FAILURE;
       }
     } else {
       if(4 != sscanf(buffer,"%d,%d,%d,%d\n",&r,&g,&b,&a)) {
+        fclose(stream);
         msSetError(MS_MISCERR,"failed to parse color %d r,g,b,a quadruplet in line \"%s\" from file %s","readPalette()",*nEntries+1,buffer,palette);
         return MS_FAILURE;
       }
@@ -1058,6 +1060,13 @@ int readGIF(char *path, rasterBufferObj *rb)
 
   } while (recordType != TERMINATE_RECORD_TYPE);
 
+
+#if defined GIFLIB_MAJOR && GIFLIB_MINOR && ((GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1) || (GIFLIB_MAJOR > 5))
+  if (DGifCloseFile(image, &errcode) == GIF_ERROR) {
+    msSetError(MS_MISCERR,"failed to close gif after loading: %s","readGIF()", gif_error_msg(errcode));
+    return MS_FAILURE;
+  }
+#else
   if (DGifCloseFile(image) == GIF_ERROR) {
 #if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
     msSetError(MS_MISCERR,"failed to close gif after loading: %s","readGIF()", gif_error_msg(image->Error));
@@ -1066,6 +1075,7 @@ int readGIF(char *path, rasterBufferObj *rb)
 #endif
     return MS_FAILURE;
   }
+#endif
 
   return MS_SUCCESS;
 }
@@ -1082,6 +1092,7 @@ int msLoadMSRasterBufferFromFile(char *path, rasterBufferObj *rb)
     return MS_FAILURE;
   }
   if(1 != fread(signature,8,1,stream)) {
+    fclose(stream);
     msSetError(MS_MISCERR, "Unable to read header from image file %s", "msLoadMSRasterBufferFromFile()",path);
     return MS_FAILURE;
   }
diff --git a/mapjoin.c b/mapjoin.c
index 6353d64..9bb24ed 100644
--- a/mapjoin.c
+++ b/mapjoin.c
@@ -362,6 +362,7 @@ int msCSVJoinConnect(layerObj *layer, joinObj *join)
   rewind(stream);
 
   if((joininfo->rows = (char ***) malloc(joininfo->numrows*sizeof(char **))) == NULL) {
+    fclose(stream);
     msSetError(MS_MEMERR, "Error allocating rows.", "msCSVJoinConnect()");
     return(MS_FAILURE);
   }
diff --git a/maplabel.c b/maplabel.c
index 6b804e1..87989b7 100644
--- a/maplabel.c
+++ b/maplabel.c
@@ -311,6 +311,9 @@ int msAddLabelGroup(mapObj *map, imageObj *image, int layerindex, int classindex
           /* label point does not intersect mask */
           return MS_SUCCESS;
         }
+      } else {
+        return MS_SUCCESS; /* label point does not intersect image extent, we cannot know if it intersects
+                             mask, so we discard it (#5237)*/
       }
     } else {
       msSetError(MS_MISCERR, "Layer (%s) references references a mask layer, but the selected renderer does not support them", "msAddLabelGroup()", layerPtr->name);
@@ -328,7 +331,7 @@ int msAddLabelGroup(mapObj *map, imageObj *image, int layerindex, int classindex
     }
     annotext = msShapeGetLabelAnnotation(layerPtr,shape,lbl);
     if(!annotext) {
-      for(s=0;s<lbl->numstyles;l++) {
+      for(s=0;s<lbl->numstyles;s++) {
         if(lbl->styles[s]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT)
           break; /* we have a "symbol only label, so we shouldn't skip this label */
       }
@@ -492,6 +495,9 @@ int msAddLabel(mapObj *map, imageObj *image, labelObj *label, int layerindex, in
             }
             return MS_SUCCESS;
           }
+        } else {
+          return MS_SUCCESS; /* label point does not intersect image extent, we cannot know if it intersects
+                                mask, so we discard it (#5237)*/
         }
       } else if (ts && ts->textpath) {
         int i = 0;
@@ -505,6 +511,11 @@ int msAddLabel(mapObj *map, imageObj *image, labelObj *label, int layerindex, in
               free(ts);
               return MS_SUCCESS;
             }
+          } else {
+            freeTextSymbol(ts);
+            free(ts);
+            return MS_SUCCESS; /* label point does not intersect image extent, we cannot know if it intersects
+                                  mask, so we discard it (#5237)*/
           }
         }
       }
diff --git a/maplayer.c b/maplayer.c
index 931b0bf..5d6b279 100644
--- a/maplayer.c
+++ b/maplayer.c
@@ -330,6 +330,14 @@ int msLayerNextShape(layerObj *layer, shapeObj *shape)
     if(rv != MS_SUCCESS) return rv;
 
     filter_passed = MS_TRUE;  /* By default accept ANY shape */
+    
+    /* attributes need to be iconv'd to UTF-8 before any filter logic is applied */
+    if(layer->encoding) {
+      rv = msLayerEncodeShapeAttributes(layer,shape);
+      if(rv != MS_SUCCESS)
+        return rv;
+    }
+    
     // if(layer->numitems > 0 && layer->iteminfo) {
       filter_passed = msEvalExpression(layer, shape, &(layer->filter), layer->filteritemindex);
     // }
@@ -344,11 +352,6 @@ int msLayerNextShape(layerObj *layer, shapeObj *shape)
       return rv;
   }
 
-  if(layer->encoding) {
-    rv = msLayerEncodeShapeAttributes(layer,shape);
-    if(rv != MS_SUCCESS)
-      return rv;
-  }
   
   return rv;
 }
diff --git a/maplegend.c b/maplegend.c
index a8dd733..2dcc91b 100644
--- a/maplegend.c
+++ b/maplegend.c
@@ -123,6 +123,7 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
   box.numlines = 1;
   box.line[0].point = box_point;
   box.line[0].numpoints = 5;
+  box.type = MS_SHAPE_POLYGON;
 
   box.line[0].point[0].x = dstX + polygon_contraction;
   box.line[0].point[0].y = dstY + polygon_contraction;
@@ -198,6 +199,7 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
       zigzag.numlines = 1;
       zigzag.line[0].point = zigzag_point;
       zigzag.line[0].numpoints = 4;
+      zigzag.type = MS_SHAPE_LINE;
 
       zigzag.line[0].point[0].x = dstX + offset;
       zigzag.line[0].point[0].y = dstY + height - offset;
@@ -651,7 +653,7 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
       }
 
       cur->classindex = j;
-      cur->layerindex = i;
+      cur->layerindex = map->layerorder[i];
       cur->pred = head;
       head = cur;
     }
diff --git a/maplexer.c b/maplexer.c
index a66819c..ef6aa22 100644
--- a/maplexer.c
+++ b/maplexer.c
@@ -380,8 +380,8 @@ static void yy_fatal_error (yyconst char msg[]  );
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 345
-#define YY_END_OF_BUFFER 346
+#define YY_NUM_RULES 346
+#define YY_END_OF_BUFFER 347
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -389,229 +389,229 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[2002] =
+static yyconst flex_int16_t yy_accept[2005] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  346,  343,    1,  341,  334,    2,  343,  343,
-      327,  340,  327,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  343,  343,  342,
-      342,    3,  343,  343,  343,  343,  343,  343,  343,  343,
-      343,  343,  343,  343,  343,  343,  343,    1,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  344,    1,
-        1,    6,  339,  344,  339,  344,  328,  328,   10,    7,
-
-        9,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-      342,   13,  342,  345,    1,  345,  345,  337,  335,  335,
-      336,    1,    2,    0,  332,  327,  327,  340,  327,  340,
-        0,  340,  331,  327,    0,  340,  340,  340,  340,  340,
-      340,  340,  340,  245,  340,  340,  340,  249,  340,  250,
-      340,  340,  255,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      268,  340,  340,  271,  340,  272,  340,  340,  340,  340,
-
-      340,  340,  340,  340,  340,  283,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  223,  340,  340,  309,  310,  340,  311,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-        0,  320,    0,  333,    0,    0,    0,    0,    0,    0,
+        0,    0,  347,  344,    1,  342,  335,    2,  344,  344,
+      328,  341,  328,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  344,  344,  344,
+      343,  343,    3,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,    1,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  345,
+        1,    1,    6,  340,  345,  340,  345,  329,  329,   10,
+
+        7,    9,  345,  345,  345,  345,  345,  345,  345,  345,
+      345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
+      345,  343,   13,  343,  346,    1,  346,  346,  338,  336,
+      336,  337,    1,    2,    0,  333,  328,  328,  341,  328,
+      341,    0,  341,  332,  328,    0,  341,  341,  341,  341,
+      341,  341,  341,  341,  246,  341,  341,  341,  250,  341,
+      251,  341,  341,  256,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  269,  341,  341,  272,  341,  273,  341,  341,  341,
+
+      341,  341,  341,  341,  341,  341,  284,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  224,  341,  341,  310,  311,  341,
+      312,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,    0,  321,    0,  334,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  319,  340,  340,  249,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  283,  340,  340,  340,  340,
-
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,    8,    0,    5,    0,  328,  328,  328,    0,
-      328,    0,   12,   14,    7,   11,    0,    0,    0,    0,
-        0,    0,    0,    0,    7,    0,    0,    0,   11,    9,
-       16,    0,   12,    0,   10,    0,    4,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  324,
-        0,    0,  329,   15,    0,  338,    0,  337,  335,  335,
-      336,  327,    0,    0,  340,  327,  331,  330,  327,    0,
-        0,  327,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-
-      340,  340,  340,  340,  251,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,   77,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,   92,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  133,  134,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  281,  282,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  303,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  235,  316,  340,
-      237,  317,  340,    0,    0,    0,    0,    0,    0,    0,
-        0,  134,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  235,    0,  318,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  281,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-        0,    0,    0,    0,    0,  328,  328,    0,    0,  328,
+        0,    0,    0,    0,    0,  320,  341,  341,  250,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  284,  341,  341,
+
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,    8,    0,    5,    0,  329,  329,
+      329,    0,  329,    0,   12,   14,    7,   11,    0,    0,
+        0,    0,    0,    0,    0,    0,    7,    0,    0,    0,
+       11,    9,   16,    0,   12,    0,   10,    0,    4,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  325,    0,    0,  330,   15,    0,  339,    0,  338,
+      336,  336,  337,  328,    0,    0,  341,  328,  332,  331,
+      328,    0,    0,  328,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+
+      341,  341,  341,  341,  341,  341,  252,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,   78,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,   93,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  134,  135,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  282,  283,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  304,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  236,
+      317,  341,  238,  318,  341,   56,    0,    0,    0,    0,
+        0,    0,    0,    0,  135,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  236,    0,  319,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  282,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,    0,    0,    0,    0,    0,  329,  329,
+        0,    0,  329,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    6,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  327,  330,    0,  327,  340,  340,
-      340,  340,  340,  240,  340,  340,  340,  340,  340,  340,
-      340,  244,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,   70,  340,  340,  340,  340,   74,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  259,  340,  340,
-      340,   87,  340,  340,  340,   91,  340,  340,  340,   94,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  112,  340,  340,  340,  340,  340,  340,  340,  340,
-
-      340,  269,  340,  270,  340,  137,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  168,  340,  279,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  206,  340,  340,
-      340,  340,  340,  340,  340,  218,  340,  305,  340,  340,
-      340,  340,  307,  229,  340,  340,  340,  340,  340,  340,
-
-      340,  340,  340,  238,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  206,    0,    0,
-        0,  340,  340,   70,  340,   87,  340,  340,  340,  340,
-      340,  340,  340,  206,  340,  340,  307,  325,    0,  328,
-       17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    6,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  328,  331,    0,
+      328,  341,  341,  341,  341,  341,  241,  341,  341,  341,
+      341,  341,  341,  341,  245,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,   71,  341,  341,  341,  341,
+       75,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      260,  341,  341,  341,   88,  341,  341,  341,   92,  341,
+      341,  341,   95,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  113,  341,  341,  341,  341,  341,
+
+      341,  341,  341,  341,  270,  341,  271,  341,  138,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  169,  341,
+      280,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      207,  341,  341,  341,  341,  341,  341,  341,  219,  341,
+      306,  341,  341,  341,  341,  308,  230,  341,  341,  341,
+
+      341,  341,  341,  341,  341,  341,  239,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   44,    0,    0,    0,    0,
-        0,  326,   49,  340,   51,  340,  340,  241,  340,  340,
-      242,  340,  340,  340,  340,  340,  340,  247,  340,   59,
-      340,   63,  340,  340,  340,  340,  340,  340,  340,   72,
-
-      340,  340,  340,  340,  257,   75,  340,   78,  340,  340,
-      258,  340,  340,  340,  340,  340,  340,   89,  340,  340,
-      261,  340,  340,   97,  262,  340,  340,   99,  340,  340,
-      108,  340,  340,  185,  340,  340,  340,  340,  340,  116,
-      267,  340,  126,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  276,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  277,  340,
-      253,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  290,  340,  340,
-
-      340,  340,  340,  340,  340,  340,  294,  340,  340,  340,
-      340,  340,  340,  340,  340,  296,  297,  199,  340,  340,
-      340,  340,  340,  340,  301,  340,  340,  209,  340,  215,
-      340,  340,  340,  340,  222,  340,  340,  340,  340,  312,
-      230,  340,  340,  340,  340,  340,  340,  236,   51,   59,
-        0,    0,    0,  116,  126,    0,    0,    0,    0,    0,
-        0,  209,    0,  230,  340,   63,  340,  340,  340,  340,
-      340,  340,  340,  340,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   45,    0,    0,    0,    0,    0,    0,
-        0,   23,    0,   21,    0,    0,    0,    0,   22,    0,
-
-        0,    0,    0,  340,  340,  340,  340,  340,  340,  243,
-      340,   57,  246,  340,  248,  340,  340,  340,  340,  340,
-       66,  340,   67,  340,  340,  340,  340,  340,  340,   73,
-      340,  340,  340,  340,   80,  340,   83,   84,  260,  340,
-       86,  340,  340,  340,  340,   98,  264,  340,  340,  340,
-      340,  340,  340,  265,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  125,  127,
-      128,  340,  340,  135,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  273,  340,  274,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-
-      340,  340,  340,  340,  340,  280,  169,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  289,  288,  293,
-      184,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  295,  340,  194,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  299,  300,  340,  302,
-      208,  340,  211,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  234,  315,    0,
-       80,    0,    0,  128,    0,    0,    0,    0,    0,    0,
-      340,  211,  340,   41,   26,    0,    0,    0,    0,    0,
-        0,   40,    0,    0,    0,    0,    0,    0,   18,    0,
-
-        0,    0,    0,    0,   38,    0,    0,    0,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,   62,  340,
-      340,  340,  340,  314,  340,  340,  254,  340,  256,  340,
-      340,  340,   82,  340,   88,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  107,  340,  340,  340,  340,
-      340,  114,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  130,  340,  340,  138,  340,  340,  340,  340,  340,
-      340,  340,  340,  147,  340,  340,  340,  340,  340,  153,
-      340,  340,  340,  340,  340,  340,  340,  164,  340,  340,
-      340,  340,  340,  170,  340,  171,  340,  340,  340,  340,
-
-      340,  183,  340,  340,  291,  340,  292,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  221,  340,  340,  340,  340,  340,
-      231,  232,  340,  340,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  340,  340,   20,    0,   37,    0,    0,
-       42,    0,    0,    0,   24,    0,    0,    0,    0,    0,
-        0,   35,    0,    0,  321,  340,  340,  340,  340,  340,
-       55,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,   76,  340,  340,  340,  340,  340,  340,   95,
-
-      340,  340,  340,  340,  340,  106,  340,  340,  340,  340,
-      113,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      131,  340,  340,  340,  340,  340,  340,  340,  340,  143,
-      340,  340,  150,  151,  152,  340,  340,  340,  340,  340,
-      340,  160,  340,  340,  167,  278,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  182,  340,
-      340,  186,  340,  340,  188,  340,  340,  340,  192,  340,
-      340,  340,  340,  196,  340,  201,  340,  340,  298,  340,
-      340,  340,  340,  340,  340,  340,  216,  105,  340,  220,
-      340,  340,  340,  306,  308,  313,  340,    0,    0,    0,
-
-        0,  192,    0,    0,  201,    0,  216,   39,    0,   34,
-       25,   43,    0,    0,    0,   36,   28,    0,   19,    0,
-        0,  340,  340,   52,  340,   54,  340,   58,  340,   60,
-      340,  340,   65,  340,  340,   47,  340,  340,   81,  340,
-      340,  340,   96,  340,  103,  104,  340,  101,  340,  110,
-      111,  340,  340,  340,  340,  340,  119,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  146,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  163,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-
-      340,  340,  340,   48,  193,  340,  340,  340,  340,  340,
-      340,  340,  205,  207,  210,  340,  214,  340,  219,  224,
-      228,  340,  340,    0,    0,  101,    0,  193,    0,    0,
-        0,    0,    0,    0,    0,   31,    0,    0,  340,  239,
-      340,  340,   61,   46,   64,   68,  340,  340,   79,   85,
-      340,  340,  100,  340,  109,  340,  115,  266,  117,  340,
-      340,  340,  340,  340,  340,  136,  139,  340,  340,  340,
-      340,  340,  340,  340,  340,  154,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  284,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  252,
-
-      340,  189,  190,  340,  195,  340,  197,  200,  202,  340,
-      204,  340,  340,  340,  340,  233,    0,  100,  190,  197,
-        0,   27,   30,   33,   32,   29,    0,    0,   50,  340,
-      340,  340,   71,  340,  340,  340,  340,  340,  118,  340,
-      340,  340,  340,  340,  140,  141,  145,  142,  340,  340,
-      340,  149,  155,  340,  162,  159,  340,  340,  166,  340,
-      285,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      180,  340,  287,  304,  340,  191,  340,  203,  212,  340,
-      340,  340,  227,    0,  227,    0,    0,  340,   56,  340,
-      340,   90,  340,  102,  340,  340,  340,  340,  129,  340,
-
-      340,  340,  148,  340,  340,  165,  340,  340,  172,  173,
-      174,  340,  176,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  226,    0,    0,    0,  340,  340,  198,   93,
-      263,  120,  122,  124,  340,  340,  144,  340,  161,  275,
-      286,  340,  340,  340,  340,  181,  340,  340,  340,  340,
-      340,  198,    0,    0,  340,   69,  340,  340,  340,  340,
-      158,  340,  177,  178,  340,  187,  156,  340,  340,  225,
-        0,  322,   53,  340,  340,  132,  157,  340,  340,  340,
-      217,  323,  340,  340,  340,  340,  213,  340,  340,  340,
-      340,  121,  123,  340,  340,  340,  179,  340,  340,  175,
-
-        0
+      207,    0,    0,    0,  341,  341,   71,  341,   88,  341,
+      341,  341,  341,  341,  341,  341,  207,  341,  341,  308,
+      326,    0,  329,   17,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   44,    0,
+        0,    0,    0,    0,  327,   49,  341,   51,  341,  341,
+      242,  341,  341,  243,  341,  341,  341,  341,  341,  341,
+      248,  341,   60,  341,   64,  341,  341,  341,  341,  341,
+
+      341,  341,   73,  341,  341,  341,  341,  258,   76,  341,
+       79,  341,  341,  259,  341,  341,  341,  341,  341,  341,
+       90,  341,  341,  262,  341,  341,   98,  263,  341,  341,
+      100,  341,  341,  109,  341,  341,  186,  341,  341,  341,
+      341,  341,  117,  268,  341,  127,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  277,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  278,  341,  254,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+
+      291,  341,  341,  341,  341,  341,  341,  341,  341,  295,
+      341,  341,  341,  341,  341,  341,  341,  341,  297,  298,
+      200,  341,  341,  341,  341,  341,  341,  302,  341,  341,
+      210,  341,  216,  341,  341,  341,  341,  223,  341,  341,
+      341,  341,  313,  231,  341,  341,  341,  341,  341,  341,
+      237,   51,   60,    0,    0,    0,  117,  127,    0,    0,
+        0,    0,    0,    0,  210,    0,  231,  341,   64,  341,
+      341,  341,  341,  341,  341,  341,  341,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   45,    0,    0,    0,
+        0,    0,    0,    0,   23,    0,   21,    0,    0,    0,
+
+        0,   22,    0,    0,    0,    0,  341,  341,  341,  341,
+      341,  341,  244,  341,   58,  247,  341,  249,  341,  341,
+      341,  341,  341,   67,  341,   68,  341,  341,  341,  341,
+      341,  341,   74,  341,  341,  341,  341,   81,  341,   84,
+       85,  261,  341,   87,  341,  341,  341,  341,   99,  265,
+      341,  341,  341,  341,  341,  341,  266,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  126,  128,  129,  341,  341,  136,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      274,  341,  275,  341,  341,  341,  341,  341,  341,  341,
+
+      341,  341,  341,  341,  341,  341,  341,  341,  281,  170,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      290,  289,  294,  185,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  296,  341,  195,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  300,
+      301,  341,  303,  209,  341,  212,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      235,  316,    0,   81,    0,    0,  129,    0,    0,    0,
+        0,    0,    0,  341,  212,  341,   41,   26,    0,    0,
+        0,    0,    0,    0,   40,    0,    0,    0,    0,    0,
+
+        0,   18,    0,    0,    0,    0,    0,   38,    0,    0,
+        0,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,   63,  341,  341,  341,  341,  315,  341,  341,  255,
+      341,  257,  341,  341,  341,   83,  341,   89,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  108,  341,
+      341,  341,  341,  341,  115,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  131,  341,  341,  139,  341,  341,
+      341,  341,  341,  341,  341,  341,  148,  341,  341,  341,
+      341,  341,  154,  341,  341,  341,  341,  341,  341,  341,
+      165,  341,  341,  341,  341,  341,  171,  341,  172,  341,
+
+      341,  341,  341,  341,  184,  341,  341,  292,  341,  293,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  222,  341,  341,
+      341,  341,  341,  232,  233,  341,  341,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  341,  341,   20,    0,
+       37,    0,    0,   42,    0,    0,    0,   24,    0,    0,
+        0,    0,    0,    0,   35,    0,    0,  322,  341,  341,
+      341,  341,  341,   55,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,   77,  341,  341,  341,  341,
+
+      341,  341,   96,  341,  341,  341,  341,  341,  107,  341,
+      341,  341,  341,  114,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  132,  341,  341,  341,  341,  341,  341,
+      341,  341,  144,  341,  341,  151,  152,  153,  341,  341,
+      341,  341,  341,  341,  161,  341,  341,  168,  279,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  183,  341,  341,  187,  341,  341,  189,  341,  341,
+      341,  193,  341,  341,  341,  341,  197,  341,  202,  341,
+      341,  299,  341,  341,  341,  341,  341,  341,  341,  217,
+      106,  341,  221,  341,  341,  341,  307,  309,  314,  341,
+
+        0,    0,    0,    0,  193,    0,    0,  202,    0,  217,
+       39,    0,   34,   25,   43,    0,    0,    0,   36,   28,
+        0,   19,    0,    0,  341,  341,   52,  341,   54,  341,
+       59,  341,   61,  341,  341,   66,  341,  341,   47,  341,
+      341,   82,  341,  341,  341,   97,  341,  104,  105,  341,
+      102,  341,  111,  112,  341,  341,  341,  341,  341,  120,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  147,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  164,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+
+      341,  341,  341,  341,  341,  341,   48,  194,  341,  341,
+      341,  341,  341,  341,  341,  206,  208,  211,  341,  215,
+      341,  220,  225,  229,  341,  341,    0,    0,  102,    0,
+      194,    0,    0,    0,    0,    0,    0,    0,   31,    0,
+        0,  341,  240,  341,  341,   62,   46,   65,   69,  341,
+      341,   80,   86,  341,  341,  101,  341,  110,  341,  116,
+      267,  118,  341,  341,  341,  341,  341,  341,  137,  140,
+      341,  341,  341,  341,  341,  341,  341,  341,  155,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  285,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+
+      341,  341,  253,  341,  190,  191,  341,  196,  341,  198,
+      201,  203,  341,  205,  341,  341,  341,  341,  234,    0,
+      101,  191,  198,    0,   27,   30,   33,   32,   29,    0,
+        0,   50,  341,  341,  341,   72,  341,  341,  341,  341,
+      341,  119,  341,  341,  341,  341,  341,  141,  142,  146,
+      143,  341,  341,  341,  150,  156,  341,  163,  160,  341,
+      341,  167,  341,  286,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  181,  341,  288,  305,  341,  192,  341,
+      204,  213,  341,  341,  341,  228,    0,  228,    0,    0,
+      341,   57,  341,  341,   91,  341,  103,  341,  341,  341,
+
+      341,  130,  341,  341,  341,  149,  341,  341,  166,  341,
+      341,  173,  174,  175,  341,  177,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  227,    0,    0,    0,  341,
+      341,  199,   94,  264,  121,  123,  125,  341,  341,  145,
+      341,  162,  276,  287,  341,  341,  341,  341,  182,  341,
+      341,  341,  341,  341,  199,    0,    0,  341,   70,  341,
+      341,  341,  341,  159,  341,  178,  179,  341,  188,  157,
+      341,  341,  226,    0,  323,   53,  341,  341,  133,  158,
+      341,  341,  341,  218,  324,  341,  341,  341,  341,  214,
+      341,  341,  341,  341,  122,  124,  341,  341,  341,  180,
+
+      341,  341,  176,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -635,18 +635,18 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,   85,    1,    1,    1,
+       86,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,   87,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[86] =
+static yyconst flex_int32_t yy_meta[89] =
     {   0,
         1,    1,    2,    1,    3,    1,    4,    1,    1,    5,
         1,    1,    1,    1,    6,    7,    7,    7,    7,    3,
@@ -656,462 +656,464 @@ static yyconst flex_int32_t yy_meta[86] =
         8,    9,    6,    1,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-        1,    1,    1,    1,    1
+        1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[2021] =
+static yyconst flex_int16_t yy_base[2025] =
     {   0,
-        0,    0,   85,    0,  170,    0,  255,    0,  339,  343,
-      344,  345, 1180, 4548,  354, 4548, 4548,    0, 1116,  344,
-      346,  405,  361,  355,  403,  465,  405,  401,  470,  477,
-      488,  330,  319,  411,  528,  529,  416,  580,  588,  325,
-      544,  635,  590,  644,  417,  693,    0, 1068,  986, 4548,
-     4548, 4548,  333,  336,  344,  346,  398,  471,  426,  410,
-      408,  425,  532,  420,  467,  482,  496,  379,  530,  489,
-      698,  649,  694,  716,  641,  491,  534,  527,  745,  583,
-      538,  706,  754,  605,  758,  756,  762,  640, 4548,  576,
-      630, 1043, 1009, 1004,  948,  672,  784,  823,  926,  363,
-
-      916,  691,  752,  775,  799,  587,  816,  790,  647,  662,
-      818,  796,  809,  699,  827,  828,  752,  766,  831,  328,
-      853,  920, 4548, 4548,  870,  918,  912,    0,  821,  828,
-      886,  897,    0,  908,  896,  887,  891,    0,  893,  899,
-      869,  952,  863,  911,  909,  871,  948,  873,  914,  891,
-      940,  907,  950,    0,  912,  944,  940,  963,  953,    0,
-      939,  943,    0,  967,  962,  959,  962, 1004,  974,  970,
-     1001,  995, 1017, 1004, 1011, 1009, 1011, 1013, 1029, 1030,
-     1012, 1032, 1022, 1034, 1064, 1035, 1032, 1025, 1032, 1067,
-        0, 1076, 1064,    0, 1072,    0, 1070, 1076, 1116, 1078,
-
-     1072, 1080, 1088, 1089, 1085, 1102, 1111, 1130, 1115, 1134,
-     1122, 1123, 1120, 1124, 1137, 1138, 1143, 1136, 1176, 1147,
-     1137, 1162, 1153, 1167, 1177, 1168, 1153, 1200, 1190, 1185,
-     1200, 1191, 1196, 1194, 1229, 1193,    0,    0, 1202,    0,
-     1206, 1199, 1206, 1217, 1225, 1212, 1232, 1224, 1226, 1251,
-      800, 4548,  727,  704, 1246, 1253, 1249, 1237, 1258, 1262,
-     1253, 1247, 1250, 1261, 1273, 1267, 1244, 1246, 1271, 1264,
-     1272,  697,  527, 4548, 1286, 1274, 1277, 1268, 1269, 1292,
-     1305, 1308, 1299, 1302, 1313, 1301, 1316, 1331, 1296, 1320,
-     1320, 1310, 1320, 1312, 1329,    0, 1316, 1334, 1321, 1318,
-
-     1335, 1334, 1338, 1359, 1336, 1367, 1356, 1363, 1369, 1362,
-     1356, 1369, 4548,  690, 4548,  671, 1399, 1418, 1401, 1430,
-     1433, 1448, 4548, 4548, 4548, 4548, 1375, 1379, 1363, 1395,
-     1389, 1401, 1411, 1415, 1406, 1419, 1418, 1426, 1428, 4548,
-     1436, 1424, 1435, 1427, 4548, 1431, 4548, 1447, 1432, 1444,
-     1444, 1444, 1439, 1448, 1446,  667, 1469, 1470, 1471, 4548,
-      641,  469, 4548, 4548,  637, 4548,  629,    0, 4548, 4548,
-     4548, 1508, 1516,  368,  681,  728, 1465,    0, 1519, 1525,
-      913,  923, 1468, 1470, 1480, 1503, 1510, 1507, 1514, 1522,
-     1522, 1524, 1516, 1507, 1525, 1512, 1513, 1516, 1532, 1517,
-
-     1518, 1523, 1523, 1534,    0, 1540, 1521, 1573, 1523, 1530,
-     1538, 1546, 1532, 1560,    0, 1565, 1563, 1579, 1567, 1567,
-     1568, 1577, 1578, 1572, 1573, 1591, 1582,    0, 1583, 1584,
-     1579, 1596, 1580, 1599, 1599, 1598, 1601, 1601, 1605, 1594,
-     1611, 1623, 1623, 1628, 1634, 1631, 1643, 1642, 1638, 1646,
-     1648, 1634, 1650, 1651,    0,    0, 1646, 1647, 1689, 1652,
-     1670, 1658, 1661, 1743, 1664, 1652, 1659, 1694, 1685, 1705,
-     1698, 1696,    0,  621, 1714, 1717, 1721, 1705, 1705, 1708,
-     1731, 1748, 1731, 1743, 1757, 1751, 1752, 1767, 1754, 1766,
-     1754, 1774, 1776, 1786, 1785, 1774, 1781, 1791, 1786, 1794,
-
-     1802, 1807, 1793, 1805, 1809, 1803, 1816, 1799, 1808,    0,
-     1820, 1812, 1809, 1808, 1824, 1807, 1821, 1829, 1821, 1835,
-     1834, 1836, 1829, 1843, 1856, 1852, 1838,    0,    0, 1842,
-        0,    0, 1852, 1857, 1852, 1856, 1871, 1870, 1874, 1876,
-     1877, 4548, 1874, 1867, 1881, 1872, 1878, 1886, 1882, 1881,
-     1876, 4548,  578, 4548, 1878, 1883, 1887, 1902, 1905, 1904,
-     1891, 1894, 1912, 1912, 1918, 1922, 1919, 1925, 1914, 1923,
-     1918, 1933, 1925, 1934, 1940, 1941, 1945, 1932, 1944, 1932,
-      465,  686,  342,  783,  925, 1156, 1963, 1990, 1490, 1664,
-     1952, 1941, 1951, 1947, 1943, 1946, 1965, 1963, 1956, 1988,
-
-     1971, 1973, 1980, 1990, 1977, 1993, 1999, 1994, 1998, 4548,
-     1987, 1992, 1992, 1994, 1990, 2008, 2007, 2008, 2006, 1996,
-     2001, 2017,  816,  826, 1669, 4548, 1718, 1723, 2005, 2007,
-     2022, 2013, 2034,  372, 2031, 2032, 2040, 2032, 2054, 2037,
-     2052,    0, 2054, 2059, 2049, 2043, 2043, 2047, 2061, 2059,
-     2065, 2056, 2056, 2066, 2054, 2072, 2073,    0, 2064, 2077,
-     2059, 2085, 2077, 2092, 2086, 2108, 2093,    0, 2111, 2112,
-     2103, 2100, 2116, 2117, 2122,    0, 2104, 2105, 2118, 2110,
-     2114, 2124, 2128, 2114, 2130, 2131, 2116, 2114, 2130, 2122,
-     2122,    0, 2137, 2130, 2166, 2133, 2145, 2154, 2147, 2158,
-
-     2173,    0, 2165, 2177, 2176,    0, 2165, 2169, 2176, 2181,
-     2184, 2177, 2187, 2172, 2218, 2190, 2188, 2177, 2195, 2182,
-     2182, 2182, 2185, 2189, 2196, 2214, 2219, 2223, 2233, 2238,
-     2235, 2233, 2225, 2235, 2233,    0, 2237,    0, 2247, 2244,
-     2231, 2245, 2244, 2248, 2239, 2249, 2253, 2258, 2259, 2253,
-     2265, 2258, 2261, 2265, 2279, 2269, 2292, 2282, 2296, 2297,
-     2278, 2300, 2301, 2289, 2293, 2289, 2309, 2302, 2301, 2295,
-     2312, 2313, 2316, 2306, 2317, 2311, 2312, 2304, 2314, 2309,
-     2307, 2324, 2328, 2340, 2349,    0, 2353,    0, 2343, 2333,
-     2344, 2350, 2346,    0, 2353, 2349, 2368, 2350, 2352, 2369,
-
-     2370, 2362, 2370,    0, 2375, 2362, 2378, 2370, 2380, 2374,
-     2369, 2374, 2384, 2365, 2373, 2393, 2402, 4548, 2405, 2394,
-     2404, 2405, 2407,    0, 2412,    0, 2422, 2410, 2420, 2418,
-     2426, 2420, 2413,    0, 2419, 2423,    0, 4548, 2444, 2447,
-     4548, 2423, 2440, 2437, 2446, 2429, 2444, 2435, 2443, 2440,
-     2448, 2447, 2449, 2452, 2468, 2454, 2454, 2454, 2457, 2473,
-     2482, 2475, 2468, 2471, 2482, 4548, 2473, 2483, 2495, 2464,
-     2479, 4548,    0, 2479,    0, 2498, 2495,    0, 2491, 2501,
-        0, 2510, 2496, 2508, 2496, 2497, 2522,    0, 2524, 2524,
-     2527, 2516, 2526, 2520, 2530, 2544, 2527, 2548, 2549,    0,
-
-     2539, 2533, 2535, 2535,    0,    0, 2546,    0, 2538, 2539,
-        0, 2543, 2565, 2553, 2549, 2568, 2556,    0, 2555, 2558,
-        0, 2574, 2567,    0,    0, 2573, 2588, 2596, 2575, 2591,
-        0, 2595, 2589,    0, 2585, 2597, 2584, 2613, 2610, 2646,
-        0, 2605,    0, 2602, 2619, 2630, 2619, 2617, 2633, 2613,
-     2619, 2638, 2638, 2636, 2643, 2653, 2659, 2635, 2661, 2658,
-     2668, 2660, 2673, 2656,    0, 2651, 2674, 2654, 2660, 2680,
-     2667, 2665, 2679, 2695, 2671, 2696, 2686, 2696,    0, 2685,
-        0, 2708, 2702, 2695, 2697, 2703, 2699, 2715, 2707, 2702,
-     2722, 2724, 2708, 2719, 2715, 2719, 2722, 2718, 2723, 2724,
-
-     2731, 2754, 2742, 2735, 2728, 2752, 2767, 2749, 2741, 2755,
-     2747, 2753, 2756, 2759, 2758,    0,    0, 2779, 2762, 2761,
-     2769, 2782, 2783, 2781,    0, 2791, 2778, 2789, 2788,    0,
-     2800, 2801, 2803, 2787,    0, 2805, 2818, 2802, 2795,    0,
-        0, 2801, 2817, 2805, 2834, 2819, 2821,    0, 4548, 4548,
-     2822, 2822, 2840, 4548, 4548, 2840, 2842, 2833, 2842, 2828,
-     2848, 4548, 2841, 4548, 2852,    0, 2838, 2859, 2841, 2877,
-     2866, 2849, 2859, 2878, 2878, 2865, 2878, 2876, 2882, 2878,
-     2888, 2891, 2882, 4548, 2900, 2899, 2904, 2905, 2888, 2905,
-     2901, 4548, 2910, 4548, 2903, 2911, 2911, 2916, 4548, 2908,
-
-     2894, 2926, 2920, 2914, 2913, 2932, 2929, 2925, 2934,    0,
-     2941,    0,    0, 2928,    0, 2936, 2937, 2940, 2958, 2950,
-        0, 2954,    0, 2945, 2948, 2947, 2954, 2949, 2955,    0,
-     2966, 2959, 2955, 2971,    0, 2976,    0, 2973,    0, 2963,
-        0, 2969, 2985, 2966, 2986,    0,    0, 2977, 2980, 3002,
-     2985, 2982, 2990,    0, 3004, 2998, 3015, 3018, 3016, 3014,
-     3019, 3022, 3007, 3027, 3014, 3010, 3034, 3026,    0,    0,
-     3026, 3017, 3027, 3023, 3025, 3026, 3026, 3028, 3026, 3048,
-     3047, 3039, 3053, 3063, 3065, 3054, 3051,    0, 3052,    0,
-     3062, 3062, 3063, 3063, 3066, 3064, 3084, 3083, 3079, 3087,
-
-     3089, 3078, 3075, 3085, 3097,    0,    0, 3099,  360, 3080,
-     3087, 3102, 3102, 3085, 3099, 3101, 3096,    0,    0,    0,
-        0, 3113, 3113, 3115, 3112, 3127, 3131, 3114, 3121, 3123,
-     3129, 3144, 3128,    0, 3135,    0, 3129, 3148, 3148, 3134,
-     3154, 3151, 3142, 3154, 3170, 3159,    0,    0, 3157,    0,
-        0, 3147, 3149, 3149, 3150, 3168, 3172, 3159, 3167, 3177,
-     3192, 3182, 3179, 3195, 3189, 3200, 3186,    0,    0, 3192,
-     4548, 3195, 3186, 4548, 3193, 3213, 3201, 3196, 3216, 3217,
-     3194,    0, 3201, 4548, 4548, 3197, 3214, 3210, 3225, 3217,
-     3218, 4548, 3233, 3211, 3227, 3224, 3238, 3233, 4548, 3238,
-
-     3249, 3237, 3243, 3239, 4548, 3261, 3262,  316, 3253, 3260,
-     3271, 3252, 3270, 3257, 3262, 3273, 3264, 3275,    0, 3267,
-     3263, 3264, 3283,    0, 3273, 3287,    0, 3284,    0, 3290,
-     3292, 3287,    0, 3285,    0, 3297, 3302, 3305, 3302, 3307,
-     3316, 3301, 3321, 3310, 3317,    0, 3323, 3328, 3322, 3330,
-     3332,    0, 3329, 3334, 3337, 3323, 3337, 3319, 3331, 3329,
-     3339,    0, 3341, 3347,    0, 3349, 3358, 3342, 3355, 3349,
-     3355, 3366, 3374,    0, 3371, 3369, 3374, 3382, 3379,    0,
-     3379, 3390, 3371, 3384, 3378, 3377, 3394,    0, 3391, 3389,
-     3394, 3398, 3392,    0, 3392,    0, 3392, 3414, 3401, 3438,
-
-     3399,    0, 3420, 3419,    0, 3415,    0, 3423, 3438, 3419,
-     3436, 3437, 3432, 3438, 3450, 3455, 3454, 3452, 3443, 3454,
-     3446, 3451, 3455, 3463, 3454, 3461, 3458, 3459, 3475, 3499,
-     3478, 3479, 3486, 3486,    0, 3500, 3487, 3488, 3502, 3503,
-        0,    0, 3494, 3504, 3503, 3504, 3501, 3510, 3504, 3518,
-     3514, 3506, 3507, 3526, 3521, 4548, 3508, 4548, 3517, 3512,
-     4548, 3524, 3522, 3540, 4548, 3550, 3552, 3545, 3540, 3557,
-     3560, 4548, 3564, 3556, 4548, 3561, 3559, 3556, 3563, 3565,
-        0, 3561, 3563, 3561, 3570, 3579, 3582, 3583, 3574, 3585,
-     3586, 3573,    0, 3587, 3589, 3599, 3587, 3592, 3610,    0,
-
-     3601, 3618, 3616, 3614, 3622,    0, 3627, 3624, 3611, 3617,
-        0, 3618, 3618, 3629, 3626, 3627, 3622, 3624, 3623, 3627,
-     3635, 3623, 3624, 3637, 3634, 3649, 3634, 3656, 3664, 3662,
-     3647, 3672,    0,    0,    0, 3651, 3664, 3667, 3682, 3666,
-     3681, 3686, 3669, 3691,    0,    0, 3680, 3693, 3684, 3698,
-     3686, 3693, 3685, 3704, 3691, 3706, 3689, 3702,    0, 3705,
-     3694,    0, 3697, 3706,    0, 3712, 3713, 3718,    0, 3722,
-     3734, 3720, 3728,    0, 3733,    0, 3735, 3746,    0, 3740,
-     3727, 3746, 3736, 3743, 3759, 3741, 3747,    0, 3740,    0,
-     3760, 3754, 3763,    0,    0,    0, 3754, 3751, 3758, 3769,
-
-     3760, 4548, 3771, 3762, 4548, 3775,    0, 4548, 3785, 4548,
-     4548, 4548, 3763, 3770, 3777, 4548, 3781, 3800, 4548, 3797,
-     3798, 3788, 3798,    0, 3809,    0, 3801,    0, 3799,    0,
-     3811, 3799,    0, 3804, 3804,    0, 3803, 3811,    0, 3816,
-     3821, 3825,    0, 3816,    0,    0, 3826,    0, 3820,    0,
-        0, 3818, 3831, 3820, 3837, 3849,    0, 3848, 3849, 3846,
-     3844, 3857, 3854, 3858, 3861, 3866, 3852, 3873,    0, 3859,
-     3871, 3868, 3858, 3874, 3877, 3879, 3865, 3886,    0, 3886,
-     3883, 3873, 3887, 3883, 3893, 3879, 3888, 3897, 3891, 3909,
-     3901, 3890, 3903, 3899, 3894, 3908, 3920, 3921, 3921, 3931,
-
-     3929, 3923, 3937,    0,    0, 3924, 3920, 3927, 3929, 3932,
-     3932, 3944,    0,    0,    0, 3941,    0, 3953,    0, 3934,
-        0, 3944, 3945, 3940, 3943, 4548, 3948, 4548, 3949, 3952,
-     3969, 3970, 3957, 3959, 3961, 4548, 3970, 3969, 3963,    0,
-     3984, 3994,    0,    0,    0, 3976, 3986, 3992,    0,    0,
-     3987, 3988,    0, 3984,    0, 3999,    0,    0,    0, 3989,
-     4010, 4014, 3998, 4016, 3996,    0,    0, 4016, 4003, 4015,
-     4012, 4024, 4014, 4025, 4025,    0, 4031, 4018, 4030, 4029,
-     4029, 4040, 4040, 4037, 4025,    0, 4048, 4043, 4042, 4062,
-     4053, 4050, 4047, 4051, 4059, 4068, 4075, 4059, 4059,    0,
-
-     4081,    0,    0, 4063,    0, 4083,    0,    0,    0, 4067,
-        0, 4081, 4067, 4076, 4100,    0, 4082, 4548, 4548, 4548,
-     4072, 4548, 4548, 4548, 4548, 4548, 4100, 4096,    0, 4084,
-     4080, 4081,    0, 4092, 4097, 4094, 4099, 4106,    0, 4115,
-     4116, 4127, 4113, 4116,    0,    0,    0,    0, 4125, 4125,
-     4136,    0,    0, 4135,    0,    0, 4130, 4141,    0, 4142,
-        0, 4147, 4131, 4144, 4133, 4147, 4138, 4151, 4152, 4153,
-        0, 4150,    0,    0, 4164,    0, 4154,    0, 4165, 4153,
-     4165, 4156,    0, 4167, 4548, 4177, 4168, 4176,    0, 4173,
-     4176,    0, 4182,    0, 4176, 4197, 4198, 4188,    0, 4199,
-
-     4202, 4197,    0, 4185, 4201,    0, 4196, 4204,    0,    0,
-        0, 4200,    0, 4196, 4197, 4210, 4215, 4220, 4226, 4225,
-     4226, 4215,    0, 4222, 4222, 4239, 4228, 4245,    0,    0,
-        0, 4248, 4252,    0, 4231, 4251,    0, 4259,    0,    0,
-        0, 4250, 4264, 4265, 4266,    0, 4267, 4268, 4262, 4259,
-     4259, 4548, 4277,  309, 4262,    0, 4279, 4280, 4281, 4284,
-        0, 4269,    0,    0, 4288,    0,    0, 4277, 4279,    0,
-      290, 4548,    0, 4283, 4284,    0,    0, 4285, 4290, 4297,
-        0, 4548, 4297, 4299, 4314, 4307,    0, 4312, 4313, 4324,
-     4316,    0,    0, 4317, 4315, 4322,    0, 4320, 4319,    0,
-
-     4548, 4391, 4400, 4409, 4418, 4422, 4429, 4438, 4447, 4450,
-     4459, 4468, 4477, 4486, 4495, 4504, 4511, 4520, 4529, 4538
+        0,    0,   86,  172,  260,    0,  348,    0,   89,   93,
+       97,   99, 1016, 4555,  115, 4555, 4555,    0,  944,  115,
+      119,  436,  151,  127,  430,  499,  162,  428,  504,  511,
+      173,  424,   54,   83,  560,  561,  428,  612,  620,   80,
+      444,  667,  622,  676,  449,  725,    0,  900,  864,  852,
+     4555, 4555, 4555,   98,  116,  126,  145,  173,  456,  195,
+      183,  182,  442,  564,  437,  442,  453,  528,  179,  562,
+      502,  730,  576,  669,  676,  509,  501,  629,  516,  745,
+      559,  514,  735,  774,  580,  785,  781,  781,  613, 4555,
+      254,  549,  878,  847,  883,  840,  595,  704,  823,  861,
+
+      646,  812,  714,  732,  789,  789,  554,  830,  817,  565,
+      685,  835,  837,  827,  680,  838,  839,  723,  738,  871,
+       51,  741,  768, 4555, 4555,  723,  771,  757,    0,  762,
+      804,  874,  884,    0,  708,  678,  896,  900,    0,  902,
+      917,  657,  961,  806,  921,  927,  824,  953,  836,  950,
+      850,  917,  874,  957,    0,  880,  898,  886,  933,  957,
+        0,  944,  952,    0,  972,  966,  963,  967,  980,  977,
+      965, 1012,  974, 1028,  987, 1022, 1000, 1000, 1003, 1030,
+     1041, 1015, 1037, 1027, 1040, 1071, 1040, 1039, 1033, 1040,
+     1075,    0, 1091, 1039,    0, 1047,    0, 1083, 1074, 1100,
+
+     1043, 1038, 1083, 1101, 1084, 1085, 1105, 1115, 1116, 1098,
+     1131, 1119, 1122, 1118, 1131, 1144, 1145, 1150, 1143, 1183,
+     1154, 1144, 1165, 1160, 1173, 1193, 1176, 1157, 1179, 1172,
+     1168, 1180, 1201, 1203, 1186, 1215, 1185,    0,    0, 1209,
+        0, 1216, 1209, 1216, 1231, 1237, 1221, 1237, 1222, 1224,
+     1243,  619, 4555,  586,  584,  524, 1244, 1251, 1251, 1240,
+     1260, 1260, 1256, 1248, 1251, 1263, 1270, 1268, 1251, 1253,
+     1278, 1271, 1279,  530, 1306, 4555, 1299, 1281, 1285, 1284,
+     1267, 1284, 1301, 1301, 1306, 1302, 1316, 1308, 1323, 1329,
+     1300, 1331, 1333, 1320, 1329, 1321, 1337,    0, 1326, 1342,
+
+     1328, 1327, 1349, 1337, 1343, 1364, 1340, 1366, 1362, 1363,
+     1372, 1369, 1364, 1377, 4555,  503, 4555,  497, 1398, 1409,
+     1405, 1429, 1431, 1437, 4555, 4555, 4555, 4555, 1384, 1403,
+     1384, 1405, 1417, 1398, 1416, 1428, 1417, 1431, 1428, 1432,
+     1434, 4555, 1440, 1428, 1437, 1429, 4555, 1434, 4555, 1450,
+     1435, 1444, 1443, 1444, 1438, 1448, 1450,  403, 1470, 1471,
+     1468, 4555,  397,  199, 4555, 4555,  245, 4555,  238,    0,
+     4555, 4555, 4555, 1509, 1517,  154,  559,  813, 1466,    0,
+     1515, 1526,  915,  932, 1477, 1484, 1481, 1483, 1507, 1504,
+     1514, 1522, 1522, 1524, 1517, 1508, 1526, 1513, 1514, 1517,
+
+     1533, 1518, 1519, 1524, 1524, 1535,    0, 1541, 1522, 1559,
+     1522, 1532, 1543, 1548, 1534, 1561,    0, 1563, 1563, 1577,
+     1568, 1568, 1569, 1578, 1580, 1573, 1574, 1592, 1583,    0,
+     1584, 1585, 1580, 1597, 1581, 1600, 1600, 1597, 1603, 1603,
+     1609, 1596, 1612, 1609, 1624, 1625, 1631, 1628, 1639, 1642,
+     1639, 1647, 1650, 1635, 1651, 1652,    0,    0, 1647, 1648,
+     1690, 1653, 1671, 1659, 1662, 1744, 1668, 1657, 1667, 1695,
+     1681, 1701, 1698, 1693,    0,  226, 1713, 1715, 1722, 1703,
+     1704, 1706, 1726, 1749, 1728, 1725, 1758, 1752, 1743, 1765,
+     1753, 1766, 1754, 1773, 1771, 1785, 1783, 1770, 1781, 1789,
+
+     1786, 1789, 1802, 1804, 1794, 1805, 1808, 1803, 1815, 1798,
+     1809,    0, 1821, 1812, 1809, 1806, 1824, 1805, 1821, 1829,
+     1821, 1835, 1832, 1835, 1830, 1844, 1841, 1849, 1839,    0,
+        0, 1842,    0,    0, 1847, 4555, 1857, 1853, 1856, 1870,
+     1870, 1873, 1875, 1877, 4555, 1873, 1867, 1881, 1872, 1876,
+     1886, 1880, 1881, 1876, 4555,  142, 4555, 1878, 1883, 1885,
+     1901, 1903, 1902, 1890, 1892, 1908, 1912, 1916, 1915, 1920,
+     1926, 1913, 1924, 1919, 1934, 1926, 1933, 1940, 1940, 1945,
+     1932, 1944, 1930,  135,  768,  128,  181, 1048, 1163, 1964,
+     1962, 1180, 1665, 1960, 1949, 1960, 1959, 1954, 1958, 1976,
+
+     1973, 1964, 1984, 1967, 1968, 1975, 1984, 1970, 1986, 1992,
+     1987, 1991, 4555, 1980, 1985, 1985, 1987, 1984, 2003, 2002,
+     2004, 2002, 2014, 2007, 2010,  462,  610, 1670, 4555, 1683,
+     1724, 2012, 2013, 2026, 2024, 2044,  158, 2039, 2028, 2036,
+     2027, 2049, 2032, 2047,    0, 2048, 2054, 2044, 2039, 2040,
+     2043, 2057, 2055, 2061, 2052, 2052, 2062, 2050, 2068, 2080,
+        0, 2072, 2086, 2068, 2092, 2088, 2102, 2094, 2104, 2089,
+        0, 2106, 2107, 2098, 2095, 2110, 2112, 2117,    0, 2100,
+     2102, 2114, 2106, 2110, 2120, 2124, 2110, 2126, 2127, 2112,
+     2110, 2126, 2118, 2128,    0, 2145, 2139, 2159, 2142, 2146,
+
+     2164, 2155, 2153, 2167,    0, 2159, 2174, 2169,    0, 2158,
+     2164, 2171, 2177, 2180, 2173, 2183, 2168, 2188, 2187, 2184,
+     2173, 2191, 2178, 2179, 2192, 2196, 2202, 2211, 2225, 2226,
+     2218, 2228, 2232, 2229, 2227, 2219, 2229, 2227,    0, 2233,
+        0, 2243, 2241, 2227, 2240, 2240, 2245, 2234, 2244, 2248,
+     2253, 2254, 2248, 2270, 2265, 2256, 2261, 2275, 2272, 2286,
+     2276, 2290, 2291, 2272, 2294, 2295, 2283, 2288, 2284, 2305,
+     2299, 2297, 2291, 2308, 2309, 2312, 2301, 2312, 2306, 2307,
+     2299, 2309, 2304, 2312, 2331, 2323, 2336, 2342,    0, 2346,
+        0, 2339, 2338, 2338, 2345, 2340,    0, 2347, 2343, 2362,
+
+     2346, 2349, 2366, 2366, 2358, 2366,    0, 2371, 2358, 2373,
+     2365, 2375, 2369, 2364, 2369, 2379, 2370, 2380, 2388, 2398,
+     4555, 2401, 2397, 2398, 2399, 2401,    0, 2406,    0, 2416,
+     2404, 2414, 2412, 2420, 2415, 2408,    0, 2415, 2420,    0,
+     4555, 2440, 2443, 4555, 2419, 2435, 2432, 2441, 2424, 2439,
+     2430, 2438, 2445, 2455, 2442, 2445, 2448, 2464, 2450, 2450,
+     2450, 2460, 2467, 2476, 2469, 2462, 2465, 2476, 4555, 2467,
+     2477, 2489, 2465, 2473, 4555,    0, 2474,    0, 2502, 2492,
+        0, 2487, 2497,    0, 2506, 2492, 2514, 2504, 2506, 2522,
+        0, 2521, 2520, 2523, 2512, 2522, 2524, 2525, 2530, 2520,
+
+     2541, 2543,    0, 2533, 2527, 2529, 2529,    0,    0, 2540,
+        0, 2532, 2546,    0, 2534, 2550, 2549, 2545, 2564, 2552,
+        0, 2561, 2566,    0, 2583, 2567,    0,    0, 2570, 2584,
+     2589, 2571, 2587,    0, 2592, 2582,    0, 2583, 2602, 2581,
+     2607, 2606, 2640,    0, 2599,    0, 2596, 2612, 2627, 2614,
+     2612, 2628, 2608, 2629, 2649, 2636, 2632, 2640, 2650, 2655,
+     2631, 2662, 2652, 2662, 2654, 2667, 2650,    0, 2645, 2668,
+     2648, 2654, 2674, 2661, 2658, 2676, 2690, 2666, 2691, 2681,
+     2701,    0, 2692,    0, 2707, 2699, 2692, 2693, 2699, 2695,
+     2711, 2703, 2698, 2718, 2719, 2708, 2713, 2709, 2713, 2716,
+
+     2712, 2717, 2718, 2725, 2757, 2736, 2729, 2721, 2749, 2761,
+     2744, 2736, 2750, 2742, 2761, 2752, 2755, 2755,    0,    0,
+     2775, 2758, 2757, 2765, 2777, 2783, 2775,    0, 2785, 2772,
+     2783, 2781,    0, 2793, 2795, 2814, 2781,    0, 2799, 2823,
+     2795, 2789,    0,    0, 2795, 2811, 2797, 2817, 2813, 2817,
+        0, 4555, 4555, 2817, 2817, 2835, 4555, 4555, 2836, 2838,
+     2829, 2838, 2823, 2848, 4555, 2835, 4555, 2845,    0, 2833,
+     2853, 2835, 2871, 2860, 2843, 2852, 2875, 2873, 2860, 2873,
+     2881, 2886, 2876, 2887, 2888, 2879, 4555, 2896, 2895, 2900,
+     2901, 2884, 2901, 2897, 4555, 2905, 4555, 2903, 2905, 2905,
+
+     2910, 4555, 2902, 2888, 2920, 2919, 2903, 2906, 2929, 2924,
+     2920, 2929,    0, 2936,    0,    0, 2931,    0, 2934, 2933,
+     2938, 2957, 2947,    0, 2951,    0, 2941, 2944, 2943, 2950,
+     2945, 2951,    0, 2962, 2954, 2955, 2966,    0, 2971,    0,
+     2968,    0, 2958,    0, 2964, 2979, 2960, 2980,    0,    0,
+     2971, 2973, 2999, 2980, 2977, 2985,    0, 2999, 3001, 3013,
+     3014, 3014, 3013, 3016, 3019, 3003, 3023, 3010, 3006, 3027,
+     3022,    0,    0, 3023, 3014, 3028, 3019, 3020, 3021, 3021,
+     3022, 3020, 3042, 3041, 3032, 3050, 3058, 3060, 3049, 3046,
+        0, 3055,    0, 3060, 3058, 3061, 3062, 3063, 3061, 3080,
+
+     3079, 3075, 3083, 3085, 3074, 3071, 3080, 3097,    0,    0,
+     3094,  150, 3075, 3082, 3097, 3097, 3079, 3093, 3095, 3090,
+        0,    0,    0,    0, 3106, 3110, 3110, 3107, 3122, 3126,
+     3117, 3119, 3119, 3127, 3143, 3125,    0, 3132,    0, 3125,
+     3144, 3144, 3130, 3150, 3147, 3138, 3149, 3168, 3159,    0,
+        0, 3152,    0,    0, 3142, 3144, 3144, 3145, 3162, 3162,
+     3153, 3160, 3171, 3187, 3177, 3174, 3198, 3187, 3196, 3184,
+        0,    0, 3191, 4555, 3192, 3183, 4555, 3189, 3209, 3197,
+     3192, 3212, 3213, 3190,    0, 3196, 4555, 4555, 3197, 3209,
+     3205, 3220, 3212, 3213, 4555, 3227, 3205, 3221, 3218, 3231,
+
+     3230, 4555, 3233, 3244, 3232, 3238, 3242, 4555, 3259, 3258,
+       88, 3251, 3259, 3268, 3249, 3266, 3253, 3258, 3269, 3260,
+     3271,    0, 3263, 3258, 3264, 3276,    0, 3266, 3282,    0,
+     3278,    0, 3284, 3286, 3281,    0, 3278,    0, 3294, 3297,
+     3300, 3297, 3302, 3314, 3299, 3322, 3308, 3313,    0, 3321,
+     3327, 3319, 3327, 3328,    0, 3325, 3330, 3333, 3319, 3333,
+     3315, 3326, 3329, 3332,    0, 3334, 3342,    0, 3343, 3352,
+     3336, 3349, 3342, 3352, 3361, 3369,    0, 3366, 3364, 3372,
+     3380, 3380,    0, 3377, 3386, 3369, 3383, 3375, 3374, 3390,
+        0, 3387, 3385, 3390, 3394, 3388,    0, 3395,    0, 3385,
+
+     3399, 3394, 3432, 3394,    0, 3414, 3413,    0, 3422,    0,
+     3418, 3433, 3417, 3434, 3439, 3431, 3436, 3449, 3452, 3451,
+     3448, 3439, 3450, 3442, 3447, 3451, 3459, 3449, 3461, 3451,
+     3452, 3470, 3493, 3472, 3473, 3479, 3484,    0, 3496, 3482,
+     3486, 3500, 3502,    0,    0, 3491, 3501, 3499, 3501, 3498,
+     3507, 3501, 3515, 3510, 3502, 3503, 3551, 3519, 4555, 3506,
+     4555, 3512, 3512, 4555, 3517, 3514, 3528, 4555, 3540, 3537,
+     3539, 3534, 3551, 3554, 4555, 3557, 3559, 4555, 3558, 3554,
+     3553, 3559, 3562,    0, 3558, 3560, 3558, 3567, 3574, 3577,
+     3578, 3572, 3589, 3590, 3575,    0, 3584, 3591, 3603, 3595,
+
+     3597, 3612,    0, 3604, 3615, 3613, 3610, 3618,    0, 3623,
+     3623, 3610, 3617,    0, 3618, 3615, 3626, 3622, 3624, 3619,
+     3621, 3620, 3624, 3630, 3618, 3619, 3635, 3638, 3653, 3636,
+     3653, 3666, 3666, 3655, 3677,    0,    0,    0, 3653, 3667,
+     3664, 3679, 3662, 3677, 3682, 3668, 3690,    0,    0, 3680,
+     3693, 3681, 3695, 3682, 3690, 3682, 3701, 3688, 3710, 3683,
+     3698,    0, 3698, 3687,    0, 3701, 3708,    0, 3715, 3717,
+     3726,    0, 3727, 3736, 3723, 3725,    0, 3730,    0, 3731,
+     3742,    0, 3736, 3726, 3745, 3736, 3743, 3756, 3738, 3743,
+        0, 3737,    0, 3757, 3751, 3760,    0,    0,    0, 3751,
+
+     3746, 3753, 3764, 3758, 4555, 3775, 3766, 4555, 3777,    0,
+     4555, 3782, 4555, 4555, 4555, 3765, 3774, 3785, 4555, 3786,
+     3802, 4555, 3794, 3795, 3791, 3794,    0, 3805,    0, 3797,
+        0, 3798,    0, 3810, 3799,    0, 3804, 3801,    0, 3800,
+     3807,    0, 3813, 3818, 3822,    0, 3811,    0,    0, 3821,
+        0, 3815,    0,    0, 3816, 3835, 3824, 3839, 3846,    0,
+     3850, 3851, 3846, 3843, 3862, 3859, 3860, 3864, 3863, 3849,
+     3869,    0, 3855, 3867, 3867, 3857, 3874, 3877, 3876, 3862,
+     3882,    0, 3883, 3880, 3870, 3882, 3878, 3888, 3877, 3892,
+     3901, 3893, 3906, 3903, 3892, 3903, 3898, 3899, 3913, 3922,
+
+     3924, 3918, 3928, 3925, 3919, 3933,    0,    0, 3923, 3919,
+     3927, 3929, 3929, 3929, 3940,    0,    0,    0, 3938,    0,
+     3950,    0, 3931,    0, 3939, 3940, 3935, 3941, 4555, 3952,
+     4555, 3953, 3954, 3966, 3972, 3959, 3959, 3960, 4555, 3975,
+     3972, 3968,    0, 3986, 3991,    0,    0,    0, 3973, 3980,
+     3986,    0,    0, 3981, 3985,    0, 3983,    0, 3996,    0,
+        0,    0, 3986, 4006, 4011, 3995, 4013, 3991,    0,    0,
+     4011, 3998, 4013, 4016, 4028, 4016, 4028, 4028,    0, 4030,
+     4020, 4032, 4029, 4028, 4045, 4045, 4039, 4028,    0, 4045,
+     4040, 4036, 4056, 4047, 4047, 4046, 4048, 4056, 4064, 4072,
+
+     4056, 4056,    0, 4076,    0,    0, 4058,    0, 4078,    0,
+        0,    0, 4065,    0, 4085, 4071, 4078, 4091,    0, 4086,
+     4555, 4555, 4555, 4077, 4555, 4555, 4555, 4555, 4555, 4083,
+     4095,    0, 4086, 4083, 4088,    0, 4100, 4102, 4099, 4093,
+     4099,    0, 4108, 4115, 4124, 4110, 4112,    0,    0,    0,
+        0, 4122, 4122, 4133,    0,    0, 4130,    0,    0, 4125,
+     4136,    0, 4138,    0, 4144, 4134, 4145, 4134, 4148, 4138,
+     4148, 4150, 4154,    0, 4149,    0,    0, 4162,    0, 4152,
+        0, 4169, 4155, 4168, 4153,    0, 4164, 4555, 4171, 4163,
+     4169,    0, 4166, 4177,    0, 4180,    0, 4173, 4194, 4196,
+
+     4183,    0, 4194, 4198, 4194,    0, 4188, 4202,    0, 4197,
+     4205,    0,    0,    0, 4200,    0, 4193, 4195, 4209, 4213,
+     4218, 4224, 4223, 4226, 4215,    0, 4223, 4213, 4235, 4226,
+     4238,    0,    0,    0, 4240, 4247,    0, 4227, 4243,    0,
+     4255,    0,    0,    0, 4246, 4258, 4260, 4262,    0, 4264,
+     4268, 4262, 4259, 4259, 4555, 4274,   64, 4262,    0, 4276,
+     4278, 4280, 4282,    0, 4267,    0,    0, 4286,    0,    0,
+     4275, 4279,    0,   56, 4555,    0, 4281, 4283,    0,    0,
+     4285, 4286, 4289,    0, 4555, 4290, 4291, 4309, 4303,    0,
+     4304, 4309, 4320, 4310,    0,    0, 4312, 4311, 4319,    0,
+
+     4319, 4317,    0, 4555, 4389, 4398, 4407, 4416, 4425, 4429,
+     4436, 4445, 4454, 4457, 4466, 4475, 4484, 4493, 4502, 4511,
+     4518, 4527, 4536, 4545
     } ;
 
-static yyconst flex_int16_t yy_def[2021] =
+static yyconst flex_int16_t yy_def[2025] =
     {   0,
-     2001,    1, 2001,    3, 2001,    5, 2001,    7, 2002, 2002,
-     2003, 2003, 2001, 2001, 2001, 2001, 2001, 2004, 2005, 2001,
-     2006, 2007, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2008, 2009, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2010, 2001, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,   35, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006,   44, 2006, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2011, 2012,
-     2001, 2001, 2001, 2001, 2001, 2013, 2014, 2015, 2001, 2001,
-     2001, 2001, 2004, 2005, 2005, 2001, 2001, 2006, 2006, 2006,
-     2016, 2007, 2006, 2001, 2001, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2008, 2001, 2009, 2009, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2017, 2001, 2001, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2001, 2018, 2001, 2019, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2011, 2011, 2011, 2011, 2001,
-     2012, 2020, 2001, 2001, 2013, 2001, 2014, 2015, 2001, 2001,
-     2001, 2001, 2001, 2001, 2006, 2006, 2001, 2006, 2001, 2001,
-     2001, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2017, 2001, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2018, 2018, 2019, 2019, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2011,
-     2011, 2011, 2020, 2020, 2001, 2001, 2001, 2001, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2011, 2011,
-     2011, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-
-     2011, 2011, 2011, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-
-     2001, 2001, 2001, 2001, 2001, 2011, 2011, 2011, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2006, 2006, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2011, 2011, 2001, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2001, 2001, 2001,
-
-     2001, 2001, 2001, 2001, 2001, 2001, 2006, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2011,
-     2011, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2011, 2011, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2011, 2011, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2001, 2001, 2011, 2011, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2001, 2011, 2011, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2001, 2011, 2011, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2011, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
-        0, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001
+     2004,    1, 2005, 2005, 2004,    5, 2004,    7, 2006, 2006,
+     2007, 2007, 2004, 2004, 2004, 2004, 2004, 2008, 2009, 2004,
+     2010, 2011, 2004, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2012, 2013, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2014, 2004, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,   35,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010,   44, 2010, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2015,
+     2016, 2004, 2004, 2004, 2004, 2004, 2017, 2018, 2019, 2004,
+     2004, 2004, 2004, 2008, 2009, 2009, 2004, 2004, 2010, 2010,
+     2010, 2020, 2011, 2010, 2004, 2004, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2012, 2004, 2013, 2013, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2021, 2004, 2004, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2004, 2022, 2004, 2023, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2015, 2015, 2015,
+     2015, 2004, 2016, 2024, 2004, 2004, 2017, 2004, 2018, 2019,
+     2004, 2004, 2004, 2004, 2004, 2004, 2010, 2010, 2004, 2010,
+     2004, 2004, 2004, 2004, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2021, 2004, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2022, 2022, 2023, 2023, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2015, 2015, 2015, 2024, 2024, 2004, 2004, 2004,
+     2004, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2015, 2015, 2015, 2004, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+
+     2004, 2004, 2004, 2015, 2015, 2015, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2010, 2010, 2010, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2015, 2015,
+     2015, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2010, 2010, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2015, 2015, 2004, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2010,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2015, 2015, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2015,
+     2015, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2015,
+     2015, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2004, 2004, 2015, 2015,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2004, 2015, 2015, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2004, 2015, 2015, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2015, 2004, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2004, 2010, 2010, 2010, 2010, 2010,
+     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+
+     2010, 2010, 2010,    0, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004
     } ;
 
-static yyconst flex_int16_t yy_nxt[4634] =
+static yyconst flex_int16_t yy_nxt[4644] =
     {   0,
        14,   15,   16,   15,   15,   14,   17,   18,   14,   17,
        19,   14,   14,   14,   20,   21,   22,   23,   23,   14,
@@ -1121,511 +1123,512 @@ static yyconst flex_int16_t yy_nxt[4634] =
        14,   14,   14,   14,   24,   25,   26,   27,   28,   29,
        30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
        40,   41,   42,   43,   44,   45,   46,   47,   47,   47,
-       49,   14,   14,   14,   14,   14,   14,   50,   51,   14,
-       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
-
-       52,   14,   14,   14,   14,   14,   14,   14,   53,   14,
-       54,   55,   56,   14,   14,   14,   57,   14,   14,   58,
-       59,   14,   14,   60,   61,   62,   63,   64,   65,   14,
-       66,   14,   14,   14,   67,   14,   14,   52,   14,   53,
-       14,   54,   55,   56,   14,   14,   14,   57,   14,   14,
-       58,   59,   14,   14,   60,   61,   62,   63,   64,   65,
-       14,   66,   14,   14,   14,   14,   51,   14,   14,   51,
-       14,   15,   50,   68,   15,   14,   17,   14,   14,   17,
+       49,   14,   14,   14,   14,   14,   50,   14,   51,   52,
+      126,  188,  126,  126,  126,  127,  126,  126,  128,  127,
+
+      364,   53,  128,  130,  365,  130,  131, 1985,  131,   54,
+      189,   55,   56,   57,  190, 1975,  133,   58,  133,  133,
+       59,   60,  188,  218,   61,   62,   63,   64,   65,   66,
+      137,   67,  138,  138,  257,   68,  140,  140,   53, 1478,
+       54,  189,   55,   56,   57,  190,  141,  132,   58,  132,
+      258,   59,   60,  259,  218,   61,   62,   63,   64,   65,
+       66,  147,   67,  148, 1398,  257,  145,   52,  138,  138,
+      149,  628,  628,   52,   51,   52,  881,  141,  146,  587,
+      133,  258,  133,  133,  259,  163,  585,   53,  164,  165,
+      841,  260,  147,  557,  148,   54,  182,   55,   56,   57,
+
+      183,  149,  166,   58,  184,  167,   59,   60,  261,  146,
+       61,   62,   63,   64,   65,   66,  163,   67,  264,  164,
+      165,   68,  260,  265,   53,  266,   54,  182,   55,   56,
+       57,  183,  587,  166,   58,  184,  167,   59,   60,  261,
+      744,   61,   62,   63,   64,   65,   66,  368,   67,  264,
+      627,  368,  365,   52,  265,  133,  266,  133,  133,   52,
+       14,   15,   51,   69,   15,   14,   17,   14,   14,   17,
        19,   14,   14,   14,   20,   21,   22,   23,   23,   14,
-       14,   14,   14,   69,   70,   71,   72,   73,   74,   75,
-
-       76,   77,   47,   78,   79,   80,   81,   82,   83,   47,
-       84,   85,   86,   87,   47,   88,   47,   47,   47,   14,
-       14,   14,   14,   14,   69,   70,   71,   72,   73,   74,
-       75,   76,   77,   47,   78,   79,   80,   81,   82,   83,
-       47,   84,   85,   86,   87,   47,   88,   47,   47,   47,
-       49,   51,   14,   14,   51,   89,   90,   50,   91,   90,
-       92,   93,   89,   94,   95,   89,   89,   89,   89,   96,
-       97,   89,   98,   98,   89,   99,  100,  101,  102,  103,
-      104,  105,  106,  107,  108,   89,  109,  110,   89,  111,
-       89,  112,  113,   89,   89,  114,  115,  116,  117,   89,
-
-      118,   89,   89,   89,  119,   89,   89,   89,  120,  102,
-      103,  104,  105,  106,  107,  108,   89,  109,  110,   89,
-      111,   89,  112,  113,   89,   89,  114,  115,  116,  117,
-       89,  118,   89,   89,   89,   89,  121,   89,  122,  123,
-      125, 1982,  125,  125,  125,  126,  125,  125,  127,  126,
-      129,  129,  127,  130,  130,  132,  187,  132,  132,  136,
-     1972,  137,  137,  139,  139,  184,  185, 1475,  217,  255,
-      256,  257,  186,  140, 1395,  324,  144,  362,  137,  137,
-      132,  363,  132,  132,  325,  625,  625,  187,  145,  146,
-      878,  147,  258,  584,  131,  131,  184,  185,  148,  217,
-
-      255,  256,  257,  186,  140,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  145,
-      146,  143,  147,  258,  141,  141,  149,  141,  162,  148,
-      150,  163,  164,  259,  151,  167,  168,  169,  188,  202,
-      243,  170,  189,  152,  244,  165,  153,  171,  166,  262,
-      263,  264,  265,  203,  141,  141,  141,  149,  141,  162,
-      269,  150,  163,  164,  259,  151,  167,  168,  169,  188,
-      202,  243,  170,  189,  152,  244,  165,  153,  171,  166,
-      262,  263,  264,  265,  203,  141,  141,  141,  141,  141,
-      154,  269,  155,  172,  260,  156,  157,  173,  261,  158,
-
-      177,  174,  159,  270,  178,  160,  161,  175,  179,  271,
-      176,  181,  276,  273,  273,  182,  582,  180,  182,  183,
-      624,  154,  363,  155,  172,  260,  156,  157,  173,  261,
-      158,  177,  174,  159,  270,  178,  160,  161,  175,  179,
-      271,  176,  181,  276,  273,  273,  182,  274,  180,  182,
-      183,  190,  197,  191,  289,  192,  198,  266,  189,  193,
-      199,  294,  194,  267,  146,  195,  275,  218,  196,  287,
-      288,  219,  200,  148,  268,  220,  201,  132,  274,  132,
-      132,  221,  190,  197,  191,  289,  192,  198,  266,  189,
-      193,  199,  294,  194,  267,  146,  195,  275,  218,  196,
-
-      287,  288,  219,  200,  148,  268,  220,  201,  204,  205,
-      292,  211,  221,  231,  293,  212,  206,  232,  207,  213,
-      208,  233,  214,  209,  210,  215,  335,  234,  216,  554,
-      235,  132,  303,  132,  132,  741,  220,  236,  366,  204,
-      205,  292,  211,  366,  231,  293,  212,  206,  232,  207,
-      213,  208,  233,  214,  209,  210,  215,  335,  234,  216,
-      222,  235,  223,  303,  177,  224,  225,  220,  236,  237,
-      226,  247,  279,  248,  227,  163,  280,  228,  238,  229,
-      239,  286,  230,  341,  240,  342,  241,  317,  242,  318,
-      318,  222,  838,  223,  363,  177,  224,  225,  376,  376,
-
-      237,  226,  247,  279,  248,  227,  163,  280,  228,  238,
-      229,  239,  286,  230,  341,  240,  342,  241,  360,  242,
-      245,  246,  584,  154,  247,  155,  248,  327,  249,  281,
-      282,  328,  277,  250,  295,  278,  349,  582,  160,  172,
-      283,  582,  296,  173,  207,  376,  376,  284,  554,  297,
-      298,  245,  246,  285,  154,  247,  155,  248,  327,  249,
-      281,  282,  328,  277,  250,  295,  278,  349,  290,  160,
-      172,  283,  291,  296,  173,  207,  138,  299,  284,  329,
-      297,  298,  138,  308,  285,  300,  254,  309,  304,  305,
-      354,  301,  838,  310,  302,  330,  311,  355,  312,  290,
-
-      306,  319,  319,  291,  138,  307,  138,  138,  299,  254,
-      329,  320,  331,  138,  308,  332,  300,  339,  309,  304,
-      305,  354,  301,  313,  310,  302,  330,  311,  355,  312,
-      333,  306,  340,  346,  584,  138,  307,  138,  321,  336,
-      318,  318,  320,  331,  334,  343,  332,  337,  339,  347,
-      322,  252,  369,  348,  313,  344,  338,  357,  350,  370,
-      345,  333,  351,  340,  346,  352,  358,  624,  353,  363,
-      336,  132,  359,  132,  132,  334,  343,  624,  337,  872,
-      347,  322,  360,  369,  348,  377,  344,  338,  357,  350,
-      370,  345,  371,  351,  378,  371,  352,  358,  132,  353,
-
-      132,  132,  383,  359,  372,  372,  144,  135,  137,  137,
-      139,  139,  374,  375,  373,  388,  376,  376,  145,  135,
-      140,  366,  381,  381,  366,  378,  382,  382,  379,  379,
-      382,  382,  364,  383,  347,  391,  371,  326,  380,  389,
-      382,  382,  586,  586,  394,  373,  388,  323,  397,  145,
-      390,  140,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  391,  398,  143,  380,
-      389,  141,  141,  384,  141,  394,  392,  385,  395,  397,
-      399,  390,  393,  405,  386,  406,  400,  402,  403,  404,
-      387,  407,  396,  409,  410,  408,  411,  316,  398,  414,
-
-      415,  141,  141,  141,  384,  141,  401,  392,  385,  395,
-      416,  399,  315,  393,  405,  386,  406,  400,  402,  403,
-      404,  387,  407,  396,  409,  410,  408,  411,  412,  419,
-      414,  415,  141,  141,  141,  141,  141,  401,  422,  417,
-      420,  416,  413,  418,  421,  423,  427,  424,  425,  428,
-      429,  426,  430,  431,  434,  435,  436,  437,  314,  412,
-      419,  432,  442,  443,  313,  444,  446,  433,  254,  422,
-      417,  420,  445,  413,  418,  421,  423,  427,  424,  425,
-      428,  429,  426,  430,  431,  434,  435,  436,  437,  438,
-      439,  447,  432,  442,  443,  440,  444,  446,  433,  451,
-
-      454,  455,  460,  445,  452,  453,  441,  448,  456,  449,
-      457,  458,  466,  467,  450,  468,  459,  472,  461,  252,
-      438,  439,  447,  469,  470,  473,  440,  135,  471,  474,
-      451,  454,  455,  460,  475,  452,  453,  441,  448,  456,
-      449,  457,  458,  466,  467,  450,  468,  459,  472,  461,
-      462,  463,  464,  476,  469,  470,  473,  477,  465,  471,
-      474,  478,  479,  481,  480,  475,  482,  483,  484,  487,
-      489,  485,  490,  586,  586,  488,  498,  491,  486, 2001,
-      499,  462,  463,  464,  476,  500, 2001,  501,  477,  465,
-      502,  506,  478,  479,  481,  480,  507,  482,  483,  484,
-
-      487,  489,  485,  490,  492,  493,  488,  498,  491,  486,
-      494,  499,  503,  504,  495,  496,  500,  497,  501,  510,
-      511,  502,  506,  508,  512,  505,  513,  507,  518, 2001,
-      515,  522,  516,  523,  524,  492,  493,  514,  517,  525,
-      526,  494,  527,  503,  504,  495,  496,  509,  497,  528,
-      510,  511,  519,  529,  508,  512,  505,  513,  530,  518,
-      520,  515,  522,  516,  523,  524,  531,  532,  514,  517,
-      525,  526,  521,  527,  533,  534,  535,  536,  509,  537,
-      528,  538,  541,  519,  529,  542,  539,  543,  544,  530,
-      547,  520,  548,  549,  550,  551,  552,  531,  532,  389,
-
-      555,  545,  556,  521,  557,  533,  534,  535,  536,  540,
-      537,  558,  538,  541,  546,  385,  542,  539,  543,  544,
-      559,  547,  386,  548,  549,  550,  551,  552,  387,  412,
-      389,  555,  545,  556,  415,  557,  561,  417,  433,  563,
-      540,  560,  558,  566,  567,  546,  385,  423,  452,  562,
-      425,  559,  568,  386,  462,  469,  564,  569,  570,  387,
-      412,  571,  440,  480,  572,  415,  573,  561,  417,  433,
-      563,  488,  560,  565,  566,  567,  574,  496,  423,  452,
-      562,  425,  575,  568,  576,  462,  469,  564,  569,  570,
-      508,  577,  571,  440,  480,  572,  518,  573,  578,  579,
-
-      580,  315,  488,  515,  565, 2001,  591,  574,  496,  514,
-      592,  517, 2001,  575, 2001,  576,  319,  319,  319,  319,
-     2001,  508,  577,  593,  594,  595,  320,  518,  320,  578,
-      579,  580,  315,  321,  515,  318,  318,  591,  596,  597,
-      514,  592,  517,  585,  585,  322,  599,  586,  586,  600,
-      587,  587,  598,  601,  593,  594,  595,  320,  602,  320,
-      588,  589,  589,  603,  604,  590,  590,  605,  607,  596,
-      597,  608,  609,  610,  611,  612,  322,  599,  606,  613,
-      600,  614,  617,  598,  601,  615,  618,  616,  619,  602,
-     2001,  588,  620,  621,  603,  604,  626,  629,  605,  607,
-
-      630,  622,  608,  609,  610,  611,  612,  590,  590,  606,
-      613, 2001,  614,  617,  631, 2001,  615,  618,  616,  619,
-      360,  360,  360,  620,  621,  372,  372,  626,  629,  374,
-      374,  630,  622,  625,  625,  373,  379,  379,  627,  627,
-      632,  633,  628,  628,  634,  631,  380,  635,  636,  637,
-      638,  639,  640,  641,  642,  643,  644,  645,  646,  647,
-      648,  649,  650,  653,  654, 2001,  373,  657,  658,  659,
-      651,  632,  633,  660,  661,  634,  652,  380,  635,  636,
-      637,  638,  639,  640,  641,  642,  643,  644,  645,  646,
-      647,  648,  649,  650,  653,  654,  655,  662,  657,  658,
-
-      659,  651,  663,  664,  660,  661,  665,  652,  666,  667,
-      668,  669,  671,  656,  672,  673,  674,  676,  677,  670,
-      678,  679,  680,  681,  682,  683,  675,  655,  662,  684,
-      685,  686,  688,  663,  664,  687,  689,  665,  690,  666,
-      667,  668,  669,  671,  656,  672,  673,  674,  676,  677,
-      670,  678,  679,  680,  681,  682,  683,  675,  691,  692,
-      684,  685,  686,  688,  693,  694,  687,  689,  696,  690,
-      697,  698,  699,  700,  701,  695,  702,  703,  704,  705,
-      706,  590,  590,  718, 2001,  721,  625,  625,  722,  691,
-      692,  733, 2001,  719,  734,  693,  694,  720,  735,  696,
-
-     2001,  697,  698,  699,  700,  701,  695,  702,  703,  704,
-      705,  706,  707,  708,  718,  709,  721,  710,  711,  722,
-      712,  736,  733,  713,  719,  734,  714,  737,  720,  735,
-      715,  716,  738,  739,  717,  628,  628,  740, 2001,  742,
-      628,  628,  743,  707,  708,  746,  709,  747,  710,  711,
-      748,  712,  736, 2001,  713,  744,  749,  714,  737,  745,
-      752,  715,  716,  738,  739,  717,  723,  724,  740,  725,
-      742,  726,  727,  743,  728,  750,  746,  729,  747,  753,
-      754,  748,  756,  751,  730,  731,  744,  749,  732,  758,
-      745,  752,  759,  757,  761,  762,  763,  723,  724,  760,
-
-      725,  764,  726,  727,  755,  728,  750,  765,  729,  766,
-      753,  754,  767,  756,  751,  730,  731,  768,  769,  732,
-      758,  770,  771,  759,  757,  761,  762,  763,  772,  773,
-      760,  776,  764,  774,  777,  755,  778,  779,  765,  780,
-      766,  781,  782,  767,  783,  775,  784,  785,  768,  769,
-      786,  787,  770,  771,  788,  789,  790,  791,  792,  772,
-      773,  793,  776,  794,  774,  777,  795,  778,  779,  797,
-      780,  796,  781,  782,  798,  783,  775,  784,  785,  799,
-      802,  786,  787,  800,  803,  788,  789,  790,  791,  792,
-      804,  805,  793,  806,  794,  801,  807,  795,  808,  809,
-
-      797,  810,  796,  811,  812,  798,  813,  814,  815,  816,
-      799,  802,  817,  818,  800,  803,  819,  820,  821,  822,
-      823,  804,  805,  651,  806,  824,  801,  807,  655,  808,
-      809,  825,  810,  670,  811,  812,  826,  813,  814,  815,
-      816,  827,  686,  817,  818,  828,  830,  819,  820,  821,
-      822,  823,  720,  694,  651,  831,  824,  744,  832,  655,
-      750,  833,  825,  829,  670,  756,  774,  826,  834,  835,
-      836,  837,  827,  686,  796,  841,  828,  830,  842,  843,
-      587,  587,  844,  720,  694,  845,  831,  846,  744,  832,
-      588,  750,  833,  847,  829,  848,  756,  774,  849,  834,
-
-      835,  836,  837,  839,  839,  796,  841,  840,  840,  842,
-      843,  850,  851,  844,  852,  853,  845,  854,  846,  855,
-      856,  588,  857,  858,  847,  859,  848,  860,  861,  849,
-      862,  863,  864,  865,  866,  867,  868, 2001,  869,  870,
-      871,  873,  850,  851,  874,  852,  853,  360,  854,  875,
-      855,  856,  360,  857,  858,  876,  859,  877,  860,  861,
-      879,  862,  863,  864,  865,  866,  867,  868,  360,  869,
-      870,  871,  873,  880,  881,  874,  882,  883,  884,  885,
-      875,  886,  887,  889,  890,  891,  876,  892,  877,  893,
-      895,  879,  896,  897,  898,  900,  899,  901,  894,  902,
-
-      903,  888,  904,  905,  880,  881,  906,  882,  883,  884,
-      885,  907,  886,  887,  889,  890,  891,  908,  892,  909,
-      893,  895,  910,  896,  897,  898,  900,  899,  901,  894,
-      902,  903,  888,  904,  905,  911,  912,  906,  913,  914,
-      915,  916,  907,  917,  918,  919,  920,  921,  908,  922,
-      909,  923,  924,  910,  925,  926,  927,  928,  929,  930,
-      931,  932,  933,  934,  935,  936,  911,  912,  939,  913,
-      914,  915,  916, 2001,  917,  918,  919,  920,  921,  940,
-      922,  941,  923,  924,  942,  925,  926,  927,  928,  929,
-      930,  931,  932,  933,  934,  935,  936,  937,  943,  939,
-
-      944,  945,  946,  948,  938,  949,  950,  951,  952,  947,
-      940,  953,  941,  954,  955,  942,  956,  960, 2001,  961,
-      962,  963,  964,  965,  966,  967,  968,  969,  937,  943,
-     2001,  944,  945,  946,  948,  938,  949,  950,  951,  952,
-      947,  970,  953,  957,  954,  955,  971,  956,  960,  958,
-      961,  962,  963,  964,  965,  966,  967,  968,  969,  972,
-      973,  959,  977,  974,  978,  979,  980,  981,  982,  975,
-      983,  984,  970,  986,  957,  985,  987,  971,  988,  989,
-      958,  976,  990,  991,  992,  993,  994,  995,  996,  997,
-      972,  973,  959,  977,  974,  978,  979,  980,  981,  982,
-
-      975,  983,  984,  998,  986,  999,  985,  987, 1000,  988,
-      989, 1001,  976,  990,  991,  992,  993,  994,  995,  996,
-      997, 1002, 1004, 1005, 1006, 1007, 1003, 1008, 1009, 1010,
-     1011, 1012, 1013, 1014,  998, 1015,  999, 1016, 1017, 1000,
-     1018, 1019, 1001, 1020, 1021, 1022, 1023, 1024, 1025, 1026,
-     1027, 1028, 1002, 1004, 1005, 1006, 1007, 1003, 1008, 1009,
-     1010, 1011, 1012, 1013, 1014, 1029, 1015, 1030, 1016, 1017,
-     1035, 1018, 1019, 1036, 1020, 1021, 1022, 1023, 1024, 1025,
-     1026, 1027, 1028, 1031, 1033, 1037, 1038, 1032, 1039, 1040,
-     1041, 1042, 1043, 1044, 1034, 1045, 1029, 1046, 1030, 1047,
-
-     1048, 1035, 1049, 1050, 1036, 1051, 1052, 1053, 1054, 1055,
-     1056, 1057, 1058, 1059, 1031, 1033, 1037, 1038, 1032, 1039,
-     1040, 1041, 1042, 1043, 1044, 1034, 1045, 1060, 1046, 1061,
-     1047, 1048, 1062, 1049, 1050, 1063, 1051, 1052, 1053, 1054,
-     1055, 1056, 1057, 1058, 1059, 1064, 1065, 1066, 1067, 1068,
-     1069,  937, 1070,  984, 1071, 1072, 1073, 1074, 1060, 1075,
-     1061,  840,  840, 1062,  840,  840, 1063, 1076, 1077, 1078,
-     1079, 1080, 1081, 1082, 1083, 1084, 1064, 1065, 1066, 1067,
-     1068, 1069,  937, 1070,  984, 1071, 1072, 1073, 1074, 1085,
-     1075, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1076, 1077,
-
-     1078, 1079, 1080, 1081, 1082, 1083, 1084, 1093, 1094, 1095,
-     1096, 1097, 1098, 1099, 1100,  360, 1102, 1103, 1101, 1104,
-     1085, 1105, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1106,
-      360, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1093, 1094,
-     1095, 1096, 1097, 1098, 1099, 1100,  360, 1114, 1103, 1101,
-     1104, 1115, 1105, 1116, 1118, 1117, 1119, 1120, 1121, 1123,
-     1106, 1122, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1124,
-     1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1114, 1133,
-     1134, 1135, 1115, 1136, 1116, 1118, 1117, 1119, 1120, 1121,
-     1123, 1137, 1122, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
-
-     1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1145,
-     1133, 1134, 1135, 1146, 1136, 1147, 1154, 1155, 1156, 1159,
-     1160, 1148, 1137, 1157, 1138, 1139, 1140, 1141, 1142, 1143,
-     1144, 1149, 1161, 1158, 1150, 1151, 1162, 1163, 1152, 1153,
-     1145, 1169, 1170, 2001, 1146, 1171, 1147, 1154, 1155, 1156,
-     1159, 1160, 1148, 1172, 1157, 2001, 1173, 1174, 1175, 1176,
-     1177, 1178, 1149, 1161, 1158, 1150, 1151, 1162, 1163, 1152,
-     1153, 1164, 1169, 1170, 1165, 1179, 1171, 1166, 1180, 1181,
-     1182, 1167, 1183, 1184, 1172, 1185, 1168, 1173, 1174, 1175,
-     1176, 1177, 1178, 1186, 1187, 1188, 1189, 1190, 1191, 1192,
-
-     1193, 1194, 1164, 1195, 1196, 1165, 1179, 1197, 1166, 1180,
-     1181, 1182, 1167, 1183, 1184, 1198, 1185, 1168, 1199, 1200,
-     1201, 1202, 1203, 1204, 1186, 1187, 1188, 1189, 1190, 1191,
-     1192, 1193, 1194, 1205, 1195, 1196, 1206, 1207, 1197, 1208,
-     1209, 1210, 1211, 1212, 1213, 1214, 1198, 1215, 1216, 1199,
-     1200, 1201, 1202, 1203, 1204, 1217, 1218, 1219, 1220, 1221,
-     1222, 1223, 1224, 2001, 1205, 1227, 1228, 1206, 1207, 1229,
-     1208, 1209, 1210, 1211, 1212, 1213, 1214, 1230, 1215, 1216,
-     1233, 1234, 1235, 1236, 1237, 1225, 1217, 1218, 1219, 1220,
-     1221, 1222, 1223, 1224, 1226, 1231, 1227, 1228, 1238, 1239,
-
-     1229, 1240, 1232, 1241, 1244, 1242, 1245, 1246, 1230, 1247,
-     1248, 1233, 1234, 1235, 1236, 1237, 1225, 1249, 1250, 1251,
-     1252, 1243, 1253, 1254, 1255, 1226, 1231, 1258, 1259, 1238,
-     1239, 1262, 1240, 1232, 1241, 1244, 1242, 1245, 1246, 1256,
-     1247, 1248, 1263, 1264, 1265, 1257, 1260, 1266, 1249, 1250,
-     1251, 1252, 1243, 1253, 1254, 1255, 1261, 1267, 1258, 1259,
-     1268, 1269, 1262, 1270, 1271, 1272, 1274, 1275, 1276, 1277,
-     1256, 1278, 1279, 1263, 1264, 1265, 1257, 1260, 1266, 1280,
-     1135, 1116, 1273, 1117, 1148, 1158, 2001, 1261, 1267, 1281,
-     1221, 1268, 1269, 1282, 1270, 1271, 1272, 1274, 1275, 1276,
-
-     1277, 1283, 1278, 1279, 1284, 1285, 1286, 1287, 1166, 1288,
-     1280, 1135, 1116, 1273, 1117, 1148, 1158, 1168, 1289, 1290,
-     1281, 1221, 1291, 1292, 1282, 1293, 1294, 1295, 1296, 1297,
-     1298, 1299, 1283, 1300, 1301, 1284, 1285, 1286, 1287, 1166,
-     1288, 1302, 1303, 1304, 1305,  360, 1306, 1308, 1168, 1289,
-     1290, 1307, 1309, 1291, 1292, 1310, 1293, 1294, 1295, 1296,
-     1297, 1298, 1299, 1311, 1300, 1301, 1312, 1313, 1314, 1315,
-     1316,  360, 1302, 1303, 1304, 1305, 1317,  360, 1308, 1318,
-     1319, 1320, 1307, 1309, 1321, 1322, 1310, 1323, 1324, 1325,
-     1326, 1327, 1328, 1329, 1311, 1330, 1331, 1312, 1313, 1314,
-
-     1315, 1316, 1332, 1333, 1334, 1335, 1336, 1317, 1337, 1338,
-     1318, 1319, 1320, 1339, 1340, 1321, 1322, 1341, 1323, 1324,
-     1325, 1326, 1327, 1328, 1329, 1342, 1330, 1331, 1343, 1344,
-     1345, 1346, 1347, 1332, 1333, 1334, 1335, 1336, 1348, 1337,
-     1338, 1349, 1350, 1351, 1339, 1340, 1352, 1353, 1341, 1354,
-     1355, 1356, 1357, 1360, 1361, 1362, 1342, 1358, 1363, 1343,
-     1344, 1345, 1346, 1347, 1364, 1359, 1365, 1366, 1367, 1348,
-     1368, 1369, 1349, 1350, 1351, 1370, 1371, 1352, 1353, 1372,
-     1354, 1355, 1356, 1357, 1360, 1361, 1362, 1373, 1358, 1363,
-     1374, 1375, 1376, 1377, 1378, 1364, 1359, 1365, 1366, 1367,
-
-     1379, 1368, 1369, 1380, 1381, 1382, 1370, 1371, 1383, 1384,
-     1372, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1373, 1392,
-     1393, 1374, 1375, 1376, 1377, 1378, 1394, 1396, 1397, 1398,
-     1399, 1379, 1400, 1401, 1380, 1381, 1382, 1402, 1403, 1383,
-     1384, 1404, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1405,
-     1392, 1393, 1406, 1407, 1408, 1409, 1410, 1394, 1396, 1397,
-     1398, 1399, 1411, 1400, 1401, 1412, 1413, 1414, 1402, 1403,
-     1415, 1416, 1404, 1417, 1418, 1419, 1420, 1421, 1422, 1423,
-     1405, 1424, 1427, 1406, 1407, 1408, 1409, 1410, 1428, 1429,
-     1430, 1431, 1432, 1411, 1433, 1425, 1412, 1413, 1414, 1434,
-
-     1435, 1415, 1416, 1436, 1417, 1418, 1419, 1420, 1421, 1422,
-     1423, 1426, 1424, 1427, 1437, 1438, 1439, 1440, 1441, 1428,
-     1429, 1430, 1431, 1432, 1442, 1433, 1425, 1443, 1444, 1445,
-     1434, 1435, 1446, 1447, 1436, 1448, 1449, 1450, 1451, 1452,
-     1453, 1454, 1426, 1455, 1456, 1437, 1438, 1439, 1440, 1441,
-     1457, 1458, 1459, 1460, 1461, 1442, 1462, 1463, 1443, 1444,
-     1445, 1464, 1465, 1446, 1447, 1466, 1448, 1449, 1450, 1451,
-     1452, 1453, 1454, 1467, 1455, 1456, 1468, 1469, 1470, 1471,
-     1472, 1457, 1458, 1459, 1460, 1461, 1473, 1462, 1463, 1474,
-     1476, 1477, 1464, 1465, 1478, 1479, 1466, 1480, 1481, 1482,
-
-     1483, 1484, 1485, 1486, 1467, 1487, 1488, 1468, 1469, 1470,
-     1471, 1472,  360,  360, 1489, 1490, 1491, 1473, 1492, 1493,
-     1474, 1476, 1477, 1494, 1495, 1478, 1479, 1496, 1480, 1481,
-     1482, 1483, 1484, 1485, 1486, 1497, 1487, 1488, 1498, 1499,
-     1500, 1501, 1502, 1503, 1504, 1489, 1490, 1491, 1505, 1492,
-     1493, 1506, 1507, 1508, 1494, 1495, 1509, 1510, 1496, 1511,
-     1512, 1513, 1514, 1515, 1516, 1517, 1497, 1518, 1519, 1498,
-     1499, 1500, 1501, 1502, 1503, 1504, 1520, 1521, 1522, 1505,
-     1523, 1524, 1506, 1507, 1508, 1525, 1526, 1509, 1510, 1527,
-     1511, 1512, 1513, 1514, 1515, 1516, 1517, 1528, 1518, 1519,
-
-     1529, 1530, 1531, 1532, 1533, 1534, 1535, 1520, 1521, 1522,
-     1536, 1523, 1524, 1537, 1538, 1539, 1525, 1526, 1540, 1541,
-     1527, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1528, 1549,
-     1550, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1553, 1551,
-     1559, 1536, 2001, 1560, 1537, 1538, 1539, 1561, 2001, 1540,
-     1541, 1562, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1552,
-     1549, 1550, 1554, 1555, 1563, 1564, 1565, 1566, 1567, 1553,
-     1551, 1559, 1568, 1556, 1560, 1557, 1569, 1570, 1561, 1558,
-     1571, 1572, 1562, 1573, 1574, 1575, 1576, 1577, 1578, 1579,
-     1552, 1580, 1581, 1554, 1555, 1563, 1564, 1565, 1566, 1567,
-
-     1582, 1583, 1584, 1568, 1556, 1587, 1557, 1569, 1570, 1588,
-     1558, 1571, 1572, 1589, 1573, 1574, 1575, 1576, 1577, 1578,
-     1579, 1590, 1580, 1581, 1585, 1591, 1586, 1592, 1593, 1594,
-     1595, 1582, 1583, 1584, 1596, 1597, 1587, 1598, 1599, 1600,
-     1588, 1601, 1602, 1603, 1589, 1604, 1605, 1606, 1607, 1608,
-     1554, 1555, 1590, 1609, 1610, 1585, 1591, 1586, 1592, 1593,
-     1594, 1595, 1611, 1557, 1612, 1596, 1597, 1558, 1598, 1599,
-     1600, 1613, 1601, 1602, 1603, 1614, 1604, 1605, 1606, 1607,
-     1608, 1554, 1555, 1615, 1609, 1610, 1616, 1617, 1618, 1619,
-     1621, 1620, 1622, 1611, 1557, 1612, 1623, 1624, 1558, 1625,
-
-     1626, 1627, 1613, 1628, 1629, 1630, 1614,  360, 1631, 1632,
-     1633, 1634, 1635, 1636, 1615,  360, 1637, 1616, 1617, 1618,
-     1619, 1621, 1620, 1622, 1638, 1639, 1640, 1623, 1624, 1641,
-     1625, 1626, 1627, 1642, 1628, 1629, 1630, 1643, 1644, 1631,
-     1632, 1633, 1634, 1635, 1636, 1645, 1646, 1637, 1647, 1648,
-     1649, 1650, 1651, 1652, 1653, 1638, 1639, 1640, 1654, 1655,
-     1641, 1656, 1657, 1658, 1642, 1659, 1660, 1661, 1643, 1644,
-     1662, 1663, 1664, 1665, 1666, 1667, 1645, 1646, 1668, 1647,
-     1648, 1649, 1650, 1651, 1652, 1653, 1669, 1670, 1671, 1654,
-     1655, 1672, 1656, 1657, 1658, 1673, 1659, 1660, 1661, 1674,
-
-     1675, 1662, 1663, 1664, 1665, 1666, 1667, 1676, 1677, 1668,
-     1678, 1679, 1680, 1681, 1682, 1683, 1684, 1669, 1670, 1671,
-     1685, 1686, 1672, 1687, 1688, 1689, 1673, 1690, 1691, 1692,
-     1674, 1675, 1694, 1695, 1697, 1698, 1699, 1693, 1676, 1677,
-     1700, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1701, 1696,
-     1702, 1685, 1686, 1703, 1687, 1688, 1689, 1704, 1690, 1691,
-     1692, 1705, 1706, 1694, 1695, 1697, 1698, 1699, 1693, 1707,
-     1708, 1700, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1701,
-     1696, 1702, 1716, 1717, 1703, 1718, 1719, 1720, 1704, 1721,
-     1722, 1723, 1705, 1706, 1724, 1725, 1726, 1727, 1728, 1729,
-
-     1707, 1708, 1730, 1709, 1710, 1711, 1712, 1713, 1714, 1715,
-     1731, 1732, 1733, 1716, 1717, 1734, 1718, 1719, 1720, 1735,
-     1721, 1722, 1723, 1736, 1739, 1724, 1725, 1726, 1727, 1728,
-     1729, 1737, 1738, 1730, 1740, 1741, 1742, 1743, 1744, 1745,
-     1746, 1731, 1732, 1733, 1747, 1748, 1734, 1749,  360,  360,
-     1735, 1750, 1751, 1752, 1736, 1739, 1753, 1754, 1755, 1756,
-     1757, 1758, 1737, 1738, 1759, 1740, 1741, 1742, 1743, 1744,
-     1745, 1746, 1760, 1761, 1762, 1747, 1748, 1763, 1749, 1764,
-     1765, 1766, 1750, 1751, 1752, 1767, 1768, 1753, 1754, 1755,
-     1756, 1757, 1758, 1769, 1770, 1759, 1771, 1772, 1773, 1774,
-
-     1775, 1776, 1777, 1760, 1761, 1762, 1778, 1779, 1763, 1780,
-     1764, 1765, 1766, 1781, 1782, 1783, 1767, 1768, 1784, 1785,
-     1786, 1787, 1788, 1789, 1769, 1770, 1790, 1771, 1772, 1773,
-     1774, 1775, 1776, 1777, 1791, 1792, 1793, 1778, 1779, 1794,
-     1780, 1795, 1796, 1797, 1781, 1782, 1783, 1798, 1799, 1784,
-     1785, 1786, 1787, 1788, 1789, 1800, 1801, 1790, 1802, 1803,
-     1804, 1805, 1806, 1807, 1808, 1791, 1792, 1793, 1809, 1810,
-     1794, 1811, 1795, 1796, 1797, 1812, 1813, 1814, 1798, 1799,
-     1815, 1816, 1817, 1818, 1819, 1820, 1800, 1801, 1821, 1802,
-     1803, 1804, 1805, 1806, 1807, 1808, 1822, 1823, 1824, 1809,
-
-     1810, 1825, 1811, 1826, 1827, 1829, 1812, 1813, 1814, 1830,
-     1828, 1815, 1816, 1817, 1818, 1819, 1820, 1831, 1832, 1821,
-      360,  360, 1833, 1834, 1835, 1836, 1837, 1822, 1823, 1824,
-     1838, 1839, 1825, 1840, 1826, 1827, 1829, 1841, 1842, 1843,
-     1830, 1828, 1844, 1845, 1846, 1847, 1848, 1849, 1831, 1832,
-     1850, 1851, 1852, 1833, 1834, 1835, 1836, 1837, 1853, 1854,
-     1855, 1838, 1839, 1856, 1840, 1857, 1858, 1859, 1841, 1842,
-     1843, 1860, 1861, 1844, 1845, 1846, 1847, 1848, 1849, 1862,
-     1863, 1850, 1851, 1852, 1864, 1865, 1866, 1867, 1868, 1853,
-     1854, 1855, 1869, 1870, 1856, 1871, 1857, 1858, 1859, 1872,
-
-     1873, 1874, 1860, 1861, 1875, 1876, 1877, 1878, 1879, 1880,
-     1862, 1863, 1881, 1884, 1885, 1864, 1865, 1866, 1867, 1868,
-     2001, 1888, 1889, 1869, 1870, 1882, 1871, 1887, 1890, 1891,
-     1872, 1873, 1874, 1892, 1893, 1875, 1876, 1877, 1878, 1879,
-     1880, 1886, 1883, 1881, 1884, 1885, 1894,  360, 1895, 1896,
-     1897,  360, 1888, 1889, 1898, 1899, 1882, 1900, 1887, 1890,
-     1891, 1901, 1902, 1903, 1892, 1893, 1904, 1905, 1906, 1907,
-     1908, 1909, 1886, 1883, 1910, 1911, 1912, 1894, 1913, 1895,
-     1896, 1897, 1914, 1915, 1916, 1898, 1899, 1917, 1900, 1918,
-     1919, 1920, 1901, 1902, 1903, 1921, 1922, 1904, 1905, 1906,
-
-     1907, 1908, 1909, 1923, 1924, 1910, 1911, 1912, 1925, 1913,
-     1927, 1928, 1929, 1914, 1915, 1916, 1926, 1930, 1917,  360,
-     1918, 1919, 1920, 1931, 1932, 1933, 1921, 1922,  360, 1934,
-     1935, 1936, 1937, 1938, 1923, 1924, 1939, 1940, 1941, 1925,
-     1942, 1927, 1928, 1929, 1943, 1944, 1945, 1926, 1930, 1946,
-     1947, 1948, 1949, 1950, 1931, 1932, 1933, 1951, 1952, 2001,
-     1934, 1935, 1936, 1937, 1938, 1955, 1954, 1939, 1940, 1941,
-     1953, 1942, 1956,  360, 1957, 1943, 1944, 1945, 1958, 1959,
-     1946, 1947, 1948, 1949, 1950, 1960, 1961, 1962, 1951, 1952,
-      360, 1963, 1964, 1965, 1966, 1967, 1955, 1954, 1968, 1969,
-
-     1970, 1953, 1973, 1956, 1971, 1957, 1974, 1975, 1976, 1958,
-     1959, 1977, 1978, 1979, 1980, 1981, 1960, 1961, 1962, 1983,
-     1984, 1985, 1963, 1964, 1965, 1966, 1967, 1986,  360, 1968,
-     1969, 1970, 1987, 1973, 1988, 1971, 1989, 1974, 1975, 1976,
-     1990, 1991, 1977, 1978, 1979, 1980, 1981, 1992, 1993, 1994,
-     1983, 1984, 1985, 1995, 1996, 1997, 1998, 1999, 1986, 2000,
-     2001, 2001, 2001, 1987, 2001, 1988, 2001, 1989, 2001, 2001,
-     2001, 1990, 1991, 2001, 2001, 2001, 2001, 2001, 1992, 1993,
-     1994, 2001, 2001, 2001, 1995, 1996, 1997, 1998, 1999, 2001,
-     2000,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  133,
-     2001,  133,  133,  133,  133,  133,  133,  133,  134, 2001,
-      134,  134,  134,  134,  134,  134,  134,  138,  138,  142,
-      142,  142,  142,  142,  142,  142,  142,  142,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  253, 2001,  253,
-      253,  253,  253,  253,  253,  253,  272, 2001,  272,  356,
-      356,  356,  356,  356,  356,  356,  356,  356,  361,  361,
-      361,  361,  361,  361,  361,  361,  361,  365,  365,  365,
-      365,  365,  365,  365,  365,  365,  367,  367,  367,  367,
-      367,  367,  367,  367,  367,  368,  368,  368, 2001, 2001,
-
-      368,  368, 2001,  368,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  553, 2001, 2001,  553,  553, 2001,  553,
-      581,  581,  581, 2001,  581,  581,  581,  581,  581,  583,
-      583,  583,  583, 2001,  583,  583,  583,  583,  623,  623,
-      623,  623,  623,  623,  623,  623,  623,   13, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001
+       14,   14,   14,   70,   71,   72,   73,   74,   75,   76,
+       77,   78,   47,   79,   80,   81,   82,   83,   84,   47,
+
+       85,   86,   87,   88,   47,   89,   47,   47,   47,   14,
+       14,   14,   14,   14,   70,   71,   72,   73,   74,   75,
+       76,   77,   78,   47,   79,   80,   81,   82,   83,   84,
+       47,   85,   86,   87,   88,   47,   89,   47,   47,   47,
+       49,   52,   14,   14,   14,   14,   14,   52,   90,   91,
+       51,   92,   91,   93,   94,   90,   95,   96,   90,   90,
+       90,   90,   97,   98,   90,   99,   99,   90,  100,  101,
+      102,  103,  104,  105,  106,  107,  108,  109,   90,  110,
+      111,   90,  112,   90,  113,  114,   90,   90,  115,  116,
+      117,  118,   90,  119,   90,   90,   90,  120,   90,   90,
+
+       90,  121,  103,  104,  105,  106,  107,  108,  109,   90,
+      110,  111,   90,  112,   90,  113,  114,   90,   90,  115,
+      116,  117,  118,   90,  119,   90,   90,   90,   90,  122,
+       90,  123,   90,   90,   90,  124,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      365,  203,  144,  150,  362,  142,  142,  151,  142,  185,
+      186,  152,  168,  169,  170,  204,  187,  219,  171,  267,
+      153,  220,  244,  154,  172,  221,  245,  271,  272,  262,
+      273,  222,  203,  263,  150,  142,  142,  142,  151,  142,
+      185,  186,  152,  168,  169,  170,  204,  187,  219,  171,
+
+      267,  153,  220,  244,  154,  172,  221,  245,  271,  272,
+      262,  273,  222,  627,  263,  365,  142,  142,  142,  142,
+      142,  142,  142,  142,  155,  278,  156,  173,  183,  157,
+      158,  174,  178,  159,  178,  175,  160,  296,  179,  161,
+      162,  176,  180,  291,  177,  275,  275,  190,  587,  288,
+      133,  181,  133,  133,  585,  155,  278,  156,  173,  183,
+      157,  158,  174,  178,  159,  178,  175,  160,  296,  179,
+      161,  162,  176,  180,  291,  177,  378,  378,  190,  276,
+      288,  557,  181,  191,  198,  192,  294,  193,  199,  268,
+      295,  194,  200,  337,  195,  269,  147,  196,  277,  281,
+
+      197,  343,  164,  282,  201,  149,  270,  305,  202,  536,
+      319,  221,  320,  320,  191,  198,  192,  294,  193,  199,
+      268,  295,  194,  200,  337,  195,  269,  147,  196,  277,
+      281,  197,  343,  164,  282,  201,  149,  270,  305,  202,
+      205,  206,  221,  212,  248,  232,  249,  213,  207,  233,
+      208,  214,  209,  234,  215,  210,  211,  216,  326,  235,
+      217,  627,  236,  875,  289,  290,  255,  327,  255,  237,
+      253,  205,  206,  379,  212,  248,  232,  249,  213,  207,
+      233,  208,  214,  209,  234,  215,  210,  211,  216,  136,
+      235,  217,  223,  236,  224,  289,  290,  225,  226,  173,
+
+      237,  238,  227,  174,  283,  284,  228,  286,  344,  229,
+      239,  230,  240,  287,  231,  285,  241,  351,  242,  136,
+      243,  321,  321,  223,  133,  224,  133,  133,  225,  226,
+      173,  322,  238,  227,  174,  283,  284,  228,  286,  344,
+      229,  239,  230,  240,  287,  231,  285,  241,  351,  242,
+      329,  243,  246,  247,  330,  155,  248,  156,  249,  331,
+      250,  356,  322,  297,  279,  251,  368,  280,  292,  357,
+      161,  298,  293,  208,  841,  332,  139,  368,  299,  300,
+      366,  329,  139,  246,  247,  330,  155,  248,  156,  249,
+      331,  250,  356,  371,  297,  279,  251,  301,  280,  292,
+
+      357,  161,  298,  293,  208,  302,  332,  139,  310,  299,
+      300,  303,  311,  139,  304,  306,  307,  314,  312,  585,
+      335,  313,  349,  139,  371,  139,  333,  308,  301,  334,
+      378,  378,  309,  328,  336,  372,  302,  380,  323,  310,
+      320,  320,  303,  311,  341,  304,  306,  307,  314,  312,
+      324,  335,  313,  338,  139,  385,  139,  333,  308,  342,
+      334,  339,  345,  309,  315,  336,  372,  349,  380,  352,
+      340,  350,  346,  353,  348,  341,  354,  347,  390,  355,
+      373,  324,  325,  373,  338,  133,  385,  133,  133,  318,
+      342,  317,  339,  345,  393,  315,  316,  359,  349,  315,
+
+      352,  340,  350,  346,  353,  348,  360,  354,  347,  390,
+      355,  396,  361,  374,  374,  145,  399,  138,  138,  140,
+      140,  400,  362,  375,  373,  393,  401,  146,  359,  141,
+      376,  377,  384,  384,  378,  378,  256,  360,  381,  381,
+      383,  383,  396,  361,  384,  384,  255,  399,  382,  384,
+      384,  253,  400,  394,  375,  136,  402,  401,  146,  395,
+      141,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  391,  403,  144,  386,  382,
+      142,  142,  387,  142,  394,  397,  392,  402,  407,  388,
+      395,  404,  405,  406,  408,  389,  409,  411,  412,  398,
+
+      410,  413,  416,  417,  414,  418,  391,  403,  421,  386,
+      142,  142,  142,  387,  142, 2004,  397,  392,  415,  407,
+      388,  424,  404,  405,  406,  408,  389,  409,  411,  412,
+      398,  410,  413,  416,  417,  414,  418,  429,  430,  421,
+      431,  142,  142,  142,  142,  142,  142,  142,  142,  415,
+      419,  422,  424,  432,  420,  423,  425,  436,  426,  427,
+      437,  438,  428,  439,  433,  589,  589,  444,  429,  430,
+      445,  431,  434,  446,  448,  456,  457,  468,  435,  469,
+      447,  419,  422, 2004,  432,  420,  423,  425,  436,  426,
+      427,  437,  438,  428,  439,  433,  440,  441,  444,  449,
+
+      462,  445,  442,  434,  446,  448,  456,  457,  468,  435,
+      469,  447,  474,  443,  453,  450,  463,  451,  470,  454,
+      455,  458,  452,  459,  460,  475,  471,  440,  441,  461,
+      449,  462,  476,  442,  464,  465,  466,  472,  477,  478,
+      479,  473,  467,  474,  443,  453,  450,  463,  451,  470,
+      454,  455,  458,  452,  459,  460,  475,  471,  480,  481,
+      461,  482,  483,  476,  484,  464,  465,  466,  472,  477,
+      478,  479,  473,  467,  485,  486,  489,  491,  487,  492,
+      589,  589,  490,  500,  493,  488, 2004,  501,  502,  480,
+      481, 2004,  482,  483,  503,  484,  504,  593,  593,  508,
+
+      509,  512,  510,  513,  514,  485,  486,  489,  491,  487,
+      492,  494,  495,  490,  500,  493,  488,  496,  501,  502,
+      520,  497,  498,  524,  499,  503,  511,  504,  505,  506,
+      508,  509,  512,  510,  513,  514,  515,  517,  521,  518,
+      525,  507,  494,  495,  526,  519,  522,  516,  496,  527,
+      528,  520,  497,  498,  524,  499,  529,  511,  523,  505,
+      506,  530,  531,  532,  533,  534,  535,  515,  517,  521,
+      518,  525,  507,  537,  538,  526,  519,  522,  516,  539,
+      527,  528,  540,  541,  542,  544,  545,  529,  546,  523,
+      547,  550,  530,  531,  532,  533,  534,  535,  548,  551,
+
+      552,  553,  554,  555,  537,  538,  391,  543,  558,  561,
+      539,  549,  562,  540,  541,  542,  544,  545,  559,  546,
+      560,  547,  550,  275,  275,  414, 2004,  417,  387,  548,
+      551,  552,  553,  554,  555,  388,  564,  391,  543,  558,
+      561,  389,  549,  562,  419,  435,  566,  569,  563,  559,
+      425,  560,  565,  427,  567,  570,  414,  276,  417,  387,
+      442,  454,  571,  464,  471,  572,  388,  564,  573,  574,
+      482,  568,  389,  575,  490,  419,  435,  566,  569,  563,
+      576,  425,  498,  565,  427,  567,  570,  578,  579,  510,
+      577,  442,  454,  571,  464,  471,  572,  580,  581,  573,
+
+      574,  482,  568,  520,  575,  490,  517,  582,  583,  516,
+      317,  576, 2004,  498,  519,  321,  321, 2004,  578,  579,
+      510,  577,  321,  321,  323,  322,  320,  320,  580,  581,
+      594,  595,  322,  596,  520,  599,  324,  517,  582,  583,
+      516,  317,  588,  588,  600,  519,  589,  589,  590,  590,
+      592,  592,  597,  598,  593,  593,  322,  601,  591,  602,
+      603,  594,  595,  322,  596,  604,  599,  324,  605,  606,
+      607,  608,  610,  611,  612,  600,  613,  614,  615,  616,
+      617,  620,  609,  597,  598,  618,  621,  619,  601,  591,
+      602,  603,  622,  623,  624, 2004,  604,  629,  625,  605,
+
+      606,  607,  608,  610,  611,  612,  632,  613,  614,  615,
+      616,  617,  620,  609,  633,  634,  618,  621,  619,  362,
+      635,  362,  362,  622,  623,  624,  374,  374,  629,  625,
+      376,  376,  381,  381,  628,  628,  375,  632,  636,  630,
+      630,  637,  382,  631,  631,  633,  634,  638,  639,  640,
+      641,  635,  642,  643,  644,  645,  646,  647,  648,  649,
+      650,  651,  652,  653,  656,  657,  660,  375, 2004,  636,
+      661,  654,  637,  382,  662,  663,  664,  655,  638,  639,
+      640,  641,  658,  642,  643,  644,  645,  646,  647,  648,
+      649,  650,  651,  652,  653,  656,  657,  660,  665,  659,
+
+      666,  661,  654,  667,  668,  662,  663,  664,  655,  669,
+      670,  671,  672,  658,  674,  675,  676,  677,  679,  680,
+      673,  681,  682,  683,  684,  685,  686,  678,  687,  665,
+      659,  666,  688,  689,  667,  668,  691,  690,  692,  693,
+      669,  670,  671,  672,  694,  674,  675,  676,  677,  679,
+      680,  673,  681,  682,  683,  684,  685,  686,  678,  687,
+      695,  696,  697,  688,  689,  699,  700,  691,  690,  692,
+      693,  701,  698,  702,  703,  694,  704,  705,  706,  707,
+      708,  709,  593,  593,  721, 2004,  724,  628,  628,  725,
+     2004,  695,  696,  697,  722,  736,  699,  700,  723,  737,
+
+      631,  631,  701,  698,  702,  703,  738,  704,  705,  706,
+      707,  708,  709,  710,  711,  721,  712,  724,  713,  714,
+      725,  715,  739,  740,  716,  722,  736,  717,  741,  723,
+      737,  718,  719,  742,  743,  720, 2004,  738,  745, 2004,
+      746,  631,  631,  749,  710,  711,  750,  712,  751,  713,
+      714,  752,  715,  739,  740,  716,  747,  755,  717,  741,
+      748,  756,  718,  719,  742,  743,  720,  726,  727,  745,
+      728,  746,  729,  730,  749,  731,  753,  750,  732,  751,
+      761,  757,  752,  759,  754,  733,  734,  747,  755,  735,
+      762,  748,  756,  764,  760,  765,  766,  763,  726,  727,
+
+      767,  728,  768,  729,  730,  758,  731,  753,  769,  732,
+      770,  761,  757,  771,  759,  754,  733,  734,  772,  773,
+      735,  762,  774,  775,  764,  760,  765,  766,  763,  776,
+      777,  767,  779,  768,  780,  781,  758,  782,  783,  769,
+      784,  770,  778,  785,  771,  786,  787,  788,  789,  772,
+      773,  790,  791,  774,  775,  792,  793,  794,  795,  796,
+      776,  777,  797,  779,  802,  780,  781,  798,  782,  783,
+      800,  784,  799,  778,  785,  801,  786,  787,  788,  789,
+      803,  805,  790,  791,  806,  807,  792,  793,  794,  795,
+      796,  808,  804,  797,  809,  802,  810,  811,  798,  812,
+
+      813,  800,  814,  799,  815,  816,  801,  817,  818,  819,
+      820,  803,  805,  821,  822,  806,  807,  823,  824,  825,
+      826,  654,  808,  804,  827,  809,  658,  810,  811,  828,
+      812,  813,  673,  814,  829,  815,  816,  830,  817,  818,
+      819,  820,  689,  831,  821,  822,  697,  833,  823,  824,
+      825,  826,  654,  723,  834,  827,  832,  658,  747,  835,
+      828,  753,  836,  673,  759,  829,  777,  837,  830,  838,
+      839,  840,  799,  689,  831,  842,  842,  697,  833,  843,
+      843,  590,  590,  844,  723,  834,  845,  832,  846,  747,
+      835,  591,  753,  836,  847,  759,  848,  777,  837,  849,
+
+      838,  839,  840,  799,  850,  851,  852,  853,  854,  855,
+      856,  857,  858,  859,  844,  860,  861,  845,  862,  846,
+      863,  864,  591,  865,  866,  847,  867,  848,  868,  869,
+      849,  870,  871,  874, 2004,  850,  851,  852,  853,  854,
+      855,  856,  857,  858,  859,  873,  860,  861,  876,  862,
+      877,  863,  864,  878,  865,  866,  872,  867,  362,  868,
+      869,  362,  870,  871,  874,  362,  879,  880,  882,  883,
+      884,  885,  886,  887,  888,  889,  873,  890,  892,  876,
+      893,  877,  894,  895,  878,  896,  898,  872,  899,  900,
+      901,  903,  902,  904,  897,  905,  891,  879,  880,  882,
+
+      883,  884,  885,  886,  887,  888,  889,  906,  890,  892,
+      907,  893,  908,  894,  895,  909,  896,  898,  910,  899,
+      900,  901,  903,  902,  904,  897,  905,  891,  911,  912,
+      913,  914,  915,  916,  917,  918,  919,  920,  906,  921,
+      922,  907,  923,  908,  924,  925,  909,  926,  927,  910,
+      928,  929,  930,  931,  932,  933,  934,  935,  936,  911,
+      912,  913,  914,  915,  916,  917,  918,  919,  920,  937,
+      921,  922,  938,  923,  939,  924,  925,  942,  926,  927,
+      943,  928,  929,  930,  931,  932,  933,  934,  935,  936,
+      940,  944,  945,  946,  947,  948,  951,  941,  952,  949,
+
+      937,  953,  954,  938,  955,  939,  950,  956,  942,  957,
+      958,  943,  959,  960,  963,  964,  965,  966,  967,  961,
+      968,  940,  944,  945,  946,  947,  948,  951,  941,  952,
+      949,  962,  953,  954,  969,  955,  970,  950,  956,  971,
+      957,  958,  972,  959,  960,  963,  964,  965,  966,  967,
+      961,  968,  973,  974,  975,  976,  980,  977,  981,  982,
+      983,  984,  962,  978,  985,  969,  986,  970,  987,  989,
+      971,  990,  988,  972,  991,  979,  992,  993,  994,  995,
+      996,  997,  998,  973,  974,  975,  976,  980,  977,  981,
+      982,  983,  984,  999,  978,  985, 1000,  986, 1001,  987,
+
+      989, 1002,  990,  988, 1003,  991,  979,  992,  993,  994,
+      995,  996,  997,  998, 1004, 1005, 1007, 1008, 1009, 1010,
+     1006, 1011, 1012, 1013,  999, 1014, 1015, 1000, 1016, 1001,
+     1017, 1018, 1002, 1019, 1020, 1003, 1021, 1022, 1023, 1024,
+     1025, 1026, 1027, 1028, 1029, 1004, 1005, 1007, 1008, 1009,
+     1010, 1006, 1011, 1012, 1013, 1030, 1014, 1015, 1031, 1016,
+     1032, 1017, 1018, 1033, 1019, 1020, 1038, 1021, 1022, 1023,
+     1024, 1025, 1026, 1027, 1028, 1029, 1034, 1036, 1039, 1040,
+     1035, 1041, 1042, 1043, 1044, 1045, 1030, 1037, 1046, 1031,
+     1047, 1032, 1048, 1049, 1033, 1050, 1051, 1038, 1052, 1053,
+
+     1054, 1055, 1056, 1057, 1058, 1059, 1060, 1034, 1036, 1039,
+     1040, 1035, 1041, 1042, 1043, 1044, 1045, 1061, 1037, 1046,
+     1062, 1047, 1063, 1048, 1049, 1064, 1050, 1051, 1065, 1052,
+     1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1066, 1067,
+     1068, 1069, 1070, 1071, 1072,  940, 1073,  987, 1061, 1074,
+     1075, 1062, 1076, 1063, 1077, 1078, 1064,  843,  843, 1065,
+      843,  843, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1066,
+     1067, 1068, 1069, 1070, 1071, 1072,  940, 1073,  987, 1086,
+     1074, 1075, 1087, 1076, 1088, 1077, 1078, 1089, 1090, 1091,
+     1092, 1093, 1094, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
+
+     1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 2004,
+     1086, 1106, 1104, 1087, 1107, 1088,  362, 1105, 1089, 1090,
+     1091, 1092, 1093, 1094,  362, 1108, 1109, 1110, 1111, 1112,
+     1113, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
+      362, 1114, 1106, 1104, 1115, 1107, 1116, 1117, 1118, 1119,
+     1121, 1120, 1122, 1123, 1126, 1127, 1108, 1109, 1110, 1111,
+     1112, 1113, 1124, 1128, 1129, 1125, 1130, 1131, 1132, 1133,
+     1134, 1135, 1114, 1136, 1139, 1115, 1140, 1116, 1117, 1118,
+     1119, 1121, 1120, 1122, 1123, 1126, 1127, 1137, 1138, 1141,
+     1142, 1143, 1144, 1124, 1128, 1129, 1125, 1130, 1131, 1132,
+
+     1133, 1134, 1135, 1145, 1136, 1139, 1146, 1140, 1147, 1148,
+     1149, 1150, 1157, 1158, 1151, 1159, 1160, 1162, 1137, 1138,
+     1141, 1142, 1143, 1144, 1152, 1163, 1161, 1153, 1154, 1164,
+     1165, 1155, 1156, 1166, 1145, 1172, 1173, 1146, 1174, 1147,
+     1148, 1149, 1150, 1157, 1158, 1151, 1159, 1160, 1162, 2004,
+     1175, 1176, 1177, 1178, 1179, 1152, 1163, 1161, 1153, 1154,
+     1164, 1165, 1155, 1156, 1166, 1167, 1172, 1173, 1168, 1174,
+     1180, 1169, 1181, 1182, 1183, 1170, 1184, 1185, 1186, 1187,
+     1171, 1175, 1176, 1177, 1178, 1179, 1188, 1189, 1190, 1191,
+     1192, 1193, 1194, 1195, 1196, 1197, 1167, 1198, 1199, 1168,
+
+     1200, 1180, 1169, 1181, 1182, 1183, 1170, 1184, 1185, 1186,
+     1187, 1171, 1201, 1202, 1203, 1204, 1205, 1188, 1189, 1190,
+     1191, 1192, 1193, 1194, 1195, 1196, 1197, 1206, 1198, 1199,
+     1207, 1200, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
+     1216, 1217, 1218, 1201, 1202, 1203, 1204, 1205, 1219, 1220,
+     1221, 1222, 1223, 1224, 1225, 1226, 1227, 2004, 1206, 1230,
+     1231, 1207, 1232, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
+     1215, 1216, 1217, 1218, 1233, 1236, 1237, 1238, 1239, 1219,
+     1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1234,
+     1230, 1231, 1240, 1232, 1241, 1242, 1235, 1229, 1243, 1244,
+
+     1247, 1245, 1248, 1249, 1250, 1233, 1236, 1237, 1238, 1239,
+     1251, 1252, 1253, 1254, 1255, 1256, 1257, 1246, 1258, 1228,
+     1234, 1261, 1262, 1240, 1265, 1241, 1242, 1235, 1229, 1243,
+     1244, 1247, 1245, 1248, 1249, 1250, 1266, 1267, 1268, 1269,
+     1270, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1246, 1258,
+     1259, 1263, 1261, 1262, 1271, 1265, 1260, 1272, 1273, 1274,
+     1275, 1264, 1277, 1278, 1279, 1280, 1281, 1266, 1267, 1268,
+     1269, 1270, 1282, 1283, 1119, 1138, 1120, 1276, 1151, 1161,
+     2004, 1259, 1263, 1284, 1224, 1271, 1285, 1260, 1272, 1273,
+     1274, 1275, 1264, 1277, 1278, 1279, 1280, 1281, 1286, 1287,
+
+     1288, 1289, 1169, 1282, 1283, 1119, 1138, 1120, 1276, 1151,
+     1161, 1171, 1290, 1291, 1284, 1224, 1292, 1285, 1293, 1294,
+     1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1286,
+     1287, 1288, 1289, 1169, 1304, 1305, 1306, 1307, 1308,  362,
+     1309, 1312, 1171, 1290, 1291, 1310, 1311, 1292, 1313, 1293,
+     1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
+     1314, 1315, 1316, 1317, 1318, 1304, 1305, 1306, 1307, 1308,
+      362,  362, 1312, 1319, 1320, 1321, 1310, 1311, 1322, 1313,
+     1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332,
+     1333, 1314, 1315, 1316, 1317, 1318, 1334, 1335, 1336, 1337,
+
+     1338, 1339, 1340, 1341, 1319, 1320, 1321, 1342, 1343, 1322,
+     1344, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
+     1332, 1333, 1345, 1346, 1347, 1348, 1349, 1334, 1335, 1336,
+     1337, 1338, 1339, 1340, 1341, 1350, 1351, 1352, 1342, 1343,
+     1353, 1344, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1363,
+     1361, 1364, 1365, 1345, 1346, 1347, 1348, 1349, 1362, 1366,
+     1367, 1368, 1369, 1370, 1371, 1372, 1350, 1351, 1352, 1373,
+     1374, 1353, 1375, 1354, 1355, 1356, 1357, 1358, 1359, 1360,
+     1363, 1361, 1364, 1365, 1376, 1377, 1378, 1379, 1380, 1362,
+     1366, 1367, 1368, 1369, 1370, 1371, 1372, 1381, 1382, 1383,
+
+     1373, 1374, 1384, 1375, 1385, 1386, 1387, 1388, 1389, 1390,
+     1391, 1392, 1393, 1394, 1395, 1376, 1377, 1378, 1379, 1380,
+     1396, 1397, 1399, 1400, 1401, 1402, 1403, 1404, 1381, 1382,
+     1383, 1405, 1406, 1384, 1407, 1385, 1386, 1387, 1388, 1389,
+     1390, 1391, 1392, 1393, 1394, 1395, 1408, 1409, 1410, 1411,
+     1412, 1396, 1397, 1399, 1400, 1401, 1402, 1403, 1404, 1413,
+     1414, 1415, 1405, 1406, 1416, 1407, 1417, 1418, 1419, 1420,
+     1421, 1422, 1423, 1424, 1425, 1426, 1427, 1408, 1409, 1410,
+     1411, 1412, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437,
+     1413, 1414, 1415, 1428, 1438, 1416, 1439, 1417, 1418, 1419,
+
+     1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1440, 1429,
+     1441, 1442, 1443, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
+     1437, 1444, 1445, 1446, 1428, 1438, 1447, 1439, 1448, 1449,
+     1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1440,
+     1429, 1441, 1442, 1443, 1459, 1460, 1461, 1462, 1463, 1464,
+     1465, 1466, 1444, 1445, 1446, 1467, 1468, 1447, 1469, 1448,
+     1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458,
+     1470, 1471, 1472, 1473, 1474, 1459, 1460, 1461, 1462, 1463,
+     1464, 1465, 1466, 1475, 1476, 1477, 1467, 1468, 1479, 1469,
+     1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489,
+
+     1490, 1470, 1471, 1472, 1473, 1474, 1491, 1492, 1493,  362,
+      362, 1494, 1495, 1496, 1475, 1476, 1477, 1497, 1498, 1479,
+     1499, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488,
+     1489, 1490, 1500, 1501, 1502, 1503, 1504, 1491, 1492, 1493,
+     1505, 1506, 1494, 1495, 1496, 1507, 1508, 1509, 1497, 1498,
+     1510, 1499, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518,
+     1519, 1520, 1521, 1500, 1501, 1502, 1503, 1504, 1522, 1523,
+     1524, 1505, 1506, 1525, 1526, 1527, 1507, 1508, 1509, 1528,
+     1529, 1510, 1530, 1511, 1512, 1513, 1514, 1515, 1516, 1517,
+     1518, 1519, 1520, 1521, 1531, 1532, 1533, 1534, 1535, 1522,
+
+     1523, 1524, 1536, 1537, 1525, 1526, 1527, 1538, 1539, 1540,
+     1528, 1529, 1541, 1530, 1542, 1543, 1544, 1545, 1546, 1547,
+     1548, 1549, 1550, 1553, 1554, 1531, 1532, 1533, 1534, 1535,
+     1551, 1556, 1552, 1536, 1537, 1562, 2004, 1563, 1538, 1539,
+     1540, 1564, 2004, 1541, 1555, 1542, 1543, 1544, 1545, 1546,
+     1547, 1548, 1549, 1550, 1553, 1554, 1557, 1558, 1565, 1566,
+     1567, 1551, 1556, 1552, 1568, 1569, 1562, 1559, 1563, 1560,
+     1570, 1571, 1564, 1561, 1572, 1555, 1573, 1574, 1575, 1576,
+     1577, 1578, 1579, 1580, 1581, 1582, 1583, 1557, 1558, 1565,
+     1566, 1567, 1584, 1585, 1586, 1568, 1569, 1587, 1559, 1590,
+
+     1560, 1570, 1571, 1591, 1561, 1572, 1592, 1573, 1574, 1575,
+     1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1588, 1593,
+     1589, 1594, 1595, 1584, 1585, 1586, 1596, 1597, 1587, 1598,
+     1590, 1599, 1600, 1601, 1591, 1602, 1603, 1592, 1604, 1605,
+     1606, 1607, 1608, 1609, 2004, 2004, 1610, 1611, 1612, 1588,
+     1593, 1589, 1594, 1595, 1613, 1614, 1615, 1596, 1597, 1616,
+     1598, 2004, 1599, 1600, 1601, 1617, 1602, 1603, 1618, 1604,
+     1605, 1606, 1607, 1608, 1609, 1557, 1558, 1610, 1611, 1612,
+     1619, 1620, 1621, 1622, 1623, 1613, 1614, 1615, 1560, 1625,
+     1616, 1626, 1561, 1624, 1627, 1628, 1617, 1629, 1630, 1618,
+
+     1631, 1632, 1633, 1634, 1635, 1636, 1557, 1558,  362, 1637,
+      362, 1619, 1620, 1621, 1622, 1623, 1638, 1639, 1640, 1560,
+     1625, 1641, 1626, 1561, 1624, 1627, 1628, 1642, 1629, 1630,
+     1643, 1631, 1632, 1633, 1634, 1635, 1636, 1644, 1645, 1646,
+     1637, 1647, 1648, 1649, 1650, 1651, 1652, 1638, 1639, 1640,
+     1653, 1654, 1641, 1655, 1656, 1657, 1658, 1659, 1642, 1660,
+     1661, 1643, 1662, 1663, 1664, 1665, 1666, 1667, 1644, 1645,
+     1646, 1668, 1647, 1648, 1649, 1650, 1651, 1652, 1669, 1670,
+     1671, 1653, 1654, 1672, 1655, 1656, 1657, 1658, 1659, 1673,
+     1660, 1661, 1674, 1662, 1663, 1664, 1665, 1666, 1667, 1675,
+
+     1676, 1677, 1668, 1678, 1679, 1680, 1681, 1682, 1683, 1669,
+     1670, 1671, 1684, 1685, 1672, 1686, 1687, 1688, 1689, 1690,
+     1673, 1691, 1692, 1674, 1693, 1694, 1697, 1700, 1701, 1698,
+     1675, 1676, 1677, 1695, 1678, 1679, 1680, 1681, 1682, 1683,
+     1702, 1696, 1703, 1684, 1685, 1699, 1686, 1687, 1688, 1689,
+     1690, 1704, 1691, 1692, 1705, 1693, 1694, 1697, 1700, 1701,
+     1698, 1706, 1707, 1708, 1695, 1709, 1710, 1711, 1712, 1713,
+     1714, 1702, 1696, 1703, 1715, 1716, 1699, 1717, 1718, 1719,
+     1720, 1721, 1704, 1722, 1723, 1705, 1724, 1725, 1726, 1727,
+     1728, 1729, 1706, 1707, 1708, 1730, 1709, 1710, 1711, 1712,
+
+     1713, 1714, 1731, 1732, 1733, 1715, 1716, 1734, 1717, 1718,
+     1719, 1720, 1721, 1735, 1722, 1723, 1736, 1724, 1725, 1726,
+     1727, 1728, 1729, 1737, 1738, 1739, 1730, 1742, 1740, 1741,
+     1743, 1744, 1745, 1731, 1732, 1733, 1746, 1747, 1734, 1748,
+     1749, 1750, 1751, 1752, 1735,  362,  362, 1736, 1753, 1754,
+     1755, 1756, 1757, 1758, 1737, 1738, 1739, 1759, 1742, 1740,
+     1741, 1743, 1744, 1745, 1760, 1761, 1762, 1746, 1747, 1763,
+     1748, 1749, 1750, 1751, 1752, 1764, 1765, 1766, 1767, 1753,
+     1754, 1755, 1756, 1757, 1758, 1768, 1769, 1770, 1759, 1771,
+     1772, 1773, 1774, 1775, 1776, 1760, 1761, 1762, 1777, 1778,
+
+     1763, 1779, 1780, 1781, 1782, 1783, 1764, 1765, 1766, 1767,
+     1784, 1785, 1786, 1787, 1788, 1789, 1768, 1769, 1770, 1790,
+     1771, 1772, 1773, 1774, 1775, 1776, 1791, 1792, 1793, 1777,
+     1778, 1794, 1779, 1780, 1781, 1782, 1783, 1795, 1796, 1797,
+     1798, 1784, 1785, 1786, 1787, 1788, 1789, 1799, 1800, 1801,
+     1790, 1802, 1803, 1804, 1805, 1806, 1807, 1791, 1792, 1793,
+     1808, 1809, 1794, 1810, 1811, 1812, 1813, 1814, 1795, 1796,
+     1797, 1798, 1815, 1816, 1817, 1818, 1819, 1820, 1799, 1800,
+     1801, 1821, 1802, 1803, 1804, 1805, 1806, 1807, 1822, 1823,
+     1824, 1808, 1809, 1825, 1810, 1811, 1812, 1813, 1814, 1826,
+
+     1827, 1828, 1829, 1815, 1816, 1817, 1818, 1819, 1820, 1830,
+     1832, 1833, 1821, 1831, 1834, 1835, 1836, 1837, 1838, 1822,
+     1823, 1824, 1839,  362, 1825, 1840,  362, 1841, 1842, 1843,
+     1826, 1827, 1828, 1829, 1844, 1845, 1846, 1847, 1848, 1849,
+     1830, 1832, 1833, 1850, 1831, 1834, 1835, 1836, 1837, 1838,
+     1851, 1852, 1853, 1839, 1854, 1855, 1840, 1856, 1841, 1842,
+     1843, 1857, 1858, 1859, 1860, 1844, 1845, 1846, 1847, 1848,
+     1849, 1861, 1862, 1863, 1850, 1864, 1865, 1866, 1867, 1868,
+     1869, 1851, 1852, 1853, 1870, 1854, 1855, 1871, 1856, 1872,
+     1873, 1874, 1857, 1858, 1859, 1860, 1875, 1876, 1877, 1878,
+
+     1879, 1880, 1861, 1862, 1863, 1881, 1864, 1865, 1866, 1867,
+     1868, 1869, 1882, 1883, 1884, 1870, 1885, 1887, 1871, 1888,
+     1872, 1873, 1874, 1891, 1889, 1892, 1890, 1875, 1876, 1877,
+     1878, 1879, 1880, 1886,  362, 1893, 1881, 1894, 1895, 1896,
+     1897, 1898, 1899, 1882, 1883, 1884,  362, 1885, 1887, 1900,
+     1888, 1901, 1902, 1903, 1891, 1889, 1892, 1890, 1904, 1905,
+     1906, 1907, 1908, 1909, 1886, 1910, 1893, 1911, 1894, 1895,
+     1896, 1897, 1898, 1899, 1912, 1913, 1914, 1915, 1916, 1917,
+     1900, 1918, 1901, 1902, 1903, 1919, 1920, 1921, 1922, 1904,
+     1905, 1906, 1907, 1908, 1909, 1923, 1910, 1924, 1911, 1925,
+
+     1926, 1927, 1928, 1930, 1931, 1912, 1913, 1914, 1915, 1916,
+     1917, 1929, 1918, 1932,  362, 1933, 1919, 1920, 1921, 1922,
+     1934, 1935,  362, 1936, 1937, 1938, 1923, 1939, 1924, 1940,
+     1925, 1926, 1927, 1928, 1930, 1931, 1941, 1942, 1943, 1944,
+     1945, 1946, 1929, 1947, 1932, 1948, 1933, 1949, 1950, 1951,
+     1952, 1934, 1935, 1953, 1936, 1937, 1938, 1954, 1939, 1955,
+     1940, 1956, 1957, 1958,  362, 1959, 1960, 1941, 1942, 1943,
+     1944, 1945, 1946, 1961, 1947, 1962, 1948, 1963, 1949, 1950,
+     1951, 1952, 1964, 1965, 1953, 1966,  362, 1967, 1954, 1968,
+     1955, 1969, 1956, 1957, 1958, 1970, 1959, 1960, 1971, 1972,
+
+     1973, 1974, 1976, 1977, 1961, 1978, 1962, 1979, 1963, 1980,
+     1981, 1982, 1983, 1964, 1965, 1984, 1966, 1986, 1967, 1987,
+     1968, 1988, 1969, 1989, 1990,  362, 1970, 1991, 1992, 1971,
+     1972, 1973, 1974, 1976, 1977, 1993, 1978, 1994, 1979, 1995,
+     1980, 1981, 1982, 1983, 1996, 1997, 1984, 1998, 1986, 1999,
+     1987, 2000, 1988, 2001, 1989, 1990, 2002, 2003, 1991, 1992,
+     2004, 2004, 2004, 2004, 2004, 2004, 1993, 2004, 1994, 2004,
+     1995, 2004, 2004, 2004, 2004, 1996, 1997, 2004, 1998, 2004,
+     1999, 2004, 2000, 2004, 2001, 2004, 2004, 2002, 2003,   14,
+       14,   14,   14,   14,   14,   14,   14,   14,  125,  125,
+
+      125,  125,  125,  125,  125,  125,  125,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  134, 2004,  134,  134,
+      134,  134,  134,  134,  134,  135, 2004,  135,  135,  135,
+      135,  135,  135,  135,  139,  139,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  252,  252,  252,  252,  252,
+      252,  252,  252,  252,  254, 2004,  254,  254,  254,  254,
+      254,  254,  254,  274, 2004,  274,  358,  358,  358,  358,
+      358,  358,  358,  358,  358,  363,  363,  363,  363,  363,
+      363,  363,  363,  363,  367,  367,  367,  367,  367,  367,
+      367,  367,  367,  369,  369,  369,  369,  369,  369,  369,
+
+      369,  369,  370,  370,  370, 2004, 2004,  370,  370, 2004,
+      370,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      556, 2004, 2004,  556,  556, 2004,  556,  584,  584,  584,
+     2004,  584,  584,  584,  584,  584,  586,  586,  586,  586,
+     2004,  586,  586,  586,  586,  626,  626,  626,  626,  626,
+      626,  626,  626,  626,   13, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004
     } ;
 
-static yyconst flex_int16_t yy_chk[4634] =
+static yyconst flex_int16_t yy_chk[4644] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1635,508 +1638,509 @@ static yyconst flex_int16_t yy_chk[4634] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        1,    1,    1,    1,    1,    1,    1,    1,    3,    3,
+        9,   33,    9,    9,   10,    9,   10,   10,    9,   10,
+
+      121,    3,   10,   11,  121,   12,   11, 1974,   12,    3,
+       34,    3,    3,    3,   34, 1957,   15,    3,   15,   15,
+        3,    3,   33,   40,    3,    3,    3,    3,    3,    3,
+       20,    3,   20,   20,   54,    3,   21,   21,    3, 1311,
+        3,   34,    3,    3,    3,   34,   21,   11,    3,   12,
+       55,    3,    3,   56,   40,    3,    3,    3,    3,    3,
+        3,   24,    3,   24, 1212,   54,   23,    3,   23,   23,
+       24,  376,  376,    3,    4,    4,  637,   21,   23,  586,
+       69,   55,   69,   69,   56,   27,  584,    4,   27,   27,
+      587,   57,   24,  556,   24,    4,   31,    4,    4,    4,
+
+       31,   24,   27,    4,   31,   27,    4,    4,   58,   23,
+        4,    4,    4,    4,    4,    4,   27,    4,   60,   27,
+       27,    4,   57,   61,    4,   62,    4,   31,    4,    4,
+        4,   31,  587,   27,    4,   31,   27,    4,    4,   58,
+      476,    4,    4,    4,    4,    4,    4,  369,    4,   60,
+      364,  367,  364,    4,   61,   91,   62,   91,   91,    4,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    7,    7,    7,    7,    7,
+        5,    5,    5,    5,    5,    5,    5,    5,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
+
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-        9, 1971,    9,    9,   10,    9,   10,   10,    9,   10,
-       11,   12,   10,   11,   12,   15,   33,   15,   15,   20,
-     1954,   20,   20,   21,   21,   32,   32, 1308,   40,   53,
-       54,   55,   32,   21, 1209,  100,   23,  120,   23,   23,
-       68,  120,   68,   68,  100,  374,  374,   33,   23,   24,
-      634,   24,   56,  583,   11,   12,   32,   32,   24,   40,
-
-       53,   54,   55,   32,   21,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,   22,   23,
-       24,   22,   24,   56,   22,   22,   25,   22,   27,   24,
-       25,   27,   27,   57,   25,   28,   28,   28,   34,   37,
-       45,   28,   34,   25,   45,   27,   25,   28,   27,   59,
-       60,   61,   62,   37,   22,   22,   22,   25,   22,   27,
-       64,   25,   27,   27,   57,   25,   28,   28,   28,   34,
-       37,   45,   28,   34,   25,   45,   27,   25,   28,   27,
-       59,   60,   61,   62,   37,   22,   22,   22,   22,   22,
-       26,   64,   26,   29,   58,   26,   26,   29,   58,   26,
-
-       30,   29,   26,   65,   30,   26,   26,   29,   30,   66,
-       29,   31,   70,   67,   67,   31,  581,   30,   76,   31,
-      362,   26,  362,   26,   29,   58,   26,   26,   29,   58,
-       26,   30,   29,   26,   65,   30,   26,   26,   29,   30,
-       66,   29,   31,   70,  273,  273,   31,   67,   30,   76,
-       31,   35,   36,   35,   78,   35,   36,   63,   78,   35,
-       36,   81,   35,   63,   69,   35,   69,   41,   35,   77,
-       77,   41,   36,   69,   63,   41,   36,   90,  273,   90,
-       90,   41,   35,   36,   35,   78,   35,   36,   63,   78,
-       35,   36,   81,   35,   63,   69,   35,   69,   41,   35,
-
-       77,   77,   41,   36,   69,   63,   41,   36,   38,   38,
-       80,   39,   41,   43,   80,   39,   38,   43,   38,   39,
-       38,   43,   39,   38,   38,   39,  106,   43,   39,  553,
-       43,   91,   84,   91,   91,  474,   84,   43,  367,   38,
-       38,   80,   39,  365,   43,   80,   39,   38,   43,   38,
-       39,   38,   43,   39,   38,   38,   39,  106,   43,   39,
-       42,   43,   42,   84,   75,   42,   42,   84,   43,   44,
-       42,   88,   72,   88,   42,   72,   72,   42,   44,   42,
-       44,   75,   42,  109,   44,  110,   44,   96,   44,   96,
-       96,   42,  582,   42,  361,   75,   42,   42,  375,  375,
-
-       44,   42,   88,   72,   88,   42,   72,   72,   42,   44,
-       42,   44,   75,   42,  109,   44,  110,   44,  356,   44,
-       46,   46,  316,   71,   46,   71,   46,  102,   46,   73,
-       73,  102,   71,   46,   82,   71,  114,  582,   71,   74,
-       73,  314,   82,   74,   82,  376,  376,   74,  272,   82,
-       82,   46,   46,   74,   71,   46,   71,   46,  102,   46,
-       73,   73,  102,   71,   46,   82,   71,  114,   79,   71,
-       74,   73,   79,   82,   74,   82,   79,   83,   74,  103,
-       82,   82,   79,   86,   74,   83,  254,   86,   85,   85,
-      117,   83,  584,   86,   83,  103,   86,  118,   87,   79,
-
-       85,   97,   97,   79,   87,   85,   87,   79,   83,  253,
-      103,   97,  104,   79,   86,  104,   83,  108,   86,   85,
-       85,  117,   83,  112,   86,   83,  103,   86,  118,   87,
-      105,   85,  108,  112,  584,   87,   85,   87,   98,  107,
-       98,   98,   97,  104,  105,  111,  104,  107,  108,  113,
-       98,  251,  129,  113,  112,  111,  107,  119,  115,  130,
-      111,  105,  115,  108,  112,  116,  119,  623,  116,  623,
-      107,  125,  119,  125,  125,  105,  111,  624,  107,  624,
-      113,   98,  119,  129,  113,  141,  111,  107,  119,  115,
-      130,  111,  131,  115,  143,  131,  116,  119,  132,  116,
-
-      132,  132,  146,  119,  136,  136,  137,  135,  137,  137,
-      139,  139,  140,  140,  136,  148,  140,  140,  137,  134,
-      139,  127,  145,  145,  126,  143,  145,  145,  144,  144,
-      381,  381,  122,  146,  121,  150,  131,  101,  144,  149,
-      382,  382,  585,  585,  152,  136,  148,   99,  155,  137,
-      149,  139,  142,  142,  142,  142,  142,  142,  142,  142,
-      142,  142,  142,  142,  142,  142,  150,  156,  142,  144,
-      149,  142,  142,  147,  142,  152,  151,  147,  153,  155,
-      157,  149,  151,  161,  147,  162,  158,  159,  159,  159,
-      147,  164,  153,  165,  166,  164,  167,   95,  156,  169,
-
-      169,  142,  142,  142,  147,  142,  158,  151,  147,  153,
-      170,  157,   94,  151,  161,  147,  162,  158,  159,  159,
-      159,  147,  164,  153,  165,  166,  164,  167,  168,  172,
-      169,  169,  142,  142,  142,  142,  142,  158,  174,  171,
-      173,  170,  168,  171,  173,  175,  176,  175,  175,  177,
-      178,  175,  179,  180,  181,  182,  183,  184,   93,  168,
-      172,  180,  186,  187,   92,  188,  189,  180,   49,  174,
-      171,  173,  188,  168,  171,  173,  175,  176,  175,  175,
-      177,  178,  175,  179,  180,  181,  182,  183,  184,  185,
-      185,  190,  180,  186,  187,  185,  188,  189,  180,  192,
-
-      193,  195,  198,  188,  192,  192,  185,  190,  197,  190,
-      197,  197,  200,  201,  190,  202,  197,  204,  198,   48,
-      185,  185,  190,  202,  203,  205,  185,   19,  203,  206,
-      192,  193,  195,  198,  207,  192,  192,  185,  190,  197,
-      190,  197,  197,  200,  201,  190,  202,  197,  204,  198,
-      199,  199,  199,  208,  202,  203,  205,  209,  199,  203,
-      206,  210,  211,  212,  211,  207,  213,  214,  215,  216,
-      217,  215,  218,  586,  586,  216,  220,  218,  215,   13,
-      221,  199,  199,  199,  208,  222,    0,  223,  209,  199,
-      224,  226,  210,  211,  212,  211,  227,  213,  214,  215,
-
-      216,  217,  215,  218,  219,  219,  216,  220,  218,  215,
-      219,  221,  225,  225,  219,  219,  222,  219,  223,  229,
-      230,  224,  226,  228,  231,  225,  232,  227,  234,    0,
-      233,  236,  233,  239,  241,  219,  219,  232,  233,  242,
-      243,  219,  244,  225,  225,  219,  219,  228,  219,  245,
-      229,  230,  235,  246,  228,  231,  225,  232,  247,  234,
-      235,  233,  236,  233,  239,  241,  248,  249,  232,  233,
-      242,  243,  235,  244,  250,  255,  256,  257,  228,  258,
-      245,  259,  261,  235,  246,  262,  260,  263,  264,  247,
-      266,  235,  267,  268,  269,  270,  271,  248,  249,  276,
-
-      277,  265,  278,  235,  278,  250,  255,  256,  257,  260,
-      258,  279,  259,  261,  265,  275,  262,  260,  263,  264,
-      280,  266,  275,  267,  268,  269,  270,  271,  275,  281,
-      276,  277,  265,  278,  282,  278,  284,  283,  286,  287,
-      260,  283,  279,  289,  290,  265,  275,  285,  291,  285,
-      285,  280,  292,  275,  293,  294,  288,  295,  297,  275,
-      281,  298,  288,  299,  300,  282,  301,  284,  283,  286,
-      287,  302,  283,  288,  289,  290,  301,  303,  285,  291,
-      285,  285,  304,  292,  305,  293,  294,  288,  295,  297,
-      306,  307,  298,  288,  299,  300,  310,  301,  308,  311,
-
-      312,  327,  302,  309,  288,    0,  328,  301,  303,  308,
-      329,  309,    0,  304,    0,  305,  317,  317,  319,  319,
-        0,  306,  307,  330,  331,  331,  317,  310,  319,  308,
-      311,  312,  327,  318,  309,  318,  318,  328,  332,  333,
-      308,  329,  309,  320,  320,  318,  334,  320,  320,  335,
-      321,  321,  333,  336,  330,  331,  331,  317,  337,  319,
-      321,  322,  322,  338,  339,  322,  322,  341,  342,  332,
-      333,  343,  344,  346,  348,  349,  318,  334,  341,  350,
-      335,  351,  353,  333,  336,  352,  354,  352,  355,  337,
-        0,  321,  357,  358,  338,  339,  377,  383,  341,  342,
-
-      384,  359,  343,  344,  346,  348,  349,  589,  589,  341,
-      350,    0,  351,  353,  385,    0,  352,  354,  352,  355,
-      357,  358,  359,  357,  358,  372,  372,  377,  383,  373,
-      373,  384,  359,  373,  373,  372,  379,  379,  380,  380,
-      386,  387,  380,  380,  388,  385,  379,  389,  390,  391,
-      392,  393,  394,  395,  396,  397,  398,  399,  400,  401,
-      402,  403,  404,  406,  407,    0,  372,  409,  410,  411,
-      404,  386,  387,  412,  413,  388,  404,  379,  389,  390,
-      391,  392,  393,  394,  395,  396,  397,  398,  399,  400,
-      401,  402,  403,  404,  406,  407,  408,  414,  409,  410,
-
-      411,  404,  416,  417,  412,  413,  418,  404,  419,  420,
-      421,  422,  423,  408,  424,  425,  426,  427,  429,  422,
-      430,  431,  432,  433,  434,  435,  426,  408,  414,  436,
-      437,  438,  439,  416,  417,  438,  440,  418,  441,  419,
-      420,  421,  422,  423,  408,  424,  425,  426,  427,  429,
-      422,  430,  431,  432,  433,  434,  435,  426,  442,  443,
-      436,  437,  438,  439,  444,  445,  438,  440,  446,  441,
-      447,  448,  449,  450,  451,  445,  452,  453,  454,  457,
-      458,  590,  590,  460,    0,  462,  625,  625,  463,  442,
-      443,  465,    0,  461,  466,  444,  445,  461,  467,  446,
-
-        0,  447,  448,  449,  450,  451,  445,  452,  453,  454,
-      457,  458,  459,  459,  460,  459,  462,  459,  459,  463,
-      459,  468,  465,  459,  461,  466,  459,  469,  461,  467,
-      459,  459,  470,  471,  459,  627,  627,  472,    0,  475,
-      628,  628,  476,  459,  459,  478,  459,  479,  459,  459,
-      480,  459,  468,    0,  459,  477,  481,  459,  469,  477,
-      483,  459,  459,  470,  471,  459,  464,  464,  472,  464,
-      475,  464,  464,  476,  464,  482,  478,  464,  479,  484,
-      485,  480,  486,  482,  464,  464,  477,  481,  464,  487,
-      477,  483,  488,  486,  489,  490,  491,  464,  464,  488,
-
-      464,  492,  464,  464,  485,  464,  482,  493,  464,  494,
-      484,  485,  495,  486,  482,  464,  464,  496,  497,  464,
-      487,  498,  499,  488,  486,  489,  490,  491,  500,  501,
-      488,  503,  492,  502,  504,  485,  505,  506,  493,  507,
-      494,  508,  509,  495,  511,  502,  512,  513,  496,  497,
-      514,  515,  498,  499,  516,  517,  518,  519,  520,  500,
-      501,  521,  503,  522,  502,  504,  523,  505,  506,  524,
-      507,  523,  508,  509,  524,  511,  502,  512,  513,  525,
-      527,  514,  515,  526,  530,  516,  517,  518,  519,  520,
-      533,  534,  521,  535,  522,  526,  536,  523,  537,  538,
-
-      524,  539,  523,  540,  541,  524,  543,  544,  545,  546,
-      525,  527,  547,  548,  526,  530,  549,  550,  551,  555,
-      556,  533,  534,  557,  535,  558,  526,  536,  559,  537,
-      538,  560,  539,  561,  540,  541,  562,  543,  544,  545,
-      546,  563,  564,  547,  548,  565,  567,  549,  550,  551,
-      555,  556,  568,  566,  557,  569,  558,  570,  571,  559,
-      572,  573,  560,  566,  561,  574,  575,  562,  576,  577,
-      578,  579,  563,  564,  580,  591,  565,  567,  592,  593,
-      587,  587,  594,  568,  566,  595,  569,  596,  570,  571,
-      587,  572,  573,  597,  566,  598,  574,  575,  599,  576,
-
-      577,  578,  579,  588,  588,  580,  591,  588,  588,  592,
-      593,  600,  601,  594,  602,  603,  595,  604,  596,  605,
-      606,  587,  607,  608,  597,  609,  598,  611,  612,  599,
-      613,  614,  615,  616,  617,  618,  619,    0,  620,  621,
-      622,  629,  600,  601,  630,  602,  603,  620,  604,  631,
-      605,  606,  621,  607,  608,  632,  609,  633,  611,  612,
-      635,  613,  614,  615,  616,  617,  618,  619,  622,  620,
-      621,  622,  629,  636,  637,  630,  638,  639,  640,  641,
-      631,  643,  644,  645,  646,  647,  632,  648,  633,  649,
-      650,  635,  651,  652,  653,  654,  653,  655,  649,  656,
-
-      657,  644,  659,  660,  636,  637,  661,  638,  639,  640,
-      641,  662,  643,  644,  645,  646,  647,  663,  648,  664,
-      649,  650,  665,  651,  652,  653,  654,  653,  655,  649,
-      656,  657,  644,  659,  660,  666,  667,  661,  669,  670,
-      671,  672,  662,  673,  674,  675,  677,  678,  663,  679,
-      664,  680,  681,  665,  682,  683,  684,  685,  686,  687,
-      688,  689,  690,  691,  693,  694,  666,  667,  696,  669,
-      670,  671,  672,    0,  673,  674,  675,  677,  678,  697,
-      679,  698,  680,  681,  699,  682,  683,  684,  685,  686,
-      687,  688,  689,  690,  691,  693,  694,  695,  700,  696,
-
-      701,  703,  704,  705,  695,  707,  708,  709,  710,  704,
-      697,  711,  698,  712,  713,  699,  714,  716,    0,  717,
-      718,  719,  720,  721,  722,  723,  724,  725,  695,  700,
-        0,  701,  703,  704,  705,  695,  707,  708,  709,  710,
-      704,  726,  711,  715,  712,  713,  727,  714,  716,  715,
-      717,  718,  719,  720,  721,  722,  723,  724,  725,  728,
-      729,  715,  731,  730,  732,  733,  734,  735,  737,  730,
-      739,  740,  726,  741,  715,  740,  742,  727,  743,  744,
-      715,  730,  745,  746,  747,  748,  749,  750,  751,  752,
-      728,  729,  715,  731,  730,  732,  733,  734,  735,  737,
-
-      730,  739,  740,  753,  741,  754,  740,  742,  755,  743,
-      744,  756,  730,  745,  746,  747,  748,  749,  750,  751,
-      752,  757,  758,  759,  760,  761,  757,  762,  763,  764,
-      765,  766,  767,  768,  753,  769,  754,  770,  771,  755,
-      772,  773,  756,  774,  775,  776,  777,  778,  779,  780,
-      781,  782,  757,  758,  759,  760,  761,  757,  762,  763,
-      764,  765,  766,  767,  768,  783,  769,  784,  770,  771,
-      789,  772,  773,  790,  774,  775,  776,  777,  778,  779,
-      780,  781,  782,  785,  787,  791,  792,  785,  793,  795,
-      796,  797,  798,  799,  787,  800,  783,  801,  784,  802,
-
-      803,  789,  805,  806,  790,  807,  808,  809,  810,  811,
-      812,  813,  814,  815,  785,  787,  791,  792,  785,  793,
-      795,  796,  797,  798,  799,  787,  800,  816,  801,  817,
-      802,  803,  819,  805,  806,  820,  807,  808,  809,  810,
-      811,  812,  813,  814,  815,  821,  822,  823,  825,  827,
-      828,  829,  830,  831,  832,  833,  835,  836,  816,  842,
-      817,  839,  839,  819,  840,  840,  820,  843,  844,  845,
-      846,  847,  848,  849,  850,  851,  821,  822,  823,  825,
-      827,  828,  829,  830,  831,  832,  833,  835,  836,  852,
-      842,  853,  854,  855,  856,  857,  858,  859,  843,  844,
-
-      845,  846,  847,  848,  849,  850,  851,  860,  861,  862,
-      863,  864,  865,  867,  868,  870,  870,  871,  869,  874,
-      852,  876,  853,  854,  855,  856,  857,  858,  859,  877,
-      871,  879,  880,  882,  883,  884,  885,  886,  860,  861,
-      862,  863,  864,  865,  867,  868,  869,  887,  871,  869,
-      874,  889,  876,  890,  891,  890,  892,  893,  894,  895,
-      877,  894,  879,  880,  882,  883,  884,  885,  886,  896,
-      897,  898,  899,  901,  902,  903,  904,  907,  887,  909,
-      910,  910,  889,  912,  890,  891,  890,  892,  893,  894,
-      895,  913,  894,  914,  915,  916,  917,  919,  920,  922,
-
-      896,  897,  898,  899,  901,  902,  903,  904,  907,  923,
-      909,  910,  910,  926,  912,  927,  929,  930,  932,  935,
-      936,  928,  913,  933,  914,  915,  916,  917,  919,  920,
-      922,  928,  937,  933,  928,  928,  938,  939,  928,  928,
-      923,  942,  944,    0,  926,  945,  927,  929,  930,  932,
-      935,  936,  928,  946,  933,    0,  947,  948,  949,  950,
-      951,  952,  928,  937,  933,  928,  928,  938,  939,  928,
-      928,  940,  942,  944,  940,  953,  945,  940,  954,  955,
-      956,  940,  957,  958,  946,  959,  940,  947,  948,  949,
-      950,  951,  952,  960,  961,  962,  963,  964,  966,  967,
-
-      968,  969,  940,  970,  971,  940,  953,  972,  940,  954,
-      955,  956,  940,  957,  958,  973,  959,  940,  974,  975,
-      976,  977,  978,  980,  960,  961,  962,  963,  964,  966,
-      967,  968,  969,  982,  970,  971,  983,  984,  972,  985,
-      986,  987,  988,  989,  990,  991,  973,  992,  993,  974,
-      975,  976,  977,  978,  980,  994,  995,  996,  997,  998,
-      999, 1000, 1001,    0,  982, 1003, 1004,  983,  984, 1005,
-      985,  986,  987,  988,  989,  990,  991, 1006,  992,  993,
-     1008, 1009, 1010, 1011, 1012, 1002,  994,  995,  996,  997,
-      998,  999, 1000, 1001, 1002, 1007, 1003, 1004, 1013, 1014,
-
-     1005, 1015, 1007, 1018, 1019, 1018, 1020, 1021, 1006, 1022,
-     1023, 1008, 1009, 1010, 1011, 1012, 1002, 1024, 1026, 1027,
-     1028, 1018, 1029, 1031, 1032, 1002, 1007, 1034, 1036, 1013,
-     1014, 1038, 1015, 1007, 1018, 1019, 1018, 1020, 1021, 1033,
-     1022, 1023, 1039, 1042, 1043, 1033, 1037, 1044, 1024, 1026,
-     1027, 1028, 1018, 1029, 1031, 1032, 1037, 1045, 1034, 1036,
-     1046, 1047, 1038, 1051, 1052, 1053, 1056, 1057, 1058, 1059,
-     1033, 1060, 1061, 1039, 1042, 1043, 1033, 1037, 1044, 1063,
-     1067, 1065, 1053, 1065, 1068, 1069,    0, 1037, 1045, 1071,
-     1072, 1046, 1047, 1073, 1051, 1052, 1053, 1056, 1057, 1058,
-
-     1059, 1074, 1060, 1061, 1075, 1076, 1077, 1078, 1070, 1079,
-     1063, 1067, 1065, 1053, 1065, 1068, 1069, 1070, 1080, 1081,
-     1071, 1072, 1082, 1083, 1073, 1085, 1086, 1087, 1088, 1089,
-     1090, 1091, 1074, 1093, 1095, 1075, 1076, 1077, 1078, 1070,
-     1079, 1096, 1097, 1098, 1100, 1101, 1101, 1103, 1070, 1080,
-     1081, 1102, 1104, 1082, 1083, 1105, 1085, 1086, 1087, 1088,
-     1089, 1090, 1091, 1106, 1093, 1095, 1107, 1108, 1109, 1111,
-     1114, 1103, 1096, 1097, 1098, 1100, 1116, 1102, 1103, 1117,
-     1118, 1119, 1102, 1104, 1120, 1122, 1105, 1124, 1125, 1126,
-     1127, 1128, 1129, 1131, 1106, 1132, 1133, 1107, 1108, 1109,
-
-     1111, 1114, 1134, 1136, 1138, 1140, 1142, 1116, 1143, 1144,
-     1117, 1118, 1119, 1145, 1148, 1120, 1122, 1149, 1124, 1125,
-     1126, 1127, 1128, 1129, 1131, 1150, 1132, 1133, 1151, 1152,
-     1153, 1155, 1156, 1134, 1136, 1138, 1140, 1142, 1157, 1143,
-     1144, 1158, 1159, 1160, 1145, 1148, 1161, 1162, 1149, 1163,
-     1164, 1165, 1166, 1168, 1171, 1172, 1150, 1167, 1173, 1151,
-     1152, 1153, 1155, 1156, 1174, 1167, 1175, 1176, 1177, 1157,
-     1178, 1179, 1158, 1159, 1160, 1180, 1181, 1161, 1162, 1182,
-     1163, 1164, 1165, 1166, 1168, 1171, 1172, 1183, 1167, 1173,
-     1184, 1185, 1186, 1187, 1189, 1174, 1167, 1175, 1176, 1177,
-
-     1191, 1178, 1179, 1192, 1193, 1194, 1180, 1181, 1195, 1196,
-     1182, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1183, 1204,
-     1205, 1184, 1185, 1186, 1187, 1189, 1208, 1210, 1211, 1212,
-     1213, 1191, 1214, 1215, 1192, 1193, 1194, 1216, 1217, 1195,
-     1196, 1222, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1223,
-     1204, 1205, 1224, 1225, 1226, 1227, 1228, 1208, 1210, 1211,
-     1212, 1213, 1229, 1214, 1215, 1230, 1231, 1232, 1216, 1217,
-     1233, 1235, 1222, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
-     1223, 1244, 1246, 1224, 1225, 1226, 1227, 1228, 1249, 1252,
-     1253, 1254, 1255, 1229, 1256, 1245, 1230, 1231, 1232, 1257,
-
-     1258, 1233, 1235, 1259, 1237, 1238, 1239, 1240, 1241, 1242,
-     1243, 1245, 1244, 1246, 1260, 1261, 1262, 1263, 1264, 1249,
-     1252, 1253, 1254, 1255, 1265, 1256, 1245, 1266, 1267, 1270,
-     1257, 1258, 1272, 1273, 1259, 1275, 1276, 1277, 1278, 1279,
-     1280, 1281, 1245, 1283, 1286, 1260, 1261, 1262, 1263, 1264,
-     1287, 1288, 1289, 1290, 1291, 1265, 1293, 1294, 1266, 1267,
-     1270, 1295, 1296, 1272, 1273, 1297, 1275, 1276, 1277, 1278,
-     1279, 1280, 1281, 1298, 1283, 1286, 1300, 1301, 1302, 1303,
-     1304, 1287, 1288, 1289, 1290, 1291, 1306, 1293, 1294, 1307,
-     1309, 1310, 1295, 1296, 1311, 1312, 1297, 1313, 1314, 1315,
-
-     1316, 1317, 1318, 1320, 1298, 1321, 1322, 1300, 1301, 1302,
-     1303, 1304, 1306, 1307, 1323, 1325, 1326, 1306, 1328, 1330,
-     1307, 1309, 1310, 1331, 1332, 1311, 1312, 1334, 1313, 1314,
-     1315, 1316, 1317, 1318, 1320, 1336, 1321, 1322, 1337, 1338,
-     1339, 1340, 1341, 1342, 1343, 1323, 1325, 1326, 1344, 1328,
-     1330, 1345, 1347, 1348, 1331, 1332, 1349, 1350, 1334, 1351,
-     1353, 1354, 1355, 1356, 1357, 1358, 1336, 1359, 1360, 1337,
-     1338, 1339, 1340, 1341, 1342, 1343, 1361, 1363, 1364, 1344,
-     1366, 1367, 1345, 1347, 1348, 1368, 1369, 1349, 1350, 1370,
-     1351, 1353, 1354, 1355, 1356, 1357, 1358, 1371, 1359, 1360,
-
-     1372, 1373, 1375, 1376, 1377, 1378, 1379, 1361, 1363, 1364,
-     1381, 1366, 1367, 1382, 1383, 1384, 1368, 1369, 1385, 1386,
-     1370, 1387, 1389, 1390, 1391, 1392, 1393, 1395, 1371, 1395,
-     1397, 1372, 1373, 1375, 1376, 1377, 1378, 1379, 1399, 1398,
-     1401, 1381,    0, 1403, 1382, 1383, 1384, 1404,    0, 1385,
-     1386, 1406, 1387, 1389, 1390, 1391, 1392, 1393, 1395, 1398,
-     1395, 1397, 1400, 1400, 1408, 1409, 1410, 1411, 1412, 1399,
-     1398, 1401, 1413, 1400, 1403, 1400, 1414, 1415, 1404, 1400,
-     1416, 1417, 1406, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
-     1398, 1425, 1426, 1400, 1400, 1408, 1409, 1410, 1411, 1412,
-
-     1427, 1428, 1429, 1413, 1400, 1431, 1400, 1414, 1415, 1432,
-     1400, 1416, 1417, 1433, 1418, 1419, 1420, 1421, 1422, 1423,
-     1424, 1434, 1425, 1426, 1430, 1436, 1430, 1437, 1438, 1439,
-     1440, 1427, 1428, 1429, 1443, 1444, 1431, 1445, 1446, 1447,
-     1432, 1448, 1449, 1450, 1433, 1451, 1452, 1453, 1455, 1457,
-     1454, 1454, 1434, 1459, 1460, 1430, 1436, 1430, 1437, 1438,
-     1439, 1440, 1462, 1454, 1463, 1443, 1444, 1454, 1445, 1446,
-     1447, 1464, 1448, 1449, 1450, 1466, 1451, 1452, 1453, 1455,
-     1457, 1454, 1454, 1467, 1459, 1460, 1468, 1469, 1470, 1471,
-     1474, 1473, 1476, 1462, 1454, 1463, 1477, 1478, 1454, 1479,
-
-     1480, 1482, 1464, 1483, 1484, 1485, 1466, 1474, 1486, 1487,
-     1488, 1489, 1490, 1491, 1467, 1473, 1492, 1468, 1469, 1470,
-     1471, 1474, 1473, 1476, 1494, 1495, 1496, 1477, 1478, 1497,
-     1479, 1480, 1482, 1498, 1483, 1484, 1485, 1499, 1501, 1486,
-     1487, 1488, 1489, 1490, 1491, 1502, 1503, 1492, 1504, 1505,
-     1507, 1508, 1509, 1510, 1512, 1494, 1495, 1496, 1513, 1514,
-     1497, 1515, 1516, 1517, 1498, 1518, 1519, 1520, 1499, 1501,
-     1521, 1522, 1523, 1524, 1525, 1526, 1502, 1503, 1527, 1504,
-     1505, 1507, 1508, 1509, 1510, 1512, 1528, 1529, 1530, 1513,
-     1514, 1531, 1515, 1516, 1517, 1532, 1518, 1519, 1520, 1536,
-
-     1537, 1521, 1522, 1523, 1524, 1525, 1526, 1538, 1539, 1527,
-     1540, 1541, 1542, 1543, 1544, 1547, 1548, 1528, 1529, 1530,
-     1549, 1550, 1531, 1551, 1552, 1553, 1532, 1554, 1555, 1556,
-     1536, 1537, 1557, 1558, 1560, 1561, 1563, 1556, 1538, 1539,
-     1564, 1540, 1541, 1542, 1543, 1544, 1547, 1548, 1566, 1558,
-     1567, 1549, 1550, 1568, 1551, 1552, 1553, 1570, 1554, 1555,
-     1556, 1571, 1572, 1557, 1558, 1560, 1561, 1563, 1556, 1573,
-     1575, 1564, 1577, 1578, 1580, 1581, 1582, 1583, 1584, 1566,
-     1558, 1567, 1585, 1586, 1568, 1587, 1589, 1591, 1570, 1592,
-     1593, 1597, 1571, 1572, 1598, 1599, 1600, 1601, 1603, 1604,
-
-     1573, 1575, 1606, 1577, 1578, 1580, 1581, 1582, 1583, 1584,
-     1609, 1613, 1614, 1585, 1586, 1615, 1587, 1589, 1591, 1617,
-     1592, 1593, 1597, 1618, 1622, 1598, 1599, 1600, 1601, 1603,
-     1604, 1620, 1621, 1606, 1623, 1625, 1627, 1629, 1631, 1632,
-     1634, 1609, 1613, 1614, 1635, 1637, 1615, 1638, 1620, 1621,
-     1617, 1640, 1641, 1642, 1618, 1622, 1644, 1647, 1649, 1652,
-     1653, 1654, 1620, 1621, 1655, 1623, 1625, 1627, 1629, 1631,
-     1632, 1634, 1656, 1658, 1659, 1635, 1637, 1660, 1638, 1661,
-     1662, 1663, 1640, 1641, 1642, 1664, 1665, 1644, 1647, 1649,
-     1652, 1653, 1654, 1666, 1667, 1655, 1668, 1670, 1671, 1672,
-
-     1673, 1674, 1675, 1656, 1658, 1659, 1676, 1677, 1660, 1678,
-     1661, 1662, 1663, 1680, 1681, 1682, 1664, 1665, 1683, 1684,
-     1685, 1686, 1687, 1688, 1666, 1667, 1689, 1668, 1670, 1671,
-     1672, 1673, 1674, 1675, 1690, 1691, 1692, 1676, 1677, 1693,
-     1678, 1694, 1695, 1696, 1680, 1681, 1682, 1697, 1698, 1683,
-     1684, 1685, 1686, 1687, 1688, 1699, 1700, 1689, 1701, 1702,
-     1703, 1706, 1707, 1708, 1709, 1690, 1691, 1692, 1710, 1711,
-     1693, 1712, 1694, 1695, 1696, 1716, 1718, 1720, 1697, 1698,
-     1722, 1723, 1724, 1725, 1727, 1729, 1699, 1700, 1730, 1701,
-     1702, 1703, 1706, 1707, 1708, 1709, 1731, 1732, 1733, 1710,
-
-     1711, 1734, 1712, 1735, 1737, 1739, 1716, 1718, 1720, 1741,
-     1738, 1722, 1723, 1724, 1725, 1727, 1729, 1742, 1746, 1730,
-     1738, 1737, 1747, 1748, 1751, 1752, 1754, 1731, 1732, 1733,
-     1756, 1760, 1734, 1761, 1735, 1737, 1739, 1762, 1763, 1764,
-     1741, 1738, 1765, 1768, 1769, 1770, 1771, 1772, 1742, 1746,
-     1773, 1774, 1775, 1747, 1748, 1751, 1752, 1754, 1777, 1778,
-     1779, 1756, 1760, 1780, 1761, 1781, 1782, 1783, 1762, 1763,
-     1764, 1784, 1785, 1765, 1768, 1769, 1770, 1771, 1772, 1787,
-     1788, 1773, 1774, 1775, 1789, 1790, 1791, 1792, 1793, 1777,
-     1778, 1779, 1794, 1795, 1780, 1796, 1781, 1782, 1783, 1797,
-
-     1798, 1799, 1784, 1785, 1801, 1804, 1806, 1810, 1812, 1813,
-     1787, 1788, 1814, 1817, 1821, 1789, 1790, 1791, 1792, 1793,
-        0, 1830, 1831, 1794, 1795, 1815, 1796, 1828, 1832, 1834,
-     1797, 1798, 1799, 1835, 1836, 1801, 1804, 1806, 1810, 1812,
-     1813, 1827, 1815, 1814, 1817, 1821, 1837, 1828, 1838, 1840,
-     1841, 1827, 1830, 1831, 1842, 1843, 1815, 1844, 1828, 1832,
-     1834, 1849, 1850, 1851, 1835, 1836, 1854, 1857, 1858, 1860,
-     1862, 1863, 1827, 1815, 1864, 1865, 1866, 1837, 1867, 1838,
-     1840, 1841, 1868, 1869, 1870, 1842, 1843, 1872, 1844, 1875,
-     1877, 1879, 1849, 1850, 1851, 1880, 1881, 1854, 1857, 1858,
-
-     1860, 1862, 1863, 1882, 1884, 1864, 1865, 1866, 1886, 1867,
-     1888, 1890, 1891, 1868, 1869, 1870, 1887, 1893, 1872, 1887,
-     1875, 1877, 1879, 1895, 1896, 1897, 1880, 1881, 1886, 1898,
-     1900, 1901, 1902, 1904, 1882, 1884, 1905, 1907, 1908, 1886,
-     1912, 1888, 1890, 1891, 1914, 1915, 1916, 1887, 1893, 1917,
-     1918, 1919, 1920, 1921, 1895, 1896, 1897, 1922, 1924,    0,
-     1898, 1900, 1901, 1902, 1904, 1927, 1926, 1905, 1907, 1908,
-     1925, 1912, 1928, 1925, 1932, 1914, 1915, 1916, 1933, 1935,
-     1917, 1918, 1919, 1920, 1921, 1936, 1938, 1942, 1922, 1924,
-     1926, 1943, 1944, 1945, 1947, 1948, 1927, 1926, 1949, 1950,
-
-     1951, 1925, 1955, 1928, 1953, 1932, 1957, 1958, 1959, 1933,
-     1935, 1960, 1962, 1965, 1968, 1969, 1936, 1938, 1942, 1974,
-     1975, 1978, 1943, 1944, 1945, 1947, 1948, 1979, 1953, 1949,
-     1950, 1951, 1980, 1955, 1983, 1953, 1984, 1957, 1958, 1959,
-     1985, 1986, 1960, 1962, 1965, 1968, 1969, 1988, 1989, 1990,
-     1974, 1975, 1978, 1991, 1994, 1995, 1996, 1998, 1979, 1999,
-        0,    0,    0, 1980,    0, 1983,    0, 1984,    0,    0,
-        0, 1985, 1986,    0,    0,    0,    0,    0, 1988, 1989,
-     1990,    0,    0,    0, 1991, 1994, 1995, 1996, 1998,    0,
-     1999, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002,
-
-     2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2004,
-        0, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2005,    0,
-     2005, 2005, 2005, 2005, 2005, 2005, 2005, 2006, 2006, 2007,
-     2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2008, 2008,
-     2008, 2008, 2008, 2008, 2008, 2008, 2008, 2009,    0, 2009,
-     2009, 2009, 2009, 2009, 2009, 2009, 2010,    0, 2010, 2011,
-     2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2012, 2012,
-     2012, 2012, 2012, 2012, 2012, 2012, 2012, 2013, 2013, 2013,
-     2013, 2013, 2013, 2013, 2013, 2013, 2014, 2014, 2014, 2014,
-     2014, 2014, 2014, 2014, 2014, 2015, 2015, 2015,    0,    0,
-
-     2015, 2015,    0, 2015, 2016, 2016, 2016, 2016, 2016, 2016,
-     2016, 2016, 2016, 2017,    0,    0, 2017, 2017,    0, 2017,
-     2018, 2018, 2018,    0, 2018, 2018, 2018, 2018, 2018, 2019,
-     2019, 2019, 2019,    0, 2019, 2019, 2019, 2019, 2020, 2020,
-     2020, 2020, 2020, 2020, 2020, 2020, 2020, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
-     2001, 2001, 2001
+        7,    7,    7,    7,    7,    7,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+      363,   37,   22,   25,  358,   22,   22,   25,   22,   32,
+       32,   25,   28,   28,   28,   37,   32,   41,   28,   63,
+       25,   41,   45,   25,   28,   41,   45,   65,   66,   59,
+       67,   41,   37,   59,   25,   22,   22,   22,   25,   22,
+       32,   32,   25,   28,   28,   28,   37,   32,   41,   28,
+
+       63,   25,   41,   45,   25,   28,   41,   45,   65,   66,
+       59,   67,   41,  626,   59,  626,   22,   22,   22,   22,
+       22,   22,   22,   22,   26,   71,   26,   29,   77,   26,
+       26,   29,   76,   26,   30,   29,   26,   82,   30,   26,
+       26,   29,   30,   79,   29,   68,   68,   79,  318,   76,
+       92,   30,   92,   92,  316,   26,   71,   26,   29,   77,
+       26,   26,   29,   76,   26,   30,   29,   26,   82,   30,
+       26,   26,   29,   30,   79,   29,  377,  377,   79,   68,
+       76,  274,   30,   35,   36,   35,   81,   35,   36,   64,
+       81,   35,   36,  107,   35,   64,   70,   35,   70,   73,
+
+       35,  110,   73,   73,   36,   70,   64,   85,   36,  256,
+       97,   85,   97,   97,   35,   36,   35,   81,   35,   36,
+       64,   81,   35,   36,  107,   35,   64,   70,   35,   70,
+       73,   35,  110,   73,   73,   36,   70,   64,   85,   36,
+       38,   38,   85,   39,   89,   43,   89,   39,   38,   43,
+       38,   39,   38,   43,   39,   38,   38,   39,  101,   43,
+       39,  627,   43,  627,   78,   78,  255,  101,  254,   43,
+      252,   38,   38,  142,   39,   89,   43,   89,   39,   38,
+       43,   38,   39,   38,   43,   39,   38,   38,   39,  136,
+       43,   39,   42,   43,   42,   78,   78,   42,   42,   75,
+
+       43,   44,   42,   75,   74,   74,   42,   75,  111,   42,
+       44,   42,   44,   75,   42,   74,   44,  115,   44,  135,
+       44,   98,   98,   42,  126,   42,  126,  126,   42,   42,
+       75,   98,   44,   42,   75,   74,   74,   42,   75,  111,
+       42,   44,   42,   44,   75,   42,   74,   44,  115,   44,
+      103,   44,   46,   46,  103,   72,   46,   72,   46,  104,
+       46,  118,   98,   83,   72,   46,  128,   72,   80,  119,
+       72,   83,   80,   83,  585,  104,   80,  127,   83,   83,
+      123,  103,   80,   46,   46,  103,   72,   46,   72,   46,
+      104,   46,  118,  130,   83,   72,   46,   84,   72,   80,
+
+      119,   72,   83,   80,   83,   84,  104,   80,   87,   83,
+       83,   84,   87,   80,   84,   86,   86,   88,   87,  585,
+      106,   87,  122,   88,  130,   88,  105,   86,   84,  105,
+      378,  378,   86,  102,  106,  131,   84,  144,   99,   87,
+       99,   99,   84,   87,  109,   84,   86,   86,   88,   87,
+       99,  106,   87,  108,   88,  147,   88,  105,   86,  109,
+      105,  108,  112,   86,  113,  106,  131,  114,  144,  116,
+      108,  114,  112,  116,  113,  109,  117,  112,  149,  117,
+      132,   99,  100,  132,  108,  133,  147,  133,  133,   96,
+      109,   95,  108,  112,  151,  113,   94,  120,  114,   93,
+
+      116,  108,  114,  112,  116,  113,  120,  117,  112,  149,
+      117,  153,  120,  137,  137,  138,  156,  138,  138,  140,
+      140,  157,  120,  137,  132,  151,  158,  138,  120,  140,
+      141,  141,  383,  383,  141,  141,   50,  120,  145,  145,
+      146,  146,  153,  120,  146,  146,   49,  156,  145,  384,
+      384,   48,  157,  152,  137,   19,  159,  158,  138,  152,
+      140,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  150,  159,  143,  148,  145,
+      143,  143,  148,  143,  152,  154,  150,  159,  162,  148,
+      152,  160,  160,  160,  163,  148,  165,  166,  167,  154,
+
+      165,  168,  170,  170,  169,  171,  150,  159,  173,  148,
+      143,  143,  143,  148,  143,   13,  154,  150,  169,  162,
+      148,  175,  160,  160,  160,  163,  148,  165,  166,  167,
+      154,  165,  168,  170,  170,  169,  171,  177,  178,  173,
+      179,  143,  143,  143,  143,  143,  143,  143,  143,  169,
+      172,  174,  175,  180,  172,  174,  176,  182,  176,  176,
+      183,  184,  176,  185,  181,  588,  588,  187,  177,  178,
+      188,  179,  181,  189,  190,  194,  196,  201,  181,  202,
+      189,  172,  174,    0,  180,  172,  174,  176,  182,  176,
+      176,  183,  184,  176,  185,  181,  186,  186,  187,  191,
+
+      199,  188,  186,  181,  189,  190,  194,  196,  201,  181,
+      202,  189,  205,  186,  193,  191,  199,  191,  203,  193,
+      193,  198,  191,  198,  198,  206,  203,  186,  186,  198,
+      191,  199,  207,  186,  200,  200,  200,  204,  208,  209,
+      210,  204,  200,  205,  186,  193,  191,  199,  191,  203,
+      193,  193,  198,  191,  198,  198,  206,  203,  211,  212,
+      198,  212,  213,  207,  214,  200,  200,  200,  204,  208,
+      209,  210,  204,  200,  215,  216,  217,  218,  216,  219,
+      589,  589,  217,  221,  219,  216,    0,  222,  223,  211,
+      212,    0,  212,  213,  224,  214,  225,  592,  592,  227,
+
+      228,  230,  229,  231,  232,  215,  216,  217,  218,  216,
+      219,  220,  220,  217,  221,  219,  216,  220,  222,  223,
+      235,  220,  220,  237,  220,  224,  229,  225,  226,  226,
+      227,  228,  230,  229,  231,  232,  233,  234,  236,  234,
+      240,  226,  220,  220,  242,  234,  236,  233,  220,  243,
+      244,  235,  220,  220,  237,  220,  245,  229,  236,  226,
+      226,  246,  247,  248,  249,  250,  251,  233,  234,  236,
+      234,  240,  226,  257,  258,  242,  234,  236,  233,  259,
+      243,  244,  260,  261,  262,  263,  264,  245,  265,  236,
+      266,  268,  246,  247,  248,  249,  250,  251,  267,  269,
+
+      270,  271,  272,  273,  257,  258,  278,  262,  279,  281,
+      259,  267,  282,  260,  261,  262,  263,  264,  280,  265,
+      280,  266,  268,  275,  275,  283,    0,  284,  277,  267,
+      269,  270,  271,  272,  273,  277,  286,  278,  262,  279,
+      281,  277,  267,  282,  285,  288,  289,  291,  285,  280,
+      287,  280,  287,  287,  290,  292,  283,  275,  284,  277,
+      290,  293,  294,  295,  296,  297,  277,  286,  299,  300,
+      301,  290,  277,  302,  304,  285,  288,  289,  291,  285,
+      303,  287,  305,  287,  287,  290,  292,  306,  307,  308,
+      303,  290,  293,  294,  295,  296,  297,  309,  310,  299,
+
+      300,  301,  290,  312,  302,  304,  311,  313,  314,  310,
+      329,  303,    0,  305,  311,  319,  319,    0,  306,  307,
+      308,  303,  321,  321,  320,  319,  320,  320,  309,  310,
+      330,  331,  321,  332,  312,  334,  320,  311,  313,  314,
+      310,  329,  322,  322,  335,  311,  322,  322,  323,  323,
+      324,  324,  333,  333,  324,  324,  319,  335,  323,  336,
+      337,  330,  331,  321,  332,  338,  334,  320,  339,  340,
+      341,  343,  344,  345,  346,  335,  348,  350,  351,  352,
+      353,  355,  343,  333,  333,  354,  356,  354,  335,  323,
+      336,  337,  357,  359,  360,    0,  338,  379,  361,  339,
+
+      340,  341,  343,  344,  345,  346,  385,  348,  350,  351,
+      352,  353,  355,  343,  386,  387,  354,  356,  354,  361,
+      388,  359,  360,  357,  359,  360,  374,  374,  379,  361,
+      375,  375,  381,  381,  375,  375,  374,  385,  389,  382,
+      382,  390,  381,  382,  382,  386,  387,  391,  392,  393,
+      394,  388,  395,  396,  397,  398,  399,  400,  401,  402,
+      403,  404,  405,  406,  408,  409,  411,  374,    0,  389,
+      412,  406,  390,  381,  413,  414,  415,  406,  391,  392,
+      393,  394,  410,  395,  396,  397,  398,  399,  400,  401,
+      402,  403,  404,  405,  406,  408,  409,  411,  416,  410,
+
+      418,  412,  406,  419,  420,  413,  414,  415,  406,  421,
+      422,  423,  424,  410,  425,  426,  427,  428,  429,  431,
+      424,  432,  433,  434,  435,  436,  437,  428,  438,  416,
+      410,  418,  439,  440,  419,  420,  441,  440,  442,  443,
+      421,  422,  423,  424,  444,  425,  426,  427,  428,  429,
+      431,  424,  432,  433,  434,  435,  436,  437,  428,  438,
+      445,  446,  447,  439,  440,  448,  449,  441,  440,  442,
+      443,  450,  447,  451,  452,  444,  453,  454,  455,  456,
+      459,  460,  593,  593,  462,    0,  464,  628,  628,  465,
+        0,  445,  446,  447,  463,  467,  448,  449,  463,  468,
+
+      630,  630,  450,  447,  451,  452,  469,  453,  454,  455,
+      456,  459,  460,  461,  461,  462,  461,  464,  461,  461,
+      465,  461,  470,  471,  461,  463,  467,  461,  472,  463,
+      468,  461,  461,  473,  474,  461,    0,  469,  477,    0,
+      478,  631,  631,  480,  461,  461,  481,  461,  482,  461,
+      461,  483,  461,  470,  471,  461,  479,  485,  461,  472,
+      479,  486,  461,  461,  473,  474,  461,  466,  466,  477,
+      466,  478,  466,  466,  480,  466,  484,  481,  466,  482,
+      489,  487,  483,  488,  484,  466,  466,  479,  485,  466,
+      490,  479,  486,  491,  488,  492,  493,  490,  466,  466,
+
+      494,  466,  495,  466,  466,  487,  466,  484,  496,  466,
+      497,  489,  487,  498,  488,  484,  466,  466,  499,  500,
+      466,  490,  501,  502,  491,  488,  492,  493,  490,  503,
+      504,  494,  505,  495,  506,  507,  487,  508,  509,  496,
+      510,  497,  504,  511,  498,  513,  514,  515,  516,  499,
+      500,  517,  518,  501,  502,  519,  520,  521,  522,  523,
+      503,  504,  524,  505,  527,  506,  507,  525,  508,  509,
+      526,  510,  525,  504,  511,  526,  513,  514,  515,  516,
+      528,  529,  517,  518,  532,  535,  519,  520,  521,  522,
+      523,  537,  528,  524,  538,  527,  539,  540,  525,  541,
+
+      542,  526,  543,  525,  544,  546,  526,  547,  548,  549,
+      550,  528,  529,  551,  552,  532,  535,  553,  554,  558,
+      559,  560,  537,  528,  561,  538,  562,  539,  540,  563,
+      541,  542,  564,  543,  565,  544,  546,  566,  547,  548,
+      549,  550,  567,  568,  551,  552,  569,  570,  553,  554,
+      558,  559,  560,  571,  572,  561,  569,  562,  573,  574,
+      563,  575,  576,  564,  577,  565,  578,  579,  566,  580,
+      581,  582,  583,  567,  568,  591,  591,  569,  570,  591,
+      591,  590,  590,  594,  571,  572,  595,  569,  596,  573,
+      574,  590,  575,  576,  597,  577,  598,  578,  579,  599,
+
+      580,  581,  582,  583,  600,  601,  602,  603,  604,  605,
+      606,  607,  608,  609,  594,  610,  611,  595,  612,  596,
+      614,  615,  590,  616,  617,  597,  618,  598,  619,  620,
+      599,  621,  622,  625,    0,  600,  601,  602,  603,  604,
+      605,  606,  607,  608,  609,  624,  610,  611,  632,  612,
+      633,  614,  615,  634,  616,  617,  623,  618,  624,  619,
+      620,  625,  621,  622,  625,  623,  635,  636,  638,  639,
+      640,  641,  642,  643,  644,  646,  624,  647,  648,  632,
+      649,  633,  650,  651,  634,  652,  653,  623,  654,  655,
+      656,  657,  656,  658,  652,  659,  647,  635,  636,  638,
+
+      639,  640,  641,  642,  643,  644,  646,  660,  647,  648,
+      662,  649,  663,  650,  651,  664,  652,  653,  665,  654,
+      655,  656,  657,  656,  658,  652,  659,  647,  666,  667,
+      668,  669,  670,  672,  673,  674,  675,  676,  660,  677,
+      678,  662,  680,  663,  681,  682,  664,  683,  684,  665,
+      685,  686,  687,  688,  689,  690,  691,  692,  693,  666,
+      667,  668,  669,  670,  672,  673,  674,  675,  676,  694,
+      677,  678,  696,  680,  697,  681,  682,  699,  683,  684,
+      700,  685,  686,  687,  688,  689,  690,  691,  692,  693,
+      698,  701,  702,  703,  704,  706,  708,  698,  710,  707,
+
+      694,  711,  712,  696,  713,  697,  707,  714,  699,  715,
+      716,  700,  717,  718,  719,  720,  721,  722,  723,  718,
+      724,  698,  701,  702,  703,  704,  706,  708,  698,  710,
+      707,  718,  711,  712,  725,  713,  726,  707,  714,  727,
+      715,  716,  728,  717,  718,  719,  720,  721,  722,  723,
+      718,  724,  729,  730,  731,  732,  734,  733,  735,  736,
+      737,  738,  718,  733,  740,  725,  742,  726,  743,  744,
+      727,  745,  743,  728,  746,  733,  747,  748,  749,  750,
+      751,  752,  753,  729,  730,  731,  732,  734,  733,  735,
+      736,  737,  738,  754,  733,  740,  755,  742,  756,  743,
+
+      744,  757,  745,  743,  758,  746,  733,  747,  748,  749,
+      750,  751,  752,  753,  759,  760,  761,  762,  763,  764,
+      760,  765,  766,  767,  754,  768,  769,  755,  770,  756,
+      771,  772,  757,  773,  774,  758,  775,  776,  777,  778,
+      779,  780,  781,  782,  783,  759,  760,  761,  762,  763,
+      764,  760,  765,  766,  767,  784,  768,  769,  785,  770,
+      786,  771,  772,  787,  773,  774,  792,  775,  776,  777,
+      778,  779,  780,  781,  782,  783,  788,  790,  793,  794,
+      788,  795,  796,  798,  799,  800,  784,  790,  801,  785,
+      802,  786,  803,  804,  787,  805,  806,  792,  808,  809,
+
+      810,  811,  812,  813,  814,  815,  816,  788,  790,  793,
+      794,  788,  795,  796,  798,  799,  800,  817,  790,  801,
+      818,  802,  819,  803,  804,  820,  805,  806,  822,  808,
+      809,  810,  811,  812,  813,  814,  815,  816,  823,  824,
+      825,  826,  828,  830,  831,  832,  833,  834,  817,  835,
+      836,  818,  838,  819,  839,  845,  820,  842,  842,  822,
+      843,  843,  846,  847,  848,  849,  850,  851,  852,  823,
+      824,  825,  826,  828,  830,  831,  832,  833,  834,  853,
+      835,  836,  854,  838,  855,  839,  845,  856,  857,  858,
+      859,  860,  861,  846,  847,  848,  849,  850,  851,  852,
+
+      862,  863,  864,  865,  866,  867,  868,  870,  871,    0,
+      853,  874,  872,  854,  877,  855,  873,  873,  856,  857,
+      858,  859,  860,  861,  874,  879,  880,  882,  883,  885,
+      886,  862,  863,  864,  865,  866,  867,  868,  870,  871,
+      872,  887,  874,  872,  888,  877,  889,  890,  892,  893,
+      894,  893,  895,  896,  898,  899,  879,  880,  882,  883,
+      885,  886,  897,  900,  901,  897,  902,  904,  905,  906,
+      907,  910,  887,  912,  915,  888,  916,  889,  890,  892,
+      893,  894,  893,  895,  896,  898,  899,  913,  913,  917,
+      918,  919,  920,  897,  900,  901,  897,  902,  904,  905,
+
+      906,  907,  910,  922,  912,  915,  923,  916,  925,  926,
+      929,  930,  932,  933,  931,  935,  936,  938,  913,  913,
+      917,  918,  919,  920,  931,  939,  936,  931,  931,  940,
+      941,  931,  931,  942,  922,  945,  947,  923,  948,  925,
+      926,  929,  930,  932,  933,  931,  935,  936,  938,    0,
+      949,  950,  951,  952,  953,  931,  939,  936,  931,  931,
+      940,  941,  931,  931,  942,  943,  945,  947,  943,  948,
+      954,  943,  955,  956,  957,  943,  958,  959,  960,  961,
+      943,  949,  950,  951,  952,  953,  962,  963,  964,  965,
+      966,  967,  969,  970,  971,  972,  943,  973,  974,  943,
+
+      975,  954,  943,  955,  956,  957,  943,  958,  959,  960,
+      961,  943,  976,  977,  978,  979,  980,  962,  963,  964,
+      965,  966,  967,  969,  970,  971,  972,  981,  973,  974,
+      983,  975,  985,  986,  987,  988,  989,  990,  991,  992,
+      993,  994,  995,  976,  977,  978,  979,  980,  996,  997,
+      998,  999, 1000, 1001, 1002, 1003, 1004,    0,  981, 1006,
+     1007,  983, 1008,  985,  986,  987,  988,  989,  990,  991,
+      992,  993,  994,  995, 1009, 1011, 1012, 1013, 1014,  996,
+      997,  998,  999, 1000, 1001, 1002, 1003, 1004, 1005, 1010,
+     1006, 1007, 1015, 1008, 1016, 1017, 1010, 1005, 1018, 1021,
+
+     1022, 1021, 1023, 1024, 1025, 1009, 1011, 1012, 1013, 1014,
+     1026, 1027, 1029, 1030, 1031, 1032, 1034, 1021, 1035, 1005,
+     1010, 1037, 1039, 1015, 1041, 1016, 1017, 1010, 1005, 1018,
+     1021, 1022, 1021, 1023, 1024, 1025, 1042, 1045, 1046, 1047,
+     1048, 1026, 1027, 1029, 1030, 1031, 1032, 1034, 1021, 1035,
+     1036, 1040, 1037, 1039, 1049, 1041, 1036, 1050, 1054, 1055,
+     1056, 1040, 1059, 1060, 1061, 1062, 1063, 1042, 1045, 1046,
+     1047, 1048, 1064, 1066, 1068, 1070, 1068, 1056, 1071, 1072,
+        0, 1036, 1040, 1074, 1075, 1049, 1076, 1036, 1050, 1054,
+     1055, 1056, 1040, 1059, 1060, 1061, 1062, 1063, 1077, 1078,
+
+     1079, 1080, 1073, 1064, 1066, 1068, 1070, 1068, 1056, 1071,
+     1072, 1073, 1081, 1082, 1074, 1075, 1083, 1076, 1084, 1085,
+     1086, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1096, 1077,
+     1078, 1079, 1080, 1073, 1098, 1099, 1100, 1101, 1103, 1104,
+     1104, 1107, 1073, 1081, 1082, 1105, 1106, 1083, 1108, 1084,
+     1085, 1086, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1096,
+     1109, 1110, 1111, 1112, 1114, 1098, 1099, 1100, 1101, 1103,
+     1106, 1105, 1107, 1117, 1119, 1120, 1105, 1106, 1121, 1108,
+     1122, 1123, 1125, 1127, 1128, 1129, 1130, 1131, 1132, 1134,
+     1135, 1109, 1110, 1111, 1112, 1114, 1136, 1137, 1139, 1141,
+
+     1143, 1145, 1146, 1147, 1117, 1119, 1120, 1148, 1151, 1121,
+     1152, 1122, 1123, 1125, 1127, 1128, 1129, 1130, 1131, 1132,
+     1134, 1135, 1153, 1154, 1155, 1156, 1158, 1136, 1137, 1139,
+     1141, 1143, 1145, 1146, 1147, 1159, 1160, 1161, 1148, 1151,
+     1162, 1152, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1171,
+     1170, 1174, 1175, 1153, 1154, 1155, 1156, 1158, 1170, 1176,
+     1177, 1178, 1179, 1180, 1181, 1182, 1159, 1160, 1161, 1183,
+     1184, 1162, 1185, 1163, 1164, 1165, 1166, 1167, 1168, 1169,
+     1171, 1170, 1174, 1175, 1186, 1187, 1188, 1189, 1190, 1170,
+     1176, 1177, 1178, 1179, 1180, 1181, 1182, 1192, 1194, 1195,
+
+     1183, 1184, 1196, 1185, 1197, 1198, 1199, 1200, 1201, 1202,
+     1203, 1204, 1205, 1206, 1207, 1186, 1187, 1188, 1189, 1190,
+     1208, 1211, 1213, 1214, 1215, 1216, 1217, 1218, 1192, 1194,
+     1195, 1219, 1220, 1196, 1225, 1197, 1198, 1199, 1200, 1201,
+     1202, 1203, 1204, 1205, 1206, 1207, 1226, 1227, 1228, 1229,
+     1230, 1208, 1211, 1213, 1214, 1215, 1216, 1217, 1218, 1231,
+     1232, 1233, 1219, 1220, 1234, 1225, 1235, 1236, 1238, 1240,
+     1241, 1242, 1243, 1244, 1245, 1246, 1247, 1226, 1227, 1228,
+     1229, 1230, 1249, 1252, 1255, 1256, 1257, 1258, 1259, 1260,
+     1231, 1232, 1233, 1248, 1261, 1234, 1262, 1235, 1236, 1238,
+
+     1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1263, 1248,
+     1264, 1265, 1266, 1249, 1252, 1255, 1256, 1257, 1258, 1259,
+     1260, 1267, 1268, 1269, 1248, 1261, 1270, 1262, 1273, 1275,
+     1276, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1286, 1263,
+     1248, 1264, 1265, 1266, 1289, 1290, 1291, 1292, 1293, 1294,
+     1296, 1297, 1267, 1268, 1269, 1298, 1299, 1270, 1300, 1273,
+     1275, 1276, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1286,
+     1301, 1303, 1304, 1305, 1306, 1289, 1290, 1291, 1292, 1293,
+     1294, 1296, 1297, 1307, 1309, 1310, 1298, 1299, 1312, 1300,
+     1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1323,
+
+     1324, 1301, 1303, 1304, 1305, 1306, 1325, 1326, 1328, 1310,
+     1309, 1329, 1331, 1333, 1307, 1309, 1310, 1334, 1335, 1312,
+     1337, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
+     1323, 1324, 1339, 1340, 1341, 1342, 1343, 1325, 1326, 1328,
+     1344, 1345, 1329, 1331, 1333, 1346, 1347, 1348, 1334, 1335,
+     1350, 1337, 1351, 1352, 1353, 1354, 1356, 1357, 1358, 1359,
+     1360, 1361, 1362, 1339, 1340, 1341, 1342, 1343, 1363, 1364,
+     1366, 1344, 1345, 1367, 1369, 1370, 1346, 1347, 1348, 1371,
+     1372, 1350, 1373, 1351, 1352, 1353, 1354, 1356, 1357, 1358,
+     1359, 1360, 1361, 1362, 1374, 1375, 1376, 1378, 1379, 1363,
+
+     1364, 1366, 1380, 1381, 1367, 1369, 1370, 1382, 1384, 1385,
+     1371, 1372, 1386, 1373, 1387, 1388, 1389, 1390, 1392, 1393,
+     1394, 1395, 1396, 1400, 1401, 1374, 1375, 1376, 1378, 1379,
+     1398, 1402, 1398, 1380, 1381, 1404,    0, 1406, 1382, 1384,
+     1385, 1407,    0, 1386, 1401, 1387, 1388, 1389, 1390, 1392,
+     1393, 1394, 1395, 1396, 1400, 1401, 1403, 1403, 1409, 1411,
+     1412, 1398, 1402, 1398, 1413, 1414, 1404, 1403, 1406, 1403,
+     1415, 1416, 1407, 1403, 1417, 1401, 1418, 1419, 1420, 1421,
+     1422, 1423, 1424, 1425, 1426, 1427, 1428, 1403, 1403, 1409,
+     1411, 1412, 1429, 1430, 1431, 1413, 1414, 1432, 1403, 1434,
+
+     1403, 1415, 1416, 1435, 1403, 1417, 1436, 1418, 1419, 1420,
+     1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1433, 1437,
+     1433, 1439, 1440, 1429, 1430, 1431, 1441, 1442, 1432, 1443,
+     1434, 1446, 1447, 1448, 1435, 1449, 1450, 1436, 1451, 1452,
+     1453, 1454, 1455, 1456,    0,    0, 1458, 1460, 1462, 1433,
+     1437, 1433, 1439, 1440, 1463, 1465, 1466, 1441, 1442, 1467,
+     1443,    0, 1446, 1447, 1448, 1469, 1449, 1450, 1470, 1451,
+     1452, 1453, 1454, 1455, 1456, 1457, 1457, 1458, 1460, 1462,
+     1471, 1472, 1473, 1474, 1476, 1463, 1465, 1466, 1457, 1479,
+     1467, 1480, 1457, 1477, 1481, 1482, 1469, 1483, 1485, 1470,
+
+     1486, 1487, 1488, 1489, 1490, 1491, 1457, 1457, 1476, 1492,
+     1477, 1471, 1472, 1473, 1474, 1476, 1493, 1494, 1495, 1457,
+     1479, 1497, 1480, 1457, 1477, 1481, 1482, 1498, 1483, 1485,
+     1499, 1486, 1487, 1488, 1489, 1490, 1491, 1500, 1501, 1502,
+     1492, 1504, 1505, 1506, 1507, 1508, 1510, 1493, 1494, 1495,
+     1511, 1512, 1497, 1513, 1515, 1516, 1517, 1518, 1498, 1519,
+     1520, 1499, 1521, 1522, 1523, 1524, 1525, 1526, 1500, 1501,
+     1502, 1527, 1504, 1505, 1506, 1507, 1508, 1510, 1528, 1529,
+     1530, 1511, 1512, 1531, 1513, 1515, 1516, 1517, 1518, 1532,
+     1519, 1520, 1533, 1521, 1522, 1523, 1524, 1525, 1526, 1534,
+
+     1535, 1539, 1527, 1540, 1541, 1542, 1543, 1544, 1545, 1528,
+     1529, 1530, 1546, 1547, 1531, 1550, 1551, 1552, 1553, 1554,
+     1532, 1555, 1556, 1533, 1557, 1558, 1560, 1563, 1564, 1561,
+     1534, 1535, 1539, 1559, 1540, 1541, 1542, 1543, 1544, 1545,
+     1566, 1559, 1567, 1546, 1547, 1561, 1550, 1551, 1552, 1553,
+     1554, 1569, 1555, 1556, 1570, 1557, 1558, 1560, 1563, 1564,
+     1561, 1571, 1573, 1574, 1559, 1575, 1576, 1578, 1580, 1581,
+     1583, 1566, 1559, 1567, 1584, 1585, 1561, 1586, 1587, 1588,
+     1589, 1590, 1569, 1592, 1594, 1570, 1595, 1596, 1600, 1601,
+     1602, 1603, 1571, 1573, 1574, 1604, 1575, 1576, 1578, 1580,
+
+     1581, 1583, 1606, 1607, 1609, 1584, 1585, 1612, 1586, 1587,
+     1588, 1589, 1590, 1616, 1592, 1594, 1617, 1595, 1596, 1600,
+     1601, 1602, 1603, 1618, 1620, 1621, 1604, 1625, 1623, 1624,
+     1626, 1628, 1630, 1606, 1607, 1609, 1632, 1634, 1612, 1635,
+     1637, 1638, 1640, 1641, 1616, 1623, 1624, 1617, 1643, 1644,
+     1645, 1647, 1650, 1652, 1618, 1620, 1621, 1655, 1625, 1623,
+     1624, 1626, 1628, 1630, 1656, 1657, 1658, 1632, 1634, 1659,
+     1635, 1637, 1638, 1640, 1641, 1661, 1662, 1663, 1664, 1643,
+     1644, 1645, 1647, 1650, 1652, 1665, 1666, 1667, 1655, 1668,
+     1669, 1670, 1671, 1673, 1674, 1656, 1657, 1658, 1675, 1676,
+
+     1659, 1677, 1678, 1679, 1680, 1681, 1661, 1662, 1663, 1664,
+     1683, 1684, 1685, 1686, 1687, 1688, 1665, 1666, 1667, 1689,
+     1668, 1669, 1670, 1671, 1673, 1674, 1690, 1691, 1692, 1675,
+     1676, 1693, 1677, 1678, 1679, 1680, 1681, 1694, 1695, 1696,
+     1697, 1683, 1684, 1685, 1686, 1687, 1688, 1698, 1699, 1700,
+     1689, 1701, 1702, 1703, 1704, 1705, 1706, 1690, 1691, 1692,
+     1709, 1710, 1693, 1711, 1712, 1713, 1714, 1715, 1694, 1695,
+     1696, 1697, 1719, 1721, 1723, 1725, 1726, 1727, 1698, 1699,
+     1700, 1728, 1701, 1702, 1703, 1704, 1705, 1706, 1730, 1732,
+     1733, 1709, 1710, 1734, 1711, 1712, 1713, 1714, 1715, 1735,
+
+     1736, 1737, 1738, 1719, 1721, 1723, 1725, 1726, 1727, 1740,
+     1742, 1744, 1728, 1741, 1745, 1749, 1750, 1751, 1754, 1730,
+     1732, 1733, 1755, 1741, 1734, 1757, 1740, 1759, 1763, 1764,
+     1735, 1736, 1737, 1738, 1765, 1766, 1767, 1768, 1771, 1772,
+     1740, 1742, 1744, 1773, 1741, 1745, 1749, 1750, 1751, 1754,
+     1774, 1775, 1776, 1755, 1777, 1778, 1757, 1780, 1759, 1763,
+     1764, 1781, 1782, 1783, 1784, 1765, 1766, 1767, 1768, 1771,
+     1772, 1785, 1786, 1787, 1773, 1788, 1790, 1791, 1792, 1793,
+     1794, 1774, 1775, 1776, 1795, 1777, 1778, 1796, 1780, 1797,
+     1798, 1799, 1781, 1782, 1783, 1784, 1800, 1801, 1802, 1804,
+
+     1807, 1809, 1785, 1786, 1787, 1813, 1788, 1790, 1791, 1792,
+     1793, 1794, 1815, 1816, 1817, 1795, 1818, 1820, 1796, 1824,
+     1797, 1798, 1799, 1833, 1830, 1834, 1831, 1800, 1801, 1802,
+     1804, 1807, 1809, 1818, 1830, 1835, 1813, 1837, 1838, 1839,
+     1840, 1841, 1843, 1815, 1816, 1817, 1831, 1818, 1820, 1844,
+     1824, 1845, 1846, 1847, 1833, 1830, 1834, 1831, 1852, 1853,
+     1854, 1857, 1860, 1861, 1818, 1863, 1835, 1865, 1837, 1838,
+     1839, 1840, 1841, 1843, 1866, 1867, 1868, 1869, 1870, 1871,
+     1844, 1872, 1845, 1846, 1847, 1873, 1875, 1878, 1880, 1852,
+     1853, 1854, 1857, 1860, 1861, 1882, 1863, 1883, 1865, 1884,
+
+     1885, 1887, 1889, 1891, 1893, 1866, 1867, 1868, 1869, 1870,
+     1871, 1890, 1872, 1894, 1890, 1896, 1873, 1875, 1878, 1880,
+     1898, 1899, 1889, 1900, 1901, 1903, 1882, 1904, 1883, 1905,
+     1884, 1885, 1887, 1889, 1891, 1893, 1907, 1908, 1910, 1911,
+     1915, 1917, 1890, 1918, 1894, 1919, 1896, 1920, 1921, 1922,
+     1923, 1898, 1899, 1924, 1900, 1901, 1903, 1925, 1904, 1927,
+     1905, 1928, 1929, 1930, 1928, 1931, 1935, 1907, 1908, 1910,
+     1911, 1915, 1917, 1936, 1918, 1938, 1919, 1939, 1920, 1921,
+     1922, 1923, 1941, 1945, 1924, 1946, 1929, 1947, 1925, 1948,
+     1927, 1950, 1928, 1929, 1930, 1951, 1931, 1935, 1952, 1953,
+
+     1954, 1956, 1958, 1960, 1936, 1961, 1938, 1962, 1939, 1963,
+     1965, 1968, 1971, 1941, 1945, 1972, 1946, 1977, 1947, 1978,
+     1948, 1981, 1950, 1982, 1983, 1956, 1951, 1986, 1987, 1952,
+     1953, 1954, 1956, 1958, 1960, 1988, 1961, 1989, 1962, 1991,
+     1963, 1965, 1968, 1971, 1992, 1993, 1972, 1994, 1977, 1997,
+     1978, 1998, 1981, 1999, 1982, 1983, 2001, 2002, 1986, 1987,
+        0,    0,    0,    0,    0,    0, 1988,    0, 1989,    0,
+     1991,    0,    0,    0,    0, 1992, 1993,    0, 1994,    0,
+     1997,    0, 1998,    0, 1999,    0,    0, 2001, 2002, 2005,
+     2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2006, 2006,
+
+     2006, 2006, 2006, 2006, 2006, 2006, 2006, 2007, 2007, 2007,
+     2007, 2007, 2007, 2007, 2007, 2007, 2008,    0, 2008, 2008,
+     2008, 2008, 2008, 2008, 2008, 2009,    0, 2009, 2009, 2009,
+     2009, 2009, 2009, 2009, 2010, 2010, 2011, 2011, 2011, 2011,
+     2011, 2011, 2011, 2011, 2011, 2012, 2012, 2012, 2012, 2012,
+     2012, 2012, 2012, 2012, 2013,    0, 2013, 2013, 2013, 2013,
+     2013, 2013, 2013, 2014,    0, 2014, 2015, 2015, 2015, 2015,
+     2015, 2015, 2015, 2015, 2015, 2016, 2016, 2016, 2016, 2016,
+     2016, 2016, 2016, 2016, 2017, 2017, 2017, 2017, 2017, 2017,
+     2017, 2017, 2017, 2018, 2018, 2018, 2018, 2018, 2018, 2018,
+
+     2018, 2018, 2019, 2019, 2019,    0,    0, 2019, 2019,    0,
+     2019, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020,
+     2021,    0,    0, 2021, 2021,    0, 2021, 2022, 2022, 2022,
+        0, 2022, 2022, 2022, 2022, 2022, 2023, 2023, 2023, 2023,
+        0, 2023, 2023, 2023, 2023, 2024, 2024, 2024, 2024, 2024,
+     2024, 2024, 2024, 2024, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+     2004, 2004, 2004
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2237,7 +2241,7 @@ char path[MS_MAXPATHLEN];
 
 
 
-#line 2241 "/Users/tbonfort/dev/mapserver/maplexer.c"
+#line 2245 "/Users/tbonfort/dev/mapserver/maplexer.c"
 
 #define INITIAL 0
 #define URL_VARIABLE 1
@@ -2490,7 +2494,7 @@ YY_DECL
          break;
        }
 
-#line 2494 "/Users/tbonfort/dev/mapserver/maplexer.c"
+#line 2498 "/Users/tbonfort/dev/mapserver/maplexer.c"
 
 	if ( !(yy_init) )
 		{
@@ -2543,13 +2547,13 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 2002 )
+				if ( yy_current_state >= 2005 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 4548 );
+		while ( yy_base[yy_current_state] != 4555 );
 
 yy_find_action:
 		yy_act = yy_accept[yy_current_state];
@@ -2851,1316 +2855,1321 @@ YY_RULE_SETUP
 case 56:
 YY_RULE_SETUP
 #line 227 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BROWSEFORMAT); }
+{ MS_LEXER_RETURN_TOKEN(BOM); }
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
 #line 228 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BUFFER); }
+{ MS_LEXER_RETURN_TOKEN(BROWSEFORMAT); }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
 #line 229 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CHARACTER); }
+{ MS_LEXER_RETURN_TOKEN(BUFFER); }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
 #line 230 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASS); }
+{ MS_LEXER_RETURN_TOKEN(CHARACTER); }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
 #line 231 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASSITEM); }
+{ MS_LEXER_RETURN_TOKEN(CLASS); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
 #line 232 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASSGROUP); }
+{ MS_LEXER_RETURN_TOKEN(CLASSITEM); }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
 #line 233 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLUSTER); }
+{ MS_LEXER_RETURN_TOKEN(CLASSGROUP); }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
 #line 234 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(COLOR); }
+{ MS_LEXER_RETURN_TOKEN(CLUSTER); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
 #line 235 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(COMPFILTER); }
+{ MS_LEXER_RETURN_TOKEN(COLOR); }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
 #line 236 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(COMPOSITE); }
+{ MS_LEXER_RETURN_TOKEN(COMPFILTER); }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
 #line 237 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(COMPOP); }
+{ MS_LEXER_RETURN_TOKEN(COMPOSITE); }
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
 #line 238 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONFIG); }
+{ MS_LEXER_RETURN_TOKEN(COMPOP); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
 #line 239 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONNECTION); }
+{ MS_LEXER_RETURN_TOKEN(CONFIG); }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
 #line 240 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONNECTIONTYPE); }
+{ MS_LEXER_RETURN_TOKEN(CONNECTION); }
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
 #line 241 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DATA); }
+{ MS_LEXER_RETURN_TOKEN(CONNECTIONTYPE); }
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
 #line 242 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DATAPATTERN); }
+{ MS_LEXER_RETURN_TOKEN(DATA); }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
 #line 243 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DEBUG); }
+{ MS_LEXER_RETURN_TOKEN(DATAPATTERN); }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
 #line 244 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DRIVER); }
+{ MS_LEXER_RETURN_TOKEN(DEBUG); }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
 #line 245 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DUMP); }
+{ MS_LEXER_RETURN_TOKEN(DRIVER); }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
 #line 246 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EMPTY); }
+{ MS_LEXER_RETURN_TOKEN(DUMP); }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
 #line 247 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ENCODING); }
+{ MS_LEXER_RETURN_TOKEN(EMPTY); }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
 #line 248 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(END); }
+{ MS_LEXER_RETURN_TOKEN(ENCODING); }
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
 #line 249 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ERROR); }
+{ MS_LEXER_RETURN_TOKEN(END); }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
 #line 250 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXPRESSION); }
+{ MS_LEXER_RETURN_TOKEN(ERROR); }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
 #line 251 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXTENT); }
+{ MS_LEXER_RETURN_TOKEN(EXPRESSION); }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
 #line 252 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXTENSION); }
+{ MS_LEXER_RETURN_TOKEN(EXTENT); }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
 #line 253 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FEATURE); }
+{ MS_LEXER_RETURN_TOKEN(EXTENSION); }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
 #line 254 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILLED); }
+{ MS_LEXER_RETURN_TOKEN(FEATURE); }
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
 #line 255 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILTER); }
+{ MS_LEXER_RETURN_TOKEN(FILLED); }
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
 #line 256 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILTERITEM); }
+{ MS_LEXER_RETURN_TOKEN(FILTER); }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
 #line 257 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FOOTER); }
+{ MS_LEXER_RETURN_TOKEN(FILTERITEM); }
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
 #line 258 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FONT); }
+{ MS_LEXER_RETURN_TOKEN(FOOTER); }
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
 #line 259 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FONTSET); }
+{ MS_LEXER_RETURN_TOKEN(FONT); }
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
 #line 260 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FORCE); }
+{ MS_LEXER_RETURN_TOKEN(FONTSET); }
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
 #line 261 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FORMATOPTION); }
+{ MS_LEXER_RETURN_TOKEN(FORCE); }
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
 #line 262 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FROM); }
+{ MS_LEXER_RETURN_TOKEN(FORMATOPTION); }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
 #line 263 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GAP); }
+{ MS_LEXER_RETURN_TOKEN(FROM); }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
 #line 264 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GEOMTRANSFORM); }
+{ MS_LEXER_RETURN_TOKEN(GAP); }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
 #line 265 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRID); }
+{ MS_LEXER_RETURN_TOKEN(GEOMTRANSFORM); }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
 #line 266 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRIDSTEP); }
+{ MS_LEXER_RETURN_TOKEN(GRID); }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
 #line 267 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRATICULE); }
+{ MS_LEXER_RETURN_TOKEN(GRIDSTEP); }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
 #line 268 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GROUP); }
+{ MS_LEXER_RETURN_TOKEN(GRATICULE); }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
 #line 269 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(HEADER); }
+{ MS_LEXER_RETURN_TOKEN(GROUP); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
 #line 270 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGE); }
+{ MS_LEXER_RETURN_TOKEN(HEADER); }
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
 #line 271 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGECOLOR); }
+{ MS_LEXER_RETURN_TOKEN(IMAGE); }
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
 #line 272 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGETYPE); }
+{ MS_LEXER_RETURN_TOKEN(IMAGECOLOR); }
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
 #line 273 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEQUALITY); }
+{ MS_LEXER_RETURN_TOKEN(IMAGETYPE); }
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
 #line 274 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEMODE); }
+{ MS_LEXER_RETURN_TOKEN(IMAGEQUALITY); }
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
 #line 275 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEPATH); }
+{ MS_LEXER_RETURN_TOKEN(IMAGEMODE); }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
 #line 276 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPPATH); }
+{ MS_LEXER_RETURN_TOKEN(IMAGEPATH); }
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
 #line 277 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEURL); }
+{ MS_LEXER_RETURN_TOKEN(TEMPPATH); }
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
 #line 278 "maplexer.l"
-{ BEGIN(INCLUDE); }
+{ MS_LEXER_RETURN_TOKEN(IMAGEURL); }
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
 #line 279 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INDEX); }
+{ BEGIN(INCLUDE); }
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
 #line 280 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INITIALGAP); }
+{ MS_LEXER_RETURN_TOKEN(INDEX); }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
 #line 281 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INTERLACE); }
+{ MS_LEXER_RETURN_TOKEN(INITIALGAP); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
 #line 282 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INTERVALS); } 
+{ MS_LEXER_RETURN_TOKEN(INTERLACE); }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
 #line 283 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(JOIN); }
+{ MS_LEXER_RETURN_TOKEN(INTERVALS); } 
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
 #line 284 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYIMAGE); }
+{ MS_LEXER_RETURN_TOKEN(JOIN); }
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
 #line 285 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYSIZE); }
+{ MS_LEXER_RETURN_TOKEN(KEYIMAGE); }
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
 #line 286 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYSPACING); }
+{ MS_LEXER_RETURN_TOKEN(KEYSIZE); }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
 #line 287 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABEL); }
+{ MS_LEXER_RETURN_TOKEN(KEYSPACING); }
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
 #line 288 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELCACHE); }
+{ MS_LEXER_RETURN_TOKEN(LABEL); }
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
 #line 289 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELFORMAT); }
+{ MS_LEXER_RETURN_TOKEN(LABELCACHE); }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
 #line 290 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELITEM); }
+{ MS_LEXER_RETURN_TOKEN(LABELFORMAT); }
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
 #line 291 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALE); }
+{ MS_LEXER_RETURN_TOKEN(LABELITEM); }
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
 #line 292 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALEDENOM); }
+{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALE); }
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
 #line 293 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMINSCALE); }
+{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALEDENOM); }
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
 #line 294 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMINSCALEDENOM); }
+{ MS_LEXER_RETURN_TOKEN(LABELMINSCALE); }
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
 #line 295 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELREQUIRES); }
+{ MS_LEXER_RETURN_TOKEN(LABELMINSCALEDENOM); }
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
 #line 296 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LATLON); }
+{ MS_LEXER_RETURN_TOKEN(LABELREQUIRES); }
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
 #line 297 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LAYER); }
+{ MS_LEXER_RETURN_TOKEN(LATLON); }
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
 #line 298 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEADER); }
+{ MS_LEXER_RETURN_TOKEN(LAYER); }
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
 #line 299 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEGEND); }
+{ MS_LEXER_RETURN_TOKEN(LEADER); }
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
 #line 300 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEGENDFORMAT); }
+{ MS_LEXER_RETURN_TOKEN(LEGEND); }
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
 #line 301 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINECAP); }
+{ MS_LEXER_RETURN_TOKEN(LEGENDFORMAT); }
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
 #line 302 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINEJOIN); }
+{ MS_LEXER_RETURN_TOKEN(LINECAP); }
 	YY_BREAK
 case 132:
 YY_RULE_SETUP
 #line 303 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINEJOINMAXSIZE); }
+{ MS_LEXER_RETURN_TOKEN(LINEJOIN); }
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
 #line 304 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LOG); }
+{ MS_LEXER_RETURN_TOKEN(LINEJOINMAXSIZE); }
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
 #line 305 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAP); }
+{ MS_LEXER_RETURN_TOKEN(LOG); }
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
 #line 306 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MARKER); }
+{ MS_LEXER_RETURN_TOKEN(MAP); }
 	YY_BREAK
 case 136:
 YY_RULE_SETUP
 #line 307 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MARKERSIZE); }
+{ MS_LEXER_RETURN_TOKEN(MARKER); }
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
 #line 308 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MASK); }
+{ MS_LEXER_RETURN_TOKEN(MARKERSIZE); }
 	YY_BREAK
 case 138:
 YY_RULE_SETUP
 #line 309 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXARCS); }
+{ MS_LEXER_RETURN_TOKEN(MASK); }
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
 #line 310 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXBOXSIZE); }
+{ MS_LEXER_RETURN_TOKEN(MAXARCS); }
 	YY_BREAK
 case 140:
 YY_RULE_SETUP
 #line 311 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXDISTANCE); }
+{ MS_LEXER_RETURN_TOKEN(MAXBOXSIZE); }
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
 #line 312 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXFEATURES); }
+{ MS_LEXER_RETURN_TOKEN(MAXDISTANCE); }
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
 #line 313 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXINTERVAL); }
+{ MS_LEXER_RETURN_TOKEN(MAXFEATURES); }
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
 #line 314 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSCALE); }
+{ MS_LEXER_RETURN_TOKEN(MAXINTERVAL); }
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
 #line 315 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSCALEDENOM); }
+{ MS_LEXER_RETURN_TOKEN(MAXSCALE); }
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
 #line 316 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXGEOWIDTH); }
+{ MS_LEXER_RETURN_TOKEN(MAXSCALEDENOM); }
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
 #line 317 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXLENGTH); }
+{ MS_LEXER_RETURN_TOKEN(MAXGEOWIDTH); }
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
 #line 318 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSIZE); }
+{ MS_LEXER_RETURN_TOKEN(MAXLENGTH); }
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
 #line 319 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSUBDIVIDE); }
+{ MS_LEXER_RETURN_TOKEN(MAXSIZE); }
 	YY_BREAK
 case 149:
 YY_RULE_SETUP
 #line 320 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXTEMPLATE); }
+{ MS_LEXER_RETURN_TOKEN(MAXSUBDIVIDE); }
 	YY_BREAK
 case 150:
 YY_RULE_SETUP
 #line 321 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXWIDTH); }
+{ MS_LEXER_RETURN_TOKEN(MAXTEMPLATE); }
 	YY_BREAK
 case 151:
 YY_RULE_SETUP
 #line 322 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(METADATA); }
+{ MS_LEXER_RETURN_TOKEN(MAXWIDTH); }
 	YY_BREAK
 case 152:
 YY_RULE_SETUP
 #line 323 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MIMETYPE); }
+{ MS_LEXER_RETURN_TOKEN(METADATA); }
 	YY_BREAK
 case 153:
 YY_RULE_SETUP
 #line 324 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINARCS); }
+{ MS_LEXER_RETURN_TOKEN(MIMETYPE); }
 	YY_BREAK
 case 154:
 YY_RULE_SETUP
 #line 325 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINBOXSIZE); }
+{ MS_LEXER_RETURN_TOKEN(MINARCS); }
 	YY_BREAK
 case 155:
 YY_RULE_SETUP
 #line 326 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINDISTANCE); }
+{ MS_LEXER_RETURN_TOKEN(MINBOXSIZE); }
 	YY_BREAK
 case 156:
 YY_RULE_SETUP
 #line 327 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REPEATDISTANCE); }
+{ MS_LEXER_RETURN_TOKEN(MINDISTANCE); }
 	YY_BREAK
 case 157:
 YY_RULE_SETUP
 #line 328 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXOVERLAPANGLE); } 
+{ MS_LEXER_RETURN_TOKEN(REPEATDISTANCE); }
 	YY_BREAK
 case 158:
 YY_RULE_SETUP
 #line 329 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINFEATURESIZE); }
+{ MS_LEXER_RETURN_TOKEN(MAXOVERLAPANGLE); } 
 	YY_BREAK
 case 159:
 YY_RULE_SETUP
 #line 330 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MININTERVAL); }
+{ MS_LEXER_RETURN_TOKEN(MINFEATURESIZE); }
 	YY_BREAK
 case 160:
 YY_RULE_SETUP
 #line 331 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSCALE); }
+{ MS_LEXER_RETURN_TOKEN(MININTERVAL); }
 	YY_BREAK
 case 161:
 YY_RULE_SETUP
 #line 332 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSCALEDENOM); }
+{ MS_LEXER_RETURN_TOKEN(MINSCALE); }
 	YY_BREAK
 case 162:
 YY_RULE_SETUP
 #line 333 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINGEOWIDTH); }
+{ MS_LEXER_RETURN_TOKEN(MINSCALEDENOM); }
 	YY_BREAK
 case 163:
 YY_RULE_SETUP
 #line 334 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINLENGTH); }
+{ MS_LEXER_RETURN_TOKEN(MINGEOWIDTH); }
 	YY_BREAK
 case 164:
 YY_RULE_SETUP
 #line 335 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSIZE); }
+{ MS_LEXER_RETURN_TOKEN(MINLENGTH); }
 	YY_BREAK
 case 165:
 YY_RULE_SETUP
 #line 336 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSUBDIVIDE); }
+{ MS_LEXER_RETURN_TOKEN(MINSIZE); }
 	YY_BREAK
 case 166:
 YY_RULE_SETUP
 #line 337 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINTEMPLATE); }
+{ MS_LEXER_RETURN_TOKEN(MINSUBDIVIDE); }
 	YY_BREAK
 case 167:
 YY_RULE_SETUP
 #line 338 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINWIDTH); }
+{ MS_LEXER_RETURN_TOKEN(MINTEMPLATE); }
 	YY_BREAK
 case 168:
 YY_RULE_SETUP
 #line 339 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(NAME); }
+{ MS_LEXER_RETURN_TOKEN(MINWIDTH); }
 	YY_BREAK
 case 169:
 YY_RULE_SETUP
 #line 340 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OFFSET); }
+{ MS_LEXER_RETURN_TOKEN(NAME); }
 	YY_BREAK
 case 170:
 YY_RULE_SETUP
 #line 341 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OFFSITE); }
+{ MS_LEXER_RETURN_TOKEN(OFFSET); }
 	YY_BREAK
 case 171:
 YY_RULE_SETUP
 #line 342 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OPACITY); }
+{ MS_LEXER_RETURN_TOKEN(OFFSITE); }
 	YY_BREAK
 case 172:
 YY_RULE_SETUP
 #line 343 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTLINECOLOR); }
+{ MS_LEXER_RETURN_TOKEN(OPACITY); }
 	YY_BREAK
 case 173:
 YY_RULE_SETUP
 #line 344 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTLINEWIDTH); }
+{ MS_LEXER_RETURN_TOKEN(OUTLINECOLOR); }
 	YY_BREAK
 case 174:
 YY_RULE_SETUP
 #line 345 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTPUTFORMAT); }
+{ MS_LEXER_RETURN_TOKEN(OUTLINEWIDTH); }
 	YY_BREAK
 case 175:
 YY_RULE_SETUP
 #line 346 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYBACKGROUNDCOLOR); }
+{ MS_LEXER_RETURN_TOKEN(OUTPUTFORMAT); }
 	YY_BREAK
 case 176:
 YY_RULE_SETUP
 #line 347 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYCOLOR); }
+{ MS_LEXER_RETURN_TOKEN(OVERLAYBACKGROUNDCOLOR); }
 	YY_BREAK
 case 177:
 YY_RULE_SETUP
 #line 348 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYMAXSIZE); }
+{ MS_LEXER_RETURN_TOKEN(OVERLAYCOLOR); }
 	YY_BREAK
 case 178:
 YY_RULE_SETUP
 #line 349 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYMINSIZE); }
+{ MS_LEXER_RETURN_TOKEN(OVERLAYMAXSIZE); }
 	YY_BREAK
 case 179:
 YY_RULE_SETUP
 #line 350 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYOUTLINECOLOR); }
+{ MS_LEXER_RETURN_TOKEN(OVERLAYMINSIZE); }
 	YY_BREAK
 case 180:
 YY_RULE_SETUP
 #line 351 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYSIZE); }
+{ MS_LEXER_RETURN_TOKEN(OVERLAYOUTLINECOLOR); }
 	YY_BREAK
 case 181:
 YY_RULE_SETUP
 #line 352 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYSYMBOL); }
+{ MS_LEXER_RETURN_TOKEN(OVERLAYSIZE); }
 	YY_BREAK
 case 182:
 YY_RULE_SETUP
 #line 353 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PARTIALS); }
+{ MS_LEXER_RETURN_TOKEN(OVERLAYSYMBOL); }
 	YY_BREAK
 case 183:
 YY_RULE_SETUP
 #line 354 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PATTERN); }
+{ MS_LEXER_RETURN_TOKEN(PARTIALS); }
 	YY_BREAK
 case 184:
 YY_RULE_SETUP
 #line 355 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POINTS); }
+{ MS_LEXER_RETURN_TOKEN(PATTERN); }
 	YY_BREAK
 case 185:
 YY_RULE_SETUP
 #line 356 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ITEMS); }
+{ MS_LEXER_RETURN_TOKEN(POINTS); }
 	YY_BREAK
 case 186:
 YY_RULE_SETUP
 #line 357 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POSITION); }
+{ MS_LEXER_RETURN_TOKEN(ITEMS); }
 	YY_BREAK
 case 187:
 YY_RULE_SETUP
 #line 358 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POSTLABELCACHE); }
+{ MS_LEXER_RETURN_TOKEN(POSITION); }
 	YY_BREAK
 case 188:
 YY_RULE_SETUP
 #line 359 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PRIORITY); }
+{ MS_LEXER_RETURN_TOKEN(POSTLABELCACHE); }
 	YY_BREAK
 case 189:
 YY_RULE_SETUP
 #line 360 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PROCESSING); }
+{ MS_LEXER_RETURN_TOKEN(PRIORITY); }
 	YY_BREAK
 case 190:
 YY_RULE_SETUP
 #line 361 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PROJECTION); }
+{ MS_LEXER_RETURN_TOKEN(PROCESSING); }
 	YY_BREAK
 case 191:
 YY_RULE_SETUP
 #line 362 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(QUERYFORMAT); }
+{ MS_LEXER_RETURN_TOKEN(PROJECTION); }
 	YY_BREAK
 case 192:
 YY_RULE_SETUP
 #line 363 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(QUERYMAP); }
+{ MS_LEXER_RETURN_TOKEN(QUERYFORMAT); }
 	YY_BREAK
 case 193:
 YY_RULE_SETUP
 #line 364 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REFERENCE); }
+{ MS_LEXER_RETURN_TOKEN(QUERYMAP); }
 	YY_BREAK
 case 194:
 YY_RULE_SETUP
 #line 365 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REGION); }
+{ MS_LEXER_RETURN_TOKEN(REFERENCE); }
 	YY_BREAK
 case 195:
 YY_RULE_SETUP
 #line 366 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(RELATIVETO); }
+{ MS_LEXER_RETURN_TOKEN(REGION); }
 	YY_BREAK
 case 196:
 YY_RULE_SETUP
 #line 367 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REQUIRES); }
+{ MS_LEXER_RETURN_TOKEN(RELATIVETO); }
 	YY_BREAK
 case 197:
 YY_RULE_SETUP
 #line 368 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(RESOLUTION); }
+{ MS_LEXER_RETURN_TOKEN(REQUIRES); }
 	YY_BREAK
 case 198:
 YY_RULE_SETUP
 #line 369 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DEFRESOLUTION); }
+{ MS_LEXER_RETURN_TOKEN(RESOLUTION); }
 	YY_BREAK
 case 199:
 YY_RULE_SETUP
 #line 370 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALE); }
+{ MS_LEXER_RETURN_TOKEN(DEFRESOLUTION); }
 	YY_BREAK
 case 200:
 YY_RULE_SETUP
 #line 371 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALEDENOM); }
+{ MS_LEXER_RETURN_TOKEN(SCALE); }
 	YY_BREAK
 case 201:
 YY_RULE_SETUP
 #line 372 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALEBAR); }
+{ MS_LEXER_RETURN_TOKEN(SCALEDENOM); }
 	YY_BREAK
 case 202:
 YY_RULE_SETUP
 #line 373 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALETOKEN); }
+{ MS_LEXER_RETURN_TOKEN(SCALEBAR); }
 	YY_BREAK
 case 203:
 YY_RULE_SETUP
 #line 374 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHADOWCOLOR); }
+{ MS_LEXER_RETURN_TOKEN(SCALETOKEN); }
 	YY_BREAK
 case 204:
 YY_RULE_SETUP
 #line 375 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHADOWSIZE); }
+{ MS_LEXER_RETURN_TOKEN(SHADOWCOLOR); }
 	YY_BREAK
 case 205:
 YY_RULE_SETUP
 #line 376 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHAPEPATH); }
+{ MS_LEXER_RETURN_TOKEN(SHADOWSIZE); }
 	YY_BREAK
 case 206:
 YY_RULE_SETUP
 #line 377 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SIZE); }
+{ MS_LEXER_RETURN_TOKEN(SHAPEPATH); }
 	YY_BREAK
 case 207:
 YY_RULE_SETUP
 #line 378 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SIZEUNITS); }
+{ MS_LEXER_RETURN_TOKEN(SIZE); }
 	YY_BREAK
 case 208:
 YY_RULE_SETUP
 #line 379 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STATUS); }
+{ MS_LEXER_RETURN_TOKEN(SIZEUNITS); }
 	YY_BREAK
 case 209:
 YY_RULE_SETUP
 #line 380 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STYLE); }
+{ MS_LEXER_RETURN_TOKEN(STATUS); }
 	YY_BREAK
 case 210:
 YY_RULE_SETUP
 #line 381 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STYLEITEM); }
+{ MS_LEXER_RETURN_TOKEN(STYLE); }
 	YY_BREAK
 case 211:
 YY_RULE_SETUP
 #line 382 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOL); }
+{ MS_LEXER_RETURN_TOKEN(STYLEITEM); }
 	YY_BREAK
 case 212:
 YY_RULE_SETUP
 #line 383 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALE); }
+{ MS_LEXER_RETURN_TOKEN(SYMBOL); }
 	YY_BREAK
 case 213:
 YY_RULE_SETUP
 #line 384 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALEDENOM); }
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALE); }
 	YY_BREAK
 case 214:
 YY_RULE_SETUP
 #line 385 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSET); }
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALEDENOM); }
 	YY_BREAK
 case 215:
 YY_RULE_SETUP
 #line 386 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TABLE); }
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSET); }
 	YY_BREAK
 case 216:
 YY_RULE_SETUP
 #line 387 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPLATE); }
+{ MS_LEXER_RETURN_TOKEN(TABLE); }
 	YY_BREAK
 case 217:
 YY_RULE_SETUP
 #line 388 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPLATEPATTERN); }
+{ MS_LEXER_RETURN_TOKEN(TEMPLATE); }
 	YY_BREAK
 case 218:
 YY_RULE_SETUP
 #line 389 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEXT); }
+{ MS_LEXER_RETURN_TOKEN(TEMPLATEPATTERN); }
 	YY_BREAK
 case 219:
 YY_RULE_SETUP
 #line 390 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TILEINDEX); }
+{ MS_LEXER_RETURN_TOKEN(TEXT); }
 	YY_BREAK
 case 220:
 YY_RULE_SETUP
 #line 391 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TILEITEM); }
+{ MS_LEXER_RETURN_TOKEN(TILEINDEX); }
 	YY_BREAK
 case 221:
 YY_RULE_SETUP
 #line 392 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TILESRS); }
+{ MS_LEXER_RETURN_TOKEN(TILEITEM); }
 	YY_BREAK
 case 222:
 YY_RULE_SETUP
 #line 393 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TITLE); }
+{ MS_LEXER_RETURN_TOKEN(TILESRS); }
 	YY_BREAK
 case 223:
 YY_RULE_SETUP
 #line 394 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TO); }
+{ MS_LEXER_RETURN_TOKEN(TITLE); }
 	YY_BREAK
 case 224:
 YY_RULE_SETUP
 #line 395 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TOLERANCE); }
+{ MS_LEXER_RETURN_TOKEN(TO); }
 	YY_BREAK
 case 225:
 YY_RULE_SETUP
 #line 396 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TOLERANCEUNITS); }
+{ MS_LEXER_RETURN_TOKEN(TOLERANCE); }
 	YY_BREAK
 case 226:
 YY_RULE_SETUP
 #line 397 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSPARENCY); }
+{ MS_LEXER_RETURN_TOKEN(TOLERANCEUNITS); }
 	YY_BREAK
 case 227:
 YY_RULE_SETUP
 #line 398 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSPARENT); }
+{ MS_LEXER_RETURN_TOKEN(TRANSPARENCY); }
 	YY_BREAK
 case 228:
 YY_RULE_SETUP
 #line 399 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSFORM); }
+{ MS_LEXER_RETURN_TOKEN(TRANSPARENT); }
 	YY_BREAK
 case 229:
 YY_RULE_SETUP
 #line 400 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TYPE); }
+{ MS_LEXER_RETURN_TOKEN(TRANSFORM); }
 	YY_BREAK
 case 230:
 YY_RULE_SETUP
 #line 401 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(UNITS); }
+{ MS_LEXER_RETURN_TOKEN(TYPE); }
 	YY_BREAK
 case 231:
 YY_RULE_SETUP
 #line 402 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(UTFDATA); }
+{ MS_LEXER_RETURN_TOKEN(UNITS); }
 	YY_BREAK
 case 232:
 YY_RULE_SETUP
 #line 403 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(UTFITEM); }
+{ MS_LEXER_RETURN_TOKEN(UTFDATA); }
 	YY_BREAK
 case 233:
 YY_RULE_SETUP
 #line 404 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(VALIDATION); }
+{ MS_LEXER_RETURN_TOKEN(UTFITEM); }
 	YY_BREAK
 case 234:
 YY_RULE_SETUP
 #line 405 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(VALUES); }
+{ MS_LEXER_RETURN_TOKEN(VALIDATION); }
 	YY_BREAK
 case 235:
 YY_RULE_SETUP
 #line 406 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WEB); }
+{ MS_LEXER_RETURN_TOKEN(VALUES); }
 	YY_BREAK
 case 236:
 YY_RULE_SETUP
 #line 407 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WIDTH); }
+{ MS_LEXER_RETURN_TOKEN(WEB); }
 	YY_BREAK
 case 237:
 YY_RULE_SETUP
 #line 408 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WKT); }
+{ MS_LEXER_RETURN_TOKEN(WIDTH); }
 	YY_BREAK
 case 238:
 YY_RULE_SETUP
 #line 409 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WRAP); }
+{ MS_LEXER_RETURN_TOKEN(WKT); }
 	YY_BREAK
 case 239:
 YY_RULE_SETUP
-#line 411 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_ANNOTATION); }
+#line 410 "maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WRAP); }
 	YY_BREAK
 case 240:
 YY_RULE_SETUP
 #line 412 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_AUTO); }
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_ANNOTATION); }
 	YY_BREAK
 case 241:
 YY_RULE_SETUP
 #line 413 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_AUTO2); }
+{ MS_LEXER_RETURN_TOKEN(MS_AUTO); }
 	YY_BREAK
 case 242:
 YY_RULE_SETUP
 #line 414 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_BEVEL); }
+{ MS_LEXER_RETURN_TOKEN(MS_AUTO2); }
 	YY_BREAK
 case 243:
 YY_RULE_SETUP
 #line 415 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_BITMAP); }
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_BEVEL); }
 	YY_BREAK
 case 244:
 YY_RULE_SETUP
 #line 416 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_BUTT); }
+{ MS_LEXER_RETURN_TOKEN(MS_BITMAP); }
 	YY_BREAK
 case 245:
 YY_RULE_SETUP
 #line 417 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CC); }
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_BUTT); }
 	YY_BREAK
 case 246:
 YY_RULE_SETUP
 #line 418 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_CENTER); }
+{ MS_LEXER_RETURN_TOKEN(MS_CC); }
 	YY_BREAK
 case 247:
 YY_RULE_SETUP
 #line 419 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CHART); }
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_CENTER); }
 	YY_BREAK
 case 248:
 YY_RULE_SETUP
 #line 420 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CIRCLE); }
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CHART); }
 	YY_BREAK
 case 249:
 YY_RULE_SETUP
 #line 421 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CL); }
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CIRCLE); }
 	YY_BREAK
 case 250:
 YY_RULE_SETUP
 #line 422 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CR); }
+{ MS_LEXER_RETURN_TOKEN(MS_CL); }
 	YY_BREAK
 case 251:
 YY_RULE_SETUP
 #line 423 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_CSV); }
+{ MS_LEXER_RETURN_TOKEN(MS_CR); }
 	YY_BREAK
 case 252:
 YY_RULE_SETUP
 #line 424 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_POSTGRES); }
+{ MS_LEXER_RETURN_TOKEN(MS_DB_CSV); }
 	YY_BREAK
 case 253:
 YY_RULE_SETUP
 #line 425 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_MYSQL); }
+{ MS_LEXER_RETURN_TOKEN(MS_DB_POSTGRES); }
 	YY_BREAK
 case 254:
 YY_RULE_SETUP
 #line 426 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DEFAULT); }
+{ MS_LEXER_RETURN_TOKEN(MS_DB_MYSQL); }
 	YY_BREAK
 case 255:
 YY_RULE_SETUP
 #line 427 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DD); }
+{ MS_LEXER_RETURN_TOKEN(MS_DEFAULT); }
 	YY_BREAK
 case 256:
 YY_RULE_SETUP
 #line 428 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_ELLIPSE); }
+{ MS_LEXER_RETURN_TOKEN(MS_DD); }
 	YY_BREAK
 case 257:
 YY_RULE_SETUP
 #line 429 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_EMBED); }
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_ELLIPSE); }
 	YY_BREAK
 case 258:
 YY_RULE_SETUP
 #line 430 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FALSE); }
+{ MS_LEXER_RETURN_TOKEN(MS_EMBED); }
 	YY_BREAK
 case 259:
 YY_RULE_SETUP
 #line 431 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FEET); }
+{ MS_LEXER_RETURN_TOKEN(MS_FALSE); }
 	YY_BREAK
 case 260:
 YY_RULE_SETUP
 #line 432 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FOLLOW); }
+{ MS_LEXER_RETURN_TOKEN(MS_FEET); }
 	YY_BREAK
 case 261:
 YY_RULE_SETUP
 #line 433 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_GIANT); }
+{ MS_LEXER_RETURN_TOKEN(MS_FOLLOW); }
 	YY_BREAK
 case 262:
 YY_RULE_SETUP
 #line 434 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_HATCH); }
+{ MS_LEXER_RETURN_TOKEN(MS_GIANT); }
 	YY_BREAK
 case 263:
 YY_RULE_SETUP
 #line 435 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_KERNELDENSITY); }
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_HATCH); }
 	YY_BREAK
 case 264:
 YY_RULE_SETUP
 #line 436 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_HILITE); }
+{ MS_LEXER_RETURN_TOKEN(MS_KERNELDENSITY); }
 	YY_BREAK
 case 265:
 YY_RULE_SETUP
 #line 437 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_INCHES); }
+{ MS_LEXER_RETURN_TOKEN(MS_HILITE); }
 	YY_BREAK
 case 266:
 YY_RULE_SETUP
 #line 438 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_KILOMETERS); }
+{ MS_LEXER_RETURN_TOKEN(MS_INCHES); }
 	YY_BREAK
 case 267:
 YY_RULE_SETUP
 #line 439 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LARGE); }
+{ MS_LEXER_RETURN_TOKEN(MS_KILOMETERS); }
 	YY_BREAK
 case 268:
 YY_RULE_SETUP
 #line 440 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LC); }
+{ MS_LEXER_RETURN_TOKEN(MS_LARGE); }
 	YY_BREAK
 case 269:
 YY_RULE_SETUP
 #line 441 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_LEFT); }
+{ MS_LEXER_RETURN_TOKEN(MS_LC); }
 	YY_BREAK
 case 270:
 YY_RULE_SETUP
 #line 442 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_LINE); }
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_LEFT); }
 	YY_BREAK
 case 271:
 YY_RULE_SETUP
 #line 443 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LL); }
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_LINE); }
 	YY_BREAK
 case 272:
 YY_RULE_SETUP
 #line 444 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LR); }
+{ MS_LEXER_RETURN_TOKEN(MS_LL); }
 	YY_BREAK
 case 273:
 YY_RULE_SETUP
 #line 445 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MEDIUM); }
+{ MS_LEXER_RETURN_TOKEN(MS_LR); }
 	YY_BREAK
 case 274:
 YY_RULE_SETUP
 #line 446 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_METERS); }
+{ MS_LEXER_RETURN_TOKEN(MS_MEDIUM); }
 	YY_BREAK
 case 275:
 YY_RULE_SETUP
 #line 447 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_NAUTICALMILES); }
+{ MS_LEXER_RETURN_TOKEN(MS_METERS); }
 	YY_BREAK
 case 276:
 YY_RULE_SETUP
 #line 448 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MILES); }
+{ MS_LEXER_RETURN_TOKEN(MS_NAUTICALMILES); }
 	YY_BREAK
 case 277:
 YY_RULE_SETUP
 #line 449 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_MITER); }
+{ MS_LEXER_RETURN_TOKEN(MS_MILES); }
 	YY_BREAK
 case 278:
 YY_RULE_SETUP
 #line 450 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MULTIPLE); }
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_MITER); }
 	YY_BREAK
 case 279:
 YY_RULE_SETUP
 #line 451 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_NONE); }
+{ MS_LEXER_RETURN_TOKEN(MS_MULTIPLE); }
 	YY_BREAK
 case 280:
 YY_RULE_SETUP
 #line 452 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_NORMAL); }
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_NONE); }
 	YY_BREAK
 case 281:
 YY_RULE_SETUP
 #line 453 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_OFF); }
+{ MS_LEXER_RETURN_TOKEN(MS_NORMAL); }
 	YY_BREAK
 case 282:
 YY_RULE_SETUP
 #line 454 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_OGR); }
+{ MS_LEXER_RETURN_TOKEN(MS_OFF); }
 	YY_BREAK
 case 283:
 YY_RULE_SETUP
 #line 455 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ON); }
+{ MS_LEXER_RETURN_TOKEN(MS_OGR); }
 	YY_BREAK
 case 284:
 YY_RULE_SETUP
 #line 456 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_ONE); }
+{ MS_LEXER_RETURN_TOKEN(MS_ON); }
 	YY_BREAK
 case 285:
 YY_RULE_SETUP
 #line 457 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_MANY); }
+{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_ONE); }
 	YY_BREAK
 case 286:
 YY_RULE_SETUP
 #line 458 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ORACLESPATIAL); }
+{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_MANY); }
 	YY_BREAK
 case 287:
 YY_RULE_SETUP
 #line 459 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PERCENTAGES); }
+{ MS_LEXER_RETURN_TOKEN(MS_ORACLESPATIAL); }
 	YY_BREAK
 case 288:
 YY_RULE_SETUP
 #line 460 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_PIXMAP); }
+{ MS_LEXER_RETURN_TOKEN(MS_PERCENTAGES); }
 	YY_BREAK
 case 289:
 YY_RULE_SETUP
 #line 461 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PIXELS); }
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_PIXMAP); }
 	YY_BREAK
 case 290:
 YY_RULE_SETUP
 #line 462 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POINT); }
+{ MS_LEXER_RETURN_TOKEN(MS_PIXELS); }
 	YY_BREAK
 case 291:
 YY_RULE_SETUP
 #line 463 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POLYGON); }
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POINT); }
 	YY_BREAK
 case 292:
 YY_RULE_SETUP
 #line 464 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_POSTGIS); }
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POLYGON); }
 	YY_BREAK
 case 293:
 YY_RULE_SETUP
 #line 465 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PLUGIN); }
+{ MS_LEXER_RETURN_TOKEN(MS_POSTGIS); }
 	YY_BREAK
 case 294:
 YY_RULE_SETUP
 #line 466 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_QUERY); }
+{ MS_LEXER_RETURN_TOKEN(MS_PLUGIN); }
 	YY_BREAK
 case 295:
 YY_RULE_SETUP
 #line 467 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_RASTER); }
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_QUERY); }
 	YY_BREAK
 case 296:
 YY_RULE_SETUP
 #line 468 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_RIGHT); }
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_RASTER); }
 	YY_BREAK
 case 297:
 YY_RULE_SETUP
 #line 469 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_ROUND); }
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_RIGHT); }
 	YY_BREAK
 case 298:
 YY_RULE_SETUP
 #line 470 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SELECTED); }
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_ROUND); }
 	YY_BREAK
 case 299:
 YY_RULE_SETUP
 #line 471 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SIMPLE); }
+{ MS_LEXER_RETURN_TOKEN(MS_SELECTED); }
 	YY_BREAK
 case 300:
 YY_RULE_SETUP
 #line 472 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SINGLE); }
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SIMPLE); }
 	YY_BREAK
 case 301:
 YY_RULE_SETUP
 #line 473 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SMALL); }
+{ MS_LEXER_RETURN_TOKEN(MS_SINGLE); }
 	YY_BREAK
 case 302:
 YY_RULE_SETUP
 #line 474 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_SQUARE); }
+{ MS_LEXER_RETURN_TOKEN(MS_SMALL); }
 	YY_BREAK
 case 303:
 YY_RULE_SETUP
 #line 475 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SVG); }
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_SQUARE); }
 	YY_BREAK
 case 304:
 YY_RULE_SETUP
 #line 476 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POLAROFFSET); }
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SVG); }
 	YY_BREAK
 case 305:
 YY_RULE_SETUP
 #line 477 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TINY); }
+{ MS_LEXER_RETURN_TOKEN(POLAROFFSET); }
 	YY_BREAK
 case 306:
 YY_RULE_SETUP
 #line 478 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_TRIANGLE); }
+{ MS_LEXER_RETURN_TOKEN(MS_TINY); }
 	YY_BREAK
 case 307:
 YY_RULE_SETUP
 #line 479 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TRUE); }
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_TRIANGLE); }
 	YY_BREAK
 case 308:
 YY_RULE_SETUP
 #line 480 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TRUETYPE); }
+{ MS_LEXER_RETURN_TOKEN(MS_TRUE); }
 	YY_BREAK
 case 309:
 YY_RULE_SETUP
 #line 481 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UC); }
+{ MS_LEXER_RETURN_TOKEN(MS_TRUETYPE); }
 	YY_BREAK
 case 310:
 YY_RULE_SETUP
 #line 482 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UL); }
+{ MS_LEXER_RETURN_TOKEN(MS_UC); }
 	YY_BREAK
 case 311:
 YY_RULE_SETUP
 #line 483 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UR); }
+{ MS_LEXER_RETURN_TOKEN(MS_UL); }
 	YY_BREAK
 case 312:
 YY_RULE_SETUP
 #line 484 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UNION); }
+{ MS_LEXER_RETURN_TOKEN(MS_UR); }
 	YY_BREAK
 case 313:
 YY_RULE_SETUP
 #line 485 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UVRASTER); }
+{ MS_LEXER_RETURN_TOKEN(MS_UNION); }
 	YY_BREAK
 case 314:
 YY_RULE_SETUP
 #line 486 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CONTOUR); }
+{ MS_LEXER_RETURN_TOKEN(MS_UVRASTER); }
 	YY_BREAK
 case 315:
 YY_RULE_SETUP
 #line 487 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); }
+{ MS_LEXER_RETURN_TOKEN(MS_CONTOUR); }
 	YY_BREAK
 case 316:
 YY_RULE_SETUP
 #line 488 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_WFS); }
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); }
 	YY_BREAK
 case 317:
 YY_RULE_SETUP
 #line 489 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_WMS); }
+{ MS_LEXER_RETURN_TOKEN(MS_WFS); }
 	YY_BREAK
 case 318:
 YY_RULE_SETUP
-#line 491 "maplexer.l"
+#line 490 "maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_WMS); }
+	YY_BREAK
+case 319:
+YY_RULE_SETUP
+#line 492 "maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4170,9 +4179,9 @@ YY_RULE_SETUP
                                                  return(MS_STRING);
                                                }
 	YY_BREAK
-case 319:
+case 320:
 YY_RULE_SETUP
-#line 499 "maplexer.l"
+#line 500 "maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4183,10 +4192,10 @@ YY_RULE_SETUP
                                                  return(MS_NUMBER);
                                                }
 	YY_BREAK
-case 320:
-/* rule 320 can match eol */
+case 321:
+/* rule 321 can match eol */
 YY_RULE_SETUP
-#line 509 "maplexer.l"
+#line 510 "maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4196,34 +4205,34 @@ YY_RULE_SETUP
                                                  return(MS_BINDING);
                                                }
 	YY_BREAK
-case 321:
+case 322:
 YY_RULE_SETUP
-#line 518 "maplexer.l"
+#line 519 "maplexer.l"
 { 
   /* attribute binding - shape (fixed value) */
   return(MS_TOKEN_BINDING_SHAPE);
 }
 	YY_BREAK
-case 322:
+case 323:
 YY_RULE_SETUP
-#line 522 "maplexer.l"
+#line 523 "maplexer.l"
 { 
   /* attribute binding - map cellsize */
   return(MS_TOKEN_BINDING_MAP_CELLSIZE);
 }
 	YY_BREAK
-case 323:
+case 324:
 YY_RULE_SETUP
-#line 526 "maplexer.l"
+#line 527 "maplexer.l"
 { 
   /* attribute binding - data cellsize */
   return(MS_TOKEN_BINDING_DATA_CELLSIZE);
 }
 	YY_BREAK
-case 324:
-/* rule 324 can match eol */
+case 325:
+/* rule 325 can match eol */
 YY_RULE_SETUP
-#line 530 "maplexer.l"
+#line 531 "maplexer.l"
 {
   /* attribute binding - numeric (no quotes) */
   msyytext++;
@@ -4234,10 +4243,10 @@ YY_RULE_SETUP
   return(MS_TOKEN_BINDING_DOUBLE);
 }
 	YY_BREAK
-case 325:
-/* rule 325 can match eol */
+case 326:
+/* rule 326 can match eol */
 YY_RULE_SETUP
-#line 539 "maplexer.l"
+#line 540 "maplexer.l"
 {
   /* attribute binding - string (single or double quotes) */
   msyytext+=2;
@@ -4248,10 +4257,10 @@ YY_RULE_SETUP
   return(MS_TOKEN_BINDING_STRING);
 }
 	YY_BREAK
-case 326:
-/* rule 326 can match eol */
+case 327:
+/* rule 327 can match eol */
 YY_RULE_SETUP
-#line 548 "maplexer.l"
+#line 549 "maplexer.l"
 {
   /* attribute binding - time */
   msyytext+=2;
@@ -4262,9 +4271,9 @@ YY_RULE_SETUP
   return(MS_TOKEN_BINDING_TIME);
 }
 	YY_BREAK
-case 327:
+case 328:
 YY_RULE_SETUP
-#line 558 "maplexer.l"
+#line 559 "maplexer.l"
 {
   MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
                           msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4273,9 +4282,9 @@ YY_RULE_SETUP
   return(MS_NUMBER); 
 }
 	YY_BREAK
-case 328:
+case 329:
 YY_RULE_SETUP
-#line 566 "maplexer.l"
+#line 567 "maplexer.l"
 {
   MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
                           msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4284,10 +4293,10 @@ YY_RULE_SETUP
   return(MS_TOKEN_LITERAL_NUMBER);
 }
 	YY_BREAK
-case 329:
-/* rule 329 can match eol */
+case 330:
+/* rule 330 can match eol */
 YY_RULE_SETUP
-#line 574 "maplexer.l"
+#line 575 "maplexer.l"
 {
   msyytext++;
   msyytext[strlen(msyytext)-1] = '\0';
@@ -4297,10 +4306,10 @@ YY_RULE_SETUP
   return(MS_TOKEN_LITERAL_TIME);
 }
 	YY_BREAK
-case 330:
-/* rule 330 can match eol */
+case 331:
+/* rule 331 can match eol */
 YY_RULE_SETUP
-#line 583 "maplexer.l"
+#line 584 "maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-2] = '\0';
@@ -4310,10 +4319,10 @@ YY_RULE_SETUP
                                                  return(MS_IREGEX);
                                                }
 	YY_BREAK
-case 331:
-/* rule 331 can match eol */
+case 332:
+/* rule 332 can match eol */
 YY_RULE_SETUP
-#line 592 "maplexer.l"
+#line 593 "maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4323,9 +4332,9 @@ YY_RULE_SETUP
                                                  return(MS_REGEX);
                                                }
 	YY_BREAK
-case 332:
+case 333:
 YY_RULE_SETUP
-#line 601 "maplexer.l"
+#line 602 "maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4335,9 +4344,9 @@ YY_RULE_SETUP
                                                  return(MS_EXPRESSION);
                                                }
 	YY_BREAK
-case 333:
+case 334:
 YY_RULE_SETUP
-#line 610 "maplexer.l"
+#line 611 "maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4347,9 +4356,9 @@ YY_RULE_SETUP
                                                  return(MS_LIST);
                                                }
 	YY_BREAK
-case 334:
+case 335:
 YY_RULE_SETUP
-#line 619 "maplexer.l"
+#line 620 "maplexer.l"
 {
                                                  msyystring_return_state = MS_STRING;
                                                  msyystring_begin = msyytext[0]; 
@@ -4358,9 +4367,9 @@ YY_RULE_SETUP
                                                  BEGIN(MSSTRING);
                                               }
 	YY_BREAK
-case 335:
+case 336:
 YY_RULE_SETUP
-#line 627 "maplexer.l"
+#line 628 "maplexer.l"
 {
                                                 MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, 
                                                                                            msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4391,9 +4400,9 @@ YY_RULE_SETUP
                                                 }
                                               }
 	YY_BREAK
-case 336:
+case 337:
 YY_RULE_SETUP
-#line 657 "maplexer.l"
+#line 658 "maplexer.l"
 { 
                                                 MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, 
                                                                                            msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4405,10 +4414,10 @@ YY_RULE_SETUP
                                                     *msyystring_buffer_ptr++ = msyytext[0];
                                              }
 	YY_BREAK
-case 337:
-/* rule 337 can match eol */
+case 338:
+/* rule 338 can match eol */
 YY_RULE_SETUP
-#line 668 "maplexer.l"
+#line 669 "maplexer.l"
 {
                                                  char *yptr = msyytext;
                                                  while ( *yptr ) { 
@@ -4419,10 +4428,10 @@ YY_RULE_SETUP
                                                  }
                                              }
 	YY_BREAK
-case 338:
-/* rule 338 can match eol */
+case 339:
+/* rule 339 can match eol */
 YY_RULE_SETUP
-#line 678 "maplexer.l"
+#line 679 "maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4449,9 +4458,9 @@ YY_RULE_SETUP
                                                  BEGIN(INITIAL);
                                                }
 	YY_BREAK
-case 339:
+case 340:
 YY_RULE_SETUP
-#line 704 "maplexer.l"
+#line 705 "maplexer.l"
 {
                                                  msyystring_return_state = MS_TOKEN_LITERAL_STRING;
                                                  msyystring_begin = msyytext[0]; 
@@ -4460,9 +4469,9 @@ YY_RULE_SETUP
                                                  BEGIN(MSSTRING);
                                               }
 	YY_BREAK
-case 340:
+case 341:
 YY_RULE_SETUP
-#line 712 "maplexer.l"
+#line 713 "maplexer.l"
 { 
                                                     MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
                                                                             msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4470,14 +4479,14 @@ YY_RULE_SETUP
                                                     return(MS_STRING); 
                                                 }
 	YY_BREAK
-case 341:
-/* rule 341 can match eol */
+case 342:
+/* rule 342 can match eol */
 YY_RULE_SETUP
-#line 719 "maplexer.l"
+#line 720 "maplexer.l"
 { msyylineno++; }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 721 "maplexer.l"
+#line 722 "maplexer.l"
 {
                                                   if( --include_stack_ptr < 0 )
                                                     return(EOF); /* end of main file */
@@ -4489,17 +4498,17 @@ case YY_STATE_EOF(INITIAL):
                                                   }
                                                 }
 	YY_BREAK
-case 342:
-/* rule 342 can match eol */
+case 343:
+/* rule 343 can match eol */
 YY_RULE_SETUP
-#line 732 "maplexer.l"
+#line 733 "maplexer.l"
 {
   return(0); 
 }
 	YY_BREAK
-case 343:
+case 344:
 YY_RULE_SETUP
-#line 736 "maplexer.l"
+#line 737 "maplexer.l"
 { 
                                                   MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
                                                                           msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4507,17 +4516,17 @@ YY_RULE_SETUP
                                                   return(0); 
                                                 }
 	YY_BREAK
-case 344:
+case 345:
 YY_RULE_SETUP
-#line 742 "maplexer.l"
+#line 743 "maplexer.l"
 { return(msyytext[0]); }
 	YY_BREAK
-case 345:
+case 346:
 YY_RULE_SETUP
-#line 743 "maplexer.l"
+#line 744 "maplexer.l"
 ECHO;
 	YY_BREAK
-#line 4521 "/Users/tbonfort/dev/mapserver/maplexer.c"
+#line 4530 "/Users/tbonfort/dev/mapserver/maplexer.c"
 case YY_STATE_EOF(URL_VARIABLE):
 case YY_STATE_EOF(URL_STRING):
 case YY_STATE_EOF(EXPRESSION_STRING):
@@ -4804,7 +4813,7 @@ static int yy_get_next_buffer (void)
 
 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 85);
+		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 88);
 		if ( yy_accept[yy_current_state] )
 			{
 			(yy_last_accepting_state) = yy_current_state;
@@ -4813,7 +4822,7 @@ static int yy_get_next_buffer (void)
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 2002 )
+			if ( yy_current_state >= 2005 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4832,7 +4841,7 @@ static int yy_get_next_buffer (void)
 	register int yy_is_jam;
     	register char *yy_cp = (yy_c_buf_p);
 
-	register YY_CHAR yy_c = 85;
+	register YY_CHAR yy_c = 88;
 	if ( yy_accept[yy_current_state] )
 		{
 		(yy_last_accepting_state) = yy_current_state;
@@ -4841,11 +4850,11 @@ static int yy_get_next_buffer (void)
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 2002 )
+		if ( yy_current_state >= 2005 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 2001);
+	yy_is_jam = (yy_current_state == 2004);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -5518,7 +5527,7 @@ void msyyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 743 "maplexer.l"
+#line 744 "maplexer.l"
 
 
 
diff --git a/maplexer.l b/maplexer.l
index c83801e..ba7d740 100644
--- a/maplexer.l
+++ b/maplexer.l
@@ -224,6 +224,7 @@ char path[MS_MAXPATHLEN];
 <INITIAL,URL_STRING>backgroundcolor            { MS_LEXER_RETURN_TOKEN(BACKGROUNDCOLOR); }
 <INITIAL>bandsitem                             { MS_LEXER_RETURN_TOKEN(BANDSITEM); }
 <INITIAL>bindvals                              { MS_LEXER_RETURN_TOKEN(BINDVALS); }
+<INITIAL>\xEF\xBB\xBF                          { MS_LEXER_RETURN_TOKEN(BOM); }
 <INITIAL>browseformat                          { MS_LEXER_RETURN_TOKEN(BROWSEFORMAT); }
 <INITIAL>buffer                                { MS_LEXER_RETURN_TOKEN(BUFFER); }
 <INITIAL>character                             { MS_LEXER_RETURN_TOKEN(CHARACTER); }
diff --git a/mapogcfilter.c b/mapogcfilter.c
index 50e2e7b..05f017a 100644
--- a/mapogcfilter.c
+++ b/mapogcfilter.c
@@ -40,6 +40,7 @@
 #include "mapowscommon.h"
 #include "maptime.h"
 #include "mapows.h"
+#include <ctype.h>
 
 static int FLTHasUniqueTopLevelDuringFilter(FilterEncodingNode *psFilterNode);
 
diff --git a/mapogcsld.c b/mapogcsld.c
index a24dc4e..465421d 100644
--- a/mapogcsld.c
+++ b/mapogcsld.c
@@ -162,6 +162,12 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer, char *pszStyleLayerNa
   layerObj *lp = NULL;
 
   pasLayers = msSLDParseSLD(map, psSLDXML, &nLayers);
+  if( pasLayers == NULL ) {
+    errorObj* psError = msGetErrorObj();
+    if( psError && psError->code != MS_NOERR )
+      return MS_FAILURE;
+  }
+
   /* -------------------------------------------------------------------- */
   /*      If the same layer is given more that once, we need to           */
   /*      duplicate it.                                                   */
@@ -391,10 +397,37 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer, char *pszStyleLayerNa
               goto sld_cleanup;
             }
           } else {
+            lp = GET_LAYER(map, i);
+            
+            /* The SLD might have a FeatureTypeConstraint */
+            if( pasLayers[j].filter.type == MS_EXPRESSION )
+            {
+                if( lp->filter.string && lp->filter.type == MS_EXPRESSION )
+                {
+                    pszBuffer = msStringConcatenate(NULL, "((");
+                    pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string);
+                    pszBuffer = msStringConcatenate(pszBuffer, ") AND (");
+                    pszBuffer = msStringConcatenate(pszBuffer, pasLayers[j].filter.string);
+                    pszBuffer = msStringConcatenate(pszBuffer, "))");
+                    msFreeExpression(&lp->filter);
+                    msInitExpression(&lp->filter);
+                    lp->filter.string = pszBuffer;
+                    lp->filter.type = MS_EXPRESSION;
+
+                    pszBuffer = NULL;
+                }
+                else
+                {
+                    msFreeExpression(&lp->filter);
+                    msInitExpression(&lp->filter);
+                    lp->filter.string = msStrdup(pasLayers[j].filter.string);
+                    lp->filter.type = MS_EXPRESSION;
+                }
+            }
+
             /*in some cases it would make sense to concatenate all the class
               expressions and use it to set the filter on the layer. This
               could increase performace. Will do it for db types layers #2840*/
-            lp = GET_LAYER(map, i);
             if (lp->filter.string == NULL || (lp->filter.string && lp->filter.type == MS_STRING && !lp->filteritem)) {
               if (lp->connectiontype == MS_POSTGIS || lp->connectiontype ==  MS_ORACLESPATIAL || lp->connectiontype == MS_PLUGIN) {
                 if (lp->numclasses > 0) {
@@ -596,7 +629,15 @@ layerObj  *msSLDParseSLD(mapObj *map, char *psSLDXML, int *pnLayers)
       if (psName && psName->psChild &&  psName->psChild->pszValue)
         pasLayers[iLayer].name = msStrdup(psName->psChild->pszValue);
 
-      msSLDParseNamedLayer(psNamedLayer, &pasLayers[iLayer]);
+      if( msSLDParseNamedLayer(psNamedLayer, &pasLayers[iLayer]) != MS_SUCCESS ) {
+        int i;
+        for (i=0; i<=iLayer; i++)
+            freeLayer(&pasLayers[i]);
+        msFree(pasLayers);
+        nLayers = 0;
+        pasLayers = NULL;
+        break;
+      }
 
       psNamedLayer = psNamedLayer->psNext;
       iLayer++;
@@ -708,6 +749,79 @@ void  _SLDApplyRuleValues(CPLXMLNode *psRule, layerObj *psLayer,
 
 }
 
+/************************************************************************/
+/*                     msSLDGetCommonExpressionFromFilter               */
+/*                                                                      */
+/*      Get a commomn expression valid from the filter valid for the    */
+/*      temporary layer.                                                */
+/************************************************************************/
+static char* msSLDGetCommonExpressionFromFilter(CPLXMLNode* psFilter,
+                                                layerObj *psLayer)
+{
+    char *pszExpression = NULL;
+    CPLXMLNode *psTmpNextNode = NULL;
+    CPLXMLNode *psTmpNode = NULL;
+    FilterEncodingNode *psNode = NULL;
+    char *pszTmpFilter = NULL;
+    layerObj *psCurrentLayer = NULL;
+    const char *pszWmsName=NULL;
+    const char *key=NULL;
+
+    /* clone the tree and set the next node to null */
+    /* so we only have the Filter node */
+    psTmpNode = CPLCloneXMLTree(psFilter);
+    psTmpNextNode = psTmpNode->psNext;
+    psTmpNode->psNext = NULL;
+    pszTmpFilter = CPLSerializeXMLTree(psTmpNode);
+    psTmpNode->psNext = psTmpNextNode;
+    CPLDestroyXMLNode(psTmpNode);
+
+    if (pszTmpFilter) {
+        psNode = FLTParseFilterEncoding(pszTmpFilter);
+
+        CPLFree(pszTmpFilter);
+    }
+
+    if (psNode) {
+        int j;
+
+        /*preparse the filter for possible gml aliases set on the layer's metada:
+        "gml_NA3DESC_alias" "alias_name" and filter could be
+        <ogc:PropertyName>alias_name</ogc:PropertyName> #3079*/
+        for (j=0; j<psLayer->map->numlayers; j++) {
+            psCurrentLayer = GET_LAYER(psLayer->map, j);
+
+            pszWmsName = msOWSLookupMetadata(&(psCurrentLayer->metadata), "MO", "name");
+
+            if ((psCurrentLayer->name && psLayer->name &&
+                    strcasecmp(psCurrentLayer->name, psLayer->name) == 0) ||
+                (psCurrentLayer->group && psLayer->name &&
+                    strcasecmp(psCurrentLayer->group, psLayer->name) == 0) ||
+                (psLayer->name && pszWmsName &&
+                    strcasecmp(pszWmsName, psLayer->name) == 0))
+                break;
+        }
+        if (j < psLayer->map->numlayers) {
+            /*make sure that the tmp layer has all the metadata that
+            the orinal layer has, allowing to do parsing for
+            such things as gml_attribute_type #3052*/
+            while (1) {
+                key = msNextKeyFromHashTable(&psCurrentLayer->metadata, key);
+                if (!key)
+                    break;
+                else
+                    msInsertHashTable(&psLayer->metadata, key,
+                                    msLookupHashTable(&psCurrentLayer->metadata, key));
+            }
+            FLTPreParseFilterForAliasAndGroup(psNode, psLayer->map, j, "G");
+        }
+
+        pszExpression = FLTGetCommonExpression(psNode, psLayer);
+        FLTFreeFilterEncodingNode(psNode);
+    }
+    
+    return pszExpression;
+}
 
 /************************************************************************/
 /*                           msSLDParseNamedLayer                       */
@@ -719,15 +833,9 @@ int msSLDParseNamedLayer(CPLXMLNode *psRoot, layerObj *psLayer)
   CPLXMLNode *psFeatureTypeStyle, *psRule, *psUserStyle;
   CPLXMLNode *psSLDName = NULL, *psNamedStyle=NULL;
   CPLXMLNode *psElseFilter = NULL, *psFilter=NULL;
-  CPLXMLNode *psTmpNode = NULL;
-  FilterEncodingNode *psNode = NULL;
+  CPLXMLNode *psLayerFeatureConstraints = NULL;
   int nNewClasses=0, nClassBeforeFilter=0, nClassAfterFilter=0;
   int nClassAfterRule=0, nClassBeforeRule=0;
-  char *pszTmpFilter = NULL;
-  layerObj *psCurrentLayer = NULL;
-  const char *pszWmsName=NULL;
-  int j=0;
-  const char *key=NULL;
 
   if (!psRoot || !psLayer)
     return MS_FAILURE;
@@ -772,67 +880,10 @@ int msSLDParseNamedLayer(CPLXMLNode *psRoot, layerObj *psLayer)
           /* -------------------------------------------------------------------- */
           psFilter = CPLGetXMLNode(psRule, "Filter");
           if (psFilter && psFilter->psChild && psFilter->psChild->pszValue) {
-            CPLXMLNode *psTmpNextNode = NULL;
-            /* clone the tree and set the next node to null */
-            /* so we only have the Filter node */
-            psTmpNode = CPLCloneXMLTree(psFilter);
-            psTmpNextNode = psTmpNode->psNext;
-            psTmpNode->psNext = NULL;
-            pszTmpFilter = CPLSerializeXMLTree(psTmpNode);
-            psTmpNode->psNext = psTmpNextNode;
-            CPLDestroyXMLNode(psTmpNode);
-
-            if (pszTmpFilter) {
-              /* nTmp = strlen(psFilter->psChild->pszValue)+17; */
-              /* pszTmpFilter = malloc(sizeof(char)*nTmp); */
-              /* sprintf(pszTmpFilter,"<Filter>%s</Filter>", */
-              /* psFilter->psChild->pszValue); */
-              /* pszTmpFilter[nTmp-1]='\0'; */
-              psNode = FLTParseFilterEncoding(pszTmpFilter);
-
-              CPLFree(pszTmpFilter);
-            }
-
-            if (psNode) {
-              char *pszExpression = NULL;
-              int i;
-
-              /*preparse the filter for possible gml aliases set on the layer's metada:
-                "gml_NA3DESC_alias" "alias_name" and filter could be
-              <ogc:PropertyName>alias_name</ogc:PropertyName> #3079*/
-              for (j=0; j<psLayer->map->numlayers; j++) {
-                psCurrentLayer = GET_LAYER(psLayer->map, j);
-
-                pszWmsName = msOWSLookupMetadata(&(psCurrentLayer->metadata), "MO", "name");
-
-                if ((psCurrentLayer->name && psLayer->name &&
-                     strcasecmp(psCurrentLayer->name, psLayer->name) == 0) ||
-                    (psCurrentLayer->group && psLayer->name &&
-                     strcasecmp(psCurrentLayer->group, psLayer->name) == 0) ||
-                    (psLayer->name && pszWmsName &&
-                     strcasecmp(pszWmsName, psLayer->name) == 0))
-                  break;
-              }
-              if (j < psLayer->map->numlayers) {
-                /*make sure that the tmp layer has all the metadata that
-                  the orinal layer has, allowing to do parsing for
-                  such things as gml_attribute_type #3052*/
-                while (1) {
-                  key = msNextKeyFromHashTable(&psCurrentLayer->metadata, key);
-                  if (!key)
-                    break;
-                  else
-                    msInsertHashTable(&psLayer->metadata, key,
-                                      msLookupHashTable(&psCurrentLayer->metadata, key));
-                }
-                FLTPreParseFilterForAliasAndGroup(psNode, psLayer->map, j, "G");
-              }
-
-              pszExpression = FLTGetCommonExpression(psNode, psLayer);
-              FLTFreeFilterEncodingNode(psNode);
-              psNode = NULL;
-
-              if (pszExpression) {
+            char* pszExpression = msSLDGetCommonExpressionFromFilter(psFilter,
+                                                                     psLayer);
+            if (pszExpression) {
+                int i;
                 nNewClasses =
                   nClassAfterFilter - nClassBeforeFilter;
                 for (i=0; i<nNewClasses; i++) {
@@ -846,8 +897,6 @@ int msSLDParseNamedLayer(CPLXMLNode *psRoot, layerObj *psLayer)
                 }
                 msFree(pszExpression);
                 pszExpression = NULL;
-              }
-
             }
           }
           nClassAfterRule = psLayer->numclasses;
@@ -899,6 +948,47 @@ int msSLDParseNamedLayer(CPLXMLNode *psRoot, layerObj *psLayer)
     }
   }
 
+  /* Deal with LayerFeatureConstraints */
+  psLayerFeatureConstraints = CPLGetXMLNode(psRoot, "LayerFeatureConstraints");
+  if( psLayerFeatureConstraints != NULL ) {
+    CPLXMLNode* psIter = psLayerFeatureConstraints->psChild;
+    CPLXMLNode* psFeatureTypeConstraint = NULL;
+    for(; psIter != NULL; psIter = psIter->psNext ) {
+      if( psIter->eType == CXT_Element &&
+            strcmp(psIter->pszValue, "FeatureTypeConstraint") == 0 )  {
+        if( psFeatureTypeConstraint == NULL ) {
+          psFeatureTypeConstraint = psIter;
+        } else {
+          msSetError(MS_WMSERR, "Only one single FeatureTypeConstraint element "
+                    "per LayerFeatureConstraints is supported", "");  
+          return MS_FAILURE;
+        }
+      }
+    }
+    if( psFeatureTypeConstraint != NULL ) {
+      if( CPLGetXMLNode(psFeatureTypeConstraint, "FeatureTypeName") != NULL ) {
+        msSetError(MS_WMSERR, "FeatureTypeName element is not "
+                    "supported in FeatureTypeConstraint", "");
+        return MS_FAILURE;
+      }
+      if( CPLGetXMLNode(psFeatureTypeConstraint, "Extent") != NULL ) {
+        msSetError(MS_WMSERR, "Extent element is not "
+                    "supported in FeatureTypeConstraint", "");
+        return MS_FAILURE;
+      }
+      psFilter = CPLGetXMLNode(psFeatureTypeConstraint, "Filter");
+      if (psFilter && psFilter->psChild && psFilter->psChild->pszValue) {
+        char* pszExpression = msSLDGetCommonExpressionFromFilter(psFilter,
+                                                                    psLayer);
+        if (pszExpression) {
+            msInitExpression(&psLayer->filter);
+            psLayer->filter.string = pszExpression;
+            psLayer->filter.type = MS_EXPRESSION;
+        }
+      }
+    }
+  }
+
   return MS_SUCCESS;
 }
 
@@ -4714,7 +4804,6 @@ FilterEncodingNode *BuildExpressionTree(char *pszExpression,
 {
   int nLength = 0;
   int nOperators=0;
-  char *pszFinalExpression = NULL;
   char *pszComparionValue=NULL, *pszAttibuteName=NULL;
   char *pszAttibuteValue=NULL;
   char *pszLeftExpression=NULL, *pszRightExpression=NULL, *pszOperator=NULL;
@@ -4722,9 +4811,6 @@ FilterEncodingNode *BuildExpressionTree(char *pszExpression,
   if (!pszExpression || (nLength = strlen(pszExpression)) <=0)
     return NULL;
 
-  pszFinalExpression = (char *)malloc(sizeof(char)*(nLength+1));
-  pszFinalExpression[0] = '\0';
-
   /* -------------------------------------------------------------------- */
   /*      First we check how many logical operators are there :           */
   /*       - if none : It means It is a comparision operator (like =,      */
@@ -4845,7 +4931,6 @@ FilterEncodingNode *BuildExpressionTree(char *pszExpression,
 
     return psNode;
   } else {
-    msFree(pszFinalExpression);
     return NULL;
   }
 }
diff --git a/mapogr.cpp b/mapogr.cpp
index 1708d1c..881250f 100644
--- a/mapogr.cpp
+++ b/mapogr.cpp
@@ -901,6 +901,14 @@ static char **msOGRGetValues(layerObj *layer, OGRFeatureH hFeature)
           msDebug(MSOGR_SYMBOLPARAMNAME " = \"%s\"\n", values[i]);
       }
       else {
+        msFreeCharArray(values,i);
+
+        OGR_SM_Destroy(hStyleMgr);
+        OGR_ST_Destroy(hLabelStyle);
+        OGR_ST_Destroy(hPenStyle);
+        OGR_ST_Destroy(hBrushStyle);
+        OGR_ST_Destroy(hSymbolStyle);
+
         msSetError(MS_OGRERR,"Invalid field index!?!","msOGRGetValues()");
         return(NULL);
       }
@@ -1310,6 +1318,7 @@ static int msOGRFileClose(layerObj *layer, msOGRFileInfo *psInfo )
 
   return MS_SUCCESS;
 }
+#endif /* USE_OGR */
 
 /************************************************************************/
 /*                           msOGREscapeSQLParam                        */
@@ -1337,6 +1346,9 @@ static char *msOGREscapeSQLParam(layerObj *layer, const char *pszString)
 #endif /* USE_OGR */
 }
 
+#ifdef USE_OGR
+
+#if 0 /*left over code from filter translation development */
 /**********************************************************************
  *                     msOGRTranslateMsExpressionToOGRSQL()
  *
@@ -1484,7 +1496,7 @@ cleanup:
   msFree(msSQLExpression);
   return NULL;
 }
-
+#endif //0
 
 /**********************************************************************
  *                     msOGRFileWhichShapes()
@@ -1704,6 +1716,14 @@ msOGRPassThroughFieldDefinitions( layerObj *layer, msOGRFileInfo *psInfo )
           sprintf( gml_width, "%d", OGR_Fld_GetWidth( hField) );
         break;
 
+#if GDAL_VERSION_MAJOR >= 2
+      case OFTInteger64:
+        gml_type = "Long";
+        if( OGR_Fld_GetWidth( hField) > 0 )
+          sprintf( gml_width, "%d", OGR_Fld_GetWidth( hField) );
+        break;
+#endif
+
       case OFTReal:
         gml_type = "Real";
         if( OGR_Fld_GetWidth( hField) > 0 )
@@ -1887,8 +1907,8 @@ msOGRFileNextShape(layerObj *layer, shapeObj *shape,
         break; // Shape is ready to be returned!
 
       if (layer->debug >= MS_DEBUGLEVEL_VVV)
-        msDebug("msOGRFileNextShape: Rejecting feature (shapeid = %ld, tileid=%d) of incompatible type for this layer (feature wkbType %d, layer type %d)\n",
-                OGR_F_GetFID( hFeature ), psInfo->nTileId,
+        msDebug("msOGRFileNextShape: Rejecting feature (shapeid = " CPL_FRMT_GIB ", tileid=%d) of incompatible type for this layer (feature wkbType %d, layer type %d)\n",
+                (GIntBig)OGR_F_GetFID( hFeature ), psInfo->nTileId,
                 OGR_F_GetGeometryRef( hFeature )==NULL ? wkbFlatten(wkbUnknown):wkbFlatten( OGR_G_GetGeometryType( OGR_F_GetGeometryRef( hFeature ) ) ),
                 layer->type);
 
@@ -1904,7 +1924,7 @@ msOGRFileNextShape(layerObj *layer, shapeObj *shape,
     shape->type = MS_SHAPE_NULL;
   }
 
-  shape->index =  OGR_F_GetFID( hFeature );;
+  shape->index =  (int)OGR_F_GetFID( hFeature ); // FIXME? GetFID() is a 64bit integer in GDAL 2.0
   shape->resultindex = psInfo->last_record_index_read;
   shape->tileindex = psInfo->nTileId;
 
@@ -2019,7 +2039,7 @@ msOGRFileGetShape(layerObj *layer, shapeObj *shape, long record,
     shape->index = record;
     shape->resultindex = -1;
   } else {
-    shape->index = OGR_F_GetFID( hFeature );
+    shape->index = (int)OGR_F_GetFID( hFeature ); // FIXME? GetFID() is a 64bit integer in GDAL 2.0
     shape->resultindex = record;
   }
 
@@ -2101,7 +2121,7 @@ NextFile:
   connection = msStrdup( OGR_F_GetFieldAsString( hFeature,
                          layer->tileitemindex ));
 
-  nFeatureId = OGR_F_GetFID( hFeature );
+  nFeatureId = (int)OGR_F_GetFID( hFeature ); // FIXME? GetFID() is a 64bit integer in GDAL 2.0
 
   OGR_F_Destroy( hFeature );
 
diff --git a/mapogroutput.c b/mapogroutput.c
index 770dd3f..b6efb46 100644
--- a/mapogroutput.c
+++ b/mapogroutput.c
@@ -175,8 +175,15 @@ static void msOGRCleanupDS( const char *datasource_name )
   char **file_list;
   char path[MS_MAXPATHLEN];
   int i;
+  VSIStatBufL sStatBuf;
+  
+  if( VSIStatL( datasource_name, &sStatBuf ) != 0 )
+    return;
+  if( VSI_ISDIR( sStatBuf.st_mode ) )
+    strlcpy( path, datasource_name, sizeof(path) );
+  else
+    strlcpy( path, CPLGetPath( datasource_name ), sizeof(path) );
 
-  strlcpy( path, CPLGetPath( datasource_name ), sizeof(path) );
   file_list = CPLReadDir( path );
 
   for( i = 0; file_list != NULL && file_list[i] != NULL; i++ ) {
@@ -195,11 +202,7 @@ static void msOGRCleanupDS( const char *datasource_name )
     if( VSI_ISREG( sStatBuf.st_mode ) ) {
       VSIUnlink( full_filename );
     } else if( VSI_ISDIR( sStatBuf.st_mode ) ) {
-      char fake_ds_name[MS_MAXPATHLEN];
-      strlcpy( fake_ds_name,
-               CPLFormFilename( full_filename, "abc.dat", NULL ),
-               sizeof(fake_ds_name) );
-      msOGRCleanupDS( fake_ds_name );
+      msOGRCleanupDS( full_filename );
     }
   }
 
@@ -494,7 +497,11 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
     if( shape->values[i][0] == '\0' ) {
       OGRFieldDefnH hFieldDefn = OGR_FD_GetFieldDefn(hLayerDefn, out_field);
       OGRFieldType eFieldType = OGR_Fld_GetType(hFieldDefn);
-      if( eFieldType == OFTInteger || eFieldType == OFTReal )
+      if( eFieldType == OFTInteger || eFieldType == OFTReal
+#if GDAL_VERSION_MAJOR >= 2
+          || eFieldType == OFTInteger64
+#endif
+          )
       {
         out_field++;
         continue;
@@ -681,6 +688,7 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
   char **layer_options = NULL;
   char **file_list = NULL;
   int iLayer, i;
+  int bDataSourceNameIsRequestDir = FALSE;
 
   /* -------------------------------------------------------------------- */
   /*      Fetch the output format driver.                                 */
@@ -805,26 +813,15 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
       if( EQUAL(CPLGetExtension(datasource_name), "") ) {
         strcat(datasource_name, ".dat");
       }
-      else if( EQUAL(CPLGetExtension(datasource_name), "shp") )
-      {
-          int nNonEmptyLayers = 0;
-          for( iLayer = 0; iLayer < map->numlayers; iLayer++ ) {
-            layerObj *layer = GET_LAYER(map, iLayer);
-            if( !layer->resultcache || layer->resultcache->numresults == 0 )
-              continue;
-            nNonEmptyLayers ++;
-          }
-          /* The shapefile driver will be somehow confused if trying to create */
-          /* a datasource named foo.shp when there are several layers in it */
-          /* It would create the first layer as datasource_name.shp and the next ones */
-          /* with layer_name.shp */
-          /* so remove the shp extension in that case, so that all layers are */
-          /* exported with their names */
-          if( nNonEmptyLayers > 1 )
-          {
-              *strrchr(datasource_name, '.') = '\0';
-          }
-      }
+    }
+
+    /* Shapefile and MapInfo driver only properly work with multiple layers */
+    /* if the output dataset name is a directory */
+    if( EQUAL(format->driver+4, "ESRI Shapefile") ||
+        EQUAL(format->driver+4, "MapInfo File") )
+    {
+        bDataSourceNameIsRequestDir = TRUE;
+        strcpy(datasource_name, request_dir);
     }
   }
   else
@@ -876,7 +873,7 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
     int  reproject = MS_FALSE;
     int  nFirstOGRFieldIndex = -1;
 
-    if( !layer->resultcache || layer->resultcache->numresults == 0 )
+    if( !layer->resultcache )
       continue;
 
     /* -------------------------------------------------------------------- */
@@ -959,9 +956,9 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
       OGR_DS_Destroy( hDS );
       msOGRCleanupDS( datasource_name );
       msSetError( MS_MISCERR,
-                  "OGR CreateDataSource failed for '%s' with driver '%s'.",
+                  "OGR OGR_DS_CreateLayer failed for layer '%s' with driver '%s'.",
                   "msOGRWriteFromQuery()",
-                  datasource_name,
+                  layer->name,
                   format->driver+4 );
       return MS_FAILURE;
     }
@@ -994,6 +991,12 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
         eType = OFTString;
       else if( EQUAL(item->type,"Integer") )
         eType = OFTInteger;
+      else if( EQUAL(item->type,"Long") )
+#if GDAL_VERSION_MAJOR >= 2
+        eType = OFTInteger64;
+#else
+        eType = OFTReal;
+#endif
       else if( EQUAL(item->type,"Real") )
         eType = OFTReal;
       else if( EQUAL(item->type,"Character") )
@@ -1139,8 +1142,13 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
   } else {
     char datasource_path[MS_MAXPATHLEN];
 
-    strncpy( datasource_path, CPLGetPath( datasource_name ), MS_MAXPATHLEN-1 );
-    file_list = msOGRRecursiveFileList( datasource_path );
+    if( bDataSourceNameIsRequestDir )
+        file_list = msOGRRecursiveFileList( datasource_name );
+    else
+    {
+        strncpy( datasource_path, CPLGetPath( datasource_name ), MS_MAXPATHLEN-1 );
+        file_list = msOGRRecursiveFileList( datasource_path );
+    }
   }
 
   /* -------------------------------------------------------------------- */
diff --git a/maporaclespatial.c b/maporaclespatial.c
index 7ae8d3d..afc679c 100644
--- a/maporaclespatial.c
+++ b/maporaclespatial.c
@@ -1019,10 +1019,10 @@ static void osFilteritem(layerObj *layer, int function, char *query_str, size_t
     else
       strlcat( query_str, " AND ", size);
 
-    if (layer->filteritem != NULL) {
-      snprintf (query_str + strlen(query_str), size-strlen(query_str), " %s = ", layer->filteritem);
+   /* if (layer->filteritem != NULL) {
+      snprintf (query_str + strlen(query_str), size-strlen(query_str), " %s = ", layer->filteritem); */
       /* snprintf (query_str + strlen(query_str), " %s = ", layer->filteritem); */
-    }
+  /*  } */
 
     snprintf (query_str + strlen(query_str), size-strlen(query_str), " %s ", layer->filter.native_string);
     /* snprintf(buffer, n, "gfdg %s %s %s", layer->filter.native_string, (layer->filteritem != NULL ? layer->filteritem : ""), ); */
@@ -2945,17 +2945,17 @@ msOracleSpatialGetFieldDefn( layerObj *layer,
   }
 
   snprintf( md_item_name, sizeof(md_item_name), "gml_%s_type", item );
-  if( msOWSLookupMetadata(&(layer->metadata), "G", "type") == NULL )
+  if( msOWSLookupMetadata(&(layer->metadata), "G", "type") == 0 )
     msInsertHashTable(&(layer->metadata), md_item_name, gml_type );
 
   snprintf( md_item_name, sizeof(md_item_name), "gml_%s_width", item );
   if( strlen(gml_width) > 0
-      && msOWSLookupMetadata(&(layer->metadata), "G", "width") == NULL )
+      && msOWSLookupMetadata(&(layer->metadata), "G", "width") == 0 )
     msInsertHashTable(&(layer->metadata), md_item_name, gml_width );
 
   snprintf( md_item_name, sizeof(md_item_name), "gml_%s_precision",item );
   if( strlen(gml_precision) > 0
-      && msOWSLookupMetadata(&(layer->metadata), "G", "precision")==NULL )
+      && msOWSLookupMetadata(&(layer->metadata), "G", "precision")==0 )
     msInsertHashTable(&(layer->metadata), md_item_name, gml_precision );
 }
 
diff --git a/mappostgis.c b/mappostgis.c
index 33094d2..650ade0 100644
--- a/mappostgis.c
+++ b/mappostgis.c
@@ -3020,9 +3020,12 @@ msPostGISPassThroughFieldDefinitions( layerObj *layer,
       gml_type = "Integer";
       sprintf( gml_width, "%d", 5 );
 
-    } else if( oid == INT4OID || oid == INT8OID ) {
+    } else if( oid == INT4OID ) {
       gml_type = "Integer";
 
+    } else if( oid == INT8OID ) {
+      gml_type = "Long";
+
     } else if( oid == FLOAT4OID || oid == FLOAT8OID ) {
       gml_type = "Real";
 
diff --git a/mapprimitive.c b/mapprimitive.c
index 6212d30..3d488d8 100644
--- a/mapprimitive.c
+++ b/mapprimitive.c
@@ -1251,6 +1251,8 @@ static int getPolygonCenterOfGravity(shapeObj *p, pointObj *lp)
       sy = s>0?tsy:-tsy;
     }
   }
+  if(largestArea == 0) /*degenerate polygon*/
+    return MS_FAILURE;
 
   lp->x = sx/(6*largestArea);
   lp->y = sy/(6*largestArea);
@@ -1437,7 +1439,7 @@ int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension)
       if(len > max_len) {
         max_len = len;
         lp->x = (intersect[i] + intersect[i+1])/2;
-        /* lp->y = y; */
+        lp->y = y;
       }
     }
   } else { /* center vertically, fix x */
@@ -1516,7 +1518,7 @@ int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension)
       if(len > max_len) {
         max_len = len;
         lp->y = (intersect[i] + intersect[i+1])/2;
-        /* lp->x = x; */
+        lp->x = x;
       }
     }
   }
diff --git a/mapproject.c b/mapproject.c
index 49ebf31..1a10390 100644
--- a/mapproject.c
+++ b/mapproject.c
@@ -46,7 +46,7 @@ static int msTestNeedWrap( pointObj pt1, pointObj pt2, pointObj pt2_geo,
 
 /************************************************************************/
 /*                           int msIsAxisInverted                       */
-/*      Check to see if we shoud invert the axis.                       */
+/*      Check to see if we should invert the axis.                       */
 /*                                                                      */
 /************************************************************************/
 int msIsAxisInverted(int epsg_code)
@@ -1030,6 +1030,10 @@ static projectionObj* msGetProjectNormalized( const projectionObj* p )
               memmove(pnew->args + i, pnew->args + i + 1,
                       sizeof(char*) * (pnew->numargs - 1 -i ));
           }
+          else 
+          {
+              msFree(pnew->args[i]);
+          }
           pnew->numargs --;
           i --;
           continue;
diff --git a/maprasterquery.c b/maprasterquery.c
index 80accfa..06f0ece 100644
--- a/maprasterquery.c
+++ b/maprasterquery.c
@@ -330,11 +330,11 @@ static void msRasterQueryAddPixel( layerObj *layer, pointObj *location,
   /* -------------------------------------------------------------------- */
   else {
     if( rlinfo->band_count >= 3 ) {
-      red = (int) MAX(0,MIN(255,values[0]));
-      green = (int) MAX(0,MIN(255,values[1]));
-      blue = (int) MAX(0,MIN(255,values[2]));
+      red = (int) MS_MAX(0,MS_MIN(255,values[0]));
+      green = (int) MS_MAX(0,MS_MIN(255,values[1]));
+      blue = (int) MS_MAX(0,MS_MIN(255,values[2]));
     } else {
-      red = green = blue = (int) MAX(0,MIN(255,values[0]));
+      red = green = blue = (int) MS_MAX(0,MS_MIN(255,values[0]));
     }
   }
 
@@ -454,35 +454,35 @@ msRasterQueryByRectLow(mapObj *map, layerObj *layer, GDALDatasetH hDS,
   /* top right */
   dfX = GEO_TRANS(adfInvGeoTransform  , searchrect.maxx, searchrect.maxy);
   dfY = GEO_TRANS(adfInvGeoTransform+3, searchrect.maxx, searchrect.maxy);
-  dfXMin = MIN(dfXMin,dfX);
-  dfXMax = MAX(dfXMax,dfX);
-  dfYMin = MIN(dfYMin,dfY);
-  dfYMax = MAX(dfYMax,dfY);
+  dfXMin = MS_MIN(dfXMin,dfX);
+  dfXMax = MS_MAX(dfXMax,dfX);
+  dfYMin = MS_MIN(dfYMin,dfY);
+  dfYMax = MS_MAX(dfYMax,dfY);
 
   /* bottom left */
   dfX = GEO_TRANS(adfInvGeoTransform  , searchrect.minx, searchrect.miny);
   dfY = GEO_TRANS(adfInvGeoTransform+3, searchrect.minx, searchrect.miny);
-  dfXMin = MIN(dfXMin,dfX);
-  dfXMax = MAX(dfXMax,dfX);
-  dfYMin = MIN(dfYMin,dfY);
-  dfYMax = MAX(dfYMax,dfY);
+  dfXMin = MS_MIN(dfXMin,dfX);
+  dfXMax = MS_MAX(dfXMax,dfX);
+  dfYMin = MS_MIN(dfYMin,dfY);
+  dfYMax = MS_MAX(dfYMax,dfY);
 
   /* bottom right */
   dfX = GEO_TRANS(adfInvGeoTransform  , searchrect.maxx, searchrect.miny);
   dfY = GEO_TRANS(adfInvGeoTransform+3, searchrect.maxx, searchrect.miny);
-  dfXMin = MIN(dfXMin,dfX);
-  dfXMax = MAX(dfXMax,dfX);
-  dfYMin = MIN(dfYMin,dfY);
-  dfYMax = MAX(dfYMax,dfY);
+  dfXMin = MS_MIN(dfXMin,dfX);
+  dfXMax = MS_MAX(dfXMax,dfX);
+  dfYMin = MS_MIN(dfYMin,dfY);
+  dfYMax = MS_MAX(dfYMax,dfY);
 
   /* -------------------------------------------------------------------- */
   /*      Trim the rectangle to the area of the file itself, but out      */
   /*      to the edges of the touched edge pixels.                        */
   /* -------------------------------------------------------------------- */
-  dfXMin = MAX(0.0,MIN(nRXSize,floor(dfXMin)));
-  dfYMin = MAX(0.0,MIN(nRYSize,floor(dfYMin)));
-  dfXMax = MAX(0.0,MIN(nRXSize,ceil(dfXMax)));
-  dfYMax = MAX(0.0,MIN(nRYSize,ceil(dfYMax)));
+  dfXMin = MS_MAX(0.0,MS_MIN(nRXSize,floor(dfXMin)));
+  dfYMin = MS_MAX(0.0,MS_MIN(nRYSize,floor(dfYMin)));
+  dfXMax = MS_MAX(0.0,MS_MIN(nRXSize,ceil(dfXMax)));
+  dfYMax = MS_MAX(0.0,MS_MIN(nRYSize,ceil(dfYMax)));
 
   /* -------------------------------------------------------------------- */
   /*      Convert to integer offset/size values.                          */
diff --git a/maprendering.c b/maprendering.c
index 4a50d62..7ee3692 100644
--- a/maprendering.c
+++ b/maprendering.c
@@ -1024,7 +1024,6 @@ int msDrawTextSymbol(mapObj *map, imageObj *image, pointObj labelPnt, textSymbol
   if(MS_VALID_COLOR(ts->label->outlinecolor))
     oc = &ts->label->outlinecolor;
   ow = MS_NINT((double)ts->label->outlinewidth * ((double)ts->textpath->glyph_size / (double)ts->label->size));
-  msDebug("setting outlinewidth to %d (%d, %d, %d)\n",ow,ts->label->outlinewidth, ts->textpath->glyph_size, ts->label->size);
   if(!renderer->renderGlyphs) return MS_FAILURE;
   return renderer->renderGlyphs(image,ts->textpath,c,oc,ow);
   
diff --git a/mapresample.c b/mapresample.c
index 26b253e..7107bcb 100644
--- a/mapresample.c
+++ b/mapresample.c
@@ -33,11 +33,6 @@
 
 
 
-#ifndef MAX
-#  define MIN(a,b)      ((a<b) ? a : b)
-#  define MAX(a,b)      ((a>b) ? a : b)
-#endif
-
 #define SKIP_MASK(x,y) (mask_rb && !*(mask_rb->data.rgba.a+(y)*mask_rb->data.rgba.row_step+(x)*mask_rb->data.rgba.pixel_step))
 
 /************************************************************************/
@@ -319,7 +314,7 @@ msBilinearRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
   int   nSrcYSize = psSrcImage->height;
   int   nFailedPoints = 0, nSetPoints = 0;
   double     *padfPixelSum;
-  int         bandCount = MAX(4,psSrcImage->format->bands);
+  int         bandCount = MS_MAX(4,psSrcImage->format->bands);
 
   padfPixelSum = (double *) msSmallMalloc(sizeof(double) * bandCount);
 
@@ -369,10 +364,10 @@ msBilinearRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
         continue;
 
       /* Trim in stuff one pixel off the edge */
-      nSrcX = MAX(nSrcX,0);
-      nSrcY = MAX(nSrcY,0);
-      nSrcX2 = MIN(nSrcX2,nSrcXSize-1);
-      nSrcY2 = MIN(nSrcY2,nSrcYSize-1);
+      nSrcX = MS_MAX(nSrcX,0);
+      nSrcY = MS_MAX(nSrcY,0);
+      nSrcX2 = MS_MIN(nSrcX2,nSrcXSize-1);
+      nSrcY2 = MS_MIN(nSrcY2,nSrcYSize-1);
 
       memset( padfPixelSum, 0, sizeof(double) * bandCount);
 
@@ -407,10 +402,10 @@ msBilinearRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
           int dst_rb_off = nDstX * dst_rb->data.rgba.pixel_step + nDstY * dst_rb->data.rgba.row_step;
           unsigned char red, green, blue, alpha;
 
-          red   = (unsigned char) MAX(0,MIN(255,padfPixelSum[0]));
-          green = (unsigned char) MAX(0,MIN(255,padfPixelSum[1]));
-          blue  = (unsigned char) MAX(0,MIN(255,padfPixelSum[2]));
-          alpha = (unsigned char)MAX(0,MIN(255,255.5*dfWeightSum));
+          red   = (unsigned char) MS_MAX(0,MS_MIN(255,padfPixelSum[0]));
+          green = (unsigned char) MS_MAX(0,MS_MIN(255,padfPixelSum[1]));
+          blue  = (unsigned char) MS_MAX(0,MS_MIN(255,padfPixelSum[2]));
+          alpha = (unsigned char)MS_MAX(0,MS_MIN(255,255.5*dfWeightSum));
 
           msAlphaBlendPM( red, green, blue, alpha,
                           dst_rb->data.rgba.r + dst_rb_off,
@@ -436,7 +431,7 @@ msBilinearRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
               = (float) padfPixelSum[band];
           } else if( psSrcImage->format->imagemode == MS_IMAGEMODE_BYTE ) {
             psDstImage->img.raw_byte[dst_off]
-              = (unsigned char)MAX(0,MIN(255,padfPixelSum[band]));
+              = (unsigned char)MS_MAX(0,MS_MIN(255,padfPixelSum[band]));
           }
 
           dst_off += psDstImage->width*psDstImage->height;
@@ -489,14 +484,14 @@ msAverageSample( imageObj *psSrcImage, rasterBufferObj *src_rb,
   for( iY = nYMin; iY < nYMax; iY++ ) {
     double dfYCellMin, dfYCellMax;
 
-    dfYCellMin = MAX(iY,dfYMin);
-    dfYCellMax = MIN(iY+1,dfYMax);
+    dfYCellMin = MS_MAX(iY,dfYMin);
+    dfYCellMax = MS_MIN(iY+1,dfYMax);
 
     for( iX = nXMin; iX < nXMax; iX++ ) {
       double dfXCellMin, dfXCellMax, dfWeight;
 
-      dfXCellMin = MAX(iX,dfXMin);
-      dfXCellMax = MIN(iX+1,dfXMax);
+      dfXCellMin = MS_MAX(iX,dfXMin);
+      dfXCellMax = MS_MIN(iX+1,dfXMax);
 
       dfWeight = (dfXCellMax-dfXCellMin) * (dfYCellMax-dfYCellMin);
 
@@ -537,7 +532,7 @@ msAverageRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
   int   nFailedPoints = 0, nSetPoints = 0;
   double     *padfPixelSum;
 
-  int         bandCount = MAX(4,psSrcImage->format->bands);
+  int         bandCount = MS_MAX(4,psSrcImage->format->bands);
 
   padfPixelSum = (double *) msSmallMalloc(sizeof(double) * bandCount);
 
@@ -573,19 +568,19 @@ msAverageRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
         continue;
       }
 
-      dfXMin = MIN(MIN(x1[nDstX],x1[nDstX+1]),
-                   MIN(x2[nDstX],x2[nDstX+1]));
-      dfYMin = MIN(MIN(y1[nDstX],y1[nDstX+1]),
-                   MIN(y2[nDstX],y2[nDstX+1]));
-      dfXMax = MAX(MAX(x1[nDstX],x1[nDstX+1]),
-                   MAX(x2[nDstX],x2[nDstX+1]));
-      dfYMax = MAX(MAX(y1[nDstX],y1[nDstX+1]),
-                   MAX(y2[nDstX],y2[nDstX+1]));
+      dfXMin = MS_MIN(MS_MIN(x1[nDstX],x1[nDstX+1]),
+                   MS_MIN(x2[nDstX],x2[nDstX+1]));
+      dfYMin = MS_MIN(MS_MIN(y1[nDstX],y1[nDstX+1]),
+                   MS_MIN(y2[nDstX],y2[nDstX+1]));
+      dfXMax = MS_MAX(MS_MAX(x1[nDstX],x1[nDstX+1]),
+                   MS_MAX(x2[nDstX],x2[nDstX+1]));
+      dfYMax = MS_MAX(MS_MAX(y1[nDstX],y1[nDstX+1]),
+                   MS_MAX(y2[nDstX],y2[nDstX+1]));
 
-      dfXMin = MIN(MAX(dfXMin,0),psSrcImage->width+1);
-      dfYMin = MIN(MAX(dfYMin,0),psSrcImage->height+1);
-      dfXMax = MIN(MAX(-1,dfXMax),psSrcImage->width);
-      dfYMax = MIN(MAX(-1,dfYMax),psSrcImage->height);
+      dfXMin = MS_MIN(MS_MAX(dfXMin,0),psSrcImage->width+1);
+      dfYMin = MS_MIN(MS_MAX(dfYMin,0),psSrcImage->height+1);
+      dfXMax = MS_MIN(MS_MAX(-1,dfXMax),psSrcImage->width);
+      dfYMax = MS_MIN(MS_MAX(-1,dfYMax),psSrcImage->height);
 
       memset( padfPixelSum, 0, sizeof(double)*bandCount );
 
@@ -605,13 +600,13 @@ msAverageRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
           unsigned char red, green, blue, alpha;
 
           red   = (unsigned char)
-                  MAX(0,MIN(255,padfPixelSum[0]+0.5));
+                  MS_MAX(0,MS_MIN(255,padfPixelSum[0]+0.5));
           green = (unsigned char)
-                  MAX(0,MIN(255,padfPixelSum[1]+0.5));
+                  MS_MAX(0,MS_MIN(255,padfPixelSum[1]+0.5));
           blue  = (unsigned char)
-                  MAX(0,MIN(255,padfPixelSum[2]+0.5));
+                  MS_MAX(0,MS_MIN(255,padfPixelSum[2]+0.5));
           alpha = (unsigned char)
-                  MAX(0,MIN(255,255*dfAlpha01+0.5));
+                  MS_MAX(0,MS_MIN(255,255*dfAlpha01+0.5));
 
           RB_MIX_PIXEL(dst_rb,nDstX,nDstY,
                        red, green, blue, alpha );
@@ -1121,10 +1116,10 @@ static int msTransformMapToSource( int nDstXSize, int nDstYSize,
       psSrcExtent->miny = psSrcExtent->maxy = y_out;
       bOutInit = 1;
     } else {
-      psSrcExtent->minx = MIN(psSrcExtent->minx, x_out);
-      psSrcExtent->maxx = MAX(psSrcExtent->maxx, x_out);
-      psSrcExtent->miny = MIN(psSrcExtent->miny, y_out);
-      psSrcExtent->maxy = MAX(psSrcExtent->maxy, y_out);
+      psSrcExtent->minx = MS_MIN(psSrcExtent->minx, x_out);
+      psSrcExtent->maxx = MS_MAX(psSrcExtent->maxx, x_out);
+      psSrcExtent->miny = MS_MIN(psSrcExtent->miny, y_out);
+      psSrcExtent->maxy = MS_MAX(psSrcExtent->maxy, y_out);
     }
   }
 
@@ -1141,10 +1136,10 @@ static int msTransformMapToSource( int nDstXSize, int nDstYSize,
     int nGrowAmountY = (int)
                        (psSrcExtent->maxy - psSrcExtent->miny)/EDGE_STEPS + 1;
 
-    psSrcExtent->minx = MAX(psSrcExtent->minx - nGrowAmountX,0);
-    psSrcExtent->miny = MAX(psSrcExtent->miny - nGrowAmountY,0);
-    psSrcExtent->maxx = MIN(psSrcExtent->maxx + nGrowAmountX,nSrcXSize);
-    psSrcExtent->maxy = MIN(psSrcExtent->maxy + nGrowAmountY,nSrcYSize);
+    psSrcExtent->minx = MS_MAX(psSrcExtent->minx - nGrowAmountX,0);
+    psSrcExtent->miny = MS_MAX(psSrcExtent->miny - nGrowAmountY,0);
+    psSrcExtent->maxx = MS_MIN(psSrcExtent->maxx + nGrowAmountX,nSrcXSize);
+    psSrcExtent->maxy = MS_MIN(psSrcExtent->maxy + nGrowAmountY,nSrcYSize);
   }
 
   return MS_TRUE;
@@ -1342,10 +1337,10 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
     sSrcExtent.maxy = ceil (sSrcExtent.maxy+1.0);
   }
 
-  sSrcExtent.minx = MAX(0,sSrcExtent.minx);
-  sSrcExtent.maxx = MIN(sSrcExtent.maxx, nSrcXSize );
-  sSrcExtent.miny = MAX(sSrcExtent.miny, 0 );
-  sSrcExtent.maxy = MIN(sSrcExtent.maxy, nSrcYSize );
+  sSrcExtent.minx = MS_MAX(0,sSrcExtent.minx);
+  sSrcExtent.maxx = MS_MIN(sSrcExtent.maxx, nSrcXSize );
+  sSrcExtent.miny = MS_MAX(sSrcExtent.miny, 0 );
+  sSrcExtent.maxy = MS_MIN(sSrcExtent.maxy, nSrcYSize );
 
   if( sSrcExtent.maxx <= sSrcExtent.minx
       || sSrcExtent.maxy <= sSrcExtent.miny ) {
@@ -1383,9 +1378,9 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
   else
     sDummyMap.cellsize = dfNominalCellSize;
 
-  nLoadImgXSize = MAX(1, (int) (sSrcExtent.maxx - sSrcExtent.minx)
+  nLoadImgXSize = MS_MAX(1, (int) (sSrcExtent.maxx - sSrcExtent.minx)
                       * (dfNominalCellSize / sDummyMap.cellsize));
-  nLoadImgYSize = MAX(1, (int) (sSrcExtent.maxy - sSrcExtent.miny)
+  nLoadImgYSize = MS_MAX(1, (int) (sSrcExtent.maxy - sSrcExtent.miny)
                       * (dfNominalCellSize / sDummyMap.cellsize));
 
   /*
diff --git a/mapscript/csharp/examples/drawquery.cs b/mapscript/csharp/examples/drawquery.cs
index 457320f..e78d8a7 100644
--- a/mapscript/csharp/examples/drawquery.cs
+++ b/mapscript/csharp/examples/drawquery.cs
@@ -55,7 +55,7 @@ class DrawQuery
         QueryByAttribute(args[1], map, ZoomToResults);
 
         map.querymap.status = mapscript.MS_ON;
-        map.querymap.color.setRGB(0,0,255);
+        map.querymap.color.setRGB(0,0,255,255);
         map.querymap.style = (int)MS_QUERYMAP_STYLES.MS_HILITE;
 
         try 
diff --git a/mapscript/java/javamodule.i b/mapscript/java/javamodule.i
index 640aa0d..1a17dba 100644
--- a/mapscript/java/javamodule.i
+++ b/mapscript/java/javamodule.i
@@ -1,9 +1,11 @@
 
 %include arrays_java.i
 
-# Uncomment this if you wish to hace enums wrapped in an interface compatible
-# with that generated by swig 1.3.21 (tests wont compile, though)
-#%include enumsimple.swg
+/*
+  Uncomment this if you wish to hace enums wrapped in an interface compatible
+  with that generated by swig 1.3.21 (tests wont compile, though)
+  %include enumsimple.swg
+*/
 
 /* Mapscript library loader */
 
diff --git a/mapscript/mserror.i b/mapscript/mserror.i
index d6065d1..2346eee 100644
--- a/mapscript/mserror.i
+++ b/mapscript/mserror.i
@@ -29,7 +29,7 @@
         char* msg = msGetErrorString(";");
         int ms_errorcode = ms_error->code;
         if (msg) {
-			snprintf(ms_message, MAX_ERROR_LEN, msg);
+			snprintf(ms_message, MAX_ERROR_LEN, "%s", msg);
 			free(msg);
 		}
         else sprintf(ms_message, "Unknown message");
diff --git a/mapscript/php/map.c b/mapscript/php/map.c
index 9ddb2eb..aa47737 100644
--- a/mapscript/php/map.c
+++ b/mapscript/php/map.c
@@ -907,7 +907,7 @@ PHP_METHOD(mapObj, getColorByIndex)
     color.green = palette.colors[index].green;
     color.blue = palette.colors[index].blue;
   } else {
-    mapscript_throw_mapserver_exception("Index shoud not be higher than %d\n" TSRMLS_CC, palette.numcolors-1);
+    mapscript_throw_mapserver_exception("Index should not be higher than %d\n" TSRMLS_CC, palette.numcolors-1);
     return;
   }
 
diff --git a/mapscript/php/nmake.opt b/mapscript/php/nmake.opt
deleted file mode 100644
index 692c635..0000000
--- a/mapscript/php/nmake.opt
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# nmake.opt - MSVC++ configuration for the PHP/MapScript
-#
-# This VC++ makefile will build the PHP module PHP_MAPSCRIPT.DLL
-#
-# To use the makefile:
-#  - Open a DOS prompt window
-#  - Run the VCVARS32.BAT script to initialize the VC++ environment variables
-#  - Start the build with:  nmake /f makefile.vc
-#
-# $Id$
-#
-
-########################################################################
-# Secition I: PHP Mapscript Options
-########################################################################
-#Use PHP4 flag when building with PHP4. Default is assumed to be PHP5
-
-#PHP4=1
-
-#name of the file that will be used when doing make install
-#it will be copied in the directory specified by the
-PHP_INSTALL_DLL_NAME = php_mapscript.dll
-
-!IFDEF PHP4
-# Install directory for PHP4
-PHP_INSTALL_DIR=c:\php\php4\extensions
-# PHP TS library for PHP4
-PHP_TS_LIB_NAME=php4ts.lib
-!ELSE
-# Install directory for PHP5
-#PHP_INSTALL_DIR=c:\php\php5\ext
-# PHP TS library for PHP5
-PHP_TS_LIB_NAME=php5ts.lib
-!ENDIF
diff --git a/mapscript/php/php_mapscript.c b/mapscript/php/php_mapscript.c
index dfd397a..5ef3846 100644
--- a/mapscript/php/php_mapscript.c
+++ b/mapscript/php/php_mapscript.c
@@ -542,12 +542,13 @@ PHP_FUNCTION(ms_newGridObj)
 
   php_layer->layer->connectiontype = MS_GRATICULE;
 
-  if (php_layer->layer->layerinfo != NULL)
-    free(php_layer->layer->layerinfo);
-
+  if (php_layer->layer->grid != NULL) {
+    freeGrid(php_layer->layer->grid);
+    free(php_layer->layer->grid);
+  }
 
-  php_layer->layer->layerinfo = (graticuleObj *)malloc( sizeof( graticuleObj ) );
-  initGrid((graticuleObj *)php_layer->layer->layerinfo);
+  php_layer->layer->grid = (graticuleObj *)malloc( sizeof( graticuleObj ) );
+  initGrid(php_layer->layer->grid);
 
   if (php_layer->grid && (Z_TYPE_P(php_layer->grid) == IS_OBJECT)) {
     php_grid = (php_grid_object *) zend_object_store_get_object(php_layer->grid TSRMLS_CC);
@@ -558,7 +559,7 @@ PHP_FUNCTION(ms_newGridObj)
   MAKE_STD_ZVAL(php_layer->grid);
 
   MAPSCRIPT_MAKE_PARENT(zlayer, &php_layer->grid);
-  mapscript_create_grid((graticuleObj *)(php_layer->layer->layerinfo), parent, php_layer->grid TSRMLS_CC);
+  mapscript_create_grid((graticuleObj *)(php_layer->layer->grid), parent, php_layer->grid TSRMLS_CC);
   zend_objects_store_add_ref(php_layer->grid TSRMLS_CC);
 
   *return_value = *(php_layer->grid);
diff --git a/mapscript/python/setup.py b/mapscript/python/setup.py
index 5c9705d..4fd552d 100644
--- a/mapscript/python/setup.py
+++ b/mapscript/python/setup.py
@@ -32,6 +32,11 @@ try:
 except ImportError:
     import popen2
 
+def update_dirs(list1, list2):
+    for v in list2:
+        if v not in list1 and os.path.isdir(v):
+            list1.append(v)
+
 # 
 # # Function needed to make unique lists.
 def unique(list):
@@ -144,8 +149,12 @@ class ms_ext(build_ext):
         return get_config(option, config =self.mapserver_config)
     
     def finalize_options(self):
+        if isinstance(self.include_dirs, str):
+            self.include_dirs = [path.strip() for path in self.include_dirs.strip().split(":")]
         if self.include_dirs is None:
             self.include_dirs = include_dirs
+
+        update_dirs(self.include_dirs, include_dirs)
         
         includes =  self.get_mapserver_config('includes')
         includes = includes.split()
@@ -154,9 +163,13 @@ class ms_ext(build_ext):
                 if item[2:] not in include_dirs:
                     self.include_dirs.append( item[2:] )
 
+        if isinstance(self.library_dirs, str):
+            self.library_dirs = [path.strip() for path in self.library_dirs.strip().split(":")]
         if self.library_dirs is None:
             self.library_dirs = library_dirs
 
+        update_dirs(self.library_dirs, library_dirs)
+
         libs =  self.get_mapserver_config('libs')
         self.library_dirs = self.library_dirs + [x[2:] for x in libs.split() if x[:2] == "-L"]
 
diff --git a/mapscript/ruby/rbmodule.i b/mapscript/ruby/rbmodule.i
index 55732d2..a92af77 100644
--- a/mapscript/ruby/rbmodule.i
+++ b/mapscript/ruby/rbmodule.i
@@ -81,22 +81,22 @@ static void _raise_ms_exception() {
     
     switch (errcode) {
         case MS_IOERR:
-            rb_raise(rb_eIOError, errmsg);
+            rb_raise(rb_eIOError, errmsg, "%s");
             break;
         case MS_MEMERR:
-            rb_raise(rb_eNoMemError, errmsg);
+            rb_raise(rb_eNoMemError, errmsg, "%s");
             break;
         case MS_TYPEERR:
-            rb_raise(rb_eTypeError, errmsg);
+            rb_raise(rb_eTypeError, errmsg, "%s");
             break;
         case MS_EOFERR:
-            rb_raise(rb_eEOFError, errmsg);
+            rb_raise(rb_eEOFError, errmsg, "%s");
             break;
         case MS_CHILDERR:
-            rb_raise(MSExc_MapServerChildError, errmsg);
+            rb_raise(MSExc_MapServerChildError, errmsg, "%s");
             break;
         default:
-            rb_raise(MSExc_MapServerError, errmsg);
+            rb_raise(MSExc_MapServerError, errmsg, "%s");
             break;
     }
 
diff --git a/mapserver-config-version.cmake.in b/mapserver-config-version.cmake.in
new file mode 100644
index 0000000..251e401
--- /dev/null
+++ b/mapserver-config-version.cmake.in
@@ -0,0 +1,11 @@
+set(PACKAGE_VERSION "@MapServer_VERSION_STRING@")
+
+# Check whether the requested PACKAGE_FIND_VERSION is compatible
+if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
+  set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+  set(PACKAGE_VERSION_COMPATIBLE TRUE)
+  if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
+    set(PACKAGE_VERSION_EXACT TRUE)
+  endif()
+endif()
diff --git a/mapserver-config.cmake.in b/mapserver-config.cmake.in
new file mode 100644
index 0000000..91828d8
--- /dev/null
+++ b/mapserver-config.cmake.in
@@ -0,0 +1,18 @@
+# - Config file for the mapserver package
+# It defines the following variables
+#  MAPSERVER_INCLUDE_DIRS - include directories for mapserver
+#  MAPSERVER_LIBRARIES    - libraries to link against
+#  MAPSERVER_EXECUTABLES  - executables build for mapserver
+
+# Compute paths
+get_filename_component(MAPSERVER_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+set(MAPSERVER_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")
+
+# Our library dependencies (contains definitions for IMPORTED targets)
+if(NOT TARGET mapserver AND NOT MapServer_BINARY_DIR)
+  include("${MAPSERVER_CMAKE_DIR}/mapserverTargets.cmake")
+endif()
+
+# These are IMPORTED targets created by mapserverTargets.cmake
+set(MAPSERVER_LIBRARIES mapserver)
+set(MAPSERVER_EXECUTABLES sortshp shptree shptreevis msencrypt legend scalebar tile4ms shptreetst shp2img mapserv)
diff --git a/mapshape.c b/mapshape.c
index 75ab867..f1f71a5 100644
--- a/mapshape.c
+++ b/mapshape.c
@@ -268,6 +268,7 @@ SHPHandle msSHPOpen( const char * pszLayer, const char * pszAccess )
     psSHP->fpSHX = fopen(pszFullname, pszAccess );
   }
   if( psSHP->fpSHX == NULL ) {
+    fclose(psSHP->fpSHP);
     msFree(pszBasename);
     msFree(pszFullname);
     msFree(psSHP);
diff --git a/mapstring.c b/mapstring.c
index bc3a49d..122f4cd 100644
--- a/mapstring.c
+++ b/mapstring.c
@@ -135,7 +135,7 @@ char *strrstr(char *string, char *find)
  * Appends src to string dst of size siz (unlike strncat, siz is the
  * full size of dst, not space left).  At most siz-1 characters
  * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).
- * Returns strlen(src) + MIN(siz, strlen(initial dst)).
+ * Returns strlen(src) + MS_MIN(siz, strlen(initial dst)).
  * If retval >= siz, truncation occurred.
  */
 size_t strlcat(char *dst, const char *src, size_t siz)
@@ -1135,9 +1135,7 @@ char *msEncodeUrlExcept(const char *data, const char except)
   code = (char*)msSmallMalloc(strlen(data)+inc+1);
 
   for (j=code, i=data; *i!='\0'; i++, j++) {
-    if (*i == ' ')
-      *j = '+';
-    else if ( except != '\0' && *i == except ) {
+    if ( except != '\0' && *i == except ) {
       *j = except;
     } else if (msEncodeChar(*i)) {
       ch = *i;
@@ -2198,7 +2196,6 @@ int msLayerEncodeShapeAttributes( layerObj *layer, shapeObj *shape) {
   char *outp, *out = NULL;
   size_t len, bufsize, bufleft, iconv_status;
   int i;
-#endif
 
   if( !layer->encoding || !*layer->encoding || !strcasecmp(layer->encoding, "UTF-8"))
     return MS_SUCCESS;
@@ -2210,7 +2207,6 @@ int msLayerEncodeShapeAttributes( layerObj *layer, shapeObj *shape) {
     return MS_FAILURE;
   }
 
-#ifdef USE_ICONV
   for(i=0;i <shape->numvalues; i++) {
     if(!shape->values[i] || (len = strlen(shape->values[i]))==0) {
       continue;    /* Nothing to do */
@@ -2241,6 +2237,8 @@ int msLayerEncodeShapeAttributes( layerObj *layer, shapeObj *shape) {
 
   return MS_SUCCESS;
 #else
+  if( !layer->encoding || !*layer->encoding || !strcasecmp(layer->encoding, "UTF-8"))
+    return MS_SUCCESS;
   msSetError(MS_MISCERR, "Not implemented since Iconv is not enabled.", "msGetEncodedString()");
   return MS_FAILURE;
 #endif
diff --git a/maptemplate.c b/maptemplate.c
index 6488292..d091bdf 100644
--- a/maptemplate.c
+++ b/maptemplate.c
@@ -1951,13 +1951,11 @@ static int processShpxyTag(layerObj *layer, char **line, shapeObj *shape)
 
   double scale_x, scale_y;
 
-
   char *projectionString=NULL;
 
   shapeObj tShape;
   char *coords=NULL, point[128];
 
-
   if(!*line) {
     msSetError(MS_WEBERR, "Invalid line pointer.", "processShpxyTag()");
     return(MS_FAILURE);
@@ -2059,7 +2057,6 @@ static int processShpxyTag(layerObj *layer, char **line, shapeObj *shape)
       if(argValue)
         if(strcasecmp(argValue,"true") == 0) centroid = MS_TRUE;
 
-
       argValue = msLookupHashTable(tagArgs, "proj");
       if(argValue) projectionString = argValue;
     }
@@ -2121,9 +2118,7 @@ static int processShpxyTag(layerObj *layer, char **line, shapeObj *shape)
 
       switch(tShape.type) {
         case(MS_SHAPE_POINT):
-          /* at this point we only convert the first point of the first shape */
-          tShape.line[0].point[0].x = MS_MAP2IMAGE_X(tShape.line[0].point[0].x, layer->map->extent.minx, layer->map->cellsize);
-          tShape.line[0].point[0].y = MS_MAP2IMAGE_Y(tShape.line[0].point[0].y, layer->map->extent.maxy, layer->map->cellsize);
+          /* no clipping necessary */
           break;
         case(MS_SHAPE_LINE):
           msClipPolylineRect(&tShape, layer->map->extent);
diff --git a/mapthread.c b/mapthread.c
index 28bd708..f537fcd 100644
--- a/mapthread.c
+++ b/mapthread.c
@@ -188,7 +188,7 @@ void msThreadInit()
 void* msGetThreadId()
 
 {
-  return pthread_self();
+  return (void*) pthread_self();
 }
 
 /************************************************************************/
diff --git a/maptime.c b/maptime.c
index 7e435ba..a02ec6a 100644
--- a/maptime.c
+++ b/maptime.c
@@ -443,6 +443,10 @@ int msValidateTimeValue(const char *timestring, const char *timeextent)
   if (!timestring || !timeextent)
     return MS_FALSE;
 
+  /* To avoid SQL injections */
+  if (strchr(timestring, '\''))
+    return MS_FALSE;
+
   /* parse the time string. We support descrete times (eg 2004-09-21), */
   /* multiple times (2004-09-21, 2004-09-22, ...) */
   /* and range(s) (2004-09-21/2004-09-25, 2004-09-27/2004-09-29) */
diff --git a/maputil.c b/maputil.c
index e00681b..4c720d0 100644
--- a/maputil.c
+++ b/maputil.c
@@ -485,9 +485,10 @@ int msEvalExpression(layerObj *layer, shapeObj *shape, expressionObj *expression
       }
       {
         char *start,*end;
+        int value_len = strlen(shape->values[itemindex]);
         start = expression->string;
         while((end = strchr(start,',')) != NULL) {
-          if(!strncmp(start,shape->values[itemindex],end-start)) return MS_TRUE;
+          if(value_len == end-start && !strncmp(start,shape->values[itemindex],end-start)) return MS_TRUE;
           start = end+1;
         }
         if(!strcmp(start,shape->values[itemindex])) return MS_TRUE;
@@ -1711,12 +1712,13 @@ static pointObj point_norm(const pointObj a)
 {
   double lenmul;
   pointObj retv;
+  int norm_vector;
 
+  norm_vector = a.x==0 && a.y==0;
 #ifdef USE_POINT_Z_M
-  if (a.x==0 && a.y==0 && a.z==0 && a.m==0)
-#else
-  if (a.x==0 && a.y==0)
+  norm_vector = norm_vector && a.z==0 && a.m==0;
 #endif
+  if (norm_vector)
     return a;
 
   lenmul=1.0/sqrt(point_abs2(a));  /* this seems to be the costly operation */
diff --git a/mapuvraster.c b/mapuvraster.c
index 6cbfd33..52d92a5 100644
--- a/mapuvraster.c
+++ b/mapuvraster.c
@@ -91,6 +91,7 @@ static int msUVRASTERLayerInitItemInfo(layerObj *layer)
   uvRasterLayerInfo *uvlinfo = (uvRasterLayerInfo *) layer->layerinfo;
   int   i;
   int *itemindexes;
+  int failed=0;
 
   if (layer->numitems == 0)
     return MS_SUCCESS;
@@ -115,7 +116,7 @@ static int msUVRASTERLayerInitItemInfo(layerObj *layer)
     /* OGR style strings.  We use special attribute snames. */
     if (EQUAL(layer->items[i], MSUVRASTER_ANGLE))
       itemindexes[i] = MSUVRASTER_ANGLEINDEX;
-    if (EQUAL(layer->items[i], MSUVRASTER_MINUS_ANGLE))
+    else if (EQUAL(layer->items[i], MSUVRASTER_MINUS_ANGLE))
       itemindexes[i] = MSUVRASTER_MINUSANGLEINDEX;
     else if (EQUAL(layer->items[i], MSUVRASTER_LENGTH))
       itemindexes[i] = MSUVRASTER_LENGTHINDEX;
@@ -125,17 +126,17 @@ static int msUVRASTERLayerInitItemInfo(layerObj *layer)
       itemindexes[i] = MSUVRASTER_UINDEX;
     else if (EQUAL(layer->items[i], MSUVRASTER_V))
       itemindexes[i] = MSUVRASTER_VINDEX;
-
-    if(itemindexes[i] == -1) {
+    else {
+      itemindexes[i] = -1;
       msSetError(MS_OGRERR,
                  "Invalid Field name: %s",
                  "msUVRASTERLayerInitItemInfo()",
                  layer->items[i]);
-      return(MS_FAILURE);
+      failed=1;
     }
   }
 
-  return(MS_SUCCESS);
+  return failed ? (MS_FAILURE) : (MS_SUCCESS);
 }
 
 
@@ -234,7 +235,7 @@ int msUVRASTERLayerClose(layerObj *layer)
   if( uvlinfo != NULL ) {
     uvlinfo->refcount--;
 
-    if( uvlinfo->refcount < 0 )
+    if( uvlinfo->refcount < 1 )
       msUVRasterLayerInfoFree( layer );
   }
   return MS_SUCCESS;
@@ -278,9 +279,11 @@ static char **msUVRASTERGetValues(layerObj *layer, float *u, float *v)
   if(layer->numitems == 0)
     return(NULL);
 
-  if(!layer->iteminfo)  /* Should not happen... but just in case! */
+  if(!layer->iteminfo) { /* Should not happen... but just in case! */
     if (msUVRASTERLayerInitItemInfo(layer) != MS_SUCCESS)
       return NULL;
+    itemindexes = (int*)layer->iteminfo; /* reassign after malloc */
+  }
 
   if((values = (char **)malloc(sizeof(char *)*layer->numitems)) == NULL) {
     msSetError(MS_MEMERR, NULL, "msUVRASTERGetValues()");
@@ -323,7 +326,9 @@ static char **msUVRASTERGetValues(layerObj *layer, float *u, float *v)
     } else if (itemindexes[i] == MSUVRASTER_VINDEX) {
       snprintf(tmp, 100, "%f",*v);
       values[i] = msStrdup(tmp);
-    }
+    } else {
+      values[i] = NULL;
+      }
   }
 
   return values;
@@ -456,6 +461,13 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
   if (msDrawRasterLayerLow(map_tmp, layer, image_tmp, NULL ) == MS_FAILURE) {
     msSetError(MS_MISCERR, "Unable to draw raster data.", "msUVRASTERLayerWhichShapes()");
     layer->mask = saved_layer_mask;
+
+    if (alteredProcessing != NULL) {
+      layer->processing = savedProcessing;
+      CSLDestroy(alteredProcessing);
+    }
+    msFreeMap(map_tmp);
+    msFreeImage(image_tmp);
     return MS_FAILURE;
   }
 
@@ -477,7 +489,7 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
   }
 
   if (uvlinfo->v) {
-    for (i=0; i<uvlinfo->height; ++i) {
+    for (i=0; i<uvlinfo->width; ++i) {
       free(uvlinfo->v[i]);
     }
     free(uvlinfo->v);
diff --git a/mapv8.cpp b/mapv8.cpp
index c3b5244..01b5d9a 100644
--- a/mapv8.cpp
+++ b/mapv8.cpp
@@ -92,6 +92,8 @@ static Handle<Value> msV8ReadFile(V8Context *v8context, const char *path)
   for (int i = 0; i < size;) {
     int read = static_cast<int>(fread(&chars[i], 1, size - i, file));
     if (read == 0) {
+      delete [] chars;
+      fclose(file);
       msDebug("msV8ReadFile: error while reading file '%s'\n", path);
       return Undefined();
     }
diff --git a/mapwcs20.c b/mapwcs20.c
index ac2fb89..266a07d 100644
--- a/mapwcs20.c
+++ b/mapwcs20.c
@@ -700,6 +700,7 @@ static int msWCSParseScaleExtentString20(char *string, char *outAxis,
   return MS_SUCCESS;
 }
 
+#if defined(USE_LIBXML2)
 /*
   Utility function to get the first child of a node with a given node name
   */
@@ -739,6 +740,7 @@ xmlNodePtr msLibXml2GetFirstChildNs(xmlNodePtr parent, const char *name, xmlNsPt
   }
   return NULL;
 }
+#endif /* defined(USE_LIBXML2) */
 
 /************************************************************************/
 /*                   msWCSParseRequest20_XMLGetCapabilities()           */
@@ -3982,10 +3984,10 @@ static int msWCSSetFormatParams20(outputFormatObj* format, char** format_options
     else if (EQUAL(key, "geotiff:tiling") && is_geotiff) {
       /* TILED=YES */
       if (EQUAL(value, "true")) {
-        msSetOutputFormatOption(format, "TILING", "YES");
+        msSetOutputFormatOption(format, "TILED", "YES");
       }
       else if (EQUAL(value, "false")) {
-        msSetOutputFormatOption(format, "TILING", "NO");
+        msSetOutputFormatOption(format, "TILED", "NO");
       }
       else {
         msSetError(MS_WCSERR, "Invalid boolean value '%s'.",
@@ -4187,8 +4189,8 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
             + (orig_bbox.maxx+1) * cm.geotransform[1]
             + (orig_bbox.maxy+1) * cm.geotransform[2];
 
-      subsets.minx = MIN(x_1, x_2);
-      subsets.maxx = MAX(x_1, x_2);
+      subsets.minx = MS_MIN(x_1, x_2);
+      subsets.maxx = MS_MAX(x_1, x_2);
     }
     if(subsets.miny != -DBL_MAX || subsets.maxy != DBL_MAX) {
       y_1 = cm.geotransform[3]
@@ -4199,8 +4201,8 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
             + orig_bbox.minx * cm.geotransform[4]
             + orig_bbox.miny * cm.geotransform[5];
 
-      subsets.miny = MIN(y_1, y_2);
-      subsets.maxy = MAX(y_1, y_2);
+      subsets.miny = MS_MIN(y_1, y_2);
+      subsets.maxy = MS_MAX(y_1, y_2);
     }
   } else { /* if crs is not the 'imageCRS' */
     projectionObj subsetProj;
@@ -4239,10 +4241,10 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
   }
 
   /* write combined bounding box */
-  bbox.minx = MAX(subsets.minx, map->extent.minx);
-  bbox.miny = MAX(subsets.miny, map->extent.miny);
-  bbox.maxx = MIN(subsets.maxx, map->extent.maxx);
-  bbox.maxy = MIN(subsets.maxy, map->extent.maxy);
+  bbox.minx = MS_MAX(subsets.minx, map->extent.minx);
+  bbox.miny = MS_MAX(subsets.miny, map->extent.miny);
+  bbox.maxx = MS_MIN(subsets.maxx, map->extent.maxx);
+  bbox.maxy = MS_MIN(subsets.maxy, map->extent.maxy);
 
   /* check if we are overspecified  */
   if ((params->width != 0 &&  params->resolutionX != MS_WCS20_UNBOUNDED)
@@ -4618,10 +4620,10 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
     tmpCm.xresolution = map->gt.geotransform[1];
     tmpCm.yresolution = map->gt.geotransform[5];
 
-    tmpCm.extent.minx = MIN(map->gt.geotransform[0], map->gt.geotransform[0] + map->width * tmpCm.xresolution);
-    tmpCm.extent.miny = MIN(map->gt.geotransform[3], map->gt.geotransform[3] + map->height * tmpCm.yresolution);
-    tmpCm.extent.maxx = MAX(map->gt.geotransform[0], map->gt.geotransform[0] + map->width * tmpCm.xresolution);
-    tmpCm.extent.maxy = MAX(map->gt.geotransform[3], map->gt.geotransform[3] + map->height * tmpCm.yresolution);
+    tmpCm.extent.minx = MS_MIN(map->gt.geotransform[0], map->gt.geotransform[0] + map->width * tmpCm.xresolution);
+    tmpCm.extent.miny = MS_MIN(map->gt.geotransform[3], map->gt.geotransform[3] + map->height * tmpCm.yresolution);
+    tmpCm.extent.maxx = MS_MAX(map->gt.geotransform[0], map->gt.geotransform[0] + map->width * tmpCm.xresolution);
+    tmpCm.extent.maxy = MS_MAX(map->gt.geotransform[3], map->gt.geotransform[3] + map->height * tmpCm.yresolution);
 
     swapAxes = msWCSSwapAxes20(srs_uri);
     msFree(srs_uri);
diff --git a/mapwfs.c b/mapwfs.c
index 3a52863..68dc8df 100644
--- a/mapwfs.c
+++ b/mapwfs.c
@@ -1025,6 +1025,8 @@ static const char* msWFSMapServTypeToXMLType(const char* type)
     /* Note : xs:int and xs:integer differ */
     else if ( EQUAL(type,"int") )
       element_type = "int";
+    if( strcasecmp(type,"Long") == 0 ) /* 64bit integer */
+      element_type = "long";
     else if( EQUAL(type,"Real") ||
              EQUAL(type,"double") /* just in case someone provided the xsd type directly */ )
       element_type = "double";
diff --git a/mapwms.c b/mapwms.c
index 578c71e..6dc4ebf 100644
--- a/mapwms.c
+++ b/mapwms.c
@@ -333,7 +333,7 @@ void msWMSPrepareNestedGroups(mapObj* map, int nVersion, char*** nestedGroups, i
   //Create array to hold unique groups
   int maxgroups = 2000;
   int maxgroupiter = 1;
-  char** uniqgroups = malloc(maxgroups * sizeof(char*));
+  char** uniqgroups = msSmallMalloc(maxgroups * sizeof(char*));
   int uniqgroupcount = 0;
   
 
@@ -391,6 +391,9 @@ void msWMSPrepareNestedGroups(mapObj* map, int nVersion, char*** nestedGroups, i
         }
      }
   }
+
+  /* free uniqgroups */
+  free(uniqgroups);
 }
 
 
@@ -682,6 +685,7 @@ int msWMSApplyDimensionLayer(layerObj *lp, const char *item, char *value, int fo
 {
   int result = MS_FALSE;
   char *pszExpression=NULL;
+  int tlpindex = -1;
 
   if (lp && item && value) {
     /*for the value, we support descrete values (2005) */
@@ -690,8 +694,17 @@ int msWMSApplyDimensionLayer(layerObj *lp, const char *item, char *value, int fo
     pszExpression = FLTGetExpressionForValuesRanges(lp, (char *)item, value,  forcecharcter);
 
     if (pszExpression) {
+      // If tileindex is set, the filter is applied to tileindex too.
+      if (lp->tileindex && (tlpindex = msGetLayerIndex(lp->map, lp->tileindex)) != -1) {
+          if(FLTApplyExpressionToLayer((GET_LAYER(lp->map, tlpindex)), pszExpression))
+            result = MS_TRUE;
+          else
+            result = MS_FALSE;
+      }
       if(FLTApplyExpressionToLayer(lp, pszExpression))
         result = MS_TRUE;
+      else
+        result = MS_FALSE;
       msFree(pszExpression);
     }
   }
diff --git a/mapwmslayer.c b/mapwmslayer.c
index 42a44f1..3e4747d 100644
--- a/mapwmslayer.c
+++ b/mapwmslayer.c
@@ -698,7 +698,7 @@ msBuildWMSLayerURL(mapObj *map, layerObj *lp, int nRequestType,
       else {
         double cellsize_x = (bbox.maxx-bbox.minx) / bbox_width;
         double cellsize_y = (bbox.maxy-bbox.miny) / bbox_height;
-        double cellsize = MIN(cellsize_x,cellsize_y);
+        double cellsize = MS_MIN(cellsize_x,cellsize_y);
 
         msRectIntersect( &bbox, &layer_rect );
 
diff --git a/nmake.opt b/nmake.opt
deleted file mode 100644
index e9501db..0000000
--- a/nmake.opt
+++ /dev/null
@@ -1,856 +0,0 @@
-########################################################################
-# nmake.opt - MapServer 4.x configuration for MSVC++
-########################################################################
-
-# This VC++ configuration is used in building MAPSERVER.LIB,
-# MAPSERVER_I.LIB MAPSERV.EXE, and the other
-# MapServer command-line programs.
-#
-# To use the makefile:
-#  - Open a DOS prompt window
-#  - Run the VCVARS32.BAT script to initialize the VC++ environment variables
-#  - Start the build with:  nmake /f makefile.vc
-#
-# $Id$
-#
-# Contents:
-#   Section I:   Mapserver Compilation Options
-#   Section II:  MapServer Rendering Options
-#   Section III: MapServer Data Input Options
-#   Section IV:  MapServer OGC Options
-#   Section V:   MapScript Configuration Options
-#   Section VI:  Support Libraries
-#   Section VII: Variable Setup
-#   Section VIII: UMN GIS System Support
-#   Section IX:  Collect compiler flags
-#
-# The easiest way to get going is to use MSVC 2003 and the MapServer
-# buildkit that is available at
-# http://mapserver.gis.umn.edu/docs/howto/buildkit
-# This will provide a full set of libraries to build MapServer will almost
-# all of its options enabled.  If you are building everything from
-# scratch, start by commenting out most of the options and adding them
-# in incrementally.
-
-
-########################################################################
-# Section I: Mapserver Compilation Options
-########################################################################
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Check for external options file to include
-# nmake -f makefile.vc EXT_NMAKE_OPT=mynmake.opt
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!IFDEF EXT_NMAKE_OPT
-!INCLUDE $(EXT_NMAKE_OPT)
-!ENDIF
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Uncomment the following if you are building for 64-bit windows
-# (x64). You'll need to have PATH, INCLUDE and LIB set up for 64-bit
-# compiles.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#WIN64=YES
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Check compiler version given in command line
-# nmake -f makefile.vc MSVC_VER=xxxx
-# 1310 = 7.1 (2003)   1400 = 8.0 (2005) 1500 = 9.0 (2008)
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!IFNDEF MSVC_VER
-#assume msvc 9.0
-MSVC_VER=1500
-!ENDIF
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# File locations and where to install things
-# ----------------------------------------------------------------------
-# If you are using the MapServer Build Kit, almost everything should be
-# relative to this directory throughout this option file.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-# Set the following to point to the directory adjacent to the dependent libs.
-!IFNDEF MS_BASE
-MS_BASE =   f:\projects\mapserver-buildkit-2008\mapserver
-!ENDIF
-
-# Set the following to point to the current (mapserver) directory.
-!IFNDEF MS_CURRENT
-MS_CURRENT = $(MS_BASE)
-!ENDIF
-
-!IFNDEF BINDIR
-BINDIR = $(MS_BASE)\..\bin
-!ENDIF
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Optmization, debug, and related compile flags.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-!IF $(MSVC_VER) >= 1400
-!IFNDEF MS_DEBUG
-# Optimized, with using MSVCRT.
-OPTFLAGS =	/nologo /Ox /MD $(WARNING_LEVEL) $(DEBUG) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
-!ELSE
-# Debug with MSVCRT
-OPTFLAGS = /nologo /Zi /MD $(WARNING_LEVEL) $(DEBUG) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
-#LDFLAGS =  /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcd /DEBUG
-!ENDIF
-!ELSE
-!IFNDEF MS_DEBUG
-# Optimized, with using MSVCRT.
-OPTFLAGS =	/nologo /Ox /MD $(WARNING_LEVEL) $(DEBUG) /EHsc
-!ELSE
-# Debug with MSVCRT
-OPTFLAGS = /nologo /Zi /MDd $(WARNING_LEVEL) $(DEBUG) /EHsc
-#LDFLAGS =  /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcd /DEBUG
-!ENDIF
-!ENDIF
-
-# Uncomment the following to link mapserv.exe with a dll.  In almost
-# all cases you will want to do this.
-DLLBUILD = 1
-
-# Set the Warning level for the compiler (defaults to W1)
-WARNING_LEVEL=/W4
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Debugging Options
-# ----------------------------------------------------------------------
-!IFDEF MS_DEBUG
-#NEED_NONBLOCKING_STDERR=-DNEED_NONBLOCKING_STDERR
-ENABLE_STDERR_DEBUG=-DENABLE_STDERR_DEBUG
-
-# Set the linker debug option
-LDEBUG=/debug
-
-# DEBUG Build flags
-# Set the DEBUG flag if you wish to make a debug build
-DEBUG=/DDEBUG
-!ENDIF
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# String methods
-# ----------------------------------------------------------------------
-# Apparently these aren't as commonplace. Edit the
-# following line to reflect the missing functions on your platform.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRDUP
-STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRLCAT -DNEED_STRRSTR -DNEED_STRCASESTR -DNEED_STRLCPY
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Threading
-# ----------------------------------------------------------------------
-# Enable if you want thread safe locking, not needed for simple CGI.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-THREADS=-DUSE_THREAD
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Ignoring Missing Data
-# ----------------------------------------------------------------------
-# If you want to ignore missing datafile errors uncomment the following
-# line. This is especially useful with large tiled datasets that may not
-# have complete data for each tile.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-IGNORE_MISSING_DATA=-DIGNORE_MISSING_DATA
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Measures and Z values
-# ----------------------------------------------------------------------
-# If you want to use shape Z and M parameter this option must be set.
-# It's OFF by default.
-#USE_POINT_Z_M=-DUSE_POINT_Z_M
-USE_POINT_Z_M=
-
-
-########################################################################
-# Section II: Mapserver Rendering Configuration
-########################################################################
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GD Library
-# ----------------------------------------------------------------------
-# Mapserver 4.x only supports GD 2.x and greater.
-# GD is a required support library for MapServer 4.x.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!IFNDEF GD_DIR
-GD_DIR=$(MS_BASE)\..\gd-2.0.35
-GD_LIB=$(GD_DIR)/gd.lib
-!ENDIF
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GD JPEG support
-# ----------------------------------------------------------------------
-# If you wish to allow JPEG output maps, uncomment the following flag.
-# If not using a GD build with an internal copy of libjpeg, you will
-# also need to uncomment JPEG_DIR and point to it; however, with BGD.DLL
-# this is normally not necessary.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-OUTPUT_JPEG=-DUSE_GD_JPEG
-JPEG_DIR=$(MS_BASE)\..\jpeg-6b
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GD PNG support
-# ----------------------------------------------------------------------
-# If you wish to allow PNG output maps, uncomment the following flag.
-# If not using a GD build with an internal copy of libpng, you will
-# also need to uncomment PNG_DIR and ZLIB_DIR and point to it;
-# however, with BGD.DLL this is normally not necessary.
-# See http://www.libpng.org/pub/png/libpng.html for support library.
-# See http://www.gzip.org/zlib/ for support library.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-OUTPUT_PNG=-DUSE_GD_PNG
-!IFNDEF PNG_DIR
-PNG_DIR=$(MS_BASE)\..\libpng-1.2.35
-!ENDIF
-ZLIB_DIR=$(MS_BASE)\..\zlib-1.2.3
-ZLIB_INC=-I$(ZLIB_DIR)
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GD GIF support
-# ----------------------------------------------------------------------
-# Historical defines to use GIF as a result of the old Unisys patent
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-OUTPUT_GIF=-DUSE_GD_GIF -DGD_HAS_GDIMAGEGIFPTR
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GD BMP support
-# ----------------------------------------------------------------------
-# If you wish to allow Windows BMP output maps,
-# uncomment the following flag.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-OUTPUT_WBMP=-DUSE_GD_WBMP
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GD Bitmap Font support
-# ----------------------------------------------------------------------
-# Bitmap font support (GD 2.0.22 and greater,
-# see Bug 969 for more details)
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-GD_HAS_GETBITMAPFONT=-DGD_HAS_GETBITMAPFONT
-
-
-# ----------------------------------------------------------------------
-# used for curved text (keyword FOLLOW for angle in label object)
-# GD version 2.0.29 or higher
-# ----------------------------------------------------------------------
-GD_HAS_FTEX_XSHOW=-DGD_HAS_FTEX_XSHOW
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GD Antialiasing support
-# ----------------------------------------------------------------------
-# If you want antialiasing (note that It requires gd2)
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-USE_GD_ANTIALIAS=-DUSE_GD_ANTIALIAS
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GD TrueType Font support
-# ----------------------------------------------------------------------
-# If you wish to annotate your maps with true type fonts unccomment the
-# following flag. Provide the full path to the FreeType 2.x external
-# support library, unless it is provided within your GD build as is the
-# case with BGD.DLL.
-# See http://www.freetype.org for support library.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-ANNOTATION_FT=-DUSE_GD_FT
-!IFNDEF FT_DIR
-FT_DIR=$(MS_BASE)\..\freetype-2.3.9
-!ENDIF
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Optional RGBA palette png output
-# ----------------------------------------------------------------------
-# Enable support for quantization of rgba pngs
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!IFDEF PNG_DIR
-RGBA_PNG_ENABLED=-DUSE_RGBA_PNG
-!ENDIF
-
-# If you wish to use AGG
-# The AGG (Ant-Grain Geometry) libraray http://www.antigrain.com/
-#is used in Mapserver to putput high class rendering
-#
-AGG=-DUSE_AGG
-EXPAT_DIR = $(MS_BASE)\..\expat-2.0.1
-
-# If you wish to use OpenGl
-#
-#OGL=-DUSE_OGL
-#FTGL_DIR=$(MS_BASE)\..\ftgl-2.1.3~rc5
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Cairo renderer support
-# ----------------------------------------------------------------------
-# Uncomment the following to build with cairo renderer support
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#CAIRO=-DUSE_CAIRO
-#CAIRO_DIR=$(MS_BASE)\..\cairo-thamas
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# PDF (Acrobat PDF support)
-# ----------------------------------------------------------------------
-# If you wish to have PDF output, uncomment the following flag and
-# provide the full path to the PDF support library project directory.
-# See http://www.pdflib.com/products/pdflib/download-source.html to
-# download the support library.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#PDF=-DUSE_PDF
-#PDF_DIR=$(MS_BASE)\..\PDFlib-Lite-7.0.4p1
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GEOS
-# ----------------------------------------------------------------------
-# GEOS provides support for spatial predicates and overlay/buffer
-# operations.  It can only be compiled on Windows with MSVC 7.0 or
-# greater (or the cygwin/mingw stack).
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#GEOS=-DUSE_GEOS
-#GEOS_DIR=$(MS_BASE)\..\geos-06232009
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# ZLIB
-# ----------------------------------------------------------------------
-# ZLIB is required for PNG and for SVG support to allow the output of
-# compressed files.  If -DUSE_ZLIB is defined, you essentially have all
-# you need for SVG output support
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-ZLIB=-DUSE_ZLIB
-ZLIB_DIR=$(MS_BASE)\..\zlib-1.2.3
-ZLIB_INC=-I$(ZLIB_DIR)
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# ICONV
-# ----------------------------------------------------------------------
-#libiconv support is used for to support double bytes (see bug 911).
-#uncomment the following to build with libiconv support.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#ICONV=-DUSE_ICONV
-#ICONV_DIR=$(MS_BASE)\..\libiconv-1.9.1
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GIFLIB
-# ----------------------------------------------------------------------
-# Uncomment the following to build with giflib support
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#GIF=-DUSE_GIF
-#GIFLIB_DIR=$(MS_BASE)\..\giflib-4.1.4
-#GIFLIB_INC=-I$(GIFLIB_DIR)\include
-
-
-########################################################################
-# Section III: Mapserver Data Input Configuration
-########################################################################
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# GDAL
-# ----------------------------------------------------------------------
-# The lite version of mapserver 4.x supports only GIF, PNG and JPEG data
-# for input. If you wish to support many geospatial raster formats
-# for input you will need the GDAL support library from
-# http://www.gdal.org/.  Once built, enable the GDAL flag, and point
-# GDAL_DIR to the directory where GDAL was built.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#GDAL=-DUSE_GDAL
-#GDAL_DIR=$(MS_BASE)\..\gdal_1_7_0
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# OGR
-# ----------------------------------------------------------------------
-# The OGR library (part of GDAL) supports a variety of geospatial vector
-# formats including mapinfo, Arc/Info binary coverages, S-57, SDTS,
-# Microstation DGN (pre-v7), TIGER, UK .NTF.  It also include support
-# for treating non-spatial tablular data from ODBC, CSV, MySQL,
-# Oracle Spatial, and PostgreSQL as spatial table with use of the
-# VRT (virtual) driver.
-#
-# NOTE: Both -DUSE_OGR and -DUSE_GDAL need to be defined if you
-# want to use GDAL/OGR for both raster and vector support, but GDAL_DIR
-# needs only be defined once.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#OGR=-DUSE_OGR
-#GDAL_DIR=$(MS_BASE)\..\gdal_1_7_0
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# JPEG Input
-# ----------------------------------------------------------------------
-# JPEG input for raster layers is also available through GDAL, If you wish
-# to build support for JPEG without GDAL, uncomment the following flag
-# and provide the full path to the jpeg support library project directory.
-# See http://www.ijg.org/ for support library.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-JPEG=-DUSE_JPEG
-JPEG_DIR=$(MS_BASE)\..\jpeg-6b
-JPEG_INC = -I$(JPEG_DIR)
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Direct connectivity to Postgresql PostGIS.
-# ----------------------------------------------------------------------
-# To turn on direct connectivity to Postgresql PostGIS uncomment the following
-# flag and set the full path name to the project directory for the
-# Postgresql native Win32 client library.
-# See http://www.postgresql.org for support library.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#POSTGIS =-DUSE_POSTGIS
-#POSTGIS_DIR =$(MS_BASE)\..\postgresql-8.3.7
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Direct connectivity to Oracle Spatial.
-# ----------------------------------------------------------------------
-# Point this to where your ORACLE_HOME directory lives.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#ORACLE_DIR = $(MS_BASE)\..\oracle-11.1.0.7.0
-#ORACLE=-DUSE_ORACLESPATIAL
-#ORACLE=-DUSE_ORACLE_PLUGIN
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Direct connectivity to SQL Server
-# ----------------------------------------------------------------------
-# To turn on direct connectivity to SQL Server uncomment the following
-# flag. You then need to set the ODBC_INC path later as well to the
-# Windows SDK include path.  The SQL Server 2008 driver can only be
-# built and used as a plugin.  See RFC 38 for more details.  The ODBC
-# libs and includes must be set to be able to build the plugin.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-#MSSQL2008 = YES
-#ODBC_DIR="C:\progra~1\micros~1.net\vc7\platformsdk"
-#ODBC_DIR="C:\Program Files\Microsoft SDKs\Windows\v6.0A"
-#ODBC_LIBS=$(ODBC_DIR)\lib\odbc32.lib $(ODBC_DIR)\lib\odbccp32.lib $(ODBC_DIR)\lib\user32.lib
-#ODBC_INC=-I$(ODBC_DIR)\include
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# EPPL7 Support
-# ----------------------------------------------------------------------
-# This activates ERDAS as well. It is included in the distribution.
-# Probably the best raster alternative if you've got EPPL7 laying
-# around. See http://www.lmic.state.mn.us/ for more information.
-# Uncomment out the following flag and set the full path name to the
-# epplib.obj file.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#EPPL=-DUSE_EPPL
-#EPPL_OBJ=c:/my_path/epplib.obj
-
-
-# ----------------------------------------------------------------------
-# Use of fribidi
-# GNU FriBidi is an implementation of the Unicode Bidirectional Algorithm (bidi).
-# http://fribidi.freedesktop.org/wiki/
-# Unncomment out the following flags to build with fribidi
-#---------------------------------------------------------------------
-#FRIBIDI=-DUSE_FRIBIDI
-#FRIBIDI_DIR=$(MS_BASE)\..\fribidi-0.19.1
-
-# ----------------------------------------------------------------------
-# Enable KML support
-#----------------------------------------------------------------------
-#KML=-DUSE_KML
-
-########################################################################
-# Section IV: Mapserver OGC Configuration
-########################################################################
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# WMS Server
-# ----------------------------------------------------------------------
-#WMS=-DUSE_WMS_SVR
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# WMS Client
-# ----------------------------------------------------------------------
-# Use this flag to compile with WMS Client support. WMS Client support
-# allows you to pull layers from other OGIS WMS servers on the interent and
-# incorporate them into your map.
-# To find out more about the OpenGIS Web Map Server Specification go to
-# http://www.opengis.org/
-# you need the libcurl library from http://curl.haxx.se/library/c/
-# Set the full path to the curl project directory.
-# You may also need to the full path to the windows socket library.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#WMSCLIENT= -DUSE_WMS_LYR
-#CURL=-DUSE_CURL 
-#CURL_DIR=$(MS_BASE)\..\curl-7.19.4
-#WINSOCK_LIB ="C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib\WS2_32.Lib"
-#WINSOCK_LIB ="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\WS2_32.Lib"
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# WFS Client
-# ----------------------------------------------------------------------
-# Use -DUSE_WFS_LYR to compile with WFS client support, requires libcurl
-#WFSCLIENT= -DUSE_WFS_LYR
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# WFS Server
-# ----------------------------------------------------------------------
-# Use -DUSE_WFS_SVR to compile with WFS server
-# support, requires OGR and PROJ4
-#WFS=-DUSE_WFS_SVR -DWFS_USE_LIBXML2
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# WCS Server
-# ----------------------------------------------------------------------
-# Use -DUSE_WCS_SVR to compile with WCS server support, requires GDAL.
-#WCS=-DUSE_WCS_SVR
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# OGC SOS
-# ----------------------------------------------------------------------
-# Use -DUSE_OGC_SOS to compile with SOS, needs USE_WMS_SVR or
-#USE_WFS_SVR enabled so the the gml functions to be enabled
-#It also needs ICONV support since the libxml windows binaries
-#are built with it
-#http://xmlsoft.org/index.html
-#SOS=-DUSE_SOS_SVR
-#XML2_ENABLED=-DUSE_LIBXML2
-#LIBXML_DIR=$(MS_BASE)\..\libxml2-2.7.3.win32
-
-
-########################################################################
-# Section V: MapScript Configuration Options.
-########################################################################
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# SWIG location
-# ----------------------------------------------------------------------
-# SWIG is required to *generate* the C/C++ code that creates the
-# bindings to various languages.  You can download a pre-built binary
-# for SWIG at http://www.swig.org.  NOTE: The PHP bindings are *not*
-# generated with SWIG at this time.  If you use this makefile to
-# make any MapScript bindings, eg. "nmake /f makefile.vc python", you
-# will need to have SWIG installed.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#SWIG = $(MS_BASE)\..\SWIG-1.3.39\swig
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Java MapScript
-# ----------------------------------------------------------------------
-# Java MapScript very likely requires USE_THREAD to be defined.  It is
-# known to work with both JDK 1.5 and JDK 1.4
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#JAVA_HOME = "C:\Progra~1\Java\jdk1.5.0"
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Python MapScript
-# ----------------------------------------------------------------------
-# Python MapScript very likely requires USE_THREAD to be defined.
-# Python 2.2 and above are supported.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#PYTHON_HOME = "$(MS_BASE)\..\Python-2.6.2"
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# PHP MapScript
-# ----------------------------------------------------------------------
-# The PHP_REGEX hack allows you to use PHP's regex system rather than
-# the normal GNU regex library.  This should normally not be needed.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#PHP_HOME = $(MS_BASE)\..\php-5.3.1
-#PHP_REGEX=1
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# .NET/C# MapScript
-# ----------------------------------------------------------------------
-# .NET will of course only work with MSVC 7.0 and 7.1.  Also note that
-# you will definitely want USE_THREAD defined.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#DOT_NET = YES
-
-
-
-########################################################################
-# Section VI: Support Libraries.
-########################################################################
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Proj.4
-# ----------------------------------------------------------------------
-# If you would like mapserver to be able to reproject data from one
-# geographic projection to another, uncomment the following flag
-# Proj.4 distribution (cartographic projection routines).  PROJ.4 is
-# also required for all OGC services (WMS, WFS, and WCS).
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#PROJ=-DUSE_PROJ -DUSE_PROJ_API_H
-#PROJ_DIR=$(MS_BASE)\..\proj-svn-04222009
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# REGEX Libary
-# ----------------------------------------------------------------------
-# VC++ does not include the REGEX library... so we must provide our one.
-# The following definitions will try to build GNU regex-0.12 located in the
-# regex-0.12 sub-directory.
-# If it was not included in the source distribution, then you can get it from:
-#    ftp://ftp.gnu.org/pub/gnu/regex/regex-0.12.tar.gz
-# Provide the full path to the REGEX project directory
-# You do not need this library if you are compiling for PHP mapscript.
-# In that case the PHP regex library will be used instead
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!IFNDEF PHP_REGEX
-!IFNDEF REGEX_DIR
-REGEX_DIR=$(MS_BASE)\..\regex-0.12
-!ENDIF
-!ENDIF
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# FastCGI Support
-# ----------------------------------------------------------------------
-# Uncomment, and update accordingly.
-#FCGIDEF=-DUSE_FASTCGI
-#FCGIDIR=$(MS_BASE)\..\fcgi-2.4.0
-
-
-########################################################################
-# Section VII: Variable Setup
-########################################################################
-# Should not need to be updated.
-########################################################################
-
-MS_LIB =    mapserver.lib
-MS_LIB_DLL  =   mapserver_i.lib
-
-# Proj.4 include and library
-!IFDEF PROJ_DIR
-PROJ_INC=-I$(PROJ_DIR)/src
-PROJ_LIB=$(PROJ_DIR)/src/proj_i.lib
-!ENDIF
-
-# CURL include and library
-!IFDEF WMSCLIENT
-CURL_INC = -I$(CURL_DIR)/include
-CURL_LIB = $(CURL_DIR)/lib/libcurl_imp.lib
-!ENDIF
-
-# LIBXML include and library
-!IFDEF SOS
-LIBXML_INC = -I$(LIBXML_DIR)/include
-LIBXML_LIB = $(LIBXML_DIR)/lib/libxml2.lib
-!ENDIF
-
-# Set the jpeg library
-!IFDEF JPEG_DIR
-JPEG_LIB=$(JPEG_DIR)/libjpeg.lib
-!ENDIF
-
-# Set the png support libaries
-!IFDEF PNG_DIR
-!IFNDEF PNG_LIB
-PNG_LIB=$(PNG_DIR)\projects\visualc71\Win32_LIB_Release\libpng.lib $(ZLIB_DIR)/zlib1.lib
-!ENDIF
-PNG_INC=-I$(PNG_DIR)
-!ENDIF
-
-!IFDEF GEOS_DIR
-GEOS_LIB=$(GEOS_DIR)/source/geos_c_i.lib
-GEOS_INC=-I$(GEOS_DIR)/source/headers -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/capi
-!ENDIF
-
-# Set the FreeType library
-!IFDEF FT_DIR
-!IFNDEF FT_LIB
-FT_LIB=$(FT_DIR)/objs/win32/vc2008/freetype239.lib
-!ENDIF
-!ENDIF
-
-# GD include and library
-GD_INC= -I$(GD_DIR)
-GD_LIBS= $(GD_LIB) $(JPEG_LIB) $(PNG_LIB) $(FT_LIB)
-GD= -DUSE_GD $(OUTPUT_PNG) $(OUTPUT_JPEG) $(OUTPUT_WBMP) $(OUTPUT_GIF) $(ANNOTATION_FT) $(GD_HAS_GETBITMAPFONT) $(GD_HAS_FTEX_XSHOW)
-
-# Tiff library on input
-!IFDEF TIFF
-TIFF_INC=-I$(TIFF_DIR)/libtiff
-TIFF_LIB=$(TIFF_DIR)/libtiff/libtiff.lib
-!ENDIF
-
-# JPEG library on input
-!IFDEF JPEG_DIR
-JPEG_LIB=$(JPEG_DIR)/libjpeg.lib
-!ENDIF
-
-# Setup GDAL includes and libraries
-!IFDEF GDAL
-GDAL_INC = -I$(GDAL_DIR)/gcore -I$(GDAL_DIR)/alg -I$(GDAL_DIR)/ogr -I$(GDAL_DIR)/port
-GDAL_LIB = $(GDAL_DIR)/gdal_i.lib
-!ENDIF
-
-# Setup OGR includes and libraries
-!IFDEF OGR
-OGR_INC = -I$(GDAL_DIR)/ogr/ogrsf_frmts -I$(GDAL_DIR)/ogr -I$(GDAL_DIR)/port
-OGR_LIB = $(GDAL_DIR)/gdal_i.lib
-!ENDIF
-
-# Setup REGEX object and includes
-!IFNDEF PHP_REGEX
-REGEX_OBJ=$(REGEX_DIR)\regex.obj
-REGEX_INC=-I$(REGEX_DIR)
-!ELSE
-REGEX_OBJ=$(PHP_HOME)\ext\ereg\regex\regcomp.obj $(PHP_HOME)\ext\ereg\regex\regerror.obj \
-          $(PHP_HOME)\ext\ereg\regex\regexec.obj $(PHP_HOME)\ext\ereg\regex\regfree.obj
-REGEX_INC=-I$(PHP_HOME)/ext/ereg/regex -DPHP_NO_ALIASES
-!ENDIF
-
-# REGEX needs some special flags... here they are for VC++ 6.0
-REGEX_OPT=-DHAVE_STRING_H -DREGEX_MALLOC
-
-# Setup Postgesql PostGIS includes and libs
-!IFDEF POSTGIS
-!IFNDEF PHP_BUILD_CALL
-# If we're building PHP MapScript, there is a macro conflict
-POSTGIS_INC=-I$(POSTGIS_DIR)/src/interfaces/libpq -I$(POSTGIS_DIR)/src/include
-!ENDIF
-POSTGIS_LIB=$(POSTGIS_DIR)/src/interfaces/libpq/release/libpqdll.lib
-!ENDIF
-
-# Setup OGL
-!IFDEF OGL
-OGL_INC= -I$(FTGL_DIR)\src
-OGL_LIB= $(FTGL_DIR)\msvc\build\ftgl_static.lib opengl32.lib glu32.lib user32.lib gdi32.lib
-!ENDIF
-
-# Setup CAIRO
-!IFDEF CAIRO
-CAIRO_INC= -I$(CAIRO_DIR)\src
-CAIRO_LIB= $(CAIRO_DIR)\src\cairo.lib
-!ENDIF
-
-# Setup EXPAT
-!IFDEF EXPAT_DIR
-EXPAT_INC = -I$(EXPAT_DIR)\source\lib
-EXPAT_LIB = $(EXPAT_DIR)\bin\libexpat.lib
-!ENDIF
-
-
-# Set the GIFLIB library
-!IFDEF GIFLIB_DIR
-GIFLIB_LIB=$(GIFLIB_DIR)\lib\giflib.lib
-!ENDIF
-
-# Setup AGG
-!IFDEF AGG
-AGG_INC=-I$(FT_DIR)\include -Irenderers\agg\include
-AGG_OBJ=renderers\agg\src\agg_arc.obj renderers\agg\src\agg_curves.obj renderers\agg\src\agg_vcgen_contour.obj \
-renderers\agg\src\agg_vcgen_dash.obj renderers\agg\src\agg_vcgen_stroke.obj renderers\agg\src\agg_image_filters.obj \
-renderers\agg\src\agg_line_aa_basics.obj renderers\agg\src\agg_line_profile_aa.obj \
-renderers\agg\src\agg_sqrt_tables.obj renderers\agg\src\agg_embedded_raster_fonts.obj \
-renderers\agg\src\agg_trans_affine.obj renderers\agg\src\agg_vpgen_clip_polygon.obj \
-renderers\agg\src\agg_vpgen_clip_polyline.obj renderers\agg\src\agg_font_freetype.obj \
-renderers\agg\src\agg_svg_parser.obj renderers\agg\src\agg_svg_path_renderer.obj \
-renderers\agg\src\agg_svg_path_tokenizer.obj renderers\agg\src\clipper.obj
-!ENDIF
-
-# Setup PDF includes and libs
-!IFDEF PDF
-PDF_LIB=$(PDF_DIR)/libs/pdflib/Release_DLL/pdflib.lib
-PDF_INC=-I$(PDF_DIR)/libs/pdflib
-!ENDIF
-
-# Oracle support.
-!IFDEF ORACLE
-ORACLE_INC=-I$(ORACLE_DIR)/include
-!IF "$(ORACLE)" != "-DUSE_ORACLE_PLUGIN"
-ORACLE_LIB=$(ORACLE_DIR)\lib\msvc\ociw32.lib  $(ORACLE_DIR)/lib/msvc/oci.lib
-!ELSE
-ORACLE_LIB =
-!ENDIF
-!ENDIF
-
-#libiconv support
-!IFDEF ICONV
-ICONV_LIB=$(ICONV_DIR)\lib\iconv.lib
-ICONV_INC= -I$(ICONV_DIR)\include
-!ENDIF
-
-#fcgi support
-!IFDEF FCGIDEF
-FCGILIB=$(FCGIDIR)\libfcgi\Release\libfcgi.lib
-FCGIINC=-I$(FCGIDIR)\include
-!ENDIF
-
-#fribidi support
-!IFDEF FRIBIDI
-FRIBIDI_INC=-I$(FRIBIDI_DIR)\lib -I$(FRIBIDI_DIR)\charset
-FRIBIDI_LIB=$(FRIBIDI_DIR)\fribidi.lib
-!ENDIF
-
-
-
-########################################################################
-# Section VIII: UMN GIS System Support
-########################################################################
-# Should not need to be updated.
-########################################################################
-#
-# UofMN GIS/Image Processing Extension (very experimental)
-#
-#EGIS=-DUSE_EGIS
-
-!IFDEF EGIS
-ERR_DIR=c:/my_path_to/errLog
-ERR_OBJ=$(ERR_DIR)/errLog.o
-ERR_INC=-I$(ERR_DIR)
-ERR_LIB=-L$(ERR_DIR) -lerrLog
-
-IMGGEN_DIR=c:/my_path_to/imgSrc
-IMGGEN_OBJ=$(IMGGEN_DIR)/imgLib.o
-IMGGEN_INC=-I$(IMGGEN_DIR)
-IMGGEN_LIB=-L$(IMGGEN_DIR) -limgGEN
-!ENDIF
-
-
-########################################################################
-# Section IX: Collect compiler flags
-########################################################################
-# Should not need to be updated.
-########################################################################
-!IFNDEF EXTERNAL_LIBS
-EXTERNAL_LIBS=$(GD_LIBS) $(TIFF_LIB) $(JPEG_LIB) \
-     $(PROJ_LIB) $(OGR_LIB) $(GDAL_LIB)\
-     $(CURL_LIB) $(PDF_LIB) \
-     $(WINSOCK_LIB) $(POSTGIS_LIB) $(IMGGEN_LIB) $(ERR_LIB) \
-     $(ORACLE_LIB) $(ICONV_LIB) $(FCGILIB) $(GEOS_LIB) \
-     $(LIBXML_LIB) $(EXPAT_LIB) $(OGL_LIB) $(CAIRO_LIB) $(FRIBIDI_LIB) $(GIFLIB_LIB)
-!ENDIF
-
-LIBS=$(MS_LIB) $(EXTERNAL_LIBS)
-LIBS_DLL=$(MS_LIB_DLL) $(EXTERNAL_LIBS)
-
-!IFNDEF INCLUDES
-INCLUDES=$(GD_INC) $(TIFF_INC) $(JPEG_INC)  \
-         $(PROJ_INC) $(REGEX_INC) $(GDAL_INC) $(OGR_INC) \
-         $(CURL_INC) $(PDF_INC) $(POSTGIS_INC) \
-         $(IMGGEN_INC) $(ERR_INC) $(ORACLE_INC) \
-         $(ICONV_INC) $(FCGIINC) $(GEOS_INC) $(ZLIB_INC) $(LIBXML_INC) \
-         $(AGG_INC) $(EXPAT_INC) $(OGL_INC) $(CAIRO_INC) $(PNG_INC) $(FRIBIDI_INC) $(GIFLIB_INC)
-!ENDIF
-
-
-MS_DEFS = $(REGEX_OPT) $(STRINGS) $(POSTGIS) \
-          $(EPPL) $(PROJ) $(TIFF) $(JPEG) $(GD) $(OGR) $(WMS) $(THREADS) \
-          $(WMSCLIENT) $(IGNORE_MISSING_DATA) \
-          $(NEED_NONBLOCKING_STDERR) $(ENABLE_STDERR_DEBUG) \
-          $(USE_POINT_Z_M) $(GDAL) $(FCGIDEF) \
-          $(WFS) $(WFSCLIENT) $(WCS) $(PDF) $(EGIS) \
-          $(USE_GD_ANTIALIAS) $(ORACLE) \
-          $(ICONV) $(GEOS) $(ZLIB) $(SOS)  $(XML2_ENABLED) $(AGG) \
-          $(OGL) $(CAIRO) $(RGBA_PNG_ENABLED) $(FRIBIDI) $(KML) $(GIF) $(CURL)
-
-!IFDEF WIN64
-MS_CFLAGS=$(INCLUDES) $(MS_DEFS) -DWIN32 -D_WIN32 -DUSE_GENERIC_MS_NINT
-!ELSE
-MS_CFLAGS=$(INCLUDES) $(MS_DEFS) -DWIN32 -D_WIN32
-!ENDIF
-
-
diff --git a/print-test-results.sh b/print-test-results.sh
deleted file mode 100755
index ece557a..0000000
--- a/print-test-results.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-ret=0
-
-tests=( query misc gdal wxs renderers )
-command_exists () {
-   type "$1" &> /dev/null ;
-}
-
-DIFF=diff
-COMPARE=
-if command_exists colordiff ; then
-   DIFF="colordiff"
-fi
-if command_exists compare ; then
-   COMPARE="compare"
-fi
-
-#leftover .aux.xml files are valid for some gdal tests
-rm -f msautotest/*/result/*.aux.xml
-
-for testcase in "${tests[@]}"; do
-   cd msautotest/$testcase
-   if [ ! -d result ]; then
-      #"result" directory does not exist, all tests passed
-      cd ../..
-      continue
-   fi
-   cd result
-   failedtests=`find . -type f -printf "%f\n" `
-   if [ -z "$failedtests" ]; then
-      cd ../../..
-      continue
-   fi
-   #we have some failing tests
-   ret=1
-   for failedtest in $failedtests; do
-      echo ""
-      echo "######################################"
-      echo "# $testcase => $failedtest"
-      echo "######################################"
-      #for txt, gml and xml files, print a diff
-      if echo "$failedtest" | egrep -q "(txt|xml|gml)$"; then
-        $DIFF -u "../expected/$failedtest" "$failedtest"
-      fi
-      if echo "$failedtest" | egrep -q "(png|gif|tif)$"; then
-        if echo "$failedtest" | egrep -v -q "\\.diff\\.png$"; then
-           if [ -n "$COMPARE" ]; then
-              $COMPARE ../expected/$failedtest $failedtest -compose Src $failedtest.diff.png
-           fi
-        fi
-      fi
-   done
-   cd ../../..
-done
-
-if test "$ret" -eq "0"; then
-   echo ""
-   echo "######################################"
-   echo "#       All tests passed             #"
-   echo "######################################"
-   echo ""
-fi
-
-exit $ret
diff --git a/release-notes.sh b/release-notes.sh
deleted file mode 100755
index 659e181..0000000
--- a/release-notes.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-commitdiff=$1
-
-if test -z $commitdiff; then
-   echo "usage: $0 startcommit..endcommit"
-   exit
-fi
-
-git --no-pager  log --no-merges  --pretty=format:'%s (%an) : `%h <https://github.com/mapserver/mapserver/commit/%H>`__' $commitdiff | gsed  's!#\([0-9]\+\)! `#\1 <https://github.com/mapserver/mapserver/issues/\1>`__ !g'
-
diff --git a/run-test-suite.sh b/run-test-suite.sh
deleted file mode 100755
index b42281a..0000000
--- a/run-test-suite.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-#fail script on first error
-set -e
-
-#do some cleaning up
-git clean -d -f
-cd msautotest
-rm -f */result/*
-git clean -d -f
-cd ..
-git submodule update
-
-if [ -f CMakeLists.txt ]; then
-   make -j4 test
-else
-   #autoconf build
-   ./configure --with-gd --with-postgis --with-wmsclient --with-proj --with-wfsclient --with-kml --with-cairo --with-wcs --with-sos --with-geos --with-gdal --with-ogr --with-wfs
-   make clean
-   make -j4
-   make -j4 test
-fi
diff --git a/run_code_coverage_upload.sh b/run_code_coverage_upload.sh
deleted file mode 100755
index 7dd6d3d..0000000
--- a/run_code_coverage_upload.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-lcov --directory . --capture --output-file mapserver.info 
-
-cp /usr/bin/genhtml .
-# to remove date and occurences number, so that only real differences show up
-patch -p0 < genhtml.patch
-
-./genhtml -o ./mapserver_coverage_html --num-spaces 2 mapserver.info  
-
-# build the chunks of the private key together
-
-# This is a bashism !
-echo -n $id_rsa_{00..30} >> ~/.ssh/id_rsa-upstream-msautotest-coverage-results_base64
-base64 --decode --ignore-garbage ~/.ssh/id_rsa-upstream-msautotest-coverage-results_base64 > ~/.ssh/id_rsa-upstream-msautotest-coverage-results
-chmod 600 ~/.ssh/id_rsa-upstream-msautotest-coverage-results
-
-echo "Host foo.github.com" >> ~/.ssh/config
-echo "    StrictHostKeyChecking no" >> ~/.ssh/config
-echo "    Hostname github.com" >> ~/.ssh/config
-echo "    IdentityFile ~/.ssh/id_rsa-upstream-msautotest-coverage-results" >> ~/.ssh/config
-
-mkdir msautotest-coverage-results
-cd msautotest-coverage-results
-git init
-git config user.email "mapserverbot at mapserver.bot"
-git config user.name "MapServer coveragebot"
-git config push.default matching
-git remote add origin git at foo.github.com:mapserver/coverage.git
-git fetch
-git pull origin master
-rm -rf *
-cp -r ../mapserver_coverage_html .
-echo "Results of coverage of MapServer msautotest" > README.md
-echo "See http://rawgithub.com/mapserver/coverage/master/mapserver_coverage_html/home/travis/build/mapserver/mapserver/index.html" >> README.md
-git add -A
-git commit -m "update with results of commit https://github.com/mapserver/mapserver/commit/$TRAVIS_COMMIT"
-git push origin master
diff --git a/scalebar.c b/scalebar.c
index 8c7167b..67ba5f4 100644
--- a/scalebar.c
+++ b/scalebar.c
@@ -36,6 +36,7 @@ int main(int argc, char *argv[])
   mapObj *map=NULL;
   imageObj         *image = NULL;
 
+  msSetup();
   if(argc > 1 && strcmp(argv[1], "-v") == 0) {
     printf("%s\n", msGetVersion());
     exit(0);
diff --git a/stablemerge.sh b/stablemerge.sh
deleted file mode 100644
index e038fac..0000000
--- a/stablemerge.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-
-git checkout branch-5-0
-if test $? -ne 0; then exit; fi
-git merge branch-4-10
-if test $? -ne 0; then exit; fi
-git checkout branch-5-2
-if test $? -ne 0; then exit; fi
-git merge branch-5-0
-if test $? -ne 0; then exit; fi
-git checkout branch-5-4
-if test $? -ne 0; then exit; fi
-git merge branch-5-2
-if test $? -ne 0; then exit; fi
-git checkout branch-5-6
-if test $? -ne 0; then exit; fi
-git merge branch-5-4
-if test $? -ne 0; then exit; fi
-git checkout branch-6-0
-if test $? -ne 0; then exit; fi
-git merge branch-5-6
-if test $? -ne 0; then exit; fi
-git checkout branch-6-2
-if test $? -ne 0; then exit; fi
-git merge branch-6-0
-if test $? -ne 0; then exit; fi
-git checkout master
-if test $? -ne 0; then exit; fi
-git merge branch-6-2
diff --git a/xmlmapfile/mapfile.xsd b/xmlmapfile/mapfile.xsd
index 2d778bc..07f73e7 100644
--- a/xmlmapfile/mapfile.xsd
+++ b/xmlmapfile/mapfile.xsd
@@ -346,9 +346,9 @@
 						</xs:simpleType>
 					</xs:union>
 				</xs:simpleType>
-		    <xs:element name="maxScaleDenom" type="xs:double" minOccurs="0"/>
-		    <xs:element name="minScaleDenom" type="xs:double" minOccurs="0"/>
 			</xs:element>
+                        <xs:element name="maxScaleDenom" type="xs:double" minOccurs="0"/>
+                        <xs:element name="minScaleDenom" type="xs:double" minOccurs="0"/>                        
 			<xs:element name="Style" type="ms:Style" minOccurs="0" maxOccurs="unbounded"/>
 		        <xs:element name="text" type="xs:string" minOccurs="0"/>                
 		        <xs:element name="wrap" type="xs:string" minOccurs="0"/>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/mapserver.git



More information about the Pkg-grass-devel mailing list