From e55e71ab48c12ec276aec77333d3217bf81e520d Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Wed, 3 Mar 2021 14:30:25 -0800 Subject: [PATCH] Delete some old build code --- Makefile | 3 +- build/actuallynice | 29 - build/bochs-debugger | 9 - build/bochs-scriptable | 51 - build/catcode | 21 - build/definitions.mk | 1 - build/includeall | 7 - build/rle.py | 2189 ---------------------------------------- build/rollup | 7 - build/ssh | 14 - 10 files changed, 1 insertion(+), 2330 deletions(-) delete mode 100755 build/actuallynice delete mode 100755 build/bochs-debugger delete mode 100755 build/bochs-scriptable delete mode 100755 build/catcode delete mode 100755 build/includeall delete mode 100644 build/rle.py delete mode 100755 build/rollup delete mode 100755 build/ssh diff --git a/Makefile b/Makefile index 76ec679cc..c82c7c8cc 100644 --- a/Makefile +++ b/Makefile @@ -40,8 +40,7 @@ # o/dbg/examples/crashreport.com # less examples/crashreport.c # -# # extremely tiny binaries (scout's honor escape hatch) -# # please pay the $1k for commercial license if you can +# # extremely tiny binaries # make -j8 -O MODE=tiny \ # LDFLAGS+=-s \ # CPPFLAGS+=-DIM_FEELING_NAUGHTY \ diff --git a/build/actuallynice b/build/actuallynice deleted file mode 100755 index e03739e33..000000000 --- a/build/actuallynice +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -#-*-mode:sh;indent-tabs-mode:nil;tab-width:2;coding:utf-8-*-┐ -#───vi: set net ft=sh ts=2 sts=2 fenc=utf-8 :vi─────────────┘ -# -# SYNOPSIS -# -# Program Deprioritizer -# -# OVERVIEW -# -# This is a drop-in replacement for the traditional Unix `nice` -# command that also invokes `ionice`, which is important, since -# network and traffic is usually what clobber the system. - -if [ -z "$IONICE" ]; then - if IONICE=$(command -v ionice 2>/dev/null); then - IONICE="$IONICE -c3" - fi -fi - -if [ -z "$NICE" ]; then - NICE=$(command -v nice 2>/dev/null) -fi - -if [ -z "$IONICE$NICE" ]; then - echo "error: can't be nice" >&2 -fi - -exec $IONICE $NICE "$@" diff --git a/build/bochs-debugger b/build/bochs-debugger deleted file mode 100755 index 9a3097a6b..000000000 --- a/build/bochs-debugger +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# -*- mode:sh;indent-tabs-mode:nil;tab-width:2;coding:utf-8 -*- -# vi: set net ft=sh ts=2 sts=2 sw=2 fenc=utf-8 :vi - -echo c | - bochs \ - -q \ - -f ape/etc/bochsrc.dbg \ - floppya:1_44=$1,status=inserted diff --git a/build/bochs-scriptable b/build/bochs-scriptable deleted file mode 100755 index 6e6575004..000000000 --- a/build/bochs-scriptable +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -# -*- mode:sh;indent-tabs-mode:nil;tab-width:2;coding:utf-8 -*- -# vi: set net ft=sh ts=2 sts=2 sw=2 fenc=utf-8 :vi -# -# bochs-scriptable executes a disk with serial uart stdio. -# -# USAGE -# -# build/bochs-scriptable IMAGE... -# -# DESCRIPTION -# -# This script is useful for end-to-end testing metal apps in <100ms. -# -# SEE ALSO -# -# build/boot(1) - -while getopts h X; do - case $X in - h) exec less "$0" ;; - \?) echo "$0: bad arg" >&2; exit 1 ;; - esac -done -shift $((OPTIND - 1)) - -trap '' INT - -IMG=$1 -OUT=/tmp/$USER.$$.bochs.stdout -ERR=/tmp/$USER.$$.bochs.stderr - -mkfifo $OUT || exit - -cat <$OUT & -CAT=$! -exec 4>$OUT -rm -f $OUT - -echo c | - bochs \ - -q \ - -f ape/etc/bochsrc.ffs \ - display_library:nogui \ - floppya:1_44=$1,status=inserted \ - >>$ERR 2>>$ERR -RC=$? - -kill $CAT -exec 4>&- -rm -f $ERR diff --git a/build/catcode b/build/catcode deleted file mode 100755 index b3364e6d9..000000000 --- a/build/catcode +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -#-*-mode:sh;indent-tabs-mode:nil;tab-width:2;coding:utf-8-*-┐ -#───vi: set net ft=sh ts=2 sts=2 fenc=utf-8 :vi─────────────┘ -# -# OVERVIEW -# -# Source File Concatenation Tool -# -# DESCRIPTION -# -# This program is the same as cat, but inserts preprocessor directives -# that allow compiler errors to point back to the original lines. - -if [ $# -eq 0 ]; then - cat -else - for x; do - printf '# 1 "%s"\n' "$x" - cat "$x" - done -fi diff --git a/build/definitions.mk b/build/definitions.mk index 992b985fc..278a5ddec 100644 --- a/build/definitions.mk +++ b/build/definitions.mk @@ -50,7 +50,6 @@ TAGS ?= /usr/bin/ctags # emacs source builds or something breaks it ARFLAGS = rcsD ZFLAGS ?= XARGS ?= xargs -P4 -rs8000 -NICE ?= build/actuallynice DOT ?= dot GZ ?= gzip CLANG = clang diff --git a/build/includeall b/build/includeall deleted file mode 100755 index bd7142610..000000000 --- a/build/includeall +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -#-*-mode:sh;indent-tabs-mode:nil;tab-width:2;coding:utf-8-*-┐ -#───vi: set net ft=sh ts=2 sts=2 fenc=utf-8 :vi─────────────┘ - -for x; do - printf '#include "%s"\n' "$x" -done diff --git a/build/rle.py b/build/rle.py deleted file mode 100644 index cb8e0713e..000000000 --- a/build/rle.py +++ /dev/null @@ -1,2189 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# OVERVIEW -# -# Run Length Decoder Scratch Pad -# -# DESCRIPTION -# -# The Cosmopolitan library includes many compressed lookup tables that -# are easy to edit by hand. The toilsome part is usually just creating -# them. This script should provide some insight on how it can be done. - -C = ['\xe2\x88\x85', '\xe2\x98\xba', '\xe2\x98\xbb', '\xe2\x99\xa5', - '\xe2\x99\xa6', '\xe2\x99\xa3', '\xe2\x99\xa0', '\xe2\x80\xa2', - '\xe2\x97\x98', '\xe2\x97\x8b', '\xe2\x97\x99', '\xe2\x99\x82', - '\xe2\x99\x80', '\xe2\x99\xaa', '\xe2\x99\xab', '\xe2\x98\xbc', - '\xe2\x96\xba', '\xe2\x97\x84', '\xe2\x86\x95', '\xe2\x80\xbc', - '\xc2\xb6', '\xc2\xa7', '\xe2\x96\xac', '\xe2\x86\xa8', - '\xe2\x86\x91', '\xe2\x86\x93', '\xe2\x86\x92', '\xe2\x86\x90', - '\xe2\x88\x9f', '\xe2\x86\x94', '\xe2\x96\xb2', '\xe2\x96\xbc', - ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', - ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', - 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', - 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', - '\xE2\x88\x96', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', - 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', - '|', '}', '~', '\xe2\x8c\x82', - '\xc3\x87', '\xc3\xbc', '\xc3\xa9', '\xc3\xa2', - '\xc3\xa4', '\xc3\xa0', '\xc3\xa5', '\xc3\xa7', - '\xc3\xaa', '\xc3\xab', '\xc3\xa8', '\xc3\xaf', - '\xc3\xae', '\xc3\xac', '\xc3\x84', '\xc3\x85', - '\xc3\x89', '\xc3\xa6', '\xc3\x86', '\xc3\xb4', - '\xc3\xb6', '\xc3\xb2', '\xc3\xbb', '\xc3\xb9', - '\xc3\xbf', '\xc3\x96', '\xc3\x9c', '\xc2\xa2', - '\xc2\xa3', '\xc2\xa5', '\xe2\x82\xac', '\xc6\x92', - '\xc3\xa1', '\xc2\xa1', '\xc3\xb3', '\xc3\xba', - '\xc3\xb1', '\xc3\x91', '\xc2\xaa', '\xc2\xba', - '\xc2\xbf', '\xe2\x8c\x90', '\xc2\xac', '\xc2\xbd', - '\xc2\xbc', '\xc2\xa1', '\xc2\xab', '\xc2\xbb', - '\xe2\x96\x91', '\xe2\x96\x92', '\xe2\x96\x93', '\xe2\x94\x82', - '\xe2\x94\xa4', '\xe2\x95\xa1', '\xe2\x95\xa2', '\xe2\x95\x96', - '\xe2\x95\x95', '\xe2\x95\xa3', '\xe2\x95\x91', '\xe2\x95\x97', - '\xe2\x95\x9d', '\xe2\x95\x9c', '\xe2\x95\x9b', '\xe2\x94\x90', - '\xe2\x94\x94', '\xe2\x94\xb4', '\xe2\x94\xac', '\xe2\x94\x9c', - '\xe2\x94\x80', '\xe2\x94\xbc', '\xe2\x95\x9e', '\xe2\x95\x9f', - '\xe2\x95\x9a', '\xe2\x95\x94', '\xe2\x95\xa9', '\xe2\x95\xa6', - '\xe2\x95\xa0', '\xe2\x95\x90', '\xe2\x95\xac', '\xe2\x95\xa7', - '\xe2\x95\xa8', '\xe2\x95\xa4', '\xe2\x95\xa5', '\xe2\x95\x99', - '\xe2\x95\x98', '\xe2\x95\x92', '\xe2\x95\x93', '\xe2\x95\xab', - '\xe2\x95\xaa', '\xe2\x94\x98', '\xe2\x94\x8c', '\xe2\x96\x88', - '\xe2\x96\x84', '\xe2\x96\x8c', '\xe2\x96\x90', '\xe2\x96\x80', - '\xce\xb1', '\xc3\x9f', '\xce\x93', '\xcf\x80', - '\xce\xa3', '\xcf\x83', '\xce\xbc', '\xcf\x84', - '\xce\xa6', '\xce\x98', '\xce\xa9', '\xce\xb4', - '\xe2\x88\x9e', '\xcf\x86', '\xce\xb5', '\xe2\x88\xa9', - '\xe2\x89\xa1', '\xc2\xb1', '\xe2\x89\xa5', '\xe2\x89\xa4', - '\xe2\x8c\xa0', '\xe2\x8c\xa1', '\xc3\xb7', '\xe2\x89\x88', - '\xc2\xb0', '\xe2\x88\x99', '\xc2\xb7', '\xe2\x88\x9a', - '\xe2\x81\xbf', '\xc2\xb2', '\xe2\x96\xa0', '\xce\xbb'] - -A = [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x80,0x00,0x40,0x00,0x00,0x80, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, - 0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x80,0x00,0x00,0x00,0x40, - 0x80,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40] - -xed_prefix_table_bit = [ - 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x40, 0x40, - 0xff, 0xff, 0x00, 0x00, - 0xf0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0d, 0x00, -] - -# please rise for the x86 national flag -xed_has_modrm_2d = [ -# 0x00 - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 3, - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 1, 1, 1, 1, 0, 0, 3, 0, 1, 1, 1, 1, 0, 0, 3, 0, - 1, 1, 1, 1, 0, 0, 3, 0, 1, 1, 1, 1, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 3, 3, 3, 3, 0, 1, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 3, 3, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, -# 0x0f - 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 3, 0, 3, 1, 0, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, - 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, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 1, 1, 1, 3, 3, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, - 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, -] - -def tabify(s): - res = [] - for line in s.split("\n"): - if not line: - continue - directive, number = line.split() - number = int(number) - if directive == ".zero": - res = res + [0] * number - elif directive == ".byte": - res.append(number) - else: - assert False - return res - -kHasSib = tabify("""\ - .zero 32 - .zero 4 - .byte 1 - .zero 3 - .zero 4 - .byte 1 - .zero 3 - .zero 4 - .byte 1 - .zero 3 - .zero 8 - .zero 4 - .byte 1 - .zero 3 - .zero 4 - .byte 1 - .zero 3 - .zero 4 - .byte 1 - .zero 3 - .zero 8 -""") -assert len(kHasSib) == 96, len(kHasSib) - -kHasDisp = tabify("""\ - .zero 6 - .byte 2 - .zero 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 2 - .byte 2 - .byte 2 - .byte 2 - .byte 2 - .byte 2 - .byte 2 - .byte 2 - .zero 8 - .zero 5 - .byte 4 - .zero 2 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .zero 8 - .zero 5 - .byte 4 - .zero 2 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .zero 8 -""") -assert len(kHasDisp) == 96, len(kHasDisp) - -xed_disp_bits_2d = tabify("""\ - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 2 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 5 - .byte 5 - .byte 5 - .byte 5 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 6 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 3 - .byte 3 - .byte 2 - .byte 1 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 3 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 - .byte 4 -""") -assert len(xed_disp_bits_2d) == 512 - -xed_imm_bits_2d = tabify("""\ - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 5 - .byte 7 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 7 - .byte 1 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 5 - .byte 7 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 5 - .byte 7 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 5 - .byte 7 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 5 - .byte 7 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 7 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 5 - .byte 7 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 6 - .byte 7 - .byte 5 - .byte 5 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 5 - .byte 7 - .byte 5 - .byte 5 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 8 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 5 - .byte 7 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 9 - .byte 9 - .byte 9 - .byte 9 - .byte 9 - .byte 9 - .byte 9 - .byte 10 - .byte 10 - .byte 10 - .byte 10 - .byte 10 - .byte 10 - .byte 10 - .byte 10 - .byte 9 - .byte 9 - .byte 8 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 2 - .byte 11 - .byte 1 - .byte 8 - .byte 1 - .byte 1 - .byte 9 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 9 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 9 - .byte 9 - .byte 9 - .byte 1 - .byte 1 - .byte 8 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 1 - .byte 1 - .byte 3 - .byte 4 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 0 - .byte 1 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 9 - .byte 9 - .byte 9 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 12 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 1 - .byte 0 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 1 - .byte 9 - .byte 9 - .byte 9 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1 - .byte 1""") - -tables = [('xed_prefix_table_bit', xed_prefix_table_bit), - ('xed_has_modrm_2d', xed_has_modrm_2d), - ('xed_has_disp_regular', kHasDisp), - ('xed_has_sib_table', kHasSib), - ('xed_disp_bits_2d', xed_disp_bits_2d), - ('xed_imm_bits_2d', xed_imm_bits_2d)] - -# int main(int argc, char *argv[]) { -# int l = 0; -# for (unsigned i = 0; i < 256; ++i) { -# int t = 0; -# if (isspace(i)) t |= 0x01; -# if (isalpha(i)) t |= 0x02; -# if (isdigit(i)) t |= 0x04; -# if (isxdigit(i)) t |= 0x08; -# if (isprint(i)) t |= 0x10; -# if (islower(i)) t |= 0x20; -# if (isupper(i)) t |= 0x40; -# if (isblank(i)) t |= 0x80; -# printf("0x%02x,", t); -# if (++l % 8 == 0) printf("\n"); -# } -# return 0; -# } - -kCtype = [ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x81,0x01,0x01,0x01,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x91,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, -0x1c,0x1c,0x10,0x10,0x10,0x10,0x10,0x10, -0x10,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x52, -0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52, -0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52, -0x52,0x52,0x52,0x10,0x10,0x10,0x10,0x10, -0x10,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x32, -0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, -0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, -0x32,0x32,0x32,0x10,0x10,0x10,0x10,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -] -tables = [('kCtype', kCtype)] - - -kWidthTab1 = [ - 16, 16, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 16, 16, 32, 16, 16, 16, 33, 34, 35, 36, 37, 38, 39, - 16, 16, 40, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 41, - 42, 16, 16, 43, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 44, 16, 45, 46, 47, 48, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 49, 16, 16, 50, - 51, 16, 52, 53, 54, 16, 16, 16, 16, 16, 16, 55, 16, 16, 16, - 16, 16, 56, 57, 58, 59, 60, 61, 62, 63, 16, 16, 64, 16, 65, - 66, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 67, 68, 16, 16, 16, 69, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 70, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 71, 72, 16, 16, 16, 16, 16, 16, 16, 73, 16, 16, 16, 16, 16, - 74, 16, 16, 16, 16, 16, 16, 16, 75, 76, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, - 255, 255, 255, 191, 182, 0, 0, 0, 0, 0, 0, 0, 63, 0, 255, - 23, 0, 0, 0, 0, 0, 248, 255, 255, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 191, 159, 61, 0, 0, 0, - 128, 2, 0, 0, 0, 255, 255, 255, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 192, 255, 1, 0, 0, 0, 0, 0, 0, 248, 15, - 0, 0, 0, 192, 251, 239, 62, 0, 0, 0, 0, 0, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, - 255, 255, 255, 7, 0, 0, 0, 0, 0, 0, 20, 254, 33, 254, 0, - 12, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 16, 30, 32, 0, - 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 16, 134, 57, - 2, 0, 0, 0, 35, 0, 6, 0, 0, 0, 0, 0, 0, 16, 190, - 33, 0, 0, 12, 0, 0, 252, 2, 0, 0, 0, 0, 0, 0, 144, - 30, 32, 64, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, - 0, 1, 32, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 192, 193, 61, 96, 0, 12, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 144, 64, 48, 0, 0, 12, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 24, 30, 32, 0, 0, 12, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 242, 7, 128, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 242, 27, 0, 63, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, 160, 2, 0, 0, 0, 0, 0, 0, 254, - 127, 223, 224, 255, 254, 255, 255, 255, 31, 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 224, 253, 102, 0, 0, 0, 195, 1, - 0, 30, 0, 100, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, - 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 176, 63, - 64, 254, 15, 32, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, - 1, 4, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 9, 0, 0, 0, 0, 0, 0, 64, 127, 229, 31, 248, 159, 0, 0, - 0, 0, 0, 0, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 15, - 0, 0, 0, 0, 0, 208, 23, 4, 0, 0, 0, 0, 248, 15, 0, - 3, 0, 0, 0, 60, 59, 0, 0, 0, 0, 0, 0, 64, 163, 3, - 0, 0, 0, 0, 0, 0, 240, 207, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 255, 253, - 33, 16, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, - 255, 255, 255, 255, 251, 0, 248, 0, 0, 0, 124, 0, 0, 0, 0, - 0, 0, 223, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 0, 60, 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, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 247, 63, 0, - 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 68, 8, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 255, 255, - 3, 0, 0, 0, 0, 0, 192, 63, 0, 0, 128, 255, 3, 0, 0, - 0, 0, 0, 7, 0, 0, 0, 0, 0, 200, 19, 0, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 126, 102, 0, 8, 16, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 157, 193, 2, 0, - 0, 0, 0, 48, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 33, 0, 0, 0, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 255, - 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 192, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 110, 240, 0, 0, 0, 0, 0, 135, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 96, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 255, - 127, 0, 0, 0, 0, 0, 0, 128, 3, 0, 0, 0, 0, 0, 120, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 128, 239, - 31, 0, 0, 0, 0, 0, 0, 0, 8, 0, 3, 0, 0, 0, 0, - 0, 192, 127, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 211, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 128, 248, 7, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 16, 1, 0, 0, 0, 192, 31, 31, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 255, 92, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 133, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 176, 1, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 167, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 188, 15, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 6, 0, 0, 0, 0, 248, - 121, 128, 0, 126, 14, 0, 0, 0, 0, 0, 252, 127, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 127, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255, - 255, 252, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 180, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, - 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 15, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 3, 248, 255, 231, 15, 0, 0, 0, 60, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, - 255, 255, 127, 248, 255, 255, 255, 255, 255, 31, 32, 0, 16, 0, 0, - 248, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 255, - 255, 249, 219, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -] -kWidthTab2 = [ - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 18, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 19, 16, 20, 21, 22, 16, 16, 16, 23, 16, - 16, 24, 25, 26, 27, 28, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 29, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 30, - 16, 16, 16, 16, 31, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 32, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 16, 16, 16, 33, - 34, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 35, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 36, 17, 17, 37, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 38, 39, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 40, 41, 42, 43, 44, 45, 46, 16, 16, 47, 16, 16, 16, 16, - 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 255, 15, 0, 0, 0, 0, 128, 0, 0, - 8, 0, 2, 12, 0, 96, 48, 64, 16, 0, 0, 4, 44, 36, 32, - 12, 0, 0, 0, 1, 0, 0, 0, 80, 184, 0, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 1, 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 255, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 15, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 63, 0, 0, 0, 255, 15, 255, 255, 255, 255, 255, 255, 255, 127, - 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 254, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 224, 255, 255, 255, 255, 127, - 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, - 255, 255, 7, 255, 255, 255, 255, 15, 0, 255, 255, 255, 255, 255, 127, - 255, 255, 255, 255, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 31, 255, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, - 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 255, 3, 0, 0, 255, 255, 255, - 255, 247, 255, 127, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 0, 0, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, - 0, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 254, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 255, 255, 255, 255, - 255, 15, 255, 1, 3, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, - 1, 224, 191, 255, 255, 255, 255, 255, 255, 255, 255, 223, 255, 255, 15, - 0, 255, 255, 255, 255, 255, 135, 15, 0, 255, 255, 17, 255, 255, 255, - 255, 255, 255, 255, 255, 127, 253, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 159, - 255, 255, 255, 255, 255, 255, 255, 63, 0, 120, 255, 255, 255, 0, 0, - 4, 0, 0, 96, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, - 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 63, 16, 7, 0, - 0, 24, 240, 1, 0, 0, 255, 255, 255, 255, 255, 127, 255, 31, 255, - 255, 255, 15, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 1, 0, - 255, 255, 127, 0, 0, 0, -] - -kZlibDistCode = [ - 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, 18, 18, 19, 19, 20, 20, - 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, - 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29] - -# kZlibLengthCode = [ -# 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, -# 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, -# 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, -# 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, -# 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, -# 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, -# 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, -# 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -# 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, -# 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, -# 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, -# 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, -# 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, -# 27, 27, 27, 27, 27, 27, 27, 27, 28] - -# duk_hex_dectab = [ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x00-0x0f */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x10-0x1f */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x20-0x2f */ -# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,0xff,0xff,0xff,0xff,0xff,0xff, # 0x30-0x3f */ -# 0xff, 10, 11, 12, 13, 14, 15,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x40-0x4f */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x50-0x5f */ -# 0xff, 10, 11, 12, 13, 14, 15,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x60-0x6f */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x70-0x7f */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x80-0x8f */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x90-0x9f */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xa0-0xaf */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xb0-0xbf */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xc0-0xcf */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xd0-0xdf */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xe0-0xef */ -# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff # 0xf0-0xff */ -# ] - -# tables = [('duk__base64_dectab_fast', duk__base64_dectab_fast)] - -def kXtermXlat1(c): - if c >= 3: - return (c - 3) / 10 - return 0 -def kXtermXlat2(c): - if c <= 52: return 0 - if c <= 115: return 1 - if c <= 155: return 2 - if c <= 195: return 3 - if c <= 235: return 4 - return 5 -tables = [('kXtermXlat', ([kXtermXlat1(i) for i in range(256)] + - [kXtermXlat2(i) for i in range(256)]))] - -kBoop = [int(s,16) for s in """ - 00 00 00 00 00 00 00 00 00 00 01 01 01 01 01 01 - 01 00 00 00 00 00 00 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 00 00 00 00 00 00 01 02 02 02 02 02 02 02 02 - 02 02 01 01 01 01 01 01 01 02 02 02 02 02 02 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 02 02 02 02 02 02 01 - 03 03 03 03 03 03 03 03 03 03 01 01 01 01 01 01 - 01 03 03 03 03 03 03 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 03 03 03 03 03 03 01 04 04 04 04 04 04 04 04 - 04 04 01 01 01 01 01 01 01 04 04 04 04 04 04 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 04 04 04 04 04 04 01 - 05 05 05 05 05 05 05 05 05 05 01 01 01 01 01 01 - 01 05 05 05 05 05 05 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 05 05 05 05 05 05 01 06 06 06 06 06 06 06 06 - 06 06 01 01 01 01 01 01 01 06 06 06 06 06 06 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 06 06 06 06 06 06 01 - 07 01 01 07 08 07 07 07 07 07 07 01 07 07 01 07 - 07 07 07 07 07 07 07 07 07 07 01 01 01 01 01 01 - 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 - 07 07 07 07 07 07 07 07 07 07 07 01 07 01 07 01 - 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 - 07 07 07 07 07 07 07 07 07 07 01 01 01 07 01 09 - 09 09 09 09 09 09 09 09 09 01 01 01 01 01 01 01 - 09 09 09 09 09 09 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 09 09 09 09 09 09 01 0a 0a 0a 0a 0a 0a 0a 0a 0a - 0a 01 01 01 01 01 01 01 0a 0a 0a 0a 0a 0a 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 0a 0a 0a 0a 0a 0a 01 0b - 01 01 0b 0c 0b 0b 0b 0b 0b 0b 01 0b 0b 01 0b 0b - 0b 0b 0b 0b 0b 0b 0b 0b 0b 01 01 01 01 01 01 0b - 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b - 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 01 0b 01 0b 01 0b - 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b - 0b 0b 0b 0b 0b 0b 0b 0b 0b 01 01 01 0b 01 0d 0d - 0d 0d 0d 0d 0d 0d 0d 0d 01 01 01 01 01 01 01 0d - 0d 0d 0d 0d 0d 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0d - 0d 0d 0d 0d 0d 01 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e - 01 01 01 01 01 01 01 0e 0e 0e 0e 0e 0e 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 0e 0e 0e 0e 0e 0e 01 0f 01 - 01 0f 10 01 0f 0f 0f 0f 0f 01 0f 0f 0f 0f 0f 0f - 0f 0f 0f 0f 0f 0f 0f 0f 01 01 01 01 0f 01 0f 0f - 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f - 0f 0f 0f 0f 0f 0f 0f 0f 0f 01 0f 01 0f 01 0f 0f - 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f - 0f 0f 0f 0f 0f 0f 0f 0f 01 01 01 0f 01 11 11 11 - 11 11 11 11 11 11 11 01 01 01 01 01 01 01 11 11 - 11 11 11 11 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 11 11 - 11 11 11 11 01 12 12 12 12 12 12 12 12 12 12 01 - 01 01 01 01 01 01 12 12 12 12 12 12 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 12 12 12 12 12 12 01 13 01 01 - 13 14 01 13 13 13 13 13 01 13 13 13 13 13 13 13 - 13 13 13 13 13 13 13 01 01 01 01 13 01 13 13 13 - 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 - 13 13 13 13 13 13 13 13 01 13 01 13 01 13 13 13 - 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 - 13 13 13 13 13 13 13 01 01 01 13 01 15 15 15 15 - 15 15 15 15 15 15 01 01 01 01 01 01 01 15 15 15 - 15 15 15 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 15 15 15 - 15 15 15 01 16 16 16 16 16 16 16 16 16 16 01 01 - 01 01 01 01 01 16 16 16 16 16 16 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 16 16 16 16 16 16 01 17 17 17 17 - 17 17 17 17 17 17 01 01 01 01 01 01 01 17 17 17 - 17 17 17 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 17 17 17 - 17 17 17 01 18 18 18 18 18 18 18 18 18 18 01 01 - 01 01 01 01 01 18 18 18 18 18 18 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 18 18 18 18 18 18 01 19 01 01 19 - 1a 1b 19 19 19 19 19 1b 19 19 0f 19 19 19 19 19 - 19 19 19 19 19 19 01 01 1b 01 19 1c 19 19 19 19 - 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 - 19 19 19 19 19 19 0f 01 0f 01 19 01 19 19 19 19 - 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 - 19 19 19 19 19 19 01 01 01 19 01 1d 1d 1d 1d 1d - 1d 1d 1d 1d 1d 01 01 01 01 01 01 01 1d 1d 1d 1d - 1d 1d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 1d 1d 1d 1d - 1d 1d 01 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 01 01 01 - 01 01 01 01 1e 1e 1e 1e 1e 1e 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 1e 1e 1e 1e 1e 1e 01 1b 01 01 1b 1f - 1b 1b 1b 1b 1b 1b 1b 1b 1b 01 1b 1b 1b 1b 1b 1b - 1b 1b 1b 1b 1b 01 01 1b 01 1b 1c 1b 1b 1b 1b 1b - 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b - 1b 1b 1b 1b 1b 01 01 01 01 1b 01 1b 1b 1b 1b 1b - 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b - 1b 1b 1b 1b 1b 01 01 01 1b 01 20 20 20 20 20 20 - 20 20 20 20 01 01 01 01 01 01 01 20 20 20 20 20 - 20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 20 20 20 20 20 - 20 01 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 01 01 01 01 - 01 01 01 1b 1b 1b 1b 1b 1b 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 1b 1b 1b 1b 1b 1b 01 21 01 21 21 01 21 - 21 21 21 21 21 21 21 21 21 01 01 01 01 01 01 01 - 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 - 21 21 21 21 21 21 21 21 21 21 22 01 01 01 01 01 - 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 - 21 21 21 21 21 21 21 21 21 21 01 23 23 23 23 23 - 23 23 23 23 23 01 24 01 24 24 24 24 24 24 24 24 - 24 24 24 01 01 01 01 01 01 24 24 24 24 24 24 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 24 24 24 24 24 24 01 - 25 01 25 25 25 25 25 25 25 25 25 25 25 01 01 01 - 01 01 01 25 25 25 25 25 25 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 26 - 01 01 01 25 25 25 25 25 25 01 27 01 01 27 28 1b - 27 27 27 27 27 1b 27 27 13 27 27 27 27 27 27 27 - 27 27 27 27 01 01 1b 01 27 1c 27 27 27 27 27 27 - 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 - 27 27 27 27 13 01 13 01 27 01 27 27 27 27 27 27 - 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 - 27 27 27 27 01 01 01 27 01 29 29 29 29 29 29 29 - 29 29 29 01 01 01 01 01 01 01 29 29 29 29 29 29 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 29 29 29 29 29 29 - 01 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 01 01 01 01 01 - 01 01 2a 2a 2a 2a 2a 2a 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 2a 2a 2a 2a 2a 2a 01 2b 01 01 2b 2c 2b 2b - 2b 2b 2b 2d 2b 2d 2d 2e 2d 2d 2d 2d 2d 2d 2d 2d - 2d 2d 2b 2f 01 2b 01 2b 2f 2d 2d 2d 2d 2d 2d 2d - 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d - 2d 2d 2d 30 01 01 01 2b 01 2d 2d 2d 2d 2d 2d 2d - 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d - 2d 2d 2d 01 01 01 2b 01 31 31 31 31 31 31 31 31 - 31 31 01 01 01 01 01 01 01 31 31 31 31 31 31 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 31 31 31 31 31 31 01 - 32 32 32 32 32 32 32 32 32 32 01 01 01 01 01 01 - 01 32 32 32 32 32 32 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 32 32 32 32 32 32 01 33 33 33 33 33 33 33 33 - 33 33 01 01 01 01 01 01 01 33 33 33 33 33 33 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 33 33 33 33 33 33 01 - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 01 01 01 - 01 2f 2f 2f 2f 2f 2f 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 2f 2f 2f 2f 2f 2f 01 34 34 34 34 34 34 34 34 - 34 34 01 01 01 01 01 01 01 34 34 34 34 34 34 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 34 34 34 34 34 34 01 - 35 35 35 35 35 35 35 35 35 35 01 01 01 01 01 01 - 01 35 35 35 35 35 35 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 35 35 35 35 35 35 01 36 36 36 36 36 36 36 36 - 36 36 01 01 01 01 01 01 01 36 36 36 36 36 36 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 36 36 36 36 36 36 01 - 37 37 37 37 37 37 37 37 37 37 01 01 01 01 01 01 - 01 37 37 37 37 37 37 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 37 37 37 37 37 37 01 38 38 38 38 38 38 38 38 - 38 38 01 01 01 01 01 01 01 38 38 38 38 38 38 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 38 38 38 38 38 38 01 - 39 39 39 39 39 39 39 39 39 39 01 01 01 01 01 01 - 01 39 39 39 39 39 39 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 39 39 39 39 39 39 01 3a 01 01 3a 3b 3a 3a 3a - 3a 3a 3a 01 3a 3a 01 3a 3a 3a 3a 3a 3a 3a 3a 3a - 3a 3a 01 01 01 01 01 01 3a 3a 3a 3a 3a 3a 3a 3a - 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a - 3a 3a 3a 01 3a 01 3a 01 3a 3a 3a 3a 3a 3a 3a 3a - 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a - 3a 3a 01 01 01 3a 01 3c 3c 3c 3c 3c 3c 3c 3c 3c - 3c 01 01 01 01 01 01 01 3c 3c 3c 3c 3c 3c 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 3c 3c 3c 3c 3c 3c 01 3d - 3d 3d 3d 3d 3d 3d 3d 3d 3d 01 01 01 01 01 01 01 - 3d 3d 3d 3d 3d 3d 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 3d 3d 3d 3d 3d 3d 01 3e 01 01 3e 3f 3e 3e 3e 3e - 3e 3e 01 3e 3e 01 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e - 3e 01 01 01 01 01 01 3e 3e 3e 3e 3e 3e 3e 3e 3e - 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e - 3e 3e 01 3e 01 3e 01 3e 3e 3e 3e 3e 3e 3e 3e 3e - 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e - 3e 01 01 01 3e 01 40 01 40 40 40 40 40 40 40 40 - 40 40 40 01 01 01 01 01 01 40 40 40 40 40 40 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 40 40 40 40 40 40 01 - 41 01 41 41 41 41 41 41 41 41 41 41 41 01 01 01 - 01 01 01 41 41 41 41 41 41 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 42 - 01 01 01 41 41 41 41 41 41 01 43 43 43 43 43 43 - 43 43 43 43 01 44 01 45 44 46 44 44 44 44 44 44 - 44 44 44 2e 44 44 44 44 44 44 44 44 44 44 01 44 - 01 44 01 01 44 47 47 47 47 47 47 47 47 47 47 47 - 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 01 - 01 01 01 44 01 47 47 47 47 47 47 47 47 47 47 47 - 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 01 - 01 01 44 01 04 01 48 04 49 04 04 04 04 04 04 04 - 04 04 4a 04 04 04 04 04 04 04 04 04 04 01 04 01 - 04 01 4b 04 04 04 04 04 04 04 04 04 04 04 04 04 - 04 04 04 04 04 04 04 04 04 04 04 04 04 04 01 01 - 01 01 04 01 04 04 04 04 04 04 04 04 04 04 04 04 - 04 04 04 04 04 04 04 04 04 04 04 04 04 04 01 01 - 01 04 01 4c 01 01 4c 4d 4c 4c 4c 4c 4c 4c 4c 4c - 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 01 4c - 01 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c - 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 01 01 01 - 01 4c 01 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c - 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 01 01 01 - 4c 01 02 01 01 02 4e 02 02 02 02 02 02 02 02 02 - 02 02 02 02 02 02 02 02 02 02 02 02 02 01 02 01 - 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 - 02 02 02 02 02 02 02 02 02 02 02 02 01 01 01 01 - 02 01 02 02 02 02 02 02 02 02 02 02 02 02 02 02 - 02 02 02 02 02 02 02 02 02 02 02 02 01 01 01 02 - 01 06 01 48 06 4f 06 06 06 06 06 06 06 06 06 4a - 06 06 06 06 06 06 06 06 06 06 06 50 01 06 01 4b - 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 - 06 06 06 06 06 06 06 06 06 06 06 01 01 01 01 06 - 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 - 06 06 06 06 06 06 06 06 06 06 06 01 01 01 06 01 - 0a 01 51 0a 52 0a 0a 0a 0a 0a 0a 01 0a 0a 53 0a - 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 54 01 55 01 56 01 - 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a - 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 01 0a 01 0a 01 - 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a - 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 01 01 01 0a 01 0e - 01 57 0e 58 0e 0e 0e 0e 0e 0e 01 0e 0e 59 0e 0e - 0e 0e 0e 0e 0e 0e 0e 0e 0e 5a 01 01 01 5b 01 0e - 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e - 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 01 0e 01 0e 01 0e - 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e - 0e 0e 0e 0e 0e 0e 0e 0e 0e 01 01 01 0e 01 12 01 - 5c 12 5d 5e 12 12 12 12 12 01 12 12 12 12 12 12 - 12 12 12 12 12 12 12 12 01 01 5f 01 12 01 12 12 - 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 - 12 12 12 12 12 12 12 12 12 01 12 01 12 01 12 12 - 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 - 12 12 12 12 12 12 12 12 01 01 01 12 01 16 01 60 - 16 61 62 16 16 16 16 16 01 16 16 16 16 16 16 16 - 16 16 16 16 16 16 16 01 01 01 01 16 01 16 16 16 - 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 - 16 16 16 16 16 16 16 16 01 16 01 16 01 16 16 16 - 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 - 16 16 16 16 16 16 16 01 01 01 16 01 06 01 48 06 - 4f 06 06 06 06 06 06 06 06 06 63 06 06 06 06 06 - 06 06 06 06 06 06 50 01 06 01 4b 06 06 06 06 06 - 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 - 06 06 06 06 06 06 01 01 01 01 06 01 06 06 06 06 - 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 - 06 06 06 06 06 06 01 01 01 06 01 64 01 48 64 65 - 64 64 64 64 64 66 64 66 66 4a 66 66 66 66 66 66 - 66 66 66 66 64 50 01 64 01 67 06 66 66 66 66 66 - 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 - 66 66 66 66 66 22 01 01 01 64 01 66 66 66 66 66 - 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 - 66 66 66 66 66 01 01 01 64 01 18 01 48 18 68 18 - 18 18 18 18 18 18 18 18 4a 18 18 18 18 18 18 18 - 18 18 18 18 50 01 18 01 69 6a 18 18 18 18 18 18 - 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 - 18 18 18 18 01 01 01 01 18 01 18 18 18 18 18 18 - 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 - 18 18 18 18 01 01 01 18 01 1e 01 5c 1e 6b 6c 1e - 1e 1e 1e 1e 1b 1e 1e 12 1e 1e 1e 1e 1e 1e 1e 1e - 1e 1e 1e 01 01 6d 01 1e 1c 1e 1e 1e 1e 1e 1e 1e - 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e - 1e 1e 1e 12 01 12 01 1e 01 1e 1e 1e 1e 1e 1e 1e - 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e - 1e 1e 1e 01 01 01 1e 01 6e 01 01 01 01 01 01 01 - 6f 01 6f 6f 70 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 71 - 01 01 01 01 72 01 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f - 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f - 01 01 01 01 01 01 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f - 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f - 01 73 01 01 01 01 01 01 01 01 01 01 01 74 75 75 - 75 75 75 75 75 75 75 75 01 01 01 01 01 76 01 45 - 01 01 01 01 01 01 01 01 01 01 01 77 01 01 01 01 - 01 01 01 01 01 01 78 01 01 01 01 79 01 2a 01 60 - 2a 7a 7b 2a 2a 2a 2a 2a 1b 2a 2a 16 2a 2a 2a 2a - 2a 2a 2a 2a 2a 2a 2a 01 01 1b 01 2a 1c 2a 2a 2a - 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a - 2a 2a 2a 2a 2a 2a 2a 16 01 16 01 2a 01 2a 2a 2a - 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a - 2a 2a 2a 2a 2a 2a 2a 01 01 01 2a 01 06 01 48 06 - 4f 06 06 06 06 06 7c 06 7c 7c 4a 7c 7c 7c 7c 7c - 7c 7c 7c 7c 7c 06 50 01 06 01 4b 06 7c 7c 7c 7c - 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c - 7c 7c 7c 7c 7c 7c 22 01 01 01 06 01 7c 7c 7c 7c - 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c - 7c 7c 7c 7c 7c 7c 01 01 01 06 01 06 01 7d 06 4f - 06 06 06 06 06 7e 06 7e 7e 7f 7e 7e 7e 7e 7e 7e - 7e 7e 7e 7e 80 50 01 06 01 81 06 7e 7e 7e 7e 7e - 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e - 7e 7e 7e 7e 7e 01 01 01 01 06 01 7e 7e 7e 7e 7e - 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e - 7e 7e 7e 7e 7e 01 01 01 06 01 06 01 48 06 4f 06 - 06 06 06 06 06 06 06 06 4a 82 82 82 82 82 82 82 - 82 82 82 06 50 01 06 01 4b 06 06 06 06 06 06 06 - 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 - 06 06 06 06 01 01 01 01 06 01 06 06 06 06 06 06 - 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 - 06 06 06 06 01 01 01 06 01 06 01 83 06 4f 06 06 - 06 06 06 06 06 06 06 84 85 85 85 85 85 85 85 85 - 85 85 06 50 01 06 01 86 06 06 06 06 06 06 06 06 - 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 - 06 06 06 01 01 01 01 06 01 06 06 06 06 06 06 06 - 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 - 06 06 06 01 01 01 06 01 18 01 7d 18 68 18 18 18 - 18 18 87 18 87 87 7f 87 87 87 87 87 87 87 87 87 - 87 88 50 01 18 01 89 6a 87 87 87 87 87 87 87 87 - 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 - 87 87 01 01 01 01 18 01 87 87 87 87 87 87 87 87 - 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 - 87 87 01 01 01 18 01 18 01 48 18 68 18 18 18 18 - 18 18 18 18 18 4a 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a - 18 50 01 18 01 69 6a 18 18 18 18 18 18 18 18 18 - 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 - 18 01 01 01 01 18 01 18 18 18 18 18 18 18 18 18 - 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 - 18 01 01 01 18 01 18 01 83 18 68 18 18 18 18 18 - 18 18 18 18 84 8b 8b 8b 8b 8b 8b 8b 8b 8b 8b 18 - 50 01 18 01 8c 6a 18 18 18 18 18 18 18 18 18 18 - 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 - 01 01 01 01 18 01 18 18 18 18 18 18 18 18 18 18 - 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 - 01 01 01 18 01 04 01 48 04 49 04 04 04 04 04 8d - 04 8d 8d 4a 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8e 04 - 01 04 01 4b 04 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d - 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 01 - 01 01 01 04 01 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d - 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 01 - 01 01 04 01 32 01 45 32 8f 32 32 32 32 32 32 32 - 32 32 90 32 32 32 32 32 32 32 32 32 32 32 2f 01 - 32 01 32 91 32 32 32 32 32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 32 32 32 32 32 32 32 32 01 01 - 01 01 32 01 32 32 32 32 32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 32 32 32 32 32 32 32 32 01 01 - 01 32 01 45 01 2f 01 45 2f 92 2f 2f 2f 2f 2f 2f - 2f 2f 2f 90 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f - 01 2f 01 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 - 01 01 01 2f 01 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 - 01 01 2f 01 2f 01 45 2f 92 2f 2f 2f 2f 2f 93 2f - 93 93 90 93 93 93 93 93 93 93 93 93 93 2f 2f 01 - 2f 01 2f 2f 93 93 93 93 93 93 93 93 93 93 93 93 - 93 93 93 93 93 93 93 93 93 93 93 93 93 93 30 01 - 01 01 2f 01 93 93 93 93 93 93 93 93 93 93 93 93 - 93 93 93 93 93 93 93 93 93 93 93 93 93 93 01 01 - 01 2f 01 2f 01 6e 2f 92 2f 2f 2f 2f 2f 94 2f 94 - 94 90 94 94 94 94 94 94 94 94 94 94 95 96 01 2f - 01 2f 2f 94 94 94 94 94 94 94 94 94 94 94 94 94 - 94 94 94 94 94 94 94 94 94 94 94 94 94 01 01 01 - 01 2f 01 94 94 94 94 94 94 94 94 94 94 94 94 94 - 94 94 94 94 94 94 94 94 94 94 94 94 94 01 01 01 - 2f 01 2f 01 45 2f 92 2f 2f 2f 2f 2f 2f 2f 2f 2f - 90 97 97 97 97 97 97 97 97 97 97 2f 2f 01 2f 01 - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 01 - 2f 01 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 2f - 01 2f 01 73 2f 92 2f 2f 2f 2f 2f 2f 2f 2f 2f 90 - 98 98 98 98 98 98 98 98 98 98 2f 99 01 2f 01 2f - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 01 2f - 01 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f - 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 2f 01 - 9a 01 45 9a 9b 9a 9a 9a 9a 9a 9a 2f 9a 9a 90 9a - 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 2f 01 2f 01 2f 2f - 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a - 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 3a 01 3a 01 9a 01 - 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a - 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 01 01 01 9a 01 35 - 01 51 35 9c 35 35 35 35 35 35 2f 35 35 90 35 35 - 35 35 35 35 35 35 35 35 35 9d 01 9e 01 2f 2f 35 - 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 - 35 35 35 35 35 35 35 35 35 3d 01 3d 01 35 01 35 - 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 - 35 35 35 35 35 35 35 35 35 01 01 01 35 01 9f 01 - 45 9f a0 9f 9f 9f 9f 9f 9f 2f 9f 9f 90 9f 9f 9f - 9f 9f 9f 9f 9f 9f 9f 9f 2f 01 2f 01 2f 2f 9f 9f - 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f - 9f 9f 9f 9f 9f 9f 9f 9f 3e 01 3e 01 9f 01 9f 9f - 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f - 9f 9f 9f 9f 9f 9f 9f 9f 01 01 01 9f 01 37 01 57 - 37 a1 37 37 37 37 37 37 2f 37 37 90 37 37 37 37 - 37 37 37 37 37 37 37 a2 01 2f 01 2f 2f 37 37 37 - 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 - 37 37 37 37 37 37 37 39 01 39 01 37 01 37 37 37 - 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 - 37 37 37 37 37 37 37 01 01 01 37 01 39 01 57 39 - a3 39 39 39 39 39 39 01 39 39 01 39 39 39 39 39 - 39 39 39 39 39 39 a4 01 01 01 01 01 39 39 39 39 - 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 - 39 39 39 39 39 39 39 01 39 01 39 01 39 39 39 39 - 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 - 39 39 39 39 39 39 01 01 01 39 01 3d 01 51 3d a5 - 3d 3d 3d 3d 3d 3d 01 3d 3d 01 3d 3d 3d 3d 3d 3d - 3d 3d 3d 3d 3d a6 01 a7 01 01 01 3d 3d 3d 3d 3d - 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d - 3d 3d 3d 3d 3d 3d 01 3d 01 3d 01 3d 3d 3d 3d 3d - 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d - 3d 3d 3d 3d 3d 01 01 01 3d 01 45 01 01 01 01 01 - 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - 01 a8 a9 01 73 01 01 01 01 01 01 01 01 01 01 01 - 01 aa aa aa aa aa aa aa aa aa aa 01 ab 01 32 01 - 6e 32 8f 32 32 32 32 32 ac 32 ac ac 90 ac ac ac - ac ac ac ac ac ac ac ad 96 01 32 01 32 91 ac ac - ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac - ac ac ac ac ac ac ac ac 01 01 01 01 32 01 ac ac - ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac - ac ac ac ac ac ac ac ac 01 01 01 32 01 32 01 45 - 32 8f 32 32 32 32 32 32 32 32 32 90 ae ae ae ae - ae ae ae ae ae ae 32 2f 01 32 01 32 91 32 32 32 - 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 32 01 01 01 01 32 01 32 32 32 - 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 32 01 01 01 32 01 32 01 73 32 - 8f 32 32 32 32 32 32 32 32 32 90 af af af af af - af af af af af 32 99 01 32 01 32 91 32 32 32 32 - 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 01 01 01 01 32 01 32 32 32 32 - 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 01 01 01 32 01 00 -""".split()] - -tables = [('kBoop', kBoop)] - - -lines = [] -def put(l): - lines.append(l) -oc = 0 -toto = 0 -for name, table in tables: - toto += len(table) - it = iter(table) - c2 = next(it) - i2 = 0 - put(".L%s.rodata:" % (name)) - while c2 is not None: - c1, i1, run = c2, i2, 0 - while c1 == c2: - run += 1 - i2 += 1 - c2 = next(it, None) - s = ' ' - if 0 <= i1 < 256 and 0 <= i2 <= 256: - s = "%s " % C[i1] if i2 - i1 == 1 else "%s-%s" % (C[i1], C[i2-1]) - put("\t.byte\t%d,0x%02x\t\t# %02x-%02x %s" % (run, c1, i1, i2-1, s)) - oc += 2 - put("\t.endobj\t.L%s.rodata" % (name)) -put("\t.byte\t0,0\t\t# terminator") -oc += 2 -align = 8 -pad = align - oc % align -if pad != align: - put("\t.byte\t%s\t\t# padding" % (",".join(["0"] * pad))) - oc += pad - -print "\t.initbss 300,_init_%s" % (name) -for name, table in tables: - print "%s:" % (name) - print "\t.zero\t%d" % (len(table)) - print "\t.endobj\t%s,globl,hidden" % (name) -print "\t.previous" -print - -print "\t.initro 300,_init_%s\t# %d bytes (%d%%)" % ( - name, oc, int(round((oc / float(toto)) * 100))) -print "\n".join(lines) -print "\t.previous" -print - -print "\t.init.start 300,_init_%s" % tables[0][0] -print "\tcall\trldecode" -if pad != align: - while pad: - for op, add in (("lodsq", 8), - ("lodsl", 4), - ("lodsw", 2), - ("lodsb", 1)): - if pad >= add: - print "\t%s" % (op) - pad -= add -print "\t.init.end 300,_init_%s" % tables[0][0] diff --git a/build/rollup b/build/rollup deleted file mode 100755 index bd7142610..000000000 --- a/build/rollup +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -#-*-mode:sh;indent-tabs-mode:nil;tab-width:2;coding:utf-8-*-┐ -#───vi: set net ft=sh ts=2 sts=2 fenc=utf-8 :vi─────────────┘ - -for x; do - printf '#include "%s"\n' "$x" -done diff --git a/build/ssh b/build/ssh deleted file mode 100755 index 81c14c80f..000000000 --- a/build/ssh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -#-*-mode:sh;indent-tabs-mode:nil;tab-width:2;coding:utf-8-*-┐ -#───vi: set net ft=sh ts=2 sts=2 fenc=utf-8 :vi─────────────┘ -# -# OVERVIEW -# -# SSH Command Wrapper -# -# DESCRIPTION -# -# This script, like most of our wrappers, asks the tooling to whine -# less often. - -exec ${SSH:-ssh} -o LogLevel=QUIET "$@"