busybox: squashed commit of merging cm-12.1

With fixes to LOCAL_C_INCLUDES for libsepol in M and fixed
some missing includes to enable building for 64 bit devices

Conflicts:
	Android.mk
	android/libc/arch-x86/syscalls/swapoff.S
	android/libc/arch-x86/syscalls/swapon.S
	android/libc/arch-x86/syscalls/sysinfo.S
	android/librpc/pmap_rmt.c
	android/reboot.c
	include-full/copy-current.sh
	include-minimal/copy-current.sh
	include/platform.h
	networking/interface.c
	networking/nslookup.c

Change-Id: If6092fa87f3d21190db1af4f70daa150eb462660
diff --git a/.gitignore b/.gitignore
index 07f6e74..4de5690 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,7 +13,7 @@
 # Never ignore these
 #
 !.gitignore
-!.config-*
+!.config*
 
 #
 # Normal output
diff --git a/Android.mk b/Android.mk
index 305f46c..d0c6b9a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,13 +1,13 @@
 LOCAL_PATH := $(call my-dir)
 BB_PATH := $(LOCAL_PATH)
 
-# Bionic Branches Switches (CM7/AOSP/ICS)
-BIONIC_ICS := true
-
+# Bionic Branches Switches (GB/ICS/L)
+BIONIC_ICS := false
+BIONIC_L := true
 
 # Make a static library for regex.
 include $(CLEAR_VARS)
-LOCAL_SRC_FILES := android/regex/regex.c
+LOCAL_SRC_FILES := android/regex/bb_regex.c
 LOCAL_C_INCLUDES := $(BB_PATH)/android/regex
 LOCAL_CFLAGS := -Wno-sign-compare
 LOCAL_MODULE := libclearsilverregex
@@ -19,52 +19,49 @@
 LOCAL_C_INCLUDES := $(BB_PATH)/android/librpc
 LOCAL_MODULE := libuclibcrpc
 LOCAL_CFLAGS += -fno-strict-aliasing
+ifeq ($(BIONIC_L),true)
+LOCAL_CFLAGS += -DBIONIC_ICS -DBIONIC_L
+endif
 include $(BUILD_STATIC_LIBRARY)
 
+#####################################################################
+
+# Execute make prepare for normal config & static lib (recovery)
 
 LOCAL_PATH := $(BB_PATH)
 include $(CLEAR_VARS)
 
-# Explicitly set an architecture specific CONFIG_CROSS_COMPILER_PREFIX
-ifeq ($(TARGET_ARCH),arm)
-	BUSYBOX_CROSS_COMPILER_PREFIX := "arm-eabi-"
-endif
-ifeq ($(TARGET_ARCH),x86)
-	BUSYBOX_CROSS_COMPILER_PREFIX := "i686-linux-android-"
+BUSYBOX_CROSS_COMPILER_PREFIX := $(abspath $(TARGET_TOOLS_PREFIX))
+
+BB_PREPARE_FLAGS:=
+ifeq ($(HOST_OS),darwin)
+    BB_HOSTCC := $(ANDROID_BUILD_TOP)/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1/bin/i686-apple-darwin11-gcc
+    BB_PREPARE_FLAGS := HOSTCC=$(BB_HOSTCC)
 endif
 
-# Each profile require a compressed usage/config, outside the source tree for git history
-# We keep the uncompressed headers in local include-<profile> to track config changes.
-# TODO: generate includes in out/
+# On aosp (master), path is relative, not on cm (kitkat)
+bb_gen := $(abspath $(TARGET_OUT_INTERMEDIATES)/busybox)
 
-# BB_INCLUDES_OUT := $(TARGET_OUT_INTERMEDIATES)/include
-# $(BB_INCLUDES_OUT):
-#	mkdir -p $(ANDROID_BUILD_TOP)/$(BB_INCLUDES_OUT)
+busybox_prepare_full := $(bb_gen)/full/.config
+$(busybox_prepare_full): $(BB_PATH)/busybox-full.config
+	@echo -e ${CL_YLW}"Prepare config for busybox binary"${CL_RST}
+	@rm -rf $(bb_gen)/full
+	@rm -f $(shell find $(abspath $(call intermediates-dir-for,EXECUTABLES,busybox)) -name "*.o")
+	@mkdir -p $(@D)
+	@cat $^ > $@ && echo "CONFIG_CROSS_COMPILER_PREFIX=\"$(BUSYBOX_CROSS_COMPILER_PREFIX)\"" >> $@
+	+make -C $(BB_PATH) prepare O=$(@D) $(BB_PREPARE_FLAGS)
 
-# Execute make clean, make prepare and copy profiles required for normal & static lib (recovery)
+busybox_prepare_minimal := $(bb_gen)/minimal/.config
+$(busybox_prepare_minimal): $(BB_PATH)/busybox-minimal.config
+	@echo -e ${CL_YLW}"Prepare config for libbusybox"${CL_RST}
+	@rm -rf $(bb_gen)/minimal
+	@rm -f $(shell find $(abspath $(call intermediates-dir-for,STATIC_LIBRARIES,libbusybox)) -name "*.o")
+	@mkdir -p $(@D)
+	@cat $^ > $@ && echo "CONFIG_CROSS_COMPILER_PREFIX=\"$(BUSYBOX_CROSS_COMPILER_PREFIX)\"" >> $@
+	+make -C $(BB_PATH) prepare O=$(@D) $(BB_PREPARE_FLAGS)
 
 
-KERNEL_MODULES_DIR ?= /system/lib/modules
-BUSYBOX_CONFIG := minimal full
-$(BUSYBOX_CONFIG):
-	@echo -e ${CL_PFX}"prepare config for busybox $@ profile"${CL_RST}
-	@cd $(BB_PATH) && make clean
-	@cd $(BB_PATH) && git clean -f -- ./include-$@/
-	cp $(BB_PATH)/.config-$@ $(BB_PATH)/.config
-	echo "CONFIG_CROSS_COMPILER_PREFIX=\"$(BUSYBOX_CROSS_COMPILER_PREFIX)\"" >> $(BB_PATH)/.config
-	cd $(BB_PATH) && make prepare
-	@#cp $(BB_PATH)/.config $(BB_PATH)/.config-$@
-	@mkdir -p $(BB_PATH)/include-$@
-	cp $(BB_PATH)/include/*.h $(BB_PATH)/include-$@/
-	@rm $(BB_PATH)/include/usage_compressed.h
-	@rm $(BB_PATH)/include/autoconf.h
-	@rm -f $(BB_PATH)/.config-old
-
-busybox_prepare: $(BUSYBOX_CONFIG)
-LOCAL_MODULE := busybox_prepare
-LOCAL_MODULE_TAGS := eng debug
-include $(BUILD_STATIC_LIBRARY)
-
+#####################################################################
 
 LOCAL_PATH := $(BB_PATH)
 include $(CLEAR_VARS)
@@ -73,63 +70,53 @@
 
 SUBMAKE := make -s -C $(BB_PATH) CC=$(CC)
 
-BUSYBOX_SRC_FILES = $(shell cat $(BB_PATH)/busybox-$(BUSYBOX_CONFIG).sources) \
-	libbb/android.c
+BUSYBOX_SRC_FILES = \
+	$(shell cat $(BB_PATH)/busybox-$(BUSYBOX_CONFIG).sources) \
+	android/libc/mktemp.c \
+	android/libc/pty.c \
+	android/android.c
 
-ifeq ($(TARGET_ARCH),arm)
-	BUSYBOX_SRC_FILES += \
-	android/libc/arch-arm/syscalls/adjtimex.S \
-	android/libc/arch-arm/syscalls/getsid.S \
-	android/libc/arch-arm/syscalls/stime.S \
-	android/libc/arch-arm/syscalls/swapon.S \
-	android/libc/arch-arm/syscalls/swapoff.S \
-	android/libc/arch-arm/syscalls/sysinfo.S
+BUSYBOX_ASM_FILES =
+ifneq ($(BIONIC_L),true)
+    BUSYBOX_ASM_FILES += swapon.S swapoff.S sysinfo.S
 endif
 
-ifeq ($(TARGET_ARCH),x86)
-	BUSYBOX_SRC_FILES += \
-	android/libc/arch-x86/syscalls/adjtimex.S \
-	android/libc/arch-x86/syscalls/getsid.S \
-	android/libc/arch-x86/syscalls/stime.S \
-	android/libc/arch-x86/syscalls/swapon.S \
-	android/libc/arch-x86/syscalls/swapoff.S \
-	android/libc/arch-x86/syscalls/sysinfo.S
-endif
-
-ifeq ($(TARGET_ARCH),mips)
-	BUSYBOX_SRC_FILES += \
-	android/libc/arch-mips/syscalls/adjtimex.S \
-	android/libc/arch-mips/syscalls/getsid.S \
-	android/libc/arch-mips/syscalls/stime.S \
-	android/libc/arch-mips/syscalls/swapon.S \
-	android/libc/arch-mips/syscalls/swapoff.S \
-	android/libc/arch-mips/syscalls/sysinfo.S
+ifneq ($(filter arm x86 mips,$(TARGET_ARCH)),)
+    BUSYBOX_SRC_FILES += \
+        $(addprefix android/libc/arch-$(TARGET_ARCH)/syscalls/,$(BUSYBOX_ASM_FILES))
 endif
 
 BUSYBOX_C_INCLUDES = \
-	$(BB_PATH)/include-$(BUSYBOX_CONFIG) \
 	$(BB_PATH)/include $(BB_PATH)/libbb \
-	bionic/libc \
 	bionic/libc/private \
-	bionic/libc/dns/include \
 	bionic/libm/include \
+	bionic/libc \
 	bionic/libm \
 	libc/kernel/common \
+	external/libselinux/include \
+	external/selinux/libsepol/include \
 	$(BB_PATH)/android/regex \
 	$(BB_PATH)/android/librpc
 
 BUSYBOX_CFLAGS = \
-	-Werror=implicit \
+	-Werror=implicit -Wno-clobbered \
 	-DNDEBUG \
 	-DANDROID \
 	-fno-strict-aliasing \
-	-include include-$(BUSYBOX_CONFIG)/autoconf.h \
+	-fno-builtin-stpcpy \
+	-include $(bb_gen)/$(BUSYBOX_CONFIG)/include/autoconf.h \
 	-D'CONFIG_DEFAULT_MODULES_DIR="$(KERNEL_MODULES_DIR)"' \
 	-D'BB_VER="$(strip $(shell $(SUBMAKE) kernelversion)) $(BUSYBOX_SUFFIX)"' -DBB_BT=AUTOCONF_TIMESTAMP
 
-# to handle differences in ICS (ipv6)
+ifeq ($(BIONIC_L),true)
+    BUSYBOX_CFLAGS += -DBIONIC_L
+    BUSYBOX_AFLAGS += -DBIONIC_L
+    # include changes for ICS/JB/KK
+    BIONIC_ICS := true
+endif
+
 ifeq ($(BIONIC_ICS),true)
-BUSYBOX_CFLAGS += -DBIONIC_ICS
+    BUSYBOX_CFLAGS += -DBIONIC_ICS
 endif
 
 
@@ -138,20 +125,21 @@
 BUSYBOX_CONFIG:=minimal
 BUSYBOX_SUFFIX:=static
 LOCAL_SRC_FILES := $(BUSYBOX_SRC_FILES)
-LOCAL_C_INCLUDES := $(BUSYBOX_C_INCLUDES)
+LOCAL_C_INCLUDES := $(bb_gen)/minimal/include $(BUSYBOX_C_INCLUDES)
 LOCAL_CFLAGS := -Dmain=busybox_driver $(BUSYBOX_CFLAGS)
 LOCAL_CFLAGS += \
+  -DRECOVERY_VERSION \
   -Dgetusershell=busybox_getusershell \
   -Dsetusershell=busybox_setusershell \
   -Dendusershell=busybox_endusershell \
-  -Dttyname_r=busybox_ttyname_r \
   -Dgetmntent=busybox_getmntent \
   -Dgetmntent_r=busybox_getmntent_r \
   -Dgenerate_uuid=busybox_generate_uuid
+LOCAL_ASFLAGS := $(BUSYBOX_AFLAGS)
 LOCAL_MODULE := libbusybox
 LOCAL_MODULE_TAGS := eng debug
-LOCAL_STATIC_LIBRARIES := libcutils libc libm
-$(LOCAL_MODULE): busybox_prepare
+LOCAL_STATIC_LIBRARIES := libcutils libc libm libselinux
+LOCAL_ADDITIONAL_DEPENDENCIES := $(busybox_prepare_minimal)
 include $(BUILD_STATIC_LIBRARY)
 
 
@@ -163,18 +151,15 @@
 BUSYBOX_CONFIG:=full
 BUSYBOX_SUFFIX:=bionic
 LOCAL_SRC_FILES := $(BUSYBOX_SRC_FILES)
-ifeq ($(BIONIC_ICS),true)
-LOCAL_SRC_FILES += android/libc/__set_errno.c
-endif
-LOCAL_C_INCLUDES := $(BUSYBOX_C_INCLUDES)
+LOCAL_C_INCLUDES := $(bb_gen)/full/include $(BUSYBOX_C_INCLUDES)
 LOCAL_CFLAGS := $(BUSYBOX_CFLAGS)
-LOCAL_LDFLAGS += -Wl,--no-fatal-warnings
+LOCAL_ASFLAGS := $(BUSYBOX_AFLAGS)
 LOCAL_MODULE := busybox
 LOCAL_MODULE_TAGS := eng debug
 LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
 LOCAL_SHARED_LIBRARIES := libc libcutils libm
-LOCAL_STATIC_LIBRARIES := libclearsilverregex libuclibcrpc
-$(LOCAL_MODULE): busybox_prepare
+LOCAL_STATIC_LIBRARIES := libclearsilverregex libuclibcrpc libselinux
+LOCAL_ADDITIONAL_DEPENDENCIES := $(busybox_prepare_full)
 include $(BUILD_EXECUTABLE)
 
 BUSYBOX_LINKS := $(shell cat $(BB_PATH)/busybox-$(BUSYBOX_CONFIG).links)
@@ -183,7 +168,7 @@
 SYMLINKS := $(addprefix $(TARGET_OUT_OPTIONAL_EXECUTABLES)/,$(filter-out $(exclude),$(notdir $(BUSYBOX_LINKS))))
 $(SYMLINKS): BUSYBOX_BINARY := $(LOCAL_MODULE)
 $(SYMLINKS): $(LOCAL_INSTALLED_MODULE)
-	@echo "Symlink: $@ -> $(BUSYBOX_BINARY)"
+	@echo -e ${CL_CYN}"Symlink:"${CL_RST}" $@ -> $(BUSYBOX_BINARY)"
 	@mkdir -p $(dir $@)
 	@rm -rf $@
 	$(hide) ln -sf $(BUSYBOX_BINARY) $@
@@ -204,25 +189,25 @@
 BUSYBOX_CONFIG:=full
 BUSYBOX_SUFFIX:=static
 LOCAL_SRC_FILES := $(BUSYBOX_SRC_FILES)
-LOCAL_C_INCLUDES := $(BUSYBOX_C_INCLUDES)
+LOCAL_C_INCLUDES := $(bb_gen)/full/include $(BUSYBOX_C_INCLUDES)
 LOCAL_CFLAGS := $(BUSYBOX_CFLAGS)
 LOCAL_CFLAGS += \
   -Dgetusershell=busybox_getusershell \
   -Dsetusershell=busybox_setusershell \
   -Dendusershell=busybox_endusershell \
-  -Dttyname_r=busybox_ttyname_r \
   -Dgetmntent=busybox_getmntent \
   -Dgetmntent_r=busybox_getmntent_r \
   -Dgenerate_uuid=busybox_generate_uuid
-LOCAL_LDFLAGS += -Wl,--no-fatal-warnings
+LOCAL_ASFLAGS := $(BUSYBOX_AFLAGS)
 LOCAL_FORCE_STATIC_EXECUTABLE := true
 LOCAL_MODULE := static_busybox
 LOCAL_MODULE_STEM := busybox
 LOCAL_MODULE_TAGS := optional
-LOCAL_STATIC_LIBRARIES := libclearsilverregex libc libcutils libm libuclibcrpc
+LOCAL_STATIC_LIBRARIES := libclearsilverregex libc libcutils libm libuclibcrpc libselinux
 LOCAL_MODULE_CLASS := UTILITY_EXECUTABLES
 LOCAL_MODULE_PATH := $(PRODUCT_OUT)/utilities
 LOCAL_UNSTRIPPED_PATH := $(PRODUCT_OUT)/symbols/utilities
 $(LOCAL_MODULE): busybox_prepare
 LOCAL_PACK_MODULE_RELOCATIONS := false
+LOCAL_ADDITIONAL_DEPENDENCIES := $(busybox_prepare_full)
 include $(BUILD_EXECUTABLE)
diff --git a/CleanSpec.mk b/CleanSpec.mk
index d270287..92152f4 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -38,14 +38,28 @@
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
 # ************************************************
 
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/busybox_prepare_intermediates)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/include/busybox-*)
+# Note: this is not really required, but remember only the added lines
+# will be executed (see $OUT/clean_steps.mk value for the current line)
+
+$(call add-clean-step, rm -f $(PRODUCT_OUT)/utilities/busybox)
+$(call add-clean-step, rm -f $(PRODUCT_OUT)/symbols/system/xbin/busybox)
 
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES/busybox_intermediates)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libbusybox_intermediates)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/UTILITY_EXECUTABLES/static_busybox_intermediates)
 
-$(call add-clean-step, rm $(PRODUCT_OUT)/symbols/system/xbin/busybox)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/busybox)
+
+# remains from old build system */
+$(call add-clean-step, rm -f external/busybox/include/bbconfigopts.h)
+$(call add-clean-step, rm -f external/busybox/include/autoconf.h)
+$(call add-clean-step, rm -f external/busybox/include/applet_tables.h)
+$(call add-clean-step, rm -f external/busybox/include/applets.h)
+$(call add-clean-step, rm -f external/busybox/.config)
+
+# force prepare
+$(call add-clean-step, touch external/busybox/busybox-minimal.config)
+$(call add-clean-step, touch external/busybox/busybox-full.config)
 
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/Config.in b/Config.in
index 03c2d03..2c4be2e 100644
--- a/Config.in
+++ b/Config.in
@@ -161,12 +161,13 @@
 	  Internal implementation is smaller.
 
 config FEATURE_CHECK_UNICODE_IN_ENV
-	bool "Check $LANG environment variable"
+	bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
 	default n
 	depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
 	help
 	  With this option on, Unicode support is activated
-	  only if LANG variable has the value of the form "xxxx.utf8"
+	  only if locale-related variables have the value of the form
+	  "xxxx.utf8"
 
 	  Otherwise, Unicode support will be always enabled and active.
 
diff --git a/Makefile b/Makefile
index 81a6bda..111adc0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,15 @@
 VERSION = 1
-PATCHLEVEL = 21
+PATCHLEVEL = 22
 SUBLEVEL = 1
-EXTRAVERSION = -jb
+EXTRAVERSION =
 NAME = bionic
 
+# prevent local tree builds in bionic,
+# but allow initial version check (SUBMAKE)
+ifeq (,$(filter s, $(MAKEFLAGS)))
+    KBUILD_OUTPUT ?= $(OUT)/obj/busybox
+endif
+
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
 # More info can be located in ./README
@@ -104,7 +110,8 @@
 saved-output := $(KBUILD_OUTPUT)
 KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd)
 $(if $(KBUILD_OUTPUT),, \
-     $(error output directory "$(saved-output)" does not exist))
+     $(warning output directory "$(saved-output)" does not exist) \
+	$(error On AOSP repo, type 'mma' to build or set O=out/<folder> ))
 
 PHONY += $(MAKECMDGOALS)
 
diff --git a/Makefile.custom b/Makefile.custom
index 6da79e6..8c95ef2 100644
--- a/Makefile.custom
+++ b/Makefile.custom
@@ -3,7 +3,12 @@
 # ==========================================================================
 
 busybox.links: $(srctree)/applets/busybox.mkll $(objtree)/include/autoconf.h include/applets.h
-	$(Q)-$(SHELL) $^ >$@
+	$(Q)-$(SHELL) $^ > $@
+
+busybox.cfg.suid: $(srctree)/applets/busybox.mksuid $(objtree)/include/autoconf.h include/applets.h
+	$(Q)-SUID="yes" $(SHELL) $^ > $@
+busybox.cfg.nosuid: $(srctree)/applets/busybox.mksuid $(objtree)/include/autoconf.h include/applets.h
+	$(Q)-SUID="DROP" $(SHELL) $^ > $@
 
 .PHONY: install
 ifeq ($(CONFIG_INSTALL_APPLET_SYMLINKS),y)
@@ -69,6 +74,10 @@
 		-print \
 		-exec rm -r -f {} \; ; \
 	find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type f \
+		-name .gitignore \
+		-print \
+		-exec rm -f {} \; ; \
+	find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type f \
 		-name .\#* \
 		-print \
 		-exec rm -f {} \; ; \
diff --git a/README b/README
index e8d9302..4814372 100644
--- a/README
+++ b/README
@@ -6,20 +6,24 @@
 
 WARNING : THIS IS A BIONIC VERSION OF BUSYBOX, DO NOT USE "make" IN THIS TREE
 
-This tree has multiple configurations,
+This tree has multiple configurations (busybox and recovery lib),
 
-- select the wanted config profile (full or minimal) :
-  cp .config-full .config
+- lunch your device to prepare the environment
+- edit the wanted config profile (ie busybox-full.config)
 
-- type "make menuconfig" to update .config
-- type "make prepare" to generate include/ files
-- copy the generated files in include-full/ or include-minimal/
+- type "mma" in external/busybox to build with the dependencies
 
-  (there is a script to copy files inside these directories)
+ Finally copy $OUT/obj/busybox/full/.config to the source tree without
+ the CONFIG_CROSS_COMPILER_PREFIX line! (to stay compatible with x86 targets)
 
- finally copy .config to .config-full or .config-minimal
+    bb_obj=$OUT/obj/busybox/full
+    cat $bb_obj/.config | grep -v CROSS_COMPILER_ > busybox-full.config
 
- please also check busybox-profile.links and busybox-profile.sources
+    bb_obj=$OUT/obj/busybox/minimal
+    cat $bb_obj/.config | grep -v CROSS_COMPILER_ > busybox-minimal.config
+
+ If you add or remove some applets,
+ please also update busybox-<profile>.links and busybox-<profile>.sources
 
 ----------------
 
diff --git a/TODO b/TODO
index 4436469..dcf48c2 100644
--- a/TODO
+++ b/TODO
@@ -127,20 +127,6 @@
 
   And while we're at it, a new patch filename quoting format is apparently
   coming soon:  http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2
----
-stty / catv
-  stty's visible() function and catv's guts are identical. Merge them into
-  an appropriate libbb function.
----
-struct suffix_mult
-  Several duplicate users of: grep -r "1024\*1024" * -B2 -A1
-  Merge to a single size_suffixes[] in libbb.
-  Users: head tail od_bloaty hexdump and (partially as it wouldn't hurt) svlogd
----
-tail
-  ./busybox tail -f foo.c~ TODO
-  should not print fmt=header_fmt for subsequent date >> TODO; i.e. only
-  fmt+ if another (not the current) file did change
 
 Architectural issues:
 
@@ -234,8 +220,6 @@
   See grep -r strtod
   Alot of duplication that wants cleanup.
 ---
-  in_ether duplicated in network/{interface,ifconfig}.c
----
   unify progress_meter. wget, flash_eraseall, pipe_progress, fbsplash, setfiles.
 ---
   support start-stop-daemon -d <chdir-path>
diff --git a/libbb/android.c b/android/android.c
similarity index 75%
rename from libbb/android.c
rename to android/android.c
index 8f2c3c4..62d25a8 100644
--- a/libbb/android.c
+++ b/android/android.c
@@ -10,22 +10,22 @@
 #include <stdlib.h>
 #include "libbb.h"
 
-/* declared in stdlib.h */
-int clearenv()
+#ifndef BIONIC_ICS
+int clearenv(void)
 {
-	environ = NULL;
-	return 0;
-}
+	char **P = environ;
 
-/* bionic/stubs.c:ttyname not implemented anyway */
-int ttyname_r(int fd, char *name, size_t namesize)
-{
-	char *t = ttyname(fd);
-	if (!t)
-		return -1;
-	strncpy(name, ttyname(fd), namesize);
+	/* should never be NULL */
+	if (!environ)
+		environ = (char **)xzalloc(sizeof(char *));
+
+	if (P != NULL) {
+		for (; *P; ++P)
+			*P = NULL;
+	}
 	return 0;
 }
+#endif
 
 /* no /etc/shells anyway */
 char *getusershell() { return NULL; }
@@ -70,19 +70,19 @@
 }
 
 /* not used anyway */
-int addmntent(FILE *fp, const struct mntent *mnt)
+int addmntent(FILE *fp UNUSED_PARAM, const struct mntent *mnt UNUSED_PARAM)
 {
 	errno = ENOENT;
 	return 1;
 }
 
-const char *hasmntopt(const struct mntent *mnt, const char *opt)
+char *hasmntopt(const struct mntent *mnt, const char *opt)
 {
-	const char *o = mnt->mnt_opts;
+	char *o = mnt->mnt_opts;
 	size_t l = strlen(opt);
 
-	while ((o = strstr(o, opt)) && 
-			((o > mnt->mnt_opts && o[-1] != ',') || 
+	while ((o = strstr(o, opt)) &&
+			((o > mnt->mnt_opts && o[-1] != ',') ||
 			 (o[l] != 0 && o[l] != ',' && o[l] != '=')));
 	return o;
 }
diff --git a/android/libc/__set_errno.c b/android/libc/__set_errno.c
index 163d404..ed832e9 100644
--- a/android/libc/__set_errno.c
+++ b/android/libc/__set_errno.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2014 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,29 +28,16 @@
 
 #include <errno.h>
 
+#ifdef __LP64__
 
-int __set_errno(int n)
+/* __set_errno was mistakenly exposed in <errno.h> in the 32-bit NDK.
+ * but is no more present for 64-bit targets!
+ */
+
+long __set_errno(int n)
 {
     errno = n;
     return -1;
 }
 
-/*
- * this function is called from syscall stubs,
- * (tail-called in the case of 0-4 arg versions)
- */
-
-__LIBC_HIDDEN__
-int __set_syscall_errno(int n)
-{
-        /* some syscalls, mmap() for example, have valid return
-        ** values that are "negative".  Since errno values are not
-        ** greater than 131 on Linux, we will just consider 
-        ** anything significantly out of range as not-an-error
-        */
-    if(n > -256) {
-        return __set_errno(-n);
-    } else {
-        return n;
-    }
-}
+#endif
diff --git a/android/libc/arch-arm/syscalls/adjtimex.S b/android/libc/arch-arm/syscalls/adjtimex.S
deleted file mode 100644
index dabdb90..0000000
--- a/android/libc/arch-arm/syscalls/adjtimex.S
+++ /dev/null
@@ -1,19 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <asm/unistd.h>
-
-    .text
-    .type adjtimex, #function
-    .globl adjtimex
-    .align 4
-    .fnstart
-
-adjtimex:
-    .save   {r4, r7}
-    stmfd   sp!, {r4, r7}
-    ldr     r7, =__NR_adjtimex
-    swi     #0
-    ldmfd   sp!, {r4, r7}
-    movs    r0, r0
-    bxpl    lr
-    b       __set_errno
-    .fnend
diff --git a/android/libc/arch-arm/syscalls/getsid.S b/android/libc/arch-arm/syscalls/getsid.S
deleted file mode 100644
index fd9e9ee..0000000
--- a/android/libc/arch-arm/syscalls/getsid.S
+++ /dev/null
@@ -1,19 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <asm/unistd.h>
-
-    .text
-    .type getsid, #function
-    .globl getsid
-    .align 4
-    .fnstart
-
-getsid:
-    .save   {r4, r7}
-    stmfd   sp!, {r4, r7}
-    ldr     r7, =__NR_getsid
-    swi     #0
-    ldmfd   sp!, {r4, r7}
-    movs    r0, r0
-    bxpl    lr
-    b       __set_errno
-    .fnend
diff --git a/android/libc/arch-arm/syscalls/stime.S b/android/libc/arch-arm/syscalls/stime.S
deleted file mode 100644
index e53684c..0000000
--- a/android/libc/arch-arm/syscalls/stime.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#define __KERNEL__
-#include <asm/unistd.h>
-
-#ifndef __NR_stime
-#define __NR_stime (__NR_SYSCALL_BASE + 25)
-#endif
-
-    .text
-    .type stime, #function
-    .globl stime
-    .align 4
-    .fnstart
-
-stime:
-    .save   {r4, r7}
-    stmfd   sp!, {r4, r7}
-    ldr     r7, =__NR_stime
-    swi     #0
-    ldmfd   sp!, {r4, r7}
-    movs    r0, r0
-    bxpl    lr
-    b       __set_errno
-    .fnend
diff --git a/android/libc/arch-mips/syscalls/adjtimex.S b/android/libc/arch-mips/syscalls/adjtimex.S
deleted file mode 100644
index 4779c43..0000000
--- a/android/libc/arch-mips/syscalls/adjtimex.S
+++ /dev/null
@@ -1,22 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <asm/unistd.h>
-    .text
-    .globl adjtimex
-    .align 4
-    .ent adjtimex
-    
-adjtimex:
-    .set noreorder
-    .cpload $t9
-    li $v0, (4000+124)
-    syscall
-    bnez $a3, 1f
-     move $a0, $v0
-    j $ra
-     nop
-1:
-    la $t9,__set_errno
-    j $t9
-     nop
-    .set reorder
-    .end adjtimex
diff --git a/android/libc/arch-mips/syscalls/getsid.S b/android/libc/arch-mips/syscalls/getsid.S
deleted file mode 100644
index c960407..0000000
--- a/android/libc/arch-mips/syscalls/getsid.S
+++ /dev/null
@@ -1,22 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <asm/unistd.h>
-    .text
-    .globl getsid
-    .align 4
-    .ent getsid
-    
-getsid:
-    .set noreorder
-    .cpload $t9
-    li $v0, (4000+151)
-    syscall
-    bnez $a3, 1f
-     move $a0, $v0
-    j $ra
-     nop
-1:
-    la $t9,__set_errno
-    j $t9
-     nop
-    .set reorder
-    .end getsid
diff --git a/android/libc/arch-mips/syscalls/stime.S b/android/libc/arch-mips/syscalls/stime.S
deleted file mode 100644
index 141aef6..0000000
--- a/android/libc/arch-mips/syscalls/stime.S
+++ /dev/null
@@ -1,22 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <asm/unistd.h>
-    .text
-    .globl stime
-    .align 4
-    .ent stime
-    
-stime:
-    .set noreorder
-    .cpload $t9
-    li $v0, (4000+25)
-    syscall
-    bnez $a3, 1f
-     move $a0, $v0
-    j $ra
-     nop
-1:
-    la $t9,__set_errno
-    j $t9
-     nop
-    .set reorder
-    .end stime
diff --git a/android/libc/arch-x86/syscalls/adjtimex.S b/android/libc/arch-x86/syscalls/adjtimex.S
deleted file mode 100644
index 869baf0..0000000
--- a/android/libc/arch-x86/syscalls/adjtimex.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <linux/err.h>
-#include <asm/unistd.h>
-
-    .text
-    .type adjtimex, @function
-    .globl adjtimex
-    .align 4
-
-
-adjtimex:
-    pushl   %ebx
-    mov     8(%esp), %ebx
-    movl    $__NR_adjtimex, %eax
-    int     $0x80
-    cmpl    $-MAX_ERRNO, %eax
-    jb      1f
-    negl    %eax
-    pushl   %eax
-    call    __set_errno
-    addl    $4, %esp
-    orl     $-1, %eax
-1:
-    popl    %ebx
-    ret
-
diff --git a/android/libc/arch-x86/syscalls/getsid.S b/android/libc/arch-x86/syscalls/getsid.S
deleted file mode 100644
index 6fe39eb..0000000
--- a/android/libc/arch-x86/syscalls/getsid.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <linux/err.h>
-#include <asm/unistd.h>
-
-    .text
-    .type getsid, @function
-    .globl getsid
-    .align 4
-
-getsid:
-    pushl   %ebx
-    mov     8(%esp), %ebx
-    movl    $__NR_getsid, %eax
-    int     $0x80
-    cmpl    $-MAX_ERRNO, %eax
-    jb      1f
-    negl    %eax
-    pushl   %eax
-    call    __set_errno
-    addl    $4, %esp
-    orl     $-1, %eax
-1:
-    popl    %ebx
-    ret
-
diff --git a/android/libc/arch-x86/syscalls/stime.S b/android/libc/arch-x86/syscalls/stime.S
deleted file mode 100644
index 185e26f..0000000
--- a/android/libc/arch-x86/syscalls/stime.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <linux/err.h>
-#include <asm/unistd.h>
-
-    .text
-    .type stime, @function
-    .globl stime
-    .align 4
-
-
-stime:
-    pushl   %ebx
-    mov     8(%esp), %ebx
-    movl    $__NR_stime, %eax
-    int     $0x80
-    cmpl    $-MAX_ERRNO, %eax
-    jb      1f
-    negl    %eax
-    pushl   %eax
-    call    __set_errno
-    addl    $4, %esp
-    orl     $-1, %eax
-1:
-    popl    %ebx
-    ret
-    
diff --git a/android/libc/arch-x86/syscalls/swapoff.S b/android/libc/arch-x86/syscalls/swapoff.S
index f13833c..5b4ee06 100644
--- a/android/libc/arch-x86/syscalls/swapoff.S
+++ b/android/libc/arch-x86/syscalls/swapoff.S
@@ -1,6 +1,12 @@
 /* autogenerated by gensyscalls.py */
-#include <linux/err.h>
-#include <asm/unistd.h>
+
+#ifdef BIONIC_L
+# include <private/bionic_asm.h>
+#else
+# include <asm/unistd.h>
+# include <linux/err.h>
+# include <machine/asm.h>
+#endif
 
     .text
     .type swapoff, @function
diff --git a/android/libc/arch-x86/syscalls/swapon.S b/android/libc/arch-x86/syscalls/swapon.S
index fe554a6..957173e 100644
--- a/android/libc/arch-x86/syscalls/swapon.S
+++ b/android/libc/arch-x86/syscalls/swapon.S
@@ -1,6 +1,13 @@
 /* autogenerated by gensyscalls.py */
-#include <linux/err.h>
-#include <asm/unistd.h>
+
+#ifdef BIONIC_L
+# include <private/bionic_asm.h>
+#else
+# include <asm/unistd.h>
+# include <asm/unistd.h>
+# include <linux/err.h>
+# include <machine/asm.h>
+#endif
 
     .text
     .type swapon, @function
diff --git a/android/libc/arch-x86/syscalls/sysinfo.S b/android/libc/arch-x86/syscalls/sysinfo.S
index bafe20d..ea73dc0 100644
--- a/android/libc/arch-x86/syscalls/sysinfo.S
+++ b/android/libc/arch-x86/syscalls/sysinfo.S
@@ -1,6 +1,12 @@
 /* autogenerated by gensyscalls.py */
-#include <linux/err.h>
-#include <asm/unistd.h>
+
+#ifdef BIONIC_L
+# include <private/bionic_asm.h>
+#else
+# include <asm/unistd.h>
+# include <linux/err.h>
+# include <machine/asm.h>
+#endif
 
     .text
     .type sysinfo, @function
diff --git a/android/libc/mktemp.c b/android/libc/mktemp.c
new file mode 100644
index 0000000..0b2e933
--- /dev/null
+++ b/android/libc/mktemp.c
@@ -0,0 +1,165 @@
+/*
+ * Copyright (c) 1987, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+static char sccsid[] = "@(#)mktemp.c	8.1 (Berkeley) 6/4/93";
+#endif /* LIBC_SCCS and not lint */
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <unistd.h>
+
+extern u_int32_t arc4random_uniform(u_int32_t);
+#define _open open
+
+static int _gettemp(char *, int *, int, int);
+
+static const char padchar[] =
+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+static char *
+_mktemp(char *path)
+{
+	return (_gettemp(path, (int *)NULL, 0, 0) ? path : (char *)NULL);
+}
+
+char *
+bb_mktemp(char *path)
+{
+	return (_mktemp(path));
+}
+
+static int
+_gettemp(char *path, int *doopen, int domkdir, int slen)
+{
+	char *start, *trv, *suffp, *carryp;
+	char *pad;
+	struct stat sbuf;
+	int rval;
+	uint32_t rand;
+	char carrybuf[MAXPATHLEN];
+
+	if ((doopen != NULL && domkdir) || slen < 0) {
+		errno = EINVAL;
+		return (0);
+	}
+
+	for (trv = path; *trv != '\0'; ++trv)
+		;
+	if (trv - path >= MAXPATHLEN) {
+		errno = ENAMETOOLONG;
+		return (0);
+	}
+	trv -= slen;
+	suffp = trv;
+	--trv;
+	if (trv < path || NULL != strchr(suffp, '/')) {
+		errno = EINVAL;
+		return (0);
+	}
+
+	/* Fill space with random characters */
+	while (trv >= path && *trv == 'X') {
+		rand = arc4random_uniform(sizeof(padchar) - 1);
+		*trv-- = padchar[rand];
+	}
+	start = trv + 1;
+
+	/* save first combination of random characters */
+	memcpy(carrybuf, start, suffp - start);
+
+	/*
+	 * check the target directory.
+	 */
+	if (doopen != NULL || domkdir) {
+		for (; trv > path; --trv) {
+			if (*trv == '/') {
+				*trv = '\0';
+				rval = stat(path, &sbuf);
+				*trv = '/';
+				if (rval != 0)
+					return (0);
+				if (!S_ISDIR(sbuf.st_mode)) {
+					errno = ENOTDIR;
+					return (0);
+				}
+				break;
+			}
+		}
+	}
+
+	for (;;) {
+		if (doopen) {
+			if ((*doopen =
+			    _open(path, O_CREAT|O_EXCL|O_RDWR, 0600)) >= 0)
+				return (1);
+			if (errno != EEXIST)
+				return (0);
+		} else if (domkdir) {
+			if (mkdir(path, 0700) == 0)
+				return (1);
+			if (errno != EEXIST)
+				return (0);
+		} else if (lstat(path, &sbuf))
+			return (errno == ENOENT);
+
+		/* If we have a collision, cycle through the space of filenames */
+		for (trv = start, carryp = carrybuf;;) {
+			/* have we tried all possible permutations? */
+			if (trv == suffp)
+				return (0); /* yes - exit with EEXIST */
+			pad = strchr(padchar, *trv);
+			if (pad == NULL) {
+				/* this should never happen */
+				errno = EIO;
+				return (0);
+			}
+			/* increment character */
+			*trv = (*++pad == '\0') ? padchar[0] : *pad;
+			/* carry to next position? */
+			if (*trv == *carryp) {
+				/* increment position and loop */
+				++trv;
+				++carryp;
+			} else {
+				/* try with new name */
+				break;
+			}
+		}
+	}
+	/*NOTREACHED*/
+}
diff --git a/android/libc/pty.c b/android/libc/pty.c
new file mode 100644
index 0000000..2765221
--- /dev/null
+++ b/android/libc/pty.c
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* #ifndef BIONIC_L (implementation was made after BIONIC_L (l-preview) */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <termios.h>
+#include <unistd.h>
+
+#include <fcntl.h>
+/* if this constant is not defined, we are
+   ttyname is not in bionic */
+#ifndef SPLICE_F_GIFT
+
+int posix_openpt(int flags) {
+  return open("/dev/ptmx", flags);
+}
+
+int getpt(void) {
+  return posix_openpt(O_RDWR|O_NOCTTY);
+}
+
+#ifndef __BIONIC__
+int grantpt(int) {
+  return 0;
+}
+#endif
+
+char* ptsname(int fd) {
+  static char buf[64];
+  return ptsname_r(fd, buf, sizeof(buf)) == 0 ? buf : NULL;
+}
+
+int ptsname_r(int fd, char* buf, size_t len) {
+  if (buf == NULL) {
+    errno = EINVAL;
+    return errno;
+  }
+
+  unsigned int pty_num;
+  if (ioctl(fd, TIOCGPTN, &pty_num) != 0) {
+    errno = ENOTTY;
+    return errno;
+  }
+
+  if (snprintf(buf, len, "/dev/pts/%u", pty_num) >= (int) len) {
+    errno = ERANGE;
+    return errno;
+  }
+
+  return 0;
+}
+
+int bb_ttyname_r(int fd, char* buf, size_t len) {
+  if (buf == NULL) {
+    errno = EINVAL;
+    return errno;
+  }
+
+  if (!isatty(fd)) {
+    return errno;
+  }
+
+  char path[64];
+  snprintf(path, sizeof(path), "/proc/self/fd/%d", fd);
+
+  ssize_t count = readlink(path, buf, len);
+  if (count == -1) {
+    return errno;
+  }
+  if ((size_t) (count) == len) {
+    errno = ERANGE;
+    return errno;
+  }
+  buf[count] = '\0';
+  return 0;
+}
+
+char* bb_ttyname(int fd) {
+  static char buf[64];
+  return bb_ttyname_r(fd, buf, sizeof(buf)) == 0 ? buf : NULL;
+}
+
+int unlockpt(int fd) {
+  int unlock = 0;
+  return ioctl(fd, TIOCSPTLCK, &unlock);
+}
+
+#endif
diff --git a/android/librpc/bindresvport.c b/android/librpc/bindresvport.c
index 893873e..0181612 100644
--- a/android/librpc/bindresvport.c
+++ b/android/librpc/bindresvport.c
@@ -38,6 +38,7 @@
 #include <string.h>
 #ifdef ANDROID
 #include <rpc/types.h>
+extern long __set_errno(int n);
 #else
 #include <sys/types.h>
 #endif
diff --git a/android/librpc/clnt_udp.c b/android/librpc/clnt_udp.c
index aca3e33..34fc9ab 100644
--- a/android/librpc/clnt_udp.c
+++ b/android/librpc/clnt_udp.c
@@ -42,6 +42,7 @@
 
 #include <stdio.h>
 #include <unistd.h>
+#include <string.h>
 #include <rpc/rpc.h>
 #include <rpc/xdr.h>
 #include <rpc/clnt.h>
diff --git a/android/librpc/clnt_unix.c b/android/librpc/clnt_unix.c
index 9870149..9626947 100644
--- a/android/librpc/clnt_unix.c
+++ b/android/librpc/clnt_unix.c
@@ -53,6 +53,7 @@
 #include <errno.h>
 #include <stdio.h>
 #include <unistd.h>
+#include <string.h>
 #include <rpc/rpc.h>
 #include <sys/uio.h>
 #include <sys/poll.h>
diff --git a/android/librpc/pmap_rmt.c b/android/librpc/pmap_rmt.c
index d6e576e..e4dbd44 100644
--- a/android/librpc/pmap_rmt.c
+++ b/android/librpc/pmap_rmt.c
@@ -59,8 +59,8 @@
 #include <arpa/inet.h>
 #define MAX_BROADCAST_SIZE 1400
 
-#ifdef ANDROID
-struct in_addr inet_makeaddr(in_addr_t net, in_addr_t host)
+#if defined(ANDROID) && !defined(BIONIC_L)
+static struct in_addr inet_makeaddr(in_addr_t net, in_addr_t host)
 {
 	struct in_addr a;
 
@@ -75,7 +75,7 @@
 	a.s_addr = htonl(a.s_addr);
 	return a;
 }
-in_addr_t inet_netof(struct in_addr in)
+static in_addr_t inet_netof(struct in_addr in)
 {
 	in_addr_t i = ntohl(in.s_addr);
 
diff --git a/android/librpc/rpc_dtablesize.c b/android/librpc/rpc_dtablesize.c
index 692e8fc..0bd3a1c 100644
--- a/android/librpc/rpc_dtablesize.c
+++ b/android/librpc/rpc_dtablesize.c
@@ -38,6 +38,10 @@
 #include <unistd.h>
 #include <rpc/clnt.h>
 
+#ifdef BIONIC_L
+/* no more in unistd */
+extern int getdtablesize(void);
+#endif
 
 /*
  * Cache the result of getdtablesize(), so we don't have to do an
diff --git a/android/librpc/svc.c b/android/librpc/svc.c
index 0f5300c..9030b2e 100644
--- a/android/librpc/svc.c
+++ b/android/librpc/svc.c
@@ -41,6 +41,7 @@
 
 #include <errno.h>
 #include <unistd.h>
+#include <strings.h>
 #include "rpc_private.h"
 #include <rpc/svc.h>
 #include <rpc/pmap_clnt.h>
diff --git a/android/reboot.c b/android/reboot.c
index 374907d..c412fd6 100644
--- a/android/reboot.c
+++ b/android/reboot.c
@@ -1,50 +1,35 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <cutils/properties.h>
 #include <cutils/android_reboot.h>
 #include <unistd.h>
 
 int reboot_main(int argc, char *argv[])
 {
     int ret;
-    size_t prop_len;
-    char property_val[PROPERTY_VALUE_MAX];
-    const char *cmd = "reboot";
-    char *optarg = "";
+    int nosync = 0;
+    int poweroff = 0;
+    int flags = 0;
 
     opterr = 0;
     do {
         int c;
 
-        c = getopt(argc, argv, "p");
-
+        c = getopt(argc, argv, "np");
+        
         if (c == EOF) {
             break;
         }
-
+        
         switch (c) {
+        case 'n':
+            nosync = 1;
+            break;
         case 'p':
-            cmd = "shutdown";
+            poweroff = 1;
             break;
         case '?':
-            fprintf(stderr, "usage: %s [-p] [rebootcommand]\n", argv[0]);
+            fprintf(stderr, "usage: %s [-n] [-p] [rebootcommand]\n", argv[0]);
             exit(EXIT_FAILURE);
         }
     } while (1);
@@ -54,20 +39,22 @@
         exit(EXIT_FAILURE);
     }
 
-    if (argc > optind)
-        optarg = argv[optind];
+#if 0 // This isn't supported anymore. Sync, always
+    if(nosync)
+        /* also set NO_REMOUNT_RO as remount ro includes an implicit sync */
+        flags = ANDROID_RB_FLAG_NO_SYNC | ANDROID_RB_FLAG_NO_REMOUNT_RO;
+#endif
 
-    prop_len = snprintf(property_val, sizeof(property_val), "%s,%s", cmd, optarg);
-    if (prop_len >= sizeof(property_val)) {
-        fprintf(stderr, "reboot command too long: %s\n", optarg);
-        exit(EXIT_FAILURE);
-    }
-
-    ret = property_set(ANDROID_RB_PROPERTY, property_val);
+    if(poweroff)
+        ret = android_reboot(ANDROID_RB_POWEROFF, flags, 0);
+    else if(argc > optind)
+        ret = android_reboot(ANDROID_RB_RESTART2, flags, argv[optind]);
+    else
+        ret = android_reboot(ANDROID_RB_RESTART, flags, 0);
     if(ret < 0) {
         perror("reboot");
         exit(EXIT_FAILURE);
     }
-    fprintf(stderr, "Done\n");
+    fprintf(stderr, "reboot returned\n");
     return 0;
 }
diff --git a/android/regex/regex.c b/android/regex/bb_regex.c
similarity index 99%
rename from android/regex/regex.c
rename to android/regex/bb_regex.c
index b348d6c..682123c 100644
--- a/android/regex/regex.c
+++ b/android/regex/bb_regex.c
@@ -161,7 +161,7 @@
 #endif /* not emacs */
 
 /* Get the interface, including the syntax bits.  */
-#include "regex.h"
+#include "bb_regex.h"
 
 /* isalpha etc. are used for the character classes.  */
 #include <ctype.h>
@@ -922,7 +922,7 @@
    defined in regex.h.	We return the old syntax.  */
 
 reg_syntax_t
-re_set_syntax (syntax)
+bb_re_set_syntax (syntax)
     reg_syntax_t syntax;
 {
   reg_syntax_t ret = re_syntax_options;
@@ -2917,7 +2917,7 @@
    Returns 0 if we succeed, -2 if an internal error.   */
 
 int
-re_compile_fastmap (bufp)
+bb_re_compile_fastmap (bufp)
      struct re_pattern_buffer *bufp;
 {
   int j, k;
@@ -3223,7 +3223,7 @@
    freeing the old data.  */
 
 void
-re_set_registers (bufp, regs, num_regs, starts, ends)
+bb_re_set_registers (bufp, regs, num_regs, starts, ends)
     struct re_pattern_buffer *bufp;
     struct re_registers *regs;
     unsigned num_regs;
@@ -3250,13 +3250,13 @@
    doesn't let you say where to stop matching. */
 
 int
-re_search (bufp, string, size, startpos, range, regs)
+bb_re_search (bufp, string, size, startpos, range, regs)
      struct re_pattern_buffer *bufp;
      const char *string;
      int size, startpos, range;
      struct re_registers *regs;
 {
-  return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
+  return bb_re_search_2 (bufp, NULL, 0, string, size, startpos, range,
 		      regs, size);
 }
 
@@ -3283,7 +3283,7 @@
    stack overflow).  */
 
 int
-re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
+bb_re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
      struct re_pattern_buffer *bufp;
      const char *string1, *string2;
      int size1, size2;
@@ -3334,7 +3334,7 @@
 
   /* Update the fastmap now if not correct already.  */
   if (fastmap && !bufp->fastmap_accurate)
-    if (re_compile_fastmap (bufp) == -2)
+    if (bb_re_compile_fastmap (bufp) == -2)
       return -2;
 
   /* See whether the pattern is anchored.  */
@@ -3526,7 +3526,7 @@
 /* re_match is like re_match_2 except it takes only a single string.  */
 
 int
-re_match (bufp, string, size, pos, regs)
+bb_re_match (bufp, string, size, pos, regs)
      struct re_pattern_buffer *bufp;
      const char *string;
      int size, pos;
@@ -3554,7 +3554,7 @@
    matched substring.  */
 
 int
-re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
+bb_re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
      struct re_pattern_buffer *bufp;
      const char *string1, *string2;
      int size1, size2;
@@ -5186,7 +5186,7 @@
    We call regex_compile to do the actual compilation.	*/
 
 const char *
-re_compile_pattern (pattern, length, bufp)
+bb_re_compile_pattern (pattern, length, bufp)
      const char *pattern;
      int length;
      struct re_pattern_buffer *bufp;
@@ -5227,7 +5227,7 @@
    regcomp/regexec below without link errors.  */
 weak_function
 #endif
-re_comp (s)
+bb_re_comp (s)
     const char *s;
 {
   reg_errcode_t ret;
@@ -5271,12 +5271,12 @@
 #ifdef _LIBC
 weak_function
 #endif
-re_exec (s)
+bb_re_exec (s)
     const char *s;
 {
   const int len = strlen (s);
   return
-    0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0);
+    0 <= bb_re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0);
 }
 #endif /* _REGEX_RE_COMP */
 
@@ -5321,7 +5321,7 @@
 #ifdef _LIBC
 weak_function
 #endif
-regcomp (preg, pattern, cflags)
+bb_regcomp (preg, pattern, cflags)
     regex_t *preg;
     const char *pattern;
     int cflags;
@@ -5401,7 +5401,7 @@
 #ifdef _LIBC
 weak_function
 #endif
-regexec (preg, string, nmatch, pmatch, eflags)
+bb_regexec (preg, string, nmatch, pmatch, eflags)
     const regex_t *preg;
     const char *string;
     size_t nmatch;
@@ -5434,7 +5434,7 @@
     }
 
   /* Perform the searching operation.  */
-  ret = re_search (&private_preg, string, len,
+  ret = bb_re_search (&private_preg, string, len,
 		   /* start: */ 0, /* range: */ len,
 		   want_reg_info ? &regs : (struct re_registers *) 0);
 
@@ -5471,7 +5471,7 @@
    regcomp/regexec below without link errors.  */
 weak_function
 #endif
-regerror (errcode, preg, errbuf, errbuf_size)
+bb_regerror (errcode, preg, errbuf, errbuf_size)
     int errcode;
     const regex_t *preg;
     char *errbuf;
@@ -5516,7 +5516,7 @@
    regcomp/regexec below without link errors.  */
 weak_function
 #endif
-regfree (preg)
+bb_regfree (preg)
     regex_t *preg;
 {
   if (preg->buffer != NULL)
diff --git a/android/regex/regex.h b/android/regex/bb_regex.h
similarity index 92%
rename from android/regex/regex.h
rename to android/regex/bb_regex.h
index eb1b406..27a08ba 100644
--- a/android/regex/regex.h
+++ b/android/regex/bb_regex.h
@@ -134,6 +134,27 @@
    without further backtracking.  */
 #define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
 
+/* If this bit is set, do not process the GNU regex operators.
+   If not set, then the GNU regex operators are recognized. */
+#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
+
+/* If this bit is set, turn on internal regex debugging.
+   If not set, and debugging was on, turn it off.
+   This only works if regex.c is compiled -DDEBUG.
+   We define this bit always, so that all that's needed to turn on
+   debugging is to recompile regex.c; the calling code can always have
+   this bit set, and it won't affect anything in the normal case. */
+#define RE_DEBUG (RE_NO_GNU_OPS << 1)
+
+/* If this bit is set, a syntactically invalid interval is treated as
+   a string of ordinary characters.  For example, the ERE 'a{1' is
+   treated as 'a\{1'.  */
+#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
+
 /* This global variable defines the particular regexp syntax to use (for
    some interfaces).  When a regexp is compiled, the syntax used is
    stored in the pattern buffer, so changing this does not affect
@@ -404,12 +425,12 @@
 
 /* Sets the current default syntax to SYNTAX, and return the old syntax.
    You can also simply assign to the `re_syntax_options' variable.  */
-extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
+extern reg_syntax_t bb_re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
 
 /* Compile the regular expression PATTERN, with length LENGTH
    and syntax given by the global `re_syntax_options', into the buffer
    BUFFER.  Return NULL if successful, and an error string if not.  */
-extern const char *re_compile_pattern
+extern const char *bb_re_compile_pattern
   _RE_ARGS ((const char *pattern, int length,
              struct re_pattern_buffer *buffer));
 
@@ -417,7 +438,7 @@
 /* Compile a fastmap for the compiled pattern in BUFFER; used to
    accelerate searches.  Return 0 if successful and -2 if was an
    internal error.  */
-extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
+extern int bb_re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
 
 
 /* Search in the string STRING (with length LENGTH) for the pattern
@@ -425,14 +446,14 @@
    characters.  Return the starting position of the match, -1 for no
    match, or -2 for an internal error.  Also return register
    information in REGS (if REGS and BUFFER->no_sub are nonzero).  */
-extern int re_search
+extern int bb_re_search
   _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
             int length, int start, int range, struct re_registers *regs));
 
 
 /* Like `re_search', but search in the concatenation of STRING1 and
    STRING2.  Also, stop searching at index START + STOP.  */
-extern int re_search_2
+extern int bb_re_search_2
   _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
              int length1, const char *string2, int length2,
              int start, int range, struct re_registers *regs, int stop));
@@ -440,13 +461,13 @@
 
 /* Like `re_search', but return how many characters in STRING the regexp
    in BUFFER matched, starting at position START.  */
-extern int re_match
+extern int bb_re_match
   _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
              int length, int start, struct re_registers *regs));
 
 
 /* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
-extern int re_match_2
+extern int bb_re_match_2
   _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
              int length1, const char *string2, int length2,
              int start, struct re_registers *regs, int stop));
@@ -464,25 +485,25 @@
    Unless this function is called, the first search or match using
    PATTERN_BUFFER will allocate its own register data, without
    freeing the old data.  */
-extern void re_set_registers
+extern void bb_re_set_registers
   _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
              unsigned num_regs, regoff_t *starts, regoff_t *ends));
 
 #ifdef _REGEX_RE_COMP
 /* 4.2 bsd compatibility.  */
-extern char *re_comp _RE_ARGS ((const char *));
-extern int re_exec _RE_ARGS ((const char *));
+extern char *bb_re_comp _RE_ARGS ((const char *));
+extern int bb_re_exec _RE_ARGS ((const char *));
 #endif
 
 /* POSIX compatibility.  */
-extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
-extern int regexec
+extern int bb_regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
+extern int bb_regexec
   _RE_ARGS ((const regex_t *preg, const char *string, size_t nmatch,
              regmatch_t pmatch[], int eflags));
-extern size_t regerror
+extern size_t bb_regerror
   _RE_ARGS ((int errcode, const regex_t *preg, char *errbuf,
              size_t errbuf_size));
-extern void regfree _RE_ARGS ((regex_t *preg));
+extern void bb_regfree _RE_ARGS ((regex_t *preg));
 
 #endif /* not __REGEXP_LIBRARY_H__ */
 
diff --git a/android/selinux/android_selinux.h b/android/selinux/android_selinux.h
new file mode 100644
index 0000000..8a0cfb0
--- /dev/null
+++ b/android/selinux/android_selinux.h
@@ -0,0 +1,150 @@
+#ifndef BB_ANDROID_SELINUX_H
+#define BB_ANDROID_SELINUX_H
+
+#include <selinux/selinux.h>
+#include <selinux/label.h>
+#include <selinux/android.h>
+
+/* Set the function used by matchpathcon_init when displaying
+   errors about the file_contexts configuration.  If not set,
+   then this defaults to fprintf(stderr, fmt, ...). */
+extern void set_matchpathcon_printf(void (*f) (const char *fmt, ...));
+
+/* Set the function used by matchpathcon_init when checking the
+   validity of a context in the file contexts configuration.  If not set,
+   then this defaults to a test based on security_check_context().
+   The function is also responsible for reporting any such error, and
+   may include the 'path' and 'lineno' in such error messages. */
+extern void set_matchpathcon_invalidcon(int (*f) (const char *path,
+						  unsigned lineno,
+						  char *context));
+
+/* Same as above, but also allows canonicalization of the context,
+   by changing *context to refer to the canonical form.  If not set,
+   and invalidcon is also not set, then this defaults to calling
+   security_canonicalize_context(). */
+extern void set_matchpathcon_canoncon(int (*f) (const char *path,
+						unsigned lineno,
+						char **context));
+
+/* Set flags controlling operation of matchpathcon_init or matchpathcon. */
+#define MATCHPATHCON_BASEONLY 1	/* Only process the base file_contexts file. */
+#define MATCHPATHCON_NOTRANS  2	/* Do not perform any context translation. */
+#define MATCHPATHCON_VALIDATE 4	/* Validate/canonicalize contexts at init time. */
+extern void set_matchpathcon_flags(unsigned int flags);
+
+/* Load the file contexts configuration specified by 'path'
+   into memory for use by subsequent matchpathcon calls.
+   If 'path' is NULL, then load the active file contexts configuration,
+   i.e. the path returned by selinux_file_context_path().
+   Unless the MATCHPATHCON_BASEONLY flag has been set, this
+   function also checks for a 'path'.homedirs file and
+   a 'path'.local file and loads additional specifications
+   from them if present. */
+extern int matchpathcon_init(const char *path);
+
+/* Same as matchpathcon_init, but only load entries with
+   regexes that have stems that are prefixes of 'prefix'. */
+extern int matchpathcon_init_prefix(const char *path, const char *prefix);
+
+/* Free the memory allocated by matchpathcon_init. */
+extern void matchpathcon_fini(void);
+
+/* Resolve all of the symlinks and relative portions of a pathname, but NOT
+ * the final component (same a realpath() unless the final component is a
+ * symlink.  Resolved path must be a path of size PATH_MAX + 1 */
+extern int realpath_not_final(const char *name, char *resolved_path);
+
+/* Match the specified pathname and mode against the file contexts
+   configuration and set *con to refer to the resulting context.
+   'mode' can be 0 to disable mode matching.
+   Caller must free via freecon.
+   If matchpathcon_init has not already been called, then this function
+   will call it upon its first invocation with a NULL path. */
+extern int matchpathcon(const char *path,
+			mode_t mode, char ** con);
+
+/* Same as above, but return a specification index for
+   later use in a matchpathcon_filespec_add() call - see below. */
+extern int matchpathcon_index(const char *path,
+			      mode_t mode, char ** con);
+
+/* Maintain an association between an inode and a specification index,
+   and check whether a conflicting specification is already associated
+   with the same inode (e.g. due to multiple hard links).  If so, then
+   use the latter of the two specifications based on their order in the
+   file contexts configuration.  Return the used specification index. */
+extern int matchpathcon_filespec_add(ino_t ino, int specind, const char *file);
+
+/* Destroy any inode associations that have been added, e.g. to restart
+   for a new filesystem. */
+extern void matchpathcon_filespec_destroy(void);
+
+/* Display statistics on the hash table usage for the associations. */
+extern void matchpathcon_filespec_eval(void);
+
+/* Check to see whether any specifications had no matches and report them.
+   The 'str' is used as a prefix for any warning messages. */
+extern void matchpathcon_checkmatches(char *str);
+
+/*
+ * Verify the context of the file 'path' against policy.
+ * Return 1 if match, 0 if not and -1 on error.
+ */
+extern int selinux_file_context_verify(const char *path, mode_t mode);
+
+/* Get the default security context for a user session for 'user'
+   spawned by 'fromcon' and set *newcon to refer to it.  The context
+   will be one of those authorized by the policy, but the selection
+   of a default is subject to user customizable preferences.
+   If 'fromcon' is NULL, defaults to current context.
+   Returns 0 on success or -1 otherwise.
+   Caller must free via freecon. */
+extern int get_default_context(const char* user, const char* fromcon,
+			char ** newcon);
+
+/* Check a permission in the passwd class.
+   Return 0 if granted or -1 otherwise. */
+#define PASSWD__PASSWD  0x001UL
+#define PASSWD__CHFN    0x002UL
+#define PASSWD__CHSH    0x004UL
+#define PASSWD__ROOTOK  0x008UL
+#define PASSWD__CRONTAB 0x010UL
+extern int selinux_check_passwd_access(access_vector_t requested);
+
+#define lgetfilecon_raw(path, context) \
+	lgetfilecon(path, context)
+
+#define lsetfilecon_raw(path, scontext) \
+	lsetfilecon(path, scontext)
+
+#define selabel_lookup_raw(hnd, con, path, mode) \
+	selabel_lookup(hnd, con, path, mode)
+
+#define security_canonicalize_context_raw(context, newctx) \
+	security_canonicalize_context(context, newctx)
+
+#define getprevcon_raw(context) \
+	getprevcon(context)
+
+#define is_context_customizable(ctx) false
+
+#define selinux_log(type, ...) bb_error_msg(__VA_ARGS__)
+
+#define selinux_policy_root() "/sepolicy"
+
+static int selinux_getenforcemode(int *rc)
+{
+	if (rc) {
+		*rc = security_getenforce();
+		return 0;
+	}
+	return -1;
+}
+
+static const char *selinux_file_contexts_path()
+{
+	return "/file_contexts";
+}
+
+#endif /* BB_ANDROID_SELINUX_H */
diff --git a/android/selinux/android_selinux_internal.h b/android/selinux/android_selinux_internal.h
new file mode 100644
index 0000000..dd7b771
--- /dev/null
+++ b/android/selinux/android_selinux_internal.h
@@ -0,0 +1,248 @@
+/*
+ * selinux_internal.h and label_internal.h definitions (libselinux)
+ *
+ */
+#ifndef _SELINUX_BB_INTERNAL_H
+#define _SELINUX_BB_INTERNAL_H	1
+
+#include <selinux/selinux.h>
+#include <selinux/label.h>
+#include <pthread.h>
+
+#ifdef SHARED
+# define hidden __attribute__ ((visibility ("hidden")))
+# define hidden_proto(fct) __hidden_proto (fct, fct##_internal)
+# define __hidden_proto(fct, internal)	\
+     extern __typeof (fct) internal;	\
+     extern __typeof (fct) fct __asm (#internal) hidden;
+# if defined(__alpha__) || defined(__mips__)
+#  define hidden_def(fct) \
+     asm (".globl " #fct "\n" #fct " = " #fct "_internal");
+# else
+#  define hidden_def(fct) \
+     asm (".globl " #fct "\n.set " #fct ", " #fct "_internal");
+#endif
+#else
+# define hidden
+# define hidden_proto(fct)
+# define hidden_def(fct)
+#endif
+
+hidden_proto(selinux_mkload_policy)
+    hidden_proto(fini_selinuxmnt)
+    hidden_proto(set_selinuxmnt)
+    hidden_proto(selinuxfs_exists)
+    hidden_proto(security_disable)
+    hidden_proto(security_policyvers)
+    hidden_proto(security_load_policy)
+    hidden_proto(security_get_boolean_active)
+    hidden_proto(security_get_boolean_names)
+    hidden_proto(security_set_boolean)
+    hidden_proto(security_commit_booleans)
+    hidden_proto(security_check_context)
+    hidden_proto(security_check_context_raw)
+    hidden_proto(security_canonicalize_context)
+    hidden_proto(security_canonicalize_context_raw)
+    hidden_proto(security_compute_av)
+    hidden_proto(security_compute_av_raw)
+    hidden_proto(security_compute_av_flags)
+    hidden_proto(security_compute_av_flags_raw)
+    hidden_proto(security_compute_user)
+    hidden_proto(security_compute_user_raw)
+    hidden_proto(security_compute_create)
+    hidden_proto(security_compute_create_raw)
+    hidden_proto(security_compute_create_name)
+    hidden_proto(security_compute_create_name_raw)
+    hidden_proto(security_compute_member_raw)
+    hidden_proto(security_compute_relabel_raw)
+    hidden_proto(is_selinux_enabled)
+    hidden_proto(is_selinux_mls_enabled)
+    hidden_proto(freecon)
+    hidden_proto(freeconary)
+    hidden_proto(getprevcon)
+    hidden_proto(getprevcon_raw)
+    hidden_proto(getcon)
+    hidden_proto(getcon_raw)
+    hidden_proto(setcon_raw)
+    hidden_proto(getpeercon_raw)
+    hidden_proto(getpidcon_raw)
+    hidden_proto(getexeccon_raw)
+    hidden_proto(getfilecon)
+    hidden_proto(getfilecon_raw)
+    hidden_proto(lgetfilecon_raw)
+    hidden_proto(fgetfilecon_raw)
+    hidden_proto(setfilecon_raw)
+    hidden_proto(lsetfilecon_raw)
+    hidden_proto(fsetfilecon_raw)
+    hidden_proto(setexeccon)
+    hidden_proto(setexeccon_raw)
+    hidden_proto(getfscreatecon_raw)
+    hidden_proto(getkeycreatecon_raw)
+    hidden_proto(getsockcreatecon_raw)
+    hidden_proto(setfscreatecon_raw)
+    hidden_proto(setkeycreatecon_raw)
+    hidden_proto(setsockcreatecon_raw)
+    hidden_proto(security_getenforce)
+    hidden_proto(security_setenforce)
+    hidden_proto(security_deny_unknown)
+    hidden_proto(selinux_boolean_sub)
+    hidden_proto(selinux_binary_policy_path)
+    hidden_proto(selinux_booleans_subs_path)
+    hidden_proto(selinux_default_context_path)
+    hidden_proto(selinux_securetty_types_path)
+    hidden_proto(selinux_failsafe_context_path)
+    hidden_proto(selinux_removable_context_path)
+    hidden_proto(selinux_virtual_domain_context_path)
+    hidden_proto(selinux_virtual_image_context_path)
+    hidden_proto(selinux_lxc_contexts_path)
+    hidden_proto(selinux_file_context_path)
+    hidden_proto(selinux_file_context_homedir_path)
+    hidden_proto(selinux_file_context_local_path)
+    hidden_proto(selinux_file_context_subs_dist_path)
+    hidden_proto(selinux_file_context_subs_path)
+    hidden_proto(selinux_netfilter_context_path)
+    hidden_proto(selinux_homedir_context_path)
+    hidden_proto(selinux_user_contexts_path)
+    hidden_proto(selinux_booleans_path)
+    hidden_proto(selinux_customizable_types_path)
+    hidden_proto(selinux_media_context_path)
+    hidden_proto(selinux_x_context_path)
+    hidden_proto(selinux_sepgsql_context_path)
+    hidden_proto(selinux_path)
+    hidden_proto(selinux_check_passwd_access)
+    hidden_proto(selinux_check_securetty_context)
+    hidden_proto(matchpathcon_init_prefix)
+    hidden_proto(selinux_users_path)
+    hidden_proto(selinux_usersconf_path);
+hidden_proto(selinux_translations_path);
+hidden_proto(selinux_colors_path);
+hidden_proto(selinux_getenforcemode);
+hidden_proto(selinux_getpolicytype);
+hidden_proto(selinux_raw_to_trans_context);
+hidden_proto(selinux_trans_to_raw_context);
+    hidden_proto(selinux_raw_context_to_color);
+hidden_proto(security_get_initial_context);
+hidden_proto(security_get_initial_context_raw);
+hidden_proto(selinux_reset_config);
+
+extern int load_setlocaldefs hidden;
+extern int require_seusers hidden;
+extern int selinux_page_size hidden;
+
+/* Make pthread_once optional */
+#pragma weak pthread_once
+#pragma weak pthread_key_create
+#pragma weak pthread_key_delete
+#pragma weak pthread_setspecific
+
+/* Call handler iff the first call.  */
+#define __selinux_once(ONCE_CONTROL, INIT_FUNCTION)	\
+	do {						\
+		if (pthread_once != NULL)		\
+			pthread_once (&(ONCE_CONTROL), (INIT_FUNCTION));  \
+		else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) {		  \
+			INIT_FUNCTION ();		\
+			(ONCE_CONTROL) = 2;		\
+		}					\
+	} while (0)
+
+/* Pthread key macros */
+#define __selinux_key_create(KEY, DESTRUCTOR)			\
+	(pthread_key_create != NULL ? pthread_key_create(KEY, DESTRUCTOR) : -1)
+
+#define __selinux_key_delete(KEY)				\
+	do {							\
+		if (pthread_key_delete != NULL)			\
+			pthread_key_delete(KEY);		\
+	} while (0)
+
+#define __selinux_setspecific(KEY, VALUE)			\
+	do {							\
+		if (pthread_setspecific != NULL)		\
+			pthread_setspecific(KEY, VALUE);	\
+	} while (0)
+
+
+/*
+ * Installed backends
+ */
+int selabel_file_init(struct selabel_handle *rec, struct selinux_opt *opts,
+		      unsigned nopts) hidden;
+int selabel_media_init(struct selabel_handle *rec, struct selinux_opt *opts,
+		      unsigned nopts) hidden;
+int selabel_x_init(struct selabel_handle *rec, struct selinux_opt *opts,
+		   unsigned nopts) hidden;
+int selabel_db_init(struct selabel_handle *rec,
+		    struct selinux_opt *opts, unsigned nopts) hidden;
+int selabel_property_init(struct selabel_handle *rec,
+			  struct selinux_opt *opts, unsigned nopts) hidden;
+
+/*
+ * Labeling internal structures
+ */
+struct selabel_sub {
+	char *src;
+	int slen;
+	char *dst;
+	struct selabel_sub *next;
+};
+
+extern struct selabel_sub *selabel_subs_init(const char *path,
+					     struct selabel_sub *list);
+
+struct selabel_lookup_rec {
+	security_context_t ctx_raw;
+	security_context_t ctx_trans;
+	int validated;
+};
+
+struct selabel_handle {
+	/* arguments that were passed to selabel_open */
+	unsigned int backend;
+	int validating;
+
+	/* labeling operations */
+	struct selabel_lookup_rec *(*func_lookup) (struct selabel_handle *h,
+						   const char *key, int type);
+	void (*func_close) (struct selabel_handle *h);
+	void (*func_stats) (struct selabel_handle *h);
+
+	/* supports backend-specific state information */
+	void *data;
+#if 0
+	/*
+	 * The main spec file used. Note for file contexts the local and/or
+	 * homedirs could also have been used to resolve a context.
+	 */
+	char *spec_file;
+#endif
+	/* substitution support */
+	struct selabel_sub *subs;
+};
+
+/*
+ * Validation function
+ */
+extern int
+selabel_validate(struct selabel_handle *rec,
+		 struct selabel_lookup_rec *contexts) hidden;
+
+/*
+ * Compatibility support
+ */
+extern int myprintf_compat;
+extern void __attribute__ ((format(printf, 1, 2)))
+(*myprintf) (const char *fmt,...);
+
+#define COMPAT_LOG(type, fmt...) if (myprintf_compat)	  \
+		myprintf(fmt);				  \
+	else						  \
+		selinux_log(type, fmt);
+
+extern int
+compat_validate(struct selabel_handle *rec,
+		struct selabel_lookup_rec *contexts,
+		const char *path, unsigned lineno) hidden;
+
+
+#endif // _SELINUX_BB_INTERNAL_H
diff --git a/android/selinux/matchpathcon.c b/android/selinux/matchpathcon.c
new file mode 100644
index 0000000..074c029
--- /dev/null
+++ b/android/selinux/matchpathcon.c
@@ -0,0 +1,564 @@
+#include <sys/stat.h>
+#include <string.h>
+#include <errno.h>
+#include <stdio.h>
+
+#include <selinux/selinux.h>
+#include <selinux/label.h>
+#include <selinux/android.h>
+
+#include "android_selinux.h"
+#include "android_selinux_internal.h"
+
+#include <libbb.h>
+
+static __thread struct selabel_handle *hnd = NULL;
+
+/*
+ * An array for mapping integers to contexts
+ */
+static __thread char **con_array;
+static __thread int con_array_size;
+static __thread int con_array_used;
+
+static pthread_once_t once = PTHREAD_ONCE_INIT;
+static pthread_key_t destructor_key;
+static int destructor_key_initialized = 0;
+
+static int add_array_elt(char *con)
+{
+	if (con_array_size) {
+		while (con_array_used >= con_array_size) {
+			con_array_size *= 2;
+			con_array = (char **)realloc(con_array, sizeof(char*) *
+						     con_array_size);
+			if (!con_array) {
+				con_array_size = con_array_used = 0;
+				return -1;
+			}
+		}
+	} else {
+		con_array_size = 1000;
+		con_array = (char **)malloc(sizeof(char*) * con_array_size);
+		if (!con_array) {
+			con_array_size = con_array_used = 0;
+			return -1;
+		}
+	}
+
+	con_array[con_array_used] = strdup(con);
+	if (!con_array[con_array_used])
+		return -1;
+	return con_array_used++;
+}
+
+static void free_array_elts(void)
+{
+	con_array_size = con_array_used = 0;
+	free(con_array);
+	con_array = NULL;
+}
+
+static void
+#ifdef __GNUC__
+    __attribute__ ((format(printf, 1, 2)))
+#endif
+    default_printf(const char *fmt, ...)
+{
+	va_list ap;
+	va_start(ap, fmt);
+	vfprintf(stderr, fmt, ap);
+	va_end(ap);
+}
+
+void
+#ifdef __GNUC__
+    __attribute__ ((format(printf, 1, 2)))
+#endif
+    (*myprintf) (const char *fmt,...) = &default_printf;
+int myprintf_compat = 0;
+
+void set_matchpathcon_printf(void (*f) (const char *fmt, ...))
+{
+	myprintf = f ? f : &default_printf;
+	myprintf_compat = 1;
+}
+
+static int (*myinvalidcon) (const char *p, unsigned l, char *c) = NULL;
+
+void set_matchpathcon_invalidcon(int (*f) (const char *p, unsigned l, char *c))
+{
+	myinvalidcon = f;
+}
+
+static int default_canoncon(const char *path, unsigned lineno, char **context)
+{
+	char *tmpcon;
+	if (security_canonicalize_context_raw(*context, &tmpcon) < 0) {
+		if (errno == ENOENT)
+			return 0;
+		if (lineno)
+			myprintf("%s:  line %u has invalid context %s\n", path,
+				 lineno, *context);
+		else
+			myprintf("%s:  invalid context %s\n", path, *context);
+		return 1;
+	}
+	free(*context);
+	*context = tmpcon;
+	return 0;
+}
+
+static int (*mycanoncon) (const char *p, unsigned l, char **c) =
+    NULL;
+
+void set_matchpathcon_canoncon(int (*f) (const char *p, unsigned l, char **c))
+{
+	if (f)
+		mycanoncon = f;
+	else
+		mycanoncon = &default_canoncon;
+}
+
+static __thread struct selinux_opt options[SELABEL_NOPT];
+static __thread int notrans;
+
+void set_matchpathcon_flags(unsigned int flags)
+{
+	int i;
+	memset(options, 0, sizeof(options));
+	i = SELABEL_OPT_BASEONLY;
+	options[i].type = i;
+	options[i].value = (flags & MATCHPATHCON_BASEONLY) ? (char*)1 : NULL;
+	i = SELABEL_OPT_VALIDATE;
+	options[i].type = i;
+	options[i].value = (flags & MATCHPATHCON_VALIDATE) ? (char*)1 : NULL;
+	notrans = flags & MATCHPATHCON_NOTRANS;
+}
+
+/*
+ * An association between an inode and a
+ * specification.
+ */
+typedef struct file_spec {
+	ino_t ino;		/* inode number */
+	int specind;		/* index of specification in spec */
+	char *file;		/* full pathname for diagnostic messages about conflicts */
+	struct file_spec *next;	/* next association in hash bucket chain */
+} file_spec_t;
+
+/*
+ * The hash table of associations, hashed by inode number.
+ * Chaining is used for collisions, with elements ordered
+ * by inode number in each bucket.  Each hash bucket has a dummy
+ * header.
+ */
+#define HASH_BITS 16
+#define HASH_BUCKETS (1 << HASH_BITS)
+#define HASH_MASK (HASH_BUCKETS-1)
+static file_spec_t *fl_head;
+
+/*
+ * Try to add an association between an inode and
+ * a specification.  If there is already an association
+ * for the inode and it conflicts with this specification,
+ * then use the specification that occurs later in the
+ * specification array.
+ */
+int matchpathcon_filespec_add(ino_t ino, int specind, const char *file)
+{
+	file_spec_t *prevfl, *fl;
+	int h, ret;
+	struct stat sb;
+
+	if (!fl_head) {
+		fl_head = malloc(sizeof(file_spec_t) * HASH_BUCKETS);
+		if (!fl_head)
+			goto oom;
+		memset(fl_head, 0, sizeof(file_spec_t) * HASH_BUCKETS);
+	}
+
+	h = (ino + (ino >> HASH_BITS)) & HASH_MASK;
+	for (prevfl = &fl_head[h], fl = fl_head[h].next; fl;
+	     prevfl = fl, fl = fl->next) {
+		if (ino == fl->ino) {
+			ret = lstat(fl->file, &sb);
+			if (ret < 0 || sb.st_ino != ino) {
+				fl->specind = specind;
+				free(fl->file);
+				fl->file = malloc(strlen(file) + 1);
+				if (!fl->file)
+					goto oom;
+				strcpy(fl->file, file);
+				return fl->specind;
+
+			}
+
+			if (!strcmp(con_array[fl->specind],
+				    con_array[specind]))
+				return fl->specind;
+
+			myprintf
+			    ("%s:  conflicting specifications for %s and %s, using %s.\n",
+			     __FUNCTION__, file, fl->file,
+			     con_array[fl->specind]);
+			free(fl->file);
+			fl->file = malloc(strlen(file) + 1);
+			if (!fl->file)
+				goto oom;
+			strcpy(fl->file, file);
+			return fl->specind;
+		}
+
+		if (ino > fl->ino)
+			break;
+	}
+
+	fl = malloc(sizeof(file_spec_t));
+	if (!fl)
+		goto oom;
+	fl->ino = ino;
+	fl->specind = specind;
+	fl->file = malloc(strlen(file) + 1);
+	if (!fl->file)
+		goto oom_freefl;
+	strcpy(fl->file, file);
+	fl->next = prevfl->next;
+	prevfl->next = fl;
+	return fl->specind;
+      oom_freefl:
+	free(fl);
+      oom:
+	myprintf("%s:  insufficient memory for file label entry for %s\n",
+		 __FUNCTION__, file);
+	return -1;
+}
+
+/*
+ * Evaluate the association hash table distribution.
+ */
+void matchpathcon_filespec_eval(void)
+{
+	file_spec_t *fl;
+	int h, used, nel, len, longest;
+
+	if (!fl_head)
+		return;
+
+	used = 0;
+	longest = 0;
+	nel = 0;
+	for (h = 0; h < HASH_BUCKETS; h++) {
+		len = 0;
+		for (fl = fl_head[h].next; fl; fl = fl->next) {
+			len++;
+		}
+		if (len)
+			used++;
+		if (len > longest)
+			longest = len;
+		nel += len;
+	}
+
+	myprintf
+	    ("%s:  hash table stats: %d elements, %d/%d buckets used, longest chain length %d\n",
+	     __FUNCTION__, nel, used, HASH_BUCKETS, longest);
+}
+
+/*
+ * Destroy the association hash table.
+ */
+void matchpathcon_filespec_destroy(void)
+{
+	file_spec_t *fl, *tmp;
+	int h;
+
+	free_array_elts();
+
+	if (!fl_head)
+		return;
+
+	for (h = 0; h < HASH_BUCKETS; h++) {
+		fl = fl_head[h].next;
+		while (fl) {
+			tmp = fl;
+			fl = fl->next;
+			free(tmp->file);
+			free(tmp);
+		}
+		fl_head[h].next = NULL;
+	}
+	free(fl_head);
+	fl_head = NULL;
+}
+
+static void matchpathcon_thread_destructor(void __attribute__((unused)) *ptr)
+{
+	matchpathcon_fini();
+}
+
+void __attribute__((destructor)) matchpathcon_lib_destructor(void);
+
+void hidden __attribute__((destructor)) matchpathcon_lib_destructor(void)
+{
+	if (destructor_key_initialized)
+		__selinux_key_delete(destructor_key);
+}
+
+static void matchpathcon_init_once(void)
+{
+	if (__selinux_key_create(&destructor_key, matchpathcon_thread_destructor) == 0)
+		destructor_key_initialized = 1;
+}
+
+int matchpathcon_init_prefix(const char *path, const char *subset)
+{
+	if (!mycanoncon)
+		mycanoncon = default_canoncon;
+
+	__selinux_once(once, matchpathcon_init_once);
+	__selinux_setspecific(destructor_key, (void *)1);
+
+	options[SELABEL_OPT_SUBSET].type = SELABEL_OPT_SUBSET;
+	options[SELABEL_OPT_SUBSET].value = subset;
+	options[SELABEL_OPT_PATH].type = SELABEL_OPT_PATH;
+	options[SELABEL_OPT_PATH].value = path;
+
+	hnd = selabel_open(SELABEL_CTX_FILE, options, SELABEL_NOPT);
+
+	return hnd ? 0 : -1;
+}
+
+hidden_def(matchpathcon_init_prefix)
+
+int matchpathcon_init(const char *path)
+{
+	return matchpathcon_init_prefix(path, NULL);
+}
+
+void matchpathcon_fini(void)
+{
+	free_array_elts();
+
+	if (hnd) {
+		selabel_close(hnd);
+		hnd = NULL;
+	}
+}
+
+/*
+ * We do not want to resolve a symlink to a real path if it is the final
+ * component of the name.  Thus we split the pathname on the last "/" and
+ * determine a real path component of the first portion.  We then have to
+ * copy the last part back on to get the final real path.  Wheww.
+ */
+int realpath_not_final(const char *name, char *resolved_path)
+{
+	char *last_component;
+	char *tmp_path, *p;
+	size_t len = 0;
+	int rc = 0;
+
+	tmp_path = strdup(name);
+	if (!tmp_path) {
+		myprintf("symlink_realpath(%s) strdup() failed: %s\n",
+			name, strerror(errno));
+		rc = -1;
+		goto out;
+	}
+
+	/* strip leading // */
+	while (tmp_path[len] && tmp_path[len] == '/' &&
+	       tmp_path[len+1] && tmp_path[len+1] == '/') {
+		tmp_path++;
+		len++;
+	}
+	last_component = strrchr(tmp_path, '/');
+
+	if (last_component == tmp_path) {
+		last_component++;
+		p = strcpy(resolved_path, "");
+	} else if (last_component) {
+		*last_component = '\0';
+		last_component++;
+		p = realpath(tmp_path, resolved_path);
+	} else {
+		last_component = tmp_path;
+		p = realpath("./", resolved_path);
+	}
+
+	if (!p) {
+		myprintf("symlink_realpath(%s) realpath() failed: %s\n",
+			name, strerror(errno));
+		rc = -1;
+		goto out;
+	}
+
+	len = strlen(p);
+	if (len + strlen(last_component) + 2 > PATH_MAX) {
+		myprintf("symlink_realpath(%s) failed: Filename too long \n",
+			name);
+		errno=ENAMETOOLONG;
+		rc = -1;
+		goto out;
+	}
+
+	resolved_path += len;
+	strcpy(resolved_path, "/");
+	resolved_path += 1;
+	strcpy(resolved_path, last_component);
+out:
+	free(tmp_path);
+	return rc;
+}
+
+int matchpathcon(const char *path, mode_t mode, char ** con)
+{
+	char stackpath[PATH_MAX + 1];
+	char *p = NULL;
+	int ret;
+
+	if (!hnd && (matchpathcon_init_prefix(NULL, NULL) < 0))
+			return -1;
+
+	if (S_ISLNK(mode)) {
+		if (!realpath_not_final(path, stackpath))
+			path = stackpath;
+	} else {
+		p = realpath(path, stackpath);
+		if (p)
+			path = p;
+	}
+
+	ret = notrans ?
+		selabel_lookup_raw(hnd, con, path, mode) :
+		selabel_lookup(hnd, con, path, mode);
+
+	return ret;
+}
+
+int matchpathcon_index(const char *name, mode_t mode, char ** con)
+{
+	int i = matchpathcon(name, mode, con);
+
+	if (i < 0)
+		return -1;
+
+	return add_array_elt(*con);
+}
+
+void matchpathcon_checkmatches(char *str __attribute__((unused)))
+{
+	selabel_stats(hnd);
+}
+
+/* Compare two contexts to see if their differences are "significant",
+ * or whether the only difference is in the user. */
+int selinux_file_context_cmp(const char * a,
+			     const char * b)
+{
+	char *rest_a, *rest_b;	/* Rest of the context after the user */
+	if (!a && !b)
+		return 0;
+	if (!a)
+		return -1;
+	if (!b)
+		return 1;
+	rest_a = strchr((char *)a, ':');
+	rest_b = strchr((char *)b, ':');
+	if (!rest_a && !rest_b)
+		return 0;
+	if (!rest_a)
+		return -1;
+	if (!rest_b)
+		return 1;
+	return strcmp(rest_a, rest_b);
+}
+
+int selinux_file_context_verify(const char *path, mode_t mode)
+{
+	char * con = NULL;
+	char * fcontext = NULL;
+	int rc = 0;
+
+	rc = lgetfilecon_raw(path, &con);
+	if (rc == -1) {
+		if (errno != ENOTSUP)
+			return -1;
+		else
+			return 0;
+	}
+
+	if (!hnd && (matchpathcon_init_prefix(NULL, NULL) < 0))
+			return -1;
+
+	if (selabel_lookup_raw(hnd, &fcontext, path, mode) != 0) {
+		if (errno != ENOENT)
+			rc = -1;
+		else
+			rc = 0;
+	} else {
+		/*
+		 * Need to set errno to 0 as it can be set to ENOENT if the
+		 * file_contexts.subs file does not exist (see selabel_open in
+		 * label.c), thus causing confusion if errno is checked on return.
+		 */
+		errno = 0;
+		rc = (selinux_file_context_cmp(fcontext, con) == 0);
+	}
+
+	freecon(con);
+	freecon(fcontext);
+	return rc;
+}
+
+int selinux_lsetfilecon_default(const char *path)
+{
+	struct stat st;
+	int rc = -1;
+	char * scontext = NULL;
+	if (lstat(path, &st) != 0)
+		return rc;
+
+	if (!hnd && (matchpathcon_init_prefix(NULL, NULL) < 0))
+			return -1;
+
+	/* If there's an error determining the context, or it has none,
+	   return to allow default context */
+	if (selabel_lookup_raw(hnd, &scontext, path, st.st_mode)) {
+		if (errno == ENOENT)
+			rc = 0;
+	} else {
+		rc = lsetfilecon_raw(path, scontext);
+		freecon(scontext);
+	}
+	return rc;
+}
+
+int compat_validate(struct selabel_handle *rec,
+		    struct selabel_lookup_rec *contexts,
+		    const char *path, unsigned lineno)
+{
+	int rc;
+	char **ctx = &contexts->ctx_raw;
+
+	if (myinvalidcon)
+		rc = myinvalidcon(path, lineno, *ctx);
+	else if (mycanoncon)
+		rc = mycanoncon(path, lineno, ctx);
+	else {
+		rc = selabel_validate(rec, contexts);
+		if (rc < 0) {
+			if (lineno) {
+				COMPAT_LOG(SELINUX_WARNING,
+					    "%s: line %d has invalid context %s\n",
+						path, lineno, *ctx);
+			} else {
+				COMPAT_LOG(SELINUX_WARNING,
+					    "%s: has invalid context %s\n", path, *ctx);
+			}
+		}
+	}
+
+	return rc ? -1 : 0;
+}
diff --git a/android/selinux/stubs.c b/android/selinux/stubs.c
new file mode 100644
index 0000000..c01bc57
--- /dev/null
+++ b/android/selinux/stubs.c
@@ -0,0 +1,39 @@
+#include <libbb.h>
+#include <selinux/selinux.h>
+
+/* create a new context with user name (may be unsafe) */
+int get_default_context(const char* user,
+	const char* fromcon UNUSED_PARAM,
+	char ** newcon)
+{
+	char fmt[] = "u:r:%s:s0\0";
+	int len = strlen(user) + strlen(fmt);
+
+	*newcon = malloc(len);
+	if (!(*newcon))
+		return -1;
+	snprintf(*newcon, len, fmt, user);
+	return 0;
+}
+
+/* Compute a relabeling decision and set *newcon to refer to it.
+   Caller must free via freecon.
+   Stub not implemented in bionic, but declared in selinux.h */
+int security_compute_relabel(const char *scon UNUSED_PARAM,
+	const char *tcon,
+	security_class_t tclass UNUSED_PARAM,
+	char ** newcon)
+{
+	if (tcon)
+		*newcon = strdup(tcon);
+	if (!(*newcon))
+		return -1;
+	return 0;
+}
+
+/* Check a permission in the passwd class.
+   Return 0 if granted or -1 otherwise. */
+int selinux_check_passwd_access(access_vector_t requested UNUSED_PARAM)
+{
+	return 0;
+}
diff --git a/android_config.sh b/android_config.sh
deleted file mode 100644
index 54e6261..0000000
--- a/android_config.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-# Use ". android_config.sh" to refresh prebuilt android config
-# Note: this rebuild the compressed usage ressources and should be done
-#       in a separate commit, to ignore it on future merge/rebase
-
-make mrproper
-
-cp .config-minimal .config
-echo >> .config
-echo 'CONFIG_CROSS_COMPILER_PREFIX="arm-eabi-"' >> .config
-make prepare
-cd include-minimal && ./copy-current.sh
-cd ..
-
-cp .config-full .config
-echo >> .config
-echo 'CONFIG_CROSS_COMPILER_PREFIX="arm-eabi-"' >> .config
-make prepare
-cd include-full && ./copy-current.sh
-cd ..
diff --git a/applets/applet_tables.c b/applets/applet_tables.c
index 152d5f4..94b974e 100644
--- a/applets/applet_tables.c
+++ b/applets/applet_tables.c
@@ -53,7 +53,7 @@
 {
 	int i;
 	int ofs;
-	unsigned MAX_APPLET_NAME_LEN = 1;
+//	unsigned MAX_APPLET_NAME_LEN = 1;
 
 	qsort(applets, NUM_APPLETS, sizeof(applets[0]), cmp_name);
 
@@ -89,8 +89,8 @@
 	printf("const char applet_names[] ALIGN1 = \"\"\n");
 	for (i = 0; i < NUM_APPLETS; i++) {
 		printf("\"%s\" \"\\0\"\n", applets[i].name);
-		if (MAX_APPLET_NAME_LEN < strlen(applets[i].name))
-			MAX_APPLET_NAME_LEN = strlen(applets[i].name);
+//		if (MAX_APPLET_NAME_LEN < strlen(applets[i].name))
+//			MAX_APPLET_NAME_LEN = strlen(applets[i].name);
 	}
 	printf(";\n\n");
 
@@ -130,8 +130,8 @@
 	printf("};\n");
 #endif
 	//printf("#endif /* SKIP_definitions */\n");
-	printf("\n");
-	printf("#define MAX_APPLET_NAME_LEN %u\n", MAX_APPLET_NAME_LEN);
+//	printf("\n");
+//	printf("#define MAX_APPLET_NAME_LEN %u\n", MAX_APPLET_NAME_LEN);
 
 	if (argv[2]) {
 		char line_old[80];
diff --git a/applets/busybox.mksuid b/applets/busybox.mksuid
new file mode 100755
index 0000000..6492c07
--- /dev/null
+++ b/applets/busybox.mksuid
@@ -0,0 +1,54 @@
+#!/bin/sh
+# Make list of configuration variables regarding suid handling
+
+# input $1: full path to autoconf.h
+# input $2: full path to applets.h
+# input $3: full path to .config
+# output (stdout): list of CONFIG_ that do or may require suid
+
+# If the environment variable SUID is not set or set to DROP,
+# lists all config options that do not require suid permissions.
+# Otherwise, lists all config options for applets that DO or MAY require
+# suid permissions.
+
+# Maintainer: Bernhard Reutner-Fischer
+
+export LC_ALL=POSIX
+export LC_CTYPE=POSIX
+
+CONFIG_H=${1:-include/autoconf.h}
+APPLETS_H=${2:-include/applets.h}
+DOT_CONFIG=${3:-.config}
+
+case ${SUID:-DROP} in
+[dD][rR][oO][pP]) USE="DROP" ;;
+*) USE="suid" ;;
+esac
+
+$HOSTCC -E -DMAKE_SUID -include $CONFIG_H $APPLETS_H |
+  awk -v USE=${USE} '
+    /^SUID[ \t]/{
+      if (USE == "DROP") {
+        if ($2 != "BB_SUID_DROP") next
+      } else {
+        if ($2 == "BB_SUID_DROP") next
+      }
+      cfg = $NF
+      gsub("\"", "", cfg)
+      cfg = substr(cfg, 8)
+      s[i++] = "CONFIG_" cfg
+      s[i++] = "CONFIG_FEATURE_" cfg "_.*"
+    }
+    END{
+      while (getline < ARGV[2]) {
+        for (j in s) {
+          if ($0 ~ "^" s[j] "=y$") {
+            sub(/=.*/, "")
+            print
+            if (s[j] !~ /\*$/) delete s[j] # can drop this applet now
+          }
+        }
+      }
+    }
+' - $DOT_CONFIG
+
diff --git a/applets/usage_compressed b/applets/usage_compressed
index af66bc5..fb6e1c2 100755
--- a/applets/usage_compressed
+++ b/applets/usage_compressed
@@ -10,20 +10,20 @@
 test "$DD" || DD=dd
 
 # Some people were bitten by their system lacking a (proper) od
-od -v -t x1 </dev/null >/dev/null
+od -v -b </dev/null >/dev/null
 if test $? != 0; then
-	echo 'od tool is not installed or cannot accept "-v -t x1" options'
+	echo 'od tool is not installed or cannot accept "-v -b" options'
 	exit 1
 fi
 
 exec >"$target.$$"
 
 echo '#define UNPACKED_USAGE "" \'
-"$loc/usage" | od -v -t x1 \
+"$loc/usage" | od -v -b \
 | $SED -e 's/^[^ ]*//' \
 	-e 's/ //g' \
 	-e '/^$/d' \
-	-e 's/\(..\)/\\x\1/g' \
+	-e 's/\(...\)/\\\1/g' \
 	-e 's/^/"/' \
 	-e 's/$/" \\/'
 echo ''
@@ -39,11 +39,11 @@
 ##	-e '/^$/d' \
 ##	-e 's/\(..\)\(..\)/0x\2,0x\1,/g'
 ##	-e 's/$/ \\/'
-"$loc/usage" | bzip2 -1 | $DD bs=2 skip=1 2>/dev/null | od -v -t x1 \
+"$loc/usage" | bzip2 -1 | $DD bs=2 skip=1 2>/dev/null | od -v -b \
 | $SED -e 's/^[^ ]*//' \
 	-e 's/ //g' \
 	-e '/^$/d' \
-	-e 's/\(..\)/0x\1,/g' \
+	-e 's/\(...\)/0\1,/g' \
 	-e 's/$/ \\/'
 echo ''
 
diff --git a/archival/Config.src b/archival/Config.src
index ae1afc5..76635ba 100644
--- a/archival/Config.src
+++ b/archival/Config.src
@@ -5,8 +5,6 @@
 
 menu "Archival Utilities"
 
-INSERT
-
 config FEATURE_SEAMLESS_XZ
 	bool "Make tar, rpm, modprobe etc understand .xz data"
 	default y
@@ -37,352 +35,6 @@
 	help
 	  Make tar, rpm, modprobe etc understand .Z data.
 
-config AR
-	bool "ar"
-	default n  # needs to be improved to be able to replace binutils ar
-	help
-	  ar is an archival utility program used to create, modify, and
-	  extract contents from archives. An archive is a single file holding
-	  a collection of other files in a structure that makes it possible to
-	  retrieve the original individual files (called archive members).
-	  The original files' contents, mode (permissions), timestamp, owner,
-	  and group are preserved in the archive, and can be restored on
-	  extraction.
-
-	  The stored filename is limited to 15 characters. (for more information
-	  see long filename support).
-	  ar has 60 bytes of overheads for every stored file.
-
-	  This implementation of ar can extract archives, it cannot create or
-	  modify them.
-	  On an x86 system, the ar applet adds about 1K.
-
-	  Unless you have a specific application which requires ar, you should
-	  probably say N here.
-
-config FEATURE_AR_LONG_FILENAMES
-	bool "Support for long filenames (not needed for debs)"
-	default y
-	depends on AR
-	help
-	  By default the ar format can only store the first 15 characters
-	  of the filename, this option removes that limitation.
-	  It supports the GNU ar long filename method which moves multiple long
-	  filenames into a the data section of a new ar entry.
-
-config FEATURE_AR_CREATE
-	bool "Support archive creation"
-	default y
-	depends on AR
-	help
-	  This enables archive creation (-c and -r) with busybox ar.
-
-config BUNZIP2
-	bool "bunzip2"
-	default y
-	help
-	  bunzip2 is a compression utility using the Burrows-Wheeler block
-	  sorting text compression algorithm, and Huffman coding. Compression
-	  is generally considerably better than that achieved by more
-	  conventional LZ77/LZ78-based compressors, and approaches the
-	  performance of the PPM family of statistical compressors.
-
-	  Unless you have a specific application which requires bunzip2, you
-	  should probably say N here.
-
-config BZIP2
-	bool "bzip2"
-	default y
-	help
-	  bzip2 is a compression utility using the Burrows-Wheeler block
-	  sorting text compression algorithm, and Huffman coding. Compression
-	  is generally considerably better than that achieved by more
-	  conventional LZ77/LZ78-based compressors, and approaches the
-	  performance of the PPM family of statistical compressors.
-
-	  Unless you have a specific application which requires bzip2, you
-	  should probably say N here.
-
-config CPIO
-	bool "cpio"
-	default y
-	help
-	  cpio is an archival utility program used to create, modify, and
-	  extract contents from archives.
-	  cpio has 110 bytes of overheads for every stored file.
-
-	  This implementation of cpio can extract cpio archives created in the
-	  "newc" or "crc" format, it cannot create or modify them.
-
-	  Unless you have a specific application which requires cpio, you
-	  should probably say N here.
-
-config FEATURE_CPIO_O
-	bool "Support for archive creation"
-	default y
-	depends on CPIO
-	help
-	  This implementation of cpio can create cpio archives in the "newc"
-	  format only.
-
-config FEATURE_CPIO_P
-	bool "Support for passthrough mode"
-	default y
-	depends on FEATURE_CPIO_O
-	help
-	  Passthrough mode. Rarely used.
-
-config DPKG
-	bool "dpkg"
-	default n
-	select FEATURE_SEAMLESS_GZ
-	help
-	  dpkg is a medium-level tool to install, build, remove and manage
-	  Debian packages.
-
-	  This implementation of dpkg has a number of limitations,
-	  you should use the official dpkg if possible.
-
-config DPKG_DEB
-	bool "dpkg_deb"
-	default n
-	select FEATURE_SEAMLESS_GZ
-	help
-	  dpkg-deb unpacks and provides information about Debian archives.
-
-	  This implementation of dpkg-deb cannot pack archives.
-
-	  Unless you have a specific application which requires dpkg-deb,
-	  say N here.
-
-config FEATURE_DPKG_DEB_EXTRACT_ONLY
-	bool "Extract only (-x)"
-	default n
-	depends on DPKG_DEB
-	help
-	  This reduces dpkg-deb to the equivalent of
-	  "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
-	  of the extra dpkg-deb, ar or tar options are needed, they are linked
-	  to internally.
-
-config GUNZIP
-	bool "gunzip"
-	default y
-	help
-	  gunzip is used to decompress archives created by gzip.
-	  You can use the `-t' option to test the integrity of
-	  an archive, without decompressing it.
-
-config GZIP
-	bool "gzip"
-	default y
-	help
-	  gzip is used to compress files.
-	  It's probably the most widely used UNIX compression program.
-
-config FEATURE_GZIP_LONG_OPTIONS
-	bool "Enable long options"
-	default y
-	depends on GZIP && LONG_OPTS
-	help
-	  Enable use of long options, increases size by about 106 Bytes
-
-config GZIP_FAST
-	int "Trade memory for gzip speed (0:small,slow - 2:fast,big)"
-	default 0
-	range 0 2
-	depends on GZIP
-	help
-	  Enable big memory options for gzip.
-	  0: small buffers, small hash-tables
-	  1: larger buffers, larger hash-tables
-	  2: larger buffers, largest hash-tables
-	  Larger models may give slightly better compression
-
-config LZOP
-	bool "lzop"
-	default y
-	help
-	  Lzop compression/decompresion.
-
-config LZOP_COMPR_HIGH
-	bool "lzop compression levels 7,8,9 (not very useful)"
-	default n
-	depends on LZOP
-	help
-	  High levels (7,8,9) of lzop compression. These levels
-	  are actually slower than gzip at equivalent compression ratios
-	  and take up 3.2K of code.
-
-config RPM2CPIO
-	bool "rpm2cpio"
-	default y
-	help
-	  Converts a RPM file into a CPIO archive.
-
-config RPM
-	bool "rpm"
-	default y
-	help
-	  Mini RPM applet - queries and extracts RPM packages.
-
-config TAR
-	bool "tar"
-	default y
-	help
-	  tar is an archiving program. It's commonly used with gzip to
-	  create compressed archives. It's probably the most widely used
-	  UNIX archive program.
-
-config FEATURE_TAR_CREATE
-	bool "Enable archive creation"
-	default y
-	depends on TAR
-	help
-	  If you enable this option you'll be able to create
-	  tar archives using the `-c' option.
-
-config FEATURE_TAR_AUTODETECT
-	bool "Autodetect compressed tarballs"
-	default y
-	depends on TAR && (FEATURE_SEAMLESS_Z || FEATURE_SEAMLESS_GZ || FEATURE_SEAMLESS_BZ2 || FEATURE_SEAMLESS_LZMA || FEATURE_SEAMLESS_XZ)
-	help
-	  With this option tar can automatically detect compressed
-	  tarballs. Currently it works only on files (not pipes etc).
-
-config FEATURE_TAR_FROM
-	bool "Enable -X (exclude from) and -T (include from) options)"
-	default y
-	depends on TAR
-	help
-	  If you enable this option you'll be able to specify
-	  a list of files to include or exclude from an archive.
-
-config FEATURE_TAR_OLDGNU_COMPATIBILITY
-	bool "Support for old tar header format"
-	default y
-	depends on TAR || DPKG
-	help
-	  This option is required to unpack archives created in
-	  the old GNU format; help to kill this old format by
-	  repacking your ancient archives with the new format.
-
-config FEATURE_TAR_OLDSUN_COMPATIBILITY
-	bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
-	default y
-	depends on TAR || DPKG
-	help
-	  This option is required to unpack archives created by some old
-	  version of Sun's tar (it was calculating checksum using signed
-	  arithmetic). It is said to be fixed in newer Sun tar, but "old"
-	  tarballs still exist.
-
-config FEATURE_TAR_GNU_EXTENSIONS
-	bool "Support for GNU tar extensions (long filenames)"
-	default y
-	depends on TAR || DPKG
-	help
-	  With this option busybox supports GNU long filenames and
-	  linknames.
-
-config FEATURE_TAR_LONG_OPTIONS
-	bool "Enable long options"
-	default y
-	depends on TAR && LONG_OPTS
-	help
-	  Enable use of long options, increases size by about 400 Bytes
-
-config FEATURE_TAR_TO_COMMAND
-	bool "Support for writing to an external program"
-	default y
-	depends on TAR && FEATURE_TAR_LONG_OPTIONS
-	help
-	  If you enable this option you'll be able to instruct tar to send
-	  the contents of each extracted file to the standard input of an
-	  external program.
-
-config FEATURE_TAR_UNAME_GNAME
-	bool "Enable use of user and group names"
-	default y
-	depends on TAR
-	help
-	  Enables use of user and group names in tar. This affects contents
-	  listings (-t) and preserving permissions when unpacking (-p).
-	  +200 bytes.
-
-config FEATURE_TAR_NOPRESERVE_TIME
-	bool "Enable -m (do not preserve time) option"
-	default y
-	depends on TAR
-	help
-	  With this option busybox supports GNU tar -m
-	  (do not preserve time) option.
-
-config FEATURE_TAR_SELINUX
-	bool "Support for extracting SELinux labels"
-	default n
-	depends on TAR && SELINUX
-	help
-	  With this option busybox supports restoring SELinux labels
-	  when extracting files from tar archives.
-
-config UNCOMPRESS
-	bool "uncompress"
-	default n
-	help
-	  uncompress is used to decompress archives created by compress.
-	  Not much used anymore, replaced by gzip/gunzip.
-
-config UNLZMA
-	bool "unlzma"
-	default y
-	help
-	  unlzma is a compression utility using the Lempel-Ziv-Markov chain
-	  compression algorithm, and range coding. Compression
-	  is generally considerably better than that achieved by the bzip2
-	  compressors.
-
-	  The BusyBox unlzma applet is limited to decompression only.
-	  On an x86 system, this applet adds about 4K.
-
-config FEATURE_LZMA_FAST
-	bool "Optimize unlzma for speed"
-	default n
-	depends on UNLZMA
-	help
-	  This option reduces decompression time by about 25% at the cost of
-	  a 1K bigger binary.
-
-config LZMA
-	bool "Provide lzma alias which supports only unpacking"
-	default y
-	depends on UNLZMA
-	help
-	  Enable this option if you want commands like "lzma -d" to work.
-	  IOW: you'll get lzma applet, but it will always require -d option.
-
-config UNXZ
-	bool "unxz"
-	default y
-	help
-	  unxz is a unlzma successor.
-
-config XZ
-	bool "Provide xz alias which supports only unpacking"
-	default y
-	depends on UNXZ
-	help
-	  Enable this option if you want commands like "xz -d" to work.
-	  IOW: you'll get xz applet, but it will always require -d option.
-
-config UNZIP
-	bool "unzip"
-	default y
-	help
-	  unzip will list or extract files from a ZIP archive,
-	  commonly found on DOS/WIN systems. The default behavior
-	  (with no options) is to extract the archive into the
-	  current directory. Use the `-d' option to extract to a
-	  directory of your choice.
+INSERT
 
 endmenu
diff --git a/archival/Kbuild.src b/archival/Kbuild.src
index 3466452..a6fd2ea 100644
--- a/archival/Kbuild.src
+++ b/archival/Kbuild.src
@@ -9,22 +9,3 @@
 lib-y:=
 
 INSERT
-
-lib-$(CONFIG_AR)		+= ar.o
-lib-$(CONFIG_CPIO)		+= cpio.o
-lib-$(CONFIG_DPKG)		+= dpkg.o
-lib-$(CONFIG_DPKG_DEB)		+= dpkg_deb.o
-lib-$(CONFIG_RPM2CPIO)		+= rpm2cpio.o
-lib-$(CONFIG_RPM)		+= rpm.o
-lib-$(CONFIG_TAR)		+= tar.o
-lib-$(CONFIG_UNZIP)		+= unzip.o
-
-lib-$(CONFIG_LZOP)		+= lzop.o bbunzip.o
-lib-$(CONFIG_GZIP)		+= gzip.o bbunzip.o
-lib-$(CONFIG_BZIP2)		+= bzip2.o bbunzip.o
-
-lib-$(CONFIG_UNXZ)		+= bbunzip.o
-lib-$(CONFIG_UNLZMA)		+= bbunzip.o
-lib-$(CONFIG_BUNZIP2)		+= bbunzip.o
-lib-$(CONFIG_GUNZIP)		+= bbunzip.o
-lib-$(CONFIG_UNCOMPRESS)	+= bbunzip.o
diff --git a/archival/ar.c b/archival/ar.c
index 88236e8..f86c52d 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -17,6 +17,49 @@
  * http://www.unix-systems.org/single_unix_specification_v2/xcu/ar.html
  */
 
+//config:config AR
+//config:	bool "ar"
+//config:	default n  # needs to be improved to be able to replace binutils ar
+//config:	help
+//config:	  ar is an archival utility program used to create, modify, and
+//config:	  extract contents from archives. An archive is a single file holding
+//config:	  a collection of other files in a structure that makes it possible to
+//config:	  retrieve the original individual files (called archive members).
+//config:	  The original files' contents, mode (permissions), timestamp, owner,
+//config:	  and group are preserved in the archive, and can be restored on
+//config:	  extraction.
+//config:
+//config:	  The stored filename is limited to 15 characters. (for more information
+//config:	  see long filename support).
+//config:	  ar has 60 bytes of overheads for every stored file.
+//config:
+//config:	  This implementation of ar can extract archives, it cannot create or
+//config:	  modify them.
+//config:	  On an x86 system, the ar applet adds about 1K.
+//config:
+//config:	  Unless you have a specific application which requires ar, you should
+//config:	  probably say N here.
+//config:
+//config:config FEATURE_AR_LONG_FILENAMES
+//config:	bool "Support for long filenames (not needed for debs)"
+//config:	default y
+//config:	depends on AR
+//config:	help
+//config:	  By default the ar format can only store the first 15 characters
+//config:	  of the filename, this option removes that limitation.
+//config:	  It supports the GNU ar long filename method which moves multiple long
+//config:	  filenames into a the data section of a new ar entry.
+//config:
+//config:config FEATURE_AR_CREATE
+//config:	bool "Support archive creation"
+//config:	default y
+//config:	depends on AR
+//config:	help
+//config:	  This enables archive creation (-c and -r) with busybox ar.
+
+//applet:IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_AR) += ar.o
+
 //usage:#define ar_trivial_usage
 //usage:       "[-o] [-v] [-p] [-t] [-x] ARCHIVE FILES"
 //usage:#define ar_full_usage "\n\n"
diff --git a/archival/bbunzip.c b/archival/bbunzip.c
index 94d8a81..fce5ab9 100644
--- a/archival/bbunzip.c
+++ b/archival/bbunzip.c
@@ -7,13 +7,19 @@
 #include "libbb.h"
 #include "bb_archive.h"
 
+/* lzop_main() uses bbunpack(), need this: */
+//kbuild:lib-$(CONFIG_LZOP) += bbunzip.o
+
+/* Note: must be kept in sync with archival/lzop.c */
 enum {
 	OPT_STDOUT     = 1 << 0,
 	OPT_FORCE      = 1 << 1,
 	/* only some decompressors: */
 	OPT_VERBOSE    = 1 << 2,
-	OPT_DECOMPRESS = 1 << 3,
-	OPT_TEST       = 1 << 4,
+	OPT_QUIET      = 1 << 3,
+	OPT_DECOMPRESS = 1 << 4,
+	OPT_TEST       = 1 << 5,
+	SEAMLESS_MAGIC = (1 << 31) * SEAMLESS_COMPRESSION,
 };
 
 static
@@ -39,7 +45,7 @@
 )
 {
 	struct stat stat_buf;
-	IF_DESKTOP(long long) int status;
+	IF_DESKTOP(long long) int status = 0;
 	char *filename, *new_name;
 	smallint exitcode = 0;
 	transformer_aux_data_t aux;
@@ -54,13 +60,28 @@
 
 		/* Open src */
 		if (filename) {
-			if (stat(filename, &stat_buf) != 0) {
-				bb_simple_perror_msg(filename);
+			if (!(option_mask32 & SEAMLESS_MAGIC)) {
+				if (stat(filename, &stat_buf) != 0) {
+ err_name:
+					bb_simple_perror_msg(filename);
  err:
-				exitcode = 1;
-				goto free_name;
+					exitcode = 1;
+					goto free_name;
+				}
+				if (open_to_or_warn(STDIN_FILENO, filename, O_RDONLY, 0))
+					goto err;
+			} else {
+				/* "clever zcat" with FILE */
+				/* fail_if_not_compressed because zcat refuses uncompressed input */
+				int fd = open_zipped(filename, /*fail_if_not_compressed:*/ 1);
+				if (fd < 0)
+					goto err_name;
+				xmove_fd(fd, STDIN_FILENO);
 			}
-			if (open_to_or_warn(STDIN_FILENO, filename, O_RDONLY, 0))
+		} else
+		if (option_mask32 & SEAMLESS_MAGIC) {
+			/* "clever zcat" on stdin */
+			if (setup_unzip_on_fd(STDIN_FILENO, /*fail_if_not_compressed*/ 1))
 				goto err;
 		}
 
@@ -68,7 +89,7 @@
 		if (option_mask32 & (OPT_STDOUT|OPT_TEST)) {
 			if (option_mask32 & OPT_TEST)
 				if (open_to_or_warn(STDOUT_FILENO, bb_dev_null, O_WRONLY, 0))
-					goto err;
+					xfunc_die();
 			filename = NULL;
 		}
 
@@ -93,23 +114,32 @@
 		}
 
 		/* Check that the input is sane */
-		if (isatty(STDIN_FILENO) && (option_mask32 & OPT_FORCE) == 0) {
+		if (!(option_mask32 & OPT_FORCE) && isatty(STDIN_FILENO)) {
 			bb_error_msg_and_die("compressed data not read from terminal, "
 					"use -f to force it");
 		}
 
-		init_transformer_aux_data(&aux);
-		aux.check_signature = 1;
-		status = unpacker(&aux);
-		if (status < 0)
-			exitcode = 1;
+		if (!(option_mask32 & SEAMLESS_MAGIC)) {
+			init_transformer_aux_data(&aux);
+			aux.check_signature = 1;
+			status = unpacker(&aux);
+			if (status < 0)
+				exitcode = 1;
+		} else {
+			if (bb_copyfd_eof(STDIN_FILENO, STDOUT_FILENO) < 0)
+				/* Disk full, tty closed, etc. No point in continuing */
+				xfunc_die();
+		}
 
 		if (!(option_mask32 & OPT_STDOUT))
 			xclose(STDOUT_FILENO); /* with error check! */
 
 		if (filename) {
 			char *del = new_name;
+
 			if (status >= 0) {
+				unsigned new_name_len;
+
 				/* TODO: restore other things? */
 				if (aux.mtime != 0) {
 					struct timeval times[2];
@@ -123,22 +153,29 @@
 					utimes(new_name, times); /* ignoring errors */
 				}
 
-				/* Delete _compressed_ file */
+				if (ENABLE_DESKTOP)
+					new_name_len = strlen(new_name);
+				/* Restore source filename (unless tgz -> tar case) */
+				if (new_name == filename) {
+					new_name_len = strlen(filename);
+					filename[new_name_len] = '.';
+				}
+				/* Extreme bloat for gunzip compat */
+				/* Some users do want this info... */
+				if (ENABLE_DESKTOP && (option_mask32 & OPT_VERBOSE)) {
+					unsigned percent = status
+						? ((uoff_t)stat_buf.st_size * 100u / (unsigned long long)status)
+						: 0;
+					fprintf(stderr, "%s: %u%% - replaced with %.*s\n",
+						filename,
+						100u - percent,
+						new_name_len, new_name
+					);
+				}
+				/* Delete _source_ file */
 				del = filename;
-				/* restore extension (unless tgz -> tar case) */
-				if (new_name == filename)
-					filename[strlen(filename)] = '.';
 			}
 			xunlink(del);
-
-#if 0 /* Currently buggy - wrong name: "a.gz: 261% - replaced with a.gz" */
-			/* Extreme bloat for gunzip compat */
-			if (ENABLE_DESKTOP && (option_mask32 & OPT_VERBOSE) && status >= 0) {
-				fprintf(stderr, "%s: %u%% - replaced with %s\n",
-					filename, (unsigned)(stat_buf.st_size*100 / (status+1)), new_name);
-			}
-#endif
-
  free_name:
 			if (new_name != filename)
 				free(new_name);
@@ -172,7 +209,6 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
-
 //usage:#define uncompress_trivial_usage
 //usage:       "[-cf] [FILE]..."
 //usage:#define uncompress_full_usage "\n\n"
@@ -180,6 +216,15 @@
 //usage:     "\n	-c	Write to stdout"
 //usage:     "\n	-f	Overwrite"
 
+//config:config UNCOMPRESS
+//config:	bool "uncompress"
+//config:	default n
+//config:	help
+//config:	  uncompress is used to decompress archives created by compress.
+//config:	  Not much used anymore, replaced by gzip/gunzip.
+
+//applet:IF_UNCOMPRESS(APPLET(uncompress, BB_DIR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_UNCOMPRESS) += bbunzip.o
 #if ENABLE_UNCOMPRESS
 static
 IF_DESKTOP(long long) int FAST_FUNC unpack_uncompress(transformer_aux_data_t *aux)
@@ -220,11 +265,7 @@
  * Portions of the lzw code are derived from the public domain 'compress'
  * written by Spencer Thomas, Joe Orost, James Woods, Jim McKie, Steve Davies,
  * Ken Turkowski, Dave Mack and Peter Jannesen.
- *
- * See the license_msg below and the file COPYING for the software license.
- * See the file algorithm.doc for the compression algorithms and file formats.
  */
-
 //usage:#define gunzip_trivial_usage
 //usage:       "[-cft] [FILE]..."
 //usage:#define gunzip_full_usage "\n\n"
@@ -241,10 +282,22 @@
 //usage:       "-rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar\n"
 //usage:
 //usage:#define zcat_trivial_usage
-//usage:       "FILE"
+//usage:       "[FILE]..."
 //usage:#define zcat_full_usage "\n\n"
 //usage:       "Decompress to stdout"
 
+//config:config GUNZIP
+//config:	bool "gunzip"
+//config:	default y
+//config:	help
+//config:	  gunzip is used to decompress archives created by gzip.
+//config:	  You can use the `-t' option to test the integrity of
+//config:	  an archive, without decompressing it.
+
+//applet:IF_GUNZIP(APPLET(gunzip, BB_DIR_BIN, BB_SUID_DROP))
+//applet:IF_GUNZIP(APPLET_ODDNAME(zcat, gunzip, BB_DIR_BIN, BB_SUID_DROP, zcat))
+//kbuild:lib-$(CONFIG_GZIP) += bbunzip.o
+//kbuild:lib-$(CONFIG_GUNZIP) += bbunzip.o
 #if ENABLE_GUNZIP
 static
 char* FAST_FUNC make_new_name_gunzip(char *filename, const char *expected_ext UNUSED_PARAM)
@@ -292,11 +345,15 @@
 int gunzip_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int gunzip_main(int argc UNUSED_PARAM, char **argv)
 {
-	getopt32(argv, "cfvdtn");
+	getopt32(argv, "cfvqdtn");
 	argv += optind;
-	/* if called as zcat */
+
+	/* If called as zcat...
+	 * Normally, "zcat" is just "gunzip -c".
+	 * But if seamless magic is enabled, then we are much more clever.
+	 */
 	if (applet_name[1] == 'c')
-		option_mask32 |= OPT_STDOUT;
+		option_mask32 |= OPT_STDOUT | SEAMLESS_MAGIC;
 
 	return bbunpack(argv, unpack_gunzip, make_new_name_gunzip, /*unused:*/ NULL);
 }
@@ -316,11 +373,27 @@
 //usage:     "\n	-c	Write to stdout"
 //usage:     "\n	-f	Force"
 //usage:#define bzcat_trivial_usage
-//usage:       "FILE"
+//usage:       "[FILE]..."
 //usage:#define bzcat_full_usage "\n\n"
 //usage:       "Decompress to stdout"
+
+//config:config BUNZIP2
+//config:	bool "bunzip2"
+//config:	default y
+//config:	help
+//config:	  bunzip2 is a compression utility using the Burrows-Wheeler block
+//config:	  sorting text compression algorithm, and Huffman coding. Compression
+//config:	  is generally considerably better than that achieved by more
+//config:	  conventional LZ77/LZ78-based compressors, and approaches the
+//config:	  performance of the PPM family of statistical compressors.
+//config:
+//config:	  Unless you have a specific application which requires bunzip2, you
+//config:	  should probably say N here.
+
 //applet:IF_BUNZIP2(APPLET(bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
 //applet:IF_BUNZIP2(APPLET_ODDNAME(bzcat, bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP, bzcat))
+//kbuild:lib-$(CONFIG_BZIP2) += bbunzip.o
+//kbuild:lib-$(CONFIG_BUNZIP2) += bbunzip.o
 #if ENABLE_BUNZIP2
 static
 IF_DESKTOP(long long) int FAST_FUNC unpack_bunzip2(transformer_aux_data_t *aux)
@@ -330,7 +403,7 @@
 int bunzip2_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int bunzip2_main(int argc UNUSED_PARAM, char **argv)
 {
-	getopt32(argv, "cfvdt");
+	getopt32(argv, "cfvqdt");
 	argv += optind;
 	if (applet_name[2] == 'c') /* bzcat */
 		option_mask32 |= OPT_STDOUT;
@@ -348,7 +421,6 @@
  *
  * Licensed under GPLv2, see file LICENSE in this source tree.
  */
-
 //usage:#define unlzma_trivial_usage
 //usage:       "[-cf] [FILE]..."
 //usage:#define unlzma_full_usage "\n\n"
@@ -365,7 +437,7 @@
 //usage:     "\n	-f	Force"
 //usage:
 //usage:#define lzcat_trivial_usage
-//usage:       "FILE"
+//usage:       "[FILE]..."
 //usage:#define lzcat_full_usage "\n\n"
 //usage:       "Decompress to stdout"
 //usage:
@@ -385,10 +457,42 @@
 //usage:     "\n	-f	Force"
 //usage:
 //usage:#define xzcat_trivial_usage
-//usage:       "FILE"
+//usage:       "[FILE]..."
 //usage:#define xzcat_full_usage "\n\n"
 //usage:       "Decompress to stdout"
 
+//config:config UNLZMA
+//config:	bool "unlzma"
+//config:	default y
+//config:	help
+//config:	  unlzma is a compression utility using the Lempel-Ziv-Markov chain
+//config:	  compression algorithm, and range coding. Compression
+//config:	  is generally considerably better than that achieved by the bzip2
+//config:	  compressors.
+//config:
+//config:	  The BusyBox unlzma applet is limited to decompression only.
+//config:	  On an x86 system, this applet adds about 4K.
+//config:
+//config:config FEATURE_LZMA_FAST
+//config:	bool "Optimize unlzma for speed"
+//config:	default n
+//config:	depends on UNLZMA
+//config:	help
+//config:	  This option reduces decompression time by about 25% at the cost of
+//config:	  a 1K bigger binary.
+//config:
+//config:config LZMA
+//config:	bool "Provide lzma alias which supports only unpacking"
+//config:	default y
+//config:	depends on UNLZMA
+//config:	help
+//config:	  Enable this option if you want commands like "lzma -d" to work.
+//config:	  IOW: you'll get lzma applet, but it will always require -d option.
+
+//applet:IF_UNLZMA(APPLET(unlzma, BB_DIR_USR_BIN, BB_SUID_DROP))
+//applet:IF_UNLZMA(APPLET_ODDNAME(lzcat, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzcat))
+//applet:IF_LZMA(APPLET_ODDNAME(lzma, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzma))
+//kbuild:lib-$(CONFIG_UNLZMA) += bbunzip.o
 #if ENABLE_UNLZMA
 static
 IF_DESKTOP(long long) int FAST_FUNC unpack_unlzma(transformer_aux_data_t *aux)
@@ -398,7 +502,7 @@
 int unlzma_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int unlzma_main(int argc UNUSED_PARAM, char **argv)
 {
-	IF_LZMA(int opts =) getopt32(argv, "cfvdt");
+	IF_LZMA(int opts =) getopt32(argv, "cfvqdt");
 # if ENABLE_LZMA
 	/* lzma without -d or -t? */
 	if (applet_name[2] == 'm' && !(opts & (OPT_DECOMPRESS|OPT_TEST)))
@@ -414,6 +518,24 @@
 #endif
 
 
+//config:config UNXZ
+//config:	bool "unxz"
+//config:	default y
+//config:	help
+//config:	  unxz is a unlzma successor.
+//config:
+//config:config XZ
+//config:	bool "Provide xz alias which supports only unpacking"
+//config:	default y
+//config:	depends on UNXZ
+//config:	help
+//config:	  Enable this option if you want commands like "xz -d" to work.
+//config:	  IOW: you'll get xz applet, but it will always require -d option.
+
+//applet:IF_UNXZ(APPLET(unxz, BB_DIR_USR_BIN, BB_SUID_DROP))
+//applet:IF_UNXZ(APPLET_ODDNAME(xzcat, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xzcat))
+//applet:IF_XZ(APPLET_ODDNAME(xz, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xz))
+//kbuild:lib-$(CONFIG_UNXZ) += bbunzip.o
 #if ENABLE_UNXZ
 static
 IF_DESKTOP(long long) int FAST_FUNC unpack_unxz(transformer_aux_data_t *aux)
@@ -423,7 +545,7 @@
 int unxz_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int unxz_main(int argc UNUSED_PARAM, char **argv)
 {
-	IF_XZ(int opts =) getopt32(argv, "cfvdt");
+	IF_XZ(int opts =) getopt32(argv, "cfvqdt");
 # if ENABLE_XZ
 	/* xz without -d or -t? */
 	if (applet_name[2] == '\0' && !(opts & (OPT_DECOMPRESS|OPT_TEST)))
diff --git a/archival/bzip2.c b/archival/bzip2.c
index dd77c8e..f7718b4 100644
--- a/archival/bzip2.c
+++ b/archival/bzip2.c
@@ -7,6 +7,22 @@
  * about bzip2 library code.
  */
 
+//config:config BZIP2
+//config:	bool "bzip2"
+//config:	default y
+//config:	help
+//config:	  bzip2 is a compression utility using the Burrows-Wheeler block
+//config:	  sorting text compression algorithm, and Huffman coding. Compression
+//config:	  is generally considerably better than that achieved by more
+//config:	  conventional LZ77/LZ78-based compressors, and approaches the
+//config:	  performance of the PPM family of statistical compressors.
+//config:
+//config:	  Unless you have a specific application which requires bzip2, you
+//config:	  should probably say N here.
+
+//applet:IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_BZIP2) += bzip2.o
+
 //usage:#define bzip2_trivial_usage
 //usage:       "[OPTIONS] [FILE]..."
 //usage:#define bzip2_full_usage "\n\n"
diff --git a/archival/cpio.c b/archival/cpio.c
index 12b7f9a..5fb5327 100644
--- a/archival/cpio.c
+++ b/archival/cpio.c
@@ -9,11 +9,42 @@
  * Limitations:
  * Doesn't check CRC's
  * Only supports new ASCII and CRC formats
- *
  */
 #include "libbb.h"
 #include "bb_archive.h"
 
+//config:config CPIO
+//config:	bool "cpio"
+//config:	default y
+//config:	help
+//config:	  cpio is an archival utility program used to create, modify, and
+//config:	  extract contents from archives.
+//config:	  cpio has 110 bytes of overheads for every stored file.
+//config:
+//config:	  This implementation of cpio can extract cpio archives created in the
+//config:	  "newc" or "crc" format, it cannot create or modify them.
+//config:
+//config:	  Unless you have a specific application which requires cpio, you
+//config:	  should probably say N here.
+//config:
+//config:config FEATURE_CPIO_O
+//config:	bool "Support for archive creation"
+//config:	default y
+//config:	depends on CPIO
+//config:	help
+//config:	  This implementation of cpio can create cpio archives in the "newc"
+//config:	  format only.
+//config:
+//config:config FEATURE_CPIO_P
+//config:	bool "Support for passthrough mode"
+//config:	default y
+//config:	depends on FEATURE_CPIO_O
+//config:	help
+//config:	  Passthrough mode. Rarely used.
+
+//applet:IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_CPIO) += cpio.o
+
 //usage:#define cpio_trivial_usage
 //usage:       "[-dmvu] [-F FILE]" IF_FEATURE_CPIO_O(" [-H newc]")
 //usage:       " [-ti"IF_FEATURE_CPIO_O("o")"]" IF_FEATURE_CPIO_P(" [-p DIR]")
diff --git a/archival/dpkg.c b/archival/dpkg.c
index ed86f33..2893cfc 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -14,7 +14,6 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
-
 /*
  * known difference between busybox dpkg and the official dpkg that i don't
  * consider important, its worth keeping a note of differences anyway, just to
@@ -25,9 +24,22 @@
  *
  * bugs that need to be fixed
  *  - (unknown, please let me know when you find any)
- *
  */
 
+//config:config DPKG
+//config:	bool "dpkg"
+//config:	default n
+//config:	select FEATURE_SEAMLESS_GZ
+//config:	help
+//config:	  dpkg is a medium-level tool to install, build, remove and manage
+//config:	  Debian packages.
+//config:
+//config:	  This implementation of dpkg has a number of limitations,
+//config:	  you should use the official dpkg if possible.
+
+//applet:IF_DPKG(APPLET(dpkg, BB_DIR_USR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_DPKG) += dpkg.o
+
 //usage:#define dpkg_trivial_usage
 //usage:       "[-ilCPru] [-F OPT] PACKAGE"
 //usage:#define dpkg_full_usage "\n\n"
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index a04ec94..13f9db9 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -5,8 +5,33 @@
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
+//config:config DPKG_DEB
+//config:	bool "dpkg_deb"
+//config:	default n
+//config:	select FEATURE_SEAMLESS_GZ
+//config:	help
+//config:	  dpkg-deb unpacks and provides information about Debian archives.
+//config:
+//config:	  This implementation of dpkg-deb cannot pack archives.
+//config:
+//config:	  Unless you have a specific application which requires dpkg-deb,
+//config:	  say N here.
+//config:
+//config:config FEATURE_DPKG_DEB_EXTRACT_ONLY
+//config:	bool "Extract only (-x)"
+//config:	default n
+//config:	depends on DPKG_DEB
+//config:	help
+//config:	  This reduces dpkg-deb to the equivalent of
+//config:	  "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
+//config:	  of the extra dpkg-deb, ar or tar options are needed, they are linked
+//config:	  to internally.
+
+//applet:IF_DPKG_DEB(APPLET_ODDNAME(dpkg-deb, dpkg_deb, BB_DIR_USR_BIN, BB_SUID_DROP, dpkg_deb))
+//kbuild:lib-$(CONFIG_DPKG_DEB) += dpkg_deb.o
+
 //usage:#define dpkg_deb_trivial_usage
-//usage:       "[-cefxX] FILE [argument"
+//usage:       "[-cefxX] FILE [argument]"
 //usage:#define dpkg_deb_full_usage "\n\n"
 //usage:       "Perform actions on Debian packages (.debs)\n"
 //usage:     "\n	-c	List contents of filesystem tree"
diff --git a/archival/gzip.c b/archival/gzip.c
index 31ccab3..1e779c9 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -15,7 +15,6 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
-
 /* big objects in bss:
  * 00000020 b bl_count
  * 00000074 b base_length
@@ -31,7 +30,6 @@
  * 00000480 b static_ltree
  * 000008f4 b dyn_ltree
  */
-
 /* TODO: full support for -v for DESKTOP
  * "/usr/bin/gzip -v a bogus aa" should say:
 a:       85.1% -- replaced with a.gz
@@ -39,6 +37,35 @@
 aa:      85.1% -- replaced with aa.gz
 */
 
+//config:config GZIP
+//config:	bool "gzip"
+//config:	default y
+//config:	help
+//config:	  gzip is used to compress files.
+//config:	  It's probably the most widely used UNIX compression program.
+//config:
+//config:config FEATURE_GZIP_LONG_OPTIONS
+//config:	bool "Enable long options"
+//config:	default y
+//config:	depends on GZIP && LONG_OPTS
+//config:	help
+//config:	  Enable use of long options, increases size by about 106 Bytes
+//config:
+//config:config GZIP_FAST
+//config:	int "Trade memory for gzip speed (0:small,slow - 2:fast,big)"
+//config:	default 0
+//config:	range 0 2
+//config:	depends on GZIP
+//config:	help
+//config:	  Enable big memory options for gzip.
+//config:	  0: small buffers, small hash-tables
+//config:	  1: larger buffers, larger hash-tables
+//config:	  2: larger buffers, largest hash-tables
+//config:	  Larger models may give slightly better compression
+
+//applet:IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_GZIP) += gzip.o
+
 //usage:#define gzip_trivial_usage
 //usage:       "[-cfd] [FILE]..."
 //usage:#define gzip_full_usage "\n\n"
diff --git a/archival/libarchive/Kbuild.src b/archival/libarchive/Kbuild.src
index 1517c8c..968fdf8 100644
--- a/archival/libarchive/Kbuild.src
+++ b/archival/libarchive/Kbuild.src
@@ -38,23 +38,38 @@
 
 INSERT
 
-lib-$(CONFIG_AR)                        += get_header_ar.o unpack_ar_archive.o
-lib-$(CONFIG_BUNZIP2)                   += decompress_bunzip2.o
-lib-$(CONFIG_UNLZMA)                    += decompress_unlzma.o
-lib-$(CONFIG_UNXZ)                      += decompress_unxz.o
-lib-$(CONFIG_CPIO)                      += get_header_cpio.o
 lib-$(CONFIG_DPKG)                      += $(DPKG_FILES)
 lib-$(CONFIG_DPKG_DEB)                  += $(DPKG_FILES)
-lib-$(CONFIG_GUNZIP)                    += open_transformer.o decompress_gunzip.o
-lib-$(CONFIG_RPM2CPIO)                  += decompress_gunzip.o get_header_cpio.o
-lib-$(CONFIG_RPM)                       += open_transformer.o decompress_gunzip.o get_header_cpio.o
+
+lib-$(CONFIG_AR)                        += get_header_ar.o unpack_ar_archive.o
+lib-$(CONFIG_CPIO)                      += get_header_cpio.o
 lib-$(CONFIG_TAR)                       += get_header_tar.o
-lib-$(CONFIG_UNCOMPRESS)                += decompress_uncompress.o
-lib-$(CONFIG_UNZIP)                     += decompress_gunzip.o
+lib-$(CONFIG_FEATURE_TAR_TO_COMMAND)    += data_extract_to_command.o
 lib-$(CONFIG_LZOP)                      += lzo1x_1.o lzo1x_1o.o lzo1x_d.o
 lib-$(CONFIG_LZOP_COMPR_HIGH)           += lzo1x_9x.o
+lib-$(CONFIG_BUNZIP2)                   += open_transformer.o decompress_bunzip2.o
+lib-$(CONFIG_UNLZMA)                    += open_transformer.o decompress_unlzma.o
+lib-$(CONFIG_UNXZ)                      += open_transformer.o decompress_unxz.o
+lib-$(CONFIG_GUNZIP)                    += open_transformer.o decompress_gunzip.o
+lib-$(CONFIG_UNCOMPRESS)                += open_transformer.o decompress_uncompress.o
+lib-$(CONFIG_UNZIP)                     += open_transformer.o decompress_gunzip.o
+lib-$(CONFIG_RPM2CPIO)                  += open_transformer.o decompress_gunzip.o get_header_cpio.o
+lib-$(CONFIG_RPM)                       += open_transformer.o decompress_gunzip.o get_header_cpio.o
+
+lib-$(CONFIG_GZIP)                      += open_transformer.o
+lib-$(CONFIG_BZIP2)                     += open_transformer.o
+lib-$(CONFIG_LZOP)                      += open_transformer.o
+lib-$(CONFIG_MAN)                       += open_transformer.o
+lib-$(CONFIG_SETFONT)                   += open_transformer.o
+lib-$(CONFIG_FEATURE_2_4_MODULES)       += open_transformer.o
 lib-$(CONFIG_MODINFO)                   += open_transformer.o
 lib-$(CONFIG_INSMOD)                    += open_transformer.o
+lib-$(CONFIG_DEPMOD)                    += open_transformer.o
+lib-$(CONFIG_RMMOD)                     += open_transformer.o
+lib-$(CONFIG_LSMOD)                     += open_transformer.o
+lib-$(CONFIG_MODPROBE)                  += open_transformer.o
+lib-$(CONFIG_MODPROBE_SMALL)            += open_transformer.o
+
 lib-$(CONFIG_FEATURE_SEAMLESS_Z)        += open_transformer.o decompress_uncompress.o
 lib-$(CONFIG_FEATURE_SEAMLESS_GZ)       += open_transformer.o decompress_gunzip.o
 lib-$(CONFIG_FEATURE_SEAMLESS_BZ2)      += open_transformer.o decompress_bunzip2.o
@@ -62,7 +77,6 @@
 lib-$(CONFIG_FEATURE_SEAMLESS_XZ)       += open_transformer.o decompress_unxz.o
 lib-$(CONFIG_FEATURE_COMPRESS_USAGE)    += open_transformer.o decompress_bunzip2.o
 lib-$(CONFIG_FEATURE_COMPRESS_BBCONFIG) += open_transformer.o decompress_bunzip2.o
-lib-$(CONFIG_FEATURE_TAR_TO_COMMAND)    += data_extract_to_command.o
 
 ifneq ($(lib-y),)
 lib-y += $(COMMON_FILES)
diff --git a/archival/libarchive/bz/compress.c b/archival/libarchive/bz/compress.c
index e9f1afd..23de9d3 100644
--- a/archival/libarchive/bz/compress.c
+++ b/archival/libarchive/bz/compress.c
@@ -249,7 +249,7 @@
 static NOINLINE
 void sendMTFValues(EState* s)
 {
-	int32_t v, t, i, j, gs, ge, totc, bt, bc, iter;
+	int32_t v, t, i, j, gs, ge, bt, bc, iter;
 	int32_t nSelectors, alphaSize, minLen, maxLen, selCtr;
 	int32_t nGroups;
 
@@ -345,7 +345,6 @@
 		}
 #endif
 		nSelectors = 0;
-		totc = 0;
 		gs = 0;
 		while (1) {
 			/*--- Set group start & end marks. --*/
@@ -411,7 +410,6 @@
 					bt = t;
 				}
 			}
-			totc += bc;
 			fave[bt]++;
 			s->selector[nSelectors] = bt;
 			nSelectors++;
@@ -501,14 +499,14 @@
 		for (i = 0; i < 16; i++) {
 			if (sizeof(long) <= 4) {
 				inUse16 = inUse16*2 +
-					((*(uint32_t*)&(s->inUse[i * 16 + 0])
-					| *(uint32_t*)&(s->inUse[i * 16 + 4])
-					| *(uint32_t*)&(s->inUse[i * 16 + 8])
-					| *(uint32_t*)&(s->inUse[i * 16 + 12])) != 0);
+					((*(bb__aliased_uint32_t*)&(s->inUse[i * 16 + 0])
+					| *(bb__aliased_uint32_t*)&(s->inUse[i * 16 + 4])
+					| *(bb__aliased_uint32_t*)&(s->inUse[i * 16 + 8])
+					| *(bb__aliased_uint32_t*)&(s->inUse[i * 16 + 12])) != 0);
 			} else { /* Our CPU can do better */
 				inUse16 = inUse16*2 +
-					((*(uint64_t*)&(s->inUse[i * 16 + 0])
-					| *(uint64_t*)&(s->inUse[i * 16 + 8])) != 0);
+					((*(bb__aliased_uint64_t*)&(s->inUse[i * 16 + 0])
+					| *(bb__aliased_uint64_t*)&(s->inUse[i * 16 + 8])) != 0);
 			}
 		}
 
diff --git a/archival/libarchive/data_extract_all.c b/archival/libarchive/data_extract_all.c
index aaab437..2e18ffb 100644
--- a/archival/libarchive/data_extract_all.c
+++ b/archival/libarchive/data_extract_all.c
@@ -14,6 +14,9 @@
 
 #if ENABLE_FEATURE_TAR_SELINUX
 	char *sctx = archive_handle->tar__sctx[PAX_NEXT_FILE];
+#ifdef __BIONIC__
+	matchpathcon_init(NULL);
+#endif
 	if (!sctx)
 		sctx = archive_handle->tar__sctx[PAX_GLOBAL];
 	if (sctx) { /* setfscreatecon is 4 syscalls, avoid if possible */
@@ -106,15 +109,28 @@
 	switch (file_header->mode & S_IFMT) {
 	case S_IFREG: {
 		/* Regular file */
+		char *dst_name;
 		int flags = O_WRONLY | O_CREAT | O_EXCL;
 		if (archive_handle->ah_flags & ARCHIVE_O_TRUNC)
 			flags = O_WRONLY | O_CREAT | O_TRUNC;
-		dst_fd = xopen3(file_header->name,
+		dst_name = file_header->name;
+#ifdef ARCHIVE_REPLACE_VIA_RENAME
+		if (archive_handle->ah_flags & ARCHIVE_REPLACE_VIA_RENAME)
+			/* rpm-style temp file name */
+			dst_name = xasprintf("%s;%x", dst_name, (int)getpid());
+#endif
+		dst_fd = xopen3(dst_name,
 			flags,
 			file_header->mode
 			);
 		bb_copyfd_exact_size(archive_handle->src_fd, dst_fd, file_header->size);
 		close(dst_fd);
+#ifdef ARCHIVE_REPLACE_VIA_RENAME
+		if (archive_handle->ah_flags & ARCHIVE_REPLACE_VIA_RENAME) {
+			xrename(dst_name, file_header->name);
+			free(dst_name);
+		}
+#endif
 		break;
 	}
 	case S_IFDIR:
diff --git a/archival/libarchive/data_extract_to_command.c b/archival/libarchive/data_extract_to_command.c
index 354e958..599288d 100644
--- a/archival/libarchive/data_extract_to_command.c
+++ b/archival/libarchive/data_extract_to_command.c
@@ -63,7 +63,7 @@
 {
 	file_header_t *file_header = archive_handle->file_header;
 
-#if 0 /* do we need this? ENABLE_FEATURE_TAR_SELINUX */
+#if ENABLE_FEATURE_TAR_SELINUX
 	char *sctx = archive_handle->tar__sctx[PAX_NEXT_FILE];
 	if (!sctx)
 		sctx = archive_handle->tar__sctx[PAX_GLOBAL];
@@ -103,7 +103,7 @@
 				archive_handle->tar__to_command_shell,
 				"-c",
 				archive_handle->tar__to_command,
-				NULL);
+				(char *)0);
 			bb_perror_msg_and_die("can't execute '%s'", archive_handle->tar__to_command_shell);
 		}
 		close(p[0]);
diff --git a/archival/libarchive/decompress_bunzip2.c b/archival/libarchive/decompress_bunzip2.c
index 24438a2..0e3ab43 100644
--- a/archival/libarchive/decompress_bunzip2.c
+++ b/archival/libarchive/decompress_bunzip2.c
@@ -818,7 +818,6 @@
 /* Dumb little test thing, decompress stdin to stdout */
 int main(int argc, char **argv)
 {
-	int i;
 	char c;
 
 	int i = unpack_bz2_stream(0, 1);
diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c
index ddf59bc..d27f428 100644
--- a/archival/libarchive/decompress_gunzip.c
+++ b/archival/libarchive/decompress_gunzip.c
@@ -336,7 +336,7 @@
 	}
 
 	/* Find minimum and maximum length, bound *m by those */
-	for (j = 1; (c[j] == 0) && (j <= BMAX); j++)
+	for (j = 1; (j <= BMAX) && (c[j] == 0); j++)
 		continue;
 	k = j; /* minimum code length */
 	for (i = BMAX; (c[i] == 0) && i; i--)
diff --git a/archival/libarchive/decompress_unlzma.c b/archival/libarchive/decompress_unlzma.c
index cfde8ea..ca32bd8 100644
--- a/archival/libarchive/decompress_unlzma.c
+++ b/archival/libarchive/decompress_unlzma.c
@@ -45,16 +45,16 @@
 #define RC_MODEL_TOTAL_BITS 11
 
 
-/* Called twice: once at startup (LZMA_FAST only) and once in rc_normalize() */
-static size_inline void rc_read(rc_t *rc)
+/* Called once in rc_do_normalize() */
+static void rc_read(rc_t *rc)
 {
 	int buffer_size = safe_read(rc->fd, RC_BUFFER, RC_BUFFER_SIZE);
 //TODO: return -1 instead
 //This will make unlzma delete broken unpacked file on unpack errors
 	if (buffer_size <= 0)
 		bb_error_msg_and_die("unexpected EOF");
-	rc->ptr = RC_BUFFER;
 	rc->buffer_end = RC_BUFFER + buffer_size;
+	rc->ptr = RC_BUFFER;
 }
 
 /* Called twice, but one callsite is in speed_inline'd rc_is_bit_1() */
@@ -65,6 +65,12 @@
 	rc->range <<= 8;
 	rc->code = (rc->code << 8) | *rc->ptr++;
 }
+static ALWAYS_INLINE void rc_normalize(rc_t *rc)
+{
+	if (rc->range < (1 << RC_TOP_BITS)) {
+		rc_do_normalize(rc);
+	}
+}
 
 /* Called once */
 static ALWAYS_INLINE rc_t* rc_init(int fd) /*, int buffer_size) */
@@ -78,15 +84,9 @@
 	/* rc->ptr = rc->buffer_end; */
 
 	for (i = 0; i < 5; i++) {
-#if ENABLE_FEATURE_LZMA_FAST
-		if (rc->ptr >= rc->buffer_end)
-			rc_read(rc);
-		rc->code = (rc->code << 8) | *rc->ptr++;
-#else
 		rc_do_normalize(rc);
-#endif
 	}
-	rc->range = 0xFFFFFFFF;
+	rc->range = 0xffffffff;
 	return rc;
 }
 
@@ -96,13 +96,6 @@
 	free(rc);
 }
 
-static ALWAYS_INLINE void rc_normalize(rc_t *rc)
-{
-	if (rc->range < (1 << RC_TOP_BITS)) {
-		rc_do_normalize(rc);
-	}
-}
-
 /* rc_is_bit_1 is called 9 times */
 static speed_inline int rc_is_bit_1(rc_t *rc, uint16_t *p)
 {
@@ -120,7 +113,7 @@
 }
 
 /* Called 4 times in unlzma loop */
-static speed_inline int rc_get_bit(rc_t *rc, uint16_t *p, int *symbol)
+static ALWAYS_INLINE int rc_get_bit(rc_t *rc, uint16_t *p, int *symbol)
 {
 	int ret = rc_is_bit_1(rc, p);
 	*symbol = *symbol * 2 + ret;
diff --git a/archival/libarchive/get_header_ar.c b/archival/libarchive/get_header_ar.c
index 23c4124..c66bb3e 100644
--- a/archival/libarchive/get_header_ar.c
+++ b/archival/libarchive/get_header_ar.c
@@ -8,11 +8,19 @@
 #include "bb_archive.h"
 #include "ar.h"
 
-static unsigned read_num(const char *str, int base)
+/* WARNING: Clobbers str[len], so fields must be read in reverse order! */
+static unsigned read_num(char *str, int base, int len)
 {
+	int err;
+
+	/* ar fields are fixed length text strings (padded with spaces).
+	 * Ensure bb_strtou doesn't read past the field in case the full
+	 * width is used. */
+	str[len] = 0;
+
 	/* This code works because
 	 * on misformatted numbers bb_strtou returns all-ones */
-	int err = bb_strtou(str, NULL, base);
+	err = bb_strtou(str, NULL, base);
 	if (err == -1)
 		bb_error_msg_and_die("invalid ar header");
 	return err;
@@ -51,11 +59,13 @@
 	if (ar.formatted.magic[0] != '`' || ar.formatted.magic[1] != '\n')
 		bb_error_msg_and_die("invalid ar header");
 
-	/* FIXME: more thorough routine would be in order here
-	 * (we have something like that in tar)
-	 * but for now we are lax. */
-	ar.formatted.magic[0] = '\0'; /* else 4G-2 file will have size="4294967294`\n..." */
-	typed->size = size = read_num(ar.formatted.size, 10);
+	/*
+	 * Note that the fields MUST be read in reverse order as
+	 * read_num() clobbers the next byte after the field!
+	 * Order is: name, date, uid, gid, mode, size, magic.
+	 */
+	typed->size = size = read_num(ar.formatted.size, 10,
+				      sizeof(ar.formatted.size));
 
 	/* special filenames have '/' as the first character */
 	if (ar.formatted.name[0] == '/') {
@@ -87,10 +97,10 @@
 	 * long filename pseudo file. Thus we decode the rest
 	 * after dealing with long filename pseudo file.
 	 */
-	typed->mode = read_num(ar.formatted.mode, 8);
-	typed->mtime = read_num(ar.formatted.date, 10);
-	typed->uid = read_num(ar.formatted.uid, 10);
-	typed->gid = read_num(ar.formatted.gid, 10);
+	typed->mode = read_num(ar.formatted.mode, 8, sizeof(ar.formatted.mode));
+	typed->gid = read_num(ar.formatted.gid, 10, sizeof(ar.formatted.gid));
+	typed->uid = read_num(ar.formatted.uid, 10, sizeof(ar.formatted.uid));
+	typed->mtime = read_num(ar.formatted.date, 10, sizeof(ar.formatted.date));
 
 #if ENABLE_FEATURE_AR_LONG_FILENAMES
 	if (ar.formatted.name[0] == '/') {
@@ -98,7 +108,8 @@
 
 		/* The number after the '/' indicates the offset in the ar data section
 		 * (saved in ar_long_names) that conatains the real filename */
-		long_offset = read_num(&ar.formatted.name[1], 10);
+		long_offset = read_num(&ar.formatted.name[1], 10,
+				       sizeof(ar.formatted.name) - 1);
 		if (long_offset >= ar_long_name_size) {
 			bb_error_msg_and_die("can't resolve long filename");
 		}
diff --git a/archival/libarchive/get_header_tar.c b/archival/libarchive/get_header_tar.c
index bc09756..278c8fb 100644
--- a/archival/libarchive/get_header_tar.c
+++ b/archival/libarchive/get_header_tar.c
@@ -198,13 +198,13 @@
 	 * the message and we don't check whether we indeed
 	 * saw zero block directly before this. */
 	if (i == 0) {
-		xfunc_error_retval = 0;
- short_read:
-		bb_error_msg_and_die("short read");
+		bb_error_msg("short read");
+		/* this merely signals end of archive, not exit(1): */
+		return EXIT_FAILURE;
 	}
 	if (i != 512) {
 		IF_FEATURE_TAR_AUTODETECT(goto autodetect;)
-		goto short_read;
+		bb_error_msg_and_die("short read");
 	}
 
 #else
@@ -221,10 +221,10 @@
 			 */
 			while (full_read(archive_handle->src_fd, &tar, 512) == 512)
 				continue;
-			return EXIT_FAILURE;
+			return EXIT_FAILURE; /* "end of archive" */
 		}
 		archive_handle->tar__end = 1;
-		return EXIT_SUCCESS;
+		return EXIT_SUCCESS; /* "decoded one header" */
 	}
 	archive_handle->tar__end = 0;
 
@@ -241,7 +241,7 @@
 		 * or not first block (false positive, it's not .gz/.bz2!) */
 		if (lseek(archive_handle->src_fd, -i, SEEK_CUR) != 0)
 			goto err;
-		if (setup_unzip_on_fd(archive_handle->src_fd, /*fail_if_not_detected:*/ 0) != 0)
+		if (setup_unzip_on_fd(archive_handle->src_fd, /*fail_if_not_compressed:*/ 0) != 0)
  err:
 			bb_error_msg_and_die("invalid tar magic");
 		archive_handle->offset = 0;
@@ -471,5 +471,5 @@
 	free(file_header->tar__uname);
 	free(file_header->tar__gname);
 #endif
-	return EXIT_SUCCESS;
+	return EXIT_SUCCESS; /* "decoded one header" */
 }
diff --git a/archival/libarchive/liblzo.h b/archival/libarchive/liblzo.h
index 843997c..4596620 100644
--- a/archival/libarchive/liblzo.h
+++ b/archival/libarchive/liblzo.h
@@ -76,11 +76,13 @@
 #    define TEST_IP             (ip < ip_end)
 #    define NEED_IP(x) \
             if ((unsigned)(ip_end - ip) < (unsigned)(x))  goto input_overrun
+#    define TEST_IV(x)          if ((x) > (unsigned)0 - (511)) goto input_overrun
 
 #    undef TEST_OP              /* don't need both of the tests here */
 #    define TEST_OP             1
 #    define NEED_OP(x) \
             if ((unsigned)(op_end - op) < (unsigned)(x))  goto output_overrun
+#    define TEST_OV(x)          if ((x) > (unsigned)0 - (511)) goto output_overrun
 
 #define HAVE_ANY_OP 1
 
diff --git a/archival/libarchive/lzo1x_9x.c b/archival/libarchive/lzo1x_9x.c
index 8971329..2b490ae 100644
--- a/archival/libarchive/lzo1x_9x.c
+++ b/archival/libarchive/lzo1x_9x.c
@@ -94,7 +94,7 @@
 	( ((0x9f5f * ((((b[p]<<5)^b[p+1])<<5) ^ b[p+2])) >> 5) & (SWD_HSIZE-1) )
 
 #if defined(LZO_UNALIGNED_OK_2)
-#  define HEAD2(b,p)      (* (uint16_t *) &(b[p]))
+#  define HEAD2(b,p)      (* (bb__aliased_uint16_t *) &(b[p]))
 #else
 #  define HEAD2(b,p)      (b[p] ^ ((unsigned)b[p+1]<<8))
 #endif
@@ -466,7 +466,6 @@
 	}
 
 	s->m_len = 1;
-	s->m_len = 1;
 #ifdef SWD_BEST_OFF
 	if (s->use_best_off)
 		memset(s->best_pos, 0, sizeof(s->best_pos));
diff --git a/archival/libarchive/lzo1x_d.c b/archival/libarchive/lzo1x_d.c
index 9bc1270..40b167e 100644
--- a/archival/libarchive/lzo1x_d.c
+++ b/archival/libarchive/lzo1x_d.c
@@ -92,6 +92,7 @@
 				ip++;
 				NEED_IP(1);
 			}
+			TEST_IV(t);
 			t += 15 + *ip++;
 		}
 		/* copy literals */
@@ -224,6 +225,7 @@
 						ip++;
 						NEED_IP(1);
 					}
+					TEST_IV(t);
 					t += 31 + *ip++;
 				}
 #if defined(COPY_DICT)
@@ -265,6 +267,7 @@
 						ip++;
 						NEED_IP(1);
 					}
+					TEST_IV(t);
 					t += 7 + *ip++;
 				}
 #if defined(COPY_DICT)
diff --git a/archival/libarchive/open_transformer.c b/archival/libarchive/open_transformer.c
index dae04aa..1986630 100644
--- a/archival/libarchive/open_transformer.c
+++ b/archival/libarchive/open_transformer.c
@@ -34,6 +34,7 @@
 	if (!signo) {
 		/* block waiting for any child */
 		if (wait(&status) < 0)
+//FIXME: check EINTR?
 			return; /* probably there are no children */
 		goto check_status;
 	}
@@ -41,14 +42,18 @@
 	/* Wait for any child without blocking */
 	for (;;) {
 		if (wait_any_nohang(&status) < 0)
+//FIXME: check EINTR?
 			/* wait failed?! I'm confused... */
 			return;
  check_status:
-		if (WIFEXITED(status) && WEXITSTATUS(status) == 0)
+		/*if (WIFEXITED(status) && WEXITSTATUS(status) == 0)*/
+		/* On Linux, the above can be checked simply as: */
+		if (status == 0)
 			/* this child exited with 0 */
 			continue;
-		/* Cannot happen?
-		if (!WIFSIGNALED(status) && !WIFEXITED(status)) ???; */
+		/* Cannot happen:
+		if (!WIFSIGNALED(status) && !WIFEXITED(status)) ???;
+		 */
 		bb_got_signal = 1;
 	}
 }
@@ -74,16 +79,17 @@
 		// FIXME: error check?
 #if BB_MMU
 		{
+			IF_DESKTOP(long long) int r;
 			transformer_aux_data_t aux;
 			init_transformer_aux_data(&aux);
 			aux.check_signature = check_signature;
-			transformer(&aux, fd, fd_pipe.wr);
+			r = transformer(&aux, fd, fd_pipe.wr);
 			if (ENABLE_FEATURE_CLEAN_UP) {
 				close(fd_pipe.wr); /* send EOF */
 				close(fd);
 			}
 			/* must be _exit! bug was actually seen here */
-			_exit(EXIT_SUCCESS);
+			_exit(/*error if:*/ r < 0);
 		}
 #else
 		{
@@ -112,7 +118,7 @@
 /* Used by e.g. rpm which gives us a fd without filename,
  * thus we can't guess the format from filename's extension.
  */
-int FAST_FUNC setup_unzip_on_fd(int fd, int fail_if_not_detected)
+int FAST_FUNC setup_unzip_on_fd(int fd, int fail_if_not_compressed)
 {
 	union {
 		uint8_t b[4];
@@ -153,7 +159,7 @@
 	}
 
 	/* No known magic seen */
-	if (fail_if_not_detected)
+	if (fail_if_not_compressed)
 		bb_error_msg_and_die("no gzip"
 			IF_FEATURE_SEAMLESS_BZ2("/bzip2")
 			IF_FEATURE_SEAMLESS_XZ("/xz")
@@ -174,29 +180,28 @@
 	return 0;
 }
 
-int FAST_FUNC open_zipped(const char *fname)
+int FAST_FUNC open_zipped(const char *fname, int fail_if_not_compressed)
 {
-	char *sfx;
 	int fd;
 
 	fd = open(fname, O_RDONLY);
 	if (fd < 0)
 		return fd;
 
-	sfx = strrchr(fname, '.');
-	if (sfx) {
-		sfx++;
-		if (ENABLE_FEATURE_SEAMLESS_LZMA && strcmp(sfx, "lzma") == 0)
-			/* .lzma has no header/signature, just trust it */
+	if (ENABLE_FEATURE_SEAMLESS_LZMA) {
+		/* .lzma has no header/signature, can only detect it by extension */
+		char *sfx = strrchr(fname, '.');
+		if (sfx && strcmp(sfx+1, "lzma") == 0) {
 			open_transformer_with_sig(fd, unpack_lzma_stream, "unlzma");
-		else
-		if ((ENABLE_FEATURE_SEAMLESS_GZ && strcmp(sfx, "gz") == 0)
-		 || (ENABLE_FEATURE_SEAMLESS_BZ2 && strcmp(sfx, "bz2") == 0)
-		 || (ENABLE_FEATURE_SEAMLESS_XZ && strcmp(sfx, "xz") == 0)
-		) {
-			setup_unzip_on_fd(fd, /*fail_if_not_detected:*/ 1);
+			return fd;
 		}
 	}
+	if ((ENABLE_FEATURE_SEAMLESS_GZ)
+	 || (ENABLE_FEATURE_SEAMLESS_BZ2)
+	 || (ENABLE_FEATURE_SEAMLESS_XZ)
+	) {
+		setup_unzip_on_fd(fd, fail_if_not_compressed);
+	}
 
 	return fd;
 }
@@ -208,7 +213,7 @@
 	int fd;
 	char *image;
 
-	fd = open_zipped(fname);
+	fd = open_zipped(fname, /*fail_if_not_compressed:*/ 0);
 	if (fd < 0)
 		return NULL;
 
diff --git a/archival/libarchive/unxz/README b/archival/libarchive/unxz/README
index c5972f6..a849120 100644
--- a/archival/libarchive/unxz/README
+++ b/archival/libarchive/unxz/README
@@ -7,7 +7,7 @@
 
     XZ Embedded was written for use in the Linux kernel, but the code can
     be easily used in other environments too, including regular userspace
-    applications.
+    applications. See userspace/xzminidec.c for an example program.
 
     This README contains information that is useful only when the copy
     of XZ Embedded isn't part of the Linux kernel tree. You should also
@@ -55,7 +55,7 @@
     code is modified not to support large files, which needs some more
     care than just using 32-bit integer instead of 64-bit).
 
-    If you use GCC, try to use a recent version. For example, on x86,
+    If you use GCC, try to use a recent version. For example, on x86-32,
     xz_dec_lzma2.c compiled with GCC 3.3.6 is 15-25 % slower than when
     compiled with GCC 4.3.3.
 
@@ -93,7 +93,7 @@
     them always #defined doesn't hurt either.
 
         #define             Instruction set     BCJ filter endianness
-        XZ_DEC_X86          x86 or x86-64       Little endian only
+        XZ_DEC_X86          x86-32 or x86-64    Little endian only
         XZ_DEC_POWERPC      PowerPC             Big endian only
         XZ_DEC_IA64         Itanium (IA-64)     Big or little endian
         XZ_DEC_ARM          ARM                 Little endian only
diff --git a/archival/libarchive/unxz/xz.h b/archival/libarchive/unxz/xz.h
index c6c071c..e0b22db 100644
--- a/archival/libarchive/unxz/xz.h
+++ b/archival/libarchive/unxz/xz.h
@@ -19,6 +19,10 @@
 #	include <stdint.h>
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* In Linux, this is used to make extern functions static when needed. */
 #ifndef XZ_EXTERN
 #	define XZ_EXTERN extern
@@ -70,7 +74,7 @@
  * @XZ_UNSUPPORTED_CHECK:   Integrity check type is not supported. Decoding
  *                          is still possible in multi-call mode by simply
  *                          calling xz_dec_run() again.
- *                          NOTE: This return value is used only if
+ *                          Note that this return value is used only if
  *                          XZ_DEC_ANY_CHECK was defined at build time,
  *                          which is not used in the kernel. Unsupported
  *                          check types return XZ_OPTIONS_ERROR if
@@ -105,7 +109,7 @@
  * stream that is truncated or otherwise corrupt.
  *
  * In single-call mode, XZ_BUF_ERROR is returned only when the output buffer
- * is too small, or the compressed input is corrupt in a way that makes the
+ * is too small or the compressed input is corrupt in a way that makes the
  * decoder produce more output than the caller expected. When it is
  * (relatively) clear that the compressed input is truncated, XZ_DATA_ERROR
  * is used instead of XZ_BUF_ERROR.
@@ -207,8 +211,8 @@
  * The possible return values depend on build options and operation mode.
  * See enum xz_ret for details.
  *
- * NOTE: If an error occurs in single-call mode (return value is not
- * XZ_STREAM_END), b->in_pos and b->out_pos are not modified, and the
+ * Note that if an error occurs in single-call mode (return value is not
+ * XZ_STREAM_END), b->in_pos and b->out_pos are not modified and the
  * contents of the output buffer from b->out[b->out_pos] onward are
  * undefined. This is true even after XZ_BUF_ERROR, because with some filter
  * chains, there may be a second pass over the output buffer, and this pass
@@ -268,4 +272,9 @@
 XZ_EXTERN uint32_t XZ_FUNC xz_crc32(
 		const uint8_t *buf, size_t size, uint32_t crc);
 #endif
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif
diff --git a/archival/libarchive/unxz/xz_config.h b/archival/libarchive/unxz/xz_config.h
index 187e1cb..29f3d29 100644
--- a/archival/libarchive/unxz/xz_config.h
+++ b/archival/libarchive/unxz/xz_config.h
@@ -47,6 +47,10 @@
  * NOTE: System headers on GNU/Linux may #define this macro already,
  * so if you want to change it, you need to #undef it first.
  */
+#ifdef __BIONIC__
+#undef __always_inline
+#endif
+
 #ifndef __always_inline
 #	ifdef __GNUC__
 #		define __always_inline \
diff --git a/archival/libarchive/unxz/xz_dec_bcj.c b/archival/libarchive/unxz/xz_dec_bcj.c
index 09162b5..e0f913a 100644
--- a/archival/libarchive/unxz/xz_dec_bcj.c
+++ b/archival/libarchive/unxz/xz_dec_bcj.c
@@ -77,10 +77,13 @@
 
 #ifdef XZ_DEC_X86
 /*
- * This is macro used to test the most significant byte of a memory address
+ * This is used to test the most significant byte of a memory address
  * in an x86 instruction.
  */
-#define bcj_x86_test_msbyte(b) ((b) == 0x00 || (b) == 0xFF)
+static inline int bcj_x86_test_msbyte(uint8_t b)
+{
+	return b == 0x00 || b == 0xFF;
+}
 
 static noinline_for_stack size_t XZ_FUNC bcj_x86(
 		struct xz_dec_bcj *s, uint8_t *buf, size_t size)
@@ -443,8 +446,12 @@
 	 * next filter in the chain. Apply the BCJ filter on the new data
 	 * in the output buffer. If everything cannot be filtered, copy it
 	 * to temp and rewind the output buffer position accordingly.
+	 *
+	 * This needs to be always run when temp.size == 0 to handle a special
+	 * case where the output buffer is full and the next filter has no
+	 * more output coming but hasn't returned XZ_STREAM_END yet.
 	 */
-	if (s->temp.size < b->out_size - b->out_pos) {
+	if (s->temp.size < b->out_size - b->out_pos || s->temp.size == 0) {
 		out_start = b->out_pos;
 		memcpy(b->out + b->out_pos, s->temp.buf, s->temp.size);
 		b->out_pos += s->temp.size;
@@ -467,16 +474,25 @@
 		s->temp.size = b->out_pos - out_start;
 		b->out_pos -= s->temp.size;
 		memcpy(s->temp.buf, b->out + b->out_pos, s->temp.size);
+
+		/*
+		 * If there wasn't enough input to the next filter to fill
+		 * the output buffer with unfiltered data, there's no point
+		 * to try decoding more data to temp.
+		 */
+		if (b->out_pos + s->temp.size < b->out_size)
+			return XZ_OK;
 	}
 
 	/*
-	 * If we have unfiltered data in temp, try to fill by decoding more
-	 * data from the next filter. Apply the BCJ filter on temp. Then we
-	 * hopefully can fill the actual output buffer by copying filtered
-	 * data from temp. A mix of filtered and unfiltered data may be left
-	 * in temp; it will be taken care on the next call to this function.
+	 * We have unfiltered data in temp. If the output buffer isn't full
+	 * yet, try to fill the temp buffer by decoding more data from the
+	 * next filter. Apply the BCJ filter on temp. Then we hopefully can
+	 * fill the actual output buffer by copying filtered data from temp.
+	 * A mix of filtered and unfiltered data may be left in temp; it will
+	 * be taken care on the next call to this function.
 	 */
-	if (s->temp.size > 0) {
+	if (b->out_pos < b->out_size) {
 		/* Make b->out{,_pos,_size} temporarily point to s->temp. */
 		s->out = b->out;
 		s->out_pos = b->out_pos;
diff --git a/archival/libarchive/unxz/xz_dec_lzma2.c b/archival/libarchive/unxz/xz_dec_lzma2.c
index da71cb4..3c2dc88 100644
--- a/archival/libarchive/unxz/xz_dec_lzma2.c
+++ b/archival/libarchive/unxz/xz_dec_lzma2.c
@@ -407,7 +407,6 @@
 
 		b->out_pos += copy_size;
 		b->in_pos += copy_size;
-
 	}
 }
 
@@ -972,6 +971,9 @@
 			 */
 			tmp = b->in[b->in_pos++];
 
+			if (tmp == 0x00)
+				return XZ_STREAM_END;
+
 			if (tmp >= 0xE0 || tmp == 0x01) {
 				s->lzma2.need_props = true;
 				s->lzma2.need_dict_reset = false;
@@ -1004,9 +1006,6 @@
 						lzma_reset(s);
 				}
 			} else {
-				if (tmp == 0x00)
-					return XZ_STREAM_END;
-
 				if (tmp > 0x02)
 					return XZ_DATA_ERROR;
 
diff --git a/archival/libarchive/unxz/xz_stream.h b/archival/libarchive/unxz/xz_stream.h
index 36f2a7c..66cb5a7 100644
--- a/archival/libarchive/unxz/xz_stream.h
+++ b/archival/libarchive/unxz/xz_stream.h
@@ -25,15 +25,20 @@
 
 #define STREAM_HEADER_SIZE 12
 
-#define HEADER_MAGIC "\3757zXZ\0"
+#define HEADER_MAGIC "\3757zXZ"
 #define HEADER_MAGIC_SIZE 6
 
 #define FOOTER_MAGIC "YZ"
 #define FOOTER_MAGIC_SIZE 2
 
 /*
- * Variable-length integer can hold a 63-bit unsigned integer, or a special
- * value to indicate that the value is unknown.
+ * Variable-length integer can hold a 63-bit unsigned integer or a special
+ * value indicating that the value is unknown.
+ *
+ * Experimental: vli_type can be defined to uint32_t to save a few bytes
+ * in code size (no effect on speed). Doing so limits the uncompressed and
+ * compressed size of the file to less than 256 MiB and may also weaken
+ * error detection slightly.
  */
 typedef uint64_t vli_type;
 
diff --git a/archival/lzop.c b/archival/lzop.c
index 56003d4..5062d93 100644
--- a/archival/lzop.c
+++ b/archival/lzop.c
@@ -25,6 +25,26 @@
    "Minimalized" for busybox by Alain Knaff
 */
 
+//config:config LZOP
+//config:	bool "lzop"
+//config:	default y
+//config:	help
+//config:	  Lzop compression/decompresion.
+//config:
+//config:config LZOP_COMPR_HIGH
+//config:	bool "lzop compression levels 7,8,9 (not very useful)"
+//config:	default n
+//config:	depends on LZOP
+//config:	help
+//config:	  High levels (7,8,9) of lzop compression. These levels
+//config:	  are actually slower than gzip at equivalent compression ratios
+//config:	  and take up 3.2K of code.
+
+//applet:IF_LZOP(APPLET(lzop, BB_DIR_BIN, BB_SUID_DROP))
+//applet:IF_LZOP(APPLET_ODDNAME(lzopcat, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, lzopcat))
+//applet:IF_LZOP(APPLET_ODDNAME(unlzop, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, unlzop))
+//kbuild:lib-$(CONFIG_LZOP) += lzop.o
+
 //usage:#define lzop_trivial_usage
 //usage:       "[-cfvd123456789CF] [FILE]..."
 //usage:#define lzop_full_usage "\n\n"
@@ -436,25 +456,27 @@
 //#define LZOP_VERSION_STRING     "1.01"
 //#define LZOP_VERSION_DATE       "Apr 27th 2003"
 
-#define OPTION_STRING "cfvdt123456789CF"
+#define OPTION_STRING "cfvqdt123456789CF"
 
+/* Note: must be kept in sync with archival/bbunzip.c */
 enum {
 	OPT_STDOUT      = (1 << 0),
 	OPT_FORCE       = (1 << 1),
 	OPT_VERBOSE     = (1 << 2),
-	OPT_DECOMPRESS  = (1 << 3),
-	OPT_TEST        = (1 << 4),
-	OPT_1           = (1 << 5),
-	OPT_2           = (1 << 6),
-	OPT_3           = (1 << 7),
-	OPT_4           = (1 << 8),
-	OPT_5           = (1 << 9),
-	OPT_6           = (1 << 10),
-	OPT_789         = (7 << 11),
-	OPT_7           = (1 << 11),
-	OPT_8           = (1 << 12),
-	OPT_C           = (1 << 14),
-	OPT_F           = (1 << 15),
+	OPT_QUIET       = (1 << 3),
+	OPT_DECOMPRESS  = (1 << 4),
+	OPT_TEST        = (1 << 5),
+	OPT_1           = (1 << 6),
+	OPT_2           = (1 << 7),
+	OPT_3           = (1 << 8),
+	OPT_4           = (1 << 9),
+	OPT_5           = (1 << 10),
+	OPT_6           = (1 << 11),
+	OPT_789         = (7 << 12),
+	OPT_7           = (1 << 13),
+	OPT_8           = (1 << 14),
+	OPT_C           = (1 << 15),
+	OPT_F           = (1 << 16),
 };
 
 /**********************************************************************/
@@ -1093,7 +1115,7 @@
 	if (applet_name[4] == 'c')
 		option_mask32 |= (OPT_STDOUT | OPT_DECOMPRESS);
 	/* unlzop? */
-	if (applet_name[0] == 'u')
+	if (applet_name[4] == 'o')
 		option_mask32 |= OPT_DECOMPRESS;
 
 	global_crc32_table = crc32_filltable(NULL, 0);
diff --git a/archival/rpm.c b/archival/rpm.c
index 6757a6c..1053944 100644
--- a/archival/rpm.c
+++ b/archival/rpm.c
@@ -7,6 +7,15 @@
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
+//config:config RPM
+//config:	bool "rpm"
+//config:	default y
+//config:	help
+//config:	  Mini RPM applet - queries and extracts RPM packages.
+
+//applet:IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_RPM) += rpm.o
+
 //usage:#define rpm_trivial_usage
 //usage:       "-i PACKAGE.rpm; rpm -qp[ildc] PACKAGE.rpm"
 //usage:#define rpm_full_usage "\n\n"
@@ -14,10 +23,10 @@
 //usage:     "\nCommands:"
 //usage:     "\n	-i	Install package"
 //usage:     "\n	-qp	Query package"
-//usage:     "\n	-i	Show information"
-//usage:     "\n	-l	List contents"
-//usage:     "\n	-d	List documents"
-//usage:     "\n	-c	List config files"
+//usage:     "\n	-qpi	Show information"
+//usage:     "\n	-qpl	List contents"
+//usage:     "\n	-qpd	List documents"
+//usage:     "\n	-qpc	List config files"
 
 #include "libbb.h"
 #include "bb_archive.h"
@@ -79,136 +88,13 @@
 	uint32_t count; /* 4 byte count */
 } rpm_index;
 
-static void *map;
-static rpm_index **mytags;
-static int tagcount;
-
-static void extract_cpio(int fd, const char *source_rpm);
-static rpm_index **rpm_gettags(int fd, int *num_tags);
-static int bsearch_rpmtag(const void *key, const void *item);
-static char *rpm_getstr(int tag, int itemindex);
-static int rpm_getint(int tag, int itemindex);
-static int rpm_getcount(int tag);
-static void fileaction_dobackup(char *filename, int fileref);
-static void fileaction_setowngrp(char *filename, int fileref);
-static void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref));
-
-int rpm_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int rpm_main(int argc, char **argv)
-{
-	int opt = 0, func = 0, rpm_fd, offset;
-	const int pagesize = getpagesize();
-
-	while ((opt = getopt(argc, argv, "iqpldc")) != -1) {
-		switch (opt) {
-		case 'i': /* First arg: Install mode, with q: Information */
-			if (!func) func = rpm_install;
-			else func |= rpm_query_info;
-			break;
-		case 'q': /* First arg: Query mode */
-			if (func) bb_show_usage();
-			func = rpm_query;
-			break;
-		case 'p': /* Query a package */
-			func |= rpm_query_package;
-			break;
-		case 'l': /* List files in a package */
-			func |= rpm_query_list;
-			break;
-		case 'd': /* List doc files in a package (implies list) */
-			func |= rpm_query_list;
-			func |= rpm_query_list_doc;
-			break;
-		case 'c': /* List config files in a package (implies list) */
-			func |= rpm_query_list;
-			func |= rpm_query_list_config;
-			break;
-		default:
-			bb_show_usage();
-		}
-	}
-	argv += optind;
-	//argc -= optind;
-	if (!argv[0]) {
-		bb_show_usage();
-	}
-
-	while (*argv) {
-		const char *source_rpm;
-
-		rpm_fd = xopen(*argv++, O_RDONLY);
-		mytags = rpm_gettags(rpm_fd, &tagcount);
-		if (!mytags)
-			bb_error_msg_and_die("error reading rpm header");
-		offset = xlseek(rpm_fd, 0, SEEK_CUR);
-		/* Mimimum is one page */
-		map = mmap(0, offset > pagesize ? (offset + offset % pagesize) : pagesize, PROT_READ, MAP_PRIVATE, rpm_fd, 0);
-
-		source_rpm = rpm_getstr(TAG_SOURCERPM, 0);
-
-		if (func & rpm_install) {
-			/* Backup any config files */
-			loop_through_files(TAG_BASENAMES, fileaction_dobackup);
-			/* Extact the archive */
-			extract_cpio(rpm_fd, source_rpm);
-			/* Set the correct file uid/gid's */
-			loop_through_files(TAG_BASENAMES, fileaction_setowngrp);
-		}
-		else if ((func & (rpm_query|rpm_query_package)) == (rpm_query|rpm_query_package)) {
-			if (!(func & (rpm_query_info|rpm_query_list))) {
-				/* If just a straight query, just give package name */
-				printf("%s-%s-%s\n", rpm_getstr(TAG_NAME, 0), rpm_getstr(TAG_VERSION, 0), rpm_getstr(TAG_RELEASE, 0));
-			}
-			if (func & rpm_query_info) {
-				/* Do the nice printout */
-				time_t bdate_time;
-				struct tm *bdate_ptm;
-				char bdatestring[50];
-				const char *p;
-
-				p = rpm_getstr(TAG_PREFIXS, 0);
-				if (!p) p = "(not relocateable)";
-				printf("Name        : %-29sRelocations: %s\n", rpm_getstr(TAG_NAME, 0), p);
-				p = rpm_getstr(TAG_VENDOR, 0);
-				if (!p) p = "(none)";
-				printf("Version     : %-34sVendor: %s\n", rpm_getstr(TAG_VERSION, 0), p);
-				bdate_time = rpm_getint(TAG_BUILDTIME, 0);
-				bdate_ptm = localtime(&bdate_time);
-				strftime(bdatestring, 50, "%a %d %b %Y %T %Z", bdate_ptm);
-				printf("Release     : %-30sBuild Date: %s\n", rpm_getstr(TAG_RELEASE, 0), bdatestring);
-				printf("Install date: %-30sBuild Host: %s\n", "(not installed)", rpm_getstr(TAG_BUILDHOST, 0));
-				printf("Group       : %-30sSource RPM: %s\n", rpm_getstr(TAG_GROUP, 0), source_rpm);
-				printf("Size        : %-33dLicense: %s\n", rpm_getint(TAG_SIZE, 0), rpm_getstr(TAG_LICENSE, 0));
-				printf("URL         : %s\n", rpm_getstr(TAG_URL, 0));
-				printf("Summary     : %s\n", rpm_getstr(TAG_SUMMARY, 0));
-				printf("Description :\n%s\n", rpm_getstr(TAG_DESCRIPTION, 0));
-			}
-			if (func & rpm_query_list) {
-				int count, it, flags;
-				count = rpm_getcount(TAG_BASENAMES);
-				for (it = 0; it < count; it++) {
-					flags = rpm_getint(TAG_FILEFLAGS, it);
-					switch (func & (rpm_query_list_doc|rpm_query_list_config)) {
-					case rpm_query_list_doc:
-						if (!(flags & RPMFILE_DOC)) continue;
-						break;
-					case rpm_query_list_config:
-						if (!(flags & RPMFILE_CONFIG)) continue;
-						break;
-					case rpm_query_list_doc|rpm_query_list_config:
-						if (!(flags & (RPMFILE_CONFIG|RPMFILE_DOC))) continue;
-						break;
-					}
-					printf("%s%s\n",
-						rpm_getstr(TAG_DIRNAMES, rpm_getint(TAG_DIRINDEXES, it)),
-						rpm_getstr(TAG_BASENAMES, it));
-				}
-			}
-		}
-		free(mytags);
-	}
-	return 0;
-}
+struct globals {
+	void *map;
+	rpm_index **mytags;
+	int tagcount;
+} FIX_ALIASING;
+#define G (*(struct globals*)&bb_common_bufsiz1)
+#define INIT_G() do { } while (0)
 
 static void extract_cpio(int fd, const char *source_rpm)
 {
@@ -231,12 +117,12 @@
 		/* compat: overwrite existing files.
 		 * try "rpm -i foo.src.rpm" few times in a row -
 		 * standard rpm will not complain.
-		 * (TODO? real rpm creates "file;1234" and then renames it) */
-		| ARCHIVE_UNLINK_OLD;
+		 */
+		| ARCHIVE_REPLACE_VIA_RENAME;
 	archive_handle->src_fd = fd;
 	/*archive_handle->offset = 0; - init_handle() did it */
 
-	setup_unzip_on_fd(archive_handle->src_fd, /*fail_if_not_detected:*/ 1);
+	setup_unzip_on_fd(archive_handle->src_fd, /*fail_if_not_compressed:*/ 1);
 	while (get_header_cpio(archive_handle) == EXIT_SUCCESS)
 		continue;
 }
@@ -294,7 +180,7 @@
 static int rpm_getcount(int tag)
 {
 	rpm_index **found;
-	found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag);
+	found = bsearch(&tag, G.mytags, G.tagcount, sizeof(struct rpmtag *), bsearch_rpmtag);
 	if (!found)
 		return 0;
 	return found[0]->count;
@@ -303,7 +189,7 @@
 static char *rpm_getstr(int tag, int itemindex)
 {
 	rpm_index **found;
-	found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag);
+	found = bsearch(&tag, G.mytags, G.tagcount, sizeof(struct rpmtag *), bsearch_rpmtag);
 	if (!found || itemindex >= found[0]->count)
 		return NULL;
 	if (found[0]->type == RPM_STRING_TYPE
@@ -311,7 +197,7 @@
 	 || found[0]->type == RPM_STRING_ARRAY_TYPE
 	) {
 		int n;
-		char *tmpstr = (char *) map + found[0]->offset;
+		char *tmpstr = (char *) G.map + found[0]->offset;
 		for (n = 0; n < itemindex; n++)
 			tmpstr = tmpstr + strlen(tmpstr) + 1;
 		return tmpstr;
@@ -322,32 +208,25 @@
 static int rpm_getint(int tag, int itemindex)
 {
 	rpm_index **found;
-	int *tmpint; /* NB: using int8_t* would be easier to code */
+	char *tmpint;
 
 	/* gcc throws warnings here when sizeof(void*)!=sizeof(int) ...
 	 * it's ok to ignore it because tag won't be used as a pointer */
-	found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag);
+	found = bsearch(&tag, G.mytags, G.tagcount, sizeof(struct rpmtag *), bsearch_rpmtag);
 	if (!found || itemindex >= found[0]->count)
 		return -1;
 
-	tmpint = (int *) ((char *) map + found[0]->offset);
-
+	tmpint = (char *) G.map + found[0]->offset;
 	if (found[0]->type == RPM_INT32_TYPE) {
-		tmpint = (int *) ((char *) tmpint + itemindex*4);
-		/*return ntohl(*tmpint);*/
-		/* int can be != int32_t */
+		tmpint += itemindex*4;
 		return ntohl(*(int32_t*)tmpint);
 	}
 	if (found[0]->type == RPM_INT16_TYPE) {
-		tmpint = (int *) ((char *) tmpint + itemindex*2);
-		/* ??? read int, and THEN ntohs() it?? */
-		/*return ntohs(*tmpint);*/
+		tmpint += itemindex*2;
 		return ntohs(*(int16_t*)tmpint);
 	}
 	if (found[0]->type == RPM_INT8_TYPE) {
-		tmpint = (int *) ((char *) tmpint + itemindex);
-		/* ??? why we don't read byte here??? */
-		/*return ntohs(*tmpint);*/
+		tmpint += itemindex;
 		return *(int8_t*)tmpint;
 	}
 	return -1;
@@ -392,3 +271,134 @@
 		free(filename);
 	}
 }
+
+int rpm_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int rpm_main(int argc, char **argv)
+{
+	int opt, func = 0;
+	const unsigned pagesize = getpagesize();
+
+	while ((opt = getopt(argc, argv, "iqpldc")) != -1) {
+		switch (opt) {
+		case 'i': /* First arg: Install mode, with q: Information */
+			if (!func) func = rpm_install;
+			else func |= rpm_query_info;
+			break;
+		case 'q': /* First arg: Query mode */
+			if (func) bb_show_usage();
+			func = rpm_query;
+			break;
+		case 'p': /* Query a package */
+			func |= rpm_query_package;
+			break;
+		case 'l': /* List files in a package */
+			func |= rpm_query_list;
+			break;
+		case 'd': /* List doc files in a package (implies list) */
+			func |= rpm_query_list;
+			func |= rpm_query_list_doc;
+			break;
+		case 'c': /* List config files in a package (implies list) */
+			func |= rpm_query_list;
+			func |= rpm_query_list_config;
+			break;
+		default:
+			bb_show_usage();
+		}
+	}
+	argv += optind;
+	//argc -= optind;
+	if (!argv[0]) {
+		bb_show_usage();
+	}
+
+	while (*argv) {
+		int rpm_fd;
+		unsigned mapsize;
+		const char *source_rpm;
+
+		rpm_fd = xopen(*argv++, O_RDONLY);
+		G.mytags = rpm_gettags(rpm_fd, &G.tagcount);
+		if (!G.mytags)
+			bb_error_msg_and_die("error reading rpm header");
+		mapsize = xlseek(rpm_fd, 0, SEEK_CUR);
+		mapsize = (mapsize + pagesize) & -(int)pagesize;
+		/* Some NOMMU systems prefer MAP_PRIVATE over MAP_SHARED */
+		G.map = mmap(0, mapsize, PROT_READ, MAP_PRIVATE, rpm_fd, 0);
+//FIXME: error check?
+
+		source_rpm = rpm_getstr(TAG_SOURCERPM, 0);
+
+		if (func & rpm_install) {
+			/* Backup any config files */
+			loop_through_files(TAG_BASENAMES, fileaction_dobackup);
+			/* Extact the archive */
+			extract_cpio(rpm_fd, source_rpm);
+			/* Set the correct file uid/gid's */
+			loop_through_files(TAG_BASENAMES, fileaction_setowngrp);
+		}
+		else if ((func & (rpm_query|rpm_query_package)) == (rpm_query|rpm_query_package)) {
+			if (!(func & (rpm_query_info|rpm_query_list))) {
+				/* If just a straight query, just give package name */
+				printf("%s-%s-%s\n", rpm_getstr(TAG_NAME, 0), rpm_getstr(TAG_VERSION, 0), rpm_getstr(TAG_RELEASE, 0));
+			}
+			if (func & rpm_query_info) {
+				/* Do the nice printout */
+				time_t bdate_time;
+				struct tm *bdate_ptm;
+				char bdatestring[50];
+				const char *p;
+
+				printf("%-12s: %s\n", "Name"        , rpm_getstr(TAG_NAME, 0));
+				/* TODO compat: add "Epoch" here */
+				printf("%-12s: %s\n", "Version"     , rpm_getstr(TAG_VERSION, 0));
+				printf("%-12s: %s\n", "Release"     , rpm_getstr(TAG_RELEASE, 0));
+				/* add "Architecture" */
+				printf("%-12s: %s\n", "Install Date", "(not installed)");
+				printf("%-12s: %s\n", "Group"       , rpm_getstr(TAG_GROUP, 0));
+				printf("%-12s: %d\n", "Size"        , rpm_getint(TAG_SIZE, 0));
+				printf("%-12s: %s\n", "License"     , rpm_getstr(TAG_LICENSE, 0));
+				/* add "Signature" */
+				printf("%-12s: %s\n", "Source RPM"  , source_rpm ? source_rpm : "(none)");
+				bdate_time = rpm_getint(TAG_BUILDTIME, 0);
+				bdate_ptm = localtime(&bdate_time);
+				strftime(bdatestring, 50, "%a %d %b %Y %T %Z", bdate_ptm);
+				printf("%-12s: %s\n", "Build Date"  , bdatestring);
+				printf("%-12s: %s\n", "Build Host"  , rpm_getstr(TAG_BUILDHOST, 0));
+				p = rpm_getstr(TAG_PREFIXS, 0);
+				printf("%-12s: %s\n", "Relocations" , p ? p : "(not relocatable)");
+				/* add "Packager" */
+				p = rpm_getstr(TAG_VENDOR, 0);
+				printf("%-12s: %s\n", "Vendor"      , p ? p : "(none)");
+				printf("%-12s: %s\n", "URL"         , rpm_getstr(TAG_URL, 0));
+				printf("%-12s: %s\n", "Summary"     , rpm_getstr(TAG_SUMMARY, 0));
+				printf("Description :\n%s\n", rpm_getstr(TAG_DESCRIPTION, 0));
+			}
+			if (func & rpm_query_list) {
+				int count, it, flags;
+				count = rpm_getcount(TAG_BASENAMES);
+				for (it = 0; it < count; it++) {
+					flags = rpm_getint(TAG_FILEFLAGS, it);
+					switch (func & (rpm_query_list_doc|rpm_query_list_config)) {
+					case rpm_query_list_doc:
+						if (!(flags & RPMFILE_DOC)) continue;
+						break;
+					case rpm_query_list_config:
+						if (!(flags & RPMFILE_CONFIG)) continue;
+						break;
+					case rpm_query_list_doc|rpm_query_list_config:
+						if (!(flags & (RPMFILE_CONFIG|RPMFILE_DOC))) continue;
+						break;
+					}
+					printf("%s%s\n",
+						rpm_getstr(TAG_DIRNAMES, rpm_getint(TAG_DIRINDEXES, it)),
+						rpm_getstr(TAG_BASENAMES, it));
+				}
+			}
+		}
+		munmap(G.map, mapsize);
+		free(G.mytags);
+		close(rpm_fd);
+	}
+	return 0;
+}
diff --git a/archival/rpm2cpio.c b/archival/rpm2cpio.c
index f3dfa51..7057570 100644
--- a/archival/rpm2cpio.c
+++ b/archival/rpm2cpio.c
@@ -7,6 +7,15 @@
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
+//config:config RPM2CPIO
+//config:	bool "rpm2cpio"
+//config:	default y
+//config:	help
+//config:	  Converts a RPM file into a CPIO archive.
+
+//applet:IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o
+
 //usage:#define rpm2cpio_trivial_usage
 //usage:       "package.rpm"
 //usage:#define rpm2cpio_full_usage "\n\n"
@@ -71,7 +80,7 @@
 	//	signal(SIGCHLD, check_errors_in_children);
 
 	/* This works, but doesn't report uncompress errors (they happen in child) */
-	setup_unzip_on_fd(rpm_fd, /*fail_if_not_detected:*/ 1);
+	setup_unzip_on_fd(rpm_fd, /*fail_if_not_compressed:*/ 1);
 	if (bb_copyfd_eof(rpm_fd, STDOUT_FILENO) < 0)
 		bb_error_msg_and_die("error unpacking");
 
diff --git a/archival/tar.c b/archival/tar.c
index baca798..cdc6067 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -22,7 +22,6 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
-
 /* TODO: security with -C DESTDIR option can be enhanced.
  * Consider tar file created via:
  * $ tar cvf bug.tar anything.txt
@@ -42,6 +41,109 @@
  * This doesn't feel right, and IIRC GNU tar doesn't do that.
  */
 
+//config:config TAR
+//config:	bool "tar"
+//config:	default y
+//config:	help
+//config:	  tar is an archiving program. It's commonly used with gzip to
+//config:	  create compressed archives. It's probably the most widely used
+//config:	  UNIX archive program.
+//config:
+//config:config FEATURE_TAR_CREATE
+//config:	bool "Enable archive creation"
+//config:	default y
+//config:	depends on TAR
+//config:	help
+//config:	  If you enable this option you'll be able to create
+//config:	  tar archives using the `-c' option.
+//config:
+//config:config FEATURE_TAR_AUTODETECT
+//config:	bool "Autodetect compressed tarballs"
+//config:	default y
+//config:	depends on TAR && (FEATURE_SEAMLESS_Z || FEATURE_SEAMLESS_GZ || FEATURE_SEAMLESS_BZ2 || FEATURE_SEAMLESS_LZMA || FEATURE_SEAMLESS_XZ)
+//config:	help
+//config:	  With this option tar can automatically detect compressed
+//config:	  tarballs. Currently it works only on files (not pipes etc).
+//config:
+//config:config FEATURE_TAR_FROM
+//config:	bool "Enable -X (exclude from) and -T (include from) options)"
+//config:	default y
+//config:	depends on TAR
+//config:	help
+//config:	  If you enable this option you'll be able to specify
+//config:	  a list of files to include or exclude from an archive.
+//config:
+//config:config FEATURE_TAR_OLDGNU_COMPATIBILITY
+//config:	bool "Support for old tar header format"
+//config:	default y
+//config:	depends on TAR || DPKG
+//config:	help
+//config:	  This option is required to unpack archives created in
+//config:	  the old GNU format; help to kill this old format by
+//config:	  repacking your ancient archives with the new format.
+//config:
+//config:config FEATURE_TAR_OLDSUN_COMPATIBILITY
+//config:	bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
+//config:	default y
+//config:	depends on TAR || DPKG
+//config:	help
+//config:	  This option is required to unpack archives created by some old
+//config:	  version of Sun's tar (it was calculating checksum using signed
+//config:	  arithmetic). It is said to be fixed in newer Sun tar, but "old"
+//config:	  tarballs still exist.
+//config:
+//config:config FEATURE_TAR_GNU_EXTENSIONS
+//config:	bool "Support for GNU tar extensions (long filenames)"
+//config:	default y
+//config:	depends on TAR || DPKG
+//config:	help
+//config:	  With this option busybox supports GNU long filenames and
+//config:	  linknames.
+//config:
+//config:config FEATURE_TAR_LONG_OPTIONS
+//config:	bool "Enable long options"
+//config:	default y
+//config:	depends on TAR && LONG_OPTS
+//config:	help
+//config:	  Enable use of long options, increases size by about 400 Bytes
+//config:
+//config:config FEATURE_TAR_TO_COMMAND
+//config:	bool "Support for writing to an external program"
+//config:	default y
+//config:	depends on TAR && FEATURE_TAR_LONG_OPTIONS
+//config:	help
+//config:	  If you enable this option you'll be able to instruct tar to send
+//config:	  the contents of each extracted file to the standard input of an
+//config:	  external program.
+//config:
+//config:config FEATURE_TAR_UNAME_GNAME
+//config:	bool "Enable use of user and group names"
+//config:	default y
+//config:	depends on TAR
+//config:	help
+//config:	  Enables use of user and group names in tar. This affects contents
+//config:	  listings (-t) and preserving permissions when unpacking (-p).
+//config:	  +200 bytes.
+//config:
+//config:config FEATURE_TAR_NOPRESERVE_TIME
+//config:	bool "Enable -m (do not preserve time) option"
+//config:	default y
+//config:	depends on TAR
+//config:	help
+//config:	  With this option busybox supports GNU tar -m
+//config:	  (do not preserve time) option.
+//config:
+//config:config FEATURE_TAR_SELINUX
+//config:	bool "Support for extracting SELinux labels"
+//config:	default n
+//config:	depends on TAR && SELINUX
+//config:	help
+//config:	  With this option busybox supports restoring SELinux labels
+//config:	  when extracting files from tar archives.
+
+//applet:IF_TAR(APPLET(tar, BB_DIR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_TAR) += tar.o
+
 #include <fnmatch.h>
 #include "libbb.h"
 #include "bb_archive.h"
@@ -60,8 +162,8 @@
 
 #if !ENABLE_FEATURE_SEAMLESS_GZ && !ENABLE_FEATURE_SEAMLESS_BZ2
 /* Do not pass gzip flag to writeTarFile() */
-#define writeTarFile(tar_fd, verboseFlag, recurseFlags, include, exclude, gzip) \
-	writeTarFile(tar_fd, verboseFlag, recurseFlags, include, exclude)
+#define writeTarFile(tar_fd, verboseFlag, optFlags, recurseFlags, include, exclude, gzip) \
+	writeTarFile(tar_fd, verboseFlag, optFlags, recurseFlags, include, exclude)
 #endif
 
 
@@ -85,6 +187,8 @@
 	int tarFd;                      /* Open-for-write file descriptor
 	                                 * for the tarball */
 	int verboseFlag;                /* Whether to print extra stuff or not */
+	unsigned optFlags;              /* all command line flags */
+
 	const llist_t *excludeList;     /* List of files to not include */
 	HardLinkInfo *hlInfoHead;       /* Hard Link Tracking Information */
 	HardLinkInfo *hlInfo;           /* Hard Link Info for the current file */
@@ -108,6 +212,7 @@
 	CONTTYPE = '7',		/* reserved */
 	GNULONGLINK = 'K',	/* GNU long (>100 chars) link name */
 	GNULONGNAME = 'L',	/* GNU long (>100 chars) file name */
+	EXTTYPE = 'x',		/* ext metadata for next file, store selinux_context */
 };
 
 /* Might be faster (and bigger) if the dev/ino were stored in numeric order;) */
@@ -249,6 +354,34 @@
 }
 #endif
 
+#if ENABLE_FEATURE_TAR_SELINUX
+# define SELINUX_CONTEXT_KEYWORD "RHT.security.selinux"
+/* Write 2 blocks : extended file header + selinux context */
+static int writeSeHeader(int fd, const char *con, struct tar_header_t *header)
+{
+	char block[TAR_BLOCK_SIZE];
+	struct tar_header_t hd;
+
+	int sz = sizeof(SELINUX_CONTEXT_KEYWORD) + 4 + strlen(con);
+	if (sz >= 100) sz++; /* another ascii digit for size */
+	if (sz > TAR_BLOCK_SIZE)
+		return FALSE;
+
+	memset(&block, 0, TAR_BLOCK_SIZE);
+	sprintf(block, "%d %s=%s\n", sz, SELINUX_CONTEXT_KEYWORD, con);
+
+	/* write duplicated file entry */
+	memcpy(&hd, header, sizeof(hd));
+	hd.typeflag = EXTTYPE;
+	PUT_OCTAL(hd.size, sz);
+	chksum_and_xwrite(fd, &hd);
+
+	/* write selinux context */
+	xwrite(fd, &block, TAR_BLOCK_SIZE);
+	return TRUE;
+}
+#endif
+
 /* Write out a tar header for the specified file/directory/whatever */
 static int writeTarHeader(struct TarBallInfo *tbInfo,
 		const char *header_name, const char *fileName, struct stat *statbuf)
@@ -365,6 +498,18 @@
 				header_name, S_ISDIR(statbuf->st_mode));
 #endif
 
+#if ENABLE_FEATURE_TAR_SELINUX
+	if (is_selinux_enabled() && (tbInfo->optFlags & ARCHIVE_STORE_SELINUX)) {
+		security_context_t sid;
+		lgetfilecon(fileName, &sid);
+		if (sid) {
+			// optional extended block
+			writeSeHeader(tbInfo->tarFd, sid, &header);
+			freecon(sid);
+		}
+	}
+#endif
+
 	/* Now write the header out to disk */
 	chksum_and_xwrite(tbInfo->tarFd, &header);
 
@@ -566,7 +711,7 @@
 		xmove_fd(gzipDataPipe.rd, 0);
 		xmove_fd(tar_fd, 1);
 		/* exec gzip/bzip2 program/applet */
-		BB_EXECLP(zip_exec, zip_exec, "-f", NULL);
+		BB_EXECLP(zip_exec, zip_exec, "-f", (char *)0);
 		vfork_exec_errno = errno;
 		_exit(EXIT_FAILURE);
 	}
@@ -597,6 +742,7 @@
 
 /* gcc 4.2.1 inlines it, making code bigger */
 static NOINLINE int writeTarFile(int tar_fd, int verboseFlag,
+	unsigned optFlags,
 	int recurseFlags, const llist_t *include,
 	const llist_t *exclude, int gzip)
 {
@@ -606,6 +752,7 @@
 	tbInfo.hlInfoHead = NULL;
 	tbInfo.tarFd = tar_fd;
 	tbInfo.verboseFlag = verboseFlag;
+	tbInfo.optFlags = optFlags;
 
 	/* Store the stat info for the tarball's file, so
 	 * can avoid including the tarball into itself....  */
@@ -660,6 +807,7 @@
 }
 #else
 int writeTarFile(int tar_fd, int verboseFlag,
+	unsigned optFlags,
 	int recurseFlags, const llist_t *include,
 	const llist_t *exclude, int gzip);
 #endif /* FEATURE_TAR_CREATE */
@@ -678,14 +826,12 @@
 			char *cp = last_char_is(line, '/');
 			if (cp > line)
 				*cp = '\0';
-			llist_add_to(&newlist, line);
+			llist_add_to_end(&newlist, line);
 		}
 		fclose(src_stream);
 	}
 	return newlist;
 }
-#else
-# define append_file_list_to_list(x) 0
 #endif
 
 //usage:#define tar_trivial_usage
@@ -697,6 +843,7 @@
 //usage:	IF_FEATURE_SEAMLESS_LZMA("a")
 //usage:	IF_FEATURE_TAR_CREATE("h")
 //usage:	IF_FEATURE_TAR_NOPRESERVE_TIME("m")
+//usage:	IF_FEATURE_TAR_SELINUX("p")
 //usage:	"vO] "
 //usage:	IF_FEATURE_TAR_FROM("[-X FILE] [-T FILE] ")
 //usage:	"[-f TARFILE] [-C DIR] [FILE]..."
@@ -742,6 +889,9 @@
 //usage:     "\n	X	File with names to exclude"
 //usage:     "\n	T	File with names to include"
 //usage:	)
+//usage:	IF_FEATURE_TAR_SELINUX(
+//usage:     "\n	p	Store SELinux contexts"
+//usage:	)
 //usage:
 //usage:#define tar_example_usage
 //usage:       "$ zcat /tmp/tarball.tar.gz | tar -xf -\n"
@@ -977,6 +1127,11 @@
 	if (opt & OPT_NOPRESERVE_PERM)
 		tar_handle->ah_flags |= ARCHIVE_DONT_RESTORE_PERM;
 
+#if ENABLE_FEATURE_TAR_SELINUX
+	if (opt & OPT_P)
+		tar_handle->ah_flags |= ARCHIVE_STORE_SELINUX;
+#endif
+
 	if (opt & OPT_OVERWRITE) {
 		tar_handle->ah_flags &= ~ARCHIVE_UNLINK_OLD;
 		tar_handle->ah_flags |= ARCHIVE_O_TRUNC;
@@ -1036,7 +1191,7 @@
 			 && flags == O_RDONLY
 			 && !(opt & OPT_ANY_COMPRESS)
 			) {
-				tar_handle->src_fd = open_zipped(tar_filename);
+				tar_handle->src_fd = open_zipped(tar_filename, /*fail_if_not_compressed:*/ 0);
 				if (tar_handle->src_fd < 0)
 					bb_perror_msg_and_die("can't open '%s'", tar_filename);
 			} else {
@@ -1063,6 +1218,7 @@
 #endif
 		/* NB: writeTarFile() closes tar_handle->src_fd */
 		return writeTarFile(tar_handle->src_fd, verboseFlag,
+				tar_handle->ah_flags,
 				(opt & OPT_DEREFERENCE ? ACTION_FOLLOWLINKS : 0)
 				| (opt & OPT_NORECURSION ? 0 : ACTION_RECURSE),
 				tar_handle->accept,
@@ -1095,8 +1251,14 @@
 		/*tar_handle->offset = 0; - already is */
 	}
 
+	/* Zero processed headers (== empty file) is not a valid tarball.
+	 * We (ab)use bb_got_signal as exitcode here,
+	 * because check_errors_in_children() uses _it_ as error indicator.
+	 */
+	bb_got_signal = EXIT_FAILURE;
+
 	while (get_header_tar(tar_handle) == EXIT_SUCCESS)
-		continue;
+		bb_got_signal = EXIT_SUCCESS; /* saw at least one header, good */
 
 	/* Check that every file that should have been extracted was */
 	while (tar_handle->accept) {
@@ -1112,8 +1274,9 @@
 		close(tar_handle->src_fd);
 
 	if (SEAMLESS_COMPRESSION || OPT_COMPRESS) {
+		/* Set bb_got_signal to 1 if a child died with !0 exitcode */
 		check_errors_in_children(0);
-		return bb_got_signal;
 	}
-	return EXIT_SUCCESS;
+
+	return bb_got_signal;
 }
diff --git a/archival/unzip.c b/archival/unzip.c
index 9add637..1cde28d 100644
--- a/archival/unzip.c
+++ b/archival/unzip.c
@@ -9,16 +9,27 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
-
 /* For reference see
  * http://www.pkware.com/company/standards/appnote/
  * http://www.info-zip.org/pub/infozip/doc/appnote-iz-latest.zip
- */
-
-/* TODO
+ *
+ * TODO
  * Zip64 + other methods
  */
 
+//config:config UNZIP
+//config:	bool "unzip"
+//config:	default y
+//config:	help
+//config:	  unzip will list or extract files from a ZIP archive,
+//config:	  commonly found on DOS/WIN systems. The default behavior
+//config:	  (with no options) is to extract the archive into the
+//config:	  current directory. Use the `-d' option to extract to a
+//config:	  directory of your choice.
+
+//applet:IF_UNZIP(APPLET(unzip, BB_DIR_USR_BIN, BB_SUID_DROP))
+//kbuild:lib-$(CONFIG_UNZIP) += unzip.o
+
 //usage:#define unzip_trivial_usage
 //usage:       "[-lnopq] FILE[.zip] [FILE]... [-x FILE...] [-d DIR]"
 //usage:#define unzip_full_usage "\n\n"
@@ -34,6 +45,12 @@
 #include "libbb.h"
 #include "bb_archive.h"
 
+#if defined(ANDROID) || defined(__ANDROID__)
+/* Needed to ensure we can extract signed Android OTA packages */
+#undef ENABLE_DESKTOP
+#define ENABLE_DESKTOP 1
+#endif
+
 enum {
 #if BB_BIG_ENDIAN
 	ZIP_FILEHEADER_MAGIC = 0x504b0304,
@@ -163,7 +180,17 @@
 
 #if ENABLE_DESKTOP
 
-#define PEEK_FROM_END 16384
+/* Seen in the wild:
+ * Self-extracting PRO2K3XP_32.exe contains 19078464 byte zip archive,
+ * where CDE was nearly 48 kbytes before EOF.
+ * (Surprisingly, it also apparently has *another* CDE structure
+ * closer to the end, with bogus cdf_offset).
+ * To make extraction work, bumped PEEK_FROM_END from 16k to 64k.
+ */
+#define PEEK_FROM_END (64*1024)
+
+/* This value means that we failed to find CDF */
+#define BAD_CDF_OFFSET ((uint32_t)0xffffffff)
 
 /* NB: does not preserve file position! */
 static uint32_t find_cdf_offset(void)
@@ -180,6 +207,7 @@
 	xlseek(zip_fd, end, SEEK_SET);
 	full_read(zip_fd, buf, PEEK_FROM_END);
 
+	cde_header.formatted.cdf_offset = BAD_CDF_OFFSET;
 	p = buf;
 	while (p <= buf + PEEK_FROM_END - CDE_HEADER_LEN - 4) {
 		if (*p != 'P') {
@@ -195,11 +223,17 @@
 		/* we found CDE! */
 		memcpy(cde_header.raw, p + 1, CDE_HEADER_LEN);
 		FIX_ENDIANNESS_CDE(cde_header);
-		free(buf);
-		return cde_header.formatted.cdf_offset;
+		/*
+		 * I've seen .ZIP files with seemingly valid CDEs
+		 * where cdf_offset points past EOF - ??
+		 * Ignore such CDEs:
+		 */
+		if ((int64_t) cde_header.formatted.cdf_offset < end + (p - buf))
+			break;
+		cde_header.formatted.cdf_offset = BAD_CDF_OFFSET;
 	}
-	//free(buf);
-	bb_error_msg_and_die("can't find file table");
+	free(buf);
+	return cde_header.formatted.cdf_offset;
 };
 
 static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf_ptr)
@@ -211,13 +245,15 @@
 	if (!cdf_offset)
 		cdf_offset = find_cdf_offset();
 
-	xlseek(zip_fd, cdf_offset + 4, SEEK_SET);
-	xread(zip_fd, cdf_ptr->raw, CDF_HEADER_LEN);
-	FIX_ENDIANNESS_CDF(*cdf_ptr);
-	cdf_offset += 4 + CDF_HEADER_LEN
-		+ cdf_ptr->formatted.file_name_length
-		+ cdf_ptr->formatted.extra_field_length
-		+ cdf_ptr->formatted.file_comment_length;
+	if (cdf_offset != BAD_CDF_OFFSET) {
+		xlseek(zip_fd, cdf_offset + 4, SEEK_SET);
+		xread(zip_fd, cdf_ptr->raw, CDF_HEADER_LEN);
+		FIX_ENDIANNESS_CDF(*cdf_ptr);
+		cdf_offset += 4 + CDF_HEADER_LEN
+			+ cdf_ptr->formatted.file_name_length
+			+ cdf_ptr->formatted.extra_field_length
+			+ cdf_ptr->formatted.file_comment_length;
+	}
 
 	xlseek(zip_fd, org, SEEK_SET);
 	return cdf_offset;
@@ -226,8 +262,9 @@
 
 static void unzip_skip(off_t skip)
 {
-	if (lseek(zip_fd, skip, SEEK_CUR) == (off_t)-1)
-		bb_copyfd_exact_size(zip_fd, -1, skip);
+	if (skip != 0)
+		if (lseek(zip_fd, skip, SEEK_CUR) == (off_t)-1)
+			bb_copyfd_exact_size(zip_fd, -1, skip);
 }
 
 static void unzip_create_leading_dirs(const char *fn)
@@ -267,6 +304,14 @@
 	}
 }
 
+static void my_fgets80(char *buf80)
+{
+	fflush_all();
+	if (!fgets(buf80, 80, stdin)) {
+		bb_perror_msg_and_die("can't read standard input");
+	}
+}
+
 int unzip_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int unzip_main(int argc, char **argv)
 {
@@ -291,7 +336,7 @@
 	llist_t *zreject = NULL;
 	char *base_dir = NULL;
 	int i, opt;
-	char key_buf[80];
+	char key_buf[80]; /* must match size used by my_fgets80 */
 	struct stat stat_buf;
 
 /* -q, -l and -v: UnZip 5.52 of 28 February 2005, by Info-ZIP:
@@ -520,21 +565,31 @@
 			bb_error_msg_and_die("zip flag 1 (encryption) is not supported");
 		}
 
-		{
+		if (cdf_offset != BAD_CDF_OFFSET) {
 			cdf_header_t cdf_header;
 			cdf_offset = read_next_cdf(cdf_offset, &cdf_header);
+			/*
+			 * Note: cdf_offset can become BAD_CDF_OFFSET after the above call.
+			 */
 			if (zip_header.formatted.zip_flags & SWAP_LE16(0x0008)) {
 				/* 0x0008 - streaming. [u]cmpsize can be reliably gotten
-				 * only from Central Directory. See unzip_doc.txt */
+				 * only from Central Directory. See unzip_doc.txt
+				 */
 				zip_header.formatted.crc32    = cdf_header.formatted.crc32;
 				zip_header.formatted.cmpsize  = cdf_header.formatted.cmpsize;
 				zip_header.formatted.ucmpsize = cdf_header.formatted.ucmpsize;
 			}
 			if ((cdf_header.formatted.version_made_by >> 8) == 3) {
-				/* this archive is created on Unix */
+				/* This archive is created on Unix */
 				dir_mode = file_mode = (cdf_header.formatted.external_file_attributes >> 16);
 			}
 		}
+		if (cdf_offset == BAD_CDF_OFFSET
+		 && (zip_header.formatted.zip_flags & SWAP_LE16(0x0008))
+		) {
+			/* If it's a streaming zip, we _require_ CDF */
+			bb_error_msg_and_die("can't find file table");
+		}
 #endif
 
 		/* Read filename */
@@ -624,10 +679,7 @@
 							i = 'y';
 						} else {
 							printf("replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: ", dst_fn);
-							fflush_all();
-							if (!fgets(key_buf, sizeof(key_buf), stdin)) {
-								bb_perror_msg_and_die("can't read input");
-							}
+							my_fgets80(key_buf);
 							i = key_buf[0];
 						}
 					} else { /* File is not regular file */
@@ -668,9 +720,7 @@
 		case 'r':
 			/* Prompt for new name */
 			printf("new name: ");
-			if (!fgets(key_buf, sizeof(key_buf), stdin)) {
-				bb_perror_msg_and_die("can't read input");
-			}
+			my_fgets80(key_buf);
 			free(dst_fn);
 			dst_fn = xstrdup(key_buf);
 			chomp(dst_fn);
diff --git a/.config-full b/busybox-full.config
similarity index 94%
rename from .config-full
rename to busybox-full.config
index e893fec..95664c4 100644
--- a/.config-full
+++ b/busybox-full.config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Busybox version: 1.21.1-jb
-# Mon Jul  1 01:04:09 2013
+# Busybox version: 1.22.1
+# Wed Aug  6 13:27:12 2014
 #
 CONFIG_HAVE_DOT_CONFIG=y
 
@@ -23,7 +23,7 @@
 CONFIG_SHOW_USAGE=y
 CONFIG_FEATURE_VERBOSE_USAGE=y
 CONFIG_FEATURE_COMPRESS_USAGE=y
-# CONFIG_FEATURE_INSTALLER is not set
+CONFIG_FEATURE_INSTALLER=y
 CONFIG_INSTALL_NO_USR=y
 # CONFIG_LOCALE_SUPPORT is not set
 CONFIG_UNICODE_SUPPORT=y
@@ -46,7 +46,7 @@
 CONFIG_FEATURE_SUID=y
 # CONFIG_FEATURE_SUID_CONFIG is not set
 # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
-# CONFIG_SELINUX is not set
+CONFIG_SELINUX=y
 # CONFIG_FEATURE_PREFER_APPLETS is not set
 CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
 CONFIG_FEATURE_SYSLOG=y
@@ -134,7 +134,14 @@
 # CONFIG_AR is not set
 # CONFIG_FEATURE_AR_LONG_FILENAMES is not set
 # CONFIG_FEATURE_AR_CREATE is not set
+CONFIG_UNCOMPRESS=y
+CONFIG_GUNZIP=y
 CONFIG_BUNZIP2=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
 CONFIG_BZIP2=y
 CONFIG_CPIO=y
 CONFIG_FEATURE_CPIO_O=y
@@ -142,14 +149,13 @@
 # CONFIG_DPKG is not set
 # CONFIG_DPKG_DEB is not set
 # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
-CONFIG_GUNZIP=y
 CONFIG_GZIP=y
 CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
 CONFIG_GZIP_FAST=2
 CONFIG_LZOP=y
-# CONFIG_LZOP_COMPR_HIGH is not set
-# CONFIG_RPM2CPIO is not set
+CONFIG_LZOP_COMPR_HIGH=y
 # CONFIG_RPM is not set
+# CONFIG_RPM2CPIO is not set
 CONFIG_TAR=y
 CONFIG_FEATURE_TAR_CREATE=y
 CONFIG_FEATURE_TAR_AUTODETECT=y
@@ -161,13 +167,7 @@
 CONFIG_FEATURE_TAR_TO_COMMAND=y
 CONFIG_FEATURE_TAR_UNAME_GNAME=y
 CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
-# CONFIG_FEATURE_TAR_SELINUX is not set
-CONFIG_UNCOMPRESS=y
-CONFIG_UNLZMA=y
-CONFIG_FEATURE_LZMA_FAST=y
-CONFIG_LZMA=y
-CONFIG_UNXZ=y
-CONFIG_XZ=y
+CONFIG_FEATURE_TAR_SELINUX=y
 CONFIG_UNZIP=y
 
 #
@@ -185,6 +185,7 @@
 CONFIG_TEST=y
 # CONFIG_FEATURE_TEST_64 is not set
 CONFIG_TOUCH=y
+# CONFIG_FEATURE_TOUCH_NODEREF is not set
 CONFIG_FEATURE_TOUCH_SUSV3=y
 CONFIG_TR=y
 CONFIG_FEATURE_TR_CLASSES=y
@@ -292,7 +293,7 @@
 CONFIG_UUDECODE=y
 CONFIG_UUENCODE=y
 CONFIG_WC=y
-# CONFIG_FEATURE_WC_LARGE is not set
+CONFIG_FEATURE_WC_LARGE=y
 CONFIG_WHOAMI=y
 CONFIG_YES=y
 
@@ -319,15 +320,15 @@
 #
 # Console Utilities
 #
-# CONFIG_CHVT is not set
-# CONFIG_FGCONSOLE is not set
+CONFIG_CHVT=y
+CONFIG_FGCONSOLE=y
 CONFIG_CLEAR=y
-# CONFIG_DEALLOCVT is not set
+CONFIG_DEALLOCVT=y
 # CONFIG_DUMPKMAP is not set
 # CONFIG_KBD_MODE is not set
 # CONFIG_LOADFONT is not set
 # CONFIG_LOADKMAP is not set
-# CONFIG_OPENVT is not set
+CONFIG_OPENVT=y
 CONFIG_RESET=y
 CONFIG_RESIZE=y
 # CONFIG_FEATURE_RESIZE_PRINT is not set
@@ -336,7 +337,7 @@
 # CONFIG_SETFONT is not set
 # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
 CONFIG_DEFAULT_SETFONT_DIR=""
-# CONFIG_SETKEYCODES is not set
+CONFIG_SETKEYCODES=y
 # CONFIG_SETLOGCONS is not set
 # CONFIG_SHOWKEY is not set
 # CONFIG_FEATURE_LOADFONT_PSF2 is not set
@@ -358,7 +359,16 @@
 #
 # Editors
 #
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
 CONFIG_PATCH=y
+CONFIG_SED=y
 CONFIG_VI=y
 CONFIG_FEATURE_VI_MAX_LEN=256
 CONFIG_FEATURE_VI_8BIT=y
@@ -373,14 +383,6 @@
 CONFIG_FEATURE_VI_SET=y
 CONFIG_FEATURE_VI_WIN_RESIZE=y
 CONFIG_FEATURE_VI_ASK_TERMINAL=y
-CONFIG_AWK=y
-CONFIG_FEATURE_AWK_LIBM=y
-CONFIG_CMP=y
-CONFIG_DIFF=y
-CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
-CONFIG_FEATURE_DIFF_DIR=y
-CONFIG_ED=y
-CONFIG_SED=y
 CONFIG_FEATURE_ALLOW_EXEC=y
 
 #
@@ -395,7 +397,7 @@
 CONFIG_FEATURE_FIND_XDEV=y
 CONFIG_FEATURE_FIND_MAXDEPTH=y
 CONFIG_FEATURE_FIND_NEWER=y
-# CONFIG_FEATURE_FIND_INUM is not set
+CONFIG_FEATURE_FIND_INUM=y
 CONFIG_FEATURE_FIND_EXEC=y
 CONFIG_FEATURE_FIND_USER=y
 CONFIG_FEATURE_FIND_GROUP=y
@@ -404,7 +406,7 @@
 CONFIG_FEATURE_FIND_PAREN=y
 CONFIG_FEATURE_FIND_SIZE=y
 CONFIG_FEATURE_FIND_PRUNE=y
-# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_DELETE=y
 CONFIG_FEATURE_FIND_PATH=y
 CONFIG_FEATURE_FIND_REGEX=y
 # CONFIG_FEATURE_FIND_CONTEXT is not set
@@ -450,7 +452,7 @@
 # CONFIG_USE_BB_PWD_GRP is not set
 # CONFIG_USE_BB_SHADOW is not set
 CONFIG_USE_BB_CRYPT=y
-# CONFIG_USE_BB_CRYPT_SHA is not set
+CONFIG_USE_BB_CRYPT_SHA=y
 # CONFIG_ADDUSER is not set
 # CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
 # CONFIG_FEATURE_CHECK_NAMES is not set
@@ -500,7 +502,7 @@
 CONFIG_LSMOD=y
 CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
 CONFIG_MODPROBE=y
-# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
 CONFIG_DEPMOD=y
 
 #
@@ -522,6 +524,7 @@
 # Linux System Utilities
 #
 CONFIG_BLOCKDEV=y
+CONFIG_FSTRIM=y
 # CONFIG_MDEV is not set
 # CONFIG_FEATURE_MDEV_CONF is not set
 # CONFIG_FEATURE_MDEV_RENAME is not set
@@ -535,6 +538,7 @@
 CONFIG_FEATURE_BLKID_TYPE=y
 CONFIG_DMESG=y
 # CONFIG_FEATURE_DMESG_PRETTY is not set
+CONFIG_FEATURE_DMESG_COLOR=y
 # CONFIG_FBSET is not set
 # CONFIG_FEATURE_FBSET_FANCY is not set
 # CONFIG_FEATURE_FBSET_READMODE is not set
@@ -547,13 +551,12 @@
 # CONFIG_FEATURE_SGI_LABEL is not set
 # CONFIG_FEATURE_SUN_LABEL is not set
 # CONFIG_FEATURE_OSF_LABEL is not set
-# CONFIG_FEATURE_GPT_LABEL is not set
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-# CONFIG_FINDFS is not set
+CONFIG_FEATURE_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
 CONFIG_FLOCK=y
 CONFIG_FREERAMDISK=y
 # CONFIG_FSCK_MINIX is not set
-CONFIG_FSTRIM=y
 CONFIG_MKFS_EXT2=y
 # CONFIG_MKFS_MINIX is not set
 # CONFIG_FEATURE_MINIX2 is not set
@@ -564,13 +567,13 @@
 CONFIG_HEXDUMP=y
 CONFIG_FEATURE_HEXDUMP_REVERSE=y
 # CONFIG_HD is not set
-# CONFIG_HWCLOCK is not set
+CONFIG_HWCLOCK=y
 # CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
 # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
 # CONFIG_IPCRM is not set
 # CONFIG_IPCS is not set
 CONFIG_LOSETUP=y
-# CONFIG_LSPCI is not set
+CONFIG_LSPCI=y
 CONFIG_LSUSB=y
 CONFIG_MKSWAP=y
 # CONFIG_FEATURE_MKSWAP_UUID is not set
@@ -585,7 +588,7 @@
 CONFIG_FEATURE_MOUNT_FLAGS=y
 CONFIG_FEATURE_MOUNT_FSTAB=y
 # CONFIG_PIVOT_ROOT is not set
-# CONFIG_RDATE is not set
+CONFIG_RDATE=y
 CONFIG_RDEV=y
 # CONFIG_READPROFILE is not set
 # CONFIG_RTCWAKE is not set
@@ -593,8 +596,8 @@
 # CONFIG_SCRIPTREPLAY is not set
 # CONFIG_SETARCH is not set
 CONFIG_SWAPONOFF=y
-# CONFIG_FEATURE_SWAPON_PRI is not set
-# CONFIG_SWITCH_ROOT is not set
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWITCH_ROOT=y
 CONFIG_UMOUNT=y
 CONFIG_FEATURE_UMOUNT_ALL=y
 
@@ -609,26 +612,27 @@
 #
 # Filesystem/Volume identification
 #
-CONFIG_FEATURE_VOLUMEID_EXT=y
 # CONFIG_FEATURE_VOLUMEID_BTRFS is not set
-# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
-CONFIG_FEATURE_VOLUMEID_FAT=y
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
 CONFIG_FEATURE_VOLUMEID_EXFAT=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_F2FS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
 # CONFIG_FEATURE_VOLUMEID_HFS is not set
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
 # CONFIG_FEATURE_VOLUMEID_JFS is not set
-# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
 # CONFIG_FEATURE_VOLUMEID_NILFS is not set
 CONFIG_FEATURE_VOLUMEID_NTFS=y
-CONFIG_FEATURE_VOLUMEID_ISO9660=y
-# CONFIG_FEATURE_VOLUMEID_UDF is not set
-# CONFIG_FEATURE_VOLUMEID_LUKS is not set
-CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
-# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
 # CONFIG_FEATURE_VOLUMEID_ROMFS is not set
 CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
 # CONFIG_FEATURE_VOLUMEID_SYSV is not set
-# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
-# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
 
 #
 # Miscellaneous Utilities
@@ -646,6 +650,7 @@
 # CONFIG_FEATURE_LESS_LINENUMS is not set
 CONFIG_NANDWRITE=y
 CONFIG_NANDDUMP=y
+# CONFIG_RFKILL is not set
 CONFIG_SETSERIAL=y
 # CONFIG_UBIATTACH is not set
 # CONFIG_UBIDETACH is not set
@@ -653,6 +658,7 @@
 # CONFIG_UBIRMVOL is not set
 # CONFIG_UBIRSVOL is not set
 # CONFIG_UBIUPDATEVOL is not set
+# CONFIG_WALL is not set
 CONFIG_ADJTIMEX=y
 CONFIG_BBCONFIG=y
 CONFIG_FEATURE_COMPRESS_BBCONFIG=y
@@ -669,9 +675,9 @@
 # CONFIG_FEATURE_CHAT_CLR_ABORT is not set
 # CONFIG_CHRT is not set
 CONFIG_CROND=y
-# CONFIG_FEATURE_CROND_D is not set
+CONFIG_FEATURE_CROND_D=y
 # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
-CONFIG_FEATURE_CROND_DIR="/system/etc/cron.d"
+CONFIG_FEATURE_CROND_DIR="/etc"
 CONFIG_CRONTAB=y
 CONFIG_DC=y
 CONFIG_FEATURE_DC_LIBM=y
@@ -709,7 +715,6 @@
 # CONFIG_MT is not set
 # CONFIG_RAIDAUTORUN is not set
 # CONFIG_READAHEAD is not set
-# CONFIG_RFKILL is not set
 # CONFIG_RUNLEVEL is not set
 CONFIG_RX=y
 CONFIG_SETSID=y
@@ -720,7 +725,6 @@
 CONFIG_TIMEOUT=y
 CONFIG_TTYSIZE=y
 # CONFIG_VOLNAME is not set
-# CONFIG_WALL is not set
 # CONFIG_WATCHDOG is not set
 
 #
@@ -740,7 +744,7 @@
 CONFIG_FEATURE_IPV6=y
 # CONFIG_FEATURE_UNIX_LOCAL is not set
 CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_VERBOSE_RESOLUTION_ERRORS=y
 CONFIG_ARP=y
 # CONFIG_ARPING is not set
 CONFIG_BRCTL=y
@@ -892,18 +896,18 @@
 CONFIG_IOSTAT=y
 CONFIG_LSOF=y
 CONFIG_MPSTAT=y
-# CONFIG_NMETER is not set
+CONFIG_NMETER=y
 CONFIG_PMAP=y
 # CONFIG_POWERTOP is not set
 CONFIG_PSTREE=y
 CONFIG_PWDX=y
-# CONFIG_SMEMCAP is not set
+CONFIG_SMEMCAP=y
 CONFIG_TOP=y
 CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
 CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
 CONFIG_FEATURE_TOP_SMP_CPU=y
 CONFIG_FEATURE_TOP_DECIMALS=y
-# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
 CONFIG_FEATURE_TOPMEM=y
 CONFIG_UPTIME=y
 # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
@@ -942,21 +946,25 @@
 # CONFIG_ENVUIDGID is not set
 # CONFIG_ENVDIR is not set
 # CONFIG_SOFTLIMIT is not set
-# CONFIG_CHCON is not set
-# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
-# CONFIG_GETENFORCE is not set
-# CONFIG_GETSEBOOL is not set
+
+#
+# SELinux Utilities
+#
+CONFIG_CHCON=y
+CONFIG_FEATURE_CHCON_LONG_OPTIONS=y
+CONFIG_GETENFORCE=y
+CONFIG_GETSEBOOL=y
 # CONFIG_LOAD_POLICY is not set
-# CONFIG_MATCHPATHCON is not set
-# CONFIG_RESTORECON is not set
-# CONFIG_RUNCON is not set
-# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
-# CONFIG_SELINUXENABLED is not set
-# CONFIG_SETENFORCE is not set
-# CONFIG_SETFILES is not set
+CONFIG_MATCHPATHCON=y
+CONFIG_RESTORECON=y
+CONFIG_RUNCON=y
+CONFIG_FEATURE_RUNCON_LONG_OPTIONS=y
+CONFIG_SELINUXENABLED=y
+CONFIG_SETENFORCE=y
+CONFIG_SETFILES=y
 # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
-# CONFIG_SETSEBOOL is not set
-# CONFIG_SESTATUS is not set
+CONFIG_SETSEBOOL=y
+CONFIG_SESTATUS=y
 
 #
 # Shells
diff --git a/busybox-full.links b/busybox-full.links
index 6a0fc4f..d85352d 100644
--- a/busybox-full.links
+++ b/busybox-full.links
@@ -17,10 +17,12 @@
 /bin/cat
 /bin/catv
 /bin/chattr
+/bin/chcon
 /bin/chgrp
 /bin/chmod
 /bin/chown
 /sbin/chroot
+/bin/chvt
 /bin/clear
 /bin/cmp
 /bin/comm
@@ -32,6 +34,7 @@
 /bin/date
 /bin/dc
 /bin/dd
+/bin/deallocvt
 /sbin/depmod
 /sbin/devmem
 /bin/df
@@ -50,8 +53,10 @@
 /bin/false
 /sbin/fbsplash
 /sbin/fdisk
+/bin/fgconsole
 /bin/fgrep
 /bin/find
+/bin/findfs
 /sbin/flash_lock
 /sbin/flash_unlock
 /sbin/flashcp
@@ -64,7 +69,9 @@
 /bin/ftpget
 /bin/ftpput
 /bin/fuser
+/bin/getenforce
 /bin/getopt
+/bin/getsebool
 /bin/grep
 /bin/groups
 /bin/gunzip
@@ -72,6 +79,7 @@
 /sbin/halt
 /bin/head
 /bin/hexdump
+/sbin/hwclock
 /bin/id
 /sbin/ifconfig
 /sbin/inetd
@@ -89,12 +97,14 @@
 /bin/ls
 /bin/lsattr
 /sbin/lsmod
+/bin/lspci
 /bin/lsusb
 /bin/lzcat
 /bin/lzma
 /bin/lzop
 /bin/lzopcat
 /sbin/man
+/sbin/matchpathcon
 /bin/md5sum
 /bin/mesg
 /bin/mkdir
@@ -118,10 +128,12 @@
 /bin/nc
 /bin/netstat
 /bin/nice
+/bin/nmeter
 /bin/nohup
 /bin/nslookup
 /sbin/ntpd
 /bin/od
+/bin/openvt
 /bin/patch
 /bin/pgrep
 /bin/pidof
@@ -136,22 +148,31 @@
 /bin/pstree
 /bin/pwd
 /bin/pwdx
+/bin/rdate
 /sbin/rdev
 /bin/readlink
 /bin/realpath
 /bin/renice
 /bin/reset
 /bin/resize
+/sbin/restorecon
 /bin/rev
 /bin/rm
 /bin/rmdir
 /sbin/rmmod
 /sbin/route
+/bin/runcon
 /bin/run-parts
 /bin/rx
 /bin/sed
+/sbin/selinuxenabled
 /bin/seq
+/sbin/sestatus
 /sbin/setconsole
+/sbin/setenforce
+/sbin/setfiles
+/bin/setkeycodes
+/sbin/setsebool
 /bin/setserial
 /bin/setsid
 /bin/sh
@@ -160,6 +181,7 @@
 /bin/sha3sum
 /bin/sha512sum
 /bin/sleep
+/bin/smemcap
 /bin/sort
 /bin/split
 /bin/stat
diff --git a/busybox-full.sources b/busybox-full.sources
index 17cdd00..bd5b59c 100644
--- a/busybox-full.sources
+++ b/busybox-full.sources
@@ -1,8 +1,19 @@
+android/libc/__set_errno.c
 
-archival/bbunzip.c archival/bzip2.c archival/cpio.c archival/gzip.c archival/libarchive/lzo1x_1.c archival/libarchive/lzo1x_1o.c archival/libarchive/lzo1x_d.c archival/lzop.c archival/tar.c archival/unzip.c
-archival/libarchive/data_align.c archival/libarchive/data_extract_all.c archival/libarchive/data_extract_to_command.c archival/libarchive/data_extract_to_stdout.c archival/libarchive/data_skip.c archival/libarchive/decompress_bunzip2.c archival/libarchive/decompress_unlzma.c archival/libarchive/decompress_unxz.c archival/libarchive/decompress_gunzip.c archival/libarchive/decompress_uncompress.c archival/libarchive/filter_accept_all.c archival/libarchive/filter_accept_list.c archival/libarchive/filter_accept_reject_list.c archival/libarchive/find_list_entry.c archival/libarchive/get_header_cpio.c archival/libarchive/get_header_tar.c archival/libarchive/get_header_tar_bz2.c archival/libarchive/get_header_tar_gz.c archival/libarchive/get_header_tar_lzma.c archival/libarchive/header_list.c archival/libarchive/header_skip.c archival/libarchive/header_verbose_list.c archival/libarchive/init_handle.c archival/libarchive/open_transformer.c archival/libarchive/seek_by_jump.c archival/libarchive/seek_by_read.c
+archival/bbunzip.c archival/bzip2.c archival/cpio.c archival/gzip.c
+archival/libarchive/lzo1x_1.c archival/libarchive/lzo1x_1o.c archival/libarchive/lzo1x_9x.c archival/libarchive/lzo1x_d.c archival/lzop.c
+archival/tar.c archival/unzip.c archival/libarchive/data_align.c
+archival/libarchive/data_extract_all.c archival/libarchive/data_extract_to_command.c archival/libarchive/data_extract_to_stdout.c
+archival/libarchive/data_skip.c archival/libarchive/decompress_bunzip2.c archival/libarchive/decompress_unlzma.c
+archival/libarchive/decompress_unxz.c archival/libarchive/decompress_gunzip.c archival/libarchive/decompress_uncompress.c
+archival/libarchive/filter_accept_all.c archival/libarchive/filter_accept_list.c archival/libarchive/filter_accept_reject_list.c
+archival/libarchive/find_list_entry.c archival/libarchive/get_header_cpio.c archival/libarchive/get_header_tar.c
+archival/libarchive/get_header_tar_bz2.c archival/libarchive/get_header_tar_gz.c archival/libarchive/get_header_tar_lzma.c
+archival/libarchive/header_list.c archival/libarchive/header_skip.c archival/libarchive/header_verbose_list.c
+archival/libarchive/init_handle.c archival/libarchive/open_transformer.c archival/libarchive/seek_by_jump.c archival/libarchive/seek_by_read.c
 
-console-tools/clear.c console-tools/reset.c console-tools/resize.c console-tools/setconsole.c
+console-tools/chvt.c console-tools/clear.c console-tools/deallocvt.c console-tools/fgconsole.c console-tools/openvt.c
+console-tools/reset.c console-tools/resize.c console-tools/setconsole.c console-tools/setkeycodes.c
 
 coreutils/basename.c coreutils/cal.c coreutils/cat.c coreutils/catv.c coreutils/chgrp.c coreutils/chmod.c coreutils/chown.c coreutils/chroot.c coreutils/cp.c coreutils/cut.c coreutils/date.c coreutils/dd.c coreutils/df.c coreutils/dirname.c coreutils/dos2unix.c coreutils/du.c coreutils/echo.c coreutils/env.c coreutils/expr.c coreutils/false.c coreutils/fold.c coreutils/head.c coreutils/id.c coreutils/install.c coreutils/ln.c coreutils/ls.c coreutils/md5_sha1_sum.c coreutils/mkdir.c coreutils/mkfifo.c coreutils/mknod.c coreutils/mv.c coreutils/nice.c coreutils/nohup.c coreutils/od.c coreutils/printenv.c coreutils/printf.c coreutils/pwd.c coreutils/readlink.c coreutils/realpath.c coreutils/rm.c coreutils/rmdir.c coreutils/seq.c coreutils/sleep.c coreutils/sort.c coreutils/split.c coreutils/stat.c coreutils/stty.c coreutils/sync.c coreutils/tac.c coreutils/tail.c coreutils/tee.c coreutils/test.c coreutils/test_ptr_hack.c coreutils/touch.c coreutils/tr.c coreutils/true.c coreutils/uname.c coreutils/uniq.c coreutils/usleep.c coreutils/uudecode.c coreutils/uuencode.c coreutils/wc.c coreutils/whoami.c coreutils/yes.c
 coreutils/libcoreutils/cp_mv_stat.c coreutils/libcoreutils/getopt_mk_fifo_nod.c
@@ -17,7 +28,26 @@
 
 init/halt.c init/mesg.c
 
-libbb/appletlib.c libbb/ask_confirmation.c libbb/bb_askpass.c libbb/bb_do_delay.c libbb/bb_pwd.c libbb/bb_qsort.c libbb/bb_strtonum.c libbb/change_identity.c libbb/chomp.c libbb/compare_string_array.c libbb/concat_path_file.c libbb/concat_subpath_file.c libbb/copy_file.c libbb/copyfd.c libbb/crc32.c libbb/create_icmp6_socket.c libbb/create_icmp_socket.c libbb/percent_decode.c libbb/default_error_retval.c libbb/device_open.c libbb/dump.c libbb/execable.c libbb/fclose_nonstdin.c libbb/fflush_stdout_and_exit.c libbb/fgets_str.c libbb/find_mount_point.c libbb/find_pid_by_name.c libbb/find_root_device.c libbb/full_write.c libbb/get_console.c libbb/get_last_path_component.c libbb/get_line_from_file.c libbb/get_volsize.c libbb/getopt32.c libbb/getpty.c libbb/herror_msg.c libbb/human_readable.c libbb/inet_cksum.c libbb/inet_common.c libbb/info_msg.c libbb/inode_hash.c libbb/isdirectory.c libbb/kernel_version.c libbb/last_char_is.c libbb/lineedit.c libbb/lineedit_ptr_hack.c libbb/llist.c libbb/login.c libbb/loop.c libbb/make_directory.c libbb/makedev.c libbb/match_fstype.c libbb/hash_md5_sha.c libbb/bb_bswap_64.c libbb/messages.c libbb/mode_string.c libbb/mtab.c libbb/parse_config.c libbb/parse_mode.c libbb/perror_msg.c libbb/perror_nomsg.c libbb/perror_nomsg_and_die.c libbb/pidfile.c libbb/platform.c libbb/print_flags.c libbb/printable.c libbb/printable_string.c libbb/process_escape_sequence.c libbb/procps.c libbb/progress.c libbb/ptr_to_globals.c libbb/read.c libbb/read_key.c libbb/read_printf.c libbb/recursive_action.c libbb/remove_file.c libbb/run_shell.c libbb/safe_gethostname.c libbb/safe_poll.c libbb/safe_strncpy.c libbb/safe_write.c libbb/setup_environment.c libbb/signals.c libbb/simplify_path.c libbb/single_argv.c libbb/skip_whitespace.c libbb/speed_table.c libbb/str_tolower.c libbb/strrstr.c libbb/time.c libbb/trim.c libbb/u_signal_names.c libbb/udp_io.c libbb/unicode.c libbb/uuencode.c libbb/vdprintf.c libbb/verror_msg.c libbb/vfork_daemon_rexec.c libbb/warn_ignoring_args.c libbb/wfopen.c libbb/wfopen_input.c libbb/write.c libbb/xatonum.c libbb/xconnect.c libbb/xfunc_die.c libbb/xfuncs.c libbb/xfuncs_printf.c libbb/xgetcwd.c libbb/xgethostbyname.c libbb/xreadlink.c libbb/xrealloc_vector.c libbb/xregcomp.c libbb/get_cpu_count.c libbb/get_shell_name.c
+libbb/missing_syscalls.c
+libbb/appletlib.c libbb/ask_confirmation.c libbb/bb_askpass.c libbb/bb_do_delay.c libbb/bb_pwd.c libbb/bb_qsort.c libbb/bb_strtonum.c
+libbb/change_identity.c libbb/chomp.c libbb/compare_string_array.c libbb/concat_path_file.c libbb/concat_subpath_file.c libbb/copy_file.c libbb/copyfd.c
+libbb/crc32.c libbb/percent_decode.c libbb/default_error_retval.c libbb/device_open.c libbb/dump.c libbb/execable.c libbb/fclose_nonstdin.c
+libbb/fflush_stdout_and_exit.c libbb/fgets_str.c libbb/find_mount_point.c libbb/find_pid_by_name.c libbb/find_root_device.c libbb/full_write.c
+libbb/get_console.c libbb/get_cpu_count.c libbb/get_last_path_component.c libbb/get_line_from_file.c libbb/get_volsize.c
+libbb/getopt32.c libbb/getpty.c libbb/get_shell_name.c
+libbb/herror_msg.c libbb/human_readable.c libbb/inet_cksum.c libbb/inet_common.c libbb/info_msg.c libbb/inode_hash.c libbb/isdirectory.c
+libbb/kernel_version.c libbb/last_char_is.c libbb/lineedit.c libbb/lineedit_ptr_hack.c libbb/llist.c libbb/login.c libbb/loop.c
+libbb/make_directory.c libbb/makedev.c libbb/match_fstype.c libbb/hash_md5_sha.c libbb/bb_bswap_64.c libbb/messages.c libbb/mode_string.c libbb/mtab.c
+libbb/parse_config.c libbb/parse_mode.c libbb/perror_msg.c libbb/perror_nomsg.c libbb/perror_nomsg_and_die.c libbb/pidfile.c libbb/platform.c
+libbb/print_flags.c libbb/printable.c libbb/printable_string.c libbb/process_escape_sequence.c libbb/procps.c libbb/progress.c
+libbb/ptr_to_globals.c libbb/read.c libbb/read_key.c libbb/read_printf.c libbb/recursive_action.c libbb/remove_file.c libbb/rtc.c libbb/run_shell.c
+libbb/safe_gethostname.c libbb/safe_poll.c libbb/safe_strncpy.c libbb/safe_write.c libbb/setup_environment.c libbb/signals.c
+libbb/simplify_path.c libbb/single_argv.c libbb/skip_whitespace.c libbb/speed_table.c libbb/str_tolower.c libbb/strrstr.c
+libbb/time.c libbb/trim.c libbb/u_signal_names.c libbb/udp_io.c libbb/unicode.c libbb/uuencode.c
+libbb/vdprintf.c libbb/verror_msg.c libbb/vfork_daemon_rexec.c libbb/warn_ignoring_args.c libbb/wfopen.c libbb/wfopen_input.c
+libbb/write.c libbb/xatonum.c libbb/xconnect.c libbb/xfunc_die.c libbb/xfuncs.c libbb/xfuncs_printf.c
+libbb/xgetcwd.c libbb/xgethostbyname.c libbb/xreadlink.c libbb/xrealloc_vector.c libbb/xregcomp.c
+libbb/endofname.c libbb/in_ether.c libbb/nuke_str.c
 
 libpwdgrp/uidgid_get.c
 
@@ -35,16 +65,23 @@
 
 procps/free.c procps/fuser.c procps/kill.c procps/pgrep.c procps/pidof.c procps/ps.c procps/renice.c procps/sysctl.c procps/top.c procps/uptime.c procps/watch.c
 procps/pmap.c procps/iostat.c procps/mpstat.c
-procps/lsof.c procps/pstree.c procps/pwdx.c
+procps/lsof.c procps/nmeter.c procps/pstree.c procps/pwdx.c procps/smemcap.c
 
 shell/ash.c shell/ash_ptr_hack.c shell/math.c shell/random.c shell/shell_common.c
 
-util-linux/blkid.c util-linux/blockdev.c util-linux/dmesg.c util-linux/fdisk.c util-linux/flock.c util-linux/freeramdisk.c util-linux/fstrim.c util-linux/getopt.c
-util-linux/hexdump.c util-linux/losetup.c util-linux/lspci.c util-linux/lsusb.c
+libbb/selinux_common.c android/selinux/matchpathcon.c android/selinux/stubs.c
+selinux/chcon.c selinux/selinuxenabled.c
+selinux/getenforce.c selinux/sestatus.c selinux/setsebool.c
+selinux/getsebool.c selinux/runcon.c selinux/setenforce.c selinux/setfiles.c selinux/matchpathcon.c
+
+util-linux/blkid.c util-linux/blockdev.c util-linux/dmesg.c util-linux/fdisk.c util-linux/findfs.c util-linux/flock.c
+util-linux/freeramdisk.c util-linux/fstrim.c util-linux/getopt.c
+util-linux/hexdump.c util-linux/hwclock.c util-linux/losetup.c util-linux/lspci.c util-linux/lsusb.c
 util-linux/mkfs_ext2.c util-linux/mkfs_vfat.c util-linux/mkswap.c
-util-linux/more.c util-linux/mount.c util-linux/rdev.c util-linux/rev.c util-linux/swaponoff.c util-linux/umount.c
+util-linux/more.c util-linux/mount.c util-linux/rdate.c util-linux/rdev.c util-linux/rev.c
+util-linux/swaponoff.c util-linux/switch_root.c util-linux/umount.c
 
 util-linux/volume_id/get_devname.c util-linux/volume_id/volume_id.c util-linux/volume_id/util.c util-linux/volume_id/ext.c
 util-linux/volume_id/fat.c util-linux/volume_id/iso9660.c util-linux/volume_id/ntfs.c util-linux/volume_id/linux_swap.c
-util-linux/volume_id/exfat.c util-linux/volume_id/squashfs.c
+util-linux/volume_id/exfat.c util-linux/volume_id/squashfs.c util-linux/volume_id/f2fs.c
 
diff --git a/.config-minimal b/busybox-minimal.config
similarity index 97%
rename from .config-minimal
rename to busybox-minimal.config
index 3a189cf..ad8574f 100644
--- a/.config-minimal
+++ b/busybox-minimal.config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Busybox version: 1.21.1-jb
-# Mon Jul  1 01:03:08 2013
+# Busybox version: 1.22.1
+# Sun Jun 22 23:11:05 2014
 #
 CONFIG_HAVE_DOT_CONFIG=y
 
@@ -46,7 +46,7 @@
 CONFIG_FEATURE_SUID=y
 # CONFIG_FEATURE_SUID_CONFIG is not set
 # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
-# CONFIG_SELINUX is not set
+CONFIG_SELINUX=y
 # CONFIG_FEATURE_PREFER_APPLETS is not set
 CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
 # CONFIG_FEATURE_SYSLOG is not set
@@ -63,7 +63,7 @@
 # CONFIG_FEATURE_SHARED_BUSYBOX is not set
 # CONFIG_LFS is not set
 CONFIG_SYSROOT=""
-CONFIG_EXTRA_CFLAGS="-Os"
+CONFIG_EXTRA_CFLAGS="-Os -fno-short-enums -fgcse-after-reload -frerun-cse-after-loop -frename-registers"
 CONFIG_EXTRA_LDFLAGS=""
 CONFIG_EXTRA_LDLIBS=""
 
@@ -134,7 +134,14 @@
 # CONFIG_AR is not set
 # CONFIG_FEATURE_AR_LONG_FILENAMES is not set
 # CONFIG_FEATURE_AR_CREATE is not set
+# CONFIG_UNCOMPRESS is not set
+CONFIG_GUNZIP=y
 CONFIG_BUNZIP2=y
+CONFIG_UNLZMA=y
+# CONFIG_FEATURE_LZMA_FAST is not set
+# CONFIG_LZMA is not set
+CONFIG_UNXZ=y
+# CONFIG_XZ is not set
 CONFIG_BZIP2=y
 CONFIG_CPIO=y
 CONFIG_FEATURE_CPIO_O=y
@@ -142,14 +149,13 @@
 # CONFIG_DPKG is not set
 # CONFIG_DPKG_DEB is not set
 # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
-CONFIG_GUNZIP=y
 CONFIG_GZIP=y
 CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
 CONFIG_GZIP_FAST=2
 CONFIG_LZOP=y
 # CONFIG_LZOP_COMPR_HIGH is not set
-# CONFIG_RPM2CPIO is not set
 # CONFIG_RPM is not set
+# CONFIG_RPM2CPIO is not set
 CONFIG_TAR=y
 CONFIG_FEATURE_TAR_CREATE=y
 # CONFIG_FEATURE_TAR_AUTODETECT is not set
@@ -161,13 +167,7 @@
 # CONFIG_FEATURE_TAR_TO_COMMAND is not set
 # CONFIG_FEATURE_TAR_UNAME_GNAME is not set
 CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
-# CONFIG_FEATURE_TAR_SELINUX is not set
-# CONFIG_UNCOMPRESS is not set
-CONFIG_UNLZMA=y
-# CONFIG_FEATURE_LZMA_FAST is not set
-# CONFIG_LZMA is not set
-CONFIG_UNXZ=y
-# CONFIG_XZ is not set
+CONFIG_FEATURE_TAR_SELINUX=y
 CONFIG_UNZIP=y
 
 #
@@ -185,6 +185,7 @@
 CONFIG_TEST=y
 # CONFIG_FEATURE_TEST_64 is not set
 CONFIG_TOUCH=y
+# CONFIG_FEATURE_TOUCH_NODEREF is not set
 # CONFIG_FEATURE_TOUCH_SUSV3 is not set
 CONFIG_TR=y
 CONFIG_FEATURE_TR_CLASSES=y
@@ -358,7 +359,16 @@
 #
 # Editors
 #
+CONFIG_AWK=y
+# CONFIG_FEATURE_AWK_LIBM is not set
+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_DIR=y
+# CONFIG_ED is not set
 CONFIG_PATCH=y
+CONFIG_SED=y
 # CONFIG_VI is not set
 CONFIG_FEATURE_VI_MAX_LEN=0
 # CONFIG_FEATURE_VI_8BIT is not set
@@ -373,14 +383,6 @@
 # CONFIG_FEATURE_VI_SET is not set
 # CONFIG_FEATURE_VI_WIN_RESIZE is not set
 # CONFIG_FEATURE_VI_ASK_TERMINAL is not set
-CONFIG_AWK=y
-# CONFIG_FEATURE_AWK_LIBM is not set
-CONFIG_CMP=y
-CONFIG_DIFF=y
-CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
-CONFIG_FEATURE_DIFF_DIR=y
-# CONFIG_ED is not set
-CONFIG_SED=y
 CONFIG_FEATURE_ALLOW_EXEC=y
 
 #
@@ -522,6 +524,7 @@
 # Linux System Utilities
 #
 CONFIG_BLOCKDEV=y
+CONFIG_FSTRIM=y
 # CONFIG_MDEV is not set
 # CONFIG_FEATURE_MDEV_CONF is not set
 # CONFIG_FEATURE_MDEV_RENAME is not set
@@ -535,6 +538,7 @@
 CONFIG_FEATURE_BLKID_TYPE=y
 CONFIG_DMESG=y
 # CONFIG_FEATURE_DMESG_PRETTY is not set
+CONFIG_FEATURE_DMESG_COLOR=y
 # CONFIG_FBSET is not set
 # CONFIG_FEATURE_FBSET_FANCY is not set
 # CONFIG_FEATURE_FBSET_READMODE is not set
@@ -553,7 +557,6 @@
 # CONFIG_FLOCK is not set
 CONFIG_FREERAMDISK=y
 # CONFIG_FSCK_MINIX is not set
-CONFIG_FSTRIM=y
 CONFIG_MKFS_EXT2=y
 # CONFIG_MKFS_MINIX is not set
 # CONFIG_FEATURE_MINIX2 is not set
@@ -609,26 +612,27 @@
 #
 # Filesystem/Volume identification
 #
-CONFIG_FEATURE_VOLUMEID_EXT=y
 # CONFIG_FEATURE_VOLUMEID_BTRFS is not set
-# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
-CONFIG_FEATURE_VOLUMEID_FAT=y
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
 CONFIG_FEATURE_VOLUMEID_EXFAT=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_F2FS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
 # CONFIG_FEATURE_VOLUMEID_HFS is not set
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
 # CONFIG_FEATURE_VOLUMEID_JFS is not set
-# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
 # CONFIG_FEATURE_VOLUMEID_NILFS is not set
 CONFIG_FEATURE_VOLUMEID_NTFS=y
-CONFIG_FEATURE_VOLUMEID_ISO9660=y
-# CONFIG_FEATURE_VOLUMEID_UDF is not set
-# CONFIG_FEATURE_VOLUMEID_LUKS is not set
-CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
-# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
 # CONFIG_FEATURE_VOLUMEID_ROMFS is not set
 CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
 # CONFIG_FEATURE_VOLUMEID_SYSV is not set
-# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
-# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
 
 #
 # Miscellaneous Utilities
@@ -646,6 +650,7 @@
 # CONFIG_FEATURE_LESS_LINENUMS is not set
 CONFIG_NANDWRITE=y
 CONFIG_NANDDUMP=y
+# CONFIG_RFKILL is not set
 CONFIG_SETSERIAL=y
 # CONFIG_UBIATTACH is not set
 # CONFIG_UBIDETACH is not set
@@ -653,6 +658,7 @@
 # CONFIG_UBIRMVOL is not set
 # CONFIG_UBIRSVOL is not set
 # CONFIG_UBIUPDATEVOL is not set
+# CONFIG_WALL is not set
 # CONFIG_ADJTIMEX is not set
 CONFIG_BBCONFIG=y
 CONFIG_FEATURE_COMPRESS_BBCONFIG=y
@@ -709,7 +715,6 @@
 # CONFIG_MT is not set
 # CONFIG_RAIDAUTORUN is not set
 # CONFIG_READAHEAD is not set
-# CONFIG_RFKILL is not set
 # CONFIG_RUNLEVEL is not set
 # CONFIG_RX is not set
 CONFIG_SETSID=y
@@ -720,7 +725,6 @@
 # CONFIG_TIMEOUT is not set
 CONFIG_TTYSIZE=y
 # CONFIG_VOLNAME is not set
-# CONFIG_WALL is not set
 # CONFIG_WATCHDOG is not set
 
 #
@@ -938,21 +942,25 @@
 # CONFIG_ENVUIDGID is not set
 # CONFIG_ENVDIR is not set
 # CONFIG_SOFTLIMIT is not set
-# CONFIG_CHCON is not set
+
+#
+# SELinux Utilities
+#
+CONFIG_CHCON=y
 # CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
-# CONFIG_GETENFORCE is not set
-# CONFIG_GETSEBOOL is not set
+CONFIG_GETENFORCE=y
+CONFIG_GETSEBOOL=y
 # CONFIG_LOAD_POLICY is not set
-# CONFIG_MATCHPATHCON is not set
-# CONFIG_RESTORECON is not set
+CONFIG_MATCHPATHCON=y
+CONFIG_RESTORECON=y
 # CONFIG_RUNCON is not set
 # CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
-# CONFIG_SELINUXENABLED is not set
-# CONFIG_SETENFORCE is not set
-# CONFIG_SETFILES is not set
+CONFIG_SELINUXENABLED=y
+CONFIG_SETENFORCE=y
+CONFIG_SETFILES=y
 # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
-# CONFIG_SETSEBOOL is not set
-# CONFIG_SESTATUS is not set
+CONFIG_SETSEBOOL=y
+CONFIG_SESTATUS=y
 
 #
 # Shells
diff --git a/busybox-minimal.links b/busybox-minimal.links
index c79aa52..8cedb2f 100644
--- a/busybox-minimal.links
+++ b/busybox-minimal.links
@@ -12,6 +12,7 @@
 /bin/cat
 /bin/catv
 /bin/chattr
+/bin/chcon
 /bin/chgrp
 /bin/chmod
 /bin/chown
@@ -49,7 +50,9 @@
 /sbin/freeramdisk
 /sbin/fstrim
 /bin/fuser
+/bin/getenforce
 /bin/getopt
+/bin/getsebool
 /bin/grep
 /bin/groups
 /bin/gunzip
@@ -75,6 +78,7 @@
 /bin/lzop
 /bin/lzopcat
 /sbin/makedevs
+/sbin/matchpathcon
 /bin/md5sum
 /bin/mkdir
 /sbin/mke2fs
@@ -107,14 +111,20 @@
 /bin/renice
 /bin/reset
 /bin/resize
+/sbin/restorecon
 /bin/rev
 /bin/rm
 /bin/rmdir
 /sbin/rmmod
 /bin/run-parts
 /bin/sed
+/sbin/selinuxenabled
 /bin/seq
+/sbin/sestatus
 /sbin/setconsole
+/sbin/setenforce
+/sbin/setfiles
+/bin/setsebool
 /bin/setserial
 /bin/setsid
 /bin/sh
diff --git a/busybox-minimal.sources b/busybox-minimal.sources
index 4e31001..84950cf 100644
--- a/busybox-minimal.sources
+++ b/busybox-minimal.sources
@@ -1,3 +1,4 @@
+android/libc/__set_errno.c
 
 archival/bbunzip.c archival/bzip2.c archival/cpio.c archival/gzip.c archival/libarchive/lzo1x_1.c archival/libarchive/lzo1x_1o.c archival/libarchive/lzo1x_d.c archival/lzop.c archival/tar.c archival/unzip.c
 archival/libarchive/data_align.c archival/libarchive/data_extract_all.c archival/libarchive/data_extract_to_stdout.c archival/libarchive/data_skip.c archival/libarchive/decompress_bunzip2.c archival/libarchive/decompress_gunzip.c archival/libarchive/filter_accept_all.c archival/libarchive/filter_accept_list.c archival/libarchive/filter_accept_reject_list.c archival/libarchive/find_list_entry.c archival/libarchive/get_header_cpio.c archival/libarchive/get_header_tar.c archival/libarchive/get_header_tar_bz2.c archival/libarchive/get_header_tar_gz.c archival/libarchive/header_list.c archival/libarchive/header_skip.c archival/libarchive/header_verbose_list.c archival/libarchive/init_handle.c archival/libarchive/open_transformer.c archival/libarchive/seek_by_jump.c archival/libarchive/seek_by_read.c archival/libarchive/decompress_unlzma.c archival/libarchive/decompress_unxz.c
@@ -13,7 +14,25 @@
 editors/awk.c editors/cmp.c editors/diff.c editors/patch.c editors/sed.c
 findutils/find.c findutils/grep.c findutils/xargs.c
 
-libbb/appletlib.c libbb/ask_confirmation.c libbb/bb_askpass.c libbb/bb_do_delay.c libbb/bb_pwd.c libbb/bb_qsort.c libbb/bb_strtonum.c libbb/change_identity.c libbb/chomp.c libbb/compare_string_array.c libbb/concat_path_file.c libbb/concat_subpath_file.c libbb/copy_file.c libbb/copyfd.c libbb/crc32.c libbb/create_icmp6_socket.c libbb/create_icmp_socket.c libbb/default_error_retval.c libbb/device_open.c libbb/dump.c libbb/execable.c libbb/fclose_nonstdin.c libbb/fflush_stdout_and_exit.c libbb/fgets_str.c libbb/find_mount_point.c libbb/find_pid_by_name.c libbb/find_root_device.c libbb/full_write.c libbb/get_console.c libbb/get_last_path_component.c libbb/get_line_from_file.c libbb/get_shell_name.c libbb/get_volsize.c libbb/getopt32.c libbb/getpty.c libbb/herror_msg.c libbb/human_readable.c libbb/inet_common.c libbb/info_msg.c libbb/inode_hash.c libbb/isdirectory.c libbb/kernel_version.c libbb/last_char_is.c libbb/lineedit.c libbb/lineedit_ptr_hack.c libbb/llist.c libbb/login.c libbb/loop.c libbb/make_directory.c libbb/makedev.c libbb/match_fstype.c libbb/hash_md5_sha.c libbb/bb_bswap_64.c libbb/messages.c libbb/mode_string.c libbb/mtab.c libbb/parse_config.c libbb/parse_mode.c libbb/perror_msg.c libbb/perror_nomsg.c libbb/perror_nomsg_and_die.c libbb/pidfile.c libbb/platform.c libbb/print_flags.c libbb/printable.c libbb/printable_string.c libbb/process_escape_sequence.c libbb/procps.c libbb/progress.c libbb/ptr_to_globals.c libbb/read.c libbb/read_key.c libbb/read_printf.c libbb/recursive_action.c libbb/remove_file.c libbb/run_shell.c libbb/safe_gethostname.c libbb/safe_poll.c libbb/safe_strncpy.c libbb/safe_write.c libbb/setup_environment.c libbb/signals.c libbb/simplify_path.c libbb/single_argv.c libbb/skip_whitespace.c libbb/speed_table.c libbb/str_tolower.c libbb/strrstr.c libbb/time.c libbb/trim.c libbb/u_signal_names.c libbb/udp_io.c libbb/uuencode.c libbb/vdprintf.c libbb/verror_msg.c libbb/vfork_daemon_rexec.c libbb/warn_ignoring_args.c libbb/wfopen.c libbb/wfopen_input.c libbb/write.c libbb/xatonum.c libbb/xconnect.c libbb/xfunc_die.c libbb/xfuncs.c libbb/xfuncs_printf.c libbb/xgetcwd.c libbb/xgethostbyname.c libbb/xreadlink.c libbb/xrealloc_vector.c libbb/xregcomp.c libbb/unicode.c
+libbb/missing_syscalls.c
+libbb/appletlib.c libbb/ask_confirmation.c libbb/bb_askpass.c libbb/bb_do_delay.c libbb/bb_pwd.c libbb/bb_qsort.c libbb/bb_strtonum.c
+libbb/change_identity.c libbb/chomp.c libbb/compare_string_array.c libbb/concat_path_file.c libbb/concat_subpath_file.c libbb/copy_file.c libbb/copyfd.c
+libbb/crc32.c libbb/default_error_retval.c libbb/device_open.c libbb/dump.c libbb/execable.c libbb/fclose_nonstdin.c
+libbb/fflush_stdout_and_exit.c libbb/fgets_str.c libbb/find_mount_point.c libbb/find_pid_by_name.c libbb/find_root_device.c libbb/full_write.c
+libbb/get_console.c libbb/get_last_path_component.c libbb/get_line_from_file.c libbb/get_shell_name.c libbb/endofname.c libbb/in_ether.c libbb/get_volsize.c
+libbb/getopt32.c libbb/getpty.c libbb/herror_msg.c libbb/human_readable.c libbb/inet_common.c libbb/info_msg.c libbb/inode_hash.c libbb/isdirectory.c
+libbb/kernel_version.c libbb/last_char_is.c libbb/lineedit.c libbb/lineedit_ptr_hack.c libbb/llist.c libbb/login.c libbb/loop.c
+libbb/make_directory.c libbb/makedev.c libbb/match_fstype.c libbb/hash_md5_sha.c libbb/bb_bswap_64.c libbb/messages.c libbb/mode_string.c libbb/mtab.c
+libbb/parse_config.c libbb/parse_mode.c libbb/perror_msg.c libbb/perror_nomsg.c libbb/perror_nomsg_and_die.c libbb/pidfile.c libbb/platform.c
+libbb/print_flags.c libbb/printable.c libbb/printable_string.c libbb/process_escape_sequence.c libbb/procps.c libbb/progress.c
+libbb/ptr_to_globals.c libbb/read.c libbb/read_key.c libbb/read_printf.c libbb/recursive_action.c libbb/remove_file.c libbb/run_shell.c
+libbb/safe_gethostname.c libbb/safe_poll.c libbb/safe_strncpy.c libbb/safe_write.c libbb/setup_environment.c libbb/signals.c
+libbb/simplify_path.c libbb/single_argv.c libbb/skip_whitespace.c libbb/speed_table.c libbb/str_tolower.c libbb/strrstr.c
+libbb/time.c libbb/trim.c libbb/u_signal_names.c libbb/udp_io.c libbb/uuencode.c
+libbb/vdprintf.c libbb/verror_msg.c libbb/vfork_daemon_rexec.c libbb/warn_ignoring_args.c libbb/wfopen.c
+libbb/wfopen_input.c libbb/write.c libbb/xatonum.c libbb/xconnect.c libbb/xfunc_die.c libbb/xfuncs.c libbb/xfuncs_printf.c
+libbb/xgetcwd.c libbb/xgethostbyname.c libbb/xreadlink.c libbb/xrealloc_vector.c libbb/xregcomp.c libbb/unicode.c
+
 libpwdgrp/uidgid_get.c
 
 miscutils/bbconfig.c miscutils/dc.c miscutils/devmem.c miscutils/less.c miscutils/makedevs.c miscutils/mountpoint.c miscutils/nandwrite.c
@@ -25,11 +44,16 @@
 
 shell/ash.c shell/ash_ptr_hack.c shell/math.c shell/random.c shell/shell_common.c
 
+android/selinux/matchpathcon.c android/selinux/stubs.c
+libbb/selinux_common.c selinux/chcon.c selinux/selinuxenabled.c
+selinux/getenforce.c selinux/sestatus.c selinux/setsebool.c
+selinux/getsebool.c selinux/setenforce.c selinux/setfiles.c selinux/matchpathcon.c
+
 util-linux/blkid.c util-linux/blockdev.c util-linux/dmesg.c util-linux/fdisk.c util-linux/freeramdisk.c util-linux/fstrim.c util-linux/getopt.c
 util-linux/hexdump.c util-linux/losetup.c util-linux/lspci.c util-linux/lsusb.c util-linux/mkfs_ext2.c util-linux/mkfs_vfat.c util-linux/mkswap.c
 util-linux/more.c util-linux/mount.c util-linux/rdev.c util-linux/rev.c util-linux/swaponoff.c util-linux/switch_root.c util-linux/umount.c
 
 util-linux/volume_id/get_devname.c util-linux/volume_id/volume_id.c util-linux/volume_id/util.c util-linux/volume_id/ext.c
 util-linux/volume_id/fat.c util-linux/volume_id/iso9660.c util-linux/volume_id/ntfs.c util-linux/volume_id/linux_swap.c
-util-linux/volume_id/exfat.c util-linux/volume_id/squashfs.c
+util-linux/volume_id/exfat.c util-linux/volume_id/squashfs.c util-linux/volume_id/f2fs.c
 
diff --git a/console-tools/dumpkmap.c b/console-tools/dumpkmap.c
index 6b923d2..bf8d690 100644
--- a/console-tools/dumpkmap.c
+++ b/console-tools/dumpkmap.c
@@ -36,47 +36,56 @@
 {
 	struct kbentry ke;
 	int i, j, fd;
-	RESERVE_CONFIG_BUFFER(flags, MAX_NR_KEYMAPS);
+#define flags bb_common_bufsiz1
 
 	/* When user accidentally runs "dumpkmap FILE"
 	 * instead of "dumpkmap >FILE", we'd dump binary stuff to tty.
-	 * Let's prevent it: */
+	 * Let's prevent it:
+	 */
 	if (argv[1])
 		bb_show_usage();
 /*	bb_warn_ignoring_args(argv[1]);*/
 
 	fd = get_console_fd_or_die();
 
+#if 0
 	write(STDOUT_FILENO, "bkeymap", 7);
-
 	/* Here we want to set everything to 0 except for indexes:
-	 * [0-2] [4-6] [8-10] [12] */
-	memset(flags, 0x00, MAX_NR_KEYMAPS);
+	 * [0-2] [4-6] [8-10] [12]
+	 */
+	/*memset(flags, 0x00, MAX_NR_KEYMAPS); - already is */
 	memset(flags, 0x01, 13);
 	flags[3] = flags[7] = flags[11] = 0;
-
 	/* dump flags */
 	write(STDOUT_FILENO, flags, MAX_NR_KEYMAPS);
+#define flags7 flags
+#else
+	/* Same effect */
+	/*                     0 1 2 3 4 5 6 7 8 9 a b c=12 */
+	memcpy(flags, "bkeymap\1\1\1\0\1\1\1\0\1\1\1\0\1",
+	/* Can use sizeof, or sizeof-1. sizeof is even, using that */
+	/****/ sizeof("bkeymap\1\1\1\0\1\1\1\0\1\1\1\0\1")
+	);
+	write(STDOUT_FILENO, flags, 7 + MAX_NR_KEYMAPS);
+#define flags7 (flags + 7)
+#endif
 
-	for (i = 0; i < MAX_NR_KEYMAPS; i++) {
-		if (flags[i] == 1) {
+	for (i = 0; i < 13; i++) {
+		if (flags7[i]) {
 			for (j = 0; j < NR_KEYS; j++) {
 				ke.kb_index = j;
 				ke.kb_table = i;
 				if (!ioctl_or_perror(fd, KDGKBENT, &ke,
-						"ioctl failed with %s, %s, %p",
-						(char *)&ke.kb_index,
-						(char *)&ke.kb_table,
-						&ke.kb_value)
+						"ioctl(KDGKBENT{%d,%d}) failed",
+						j, i)
 				) {
-					write(STDOUT_FILENO, (void*)&ke.kb_value, 2);
+					write(STDOUT_FILENO, &ke.kb_value, 2);
 				}
 			}
 		}
 	}
 	if (ENABLE_FEATURE_CLEAN_UP) {
 		close(fd);
-		RELEASE_CONFIG_BUFFER(flags);
 	}
 	return EXIT_SUCCESS;
 }
diff --git a/console-tools/loadkmap.c b/console-tools/loadkmap.c
index bcffe16..66ec3b0 100644
--- a/console-tools/loadkmap.c
+++ b/console-tools/loadkmap.c
@@ -48,6 +48,7 @@
 	if (argv[1])
 		bb_show_usage();
 /* bb_warn_ignoring_args(argv[1]); */
+
 	fd = get_console_fd_or_die();
 /* or maybe:
 	opt = getopt32(argv, "C:", &tty_name);
@@ -61,14 +62,24 @@
 	xread(STDIN_FILENO, flags, MAX_NR_KEYMAPS);
 
 	for (i = 0; i < MAX_NR_KEYMAPS; i++) {
-		if (flags[i] == 1) {
-			xread(STDIN_FILENO, ibuff, NR_KEYS * sizeof(uint16_t));
-			for (j = 0; j < NR_KEYS; j++) {
-				ke.kb_index = j;
-				ke.kb_table = i;
-				ke.kb_value = ibuff[j];
-				ioctl(fd, KDSKBENT, &ke);
-			}
+		if (flags[i] != 1)
+			continue;
+		xread(STDIN_FILENO, ibuff, NR_KEYS * sizeof(uint16_t));
+		for (j = 0; j < NR_KEYS; j++) {
+			ke.kb_index = j;
+			ke.kb_table = i;
+			ke.kb_value = ibuff[j];
+			/*
+			 * Note: table[idx:0] can contain special value
+			 * K_ALLOCATED (marks allocated tables in kernel).
+			 * dumpkmap saves the value as-is; but attempts
+			 * to load it here fail, since it isn't a valid
+			 * key value: it is K(KT_SPEC,126) == 2<<8 + 126,
+			 * whereas last valid KT_SPEC is
+			 * K_BARENUMLOCK == K(KT_SPEC,19).
+			 * So far we just ignore these errors:
+			 */
+			ioctl(fd, KDSKBENT, &ke);
 		}
 	}
 
diff --git a/coreutils/Kbuild.src b/coreutils/Kbuild.src
index f796b57..9970c8f 100644
--- a/coreutils/Kbuild.src
+++ b/coreutils/Kbuild.src
@@ -35,7 +35,6 @@
 lib-$(CONFIG_FALSE)     += false.o
 lib-$(CONFIG_FOLD)      += fold.o
 lib-$(CONFIG_FSYNC)     += fsync.o
-lib-$(CONFIG_HEAD)      += head.o
 lib-$(CONFIG_INSTALL)   += install.o
 #lib-$(CONFIG_LENGTH)    += length.o
 lib-$(CONFIG_LN)        += ln.o
@@ -72,7 +71,6 @@
 lib-$(CONFIG_SUM)       += sum.o
 lib-$(CONFIG_SYNC)      += sync.o
 lib-$(CONFIG_TAC)       += tac.o
-lib-$(CONFIG_TAIL)      += tail.o
 lib-$(CONFIG_TEE)       += tee.o
 lib-$(CONFIG_TRUE)      += true.o
 lib-$(CONFIG_TTY)       += tty.o
diff --git a/coreutils/cal.c b/coreutils/cal.c
index c631327..5d97d61 100644
--- a/coreutils/cal.c
+++ b/coreutils/cal.c
@@ -165,7 +165,7 @@
 		char lineout[30];
 
 		day_array(month, year, dp);
-		len = sprintf(lineout, "%s %d", month_names[month - 1], year);
+		len = sprintf(lineout, "%s %u", month_names[month - 1], year);
 		printf("%*s%s\n%s\n",
 				((7*julian + WEEK_LEN) - len) / 2, "",
 				lineout, day_headings);
diff --git a/coreutils/catv.c b/coreutils/catv.c
index 214b431..e3499c5 100644
--- a/coreutils/catv.c
+++ b/coreutils/catv.c
@@ -25,14 +25,23 @@
 {
 	int retval = EXIT_SUCCESS;
 	int fd;
-	unsigned flags;
-
-	flags = getopt32(argv, "etv");
+	unsigned opts;
 #define CATV_OPT_e (1<<0)
 #define CATV_OPT_t (1<<1)
 #define CATV_OPT_v (1<<2)
-	flags ^= CATV_OPT_v;
+	typedef char BUG_const_mismatch[
+		CATV_OPT_e == VISIBLE_ENDLINE && CATV_OPT_t == VISIBLE_SHOW_TABS
+		? 1 : -1
+	];
+
+	opts = getopt32(argv, "etv");
 	argv += optind;
+#if 0 /* These consts match, we can just pass "opts" to visible() */
+	if (opts & CATV_OPT_e)
+		flags |= VISIBLE_ENDLINE;
+	if (opts & CATV_OPT_t)
+		flags |= VISIBLE_SHOW_TABS;
+#endif
 
 	/* Read from stdin if there's nothing else to do. */
 	if (!argv[0])
@@ -50,29 +59,17 @@
 			res = read(fd, read_buf, COMMON_BUFSIZE);
 			if (res < 0)
 				retval = EXIT_FAILURE;
-			if (res < 1)
+			if (res <= 0)
 				break;
 			for (i = 0; i < res; i++) {
 				unsigned char c = read_buf[i];
-
-				if (c > 126 && (flags & CATV_OPT_v)) {
-					if (c == 127) {
-						printf("^?");
-						continue;
-					}
-					printf("M-");
-					c -= 128;
+				if (opts & CATV_OPT_v) {
+					putchar(c);
+				} else {
+					char buf[sizeof("M-^c")];
+					visible(c, buf, opts);
+					fputs(buf, stdout);
 				}
-				if (c < 32) {
-					if (c == 10) {
-						if (flags & CATV_OPT_e)
-							bb_putchar('$');
-					} else if (flags & (c==9 ? CATV_OPT_t : CATV_OPT_v)) {
-						printf("^%c", c+'@');
-						continue;
-					}
-				}
-				bb_putchar(c);
 			}
 		}
 		if (ENABLE_FEATURE_CLEAN_UP && fd)
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 96602eb..2838f63 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -30,10 +30,10 @@
 //usage:     "\n	conv=noerror	Continue after read errors"
 //usage:     "\n	conv=sync	Pad blocks with zeros"
 //usage:     "\n	conv=fsync	Physically write data out before finishing"
+//usage:     "\n	conv=swab	Swap every pair of bytes"
 //usage:	)
 //usage:     "\n"
-//usage:     "\nNumbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),"
-//usage:     "\nMD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824)"
+//usage:     "\nN may be suffixed by c (1), w (2), b (512), kD (1000), k (1024), MD, M, GD, G"
 //usage:
 //usage:#define dd_example_usage
 //usage:       "$ dd if=/dev/zero of=/dev/ram1 bs=1M count=4\n"
@@ -151,13 +151,14 @@
 	enum {
 		/* Must be in the same order as OP_conv_XXX! */
 		/* (see "flags |= (1 << what)" below) */
-		FLAG_NOTRUNC = 1 << 0,
-		FLAG_SYNC    = 1 << 1,
-		FLAG_NOERROR = 1 << 2,
-		FLAG_FSYNC   = 1 << 3,
+		FLAG_NOTRUNC = (1 << 0) * ENABLE_FEATURE_DD_IBS_OBS,
+		FLAG_SYNC    = (1 << 1) * ENABLE_FEATURE_DD_IBS_OBS,
+		FLAG_NOERROR = (1 << 2) * ENABLE_FEATURE_DD_IBS_OBS,
+		FLAG_FSYNC   = (1 << 3) * ENABLE_FEATURE_DD_IBS_OBS,
+		FLAG_SWAB    = (1 << 4) * ENABLE_FEATURE_DD_IBS_OBS,
 		/* end of conv flags */
-		FLAG_TWOBUFS = 1 << 4,
-		FLAG_COUNT   = 1 << 5,
+		FLAG_TWOBUFS = (1 << 5) * ENABLE_FEATURE_DD_IBS_OBS,
+		FLAG_COUNT   = 1 << 6,
 	};
 	static const char keywords[] ALIGN1 =
 		"bs\0""count\0""seek\0""skip\0""if\0""of\0"
@@ -167,7 +168,7 @@
 		;
 #if ENABLE_FEATURE_DD_IBS_OBS
 	static const char conv_words[] ALIGN1 =
-		"notrunc\0""sync\0""noerror\0""fsync\0";
+		"notrunc\0""sync\0""noerror\0""fsync\0""swab\0";
 #endif
 	enum {
 		OP_bs = 0,
@@ -185,11 +186,11 @@
 		OP_conv_sync,
 		OP_conv_noerror,
 		OP_conv_fsync,
+		OP_conv_swab,
 	/* Unimplemented conv=XXX: */
 	//nocreat       do not create the output file
 	//excl          fail if the output file already exists
 	//fdatasync     physically write output file data before finishing
-	//swab          swap every pair of input bytes
 	//lcase         change upper case to lower case
 	//ucase         change lower case to upper case
 	//block         pad newline-terminated records with spaces to cbs-size
@@ -197,22 +198,33 @@
 	//ascii         from EBCDIC to ASCII
 	//ebcdic        from ASCII to EBCDIC
 	//ibm           from ASCII to alternate EBCDIC
+	/* Partially implemented: */
+	//swab          swap every pair of input bytes: will abort on non-even reads
 #endif
 	};
-	int exitcode = EXIT_FAILURE;
-	size_t ibs = 512, obs = 512;
-	ssize_t n, w;
-	char *ibuf, *obuf;
-	/* And these are all zeroed at once! */
+	smallint exitcode = EXIT_FAILURE;
+	int i;
+	size_t ibs = 512;
+	char *ibuf;
+#if ENABLE_FEATURE_DD_IBS_OBS
+	size_t obs = 512;
+	char *obuf;
+#else
+# define obs  ibs
+# define obuf ibuf
+#endif
+	/* These are all zeroed at once! */
 	struct {
 		int flags;
 		size_t oc;
+		ssize_t prev_read_size; /* for detecting swab failure */
 		off_t count;
 		off_t seek, skip;
 		const char *infile, *outfile;
 	} Z;
 #define flags   (Z.flags  )
 #define oc      (Z.oc     )
+#define prev_read_size (Z.prev_read_size)
 #define count   (Z.count  )
 #define seek    (Z.seek   )
 #define skip    (Z.skip   )
@@ -223,10 +235,10 @@
 	INIT_G();
 	//fflush_all(); - is this needed because of NOEXEC?
 
-	for (n = 1; argv[n]; n++) {
+	for (i = 1; argv[i]; i++) {
 		int what;
 		char *val;
-		char *arg = argv[n];
+		char *arg = argv[i];
 
 #if ENABLE_DESKTOP
 		/* "dd --". NB: coreutils 6.9 will complain if they see
@@ -255,6 +267,7 @@
 		}
 		if (what == OP_conv) {
 			while (1) {
+				int n;
 				/* find ',', replace them with NUL so we can use val for
 				 * index_in_strings() without copying.
 				 * We rely on val being non-null, else strchr would fault.
@@ -262,20 +275,21 @@
 				arg = strchr(val, ',');
 				if (arg)
 					*arg = '\0';
-				what = index_in_strings(conv_words, val);
-				if (what < 0)
+				n = index_in_strings(conv_words, val);
+				if (n < 0)
 					bb_error_msg_and_die(bb_msg_invalid_arg, val, "conv");
-				flags |= (1 << what);
+				flags |= (1 << n);
 				if (!arg) /* no ',' left, so this was the last specifier */
 					break;
 				/* *arg = ','; - to preserve ps listing? */
 				val = arg + 1; /* skip this keyword and ',' */
 			}
-			continue; /* we trashed 'what', can't fall through */
+			/*continue;*/
 		}
 #endif
 		if (what == OP_bs) {
-			ibs = obs = xatoul_range_sfx(val, 1, ((size_t)-1L)/2, dd_suffixes);
+			ibs = xatoul_range_sfx(val, 1, ((size_t)-1L)/2, dd_suffixes);
+			obs = ibs;
 			/*continue;*/
 		}
 		/* These can be large: */
@@ -300,14 +314,17 @@
 			outfile = val;
 			/*continue;*/
 		}
-	} /* end of "for (argv[n])" */
+	} /* end of "for (argv[i])" */
 
 //XXX:FIXME for huge ibs or obs, malloc'ing them isn't the brightest idea ever
-	ibuf = obuf = xmalloc(ibs);
+	ibuf = xmalloc(ibs);
+	obuf = ibuf;
+#if ENABLE_FEATURE_DD_IBS_OBS
 	if (ibs != obs) {
 		flags |= FLAG_TWOBUFS;
 		obuf = xmalloc(obs);
 	}
+#endif
 
 #if ENABLE_FEATURE_DD_SIGNAL_HANDLING
 	signal_SA_RESTART_empty_mask(SIGUSR1, dd_output_status);
@@ -316,12 +333,12 @@
 	G.begin_time_us = monotonic_us();
 #endif
 
-	if (infile != NULL)
+	if (infile) {
 		xmove_fd(xopen(infile, O_RDONLY), ifd);
-	else {
+	} else {
 		infile = bb_msg_standard_input;
 	}
-	if (outfile != NULL) {
+	if (outfile) {
 		int oflag = O_WRONLY | O_CREAT;
 
 		if (!seek && !(flags & FLAG_NOTRUNC))
@@ -346,13 +363,13 @@
 	}
 	if (skip) {
 		if (lseek(ifd, skip * ibs, SEEK_CUR) < 0) {
-			while (skip-- > 0) {
-				n = safe_read(ifd, ibuf, ibs);
+			do {
+				ssize_t n = safe_read(ifd, ibuf, ibs);
 				if (n < 0)
 					goto die_infile;
 				if (n == 0)
 					break;
-			}
+			} while (--skip != 0);
 		}
 	}
 	if (seek) {
@@ -361,6 +378,8 @@
 	}
 
 	while (!(flags & FLAG_COUNT) || (G.in_full + G.in_part != count)) {
+		ssize_t n;
+
 		n = safe_read(ifd, ibuf, ibs);
 		if (n == 0)
 			break;
@@ -375,6 +394,27 @@
 			 * conv=noerror just ignores input bad blocks */
 			n = 0;
 		}
+		if (flags & FLAG_SWAB) {
+			uint16_t *p16;
+			ssize_t n2;
+
+			/* Our code allows only last read to be odd-sized */
+			if (prev_read_size & 1)
+				bb_error_msg_and_die("can't swab %lu byte buffer",
+						(unsigned long)prev_read_size);
+			prev_read_size = n;
+
+			/* If n is odd, last byte is not swapped:
+			 *  echo -n "qwe" | dd conv=swab
+			 * prints "wqe".
+			 */
+			p16 = (void*) ibuf;
+			n2 = (n >> 1);
+			while (--n2 >= 0) {
+				*p16 = bswap_16(*p16);
+				p16++;
+			}
+		}
 		if ((size_t)n == ibs)
 			G.in_full++;
 		else {
@@ -401,8 +441,10 @@
 					oc = 0;
 				}
 			}
-		} else if (write_and_stats(ibuf, n, obs, outfile))
-			goto out_status;
+		} else {
+			if (write_and_stats(ibuf, n, obs, outfile))
+				goto out_status;
+		}
 
 		if (flags & FLAG_FSYNC) {
 			if (fsync(ofd) < 0)
@@ -411,9 +453,8 @@
 	}
 
 	if (ENABLE_FEATURE_DD_IBS_OBS && oc) {
-		w = full_write_or_warn(obuf, oc, outfile);
-		if (w < 0) goto out_status;
-		if (w > 0) G.out_part++;
+		if (write_and_stats(obuf, oc, obs, outfile))
+			goto out_status;
 	}
 	if (close(ifd) < 0) {
  die_infile:
diff --git a/coreutils/expand.c b/coreutils/expand.c
index ac5ad5b..9a83fad 100644
--- a/coreutils/expand.c
+++ b/coreutils/expand.c
@@ -78,11 +78,7 @@
 				unsigned len;
 				*ptr = '\0';
 # if ENABLE_UNICODE_SUPPORT
-				{
-					uni_stat_t uni_stat;
-					printable_string(&uni_stat, ptr_strbeg);
-					len = uni_stat.unicode_width;
-				}
+				len = unicode_strwidth(ptr_strbeg);
 # else
 				len = ptr - ptr_strbeg;
 # endif
@@ -138,12 +134,9 @@
 			printf("%*s%.*s", len, "", n, ptr);
 # if ENABLE_UNICODE_SUPPORT
 			{
-				char c;
-				uni_stat_t uni_stat;
-				c = ptr[n];
+				char c = ptr[n];
 				ptr[n] = '\0';
-				printable_string(&uni_stat, ptr);
-				len = uni_stat.unicode_width;
+				len = unicode_strwidth(ptr);
 				ptr[n] = c;
 			}
 # else
diff --git a/coreutils/head.c b/coreutils/head.c
index ec45127..9388b02 100644
--- a/coreutils/head.c
+++ b/coreutils/head.c
@@ -11,6 +11,8 @@
 /* BB_AUDIT GNU compatible -c, -q, and -v options in 'fancy' configuration. */
 /* http://www.opengroup.org/onlinepubs/007904975/utilities/head.html */
 
+//kbuild:lib-$(CONFIG_HEAD) += head.o
+
 //usage:#define head_trivial_usage
 //usage:       "[OPTIONS] [FILE]..."
 //usage:#define head_full_usage "\n\n"
@@ -18,7 +20,8 @@
 //usage:       "With more than one FILE, precede each with a filename header.\n"
 //usage:     "\n	-n N[kbm]	Print first N lines"
 //usage:	IF_FEATURE_FANCY_HEAD(
-//usage:     "\n	-c N[kbm]	Print first N bytes"
+//usage:     "\n	-n -N[kbm]	Print all except N last lines"
+//usage:     "\n	-c [-]N[kbm]	Print first N bytes"
 //usage:     "\n	-q		Never print headers"
 //usage:     "\n	-v		Always print headers"
 //usage:	)
@@ -34,6 +37,110 @@
 
 /* This is a NOEXEC applet. Be very careful! */
 
+#if !ENABLE_FEATURE_FANCY_HEAD
+# define print_first_N(fp,count,bytes) print_first_N(fp,count)
+#endif
+static void
+print_first_N(FILE *fp, unsigned long count, bool count_bytes)
+{
+#if !ENABLE_FEATURE_FANCY_HEAD
+	const int count_bytes = 0;
+#endif
+	while (count) {
+		int c = getc(fp);
+		if (c == EOF)
+			break;
+		if (count_bytes || (c == '\n'))
+			--count;
+		putchar(c);
+	}
+}
+
+#if ENABLE_FEATURE_FANCY_HEAD
+static void
+print_except_N_last_bytes(FILE *fp, unsigned count)
+{
+	unsigned char *circle = xmalloc(++count);
+	unsigned head = 0;
+	for(;;) {
+		int c;
+		c = getc(fp);
+		if (c == EOF)
+			goto ret;
+		circle[head++] = c;
+		if (head == count)
+			break;
+	}
+	for (;;) {
+		int c;
+		if (head == count)
+			head = 0;
+		putchar(circle[head]);
+		c = getc(fp);
+		if (c == EOF)
+			goto ret;
+		circle[head] = c;
+		head++;
+	}
+ ret:
+	free(circle);
+}
+
+static void
+print_except_N_last_lines(FILE *fp, unsigned count)
+{
+	char **circle = xzalloc((++count) * sizeof(circle[0]));
+	unsigned head = 0;
+	for(;;) {
+		char *c;
+		c = xmalloc_fgets(fp);
+		if (!c)
+			goto ret;
+		circle[head++] = c;
+		if (head == count)
+			break;
+	}
+	for (;;) {
+		char *c;
+		if (head == count)
+			head = 0;
+		fputs(circle[head], stdout);
+		c = xmalloc_fgets(fp);
+		if (!c)
+			goto ret;
+		free(circle[head]);
+		circle[head++] = c;
+	}
+ ret:
+	head = 0;
+	for(;;) {
+		free(circle[head++]);
+		if (head == count)
+			break;
+	}
+	free(circle);
+}
+#else
+/* Must never be called */
+void print_except_N_last_bytes(FILE *fp, unsigned count);
+void print_except_N_last_lines(FILE *fp, unsigned count);
+#endif
+
+#if !ENABLE_FEATURE_FANCY_HEAD
+# define eat_num(negative_N,p) eat_num(p)
+#endif
+static unsigned long
+eat_num(bool *negative_N, const char *p)
+{
+#if ENABLE_FEATURE_FANCY_HEAD
+	if (*p == '-') {
+		*negative_N = 1;
+		p++;
+	}
+#endif
+	return xatoul_sfx(p, bkm_suffixes);
+}
+
 static const char head_opts[] ALIGN1 =
 	"n:"
 #if ENABLE_FEATURE_FANCY_HEAD
@@ -41,29 +148,25 @@
 #endif
 	;
 
-static const struct suffix_mult head_suffixes[] = {
-	{ "b", 512 },
-	{ "k", 1024 },
-	{ "m", 1024*1024 },
-	{ "", 0 }
-};
-
 #define header_fmt_str "\n==> %s <==\n"
 
 int head_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int head_main(int argc, char **argv)
 {
 	unsigned long count = 10;
-	unsigned long i;
 #if ENABLE_FEATURE_FANCY_HEAD
-	int count_bytes = 0;
 	int header_threshhold = 1;
+	bool count_bytes = 0;
+	bool negative_N = 0;
+#else
+# define header_threshhold 1
+# define count_bytes       0
+# define negative_N        0
 #endif
 	FILE *fp;
 	const char *fmt;
 	char *p;
 	int opt;
-	int c;
 	int retval = EXIT_SUCCESS;
 
 #if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_HEAD
@@ -73,7 +176,7 @@
 	) {
 		--argc;
 		++argv;
-		p = (*argv) + 1;
+		p = argv[0] + 1;
 		goto GET_COUNT;
 	}
 #endif
@@ -97,7 +200,7 @@
 #if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_HEAD
  GET_COUNT:
 #endif
-			count = xatoul_sfx(p, head_suffixes);
+			count = eat_num(&negative_N, p);
 			break;
 		default:
 			bb_show_usage();
@@ -110,19 +213,17 @@
 		*--argv = (char*)"-";
 
 	fmt = header_fmt_str + 1;
-#if ENABLE_FEATURE_FANCY_HEAD
 	if (argc <= header_threshhold) {
+#if ENABLE_FEATURE_FANCY_HEAD
 		header_threshhold = 0;
-	}
 #else
-	if (argc <= 1) {
 		fmt += 11; /* "" */
-	}
-	/* Now define some things here to avoid #ifdefs in the code below.
-	 * These should optimize out of the if conditions below. */
-#define header_threshhold   1
-#define count_bytes         0
 #endif
+	}
+	if (negative_N) {
+		if (count >= INT_MAX / sizeof(char*))
+			bb_error_msg("count is too big: %lu", count);
+	}
 
 	do {
 		fp = fopen_or_warn_stdin(*argv);
@@ -133,18 +234,20 @@
 			if (header_threshhold) {
 				printf(fmt, *argv);
 			}
-			i = count;
-			while (i && ((c = getc(fp)) != EOF)) {
-				if (count_bytes || (c == '\n')) {
-					--i;
+			if (negative_N) {
+				if (count_bytes) {
+					print_except_N_last_bytes(fp, count);
+				} else {
+					print_except_N_last_lines(fp, count);
 				}
-				putchar(c);
+			} else {
+				print_first_N(fp, count, count_bytes);
 			}
+			die_if_ferror_stdout();
 			if (fclose_if_not_stdin(fp)) {
 				bb_simple_perror_msg(*argv);
 				retval = EXIT_FAILURE;
 			}
-			die_if_ferror_stdout();
 		} else {
 			retval = EXIT_FAILURE;
 		}
diff --git a/coreutils/hostid.c b/coreutils/hostid.c
index 5c1a4e0..e5b1f51 100644
--- a/coreutils/hostid.c
+++ b/coreutils/hostid.c
@@ -36,7 +36,8 @@
 		bb_show_usage();
 	}
 
-	printf("%08lx\n", gethostid());
+	/* POSIX says gethostid returns a "32-bit identifier" */
+	printf("%08x\n", (unsigned)(uint32_t)gethostid());
 
 	return fflush_all();
 }
diff --git a/coreutils/id.c b/coreutils/id.c
index 1f20b75..1f3e1c4 100644
--- a/coreutils/id.c
+++ b/coreutils/id.c
@@ -64,12 +64,10 @@
 /* This is a NOEXEC applet. Be very careful! */
 
 #if !ENABLE_USE_BB_PWD_GRP
-#if defined(__UCLIBC_MAJOR__) && (__UCLIBC_MAJOR__ == 0)
-#if (__UCLIBC_MINOR__ < 9) || (__UCLIBC_MINOR__ == 9 &&  __UCLIBC_SUBLEVEL__ < 30)
+#if defined(__UCLIBC__) && UCLIBC_VERSION < KERNEL_VERSION(0, 9, 30)
 #error "Sorry, you need at least uClibc version 0.9.30 for id applet to build"
 #endif
 #endif
-#endif
 
 enum {
 	PRINT_REAL      = (1 << 0),
diff --git a/coreutils/md5_sha1_sum.c b/coreutils/md5_sha1_sum.c
index 92a4d44..1a5342e 100644
--- a/coreutils/md5_sha1_sum.c
+++ b/coreutils/md5_sha1_sum.c
@@ -151,7 +151,9 @@
 			update(&context, in_buf, count);
 		}
 		hash_value = NULL;
-		if (count == 0) {
+		if (count < 0)
+			bb_perror_msg("can't read '%s'", filename);
+		else /* count == 0 */ {
 			final(&context, in_buf);
 			hash_value = hash_bin_to_hex(in_buf, hash_len);
 		}
diff --git a/coreutils/od_bloaty.c b/coreutils/od_bloaty.c
index a632489..6b00a43 100644
--- a/coreutils/od_bloaty.c
+++ b/coreutils/od_bloaty.c
@@ -1166,12 +1166,6 @@
 int od_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int od_main(int argc UNUSED_PARAM, char **argv)
 {
-	static const struct suffix_mult bkm[] = {
-		{ "b", 512 },
-		{ "k", 1024 },
-		{ "m", 1024*1024 },
-		{ "", 0 }
-	};
 #if ENABLE_LONG_OPTS
 	static const char od_longopts[] ALIGN1 =
 		"skip-bytes\0"        Required_argument "j"
@@ -1230,7 +1224,7 @@
 		address_pad_len_char = doxn_address_pad_len_char[pos];
 	}
 	if (opt & OPT_N) {
-		max_bytes_to_format = xstrtooff_sfx(str_N, 0, bkm);
+		max_bytes_to_format = xstrtooff_sfx(str_N, 0, bkm_suffixes);
 	}
 	if (opt & OPT_a) decode_format_string("a");
 	if (opt & OPT_b) decode_format_string("oC");
@@ -1239,7 +1233,7 @@
 	if (opt & OPT_f) decode_format_string("fF");
 	if (opt & OPT_h) decode_format_string("x2");
 	if (opt & OPT_i) decode_format_string("d2");
-	if (opt & OPT_j) n_bytes_to_skip = xstrtooff_sfx(str_j, 0, bkm);
+	if (opt & OPT_j) n_bytes_to_skip = xstrtooff_sfx(str_j, 0, bkm_suffixes);
 	if (opt & OPT_l) decode_format_string("d4");
 	if (opt & OPT_o) decode_format_string("o2");
 	while (lst_t) {
@@ -1248,7 +1242,7 @@
 	if (opt & OPT_x) decode_format_string("x2");
 	if (opt & OPT_s) decode_format_string("d2");
 	if (opt & OPT_S) {
-		string_min = xstrtou_sfx(str_S, 0, bkm);
+		string_min = xstrtou_sfx(str_S, 0, bkm_suffixes);
 	}
 
 	// Bloat:
diff --git a/coreutils/readlink.c b/coreutils/readlink.c
index f7ad791..d73ef4d 100644
--- a/coreutils/readlink.c
+++ b/coreutils/readlink.c
@@ -39,7 +39,10 @@
  *   -q, --quiet, -s, --silent     suppress most error messages
  *   -v, --verbose                 report error messages
  *
- * bbox supports: -f -n -v (fully), -q -s (accepts but ignores)
+ * bbox supports: -f (partially) -n -v (fully), -q -s (accepts but ignores)
+ * Note: we export the -f flag, but our -f behaves like coreutils' -e.
+ * Unfortunately, there isn't a C lib function we can leverage to get this
+ * behavior which means we'd have to implement the full stack ourselves :(.
  */
 
 int readlink_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
diff --git a/coreutils/split.c b/coreutils/split.c
index 11e6404..1e1673e 100644
--- a/coreutils/split.c
+++ b/coreutils/split.c
@@ -23,17 +23,15 @@
 
 #include "libbb.h"
 
-static const struct suffix_mult split_suffices[] = {
 #if ENABLE_FEATURE_SPLIT_FANCY
+static const struct suffix_mult split_suffixes[] = {
 	{ "b", 512 },
-#endif
 	{ "k", 1024 },
 	{ "m", 1024*1024 },
-#if ENABLE_FEATURE_SPLIT_FANCY
 	{ "g", 1024*1024*1024 },
-#endif
 	{ "", 0 }
 };
+#endif
 
 /* Increment the suffix part of the filename.
  * Returns NULL if we are out of filenames.
@@ -86,7 +84,10 @@
 	if (opt & SPLIT_OPT_l)
 		cnt = XATOOFF(count_p);
 	if (opt & SPLIT_OPT_b) // FIXME: also needs XATOOFF
-		cnt = xatoull_sfx(count_p, split_suffices);
+		cnt = xatoull_sfx(count_p,
+				IF_FEATURE_SPLIT_FANCY(split_suffixes)
+				IF_NOT_FEATURE_SPLIT_FANCY(km_suffixes)
+		);
 	sfx = "x";
 
 	argv += optind;
diff --git a/coreutils/stat.c b/coreutils/stat.c
index c8677eb..769fac0 100644
--- a/coreutils/stat.c
+++ b/coreutils/stat.c
@@ -127,7 +127,7 @@
 	/*static char buf[sizeof("YYYY-MM-DD HH:MM:SS.000000000")] ALIGN1;*/
 #define buf bb_common_bufsiz1
 
-	strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S.000000000", localtime(&t));
+	strcpy(strftime_YYYYMMDDHHMMSS(buf, sizeof(buf), &t), ".000000000");
 	return buf;
 #undef buf
 }
@@ -655,7 +655,7 @@
 		);
 # if ENABLE_SELINUX
 		if (option_mask32 & OPT_SELINUX)
-			printf(" %lc\n", *scontext);
+			printf(" %s\n", scontext);
 		else
 			bb_putchar('\n');
 # endif
@@ -700,7 +700,8 @@
 		       (unsigned long) statbuf.st_gid,
 		       (gw_ent != NULL) ? gw_ent->gr_name : "UNKNOWN");
 # if ENABLE_SELINUX
-		printf("   S_Context: %lc\n", *scontext);
+		if (option_mask32 & OPT_SELINUX)
+			printf("   S_Context: %s\n", scontext);
 # endif
 		printf("Access: %s\n", human_time(statbuf.st_atime));
 		printf("Modify: %s\n", human_time(statbuf.st_mtime));
diff --git a/coreutils/stty.c b/coreutils/stty.c
index 96754dd..378a848 100644
--- a/coreutils/stty.c
+++ b/coreutils/stty.c
@@ -246,10 +246,21 @@
 
 /* Which member(s) of 'struct termios' a mode uses */
 enum {
-	/* Do NOT change the order or values, as mode_type_flag()
-	 * depends on them */
 	control, input, output, local, combination
 };
+static tcflag_t *get_ptr_to_tcflag(unsigned type, const struct termios *mode)
+{
+	static const uint8_t tcflag_offsets[] ALIGN1 = {
+		offsetof(struct termios, c_cflag), /* control */
+		offsetof(struct termios, c_iflag), /* input */
+		offsetof(struct termios, c_oflag), /* output */
+		offsetof(struct termios, c_lflag)  /* local */
+	};
+	if (type <= local) {
+		return (tcflag_t*) (((char*)mode) + tcflag_offsets[type]);
+	}
+	return NULL;
+}
 
 /* Flags for 'struct mode_info' */
 #define SANE_SET 1              /* Set in 'sane' mode                  */
@@ -770,51 +781,6 @@
 	G.max_col = 80; \
 } while (0)
 
-
-/* Return a string that is the printable representation of character CH */
-/* Adapted from 'cat' by Torbjorn Granlund */
-static const char *visible(unsigned ch)
-{
-	char *bpout = G.buf;
-
-	if (ch == _POSIX_VDISABLE)
-		return "<undef>";
-
-	if (ch >= 128) {
-		ch -= 128;
-		*bpout++ = 'M';
-		*bpout++ = '-';
-	}
-
-	if (ch < 32) {
-		*bpout++ = '^';
-		*bpout++ = ch + 64;
-	} else if (ch < 127) {
-		*bpout++ = ch;
-	} else {
-		*bpout++ = '^';
-		*bpout++ = '?';
-	}
-
-	*bpout = '\0';
-	return G.buf;
-}
-
-static tcflag_t *mode_type_flag(unsigned type, const struct termios *mode)
-{
-	static const uint8_t tcflag_offsets[] ALIGN1 = {
-		offsetof(struct termios, c_cflag), /* control */
-		offsetof(struct termios, c_iflag), /* input */
-		offsetof(struct termios, c_oflag), /* output */
-		offsetof(struct termios, c_lflag)  /* local */
-	};
-
-	if (type <= local) {
-		return (tcflag_t*) (((char*)mode) + tcflag_offsets[type]);
-	}
-	return NULL;
-}
-
 static void set_speed_or_die(enum speed_setting type, const char *arg,
 					struct termios *mode)
 {
@@ -1042,6 +1008,7 @@
 #endif
 
 	for (i = 0; i != CIDX_min; ++i) {
+		char ch;
 		/* If swtch is the same as susp, don't print both */
 #if VSWTCH == VSUSP
 		if (i == CIDX_swtch)
@@ -1055,8 +1022,12 @@
 			continue;
 		}
 #endif
-		wrapf("%s = %s;", nth_string(control_name, i),
-				visible(mode->c_cc[control_info[i].offset]));
+		ch = mode->c_cc[control_info[i].offset];
+		if (ch == _POSIX_VDISABLE)
+			strcpy(G.buf, "<undef>");
+		else
+			visible(ch, G.buf, 0);
+		wrapf("%s = %s;", nth_string(control_name, i), G.buf);
 	}
 #if VEOF == VMIN
 	if ((mode->c_lflag & ICANON) == 0)
@@ -1072,7 +1043,7 @@
 			prev_type = mode_info[i].type;
 		}
 
-		bitsp = mode_type_flag(mode_info[i].type, mode);
+		bitsp = get_ptr_to_tcflag(mode_info[i].type, mode);
 		mask = mode_info[i].mask ? mode_info[i].mask : mode_info[i].bits;
 		if ((*bitsp & mask) == mode_info[i].bits) {
 			if (all || (mode_info[i].flags & SANE_UNSET))
@@ -1091,7 +1062,6 @@
 static void sane_mode(struct termios *mode)
 {
 	int i;
-	tcflag_t *bitsp;
 
 	for (i = 0; i < NUM_control_info; ++i) {
 #if VMIN == VEOF
@@ -1102,14 +1072,17 @@
 	}
 
 	for (i = 0; i < NUM_mode_info; ++i) {
+		tcflag_t val;
+		tcflag_t *bitsp = get_ptr_to_tcflag(mode_info[i].type, mode);
+
+		if (!bitsp)
+			continue;
+		val = *bitsp & ~((unsigned long)mode_info[i].mask);
 		if (mode_info[i].flags & SANE_SET) {
-			bitsp = mode_type_flag(mode_info[i].type, mode);
-			*bitsp = (*bitsp & ~((unsigned long)mode_info[i].mask))
-				| mode_info[i].bits;
-		} else if (mode_info[i].flags & SANE_UNSET) {
-			bitsp = mode_type_flag(mode_info[i].type, mode);
-			*bitsp = *bitsp & ~((unsigned long)mode_info[i].mask)
-				& ~mode_info[i].bits;
+			*bitsp = val | mode_info[i].bits;
+		} else
+		if (mode_info[i].flags & SANE_UNSET) {
+			*bitsp = val & ~mode_info[i].bits;
 		}
 	}
 }
@@ -1119,17 +1092,18 @@
 {
 	tcflag_t *bitsp;
 
-	bitsp = mode_type_flag(info->type, mode);
+	bitsp = get_ptr_to_tcflag(info->type, mode);
 
 	if (bitsp) {
+		tcflag_t val = *bitsp & ~info->mask;
 		if (reversed)
-			*bitsp = *bitsp & ~info->mask & ~info->bits;
+			*bitsp = val & ~info->bits;
 		else
-			*bitsp = (*bitsp & ~info->mask) | info->bits;
+			*bitsp = val | info->bits;
 		return;
 	}
 
-	/* Combination mode */
+	/* !bitsp - it's a "combination" mode */
 	if (info == &mode_info[IDX_evenp] || info == &mode_info[IDX_parity]) {
 		if (reversed)
 			mode->c_cflag = (mode->c_cflag & ~PARENB & ~CSIZE) | CS8;
@@ -1534,7 +1508,12 @@
 			perror_on_device_and_die("%s");
 
 		if (memcmp(&mode, &new_mode, sizeof(mode)) != 0) {
-#if CIBAUD
+/*
+ * I think the below chunk is not necessary on Linux.
+ * If you are deleting it, also delete STTY_speed_was_set bit -
+ * it is only ever checked here.
+ */
+#if 0 /* was "if CIBAUD" */
 			/* SunOS 4.1.3 (at least) has the problem that after this sequence,
 			   tcgetattr (&m1); tcsetattr (&m1); tcgetattr (&m2);
 			   sometimes (m1 != m2).  The only difference is in the four bits
diff --git a/coreutils/sum.c b/coreutils/sum.c
index 75f6ef6..deb068e 100644
--- a/coreutils/sum.c
+++ b/coreutils/sum.c
@@ -70,9 +70,9 @@
 	if (type >= SUM_SYSV) {
 		r = (s & 0xffff) + ((s & 0xffffffff) >> 16);
 		s = (r & 0xffff) + (r >> 16);
-		printf("%d %llu %s\n", s, (total_bytes + 511) / 512, file);
+		printf("%u %llu %s\n", s, (total_bytes + 511) / 512, file);
 	} else
-		printf("%05d %5llu %s\n", s, (total_bytes + 1023) / 1024, file);
+		printf("%05u %5llu %s\n", s, (total_bytes + 1023) / 1024, file);
 	return 1;
 #undef buf
 }
diff --git a/coreutils/tail.c b/coreutils/tail.c
index 96fd011..0e12443 100644
--- a/coreutils/tail.c
+++ b/coreutils/tail.c
@@ -24,6 +24,8 @@
  * 7) lseek attempted when count==0 even if arg was +0 (from top)
  */
 
+//kbuild:lib-$(CONFIG_TAIL) += tail.o
+
 //usage:#define tail_trivial_usage
 //usage:       "[OPTIONS] [FILE]..."
 //usage:#define tail_full_usage "\n\n"
@@ -34,14 +36,13 @@
 //usage:     "\n	-s SECONDS	Wait SECONDS between reads with -f"
 //usage:	)
 //usage:     "\n	-n N[kbm]	Print last N lines"
+//usage:     "\n	-n +N[kbm]	Start on Nth line and print the rest"
 //usage:	IF_FEATURE_FANCY_TAIL(
-//usage:     "\n	-c N[kbm]	Print last N bytes"
+//usage:     "\n	-c [+]N[kbm]	Print last N bytes"
 //usage:     "\n	-q		Never print headers"
 //usage:     "\n	-v		Always print headers"
 //usage:     "\n"
 //usage:     "\nN may be suffixed by k (x1024), b (x512), or m (x1024^2)."
-//usage:     "\nIf N starts with a '+', output begins with the Nth item from the start"
-//usage:     "\nof each file, not from the end."
 //usage:	)
 //usage:
 //usage:#define tail_example_usage
@@ -50,13 +51,6 @@
 
 #include "libbb.h"
 
-static const struct suffix_mult tail_suffixes[] = {
-	{ "b", 512 },
-	{ "k", 1024 },
-	{ "m", 1024*1024 },
-	{ "", 0 }
-};
-
 struct globals {
 	bool from_top;
 	bool exitcode;
@@ -73,15 +67,6 @@
 static ssize_t tail_read(int fd, char *buf, size_t count)
 {
 	ssize_t r;
-	off_t current;
-	struct stat sbuf;
-
-	/* /proc files report zero st_size, don't lseek them. */
-	if (fstat(fd, &sbuf) == 0 && sbuf.st_size > 0) {
-		current = lseek(fd, 0, SEEK_CUR);
-		if (sbuf.st_size < current)
-			xlseek(fd, 0, SEEK_SET);
-	}
 
 	r = full_read(fd, buf, count);
 	if (r < 0) {
@@ -102,7 +87,7 @@
 		p++;
 		G.from_top = 1;
 	}
-	return xatou_sfx(p, tail_suffixes);
+	return xatou_sfx(p, bkm_suffixes);
 }
 
 int tail_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
@@ -120,6 +105,7 @@
 
 	int *fds;
 	const char *fmt;
+	int prev_fd;
 
 	INIT_G();
 
@@ -324,6 +310,7 @@
 			xwrite(STDOUT_FILENO, tailbuf, taillen);
 		}
 	} while (++i < nfiles);
+	prev_fd = fds[i-1];
 
 	tailbuf = xrealloc(tailbuf, BUFSIZ);
 
@@ -367,10 +354,23 @@
 			if (nfiles > header_threshhold) {
 				fmt = header_fmt_str;
 			}
-			while ((nread = tail_read(fd, tailbuf, BUFSIZ)) > 0) {
-				if (fmt) {
+			for (;;) {
+				/* tail -f keeps following files even if they are truncated */
+				struct stat sbuf;
+				/* /proc files report zero st_size, don't lseek them */
+				if (fstat(fd, &sbuf) == 0 && sbuf.st_size > 0) {
+					off_t current = lseek(fd, 0, SEEK_CUR);
+					if (sbuf.st_size < current)
+						xlseek(fd, 0, SEEK_SET);
+				}
+
+				nread = tail_read(fd, tailbuf, BUFSIZ);
+				if (nread <= 0)
+					break;
+				if (fmt && (fd != prev_fd)) {
 					tail_xprint_header(fmt, filename);
 					fmt = NULL;
+					prev_fd = fd;
 				}
 				xwrite(STDOUT_FILENO, tailbuf, nread);
 			}
diff --git a/coreutils/touch.c b/coreutils/touch.c
index 1216ca2..293a968 100644
--- a/coreutils/touch.c
+++ b/coreutils/touch.c
@@ -26,6 +26,14 @@
 //config:	  touch is used to create or change the access and/or
 //config:	  modification timestamp of specified files.
 //config:
+//config:config FEATURE_TOUCH_NODEREF
+//config:	bool "Add support for -h"
+//config:	default y
+//config:	depends on TOUCH
+//config:	help
+//config:	  Enable touch to have the -h option.
+//config:	  This requires libc support for lutimes() function.
+//config:
 //config:config FEATURE_TOUCH_SUSV3
 //config:	bool "Add support for SUSV3 features (-d -t -r)"
 //config:	default y
@@ -42,6 +50,9 @@
 //usage:#define touch_full_usage "\n\n"
 //usage:       "Update the last-modified date on the given FILE[s]\n"
 //usage:     "\n	-c	Don't create files"
+//usage:	IF_FEATURE_TOUCH_NODEREF(
+//usage:     "\n	-h	Don't follow links"
+//usage:	)
 //usage:	IF_FEATURE_TOUCH_SUSV3(
 //usage:     "\n	-d DT	Date/time to use"
 //usage:     "\n	-t DT	Date/time to use"
@@ -65,6 +76,7 @@
  *      parse STRING and use it instead of current time
  * -f   (ignored, BSD compat)
  * -m   change only the modification time
+ * -h, --no-dereference
  * -r, --reference=FILE
  *      use this file's times instead of current time
  * -t STAMP
@@ -79,6 +91,13 @@
 	int fd;
 	int status = EXIT_SUCCESS;
 	int opts;
+	enum {
+		OPT_c = (1 << 0),
+		OPT_r = (1 << 1) * ENABLE_FEATURE_TOUCH_SUSV3,
+		OPT_d = (1 << 2) * ENABLE_FEATURE_TOUCH_SUSV3,
+		OPT_t = (1 << 3) * ENABLE_FEATURE_TOUCH_SUSV3,
+		OPT_h = (1 << 4) * ENABLE_FEATURE_TOUCH_NODEREF,
+	};
 #if ENABLE_FEATURE_TOUCH_SUSV3
 # if ENABLE_LONG_OPTS
 	static const char touch_longopts[] ALIGN1 =
@@ -86,6 +105,7 @@
 		"no-create\0"         No_argument       "c"
 		"reference\0"         Required_argument "r"
 		"date\0"              Required_argument "d"
+		IF_FEATURE_TOUCH_NODEREF("no-dereference\0" No_argument "h")
 	;
 # endif
 	char *reference_file = NULL;
@@ -105,13 +125,13 @@
 	 * accepted data format differs a bit between -d and -t.
 	 * We accept the same formats for both */
 	opts = getopt32(argv, "c" IF_FEATURE_TOUCH_SUSV3("r:d:t:")
+				IF_FEATURE_TOUCH_NODEREF("h")
 				/*ignored:*/ "fma"
 				IF_FEATURE_TOUCH_SUSV3(, &reference_file)
 				IF_FEATURE_TOUCH_SUSV3(, &date_str)
 				IF_FEATURE_TOUCH_SUSV3(, &date_str)
 	);
 
-	opts &= 1; /* only -c bit is left */
 	argv += optind;
 	if (!*argv) {
 		bb_show_usage();
@@ -121,6 +141,10 @@
 		struct stat stbuf;
 		xstat(reference_file, &stbuf);
 		timebuf[1].tv_sec = timebuf[0].tv_sec = stbuf.st_mtime;
+		/* Can use .st_mtim.tv_nsec
+		 * (or is it .st_mtimensec?? see date.c)
+		 * to set microseconds too.
+		 */
 	}
 
 	if (date_str) {
@@ -141,9 +165,16 @@
 	}
 
 	do {
-		if (utimes(*argv, (reference_file || date_str) ? timebuf : NULL) != 0) {
-			if (errno == ENOENT) { /* no such file */
-				if (opts) { /* creation is disabled, so ignore */
+		int result;
+		result = (
+#if ENABLE_FEATURE_TOUCH_NODEREF
+			(opts & OPT_h) ? lutimes :
+#endif
+			utimes)(*argv, (reference_file || date_str) ? timebuf : NULL);
+		if (result != 0) {
+			if (errno == ENOENT) { /* no such file? */
+				if (opts & OPT_c) {
+					/* Creation is disabled, so ignore */
 					continue;
 				}
 				/* Try to create the file */
diff --git a/debianutils/mktemp.c b/debianutils/mktemp.c
index 152bd95..602309c 100644
--- a/debianutils/mktemp.c
+++ b/debianutils/mktemp.c
@@ -53,6 +53,10 @@
 
 #include "libbb.h"
 
+#ifdef __BIONIC__
+#define mktemp(s) bb_mktemp(s)
+#endif
+
 int mktemp_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int mktemp_main(int argc UNUSED_PARAM, char **argv)
 {
diff --git a/debianutils/run_parts.c b/debianutils/run_parts.c
index 005b304..527fae2 100644
--- a/debianutils/run_parts.c
+++ b/debianutils/run_parts.c
@@ -21,24 +21,24 @@
  * taken from debian-utils. I've only removed the long options and the
  * report mode. As the original run-parts support only long options, I've
  * broken compatibility because the BusyBox policy doesn't allow them.
- * The supported options are:
- * -t           test. Print the name of the files to be executed, without
- *              execute them.
- * -a ARG       argument. Pass ARG as an argument the program executed. It can
- *              be repeated to pass multiple arguments.
- * -u MASK      umask. Set the umask of the program executed to MASK.
  */
 
 //usage:#define run_parts_trivial_usage
-//usage:       "[-t"IF_FEATURE_RUN_PARTS_FANCY("l")"] [-a ARG]... [-u MASK] DIRECTORY"
+//usage:       "[-a ARG]... [-u UMASK] "
+//usage:       IF_FEATURE_RUN_PARTS_LONG_OPTIONS("[--reverse] [--test] [--exit-on-error] "IF_FEATURE_RUN_PARTS_FANCY("[--list] "))
+//usage:       "DIRECTORY"
 //usage:#define run_parts_full_usage "\n\n"
 //usage:       "Run a bunch of scripts in DIRECTORY\n"
-//usage:     "\n	-t	Dry run"
+//usage:     "\n	-a ARG		Pass ARG as argument to scripts"
+//usage:     "\n	-u UMASK	Set UMASK before running scripts"
+//usage:	IF_FEATURE_RUN_PARTS_LONG_OPTIONS(
+//usage:     "\n	--reverse	Reverse execution order"
+//usage:     "\n	--test		Dry run"
+//usage:     "\n	--exit-on-error	Exit if a script exits with non-zero"
 //usage:	IF_FEATURE_RUN_PARTS_FANCY(
-//usage:     "\n	-l	Print names of matching files even if they are not executable"
+//usage:     "\n	--list		Print names of matching files even if they are not executable"
 //usage:	)
-//usage:     "\n	-a ARG	Pass ARG as argument to programs"
-//usage:     "\n	-u MASK	Set umask to MASK before running programs"
+//usage:	)
 //usage:
 //usage:#define run_parts_example_usage
 //usage:       "$ run-parts -a start /etc/init.d\n"
@@ -59,7 +59,7 @@
 struct globals {
 	char **names;
 	int    cur;
-	char  *cmd[1];
+	char  *cmd[2 /* using 1 provokes compiler warning */];
 } FIX_ALIASING;
 #define G (*(struct globals*)&bb_common_bufsiz1)
 #define names (G.names)
@@ -70,19 +70,15 @@
 enum { NUM_CMD = (COMMON_BUFSIZE - sizeof(G)) / sizeof(cmd[0]) - 1 };
 
 enum {
-	OPT_r = (1 << 0),
-	OPT_a = (1 << 1),
-	OPT_u = (1 << 2),
-	OPT_t = (1 << 3),
-	OPT_l = (1 << 4) * ENABLE_FEATURE_RUN_PARTS_FANCY,
+	OPT_a = (1 << 0),
+	OPT_u = (1 << 1),
+	OPT_r = (1 << 2) * ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS,
+	OPT_t = (1 << 3) * ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS,
+	OPT_e = (1 << 4) * ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS,
+	OPT_l = (1 << 5) * ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS
+			* ENABLE_FEATURE_RUN_PARTS_FANCY,
 };
 
-#if ENABLE_FEATURE_RUN_PARTS_FANCY
-#define list_mode (option_mask32 & OPT_l)
-#else
-#define list_mode 0
-#endif
-
 /* Is this a valid filename (upper/lower alpha, digits,
  * underscores, and hyphens only?)
  */
@@ -110,7 +106,7 @@
 	if (depth == 2
 	 && (  !(statbuf->st_mode & (S_IFREG | S_IFLNK))
 	    || invalid_name(file)
-	    || (!list_mode && access(file, X_OK) != 0))
+	    || (!(option_mask32 & OPT_l) && access(file, X_OK) != 0))
 	) {
 		return SKIP;
 	}
@@ -126,11 +122,12 @@
 static const char runparts_longopts[] ALIGN1 =
 	"arg\0"     Required_argument "a"
 	"umask\0"   Required_argument "u"
-	"test\0"    No_argument       "t"
-#if ENABLE_FEATURE_RUN_PARTS_FANCY
-	"list\0"    No_argument       "l"
-	"reverse\0" No_argument       "r"
 //TODO: "verbose\0" No_argument       "v"
+	"reverse\0" No_argument       "\xf0"
+	"test\0"    No_argument       "\xf1"
+	"exit-on-error\0" No_argument "\xf2"
+#if ENABLE_FEATURE_RUN_PARTS_FANCY
+	"list\0"    No_argument       "\xf3"
 #endif
 	;
 #endif
@@ -150,7 +147,7 @@
 #endif
 	/* We require exactly one argument: the directory name */
 	opt_complementary = "=1:a::";
-	getopt32(argv, "ra:u:t"IF_FEATURE_RUN_PARTS_FANCY("l"), &arg_list, &umask_p);
+	getopt32(argv, "a:u:", &arg_list, &umask_p);
 
 	umask(xstrtou_range(umask_p, 8, 0, 07777));
 
@@ -193,6 +190,9 @@
 			bb_perror_msg("can't execute '%s'", name);
 		else /* ret > 0 */
 			bb_error_msg("%s exited with code %d", name, ret & 0xff);
+
+		if (option_mask32 & OPT_e)
+			xfunc_die();
 	}
 
 	return n;
diff --git a/docs/keep_data_small.txt b/docs/keep_data_small.txt
index 21d7326..9fc7996 100644
--- a/docs/keep_data_small.txt
+++ b/docs/keep_data_small.txt
@@ -138,13 +138,6 @@
 #define sector (G.sector)
 
 
-		Word of caution
-
-If applet doesn't use much of global data, converting it to use
-one of above methods is not worth the resulting code obfuscation.
-If you have less than ~300 bytes of global data - don't bother.
-
-
 		Finding non-shared duplicated strings
 
 strings busybox | sort | uniq -c | sort -nr
@@ -224,6 +217,14 @@
 
 		Keeping code small
 
+Use scripts/bloat-o-meter to check whether introduced changes
+didn't generate unnecessary bloat. This script needs unstripped binaries
+to generate a detailed report. To automate this, just use
+"make bloatcheck". It requires busybox_old binary to be present,
+use "make baseline" to generate it from unmodified source, or
+copy busybox_unstripped to busybox_old before modifying sources
+and rebuilding.
+
 Set CONFIG_EXTRA_CFLAGS="-fno-inline-functions-called-once",
 produce "make bloatcheck", see the biggest auto-inlined functions.
 Now, set CONFIG_EXTRA_CFLAGS back to "", but add NOINLINE
diff --git a/docs/mdev.txt b/docs/mdev.txt
index 61f93c9..b24025f 100644
--- a/docs/mdev.txt
+++ b/docs/mdev.txt
@@ -51,9 +51,9 @@
 660 permissions.
 
 The file has the format:
-	[-]<device regex>	<uid>:<gid> <permissions>
+	[-][envmatch]<device regex>	<uid>:<gid> <permissions>
 or
-	@<maj[,min1[-min2]]>	<uid>:<gid> <permissions>
+	[envmatch]@<maj[,min1[-min2]]>	<uid>:<gid> <permissions>
 or
 	$envvar=<regex>		<uid>:<gid> <permissions>
 
diff --git a/docs/tcp.txt b/docs/tcp.txt
new file mode 100644
index 0000000..2000f31
--- /dev/null
+++ b/docs/tcp.txt
@@ -0,0 +1,93 @@
+	Some less-widely known details of TCP connections.
+
+	Properly closing the connection.
+
+After this code sequence:
+
+    sock = socket(AF_INET, SOCK_STREAM, 0);
+    connect(sock, &remote, sizeof(remote));
+    write(sock, buffer, 1000000);
+
+a large block of data is only buffered by kernel, it can't be sent all at once.
+What will happen if we close the socket?
+
+"A host MAY implement a 'half-duplex' TCP close sequence, so that
+ an application that has called close() cannot continue to read
+ data from the connection. If such a host issues a close() call
+ while received data is still pending in TCP, or if new data is
+ received after close() is called, its TCP SHOULD send a RST
+ to show that data was lost."
+
+IOW: if we just close(sock) now, kernel can reset the TCP connection
+(send RST packet).
+
+This is problematic for two reasons: it discards some not-yet sent
+data, and it may be reported as error, not EOF, on peer's side.
+
+What can be done about it?
+
+Solution #1: block until sending is done:
+
+    /* When enabled, a close(2) or shutdown(2) will not return until
+     * all queued messages for the socket have been successfully sent
+     * or the linger timeout has been reached.
+     */
+    struct linger {
+	int l_onoff;    /* linger active */
+	int l_linger;   /* how many seconds to linger for */
+    } linger;
+    linger.l_onoff = 1;
+    linger.l_linger = SOME_NUM;
+    setsockopt(sock, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
+    close(sock);
+
+Solution #2: tell kernel that you are done sending.
+This makes kernel send FIN after all data is written:
+
+    shutdown(sock, SHUT_WR);
+    close(sock);
+
+However, experiments on Linux 3.9.4 show that kernel can return from
+shutdown() and from close() before all data is sent,
+and if peer sends any data to us after this, kernel still responds with
+RST before all our data is sent.
+
+In practice the protocol in use often does not allow peer to send
+such data to us, in which case this solution is acceptable.
+
+Solution #3: if you know that peer is going to close its end after it sees
+our FIN (as EOF), it might be a good idea to perform a read after shutdown().
+When read finishes with 0-sized result, we conclude that peer received all
+the data, saw EOF, and closed its end.
+
+However, this incurs small performance penalty (we run for a longer time)
+and requires safeguards (nonblocking reads, timeouts etc) against
+malicious peers which don't close the connection.
+
+Solutions #1 and #2 can be combined:
+
+    /* ...set up struct linger... then: */
+    setsockopt(sock, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
+    shutdown(sock, SHUT_WR);
+    /* At this point, kernel sent FIN packet, not RST, to the peer, */
+    /* even if there is buffered read data from the peer. */
+    close(sock);
+
+	Defeating Nagle.
+
+Method #1: manually control whether partial sends are allowed:
+
+This prevents partially filled packets being sent:
+
+    int state = 1;
+    setsockopt(fd, IPPROTO_TCP, TCP_CORK, &state, sizeof(state));
+
+and this forces last, partially filled packet (if any) to be sent:
+
+    int state = 0;
+    setsockopt(fd, IPPROTO_TCP, TCP_CORK, &state, sizeof(state));
+
+Method #2: make any write to immediately send data, even if it's partial:
+
+    int state = 1;
+    setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &state, sizeof(state));
diff --git a/e2fsprogs/old_e2fsprogs/blkid/blkidP.h b/e2fsprogs/old_e2fsprogs/blkid/blkidP.h
index d6b2b42..bbadc8e 100644
--- a/e2fsprogs/old_e2fsprogs/blkid/blkidP.h
+++ b/e2fsprogs/old_e2fsprogs/blkid/blkidP.h
@@ -179,8 +179,4 @@
 extern blkid_dev blkid_new_dev(void);
 extern void blkid_free_dev(blkid_dev dev);
 
-#ifdef __cplusplus
-}
-#endif
-
 #endif
diff --git a/e2fsprogs/old_e2fsprogs/blkid/cache.c b/e2fsprogs/old_e2fsprogs/blkid/cache.c
index d1d2914..251e499 100644
--- a/e2fsprogs/old_e2fsprogs/blkid/cache.c
+++ b/e2fsprogs/old_e2fsprogs/blkid/cache.c
@@ -115,7 +115,7 @@
 			argv[0], ret);
 		exit(1);
 	}
-	if ((ret = blkid_probe_all(cache) < 0))
+	if ((ret = blkid_probe_all(cache)) < 0)
 		fprintf(stderr, "error probing devices\n");
 
 	blkid_put_cache(cache);
diff --git a/e2fsprogs/old_e2fsprogs/blkid/dev.c b/e2fsprogs/old_e2fsprogs/blkid/dev.c
index bb0cc91..260e49c 100644
--- a/e2fsprogs/old_e2fsprogs/blkid/dev.c
+++ b/e2fsprogs/old_e2fsprogs/blkid/dev.c
@@ -153,7 +153,7 @@
 void usage(char *prog)
 {
 	fprintf(stderr, "Usage: %s [-f blkid_file] [-m debug_mask]\n", prog);
-	fprintf(stderr, "\tList all devices and exit\n", prog);
+	fprintf(stderr, "\tList all devices and exit\n");
 	exit(1);
 }
 
@@ -176,7 +176,7 @@
 		case 'm':
 			blkid_debug_mask = strtoul (optarg, &tmp, 0);
 			if (*tmp) {
-				fprintf(stderr, "Invalid debug mask: %d\n",
+				fprintf(stderr, "Invalid debug mask: %s\n",
 					optarg);
 				exit(1);
 			}
diff --git a/e2fsprogs/old_e2fsprogs/blkid/read.c b/e2fsprogs/old_e2fsprogs/blkid/read.c
index f795a5d..feeda51 100644
--- a/e2fsprogs/old_e2fsprogs/blkid/read.c
+++ b/e2fsprogs/old_e2fsprogs/blkid/read.c
@@ -385,7 +385,7 @@
 			continue;
 		end = strlen(buf) - 1;
 		/* Continue reading next line if it ends with a backslash */
-		while (buf[end] == '\\' && end < sizeof(buf) - 2 &&
+		while (end < sizeof(buf) - 2 && buf[end] == '\\' &&
 		       fgets(buf + end, sizeof(buf) - end, file)) {
 			end = strlen(buf) - 1;
 			lineno++;
diff --git a/e2fsprogs/old_e2fsprogs/blkid/tag.c b/e2fsprogs/old_e2fsprogs/blkid/tag.c
index 8337b46..7424ede 100644
--- a/e2fsprogs/old_e2fsprogs/blkid/tag.c
+++ b/e2fsprogs/old_e2fsprogs/blkid/tag.c
@@ -356,7 +356,7 @@
 	fprintf(stderr, "Usage: %s [-f blkid_file] [-m debug_mask] device "
 		"[type value]\n",
 		prog);
-	fprintf(stderr, "\tList all tags for a device and exit\n", prog);
+	fprintf(stderr, "\tList all tags for a device and exit\n");
 	exit(1);
 }
 
@@ -382,7 +382,7 @@
 		case 'm':
 			blkid_debug_mask = strtoul (optarg, &tmp, 0);
 			if (*tmp) {
-				fprintf(stderr, "Invalid debug mask: %d\n",
+				fprintf(stderr, "Invalid debug mask: %s\n",
 					optarg);
 				exit(1);
 			}
@@ -407,7 +407,7 @@
 
 	dev = blkid_get_dev(cache, devname, flags);
 	if (!dev) {
-		fprintf(stderr, "%s: cannot find device in blkid cache\n");
+		fprintf(stderr, "%s: cannot find device in blkid cache\n", devname);
 		exit(1);
 	}
 	if (search_type) {
diff --git a/e2fsprogs/old_e2fsprogs/e2fsck.c b/e2fsprogs/old_e2fsprogs/e2fsck.c
index 373e8ce..8400a92 100644
--- a/e2fsprogs/old_e2fsprogs/e2fsck.c
+++ b/e2fsprogs/old_e2fsprogs/e2fsck.c
@@ -1050,7 +1050,7 @@
 	refcount->size = size;
 	bytes = (size_t) (size * sizeof(struct ea_refcount_el));
 #ifdef DEBUG
-	printf("Refcount allocated %d entries, %d bytes.\n",
+	printf("Refcount allocated %d entries, %lu bytes.\n",
 	       refcount->size, bytes);
 #endif
 	retval = ext2fs_get_mem(bytes, &refcount->list);
@@ -3424,7 +3424,7 @@
 				continue;
 			}
 			if ((inode->i_links_count || inode->i_blocks ||
-			     inode->i_blocks || inode->i_block[0]) &&
+			     inode->i_block[0]) &&
 			    fix_problem(ctx, PR_1_JOURNAL_INODE_NOT_CLEAR,
 					&pctx)) {
 				memset(inode, 0, inode_size);
@@ -12195,11 +12195,7 @@
 void *e2fsck_allocate_memory(e2fsck_t ctx, unsigned int size,
 			     const char *description)
 {
-	void *ret;
-	char buf[256];
-
-	ret = xzalloc(size);
-	return ret;
+	return xzalloc(size);
 }
 
 static char *string_copy(const char *str, int len)
diff --git a/e2fsprogs/old_e2fsprogs/ext2fs/initialize.c b/e2fsprogs/old_e2fsprogs/ext2fs/initialize.c
index da2d151..240335b 100644
--- a/e2fsprogs/old_e2fsprogs/ext2fs/initialize.c
+++ b/e2fsprogs/old_e2fsprogs/ext2fs/initialize.c
@@ -83,7 +83,7 @@
 	if (rsv_gdb > EXT2_ADDR_PER_BLOCK(sb))
 		rsv_gdb = EXT2_ADDR_PER_BLOCK(sb);
 #ifdef RES_GDT_DEBUG
-	printf("max_blocks %lu, rsv_groups = %lu, rsv_gdb = %lu\n",
+	printf("max_blocks %lu, rsv_groups = %lu, rsv_gdb = %u\n",
 	       max_blocks, rsv_groups, rsv_gdb);
 #endif
 
diff --git a/e2fsprogs/old_e2fsprogs/ext2fs/unix_io.c b/e2fsprogs/old_e2fsprogs/ext2fs/unix_io.c
index 474f073..3c95829 100644
--- a/e2fsprogs/old_e2fsprogs/ext2fs/unix_io.c
+++ b/e2fsprogs/old_e2fsprogs/ext2fs/unix_io.c
@@ -544,7 +544,7 @@
 		/* If it's in the cache, use it! */
 		if ((cache = find_cached_block(data, block, &reuse[0]))) {
 #ifdef DEBUG
-			printf("Using cached block %d\n", block);
+			printf("Using cached block %lu\n", block);
 #endif
 			memcpy(cp, cache->buf, channel->block_size);
 			count--;
@@ -560,7 +560,7 @@
 			if (find_cached_block(data, block+i, &reuse[i]))
 				break;
 #ifdef DEBUG
-		printf("Reading %d blocks starting at %d\n", i, block);
+		printf("Reading %d blocks starting at %lu\n", i, block);
 #endif
 		if ((retval = raw_read_blk(channel, data, block, i, cp)))
 			return retval;
diff --git a/e2fsprogs/old_e2fsprogs/fsck.c b/e2fsprogs/old_e2fsprogs/fsck.c
index 3a0743b..91cce97 100644
--- a/e2fsprogs/old_e2fsprogs/fsck.c
+++ b/e2fsprogs/old_e2fsprogs/fsck.c
@@ -1239,7 +1239,6 @@
 						progress_fd = 0;
 					else {
 						goto next_arg;
-						i++;
 					}
 				}
 				break;
diff --git a/e2fsprogs/old_e2fsprogs/mke2fs.c b/e2fsprogs/old_e2fsprogs/mke2fs.c
index 35d717a..ebcb46c 100644
--- a/e2fsprogs/old_e2fsprogs/mke2fs.c
+++ b/e2fsprogs/old_e2fsprogs/mke2fs.c
@@ -239,7 +239,7 @@
 	errcode_t	retval;
 	char		buf[1024];
 
-	sprintf(buf, "badblocks -b %d %s%s%s %d", fs->blocksize,
+	sprintf(buf, "badblocks -b %u %s%s%s %d", fs->blocksize,
 		quiet ? "" : "-s ", (cflag > 1) ? "-w " : "",
 		fs->device_name, fs->super->s_blocks_count);
 	mke2fs_verbose("Running command: %s\n", buf);
@@ -385,7 +385,7 @@
 			     struct progress_struct *progress,
 			     blk_t *ret_blk, int *ret_count)
 {
-	int		j, count, next_update, next_update_incr;
+	int		j, count, next_update;
 	static char	*buf;
 	errcode_t	retval;
 
@@ -403,9 +403,7 @@
 	}
 	/* OK, do the write loop */
 	next_update = 0;
-	next_update_incr = num / 100;
-	if (next_update_incr < 1)
-		next_update_incr = 1;
+
 	for (j=0; j < num; j += STRIDE_LENGTH, blk += STRIDE_LENGTH) {
 		count = num - j;
 		if (count > STRIDE_LENGTH)
diff --git a/e2fsprogs/old_e2fsprogs/tune2fs.c b/e2fsprogs/old_e2fsprogs/tune2fs.c
index 3c3f4af..bbe30e5 100644
--- a/e2fsprogs/old_e2fsprogs/tune2fs.c
+++ b/e2fsprogs/old_e2fsprogs/tune2fs.c
@@ -607,7 +607,7 @@
 	if (e_flag) {
 		sb->s_errors = errors;
 		ext2fs_mark_super_dirty(fs);
-		printf("Setting error behavior to %d\n", errors);
+		printf("Setting error behavior to %u\n", errors);
 	}
 	if (g_flag) {
 		sb->s_def_resgid = resgid;
diff --git a/e2fsprogs/old_e2fsprogs/util.c b/e2fsprogs/old_e2fsprogs/util.c
index a61abc2..3e7ee8e 100644
--- a/e2fsprogs/old_e2fsprogs/util.c
+++ b/e2fsprogs/old_e2fsprogs/util.c
@@ -117,7 +117,7 @@
 		}
 		if (strcmp(token, "device") == 0) {
 			*journal_device = blkid_get_devname(NULL, arg, NULL);
-			if (!journal_device) {
+			if (!*journal_device) {
 				journal_usage++;
 				continue;
 			}
@@ -239,7 +239,7 @@
 		return;
 	}
 	if (!quiet)
-		printf("Creating journal (%ld blocks): ", journal_blocks);
+		printf("Creating journal (%lu blocks): ", journal_blocks);
 	fflush(stdout);
 	retval = ext2fs_add_journal_inode(fs, journal_blocks,
 						  journal_flags);
diff --git a/editors/Config.src b/editors/Config.src
index af1e1de..c6e9d92 100644
--- a/editors/Config.src
+++ b/editors/Config.src
@@ -7,66 +7,6 @@
 
 INSERT
 
-config AWK
-	bool "awk"
-	default y
-	help
-	  Awk is used as a pattern scanning and processing language. This is
-	  the BusyBox implementation of that programming language.
-
-config FEATURE_AWK_LIBM
-	bool "Enable math functions (requires libm)"
-	default y
-	depends on AWK
-	help
-	  Enable math functions of the Awk programming language.
-	  NOTE: This will require libm to be present for linking.
-
-config CMP
-	bool "cmp"
-	default y
-	help
-	  cmp is used to compare two files and returns the result
-	  to standard output.
-
-config DIFF
-	bool "diff"
-	default y
-	help
-	  diff compares two files or directories and outputs the
-	  differences between them in a form that can be given to
-	  the patch command.
-
-config FEATURE_DIFF_LONG_OPTIONS
-	bool "Enable long options"
-	default y
-	depends on DIFF && LONG_OPTS
-	help
-	  Enable use of long options.
-
-config FEATURE_DIFF_DIR
-	bool "Enable directory support"
-	default y
-	depends on DIFF
-	help
-	  This option enables support for directory and subdirectory
-	  comparison.
-
-config ED
-	bool "ed"
-	default y
-	help
-	  The original 1970's Unix text editor, from the days of teletypes.
-	  Small, simple, evil. Part of SUSv3. If you're not already using
-	  this, you don't need it.
-
-config SED
-	bool "sed"
-	default y
-	help
-	  sed is used to perform text transformations on a file
-	  or input from a pipeline.
-
 config FEATURE_ALLOW_EXEC
 	bool "Allow vi and awk to execute shell commands"
 	default y
diff --git a/editors/Kbuild.src b/editors/Kbuild.src
index 8888cba..6b4fb74 100644
--- a/editors/Kbuild.src
+++ b/editors/Kbuild.src
@@ -7,8 +7,3 @@
 lib-y:=
 
 INSERT
-lib-$(CONFIG_AWK)       += awk.o
-lib-$(CONFIG_CMP)       += cmp.o
-lib-$(CONFIG_DIFF)      += diff.o
-lib-$(CONFIG_ED)        += ed.o
-lib-$(CONFIG_SED)       += sed.o
diff --git a/editors/awk.c b/editors/awk.c
index d8c393f..e2527ff 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -7,12 +7,45 @@
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
+//config:config AWK
+//config:	bool "awk"
+//config:	default y
+//config:	help
+//config:	  Awk is used as a pattern scanning and processing language. This is
+//config:	  the BusyBox implementation of that programming language.
+//config:
+//config:config FEATURE_AWK_LIBM
+//config:	bool "Enable math functions (requires libm)"
+//config:	default y
+//config:	depends on AWK
+//config:	help
+//config:	  Enable math functions of the Awk programming language.
+//config:	  NOTE: This will require libm to be present for linking.
+//config:
+//config:config FEATURE_AWK_GNU_EXTENSIONS
+//config:	bool "Enable a few GNU extensions"
+//config:	default y
+//config:	depends on AWK
+//config:	help
+//config:	  Enable a few features from gawk:
+//config:	  * command line option -e AWK_PROGRAM
+//config:	  * simultaneous use of -f and -e on the command line.
+//config:	    This enables the use of awk library files.
+//config:	    Ex: awk -f mylib.awk -e '{print myfunction($1);}' ...
+
+//applet:IF_AWK(APPLET_NOEXEC(awk, awk, BB_DIR_USR_BIN, BB_SUID_DROP, awk))
+
+//kbuild:lib-$(CONFIG_AWK) += awk.o
+
 //usage:#define awk_trivial_usage
 //usage:       "[OPTIONS] [AWK_PROGRAM] [FILE]..."
 //usage:#define awk_full_usage "\n\n"
 //usage:       "	-v VAR=VAL	Set variable"
 //usage:     "\n	-F SEP		Use SEP as field separator"
 //usage:     "\n	-f FILE		Read program from FILE"
+//usage:	IF_FEATURE_AWK_GNU_EXTENSIONS(
+//usage:     "\n	-e AWK_PROGRAM"
+//usage:	)
 
 #include "libbb.h"
 #include "xregex.h"
@@ -38,6 +71,25 @@
 #endif
 
 
+#define OPTSTR_AWK \
+	"F:v:f:" \
+	IF_FEATURE_AWK_GNU_EXTENSIONS("e:") \
+	"W:"
+#define OPTCOMPLSTR_AWK \
+	"v::f::" \
+	IF_FEATURE_AWK_GNU_EXTENSIONS("e::")
+enum {
+	OPTBIT_F,	/* define field separator */
+	OPTBIT_v,	/* define variable */
+	OPTBIT_f,	/* pull in awk program from file */
+	IF_FEATURE_AWK_GNU_EXTENSIONS(OPTBIT_e,) /* -e AWK_PROGRAM */
+	OPTBIT_W,	/* -W ignored */
+	OPT_F = 1 << OPTBIT_F,
+	OPT_v = 1 << OPTBIT_v,
+	OPT_f = 1 << OPTBIT_f,
+	OPT_e = IF_FEATURE_AWK_GNU_EXTENSIONS((1 << OPTBIT_e)) + 0,
+	OPT_W = 1 << OPTBIT_W
+};
 
 #define	MAXVARFMT       240
 #define	MINNVBLOCK      64
@@ -190,7 +242,7 @@
 
 /* combined token classes */
 #define	TC_BINOP   (TC_BINOPX | TC_COMMA | TC_PIPE | TC_IN)
-#define	TC_UNARYOP (TC_UOPPRE | TC_UOPPOST)
+//#define	TC_UNARYOP (TC_UOPPRE | TC_UOPPOST)
 #define	TC_OPERAND (TC_VARIABLE | TC_ARRAY | TC_FUNCTION \
                    | TC_BUILTIN | TC_GETLINE | TC_SEQSTART | TC_STRING | TC_NUMBER)
 
@@ -2015,8 +2067,8 @@
 	char c;
 	const char *s = format;
 
-	if (int_as_int && n == (int)n) {
-		r = snprintf(b, size, "%d", (int)n);
+	if (int_as_int && n == (long long)n) {
+		r = snprintf(b, size, "%lld", (long long)n);
 	} else {
 		do { c = *s; } while (c && *++s);
 		if (strchr("diouxX", c)) {
@@ -2036,7 +2088,7 @@
 	char *b = NULL;
 	char *fmt, *s, *f;
 	const char *s1;
-	int i, j, incr, bsize;
+	int i, j, incr, bsize = 0;
 	char c, c1;
 	var *v, *arg;
 
@@ -2438,11 +2490,11 @@
 		struct {
 			var *v;
 			const char *s;
-		} L;
+		} L = { NULL, NULL };
 		struct {
 			var *v;
 			const char *s;
-		} R;
+		} R = { NULL, NULL };
 		static double L_d;
 		uint32_t opinfo;
 		int opn;
@@ -2661,7 +2713,8 @@
 			var *vbeg, *v;
 			const char *sv_progname;
 
-			if (!op->r.f->body.first)
+			/* The body might be empty, still has to eval the args */
+			if (!op->r.n->info && !op->r.f->body.first)
 				syntax_error(EMSG_UNDEF_FUNC);
 
 			vbeg = v = nvalloc(op->r.f->nargs + 1);
@@ -2732,7 +2785,7 @@
 
 			switch (opn) {
 			case F_in:
-				R_d = (int)L_d;
+				R_d = (long long)L_d;
 				break;
 
 			case F_rn:
@@ -2783,8 +2836,16 @@
 				break;
 
 			case F_le:
-				if (!op1)
+				debug_printf_eval("length: L.s:'%s'\n", L.s);
+				if (!op1) {
 					L.s = getvar_s(intvar[F0]);
+					debug_printf_eval("length: L.s='%s'\n", L.s);
+				}
+				else if (L.v->type & VF_ARRAY) {
+					R_d = L.v->x.array->nel;
+					debug_printf_eval("length: array_len:%d\n", L.v->x.array->nel);
+					break;
+				}
 				R_d = strlen(L.s);
 				break;
 
@@ -2930,7 +2991,7 @@
 			case '%':
 				if (R_d == 0)
 					syntax_error(EMSG_DIV_BY_ZERO);
-				L_d -= (int)(L_d / R_d) * R_d;
+				L_d -= (long long)(L_d / R_d) * R_d;
 				break;
 			}
 			debug_printf_eval("BINARY/REPLACE result:%f\n", L_d);
@@ -3078,6 +3139,9 @@
 	char *opt_F;
 	llist_t *list_v = NULL;
 	llist_t *list_f = NULL;
+#if ENABLE_FEATURE_AWK_GNU_EXTENSIONS
+	llist_t *list_e = NULL;
+#endif
 	int i, j;
 	var *v;
 	var tv;
@@ -3136,47 +3200,51 @@
 			*s1 = '=';
 		}
 	}
-	opt_complementary = "v::f::"; /* -v and -f can occur multiple times */
-	opt = getopt32(argv, "F:v:f:W:", &opt_F, &list_v, &list_f, NULL);
+	opt_complementary = OPTCOMPLSTR_AWK;
+	opt = getopt32(argv, OPTSTR_AWK, &opt_F, &list_v, &list_f, IF_FEATURE_AWK_GNU_EXTENSIONS(&list_e,) NULL);
 	argv += optind;
 	argc -= optind;
-	if (opt & 0x1) { /* -F */
+	if (opt & OPT_W)
+		bb_error_msg("warning: option -W is ignored");
+	if (opt & OPT_F) {
 		unescape_string_in_place(opt_F);
 		setvar_s(intvar[FS], opt_F);
 	}
-	while (list_v) { /* -v */
+	while (list_v) {
 		if (!is_assignment(llist_pop(&list_v)))
 			bb_show_usage();
 	}
-	if (list_f) { /* -f */
-		do {
-			char *s = NULL;
-			FILE *from_file;
+	while (list_f) {
+		char *s = NULL;
+		FILE *from_file;
 
-			g_progname = llist_pop(&list_f);
-			from_file = xfopen_stdin(g_progname);
-			/* one byte is reserved for some trick in next_token */
-			for (i = j = 1; j > 0; i += j) {
-				s = xrealloc(s, i + 4096);
-				j = fread(s + i, 1, 4094, from_file);
-			}
-			s[i] = '\0';
-			fclose(from_file);
-			parse_program(s + 1);
-			free(s);
-		} while (list_f);
-		argc++;
-	} else { // no -f: take program from 1st parameter
-		if (!argc)
-			bb_show_usage();
-		g_progname = "cmd. line";
-		parse_program(*argv++);
+		g_progname = llist_pop(&list_f);
+		from_file = xfopen_stdin(g_progname);
+		/* one byte is reserved for some trick in next_token */
+		for (i = j = 1; j > 0; i += j) {
+			s = xrealloc(s, i + 4096);
+			j = fread(s + i, 1, 4094, from_file);
+		}
+		s[i] = '\0';
+		fclose(from_file);
+		parse_program(s + 1);
+		free(s);
 	}
-	if (opt & 0x8) // -W
-		bb_error_msg("warning: option -W is ignored");
+	g_progname = "cmd. line";
+#if ENABLE_FEATURE_AWK_GNU_EXTENSIONS
+	while (list_e) {
+		parse_program(llist_pop(&list_e));
+	}
+#endif
+	if (!(opt & (OPT_f | OPT_e))) {
+		if (!*argv)
+			bb_show_usage();
+		parse_program(*argv++);
+		argc--;
+	}
 
 	/* fill in ARGV array */
-	setvar_i(intvar[ARGC], argc);
+	setvar_i(intvar[ARGC], argc + 1);
 	setari_u(intvar[ARGV], 0, "awk");
 	i = 0;
 	while (*argv)
diff --git a/editors/cmp.c b/editors/cmp.c
index fbe6b97..a4af6f4 100644
--- a/editors/cmp.c
+++ b/editors/cmp.c
@@ -10,6 +10,17 @@
 /* BB_AUDIT SUSv3 (virtually) compliant -- uses nicer GNU format for -l. */
 /* http://www.opengroup.org/onlinepubs/007904975/utilities/cmp.html */
 
+//config:config CMP
+//config:	bool "cmp"
+//config:	default y
+//config:	help
+//config:	  cmp is used to compare two files and returns the result
+//config:	  to standard output.
+
+//kbuild:lib-$(CONFIG_CMP) += cmp.o
+
+//applet:IF_CMP(APPLET(cmp, BB_DIR_USR_BIN, BB_SUID_DROP))
+
 //usage:#define cmp_trivial_usage
 //usage:       "[-l] [-s] FILE1 [FILE2" IF_DESKTOP(" [SKIP1 [SKIP2]]") "]"
 //usage:#define cmp_full_usage "\n\n"
diff --git a/editors/diff.c b/editors/diff.c
index 0c55820..1961de6 100644
--- a/editors/diff.c
+++ b/editors/diff.c
@@ -76,6 +76,33 @@
  * 6n words for files of length n.
  */
 
+//config:config DIFF
+//config:	bool "diff"
+//config:	default y
+//config:	help
+//config:	  diff compares two files or directories and outputs the
+//config:	  differences between them in a form that can be given to
+//config:	  the patch command.
+//config:
+//config:config FEATURE_DIFF_LONG_OPTIONS
+//config:	bool "Enable long options"
+//config:	default y
+//config:	depends on DIFF && LONG_OPTS
+//config:	help
+//config:	  Enable use of long options.
+//config:
+//config:config FEATURE_DIFF_DIR
+//config:	bool "Enable directory support"
+//config:	default y
+//config:	depends on DIFF
+//config:	help
+//config:	  This option enables support for directory and subdirectory
+//config:	  comparison.
+
+//kbuild:lib-$(CONFIG_DIFF) += diff.o
+
+//applet:IF_DIFF(APPLET(diff, BB_DIR_USR_BIN, BB_SUID_DROP))
+
 //usage:#define diff_trivial_usage
 //usage:       "[-abBdiNqrTstw] [-L LABEL] [-S FILE] [-U LINES] FILE1 FILE2"
 //usage:#define diff_full_usage "\n\n"
diff --git a/editors/ed.c b/editors/ed.c
index dbb5130..3087fb0 100644
--- a/editors/ed.c
+++ b/editors/ed.c
@@ -7,6 +7,18 @@
  * The "ed" built-in command (much simplified)
  */
 
+//config:config ED
+//config:	bool "ed"
+//config:	default y
+//config:	help
+//config:	  The original 1970's Unix text editor, from the days of teletypes.
+//config:	  Small, simple, evil. Part of SUSv3. If you're not already using
+//config:	  this, you don't need it.
+
+//kbuild:lib-$(CONFIG_ED) += ed.o
+
+//applet:IF_ED(APPLET(ed, BB_DIR_BIN, BB_SUID_DROP))
+
 //usage:#define ed_trivial_usage ""
 //usage:#define ed_full_usage ""
 
diff --git a/editors/patch_bbox.c b/editors/patch_bbox.c
index 78aa5fd..aae7b79 100644
--- a/editors/patch_bbox.c
+++ b/editors/patch_bbox.c
@@ -188,8 +188,8 @@
 			unsigned src_last_line = 1;
 			unsigned dst_last_line = 1;
 
-			if ((sscanf(patch_line, "@@ -%d,%d +%d,%d", &src_beg_line, &src_last_line, &dst_beg_line, &dst_last_line) < 3)
-			 && (sscanf(patch_line, "@@ -%d +%d,%d", &src_beg_line, &dst_beg_line, &dst_last_line) < 2)
+			if ((sscanf(patch_line, "@@ -%u,%u +%u,%u", &src_beg_line, &src_last_line, &dst_beg_line, &dst_last_line) < 3)
+			 && (sscanf(patch_line, "@@ -%u +%u,%u", &src_beg_line, &dst_beg_line, &dst_last_line) < 2)
 			) {
 				/* No more hunks for this file */
 				break;
diff --git a/editors/sed.c b/editors/sed.c
index f8ca5d3..e18e48a 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -23,9 +23,6 @@
  * resulting sed_cmd_t structures are appended to a linked list
  * (G.sed_cmd_head/G.sed_cmd_tail).
  *
- * add_input_file() adds a FILE* to the list of input files.  We need to
- * know all input sources ahead of time to find the last line for the $ match.
- *
  * process_files() does actual sedding, reading data lines from each input FILE*
  * (which could be stdin) and applying the sed command list (sed_cmd_head) to
  * each of the resulting lines.
@@ -58,16 +55,27 @@
  * http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
  */
 
+//config:config SED
+//config:	bool "sed"
+//config:	default y
+//config:	help
+//config:	  sed is used to perform text transformations on a file
+//config:	  or input from a pipeline.
+
+//kbuild:lib-$(CONFIG_SED) += sed.o
+
+//applet:IF_SED(APPLET(sed, BB_DIR_BIN, BB_SUID_DROP))
+
 //usage:#define sed_trivial_usage
-//usage:       "[-inr] [-f FILE]... [-e CMD]... [FILE]...\n"
-//usage:       "or: sed [-inr] CMD [FILE]..."
+//usage:       "[-inrE] [-f FILE]... [-e CMD]... [FILE]...\n"
+//usage:       "or: sed [-inrE] CMD [FILE]..."
 //usage:#define sed_full_usage "\n\n"
 //usage:       "	-e CMD	Add CMD to sed commands to be executed"
 //usage:     "\n	-f FILE	Add FILE contents to sed commands to be executed"
 //usage:     "\n	-i[SFX]	Edit files in-place (otherwise sends to stdout)"
 //usage:     "\n		Optionally back files up, appending SFX"
 //usage:     "\n	-n	Suppress automatic printing of pattern space"
-//usage:     "\n	-r	Use extended regex syntax"
+//usage:     "\n	-r,-E	Use extended regex syntax"
 //usage:     "\n"
 //usage:     "\nIf no -e or -f, the first non-option argument is the sed command string."
 //usage:     "\nRemaining arguments are input files (stdin if none)."
@@ -124,12 +132,15 @@
 struct globals {
 	/* options */
 	int be_quiet, regex_type;
+
 	FILE *nonstdout;
 	char *outname, *hold_space;
+	smallint exitcode;
 
-	/* List of input files */
-	int input_file_count, current_input_file;
-	FILE **input_file_list;
+	/* list of input files */
+	int current_input_file, last_input_file;
+	char **input_file_list;
+	FILE *current_fp;
 
 	regmatch_t regmatch[10];
 	regex_t *previous_regex_ptr;
@@ -137,7 +148,7 @@
 	/* linked list of sed commands */
 	sed_cmd_t *sed_cmd_head, **sed_cmd_tail;
 
-	/* Linked list of append lines */
+	/* linked list of append lines */
 	llist_t *append_head;
 
 	char *add_cmd_line;
@@ -189,8 +200,8 @@
 
 	free(G.hold_space);
 
-	while (G.current_input_file < G.input_file_count)
-		fclose(G.input_file_list[G.current_input_file++]);
+	if (G.current_fp)
+		fclose(G.current_fp);
 }
 #else
 void sed_free_and_close_stuff(void);
@@ -330,7 +341,7 @@
 		next = index_of_next_unescaped_regexp_delim(delimiter, ++pos);
 		temp = copy_parsing_escapes(pos, next);
 		*regex = xzalloc(sizeof(regex_t));
-		xregcomp(*regex, temp, G.regex_type|REG_NEWLINE);
+		xregcomp(*regex, temp, G.regex_type);
 		free(temp);
 		/* Move position to next character after last delimiter */
 		pos += (next+1);
@@ -370,7 +381,7 @@
 
 	/*
 	 * A substitution command should look something like this:
-	 *    s/match/replace/ #gIpw
+	 *    s/match/replace/ #giIpw
 	 *    ||     |        |||
 	 *    mandatory       optional
 	 */
@@ -418,6 +429,7 @@
 			break;
 		}
 		/* Ignore case (gnu exension) */
+		case 'i':
 		case 'I':
 			cflags |= REG_ICASE;
 			break;
@@ -649,6 +661,12 @@
 		sed_cmd->cmd = *cmdstr++;
 		cmdstr = parse_cmd_args(sed_cmd, cmdstr);
 
+		/* cmdstr now points past args.
+		 * GNU sed requires a separator, if there are more commands,
+		 * else it complains "char N: extra characters after command".
+		 * Example: "sed 'p;d'". We also allow "sed 'pd'".
+		 */
+
 		/* Add the command to the command array */
 		*G.sed_cmd_tail = sed_cmd;
 		G.sed_cmd_tail = &sed_cmd->next;
@@ -842,81 +860,7 @@
 
 static void append(char *s)
 {
-	llist_add_to_end(&G.append_head, xstrdup(s));
-}
-
-static void flush_append(void)
-{
-	char *data;
-
-	/* Output appended lines. */
-	while ((data = (char *)llist_pop(&G.append_head))) {
-		fprintf(G.nonstdout, "%s\n", data);
-		free(data);
-	}
-}
-
-static void add_input_file(FILE *file)
-{
-	G.input_file_list = xrealloc_vector(G.input_file_list, 2, G.input_file_count);
-	G.input_file_list[G.input_file_count++] = file;
-}
-
-/* Get next line of input from G.input_file_list, flushing append buffer and
- * noting if we ran out of files without a newline on the last line we read.
- */
-enum {
-	NO_EOL_CHAR = 1,
-	LAST_IS_NUL = 2,
-};
-static char *get_next_line(char *gets_char)
-{
-	char *temp = NULL;
-	int len;
-	char gc;
-
-	flush_append();
-
-	/* will be returned if last line in the file
-	 * doesn't end with either '\n' or '\0' */
-	gc = NO_EOL_CHAR;
-	while (G.current_input_file < G.input_file_count) {
-		FILE *fp = G.input_file_list[G.current_input_file];
-		/* Read line up to a newline or NUL byte, inclusive,
-		 * return malloc'ed char[]. length of the chunk read
-		 * is stored in len. NULL if EOF/error */
-		temp = bb_get_chunk_from_file(fp, &len);
-		if (temp) {
-			/* len > 0 here, it's ok to do temp[len-1] */
-			char c = temp[len-1];
-			if (c == '\n' || c == '\0') {
-				temp[len-1] = '\0';
-				gc = c;
-				if (c == '\0') {
-					int ch = fgetc(fp);
-					if (ch != EOF)
-						ungetc(ch, fp);
-					else
-						gc = LAST_IS_NUL;
-				}
-			}
-			/* else we put NO_EOL_CHAR into *gets_char */
-			break;
-
-		/* NB: I had the idea of peeking next file(s) and returning
-		 * NO_EOL_CHAR only if it is the *last* non-empty
-		 * input file. But there is a case where this won't work:
-		 * file1: "a woo\nb woo"
-		 * file2: "c no\nd no"
-		 * sed -ne 's/woo/bang/p' input1 input2 => "a bang\nb bang"
-		 * (note: *no* newline after "b bang"!) */
-		}
-		/* Close this file and advance to next one */
-		fclose(fp);
-		G.current_input_file++;
-	}
-	*gets_char = gc;
-	return temp;
+	llist_add_to_end(&G.append_head, s);
 }
 
 /* Output line of text. */
@@ -933,6 +877,10 @@
  * bbox:
  * 00000000  74 68 7a 6e 67 79 61 67  61 7a 6e                 |thzngyagazn|
  */
+enum {
+	NO_EOL_CHAR = 1,
+	LAST_IS_NUL = 2,
+};
 static void puts_maybe_newline(char *s, FILE *file, char *last_puts_char, char last_gets_char)
 {
 	char lpc = *last_puts_char;
@@ -967,6 +915,82 @@
 	*last_puts_char = lpc;
 }
 
+static void flush_append(char *last_puts_char, char last_gets_char)
+{
+	char *data;
+
+	/* Output appended lines. */
+	while ((data = (char *)llist_pop(&G.append_head))) {
+		puts_maybe_newline(data, G.nonstdout, last_puts_char, last_gets_char);
+		free(data);
+	}
+}
+
+/* Get next line of input from G.input_file_list, flushing append buffer and
+ * noting if we ran out of files without a newline on the last line we read.
+ */
+static char *get_next_line(char *gets_char, char *last_puts_char, char last_gets_char)
+{
+	char *temp = NULL;
+	int len;
+	char gc;
+
+	flush_append(last_puts_char, last_gets_char);
+
+	/* will be returned if last line in the file
+	 * doesn't end with either '\n' or '\0' */
+	gc = NO_EOL_CHAR;
+	for (; G.current_input_file <= G.last_input_file; G.current_input_file++) {
+		FILE *fp = G.current_fp;
+		if (!fp) {
+			const char *path = G.input_file_list[G.current_input_file];
+			fp = stdin;
+			if (path != bb_msg_standard_input) {
+				fp = fopen_or_warn(path, "r");
+				if (!fp) {
+					G.exitcode = EXIT_FAILURE;
+					continue;
+				}
+			}
+			G.current_fp = fp;
+		}
+		/* Read line up to a newline or NUL byte, inclusive,
+		 * return malloc'ed char[]. length of the chunk read
+		 * is stored in len. NULL if EOF/error */
+		temp = bb_get_chunk_from_file(fp, &len);
+		if (temp) {
+			/* len > 0 here, it's ok to do temp[len-1] */
+			char c = temp[len-1];
+			if (c == '\n' || c == '\0') {
+				temp[len-1] = '\0';
+				gc = c;
+				if (c == '\0') {
+					int ch = fgetc(fp);
+					if (ch != EOF)
+						ungetc(ch, fp);
+					else
+						gc = LAST_IS_NUL;
+				}
+			}
+			/* else we put NO_EOL_CHAR into *gets_char */
+			break;
+
+		/* NB: I had the idea of peeking next file(s) and returning
+		 * NO_EOL_CHAR only if it is the *last* non-empty
+		 * input file. But there is a case where this won't work:
+		 * file1: "a woo\nb woo"
+		 * file2: "c no\nd no"
+		 * sed -ne 's/woo/bang/p' input1 input2 => "a bang\nb bang"
+		 * (note: *no* newline after "b bang"!) */
+		}
+		/* Close this file and advance to next one */
+		fclose_if_not_stdin(fp);
+		G.current_fp = NULL;
+	}
+	*gets_char = gc;
+	return temp;
+}
+
 #define sed_puts(s, n) (puts_maybe_newline(s, G.nonstdout, &last_puts_char, n))
 
 static int beg_match(sed_cmd_t *sed_cmd, const char *pattern_space)
@@ -989,7 +1013,7 @@
 	int substituted;
 
 	/* Prime the pump */
-	next_line = get_next_line(&next_gets_char);
+	next_line = get_next_line(&next_gets_char, &last_puts_char, '\n' /*last_gets_char*/);
 
 	/* Go through every line in each file */
  again:
@@ -1003,7 +1027,7 @@
 
 	/* Read one line in advance so we can act on the last line,
 	 * the '$' address */
-	next_line = get_next_line(&next_gets_char);
+	next_line = get_next_line(&next_gets_char, &last_puts_char, last_gets_char);
 	linenum++;
 
 	/* For every line, go through all the commands */
@@ -1175,7 +1199,7 @@
 
 		/* Append line to linked list to be printed later */
 		case 'a':
-			append(sed_cmd->string);
+			append(xstrdup(sed_cmd->string));
 			break;
 
 		/* Insert text before this line */
@@ -1197,11 +1221,10 @@
 			rfile = fopen_for_read(sed_cmd->string);
 			if (rfile) {
 				char *line;
-
 				while ((line = xmalloc_fgetline(rfile))
 						!= NULL)
 					append(line);
-				xprint_and_close_file(rfile);
+				fclose(rfile);
 			}
 
 			break;
@@ -1222,7 +1245,7 @@
 				free(pattern_space);
 				pattern_space = next_line;
 				last_gets_char = next_gets_char;
-				next_line = get_next_line(&next_gets_char);
+				next_line = get_next_line(&next_gets_char, &last_puts_char, last_gets_char);
 				substituted = 0;
 				linenum++;
 				break;
@@ -1258,7 +1281,7 @@
 			pattern_space[len] = '\n';
 			strcpy(pattern_space + len+1, next_line);
 			last_gets_char = next_gets_char;
-			next_line = get_next_line(&next_gets_char);
+			next_line = get_next_line(&next_gets_char, &last_puts_char, last_gets_char);
 			linenum++;
 			break;
 		}
@@ -1362,7 +1385,7 @@
 
 	/* Delete and such jump here. */
  discard_line:
-	flush_append();
+	flush_append(&last_puts_char, last_gets_char);
 	free(pattern_space);
 
 	goto again;
@@ -1371,7 +1394,7 @@
 /* It is possible to have a command line argument with embedded
  * newlines.  This counts as multiple command lines.
  * However, newline can be escaped: 's/e/z\<newline>z/'
- * We check for this.
+ * add_cmd() handles this.
  */
 
 static void add_cmd_block(char *cmdstr)
@@ -1381,22 +1404,8 @@
 	cmdstr = sv = xstrdup(cmdstr);
 	do {
 		eol = strchr(cmdstr, '\n');
- next:
-		if (eol) {
-			/* Count preceding slashes */
-			int slashes = 0;
-			char *sl = eol;
-
-			while (sl != cmdstr && *--sl == '\\')
-				slashes++;
-			/* Odd number of preceding slashes - newline is escaped */
-			if (slashes & 1) {
-				overlapping_strcpy(eol - 1, eol);
-				eol = strchr(eol, '\n');
-				goto next;
-			}
+		if (eol)
 			*eol = '\0';
-		}
 		add_cmd(cmdstr);
 		cmdstr = eol + 1;
 	} while (eol);
@@ -1421,8 +1430,6 @@
 		"file\0"            Required_argument   "f";
 #endif
 
-	int status = EXIT_SUCCESS;
-
 	INIT_G();
 
 	/* destroy command strings on exit */
@@ -1443,15 +1450,21 @@
 	IF_LONG_OPTS(applet_long_options = sed_longopts);
 
 	/* -i must be first, to match OPT_in_place definition */
-	opt = getopt32(argv, "i::rne:f:", &opt_i, &opt_e, &opt_f,
+	/* -E is a synonym of -r:
+	 * GNU sed 4.2.1 mentions it in neither --help
+	 * nor manpage, but does recognize it.
+	 */
+	opt = getopt32(argv, "i::rEne:f:", &opt_i, &opt_e, &opt_f,
 			    &G.be_quiet); /* counter for -n */
 	//argc -= optind;
 	argv += optind;
 	if (opt & OPT_in_place) { // -i
 		atexit(cleanup_outname);
 	}
-	if (opt & 0x2) G.regex_type |= REG_EXTENDED; // -r
-	//if (opt & 0x4) G.be_quiet++; // -n
+	if (opt & (2|4))
+		G.regex_type |= REG_EXTENDED; // -r or -E
+	//if (opt & 8)
+	//	G.be_quiet++; // -n (implemented with a counter instead)
 	while (opt_e) { // -e
 		add_cmd_block(llist_pop(&opt_e));
 	}
@@ -1466,7 +1479,7 @@
 		fclose(cmdfile);
 	}
 	/* if we didn't get a pattern from -e or -f, use argv[0] */
-	if (!(opt & 0x18)) {
+	if (!(opt & 0x30)) {
 		if (!*argv)
 			bb_show_usage();
 		add_cmd_block(*argv++);
@@ -1480,42 +1493,38 @@
 	/* argv[0..(argc-1)] should be names of file to process. If no
 	 * files were specified or '-' was specified, take input from stdin.
 	 * Otherwise, we process all the files specified. */
-	if (argv[0] == NULL) {
+	G.input_file_list = argv;
+	if (!argv[0]) {
 		if (opt & OPT_in_place)
 			bb_error_msg_and_die(bb_msg_requires_arg, "-i");
-		add_input_file(stdin);
+		argv[0] = (char*)bb_msg_standard_input;
+		/* G.last_input_file = 0; - already is */
 	} else {
-		int i;
+		goto start;
 
-		for (i = 0; argv[i]; i++) {
+		for (; *argv; argv++) {
 			struct stat statbuf;
 			int nonstdoutfd;
-			FILE *file;
 			sed_cmd_t *sed_cmd;
 
-			if (LONE_DASH(argv[i]) && !(opt & OPT_in_place)) {
-				add_input_file(stdin);
-				process_files();
-				continue;
-			}
-			file = fopen_or_warn(argv[i], "r");
-			if (!file) {
-				status = EXIT_FAILURE;
-				continue;
-			}
-			add_input_file(file);
+			G.last_input_file++;
+ start:
 			if (!(opt & OPT_in_place)) {
+				if (LONE_DASH(*argv)) {
+					*argv = (char*)bb_msg_standard_input;
+					process_files();
+				}
 				continue;
 			}
 
 			/* -i: process each FILE separately: */
 
-			G.outname = xasprintf("%sXXXXXX", argv[i]);
+			G.outname = xasprintf("%sXXXXXX", *argv);
 			nonstdoutfd = xmkstemp(G.outname);
 			G.nonstdout = xfdopen_for_write(nonstdoutfd);
 
 			/* Set permissions/owner of output file */
-			fstat(fileno(file), &statbuf);
+			stat(*argv, &statbuf);
 			/* chmod'ing AFTER chown would preserve suid/sgid bits,
 			 * but GNU sed 4.2.1 does not preserve them either */
 			fchmod(nonstdoutfd, statbuf.st_mode);
@@ -1526,12 +1535,12 @@
 			G.nonstdout = stdout;
 
 			if (opt_i) {
-				char *backupname = xasprintf("%s%s", argv[i], opt_i);
-				xrename(argv[i], backupname);
+				char *backupname = xasprintf("%s%s", *argv, opt_i);
+				xrename(*argv, backupname);
 				free(backupname);
 			}
-			/* else unlink(argv[i]); - rename below does this */
-			xrename(G.outname, argv[i]); //TODO: rollback backup on error?
+			/* else unlink(*argv); - rename below does this */
+			xrename(G.outname, *argv); //TODO: rollback backup on error?
 			free(G.outname);
 			G.outname = NULL;
 
@@ -1541,12 +1550,13 @@
 			}
 		}
 		/* Here, to handle "sed 'cmds' nonexistent_file" case we did:
-		 * if (G.current_input_file >= G.input_file_count)
-		 *	return status;
+		 * if (G.current_input_file[G.current_input_file] == NULL)
+		 *	return G.exitcode;
 		 * but it's not needed since process_files() works correctly
 		 * in this case too. */
 	}
+
 	process_files();
 
-	return status;
+	return G.exitcode;
 }
diff --git a/editors/vi.c b/editors/vi.c
index 5d214e2..ccf53a9 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -156,7 +156,7 @@
 #include "libbb.h"
 /* Should be after libbb.h: on some systems regex.h needs sys/types.h: */
 #if ENABLE_FEATURE_VI_REGEX_SEARCH
-# include <regex.h>
+# include "xregex.h"
 #endif
 
 /* the CRASHME code is unmaintained, and doesn't currently build */
@@ -478,6 +478,7 @@
 static void show_status_line(void);	// put a message on the bottom line
 static void status_line(const char *, ...);     // print to status buf
 static void status_line_bold(const char *, ...);
+static void status_line_bold_errno(const char *fn);
 static void not_implemented(const char *); // display "Not implemented" message
 static int format_edit_status(void);	// format file status on status line
 static void redraw(int);	// force a full screen refresh
@@ -1051,7 +1052,7 @@
 #endif
 		// how many lines in text[]?
 		li = count_lines(text, end - 1);
-		status_line("\"%s\"%s"
+		status_line("'%s'%s"
 			IF_FEATURE_VI_READONLY("%s")
 			" %dL, %dC", current_filename,
 			(file_size(fn) < 0 ? " [New file]" : ""),
@@ -1167,7 +1168,7 @@
 			goto ret;	// nothing was inserted
 		// how many lines in text[]?
 		li = count_lines(q, q + ch - 1);
-		status_line("\"%s\""
+		status_line("'%s'"
 			IF_FEATURE_VI_READONLY("%s")
 			" %dL, %dC", fn,
 			IF_FEATURE_VI_READONLY((readonly_mode ? " [Readonly]" : ""),)
@@ -1300,7 +1301,7 @@
 		}
 #if ENABLE_FEATURE_VI_READONLY
 		if (readonly_mode && !useforce) {
-			status_line_bold("\"%s\" File is read only", fn);
+			status_line_bold("'%s' is read only", fn);
 			goto ret;
 		}
 #endif
@@ -1323,9 +1324,9 @@
 		}
 		if (l < 0) {
 			if (l == -1)
-				status_line_bold("\"%s\" %s", fn, strerror(errno));
+				status_line_bold_errno(fn);
 		} else {
-			status_line("\"%s\" %dL, %dC", fn, li, l);
+			status_line("'%s' %dL, %dC", fn, li, l);
 			if (q == text && r == end - 1 && l == ch) {
 				file_modified = 0;
 				last_file_modified = -1;
@@ -1708,65 +1709,53 @@
 // search for pattern starting at p
 static char *char_search(char *p, const char *pat, int dir, int range)
 {
-	char *q;
 	struct re_pattern_buffer preg;
+	const char *err;
+	char *q;
 	int i;
 	int size;
 
 	re_syntax_options = RE_SYNTAX_POSIX_EXTENDED;
-	preg.translate = 0;
-	preg.fastmap = 0;
-	preg.buffer = 0;
-	preg.allocated = 0;
+	if (ignorecase)
+		re_syntax_options = RE_SYNTAX_POSIX_EXTENDED | RE_ICASE;
+
+	memset(&preg, 0, sizeof(preg));
+	err = re_compile_pattern(pat, strlen(pat), &preg);
+	if (err != NULL) {
+		status_line_bold("bad search pattern '%s': %s", pat, err);
+		return p;
+	}
 
 	// assume a LIMITED forward search
-	q = next_line(p);
-	q = end_line(q);
 	q = end - 1;
-	if (dir == BACK) {
-		q = prev_line(p);
+	if (dir == BACK)
 		q = text;
-	}
-	// count the number of chars to search over, forward or backward
-	size = q - p;
-	if (size < 0)
-		size = p - q;
 	// RANGE could be negative if we are searching backwards
 	range = q - p;
-
-	q = (char *)re_compile_pattern(pat, strlen(pat), (struct re_pattern_buffer *)&preg);
-	if (q != 0) {
-		// The pattern was not compiled
-		status_line_bold("bad search pattern: \"%s\": %s", pat, q);
-		i = 0;			// return p if pattern not compiled
-		goto cs1;
-	}
-
 	q = p;
+	size = range;
 	if (range < 0) {
+		size = -size;
 		q = p - size;
 		if (q < text)
 			q = text;
 	}
 	// search for the compiled pattern, preg, in p[]
-	// range < 0-  search backward
-	// range > 0-  search forward
+	// range < 0: search backward
+	// range > 0: search forward
 	// 0 < start < size
-	// re_search() < 0  not found or error
-	// re_search() > 0  index of found pattern
-	//            struct pattern    char     int    int    int     struct reg
-	// re_search (*pattern_buffer,  *string, size,  start, range,  *regs)
-	i = re_search(&preg, q, size, 0, range, 0);
-	if (i == -1) {
-		p = 0;
-		i = 0;			// return NULL if pattern not found
-	}
- cs1:
-	if (dir == FORWARD) {
+	// re_search() < 0: not found or error
+	// re_search() >= 0: index of found pattern
+	//           struct pattern   char     int   int    int    struct reg
+	// re_search(*pattern_buffer, *string, size, start, range, *regs)
+	i = re_search(&preg, q, size, /*start:*/ 0, range, /*struct re_registers*:*/ NULL);
+	regfree(&preg);
+	if (i < 0)
+		return NULL;
+	if (dir == FORWARD)
 		p = p + i;
-	} else {
+	else
 		p = p - i;
-	}
 	return p;
 }
 
@@ -1791,7 +1780,7 @@
 
 	len = strlen(pat);
 	if (dir == FORWARD) {
-		stop = end - 1;	// assume range is p - end-1
+		stop = end - 1;	// assume range is p..end-1
 		if (range == LIMITED)
 			stop = next_line(p);	// range is to next line
 		for (start = p; start < stop; start++) {
@@ -1800,7 +1789,7 @@
 			}
 		}
 	} else if (dir == BACK) {
-		stop = text;	// assume range is text - p
+		stop = text;	// assume range is text..p
 		if (range == LIMITED)
 			stop = prev_line(p);	// range is to prev line
 		for (start = p - len; start >= stop; start--) {
@@ -2505,12 +2494,12 @@
 
 	/* Validate file */
 	if (stat(fn, &statbuf) < 0) {
-		status_line_bold("\"%s\" %s", fn, strerror(errno));
+		status_line_bold_errno(fn);
 		goto fi0;
 	}
 	if (!S_ISREG(statbuf.st_mode)) {
 		// This is not a regular file
-		status_line_bold("\"%s\" Not a regular file", fn);
+		status_line_bold("'%s' is not a regular file", fn);
 		goto fi0;
 	}
 	if (p < text || p > end) {
@@ -2521,19 +2510,19 @@
 	// read file to buffer
 	fd = open(fn, O_RDONLY);
 	if (fd < 0) {
-		status_line_bold("\"%s\" %s", fn, strerror(errno));
+		status_line_bold_errno(fn);
 		goto fi0;
 	}
-	size = statbuf.st_size;
+	size = (statbuf.st_size < INT_MAX ? (int)statbuf.st_size : INT_MAX);
 	p += text_hole_make(p, size);
 	cnt = safe_read(fd, p, size);
 	if (cnt < 0) {
-		status_line_bold("\"%s\" %s", fn, strerror(errno));
+		status_line_bold_errno(fn);
 		p = text_hole_delete(p, p + size - 1);	// un-do buffer insert
 	} else if (cnt < size) {
 		// There was a partial read, shrink unused space text[]
-		p = text_hole_delete(p + cnt, p + (size - cnt) - 1);	// un-do buffer insert
-		status_line_bold("can't read all of file \"%s\"", fn);
+		p = text_hole_delete(p + cnt, p + size - 1);	// un-do buffer insert
+		status_line_bold("can't read '%s'", fn);
 	}
 	if (cnt >= size)
 		file_modified++;
@@ -2719,6 +2708,11 @@
 	have_status_msg = 1 + sizeof(ESC_BOLD_TEXT) + sizeof(ESC_NORM_TEXT) - 2;
 }
 
+static void status_line_bold_errno(const char *fn)
+{
+	status_line_bold("'%s' %s", fn, strerror(errno));
+}
+
 // format status buffer
 static void status_line(const char *format, ...)
 {
@@ -3471,7 +3465,7 @@
 			} else {
 				file_modified = 0;
 				last_file_modified = -1;
-				status_line("\"%s\" %dL, %dC", current_filename, count_lines(text, end - 1), cnt);
+				status_line("'%s' %dL, %dC", current_filename, count_lines(text, end - 1), cnt);
 				if (p[0] == 'x' || p[1] == 'q' || p[1] == 'n'
 				 || p[0] == 'X' || p[1] == 'Q' || p[1] == 'N'
 				) {
@@ -3669,7 +3663,7 @@
 		}
 		if (file_modified) {
 			if (ENABLE_FEATURE_VI_READONLY && readonly_mode) {
-				status_line_bold("\"%s\" File is read only", current_filename);
+				status_line_bold("'%s' is read only", current_filename);
 				break;
 			}
 			cnt = file_write(current_filename, text, end - 1);
diff --git a/examples/inittab b/examples/inittab
index c4e0af5..01ceaef 100644
--- a/examples/inittab
+++ b/examples/inittab
@@ -15,10 +15,7 @@
 #	the specified process to run on.  The contents of this field are
 #	appended to "/dev/" and used as-is.  There is no need for this field to
 #	be unique, although if it isn't you may have strange results.  If this
-#	field is left blank, it is completely ignored.  Also note that if
-#	BusyBox detects that a serial console is in use, then all entries
-#	containing non-empty id fields will be ignored.  BusyBox init does
-#	nothing with utmp.  We don't need no stinkin' utmp.
+#	field is left blank, then the init's stdin/out will be used.
 #
 # <runlevels>: The runlevels field is completely ignored.
 #
@@ -43,9 +40,6 @@
 #         ::shutdown:/sbin/swapoff -a
 #         ::shutdown:/bin/umount -a -r
 #         ::restart:/sbin/init
-#
-# if it detects that /dev/console is _not_ a serial console, it will
-# also run:
 #         tty2::askfirst:/bin/sh
 #         tty3::askfirst:/bin/sh
 #         tty4::askfirst:/bin/sh
diff --git a/examples/mdev.conf.change_blockdev.sh b/examples/mdev.conf.change_blockdev.sh
new file mode 100755
index 0000000..512e43f
--- /dev/null
+++ b/examples/mdev.conf.change_blockdev.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# Seconds to try to reread partition table
+cnt=60
+
+exec </dev/null
+exec >"/tmp/${0##*/}.$$.out"
+exec 2>&1
+
+(
+echo "Running: $0"
+echo "Env:"
+env | sort
+
+while sleep 1; test $cnt != 0; do
+	echo "Trying to reread partition table on $DEVNAME ($cnt)"
+	: $((cnt--))
+	# If device node doesn't exist, it means the device was removed.
+	# Stop trying.
+	test -e "$DEVNAME" || { echo "$DEVNAME doesn't exist, aborting"; exit 1; }
+	#echo "$DEVNAME exists"
+	if blockdev --rereadpt "$DEVNAME"; then
+		echo "blockdev --rereadpt succeeded"
+		exit 0
+	fi
+	echo "blockdev --rereadpt failed, exit code: $?"
+done
+echo "Timed out"
+) &
diff --git a/examples/mdev_fat.conf b/examples/mdev_fat.conf
index ceba3a7..f2a15f3 100644
--- a/examples/mdev_fat.conf
+++ b/examples/mdev_fat.conf
@@ -7,9 +7,9 @@
 # instead of the default 0:0 660.
 #
 # Syntax:
-# [-]devicename_regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
-# [-]$ENVVAR=regex    user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
-# [-]@maj,min[-min2]  user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
+# [-][ENVVAR=regex;]...devicename_regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
+# [-][ENVVAR=regex;]...@maj,min[-min2]  user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
+# [-]$ENVVAR=regex                      user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
 #
 # [-]: do not stop on this match, continue reading mdev.conf
 # =: move, >: move and create a symlink
@@ -53,6 +53,7 @@
 fd[0-9]*	root:floppy 660
 
 # net devices
+SUBSYSTEM=net;.* root:root 600 @nameif
 tun[0-9]*	root:root 600 =net/
 tap[0-9]*	root:root 600 =net/
 
@@ -111,3 +112,33 @@
 # zaptel devices
 zap(.*)		root:dialout 660 =zap/%1
 dahdi!(.*)	root:dialout 660 =dahdi/%1
+
+# HTC Android
+# Attaching it via USB cable causes a flurry of activity:
+#
+# mdev[1271]: 48.639459 ACTION:add SUBSYSTEM:usb DEVNAME:bus/usb/001/009 DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5
+# mdev[1271]: mknod bus/usb/001/009 (189,8) 20660 0:0
+# mdev[1272]: 48.642354 ACTION:add SUBSYSTEM:usb DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0
+# mdev[1272]: running: modprobe "$MODALIAS"
+# mdev[1273]: 48.650078 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11
+# mdev[1274]: 48.651297 ACTION:add SUBSYSTEM:scsi_host DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/scsi_host/host11
+# mdev[1275]: 49.649422 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0
+# mdev[1276]: 49.650703 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0
+# mdev[1276]: running: modprobe "$MODALIAS"
+# modprobe: module scsi:t-0x00 not found in modules.dep
+# mdev[1277]: 49.658002 ACTION:add SUBSYSTEM:scsi_disk DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/scsi_disk/11:0:0:0
+# mdev[1278]: 49.659244 ACTION:add SUBSYSTEM:scsi_device DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/scsi_device/11:0:0:
+# mdev[1279]: 49.660535 ACTION:add SUBSYSTEM:bsg DEVNAME:bsg/11:0:0:0 DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/bsg/11:0:0:0
+# mdev[1279]: mknod bsg/11:0:0:0 (253,1) 20660 0:0
+# mdev[1280]: 49.663516 ACTION:add SUBSYSTEM:bdi DEVNAME:(null) DEVPATH:/devices/virtual/bdi/8:16
+# mdev[1281]: 49.664748 ACTION:add SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
+# mdev[1281]: mknod sdb (8,16) 60660 0:0
+# mdev[1282]: 49.677597 ACTION:change SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
+# mdev[1283]: 50.692936 ACTION:change SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
+#
+# We are hooking to the last events. To avoid having two scripts running,
+# we check for DISK_MEDIA_CHANGE=1 (prev to last event has it,
+# and it's the _only_ difference in env for these two events as of kernel 3.7.7)
+# Unfortunately, there is no event for "user pressed [Turn USB storage] btn"!
+# Script merely backgrounds and tries to rescan partition table for 1 minute:
+ACTION=change;SUBSYSTEM=block;DISK_MEDIA_CHANGE=1;.*    0:0 660 */etc/mdev.conf.change_blockdev.sh
diff --git a/examples/udhcp/simple.script b/examples/udhcp/simple.script
index 40ee738..2a917eb 100755
--- a/examples/udhcp/simple.script
+++ b/examples/udhcp/simple.script
@@ -29,18 +29,23 @@
 			metric=0
 			for i in $router ; do
 				echo "Adding router $i"
-				route add default gw $i dev $interface metric $((metric++))
+				route add default gw $i dev $interface metric $metric
+				: $(( metric += 1 ))
 			done
 		fi
 
 		echo "Recreating $RESOLV_CONF"
-		echo -n > $RESOLV_CONF-$$
-		[ -n "$domain" ] && echo "search $domain" >> $RESOLV_CONF-$$
+		# If the file is a symlink somewhere (like /etc/resolv.conf
+		# pointing to /run/resolv.conf), make sure things work.
+		realconf=$(readlink -f "$RESOLV_CONF" 2>/dev/null || echo "$RESOLV_CONF")
+		tmpfile="$realconf-$$"
+		> "$tmpfile"
+		[ -n "$domain" ] && echo "search $domain" >> "$tmpfile"
 		for i in $dns ; do
 			echo " Adding DNS server $i"
-			echo "nameserver $i" >> $RESOLV_CONF-$$
+			echo "nameserver $i" >> "$tmpfile"
 		done
-		mv $RESOLV_CONF-$$ $RESOLV_CONF
+		mv "$tmpfile" "$realconf"
 		;;
 esac
 
diff --git a/findutils/find.c b/findutils/find.c
index 67cb47d..4c9f9d8 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -231,12 +231,13 @@
 //kbuild:lib-$(CONFIG_FIND) += find.o
 
 //usage:#define find_trivial_usage
-//usage:       "[PATH]... [OPTIONS] [ACTIONS]"
+//usage:       "[-HL] [PATH]... [OPTIONS] [ACTIONS]"
 //usage:#define find_full_usage "\n\n"
 //usage:       "Search for files and perform actions on them.\n"
 //usage:       "First failed action stops processing of current file.\n"
 //usage:       "Defaults: PATH is current directory, action is '-print'\n"
-//usage:     "\n	-follow		Follow symlinks"
+//usage:     "\n	-L,-follow	Follow symlinks"
+//usage:     "\n	-H		...on command line only"
 //usage:	IF_FEATURE_FIND_XDEV(
 //usage:     "\n	-xdev		Don't descend directories on other filesystems"
 //usage:	)
@@ -814,6 +815,31 @@
 }
 #endif
 
+/* Say no to GCCism */
+#define USE_NESTED_FUNCTION 0
+
+#if !USE_NESTED_FUNCTION
+struct pp_locals {
+	action*** appp;
+	unsigned cur_group;
+	unsigned cur_action;
+	IF_FEATURE_FIND_NOT( bool invert_flag; )
+};
+static action* alloc_action(struct pp_locals *ppl, int sizeof_struct, action_fp f)
+{
+	action *ap = xzalloc(sizeof_struct);
+	action **app;
+	action ***group = &ppl->appp[ppl->cur_group];
+	*group = app = xrealloc(*group, (ppl->cur_action+2) * sizeof(ppl->appp[0][0]));
+	app[ppl->cur_action++] = ap;
+	app[ppl->cur_action] = NULL;
+	ap->f = f;
+	IF_FEATURE_FIND_NOT( ap->invert = ppl->invert_flag; )
+	IF_FEATURE_FIND_NOT( ppl->invert_flag = 0; )
+	return ap;
+}
+#endif
+
 static action*** parse_params(char **argv)
 {
 	enum {
@@ -900,10 +926,18 @@
 	IF_FEATURE_FIND_MAXDEPTH("-mindepth\0""-maxdepth\0")
 	;
 
+#if !USE_NESTED_FUNCTION
+	struct pp_locals ppl;
+#define appp        (ppl.appp       )
+#define cur_group   (ppl.cur_group  )
+#define cur_action  (ppl.cur_action )
+#define invert_flag (ppl.invert_flag)
+#define ALLOC_ACTION(name) (action_##name*)alloc_action(&ppl, sizeof(action_##name), (action_fp) func_##name)
+#else
 	action*** appp;
-	unsigned cur_group = 0;
-	unsigned cur_action = 0;
-	IF_FEATURE_FIND_NOT( bool invert_flag = 0; )
+	unsigned cur_group;
+	unsigned cur_action;
+	IF_FEATURE_FIND_NOT( bool invert_flag; )
 
 	/* This is the only place in busybox where we use nested function.
 	 * So far more standard alternatives were bigger. */
@@ -912,7 +946,7 @@
 	action* alloc_action(int sizeof_struct, action_fp f)
 	{
 		action *ap;
-		appp[cur_group] = xrealloc(appp[cur_group], (cur_action+2) * sizeof(*appp));
+		appp[cur_group] = xrealloc(appp[cur_group], (cur_action+2) * sizeof(appp[0][0]));
 		appp[cur_group][cur_action++] = ap = xzalloc(sizeof_struct);
 		appp[cur_group][cur_action] = NULL;
 		ap->f = f;
@@ -920,9 +954,12 @@
 		IF_FEATURE_FIND_NOT( invert_flag = 0; )
 		return ap;
 	}
-
 #define ALLOC_ACTION(name) (action_##name*)alloc_action(sizeof(action_##name), (action_fp) func_##name)
+#endif
 
+	cur_group = 0;
+	cur_action = 0;
+	IF_FEATURE_FIND_NOT( invert_flag = 0; )
 	appp = xzalloc(2 * sizeof(appp[0])); /* appp[0],[1] == NULL */
 
 	while (*argv) {
@@ -948,8 +985,8 @@
  */
 		/* Options */
 		if (parm == OPT_FOLLOW) {
-                        dbg("follow enabled: %d", __LINE__);
-                        G.recurse_flags |= ACTION_FOLLOWLINKS | ACTION_DANGLING_OK;
+			dbg("follow enabled: %d", __LINE__);
+			G.recurse_flags |= ACTION_FOLLOWLINKS | ACTION_DANGLING_OK;
 		}
 #if ENABLE_FEATURE_FIND_XDEV
 		else if (parm == OPT_XDEV) {
@@ -987,7 +1024,7 @@
 			dbg("%d", __LINE__);
 			/* start new OR group */
 			cur_group++;
-			appp = xrealloc(appp, (cur_group+2) * sizeof(*appp));
+			appp = xrealloc(appp, (cur_group+2) * sizeof(appp[0]));
 			/*appp[cur_group] = NULL; - already NULL */
 			appp[cur_group+1] = NULL;
 			cur_action = 0;
@@ -1245,16 +1282,46 @@
 	dbg("exiting %s", __func__);
 	return appp;
 #undef ALLOC_ACTION
+#undef appp
+#undef cur_action
+#undef invert_flag
 }
 
 int find_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int find_main(int argc UNUSED_PARAM, char **argv)
 {
 	int i, firstopt, status = EXIT_SUCCESS;
+	char **past_HLP, *saved;
 
 	INIT_G();
 
-	argv++;
+	/* "find -type f" + getopt("+HLP") => disaster.
+	 * Need to avoid getopt running into a non-HLP option.
+	 * Do this by temporarily storing NULL there:
+	 */
+	past_HLP = argv;
+	for (;;) {
+		saved = *++past_HLP;
+		if (!saved)
+			break;
+		if (saved[0] != '-')
+			break;
+		if (!saved[1])
+			break; /* it is "-" */
+		if ((saved+1)[strspn(saved+1, "HLP")] != '\0')
+			break;
+	}
+	*past_HLP = NULL;
+	/* "+": stop on first non-option */
+	i = getopt32(argv, "+HLP");
+	if (i & (1<<0))
+		G.recurse_flags |= ACTION_FOLLOWLINKS_L0 | ACTION_DANGLING_OK;
+	if (i & (1<<1))
+		G.recurse_flags |= ACTION_FOLLOWLINKS | ACTION_DANGLING_OK;
+	/* -P is default and is ignored */
+	argv = past_HLP; /* same result as "argv += optind;" */
+	*past_HLP = saved;
+
 	for (firstopt = 0; argv[firstopt]; firstopt++) {
 		if (argv[firstopt][0] == '-')
 			break;
diff --git a/findutils/grep.c b/findutils/grep.c
index a64a735..22101f3 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -373,6 +373,11 @@
  opt_f_not_found: ;
 				}
 			} else {
+#if ENABLE_EXTRA_COMPAT
+				unsigned start_pos;
+#endif
+				char *match_at;
+
 				if (!(gl->flg_mem_alocated_compiled & COMPILED)) {
 					gl->flg_mem_alocated_compiled |= COMPILED;
 #if !ENABLE_EXTRA_COMPAT
@@ -387,33 +392,56 @@
 #if !ENABLE_EXTRA_COMPAT
 				gl->matched_range.rm_so = 0;
 				gl->matched_range.rm_eo = 0;
+#else
+				start_pos = 0;
 #endif
+				match_at = line;
+ opt_w_again:
+//bb_error_msg("'%s' start_pos:%d line_len:%d", match_at, start_pos, line_len);
 				if (
 #if !ENABLE_EXTRA_COMPAT
-					regexec(&gl->compiled_regex, line, 1, &gl->matched_range, 0) == 0
+					regexec(&gl->compiled_regex, match_at, 1, &gl->matched_range, 0) == 0
 #else
-					re_search(&gl->compiled_regex, line, line_len,
-							/*start:*/ 0, /*range:*/ line_len,
+					re_search(&gl->compiled_regex, match_at, line_len,
+							start_pos, /*range:*/ line_len,
 							&gl->matched_range) >= 0
 #endif
 				) {
 					if (option_mask32 & OPT_x) {
 						found = (gl->matched_range.rm_so == 0
-						         && line[gl->matched_range.rm_eo] == '\0');
+						         && match_at[gl->matched_range.rm_eo] == '\0');
 					} else
 					if (!(option_mask32 & OPT_w)) {
 						found = 1;
 					} else {
 						char c = ' ';
 						if (gl->matched_range.rm_so)
-							c = line[gl->matched_range.rm_so - 1];
+							c = match_at[gl->matched_range.rm_so - 1];
 						if (!isalnum(c) && c != '_') {
-							c = line[gl->matched_range.rm_eo];
-							if (!c || (!isalnum(c) && c != '_'))
+							c = match_at[gl->matched_range.rm_eo];
+							if (!c || (!isalnum(c) && c != '_')) {
 								found = 1;
+							} else {
+			/*
+			 * Why check gl->matched_range.rm_eo?
+			 * Zero-length match makes -w skip the line:
+			 * "echo foo | grep ^" prints "foo",
+			 * "echo foo | grep -w ^" prints nothing.
+			 * Without such check, we can loop forever.
+			 */
+#if !ENABLE_EXTRA_COMPAT
+								if (gl->matched_range.rm_eo != 0) {
+									match_at += gl->matched_range.rm_eo;
+									goto opt_w_again;
+								}
+#else
+								if (gl->matched_range.rm_eo > start_pos) {
+									start_pos = gl->matched_range.rm_eo;
+									goto opt_w_again;
+								}
+#endif
+							}
 						}
-//BUG: "echo foop foo | grep -w foo" should match, but doesn't:
-//we bail out on first "mismatch" because it's not a word.
 					}
 				}
 			}
@@ -710,7 +738,7 @@
 		option_mask32 |= OPT_F;
 
 #if !ENABLE_EXTRA_COMPAT
-	if (!(option_mask32 & (OPT_o | OPT_w)))
+	if (!(option_mask32 & (OPT_o | OPT_w | OPT_x)))
 		reflags = REG_NOSUB;
 #endif
 
diff --git a/include-full/NUM_APPLETS.h b/include-full/NUM_APPLETS.h
deleted file mode 100644
index c987b9b..0000000
--- a/include-full/NUM_APPLETS.h
+++ /dev/null
@@ -1 +0,0 @@
-#define NUM_APPLETS 219
diff --git a/include-full/applet_tables.h b/include-full/applet_tables.h
deleted file mode 100644
index 7a6238f..0000000
--- a/include-full/applet_tables.h
+++ /dev/null
@@ -1,674 +0,0 @@
-/* This is a generated file, don't edit */
-
-#define NUM_APPLETS 219
-
-const char applet_names[] ALIGN1 = ""
-"[" "\0"
-"[[" "\0"
-"adjtimex" "\0"
-"arp" "\0"
-"ash" "\0"
-"awk" "\0"
-"base64" "\0"
-"basename" "\0"
-"bbconfig" "\0"
-"blkid" "\0"
-"blockdev" "\0"
-"brctl" "\0"
-"bunzip2" "\0"
-"bzcat" "\0"
-"bzip2" "\0"
-"cal" "\0"
-"cat" "\0"
-"catv" "\0"
-"chattr" "\0"
-"chgrp" "\0"
-"chmod" "\0"
-"chown" "\0"
-"chroot" "\0"
-"clear" "\0"
-"cmp" "\0"
-"comm" "\0"
-"cp" "\0"
-"cpio" "\0"
-"crond" "\0"
-"crontab" "\0"
-"cut" "\0"
-"date" "\0"
-"dc" "\0"
-"dd" "\0"
-"depmod" "\0"
-"devmem" "\0"
-"df" "\0"
-"diff" "\0"
-"dirname" "\0"
-"dmesg" "\0"
-"dnsd" "\0"
-"dos2unix" "\0"
-"du" "\0"
-"echo" "\0"
-"ed" "\0"
-"egrep" "\0"
-"env" "\0"
-"expand" "\0"
-"expr" "\0"
-"false" "\0"
-"fbsplash" "\0"
-"fdisk" "\0"
-"fgrep" "\0"
-"find" "\0"
-"flash_lock" "\0"
-"flash_unlock" "\0"
-"flashcp" "\0"
-"flock" "\0"
-"fold" "\0"
-"free" "\0"
-"freeramdisk" "\0"
-"fstrim" "\0"
-"fsync" "\0"
-"ftpget" "\0"
-"ftpput" "\0"
-"fuser" "\0"
-"getopt" "\0"
-"grep" "\0"
-"groups" "\0"
-"gunzip" "\0"
-"gzip" "\0"
-"halt" "\0"
-"head" "\0"
-"hexdump" "\0"
-"id" "\0"
-"ifconfig" "\0"
-"inetd" "\0"
-"insmod" "\0"
-"install" "\0"
-"ionice" "\0"
-"iostat" "\0"
-"ip" "\0"
-"kill" "\0"
-"killall" "\0"
-"killall5" "\0"
-"less" "\0"
-"ln" "\0"
-"losetup" "\0"
-"ls" "\0"
-"lsattr" "\0"
-"lsmod" "\0"
-"lsof" "\0"
-"lsusb" "\0"
-"lzcat" "\0"
-"lzma" "\0"
-"lzop" "\0"
-"lzopcat" "\0"
-"man" "\0"
-"md5sum" "\0"
-"mesg" "\0"
-"mkdir" "\0"
-"mkdosfs" "\0"
-"mke2fs" "\0"
-"mkfifo" "\0"
-"mkfs.ext2" "\0"
-"mkfs.vfat" "\0"
-"mknod" "\0"
-"mkswap" "\0"
-"mktemp" "\0"
-"modinfo" "\0"
-"modprobe" "\0"
-"more" "\0"
-"mount" "\0"
-"mountpoint" "\0"
-"mpstat" "\0"
-"mv" "\0"
-"nanddump" "\0"
-"nandwrite" "\0"
-"nbd-client" "\0"
-"nc" "\0"
-"netstat" "\0"
-"nice" "\0"
-"nohup" "\0"
-"nslookup" "\0"
-"ntpd" "\0"
-"od" "\0"
-"patch" "\0"
-"pgrep" "\0"
-"pidof" "\0"
-"ping" "\0"
-"pipe_progress" "\0"
-"pkill" "\0"
-"pmap" "\0"
-"poweroff" "\0"
-"printenv" "\0"
-"printf" "\0"
-"ps" "\0"
-"pstree" "\0"
-"pwd" "\0"
-"pwdx" "\0"
-"rdev" "\0"
-"readlink" "\0"
-"realpath" "\0"
-"reboot" "\0"
-"renice" "\0"
-"reset" "\0"
-"resize" "\0"
-"rev" "\0"
-"rm" "\0"
-"rmdir" "\0"
-"rmmod" "\0"
-"route" "\0"
-"run-parts" "\0"
-"rx" "\0"
-"sed" "\0"
-"seq" "\0"
-"setconsole" "\0"
-"setserial" "\0"
-"setsid" "\0"
-"sh" "\0"
-"sha1sum" "\0"
-"sha256sum" "\0"
-"sha3sum" "\0"
-"sha512sum" "\0"
-"sleep" "\0"
-"sort" "\0"
-"split" "\0"
-"stat" "\0"
-"strings" "\0"
-"stty" "\0"
-"sum" "\0"
-"swapoff" "\0"
-"swapon" "\0"
-"sync" "\0"
-"sysctl" "\0"
-"tac" "\0"
-"tail" "\0"
-"tar" "\0"
-"taskset" "\0"
-"tee" "\0"
-"telnet" "\0"
-"telnetd" "\0"
-"test" "\0"
-"tftp" "\0"
-"tftpd" "\0"
-"time" "\0"
-"timeout" "\0"
-"top" "\0"
-"touch" "\0"
-"tr" "\0"
-"traceroute" "\0"
-"true" "\0"
-"ttysize" "\0"
-"tune2fs" "\0"
-"umount" "\0"
-"uname" "\0"
-"uncompress" "\0"
-"unexpand" "\0"
-"uniq" "\0"
-"unix2dos" "\0"
-"unlzma" "\0"
-"unlzop" "\0"
-"unxz" "\0"
-"unzip" "\0"
-"uptime" "\0"
-"usleep" "\0"
-"uudecode" "\0"
-"uuencode" "\0"
-"vi" "\0"
-"watch" "\0"
-"wc" "\0"
-"wget" "\0"
-"which" "\0"
-"whoami" "\0"
-"xargs" "\0"
-"xz" "\0"
-"xzcat" "\0"
-"yes" "\0"
-"zcat" "\0"
-;
-
-#ifndef SKIP_applet_main
-int (*const applet_main[])(int argc, char **argv) = {
-test_main,
-test_main,
-adjtimex_main,
-arp_main,
-ash_main,
-awk_main,
-base64_main,
-basename_main,
-bbconfig_main,
-blkid_main,
-blockdev_main,
-brctl_main,
-bunzip2_main,
-bunzip2_main,
-bzip2_main,
-cal_main,
-cat_main,
-catv_main,
-chattr_main,
-chgrp_main,
-chmod_main,
-chown_main,
-chroot_main,
-clear_main,
-cmp_main,
-comm_main,
-cp_main,
-cpio_main,
-crond_main,
-crontab_main,
-cut_main,
-date_main,
-dc_main,
-dd_main,
-depmod_main,
-devmem_main,
-df_main,
-diff_main,
-dirname_main,
-dmesg_main,
-dnsd_main,
-dos2unix_main,
-du_main,
-echo_main,
-ed_main,
-grep_main,
-env_main,
-expand_main,
-expr_main,
-false_main,
-fbsplash_main,
-fdisk_main,
-grep_main,
-find_main,
-flash_lock_unlock_main,
-flash_lock_unlock_main,
-flashcp_main,
-flock_main,
-fold_main,
-free_main,
-freeramdisk_main,
-fstrim_main,
-fsync_main,
-ftpgetput_main,
-ftpgetput_main,
-fuser_main,
-getopt_main,
-grep_main,
-id_main,
-gunzip_main,
-gzip_main,
-halt_main,
-head_main,
-hexdump_main,
-id_main,
-ifconfig_main,
-inetd_main,
-insmod_main,
-install_main,
-ionice_main,
-iostat_main,
-ip_main,
-kill_main,
-kill_main,
-kill_main,
-less_main,
-ln_main,
-losetup_main,
-ls_main,
-lsattr_main,
-lsmod_main,
-lsof_main,
-lsusb_main,
-unlzma_main,
-unlzma_main,
-lzop_main,
-lzop_main,
-man_main,
-md5_sha1_sum_main,
-mesg_main,
-mkdir_main,
-mkfs_vfat_main,
-mkfs_ext2_main,
-mkfifo_main,
-mkfs_ext2_main,
-mkfs_vfat_main,
-mknod_main,
-mkswap_main,
-mktemp_main,
-modinfo_main,
-modprobe_main,
-more_main,
-mount_main,
-mountpoint_main,
-mpstat_main,
-mv_main,
-nandwrite_main,
-nandwrite_main,
-nbdclient_main,
-nc_main,
-netstat_main,
-nice_main,
-nohup_main,
-nslookup_main,
-ntpd_main,
-od_main,
-patch_main,
-pgrep_main,
-pidof_main,
-ping_main,
-pipe_progress_main,
-pgrep_main,
-pmap_main,
-halt_main,
-printenv_main,
-printf_main,
-ps_main,
-pstree_main,
-pwd_main,
-pwdx_main,
-rdev_main,
-readlink_main,
-realpath_main,
-halt_main,
-renice_main,
-reset_main,
-resize_main,
-rev_main,
-rm_main,
-rmdir_main,
-rmmod_main,
-route_main,
-run_parts_main,
-rx_main,
-sed_main,
-seq_main,
-setconsole_main,
-setserial_main,
-setsid_main,
-ash_main,
-md5_sha1_sum_main,
-md5_sha1_sum_main,
-md5_sha1_sum_main,
-md5_sha1_sum_main,
-sleep_main,
-sort_main,
-split_main,
-stat_main,
-strings_main,
-stty_main,
-sum_main,
-swap_on_off_main,
-swap_on_off_main,
-sync_main,
-sysctl_main,
-tac_main,
-tail_main,
-tar_main,
-taskset_main,
-tee_main,
-telnet_main,
-telnetd_main,
-test_main,
-tftp_main,
-tftpd_main,
-time_main,
-timeout_main,
-top_main,
-touch_main,
-tr_main,
-traceroute_main,
-true_main,
-ttysize_main,
-tune2fs_main,
-umount_main,
-uname_main,
-uncompress_main,
-expand_main,
-uniq_main,
-dos2unix_main,
-unlzma_main,
-lzop_main,
-unxz_main,
-unzip_main,
-uptime_main,
-usleep_main,
-uudecode_main,
-uuencode_main,
-vi_main,
-watch_main,
-wc_main,
-wget_main,
-which_main,
-whoami_main,
-xargs_main,
-unxz_main,
-unxz_main,
-yes_main,
-gunzip_main,
-};
-#endif
-
-const uint16_t applet_nameofs[] ALIGN2 = {
-0x0000,
-0x0002,
-0x0005,
-0x000e,
-0x0012,
-0x0016,
-0x001a,
-0x0021,
-0x002a,
-0x0033,
-0x0039,
-0x0042,
-0x0048,
-0x0050,
-0x0056,
-0x005c,
-0x0060,
-0x0064,
-0x0069,
-0x0070,
-0x0076,
-0x007c,
-0x0082,
-0x0089,
-0x008f,
-0x0093,
-0x0098,
-0x009b,
-0x00a0,
-0x80a6,
-0x00ae,
-0x00b2,
-0x00b7,
-0x00ba,
-0x00bd,
-0x00c4,
-0x00cb,
-0x00ce,
-0x00d3,
-0x00db,
-0x00e1,
-0x00e6,
-0x00ef,
-0x00f2,
-0x00f7,
-0x00fa,
-0x0100,
-0x0104,
-0x010b,
-0x0110,
-0x0116,
-0x011f,
-0x0125,
-0x012b,
-0x0130,
-0x013b,
-0x0148,
-0x0150,
-0x0156,
-0x015b,
-0x0160,
-0x016c,
-0x0173,
-0x0179,
-0x0180,
-0x0187,
-0x018d,
-0x0194,
-0x0199,
-0x01a0,
-0x01a7,
-0x01ac,
-0x01b1,
-0x01b6,
-0x01be,
-0x01c1,
-0x01ca,
-0x01d0,
-0x01d7,
-0x01df,
-0x01e6,
-0x01ed,
-0x01f0,
-0x01f5,
-0x01fd,
-0x0206,
-0x020b,
-0x020e,
-0x0216,
-0x0219,
-0x0220,
-0x0226,
-0x022b,
-0x0231,
-0x0237,
-0x023c,
-0x0241,
-0x0249,
-0x024d,
-0x0254,
-0x0259,
-0x025f,
-0x0267,
-0x026e,
-0x0275,
-0x027f,
-0x0289,
-0x028f,
-0x0296,
-0x029d,
-0x02a5,
-0x02ae,
-0x02b3,
-0x02b9,
-0x02c4,
-0x02cb,
-0x02ce,
-0x02d7,
-0x02e1,
-0x02ec,
-0x02ef,
-0x02f7,
-0x02fc,
-0x0302,
-0x030b,
-0x0310,
-0x0313,
-0x0319,
-0x031f,
-0x4325,
-0x032a,
-0x0338,
-0x033e,
-0x0343,
-0x034c,
-0x0355,
-0x035c,
-0x035f,
-0x0366,
-0x036a,
-0x036f,
-0x0374,
-0x037d,
-0x0386,
-0x038d,
-0x0394,
-0x039a,
-0x03a1,
-0x03a5,
-0x03a8,
-0x03ae,
-0x03b4,
-0x03ba,
-0x03c4,
-0x03c7,
-0x03cb,
-0x03cf,
-0x03da,
-0x03e4,
-0x03eb,
-0x03ee,
-0x03f6,
-0x0400,
-0x0408,
-0x0412,
-0x0418,
-0x041d,
-0x0423,
-0x0428,
-0x0430,
-0x0435,
-0x0439,
-0x0441,
-0x0448,
-0x044d,
-0x0454,
-0x0458,
-0x045d,
-0x0461,
-0x0469,
-0x046d,
-0x0474,
-0x047c,
-0x0481,
-0x0486,
-0x048c,
-0x0491,
-0x0499,
-0x049d,
-0x04a3,
-0x44a6,
-0x04b1,
-0x04b6,
-0x04be,
-0x04c6,
-0x04cd,
-0x04d3,
-0x04de,
-0x04e7,
-0x04ec,
-0x04f5,
-0x04fc,
-0x0503,
-0x0508,
-0x050e,
-0x0515,
-0x051c,
-0x0525,
-0x052e,
-0x0531,
-0x0537,
-0x053a,
-0x053f,
-0x0545,
-0x054c,
-0x0552,
-0x0555,
-0x055b,
-0x055f,
-};
-
-
-#define MAX_APPLET_NAME_LEN 13
diff --git a/include-full/applets.h b/include-full/applets.h
deleted file mode 100644
index 65a5017..0000000
--- a/include-full/applets.h
+++ /dev/null
@@ -1,498 +0,0 @@
-/* DO NOT EDIT. This file is generated from applets.src.h */
-/* vi: set sw=4 ts=4: */
-/*
- * applets.h - a listing of all busybox applets.
- *
- * If you write a new applet, you need to add an entry to this list to make
- * busybox aware of it.
- */
-
-/*
-name  - applet name as it is typed on command line
-name2 - applet name, converted to C (ether-wake: name2 = ether_wake)
-main  - corresponding <applet>_main to call (bzcat: main = bunzip2)
-l     - location to install link to: [/usr]/[s]bin
-s     - suid type:
-        BB_SUID_REQUIRE: will complain if busybox isn't suid
-        and is run by non-root (applet_main() will not be called at all)
-        BB_SUID_DROP: will drop suid prior to applet_main()
-        BB_SUID_MAYBE: neither of the above
-        (every instance of BB_SUID_REQUIRE and BB_SUID_MAYBE
-        needs to be justified in comment)
-        NB: please update FEATURE_SUID help text whenever you add/remove
-        BB_SUID_REQUIRE or BB_SUID_MAYBE applet.
-*/
-
-#if defined(PROTOTYPES)
-# define APPLET(name,l,s)                    int name##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-# define APPLET_ODDNAME(name,main,l,s,name2) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-# define APPLET_NOEXEC(name,main,l,s,name2)  int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-# define APPLET_NOFORK(name,main,l,s,name2)  int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-
-#elif defined(NAME_MAIN_CNAME)
-# define APPLET(name,l,s)                    name name##_main name
-# define APPLET_ODDNAME(name,main,l,s,name2) name main##_main name2
-# define APPLET_NOEXEC(name,main,l,s,name2)  name main##_main name2
-# define APPLET_NOFORK(name,main,l,s,name2)  name main##_main name2
-
-#elif defined(MAKE_USAGE) && ENABLE_FEATURE_VERBOSE_USAGE
-# define APPLET(name,l,s)                    MAKE_USAGE(#name, name##_trivial_usage name##_full_usage)
-# define APPLET_ODDNAME(name,main,l,s,name2) MAKE_USAGE(#name, name2##_trivial_usage name2##_full_usage)
-# define APPLET_NOEXEC(name,main,l,s,name2)  MAKE_USAGE(#name, name2##_trivial_usage name2##_full_usage)
-# define APPLET_NOFORK(name,main,l,s,name2)  MAKE_USAGE(#name, name2##_trivial_usage name2##_full_usage)
-
-#elif defined(MAKE_USAGE) && !ENABLE_FEATURE_VERBOSE_USAGE
-# define APPLET(name,l,s)                    MAKE_USAGE(#name, name##_trivial_usage)
-# define APPLET_ODDNAME(name,main,l,s,name2) MAKE_USAGE(#name, name2##_trivial_usage)
-# define APPLET_NOEXEC(name,main,l,s,name2)  MAKE_USAGE(#name, name2##_trivial_usage)
-# define APPLET_NOFORK(name,main,l,s,name2)  MAKE_USAGE(#name, name2##_trivial_usage)
-
-#elif defined(MAKE_LINKS)
-# define APPLET(name,l,c)                    LINK l name
-# define APPLET_ODDNAME(name,main,l,s,name2) LINK l name
-# define APPLET_NOEXEC(name,main,l,s,name2)  LINK l name
-# define APPLET_NOFORK(name,main,l,s,name2)  LINK l name
-
-#else
-  static struct bb_applet applets[] = { /*    name, main, location, need_suid */
-# define APPLET(name,l,s)                    { #name, #name, l, s },
-# define APPLET_ODDNAME(name,main,l,s,name2) { #name, #main, l, s },
-# define APPLET_NOEXEC(name,main,l,s,name2)  { #name, #main, l, s, 1 },
-# define APPLET_NOFORK(name,main,l,s,name2)  { #name, #main, l, s, 1, 1 },
-#endif
-
-#if ENABLE_INSTALL_NO_USR
-# define BB_DIR_USR_BIN BB_DIR_BIN
-# define BB_DIR_USR_SBIN BB_DIR_SBIN
-#endif
-
-
-IF_BUNZIP2(APPLET(bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_BUNZIP2(APPLET_ODDNAME(bzcat, bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP, bzcat))
-IF_DATE(APPLET(date, BB_DIR_BIN, BB_SUID_DROP))
-IF_HOSTID(APPLET_NOFORK(hostid, hostid, BB_DIR_USR_BIN, BB_SUID_DROP, hostid))
-IF_GROUPS(APPLET_NOEXEC(groups, id, BB_DIR_USR_BIN, BB_SUID_DROP, groups))
-IF_ID(    APPLET_NOEXEC(id,     id, BB_DIR_USR_BIN, BB_SUID_DROP, id    ))
-IF_TOUCH(APPLET_NOFORK(touch, touch, BB_DIR_BIN, BB_SUID_DROP, touch))
-IF_BASE64(APPLET(base64, BB_DIR_BIN, BB_SUID_DROP))
-IF_USERS(APPLET_ODDNAME(users, who, BB_DIR_USR_BIN, BB_SUID_DROP, users))
-IF_WHO(  APPLET(  who, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PATCH(APPLET(patch, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_VI(APPLET(vi, BB_DIR_BIN, BB_SUID_DROP))
-IF_FIND(APPLET_NOEXEC(find, find, BB_DIR_USR_BIN, BB_SUID_DROP, find))
-IF_GREP(APPLET(grep, BB_DIR_BIN, BB_SUID_DROP))
-IF_FEATURE_GREP_EGREP_ALIAS(APPLET_ODDNAME(egrep, grep, BB_DIR_BIN, BB_SUID_DROP, egrep))
-IF_FEATURE_GREP_FGREP_ALIAS(APPLET_ODDNAME(fgrep, grep, BB_DIR_BIN, BB_SUID_DROP, fgrep))
-IF_XARGS(APPLET_NOEXEC(xargs, xargs, BB_DIR_USR_BIN, BB_SUID_DROP, xargs))
-IF_BOOTCHARTD(APPLET(bootchartd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_HALT(APPLET(halt, BB_DIR_SBIN, BB_SUID_DROP))
-IF_HALT(APPLET_ODDNAME(poweroff, halt, BB_DIR_SBIN, BB_SUID_DROP, poweroff))
-IF_HALT(APPLET_ODDNAME(reboot, halt, BB_DIR_SBIN, BB_SUID_DROP, reboot))
-IF_INIT(APPLET(init, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FEATURE_INITRD(APPLET_ODDNAME(linuxrc, init, BB_DIR_ROOT, BB_SUID_DROP, linuxrc))
-IF_MESG(APPLET(mesg, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_ADD_SHELL(   APPLET_ODDNAME(add-shell   , add_remove_shell, BB_DIR_USR_SBIN, BB_SUID_DROP, add_shell   ))
-IF_REMOVE_SHELL(APPLET_ODDNAME(remove-shell, add_remove_shell, BB_DIR_USR_SBIN, BB_SUID_DROP, remove_shell))
-IF_CONSPY(APPLET(conspy, BB_DIR_BIN, BB_SUID_DROP))
-IF_NANDWRITE(APPLET(nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_NANDWRITE(APPLET_ODDNAME(nanddump, nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP, nanddump))
-IF_SETSERIAL(APPLET(setserial, BB_DIR_BIN, BB_SUID_DROP))
-IF_UBIATTACH(APPLET_ODDNAME(ubiattach, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubiattach))
-IF_UBIDETACH(APPLET_ODDNAME(ubidetach, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubidetach))
-IF_UBIMKVOL(APPLET_ODDNAME(ubimkvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubimkvol))
-IF_UBIRMVOL(APPLET_ODDNAME(ubirmvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubirmvol))
-IF_UBIRSVOL(APPLET_ODDNAME(ubirsvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubirsvol))
-IF_UBIUPDATEVOL(APPLET_ODDNAME(ubiupdatevol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubiupdatevol))
-IF_DEPMOD(APPLET(depmod, BB_DIR_SBIN, BB_SUID_DROP))
-IF_INSMOD(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LSMOD(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MODINFO(APPLET(modinfo, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MODPROBE(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MODPROBE_SMALL(APPLET_ODDNAME(depmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe))
-IF_MODPROBE_SMALL(APPLET_ODDNAME(insmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe))
-IF_MODPROBE_SMALL(APPLET_ODDNAME(lsmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe))
-IF_MODPROBE_SMALL(APPLET_ODDNAME(rmmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe))
-IF_RMMOD(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP))
-IF_NBDCLIENT(APPLET_ODDNAME(nbd-client, nbdclient, BB_DIR_USR_SBIN, BB_SUID_DROP, nbdclient))
-IF_PING(APPLET(ping, BB_DIR_BIN, BB_SUID_MAYBE))
-IF_PING6(APPLET(ping6, BB_DIR_BIN, BB_SUID_MAYBE))
-IF_WHOIS(APPLET(whois, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IOSTAT(APPLET(iostat, BB_DIR_BIN, BB_SUID_DROP))
-IF_LSOF(APPLET(lsof, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_MPSTAT(APPLET(mpstat, BB_DIR_BIN, BB_SUID_DROP))
-IF_NMETER(APPLET(nmeter, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PMAP(APPLET(pmap, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_POWERTOP(APPLET(powertop, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_PSTREE(APPLET(pstree, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PWDX(APPLET(pwdx, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SMEMCAP(APPLET(smemcap, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP))
-IF_FEATURE_SH_IS_ASH(APPLET_ODDNAME(sh, ash, BB_DIR_BIN, BB_SUID_DROP, sh))
-IF_FEATURE_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, BB_DIR_BIN, BB_SUID_DROP, bash))
-IF_CTTYHACK(APPLET(cttyhack, BB_DIR_BIN, BB_SUID_DROP))
-IF_HUSH(APPLET(hush, BB_DIR_BIN, BB_SUID_DROP))
-IF_MSH(APPLET(msh, BB_DIR_BIN, BB_SUID_DROP))
-IF_FEATURE_SH_IS_HUSH(APPLET_ODDNAME(sh, hush, BB_DIR_BIN, BB_SUID_DROP, sh))
-IF_FEATURE_BASH_IS_HUSH(APPLET_ODDNAME(bash, hush, BB_DIR_BIN, BB_SUID_DROP, bash))
-IF_BLOCKDEV(APPLET(blockdev, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MDEV(APPLET(mdev, BB_DIR_SBIN, BB_SUID_DROP))
-IF_REV(APPLET(rev, BB_DIR_BIN, BB_SUID_DROP))
-IF_UDHCPC6(APPLET(udhcpc6, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TEST(APPLET_NOFORK([,  test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-IF_TEST(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP))
-IF_ADDGROUP(APPLET(addgroup, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_ADDUSER(APPLET(adduser, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_ADJTIMEX(APPLET(adjtimex, BB_DIR_SBIN, BB_SUID_DROP))
-IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
-IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_AWK(APPLET_NOEXEC(awk, awk, BB_DIR_USR_BIN, BB_SUID_DROP, awk))
-IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename))
-IF_BBCONFIG(APPLET(bbconfig, BB_DIR_BIN, BB_SUID_DROP))
-IF_BEEP(APPLET(beep, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP))
-IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
-IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP))
-IF_CHAT(APPLET(chat, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_CHATTR(APPLET(chattr, BB_DIR_BIN, BB_SUID_DROP))
-IF_CHCON(APPLET(chcon, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CHGRP(APPLET_NOEXEC(chgrp, chgrp, BB_DIR_BIN, BB_SUID_DROP, chgrp))
-IF_CHMOD(APPLET_NOEXEC(chmod, chmod, BB_DIR_BIN, BB_SUID_DROP, chmod))
-IF_CHOWN(APPLET_NOEXEC(chown, chown, BB_DIR_BIN, BB_SUID_DROP, chown))
-IF_CHPASSWD(APPLET(chpasswd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_CHPST(APPLET(chpst, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CHROOT(APPLET(chroot, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_CHRT(APPLET(chrt, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CHVT(APPLET(chvt, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CKSUM(APPLET_NOEXEC(cksum, cksum, BB_DIR_USR_BIN, BB_SUID_DROP, cksum))
-IF_CLEAR(APPLET(clear, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CMP(APPLET(cmp, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_COMM(APPLET(comm, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CP(APPLET_NOEXEC(cp, cp, BB_DIR_BIN, BB_SUID_DROP, cp))
-IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP))
-IF_CROND(APPLET(crond, BB_DIR_USR_SBIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change /var/spool/cron* files: */
-IF_CRONTAB(APPLET(crontab, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
-IF_CRYPTPW(APPLET(cryptpw, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CUT(APPLET_NOEXEC(cut, cut, BB_DIR_USR_BIN, BB_SUID_DROP, cut))
-IF_DC(APPLET(dc, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DD(APPLET_NOEXEC(dd, dd, BB_DIR_BIN, BB_SUID_DROP, dd))
-IF_DEALLOCVT(APPLET(deallocvt, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DELGROUP(APPLET_ODDNAME(delgroup, deluser, BB_DIR_USR_SBIN, BB_SUID_DROP, delgroup))
-IF_DELUSER(APPLET(deluser, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_DEVFSD(APPLET(devfsd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_DEVMEM(APPLET(devmem, BB_DIR_SBIN, BB_SUID_DROP))
-IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP))
-IF_DHCPRELAY(APPLET(dhcprelay, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_DIFF(APPLET(diff, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname))
-IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP))
-IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_HOSTNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname))
-IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix))
-IF_DPKG(APPLET(dpkg, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DPKG_DEB(APPLET_ODDNAME(dpkg-deb, dpkg_deb, BB_DIR_USR_BIN, BB_SUID_DROP, dpkg_deb))
-IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP))
-IF_DUMPLEASES(APPLET(dumpleases, BB_DIR_USR_BIN, BB_SUID_DROP))
-//IF_E2FSCK(APPLET(e2fsck, BB_DIR_SBIN, BB_SUID_DROP))
-//IF_E2LABEL(APPLET_ODDNAME(e2label, tune2fs, BB_DIR_SBIN, BB_SUID_DROP, e2label))
-IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo))
-IF_ED(APPLET(ed, BB_DIR_BIN, BB_SUID_DROP))
-IF_EJECT(APPLET(eject, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env))
-IF_ENVDIR(APPLET_ODDNAME(envdir, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, envdir))
-IF_ENVUIDGID(APPLET_ODDNAME(envuidgid, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, envuidgid))
-IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
-IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false))
-IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FBSPLASH(APPLET(fbsplash, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FDFLUSH(APPLET_ODDNAME(fdflush, freeramdisk, BB_DIR_BIN, BB_SUID_DROP, fdflush))
-IF_FDFORMAT(APPLET(fdformat, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FDISK(APPLET(fdisk, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FGCONSOLE(APPLET(fgconsole, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Benefits from suid root: better access to /dev/BLOCKDEVs: */
-IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE))
-IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FLASH_LOCK(APPLET_ODDNAME(flash_lock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_lock))
-IF_FLASH_UNLOCK(APPLET_ODDNAME(flash_unlock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_unlock))
-IF_FLASHCP(APPLET(flashcp, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FLOCK(APPLET(flock, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_FOLD(APPLET_NOEXEC(fold, fold, BB_DIR_USR_BIN, BB_SUID_DROP, fold))
-IF_FREE(APPLET(free, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_FREERAMDISK(APPLET(freeramdisk, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FSCK(APPLET(fsck, BB_DIR_SBIN, BB_SUID_DROP))
-//IF_E2FSCK(APPLET_ODDNAME(fsck.ext2, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext2))
-//IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext3))
-IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix))
-IF_FSTRIM(APPLET(fstrim, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync))
-IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpget))
-IF_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpput))
-IF_FUSER(APPLET(fuser, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP))
-IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_GETTY(APPLET(getty, BB_DIR_SBIN, BB_SUID_DROP))
-IF_GUNZIP(APPLET(gunzip, BB_DIR_BIN, BB_SUID_DROP))
-IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP))
-IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd))
-IF_HDPARM(APPLET(hdparm, BB_DIR_SBIN, BB_SUID_DROP))
-IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head))
-IF_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hexdump))
-IF_HOSTNAME(APPLET(hostname, BB_DIR_BIN, BB_SUID_DROP))
-IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFUPDOWN(APPLET_ODDNAME(ifdown, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifdown))
-IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_IFUPDOWN(APPLET_ODDNAME(ifup, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifup))
-IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_INOTIFYD(APPLET(inotifyd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IONICE(APPLET(ionice, BB_DIR_BIN, BB_SUID_DROP))
-#if ENABLE_FEATURE_IP_ADDRESS \
- || ENABLE_FEATURE_IP_ROUTE \
- || ENABLE_FEATURE_IP_LINK \
- || ENABLE_FEATURE_IP_TUNNEL \
- || ENABLE_FEATURE_IP_RULE
-IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
-#endif
-IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
-IF_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IPCS(APPLET(ipcs, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IPLINK(APPLET(iplink, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPROUTE(APPLET(iproute, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPRULE(APPLET(iprule, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_SBIN, BB_SUID_DROP))
-IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP))
-IF_KILL(APPLET(kill, BB_DIR_BIN, BB_SUID_DROP))
-IF_KILLALL(APPLET_ODDNAME(killall, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall))
-IF_KILLALL5(APPLET_ODDNAME(killall5, kill, BB_DIR_USR_SBIN, BB_SUID_DROP, killall5))
-IF_KLOGD(APPLET(klogd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LAST(APPLET(last, BB_DIR_USR_BIN, BB_SUID_DROP))
-//IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length))
-IF_LESS(APPLET(less, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SETARCH(APPLET_ODDNAME(linux32, setarch, BB_DIR_BIN, BB_SUID_DROP, linux32))
-IF_SETARCH(APPLET_ODDNAME(linux64, setarch, BB_DIR_BIN, BB_SUID_DROP, linux64))
-IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln))
-IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LOGGER(APPLET(logger, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change uid and gid: */
-IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE))
-IF_LOGNAME(APPLET_NOFORK(logname, logname, BB_DIR_USR_BIN, BB_SUID_DROP, logname))
-IF_LOGREAD(APPLET(logread, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LOSETUP(APPLET(losetup, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LPD(APPLET(lpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_LPQ(APPLET_ODDNAME(lpq, lpqr, BB_DIR_USR_BIN, BB_SUID_DROP, lpq))
-IF_LPR(APPLET_ODDNAME(lpr, lpqr, BB_DIR_USR_BIN, BB_SUID_DROP, lpr))
-IF_LS(APPLET_NOEXEC(ls, ls, BB_DIR_BIN, BB_SUID_DROP, ls))
-IF_LSATTR(APPLET(lsattr, BB_DIR_BIN, BB_SUID_DROP))
-IF_LSPCI(APPLET(lspci, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_LSUSB(APPLET(lsusb, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UNLZMA(APPLET_ODDNAME(lzcat, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzcat))
-IF_LZMA(APPLET_ODDNAME(lzma, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzma))
-IF_LZOP(APPLET(lzop, BB_DIR_BIN, BB_SUID_DROP))
-IF_LZOP(APPLET_ODDNAME(lzopcat, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, lzopcat))
-IF_MAKEDEVS(APPLET(makedevs, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MAKEMIME(APPLET(makemime, BB_DIR_BIN, BB_SUID_DROP))
-IF_MAN(APPLET(man, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MATCHPATHCON(APPLET(matchpathcon, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_MD5SUM(APPLET_NOEXEC(md5sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, md5sum))
-IF_MICROCOM(APPLET(microcom, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_MKDIR(APPLET_NOFORK(mkdir, mkdir, BB_DIR_BIN, BB_SUID_DROP, mkdir))
-IF_MKFS_VFAT(APPLET_ODDNAME(mkdosfs, mkfs_vfat, BB_DIR_SBIN, BB_SUID_DROP, mkfs_vfat))
-IF_MKFS_EXT2(APPLET_ODDNAME(mke2fs, mkfs_ext2, BB_DIR_SBIN, BB_SUID_DROP, mkfs_ext2))
-IF_MKFIFO(APPLET_NOEXEC(mkfifo, mkfifo, BB_DIR_USR_BIN, BB_SUID_DROP, mkfifo))
-IF_MKFS_EXT2(APPLET_ODDNAME(mkfs.ext2, mkfs_ext2, BB_DIR_SBIN, BB_SUID_DROP, mkfs_ext2))
-//IF_MKE2FS(APPLET_ODDNAME(mkfs.ext3, mke2fs, BB_DIR_SBIN, BB_SUID_DROP, mkfs_ext3))
-IF_MKFS_MINIX(APPLET_ODDNAME(mkfs.minix, mkfs_minix, BB_DIR_SBIN, BB_SUID_DROP, mkfs_minix))
-IF_MKFS_REISER(APPLET_ODDNAME(mkfs.reiser, mkfs_reiser, BB_DIR_SBIN, BB_SUID_DROP, mkfs_reiser))
-IF_MKFS_VFAT(APPLET_ODDNAME(mkfs.vfat, mkfs_vfat, BB_DIR_SBIN, BB_SUID_DROP, mkfs_vfat))
-IF_MKNOD(APPLET_NOEXEC(mknod, mknod, BB_DIR_BIN, BB_SUID_DROP, mknod))
-IF_CRYPTPW(APPLET_ODDNAME(mkpasswd, cryptpw, BB_DIR_USR_BIN, BB_SUID_DROP, mkpasswd))
-IF_MKSWAP(APPLET(mkswap, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MKTEMP(APPLET(mktemp, BB_DIR_BIN, BB_SUID_DROP))
-IF_MORE(APPLET(more, BB_DIR_BIN, BB_SUID_DROP))
-/* On full-blown systems, requires suid for user mounts.
- * But it's not unthinkable to have it available in non-suid flavor on some systems,
- * for viewing mount table.
- * Therefore we use BB_SUID_MAYBE instead of BB_SUID_REQUIRE: */
-IF_MOUNT(APPLET(mount, BB_DIR_BIN, IF_DESKTOP(BB_SUID_MAYBE) IF_NOT_DESKTOP(BB_SUID_DROP)))
-IF_MOUNTPOINT(APPLET(mountpoint, BB_DIR_BIN, BB_SUID_DROP))
-IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DROP))
-IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
-IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
-IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
-IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP))
-IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP))
-//IF_PARSE(APPLET(parse, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change /etc/{passwd,shadow}: */
-IF_PASSWD(APPLET(passwd, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
-IF_PGREP(APPLET(pgrep, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PIDOF(APPLET(pidof, BB_DIR_BIN, BB_SUID_DROP))
-IF_PIPE_PROGRESS(APPLET(pipe_progress, BB_DIR_BIN, BB_SUID_DROP))
-IF_PIVOT_ROOT(APPLET(pivot_root, BB_DIR_SBIN, BB_SUID_DROP))
-IF_PKILL(APPLET_ODDNAME(pkill, pgrep, BB_DIR_USR_BIN, BB_SUID_DROP, pkill))
-IF_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv))
-IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf))
-IF_PS(APPLET(ps, BB_DIR_BIN, BB_SUID_DROP))
-IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd))
-IF_RAIDAUTORUN(APPLET(raidautorun, BB_DIR_SBIN, BB_SUID_DROP))
-IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_RDEV(APPLET(rdev, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_READAHEAD(APPLET(readahead, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_READLINK(APPLET(readlink, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_READPROFILE(APPLET(readprofile, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_REALPATH(APPLET(realpath, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_REFORMIME(APPLET(reformime, BB_DIR_BIN, BB_SUID_DROP))
-IF_RENICE(APPLET(renice, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RESET(APPLET(reset, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RESIZE(APPLET(resize, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RESTORECON(APPLET_ODDNAME(restorecon, setfiles, BB_DIR_SBIN, BB_SUID_DROP, restorecon))
-IF_RFKILL(APPLET(rfkill, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm))
-IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir))
-IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
-IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
-IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, BB_DIR_BIN, BB_SUID_DROP, run_parts))
-IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RUNLEVEL(APPLET(runlevel, BB_DIR_SBIN, BB_SUID_DROP))
-IF_RUNSV(APPLET(runsv, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RUNSVDIR(APPLET(runsvdir, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RX(APPLET(rx, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SCRIPT(APPLET(script, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SCRIPTREPLAY(APPLET(scriptreplay, BB_DIR_BIN, BB_SUID_DROP))
-IF_SED(APPLET(sed, BB_DIR_BIN, BB_SUID_DROP))
-IF_SELINUXENABLED(APPLET(selinuxenabled, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SENDMAIL(APPLET(sendmail, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SEQ(APPLET_NOFORK(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq))
-IF_SESTATUS(APPLET(sestatus, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETARCH(APPLET(setarch, BB_DIR_BIN, BB_SUID_DROP))
-IF_SETCONSOLE(APPLET(setconsole, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SETENFORCE(APPLET(setenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETFILES(APPLET(setfiles, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SETFONT(APPLET(setfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETKEYCODES(APPLET(setkeycodes, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETSEBOOL(APPLET(setsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETSID(APPLET(setsid, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SETUIDGID(APPLET_ODDNAME(setuidgid, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, setuidgid))
-IF_SHA1SUM(APPLET_NOEXEC(sha1sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha1sum))
-IF_SHA3SUM(APPLET_NOEXEC(sha3sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha3sum))
-IF_SHA256SUM(APPLET_NOEXEC(sha256sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha256sum))
-IF_SHA512SUM(APPLET_NOEXEC(sha512sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha512sum))
-IF_SHOWKEY(APPLET(showkey, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP))
-/* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells: */
-IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP))
-IF_SOFTLIMIT(APPLET_ODDNAME(softlimit, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, softlimit))
-IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort))
-IF_SPLIT(APPLET(split, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_START_STOP_DAEMON(APPLET_ODDNAME(start-stop-daemon, start_stop_daemon, BB_DIR_SBIN, BB_SUID_DROP, start_stop_daemon))
-IF_STAT(APPLET(stat, BB_DIR_BIN, BB_SUID_DROP))
-IF_STRINGS(APPLET(strings, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_STTY(APPLET(stty, BB_DIR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change uid and gid: */
-IF_SU(APPLET(su, BB_DIR_BIN, BB_SUID_REQUIRE))
-IF_SULOGIN(APPLET(sulogin, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SUM(APPLET(sum, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SV(APPLET(sv, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SVLOGD(APPLET(svlogd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SWAPONOFF(APPLET_ODDNAME(swapoff, swap_on_off, BB_DIR_SBIN, BB_SUID_DROP, swapoff))
-IF_SWAPONOFF(APPLET_ODDNAME(swapon, swap_on_off, BB_DIR_SBIN, BB_SUID_DROP, swapon))
-IF_SWITCH_ROOT(APPLET(switch_root, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SYNC(APPLET_NOFORK(sync, sync, BB_DIR_BIN, BB_SUID_DROP, sync))
-IF_BB_SYSCTL(APPLET(sysctl, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SYSLOGD(APPLET(syslogd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac))
-IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TAR(APPLET(tar, BB_DIR_BIN, BB_SUID_DROP))
-IF_TASKSET(APPLET(taskset, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* IF_TC(APPLET(tc, BB_DIR_SBIN, BB_SUID_DROP)) */
-IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd))
-IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TELNET(APPLET(telnet, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
-IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TFTPD(APPLET(tftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-#endif
-IF_TIME(APPLET(time, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TIMEOUT(APPLET(timeout, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TOP(APPLET(top, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
-IF_TRACEROUTE(APPLET(traceroute, BB_DIR_USR_BIN, BB_SUID_MAYBE))
-IF_TRACEROUTE6(APPLET(traceroute6, BB_DIR_USR_BIN, BB_SUID_MAYBE))
-IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true))
-IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TTYSIZE(APPLET(ttysize, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP))
-IF_TUNE2FS(APPLET(tune2fs, BB_DIR_SBIN, BB_SUID_DROP))
-IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP))
-IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd))
-IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP))
-IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP))
-IF_UNCOMPRESS(APPLET(uncompress, BB_DIR_BIN, BB_SUID_DROP))
-IF_UNEXPAND(APPLET_ODDNAME(unexpand, expand, BB_DIR_USR_BIN, BB_SUID_DROP, unexpand))
-IF_UNIQ(APPLET(uniq, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix2dos))
-IF_UNXZ(APPLET(unxz, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UNLZMA(APPLET(unlzma, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_LZOP(APPLET_ODDNAME(unlzop, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, unlzop))
-IF_UNZIP(APPLET(unzip, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UPTIME(APPLET(uptime, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep))
-IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change uid and gid: */
-IF_VLOCK(APPLET(vlock, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
-IF_VOLNAME(APPLET(volname, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to write to /dev/TTY: */
-IF_WALL(APPLET(wall, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
-IF_WATCH(APPLET(watch, BB_DIR_BIN, BB_SUID_DROP))
-IF_WATCHDOG(APPLET(watchdog, BB_DIR_SBIN, BB_SUID_DROP))
-IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_WHICH(APPLET(which, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami))
-IF_UNXZ(APPLET_ODDNAME(xzcat, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xzcat))
-IF_XZ(APPLET_ODDNAME(xz, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xz))
-IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
-IF_GUNZIP(APPLET_ODDNAME(zcat, gunzip, BB_DIR_BIN, BB_SUID_DROP, zcat))
-IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
-
-#if !defined(PROTOTYPES) && !defined(NAME_MAIN_CNAME) && !defined(MAKE_USAGE)
-};
-#endif
-
-#undef APPLET
-#undef APPLET_ODDNAME
-#undef APPLET_NOEXEC
-#undef APPLET_NOFORK
diff --git a/include-full/autoconf.h b/include-full/autoconf.h
deleted file mode 100644
index 4196bb0..0000000
--- a/include-full/autoconf.h
+++ /dev/null
@@ -1,3682 +0,0 @@
-/*
- * Automatically generated C config: don't edit
- * Busybox version: 1.21.1-jb
- */
-#define AUTOCONF_TIMESTAMP "2013-07-25 21:23 +0100"
-
-#define CONFIG_HAVE_DOT_CONFIG 1
-#define ENABLE_HAVE_DOT_CONFIG 1
-#define IF_HAVE_DOT_CONFIG(...) __VA_ARGS__
-#define IF_NOT_HAVE_DOT_CONFIG(...)
-
-/*
- * Busybox Settings
- */
-
-/*
- * General Configuration
- */
-#undef CONFIG_DESKTOP
-#define ENABLE_DESKTOP 0
-#define IF_DESKTOP(...)
-#define IF_NOT_DESKTOP(...) __VA_ARGS__
-#undef CONFIG_EXTRA_COMPAT
-#define ENABLE_EXTRA_COMPAT 0
-#define IF_EXTRA_COMPAT(...)
-#define IF_NOT_EXTRA_COMPAT(...) __VA_ARGS__
-#undef CONFIG_INCLUDE_SUSv2
-#define ENABLE_INCLUDE_SUSv2 0
-#define IF_INCLUDE_SUSv2(...)
-#define IF_NOT_INCLUDE_SUSv2(...) __VA_ARGS__
-#undef CONFIG_USE_PORTABLE_CODE
-#define ENABLE_USE_PORTABLE_CODE 0
-#define IF_USE_PORTABLE_CODE(...)
-#define IF_NOT_USE_PORTABLE_CODE(...) __VA_ARGS__
-#define CONFIG_PLATFORM_LINUX 1
-#define ENABLE_PLATFORM_LINUX 1
-#define IF_PLATFORM_LINUX(...) __VA_ARGS__
-#define IF_NOT_PLATFORM_LINUX(...)
-#define CONFIG_FEATURE_BUFFERS_USE_MALLOC 1
-#define ENABLE_FEATURE_BUFFERS_USE_MALLOC 1
-#define IF_FEATURE_BUFFERS_USE_MALLOC(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BUFFERS_USE_MALLOC(...)
-#undef CONFIG_FEATURE_BUFFERS_GO_ON_STACK
-#define ENABLE_FEATURE_BUFFERS_GO_ON_STACK 0
-#define IF_FEATURE_BUFFERS_GO_ON_STACK(...)
-#define IF_NOT_FEATURE_BUFFERS_GO_ON_STACK(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BUFFERS_GO_IN_BSS
-#define ENABLE_FEATURE_BUFFERS_GO_IN_BSS 0
-#define IF_FEATURE_BUFFERS_GO_IN_BSS(...)
-#define IF_NOT_FEATURE_BUFFERS_GO_IN_BSS(...) __VA_ARGS__
-#define CONFIG_SHOW_USAGE 1
-#define ENABLE_SHOW_USAGE 1
-#define IF_SHOW_USAGE(...) __VA_ARGS__
-#define IF_NOT_SHOW_USAGE(...)
-#define CONFIG_FEATURE_VERBOSE_USAGE 1
-#define ENABLE_FEATURE_VERBOSE_USAGE 1
-#define IF_FEATURE_VERBOSE_USAGE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VERBOSE_USAGE(...)
-#define CONFIG_FEATURE_COMPRESS_USAGE 1
-#define ENABLE_FEATURE_COMPRESS_USAGE 1
-#define IF_FEATURE_COMPRESS_USAGE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_COMPRESS_USAGE(...)
-#undef CONFIG_FEATURE_INSTALLER
-#define ENABLE_FEATURE_INSTALLER 0
-#define IF_FEATURE_INSTALLER(...)
-#define IF_NOT_FEATURE_INSTALLER(...) __VA_ARGS__
-#define CONFIG_INSTALL_NO_USR 1
-#define ENABLE_INSTALL_NO_USR 1
-#define IF_INSTALL_NO_USR(...) __VA_ARGS__
-#define IF_NOT_INSTALL_NO_USR(...)
-#undef CONFIG_LOCALE_SUPPORT
-#define ENABLE_LOCALE_SUPPORT 0
-#define IF_LOCALE_SUPPORT(...)
-#define IF_NOT_LOCALE_SUPPORT(...) __VA_ARGS__
-#define CONFIG_UNICODE_SUPPORT 1
-#define ENABLE_UNICODE_SUPPORT 1
-#define IF_UNICODE_SUPPORT(...) __VA_ARGS__
-#define IF_NOT_UNICODE_SUPPORT(...)
-#undef CONFIG_UNICODE_USING_LOCALE
-#define ENABLE_UNICODE_USING_LOCALE 0
-#define IF_UNICODE_USING_LOCALE(...)
-#define IF_NOT_UNICODE_USING_LOCALE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
-#define ENABLE_FEATURE_CHECK_UNICODE_IN_ENV 0
-#define IF_FEATURE_CHECK_UNICODE_IN_ENV(...)
-#define IF_NOT_FEATURE_CHECK_UNICODE_IN_ENV(...) __VA_ARGS__
-#define CONFIG_SUBST_WCHAR 63
-#define ENABLE_SUBST_WCHAR 1
-#define IF_SUBST_WCHAR(...) __VA_ARGS__
-#define IF_NOT_SUBST_WCHAR(...)
-#define CONFIG_LAST_SUPPORTED_WCHAR 0
-#define ENABLE_LAST_SUPPORTED_WCHAR 1
-#define IF_LAST_SUPPORTED_WCHAR(...) __VA_ARGS__
-#define IF_NOT_LAST_SUPPORTED_WCHAR(...)
-#undef CONFIG_UNICODE_COMBINING_WCHARS
-#define ENABLE_UNICODE_COMBINING_WCHARS 0
-#define IF_UNICODE_COMBINING_WCHARS(...)
-#define IF_NOT_UNICODE_COMBINING_WCHARS(...) __VA_ARGS__
-#define CONFIG_UNICODE_WIDE_WCHARS 1
-#define ENABLE_UNICODE_WIDE_WCHARS 1
-#define IF_UNICODE_WIDE_WCHARS(...) __VA_ARGS__
-#define IF_NOT_UNICODE_WIDE_WCHARS(...)
-#undef CONFIG_UNICODE_BIDI_SUPPORT
-#define ENABLE_UNICODE_BIDI_SUPPORT 0
-#define IF_UNICODE_BIDI_SUPPORT(...)
-#define IF_NOT_UNICODE_BIDI_SUPPORT(...) __VA_ARGS__
-#undef CONFIG_UNICODE_NEUTRAL_TABLE
-#define ENABLE_UNICODE_NEUTRAL_TABLE 0
-#define IF_UNICODE_NEUTRAL_TABLE(...)
-#define IF_NOT_UNICODE_NEUTRAL_TABLE(...) __VA_ARGS__
-#define CONFIG_UNICODE_PRESERVE_BROKEN 1
-#define ENABLE_UNICODE_PRESERVE_BROKEN 1
-#define IF_UNICODE_PRESERVE_BROKEN(...) __VA_ARGS__
-#define IF_NOT_UNICODE_PRESERVE_BROKEN(...)
-#define CONFIG_LONG_OPTS 1
-#define ENABLE_LONG_OPTS 1
-#define IF_LONG_OPTS(...) __VA_ARGS__
-#define IF_NOT_LONG_OPTS(...)
-#define CONFIG_FEATURE_DEVPTS 1
-#define ENABLE_FEATURE_DEVPTS 1
-#define IF_FEATURE_DEVPTS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DEVPTS(...)
-#undef CONFIG_FEATURE_CLEAN_UP
-#define ENABLE_FEATURE_CLEAN_UP 0
-#define IF_FEATURE_CLEAN_UP(...)
-#define IF_NOT_FEATURE_CLEAN_UP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UTMP
-#define ENABLE_FEATURE_UTMP 0
-#define IF_FEATURE_UTMP(...)
-#define IF_NOT_FEATURE_UTMP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_WTMP
-#define ENABLE_FEATURE_WTMP 0
-#define IF_FEATURE_WTMP(...)
-#define IF_NOT_FEATURE_WTMP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PIDFILE
-#define ENABLE_FEATURE_PIDFILE 0
-#define IF_FEATURE_PIDFILE(...)
-#define IF_NOT_FEATURE_PIDFILE(...) __VA_ARGS__
-#define CONFIG_PID_FILE_PATH ""
-#define ENABLE_PID_FILE_PATH 1
-#define IF_PID_FILE_PATH(...) __VA_ARGS__
-#define IF_NOT_PID_FILE_PATH(...)
-#define CONFIG_FEATURE_SUID 1
-#define ENABLE_FEATURE_SUID 1
-#define IF_FEATURE_SUID(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SUID(...)
-#undef CONFIG_FEATURE_SUID_CONFIG
-#define ENABLE_FEATURE_SUID_CONFIG 0
-#define IF_FEATURE_SUID_CONFIG(...)
-#define IF_NOT_FEATURE_SUID_CONFIG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SUID_CONFIG_QUIET
-#define ENABLE_FEATURE_SUID_CONFIG_QUIET 0
-#define IF_FEATURE_SUID_CONFIG_QUIET(...)
-#define IF_NOT_FEATURE_SUID_CONFIG_QUIET(...) __VA_ARGS__
-#undef CONFIG_SELINUX
-#define ENABLE_SELINUX 0
-#define IF_SELINUX(...)
-#define IF_NOT_SELINUX(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PREFER_APPLETS
-#define ENABLE_FEATURE_PREFER_APPLETS 0
-#define IF_FEATURE_PREFER_APPLETS(...)
-#define IF_NOT_FEATURE_PREFER_APPLETS(...) __VA_ARGS__
-#define CONFIG_BUSYBOX_EXEC_PATH "/proc/self/exe"
-#define ENABLE_BUSYBOX_EXEC_PATH 1
-#define IF_BUSYBOX_EXEC_PATH(...) __VA_ARGS__
-#define IF_NOT_BUSYBOX_EXEC_PATH(...)
-#define CONFIG_FEATURE_SYSLOG 1
-#define ENABLE_FEATURE_SYSLOG 1
-#define IF_FEATURE_SYSLOG(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SYSLOG(...)
-#define CONFIG_FEATURE_HAVE_RPC 1
-#define ENABLE_FEATURE_HAVE_RPC 1
-#define IF_FEATURE_HAVE_RPC(...) __VA_ARGS__
-#define IF_NOT_FEATURE_HAVE_RPC(...)
-
-/*
- * Build Options
- */
-#undef CONFIG_STATIC
-#define ENABLE_STATIC 0
-#define IF_STATIC(...)
-#define IF_NOT_STATIC(...) __VA_ARGS__
-#undef CONFIG_PIE
-#define ENABLE_PIE 0
-#define IF_PIE(...)
-#define IF_NOT_PIE(...) __VA_ARGS__
-#undef CONFIG_NOMMU
-#define ENABLE_NOMMU 0
-#define IF_NOMMU(...)
-#define IF_NOT_NOMMU(...) __VA_ARGS__
-#undef CONFIG_BUILD_LIBBUSYBOX
-#define ENABLE_BUILD_LIBBUSYBOX 0
-#define IF_BUILD_LIBBUSYBOX(...)
-#define IF_NOT_BUILD_LIBBUSYBOX(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INDIVIDUAL
-#define ENABLE_FEATURE_INDIVIDUAL 0
-#define IF_FEATURE_INDIVIDUAL(...)
-#define IF_NOT_FEATURE_INDIVIDUAL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SHARED_BUSYBOX
-#define ENABLE_FEATURE_SHARED_BUSYBOX 0
-#define IF_FEATURE_SHARED_BUSYBOX(...)
-#define IF_NOT_FEATURE_SHARED_BUSYBOX(...) __VA_ARGS__
-#undef CONFIG_LFS
-#define ENABLE_LFS 0
-#define IF_LFS(...)
-#define IF_NOT_LFS(...) __VA_ARGS__
-#define CONFIG_CROSS_COMPILER_PREFIX "arm-eabi-"
-#define ENABLE_CROSS_COMPILER_PREFIX 1
-#define IF_CROSS_COMPILER_PREFIX(...) __VA_ARGS__
-#define IF_NOT_CROSS_COMPILER_PREFIX(...)
-#define CONFIG_SYSROOT ""
-#define ENABLE_SYSROOT 1
-#define IF_SYSROOT(...) __VA_ARGS__
-#define IF_NOT_SYSROOT(...)
-#define CONFIG_EXTRA_CFLAGS "-Os -fno-short-enums -fgcse-after-reload -frerun-cse-after-loop -frename-registers"
-#define ENABLE_EXTRA_CFLAGS 1
-#define IF_EXTRA_CFLAGS(...) __VA_ARGS__
-#define IF_NOT_EXTRA_CFLAGS(...)
-#define CONFIG_EXTRA_LDFLAGS ""
-#define ENABLE_EXTRA_LDFLAGS 1
-#define IF_EXTRA_LDFLAGS(...) __VA_ARGS__
-#define IF_NOT_EXTRA_LDFLAGS(...)
-#define CONFIG_EXTRA_LDLIBS ""
-#define ENABLE_EXTRA_LDLIBS 1
-#define IF_EXTRA_LDLIBS(...) __VA_ARGS__
-#define IF_NOT_EXTRA_LDLIBS(...)
-
-/*
- * Debugging Options
- */
-#undef CONFIG_DEBUG
-#define ENABLE_DEBUG 0
-#define IF_DEBUG(...)
-#define IF_NOT_DEBUG(...) __VA_ARGS__
-#undef CONFIG_DEBUG_PESSIMIZE
-#define ENABLE_DEBUG_PESSIMIZE 0
-#define IF_DEBUG_PESSIMIZE(...)
-#define IF_NOT_DEBUG_PESSIMIZE(...) __VA_ARGS__
-#undef CONFIG_WERROR
-#define ENABLE_WERROR 0
-#define IF_WERROR(...)
-#define IF_NOT_WERROR(...) __VA_ARGS__
-#define CONFIG_NO_DEBUG_LIB 1
-#define ENABLE_NO_DEBUG_LIB 1
-#define IF_NO_DEBUG_LIB(...) __VA_ARGS__
-#define IF_NOT_NO_DEBUG_LIB(...)
-#undef CONFIG_DMALLOC
-#define ENABLE_DMALLOC 0
-#define IF_DMALLOC(...)
-#define IF_NOT_DMALLOC(...) __VA_ARGS__
-#undef CONFIG_EFENCE
-#define ENABLE_EFENCE 0
-#define IF_EFENCE(...)
-#define IF_NOT_EFENCE(...) __VA_ARGS__
-
-/*
- * Installation Options ("make install" behavior)
- */
-#define CONFIG_INSTALL_APPLET_SYMLINKS 1
-#define ENABLE_INSTALL_APPLET_SYMLINKS 1
-#define IF_INSTALL_APPLET_SYMLINKS(...) __VA_ARGS__
-#define IF_NOT_INSTALL_APPLET_SYMLINKS(...)
-#undef CONFIG_INSTALL_APPLET_HARDLINKS
-#define ENABLE_INSTALL_APPLET_HARDLINKS 0
-#define IF_INSTALL_APPLET_HARDLINKS(...)
-#define IF_NOT_INSTALL_APPLET_HARDLINKS(...) __VA_ARGS__
-#undef CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
-#define ENABLE_INSTALL_APPLET_SCRIPT_WRAPPERS 0
-#define IF_INSTALL_APPLET_SCRIPT_WRAPPERS(...)
-#define IF_NOT_INSTALL_APPLET_SCRIPT_WRAPPERS(...) __VA_ARGS__
-#undef CONFIG_INSTALL_APPLET_DONT
-#define ENABLE_INSTALL_APPLET_DONT 0
-#define IF_INSTALL_APPLET_DONT(...)
-#define IF_NOT_INSTALL_APPLET_DONT(...) __VA_ARGS__
-#undef CONFIG_INSTALL_SH_APPLET_SYMLINK
-#define ENABLE_INSTALL_SH_APPLET_SYMLINK 0
-#define IF_INSTALL_SH_APPLET_SYMLINK(...)
-#define IF_NOT_INSTALL_SH_APPLET_SYMLINK(...) __VA_ARGS__
-#undef CONFIG_INSTALL_SH_APPLET_HARDLINK
-#define ENABLE_INSTALL_SH_APPLET_HARDLINK 0
-#define IF_INSTALL_SH_APPLET_HARDLINK(...)
-#define IF_NOT_INSTALL_SH_APPLET_HARDLINK(...) __VA_ARGS__
-#undef CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
-#define ENABLE_INSTALL_SH_APPLET_SCRIPT_WRAPPER 0
-#define IF_INSTALL_SH_APPLET_SCRIPT_WRAPPER(...)
-#define IF_NOT_INSTALL_SH_APPLET_SCRIPT_WRAPPER(...) __VA_ARGS__
-#define CONFIG_PREFIX "./_install"
-#define ENABLE_PREFIX 1
-#define IF_PREFIX(...) __VA_ARGS__
-#define IF_NOT_PREFIX(...)
-
-/*
- * Busybox Library Tuning
- */
-#undef CONFIG_FEATURE_SYSTEMD
-#define ENABLE_FEATURE_SYSTEMD 0
-#define IF_FEATURE_SYSTEMD(...)
-#define IF_NOT_FEATURE_SYSTEMD(...) __VA_ARGS__
-#define CONFIG_FEATURE_RTMINMAX 1
-#define ENABLE_FEATURE_RTMINMAX 1
-#define IF_FEATURE_RTMINMAX(...) __VA_ARGS__
-#define IF_NOT_FEATURE_RTMINMAX(...)
-#define CONFIG_PASSWORD_MINLEN 6
-#define ENABLE_PASSWORD_MINLEN 1
-#define IF_PASSWORD_MINLEN(...) __VA_ARGS__
-#define IF_NOT_PASSWORD_MINLEN(...)
-#define CONFIG_MD5_SMALL 1
-#define ENABLE_MD5_SMALL 1
-#define IF_MD5_SMALL(...) __VA_ARGS__
-#define IF_NOT_MD5_SMALL(...)
-#define CONFIG_SHA3_SMALL 1
-#define ENABLE_SHA3_SMALL 1
-#define IF_SHA3_SMALL(...) __VA_ARGS__
-#define IF_NOT_SHA3_SMALL(...)
-#define CONFIG_FEATURE_FAST_TOP 1
-#define ENABLE_FEATURE_FAST_TOP 1
-#define IF_FEATURE_FAST_TOP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FAST_TOP(...)
-#undef CONFIG_FEATURE_ETC_NETWORKS
-#define ENABLE_FEATURE_ETC_NETWORKS 0
-#define IF_FEATURE_ETC_NETWORKS(...)
-#define IF_NOT_FEATURE_ETC_NETWORKS(...) __VA_ARGS__
-#define CONFIG_FEATURE_USE_TERMIOS 1
-#define ENABLE_FEATURE_USE_TERMIOS 1
-#define IF_FEATURE_USE_TERMIOS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_USE_TERMIOS(...)
-#define CONFIG_FEATURE_EDITING 1
-#define ENABLE_FEATURE_EDITING 1
-#define IF_FEATURE_EDITING(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING(...)
-#define CONFIG_FEATURE_EDITING_MAX_LEN 1024
-#define ENABLE_FEATURE_EDITING_MAX_LEN 1
-#define IF_FEATURE_EDITING_MAX_LEN(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_MAX_LEN(...)
-#define CONFIG_FEATURE_EDITING_VI 1
-#define ENABLE_FEATURE_EDITING_VI 1
-#define IF_FEATURE_EDITING_VI(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_VI(...)
-#define CONFIG_FEATURE_EDITING_HISTORY 256
-#define ENABLE_FEATURE_EDITING_HISTORY 1
-#define IF_FEATURE_EDITING_HISTORY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_HISTORY(...)
-#define CONFIG_FEATURE_EDITING_SAVEHISTORY 1
-#define ENABLE_FEATURE_EDITING_SAVEHISTORY 1
-#define IF_FEATURE_EDITING_SAVEHISTORY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_SAVEHISTORY(...)
-#undef CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
-#define ENABLE_FEATURE_EDITING_SAVE_ON_EXIT 0
-#define IF_FEATURE_EDITING_SAVE_ON_EXIT(...)
-#define IF_NOT_FEATURE_EDITING_SAVE_ON_EXIT(...) __VA_ARGS__
-#define CONFIG_FEATURE_REVERSE_SEARCH 1
-#define ENABLE_FEATURE_REVERSE_SEARCH 1
-#define IF_FEATURE_REVERSE_SEARCH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_REVERSE_SEARCH(...)
-#define CONFIG_FEATURE_TAB_COMPLETION 1
-#define ENABLE_FEATURE_TAB_COMPLETION 1
-#define IF_FEATURE_TAB_COMPLETION(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAB_COMPLETION(...)
-#undef CONFIG_FEATURE_USERNAME_COMPLETION
-#define ENABLE_FEATURE_USERNAME_COMPLETION 0
-#define IF_FEATURE_USERNAME_COMPLETION(...)
-#define IF_NOT_FEATURE_USERNAME_COMPLETION(...) __VA_ARGS__
-#define CONFIG_FEATURE_EDITING_FANCY_PROMPT 1
-#define ENABLE_FEATURE_EDITING_FANCY_PROMPT 1
-#define IF_FEATURE_EDITING_FANCY_PROMPT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_FANCY_PROMPT(...)
-#define CONFIG_FEATURE_EDITING_ASK_TERMINAL 1
-#define ENABLE_FEATURE_EDITING_ASK_TERMINAL 1
-#define IF_FEATURE_EDITING_ASK_TERMINAL(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_ASK_TERMINAL(...)
-#define CONFIG_FEATURE_NON_POSIX_CP 1
-#define ENABLE_FEATURE_NON_POSIX_CP 1
-#define IF_FEATURE_NON_POSIX_CP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_NON_POSIX_CP(...)
-#undef CONFIG_FEATURE_VERBOSE_CP_MESSAGE
-#define ENABLE_FEATURE_VERBOSE_CP_MESSAGE 0
-#define IF_FEATURE_VERBOSE_CP_MESSAGE(...)
-#define IF_NOT_FEATURE_VERBOSE_CP_MESSAGE(...) __VA_ARGS__
-#define CONFIG_FEATURE_COPYBUF_KB 4
-#define ENABLE_FEATURE_COPYBUF_KB 1
-#define IF_FEATURE_COPYBUF_KB(...) __VA_ARGS__
-#define IF_NOT_FEATURE_COPYBUF_KB(...)
-#define CONFIG_FEATURE_SKIP_ROOTFS 1
-#define ENABLE_FEATURE_SKIP_ROOTFS 1
-#define IF_FEATURE_SKIP_ROOTFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SKIP_ROOTFS(...)
-#define CONFIG_MONOTONIC_SYSCALL 1
-#define ENABLE_MONOTONIC_SYSCALL 1
-#define IF_MONOTONIC_SYSCALL(...) __VA_ARGS__
-#define IF_NOT_MONOTONIC_SYSCALL(...)
-#define CONFIG_IOCTL_HEX2STR_ERROR 1
-#define ENABLE_IOCTL_HEX2STR_ERROR 1
-#define IF_IOCTL_HEX2STR_ERROR(...) __VA_ARGS__
-#define IF_NOT_IOCTL_HEX2STR_ERROR(...)
-#undef CONFIG_FEATURE_HWIB
-#define ENABLE_FEATURE_HWIB 0
-#define IF_FEATURE_HWIB(...)
-#define IF_NOT_FEATURE_HWIB(...) __VA_ARGS__
-
-/*
- * Applets
- */
-
-/*
- * Archival Utilities
- */
-#define CONFIG_FEATURE_SEAMLESS_XZ 1
-#define ENABLE_FEATURE_SEAMLESS_XZ 1
-#define IF_FEATURE_SEAMLESS_XZ(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SEAMLESS_XZ(...)
-#define CONFIG_FEATURE_SEAMLESS_LZMA 1
-#define ENABLE_FEATURE_SEAMLESS_LZMA 1
-#define IF_FEATURE_SEAMLESS_LZMA(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SEAMLESS_LZMA(...)
-#define CONFIG_FEATURE_SEAMLESS_BZ2 1
-#define ENABLE_FEATURE_SEAMLESS_BZ2 1
-#define IF_FEATURE_SEAMLESS_BZ2(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SEAMLESS_BZ2(...)
-#define CONFIG_FEATURE_SEAMLESS_GZ 1
-#define ENABLE_FEATURE_SEAMLESS_GZ 1
-#define IF_FEATURE_SEAMLESS_GZ(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SEAMLESS_GZ(...)
-#undef CONFIG_FEATURE_SEAMLESS_Z
-#define ENABLE_FEATURE_SEAMLESS_Z 0
-#define IF_FEATURE_SEAMLESS_Z(...)
-#define IF_NOT_FEATURE_SEAMLESS_Z(...) __VA_ARGS__
-#undef CONFIG_AR
-#define ENABLE_AR 0
-#define IF_AR(...)
-#define IF_NOT_AR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_AR_LONG_FILENAMES
-#define ENABLE_FEATURE_AR_LONG_FILENAMES 0
-#define IF_FEATURE_AR_LONG_FILENAMES(...)
-#define IF_NOT_FEATURE_AR_LONG_FILENAMES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_AR_CREATE
-#define ENABLE_FEATURE_AR_CREATE 0
-#define IF_FEATURE_AR_CREATE(...)
-#define IF_NOT_FEATURE_AR_CREATE(...) __VA_ARGS__
-#define CONFIG_BUNZIP2 1
-#define ENABLE_BUNZIP2 1
-#define IF_BUNZIP2(...) __VA_ARGS__
-#define IF_NOT_BUNZIP2(...)
-#define CONFIG_BZIP2 1
-#define ENABLE_BZIP2 1
-#define IF_BZIP2(...) __VA_ARGS__
-#define IF_NOT_BZIP2(...)
-#define CONFIG_CPIO 1
-#define ENABLE_CPIO 1
-#define IF_CPIO(...) __VA_ARGS__
-#define IF_NOT_CPIO(...)
-#define CONFIG_FEATURE_CPIO_O 1
-#define ENABLE_FEATURE_CPIO_O 1
-#define IF_FEATURE_CPIO_O(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CPIO_O(...)
-#define CONFIG_FEATURE_CPIO_P 1
-#define ENABLE_FEATURE_CPIO_P 1
-#define IF_FEATURE_CPIO_P(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CPIO_P(...)
-#undef CONFIG_DPKG
-#define ENABLE_DPKG 0
-#define IF_DPKG(...)
-#define IF_NOT_DPKG(...) __VA_ARGS__
-#undef CONFIG_DPKG_DEB
-#define ENABLE_DPKG_DEB 0
-#define IF_DPKG_DEB(...)
-#define IF_NOT_DPKG_DEB(...) __VA_ARGS__
-#undef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
-#define ENABLE_FEATURE_DPKG_DEB_EXTRACT_ONLY 0
-#define IF_FEATURE_DPKG_DEB_EXTRACT_ONLY(...)
-#define IF_NOT_FEATURE_DPKG_DEB_EXTRACT_ONLY(...) __VA_ARGS__
-#define CONFIG_GUNZIP 1
-#define ENABLE_GUNZIP 1
-#define IF_GUNZIP(...) __VA_ARGS__
-#define IF_NOT_GUNZIP(...)
-#define CONFIG_GZIP 1
-#define ENABLE_GZIP 1
-#define IF_GZIP(...) __VA_ARGS__
-#define IF_NOT_GZIP(...)
-#define CONFIG_FEATURE_GZIP_LONG_OPTIONS 1
-#define ENABLE_FEATURE_GZIP_LONG_OPTIONS 1
-#define IF_FEATURE_GZIP_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GZIP_LONG_OPTIONS(...)
-#define CONFIG_GZIP_FAST 2
-#define ENABLE_GZIP_FAST 1
-#define IF_GZIP_FAST(...) __VA_ARGS__
-#define IF_NOT_GZIP_FAST(...)
-#define CONFIG_LZOP 1
-#define ENABLE_LZOP 1
-#define IF_LZOP(...) __VA_ARGS__
-#define IF_NOT_LZOP(...)
-#undef CONFIG_LZOP_COMPR_HIGH
-#define ENABLE_LZOP_COMPR_HIGH 0
-#define IF_LZOP_COMPR_HIGH(...)
-#define IF_NOT_LZOP_COMPR_HIGH(...) __VA_ARGS__
-#undef CONFIG_RPM2CPIO
-#define ENABLE_RPM2CPIO 0
-#define IF_RPM2CPIO(...)
-#define IF_NOT_RPM2CPIO(...) __VA_ARGS__
-#undef CONFIG_RPM
-#define ENABLE_RPM 0
-#define IF_RPM(...)
-#define IF_NOT_RPM(...) __VA_ARGS__
-#define CONFIG_TAR 1
-#define ENABLE_TAR 1
-#define IF_TAR(...) __VA_ARGS__
-#define IF_NOT_TAR(...)
-#define CONFIG_FEATURE_TAR_CREATE 1
-#define ENABLE_FEATURE_TAR_CREATE 1
-#define IF_FEATURE_TAR_CREATE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_CREATE(...)
-#define CONFIG_FEATURE_TAR_AUTODETECT 1
-#define ENABLE_FEATURE_TAR_AUTODETECT 1
-#define IF_FEATURE_TAR_AUTODETECT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_AUTODETECT(...)
-#define CONFIG_FEATURE_TAR_FROM 1
-#define ENABLE_FEATURE_TAR_FROM 1
-#define IF_FEATURE_TAR_FROM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_FROM(...)
-#undef CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY
-#define ENABLE_FEATURE_TAR_OLDGNU_COMPATIBILITY 0
-#define IF_FEATURE_TAR_OLDGNU_COMPATIBILITY(...)
-#define IF_NOT_FEATURE_TAR_OLDGNU_COMPATIBILITY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY
-#define ENABLE_FEATURE_TAR_OLDSUN_COMPATIBILITY 0
-#define IF_FEATURE_TAR_OLDSUN_COMPATIBILITY(...)
-#define IF_NOT_FEATURE_TAR_OLDSUN_COMPATIBILITY(...) __VA_ARGS__
-#define CONFIG_FEATURE_TAR_GNU_EXTENSIONS 1
-#define ENABLE_FEATURE_TAR_GNU_EXTENSIONS 1
-#define IF_FEATURE_TAR_GNU_EXTENSIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_GNU_EXTENSIONS(...)
-#define CONFIG_FEATURE_TAR_LONG_OPTIONS 1
-#define ENABLE_FEATURE_TAR_LONG_OPTIONS 1
-#define IF_FEATURE_TAR_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_LONG_OPTIONS(...)
-#define CONFIG_FEATURE_TAR_TO_COMMAND 1
-#define ENABLE_FEATURE_TAR_TO_COMMAND 1
-#define IF_FEATURE_TAR_TO_COMMAND(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_TO_COMMAND(...)
-#define CONFIG_FEATURE_TAR_UNAME_GNAME 1
-#define ENABLE_FEATURE_TAR_UNAME_GNAME 1
-#define IF_FEATURE_TAR_UNAME_GNAME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_UNAME_GNAME(...)
-#define CONFIG_FEATURE_TAR_NOPRESERVE_TIME 1
-#define ENABLE_FEATURE_TAR_NOPRESERVE_TIME 1
-#define IF_FEATURE_TAR_NOPRESERVE_TIME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_NOPRESERVE_TIME(...)
-#undef CONFIG_FEATURE_TAR_SELINUX
-#define ENABLE_FEATURE_TAR_SELINUX 0
-#define IF_FEATURE_TAR_SELINUX(...)
-#define IF_NOT_FEATURE_TAR_SELINUX(...) __VA_ARGS__
-#define CONFIG_UNCOMPRESS 1
-#define ENABLE_UNCOMPRESS 1
-#define IF_UNCOMPRESS(...) __VA_ARGS__
-#define IF_NOT_UNCOMPRESS(...)
-#define CONFIG_UNLZMA 1
-#define ENABLE_UNLZMA 1
-#define IF_UNLZMA(...) __VA_ARGS__
-#define IF_NOT_UNLZMA(...)
-#define CONFIG_FEATURE_LZMA_FAST 1
-#define ENABLE_FEATURE_LZMA_FAST 1
-#define IF_FEATURE_LZMA_FAST(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LZMA_FAST(...)
-#define CONFIG_LZMA 1
-#define ENABLE_LZMA 1
-#define IF_LZMA(...) __VA_ARGS__
-#define IF_NOT_LZMA(...)
-#define CONFIG_UNXZ 1
-#define ENABLE_UNXZ 1
-#define IF_UNXZ(...) __VA_ARGS__
-#define IF_NOT_UNXZ(...)
-#define CONFIG_XZ 1
-#define ENABLE_XZ 1
-#define IF_XZ(...) __VA_ARGS__
-#define IF_NOT_XZ(...)
-#define CONFIG_UNZIP 1
-#define ENABLE_UNZIP 1
-#define IF_UNZIP(...) __VA_ARGS__
-#define IF_NOT_UNZIP(...)
-
-/*
- * Coreutils
- */
-#define CONFIG_BASENAME 1
-#define ENABLE_BASENAME 1
-#define IF_BASENAME(...) __VA_ARGS__
-#define IF_NOT_BASENAME(...)
-#define CONFIG_CAT 1
-#define ENABLE_CAT 1
-#define IF_CAT(...) __VA_ARGS__
-#define IF_NOT_CAT(...)
-#define CONFIG_DATE 1
-#define ENABLE_DATE 1
-#define IF_DATE(...) __VA_ARGS__
-#define IF_NOT_DATE(...)
-#define CONFIG_FEATURE_DATE_ISOFMT 1
-#define ENABLE_FEATURE_DATE_ISOFMT 1
-#define IF_FEATURE_DATE_ISOFMT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DATE_ISOFMT(...)
-#undef CONFIG_FEATURE_DATE_NANO
-#define ENABLE_FEATURE_DATE_NANO 0
-#define IF_FEATURE_DATE_NANO(...)
-#define IF_NOT_FEATURE_DATE_NANO(...) __VA_ARGS__
-#define CONFIG_FEATURE_DATE_COMPAT 1
-#define ENABLE_FEATURE_DATE_COMPAT 1
-#define IF_FEATURE_DATE_COMPAT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DATE_COMPAT(...)
-#undef CONFIG_HOSTID
-#define ENABLE_HOSTID 0
-#define IF_HOSTID(...)
-#define IF_NOT_HOSTID(...) __VA_ARGS__
-#define CONFIG_ID 1
-#define ENABLE_ID 1
-#define IF_ID(...) __VA_ARGS__
-#define IF_NOT_ID(...)
-#define CONFIG_GROUPS 1
-#define ENABLE_GROUPS 1
-#define IF_GROUPS(...) __VA_ARGS__
-#define IF_NOT_GROUPS(...)
-#define CONFIG_TEST 1
-#define ENABLE_TEST 1
-#define IF_TEST(...) __VA_ARGS__
-#define IF_NOT_TEST(...)
-#undef CONFIG_FEATURE_TEST_64
-#define ENABLE_FEATURE_TEST_64 0
-#define IF_FEATURE_TEST_64(...)
-#define IF_NOT_FEATURE_TEST_64(...) __VA_ARGS__
-#define CONFIG_TOUCH 1
-#define ENABLE_TOUCH 1
-#define IF_TOUCH(...) __VA_ARGS__
-#define IF_NOT_TOUCH(...)
-#define CONFIG_FEATURE_TOUCH_SUSV3 1
-#define ENABLE_FEATURE_TOUCH_SUSV3 1
-#define IF_FEATURE_TOUCH_SUSV3(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOUCH_SUSV3(...)
-#define CONFIG_TR 1
-#define ENABLE_TR 1
-#define IF_TR(...) __VA_ARGS__
-#define IF_NOT_TR(...)
-#define CONFIG_FEATURE_TR_CLASSES 1
-#define ENABLE_FEATURE_TR_CLASSES 1
-#define IF_FEATURE_TR_CLASSES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TR_CLASSES(...)
-#undef CONFIG_FEATURE_TR_EQUIV
-#define ENABLE_FEATURE_TR_EQUIV 0
-#define IF_FEATURE_TR_EQUIV(...)
-#define IF_NOT_FEATURE_TR_EQUIV(...) __VA_ARGS__
-#define CONFIG_BASE64 1
-#define ENABLE_BASE64 1
-#define IF_BASE64(...) __VA_ARGS__
-#define IF_NOT_BASE64(...)
-#undef CONFIG_WHO
-#define ENABLE_WHO 0
-#define IF_WHO(...)
-#define IF_NOT_WHO(...) __VA_ARGS__
-#undef CONFIG_USERS
-#define ENABLE_USERS 0
-#define IF_USERS(...)
-#define IF_NOT_USERS(...) __VA_ARGS__
-#define CONFIG_CAL 1
-#define ENABLE_CAL 1
-#define IF_CAL(...) __VA_ARGS__
-#define IF_NOT_CAL(...)
-#define CONFIG_CATV 1
-#define ENABLE_CATV 1
-#define IF_CATV(...) __VA_ARGS__
-#define IF_NOT_CATV(...)
-#define CONFIG_CHGRP 1
-#define ENABLE_CHGRP 1
-#define IF_CHGRP(...) __VA_ARGS__
-#define IF_NOT_CHGRP(...)
-#define CONFIG_CHMOD 1
-#define ENABLE_CHMOD 1
-#define IF_CHMOD(...) __VA_ARGS__
-#define IF_NOT_CHMOD(...)
-#define CONFIG_CHOWN 1
-#define ENABLE_CHOWN 1
-#define IF_CHOWN(...) __VA_ARGS__
-#define IF_NOT_CHOWN(...)
-#define CONFIG_FEATURE_CHOWN_LONG_OPTIONS 1
-#define ENABLE_FEATURE_CHOWN_LONG_OPTIONS 1
-#define IF_FEATURE_CHOWN_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CHOWN_LONG_OPTIONS(...)
-#define CONFIG_CHROOT 1
-#define ENABLE_CHROOT 1
-#define IF_CHROOT(...) __VA_ARGS__
-#define IF_NOT_CHROOT(...)
-#undef CONFIG_CKSUM
-#define ENABLE_CKSUM 0
-#define IF_CKSUM(...)
-#define IF_NOT_CKSUM(...) __VA_ARGS__
-#define CONFIG_COMM 1
-#define ENABLE_COMM 1
-#define IF_COMM(...) __VA_ARGS__
-#define IF_NOT_COMM(...)
-#define CONFIG_CP 1
-#define ENABLE_CP 1
-#define IF_CP(...) __VA_ARGS__
-#define IF_NOT_CP(...)
-#define CONFIG_FEATURE_CP_LONG_OPTIONS 1
-#define ENABLE_FEATURE_CP_LONG_OPTIONS 1
-#define IF_FEATURE_CP_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CP_LONG_OPTIONS(...)
-#define CONFIG_CUT 1
-#define ENABLE_CUT 1
-#define IF_CUT(...) __VA_ARGS__
-#define IF_NOT_CUT(...)
-#define CONFIG_DD 1
-#define ENABLE_DD 1
-#define IF_DD(...) __VA_ARGS__
-#define IF_NOT_DD(...)
-#define CONFIG_FEATURE_DD_SIGNAL_HANDLING 1
-#define ENABLE_FEATURE_DD_SIGNAL_HANDLING 1
-#define IF_FEATURE_DD_SIGNAL_HANDLING(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DD_SIGNAL_HANDLING(...)
-#define CONFIG_FEATURE_DD_THIRD_STATUS_LINE 1
-#define ENABLE_FEATURE_DD_THIRD_STATUS_LINE 1
-#define IF_FEATURE_DD_THIRD_STATUS_LINE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DD_THIRD_STATUS_LINE(...)
-#define CONFIG_FEATURE_DD_IBS_OBS 1
-#define ENABLE_FEATURE_DD_IBS_OBS 1
-#define IF_FEATURE_DD_IBS_OBS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DD_IBS_OBS(...)
-#define CONFIG_DF 1
-#define ENABLE_DF 1
-#define IF_DF(...) __VA_ARGS__
-#define IF_NOT_DF(...)
-#define CONFIG_FEATURE_DF_FANCY 1
-#define ENABLE_FEATURE_DF_FANCY 1
-#define IF_FEATURE_DF_FANCY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DF_FANCY(...)
-#define CONFIG_DIRNAME 1
-#define ENABLE_DIRNAME 1
-#define IF_DIRNAME(...) __VA_ARGS__
-#define IF_NOT_DIRNAME(...)
-#define CONFIG_DOS2UNIX 1
-#define ENABLE_DOS2UNIX 1
-#define IF_DOS2UNIX(...) __VA_ARGS__
-#define IF_NOT_DOS2UNIX(...)
-#define CONFIG_UNIX2DOS 1
-#define ENABLE_UNIX2DOS 1
-#define IF_UNIX2DOS(...) __VA_ARGS__
-#define IF_NOT_UNIX2DOS(...)
-#define CONFIG_DU 1
-#define ENABLE_DU 1
-#define IF_DU(...) __VA_ARGS__
-#define IF_NOT_DU(...)
-#define CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K 1
-#define ENABLE_FEATURE_DU_DEFAULT_BLOCKSIZE_1K 1
-#define IF_FEATURE_DU_DEFAULT_BLOCKSIZE_1K(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DU_DEFAULT_BLOCKSIZE_1K(...)
-#define CONFIG_ECHO 1
-#define ENABLE_ECHO 1
-#define IF_ECHO(...) __VA_ARGS__
-#define IF_NOT_ECHO(...)
-#define CONFIG_FEATURE_FANCY_ECHO 1
-#define ENABLE_FEATURE_FANCY_ECHO 1
-#define IF_FEATURE_FANCY_ECHO(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FANCY_ECHO(...)
-#define CONFIG_ENV 1
-#define ENABLE_ENV 1
-#define IF_ENV(...) __VA_ARGS__
-#define IF_NOT_ENV(...)
-#define CONFIG_FEATURE_ENV_LONG_OPTIONS 1
-#define ENABLE_FEATURE_ENV_LONG_OPTIONS 1
-#define IF_FEATURE_ENV_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_ENV_LONG_OPTIONS(...)
-#define CONFIG_EXPAND 1
-#define ENABLE_EXPAND 1
-#define IF_EXPAND(...) __VA_ARGS__
-#define IF_NOT_EXPAND(...)
-#define CONFIG_FEATURE_EXPAND_LONG_OPTIONS 1
-#define ENABLE_FEATURE_EXPAND_LONG_OPTIONS 1
-#define IF_FEATURE_EXPAND_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EXPAND_LONG_OPTIONS(...)
-#define CONFIG_EXPR 1
-#define ENABLE_EXPR 1
-#define IF_EXPR(...) __VA_ARGS__
-#define IF_NOT_EXPR(...)
-#define CONFIG_EXPR_MATH_SUPPORT_64 1
-#define ENABLE_EXPR_MATH_SUPPORT_64 1
-#define IF_EXPR_MATH_SUPPORT_64(...) __VA_ARGS__
-#define IF_NOT_EXPR_MATH_SUPPORT_64(...)
-#define CONFIG_FALSE 1
-#define ENABLE_FALSE 1
-#define IF_FALSE(...) __VA_ARGS__
-#define IF_NOT_FALSE(...)
-#define CONFIG_FOLD 1
-#define ENABLE_FOLD 1
-#define IF_FOLD(...) __VA_ARGS__
-#define IF_NOT_FOLD(...)
-#define CONFIG_FSYNC 1
-#define ENABLE_FSYNC 1
-#define IF_FSYNC(...) __VA_ARGS__
-#define IF_NOT_FSYNC(...)
-#define CONFIG_HEAD 1
-#define ENABLE_HEAD 1
-#define IF_HEAD(...) __VA_ARGS__
-#define IF_NOT_HEAD(...)
-#define CONFIG_FEATURE_FANCY_HEAD 1
-#define ENABLE_FEATURE_FANCY_HEAD 1
-#define IF_FEATURE_FANCY_HEAD(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FANCY_HEAD(...)
-#define CONFIG_INSTALL 1
-#define ENABLE_INSTALL 1
-#define IF_INSTALL(...) __VA_ARGS__
-#define IF_NOT_INSTALL(...)
-#define CONFIG_FEATURE_INSTALL_LONG_OPTIONS 1
-#define ENABLE_FEATURE_INSTALL_LONG_OPTIONS 1
-#define IF_FEATURE_INSTALL_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_INSTALL_LONG_OPTIONS(...)
-#define CONFIG_LN 1
-#define ENABLE_LN 1
-#define IF_LN(...) __VA_ARGS__
-#define IF_NOT_LN(...)
-#undef CONFIG_LOGNAME
-#define ENABLE_LOGNAME 0
-#define IF_LOGNAME(...)
-#define IF_NOT_LOGNAME(...) __VA_ARGS__
-#define CONFIG_LS 1
-#define ENABLE_LS 1
-#define IF_LS(...) __VA_ARGS__
-#define IF_NOT_LS(...)
-#define CONFIG_FEATURE_LS_FILETYPES 1
-#define ENABLE_FEATURE_LS_FILETYPES 1
-#define IF_FEATURE_LS_FILETYPES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_FILETYPES(...)
-#define CONFIG_FEATURE_LS_FOLLOWLINKS 1
-#define ENABLE_FEATURE_LS_FOLLOWLINKS 1
-#define IF_FEATURE_LS_FOLLOWLINKS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_FOLLOWLINKS(...)
-#define CONFIG_FEATURE_LS_RECURSIVE 1
-#define ENABLE_FEATURE_LS_RECURSIVE 1
-#define IF_FEATURE_LS_RECURSIVE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_RECURSIVE(...)
-#define CONFIG_FEATURE_LS_SORTFILES 1
-#define ENABLE_FEATURE_LS_SORTFILES 1
-#define IF_FEATURE_LS_SORTFILES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_SORTFILES(...)
-#define CONFIG_FEATURE_LS_TIMESTAMPS 1
-#define ENABLE_FEATURE_LS_TIMESTAMPS 1
-#define IF_FEATURE_LS_TIMESTAMPS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_TIMESTAMPS(...)
-#define CONFIG_FEATURE_LS_USERNAME 1
-#define ENABLE_FEATURE_LS_USERNAME 1
-#define IF_FEATURE_LS_USERNAME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_USERNAME(...)
-#define CONFIG_FEATURE_LS_COLOR 1
-#define ENABLE_FEATURE_LS_COLOR 1
-#define IF_FEATURE_LS_COLOR(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_COLOR(...)
-#undef CONFIG_FEATURE_LS_COLOR_IS_DEFAULT
-#define ENABLE_FEATURE_LS_COLOR_IS_DEFAULT 0
-#define IF_FEATURE_LS_COLOR_IS_DEFAULT(...)
-#define IF_NOT_FEATURE_LS_COLOR_IS_DEFAULT(...) __VA_ARGS__
-#define CONFIG_MD5SUM 1
-#define ENABLE_MD5SUM 1
-#define IF_MD5SUM(...) __VA_ARGS__
-#define IF_NOT_MD5SUM(...)
-#define CONFIG_MKDIR 1
-#define ENABLE_MKDIR 1
-#define IF_MKDIR(...) __VA_ARGS__
-#define IF_NOT_MKDIR(...)
-#define CONFIG_FEATURE_MKDIR_LONG_OPTIONS 1
-#define ENABLE_FEATURE_MKDIR_LONG_OPTIONS 1
-#define IF_FEATURE_MKDIR_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MKDIR_LONG_OPTIONS(...)
-#define CONFIG_MKFIFO 1
-#define ENABLE_MKFIFO 1
-#define IF_MKFIFO(...) __VA_ARGS__
-#define IF_NOT_MKFIFO(...)
-#define CONFIG_MKNOD 1
-#define ENABLE_MKNOD 1
-#define IF_MKNOD(...) __VA_ARGS__
-#define IF_NOT_MKNOD(...)
-#define CONFIG_MV 1
-#define ENABLE_MV 1
-#define IF_MV(...) __VA_ARGS__
-#define IF_NOT_MV(...)
-#define CONFIG_FEATURE_MV_LONG_OPTIONS 1
-#define ENABLE_FEATURE_MV_LONG_OPTIONS 1
-#define IF_FEATURE_MV_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MV_LONG_OPTIONS(...)
-#define CONFIG_NICE 1
-#define ENABLE_NICE 1
-#define IF_NICE(...) __VA_ARGS__
-#define IF_NOT_NICE(...)
-#define CONFIG_NOHUP 1
-#define ENABLE_NOHUP 1
-#define IF_NOHUP(...) __VA_ARGS__
-#define IF_NOT_NOHUP(...)
-#define CONFIG_OD 1
-#define ENABLE_OD 1
-#define IF_OD(...) __VA_ARGS__
-#define IF_NOT_OD(...)
-#define CONFIG_PRINTENV 1
-#define ENABLE_PRINTENV 1
-#define IF_PRINTENV(...) __VA_ARGS__
-#define IF_NOT_PRINTENV(...)
-#define CONFIG_PRINTF 1
-#define ENABLE_PRINTF 1
-#define IF_PRINTF(...) __VA_ARGS__
-#define IF_NOT_PRINTF(...)
-#define CONFIG_PWD 1
-#define ENABLE_PWD 1
-#define IF_PWD(...) __VA_ARGS__
-#define IF_NOT_PWD(...)
-#define CONFIG_READLINK 1
-#define ENABLE_READLINK 1
-#define IF_READLINK(...) __VA_ARGS__
-#define IF_NOT_READLINK(...)
-#define CONFIG_FEATURE_READLINK_FOLLOW 1
-#define ENABLE_FEATURE_READLINK_FOLLOW 1
-#define IF_FEATURE_READLINK_FOLLOW(...) __VA_ARGS__
-#define IF_NOT_FEATURE_READLINK_FOLLOW(...)
-#define CONFIG_REALPATH 1
-#define ENABLE_REALPATH 1
-#define IF_REALPATH(...) __VA_ARGS__
-#define IF_NOT_REALPATH(...)
-#define CONFIG_RM 1
-#define ENABLE_RM 1
-#define IF_RM(...) __VA_ARGS__
-#define IF_NOT_RM(...)
-#define CONFIG_RMDIR 1
-#define ENABLE_RMDIR 1
-#define IF_RMDIR(...) __VA_ARGS__
-#define IF_NOT_RMDIR(...)
-#define CONFIG_FEATURE_RMDIR_LONG_OPTIONS 1
-#define ENABLE_FEATURE_RMDIR_LONG_OPTIONS 1
-#define IF_FEATURE_RMDIR_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_RMDIR_LONG_OPTIONS(...)
-#define CONFIG_SEQ 1
-#define ENABLE_SEQ 1
-#define IF_SEQ(...) __VA_ARGS__
-#define IF_NOT_SEQ(...)
-#define CONFIG_SHA1SUM 1
-#define ENABLE_SHA1SUM 1
-#define IF_SHA1SUM(...) __VA_ARGS__
-#define IF_NOT_SHA1SUM(...)
-#define CONFIG_SHA256SUM 1
-#define ENABLE_SHA256SUM 1
-#define IF_SHA256SUM(...) __VA_ARGS__
-#define IF_NOT_SHA256SUM(...)
-#define CONFIG_SHA512SUM 1
-#define ENABLE_SHA512SUM 1
-#define IF_SHA512SUM(...) __VA_ARGS__
-#define IF_NOT_SHA512SUM(...)
-#define CONFIG_SHA3SUM 1
-#define ENABLE_SHA3SUM 1
-#define IF_SHA3SUM(...) __VA_ARGS__
-#define IF_NOT_SHA3SUM(...)
-#define CONFIG_SLEEP 1
-#define ENABLE_SLEEP 1
-#define IF_SLEEP(...) __VA_ARGS__
-#define IF_NOT_SLEEP(...)
-#define CONFIG_FEATURE_FANCY_SLEEP 1
-#define ENABLE_FEATURE_FANCY_SLEEP 1
-#define IF_FEATURE_FANCY_SLEEP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FANCY_SLEEP(...)
-#define CONFIG_FEATURE_FLOAT_SLEEP 1
-#define ENABLE_FEATURE_FLOAT_SLEEP 1
-#define IF_FEATURE_FLOAT_SLEEP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FLOAT_SLEEP(...)
-#define CONFIG_SORT 1
-#define ENABLE_SORT 1
-#define IF_SORT(...) __VA_ARGS__
-#define IF_NOT_SORT(...)
-#define CONFIG_FEATURE_SORT_BIG 1
-#define ENABLE_FEATURE_SORT_BIG 1
-#define IF_FEATURE_SORT_BIG(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SORT_BIG(...)
-#define CONFIG_SPLIT 1
-#define ENABLE_SPLIT 1
-#define IF_SPLIT(...) __VA_ARGS__
-#define IF_NOT_SPLIT(...)
-#define CONFIG_FEATURE_SPLIT_FANCY 1
-#define ENABLE_FEATURE_SPLIT_FANCY 1
-#define IF_FEATURE_SPLIT_FANCY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SPLIT_FANCY(...)
-#define CONFIG_STAT 1
-#define ENABLE_STAT 1
-#define IF_STAT(...) __VA_ARGS__
-#define IF_NOT_STAT(...)
-#undef CONFIG_FEATURE_STAT_FORMAT
-#define ENABLE_FEATURE_STAT_FORMAT 0
-#define IF_FEATURE_STAT_FORMAT(...)
-#define IF_NOT_FEATURE_STAT_FORMAT(...) __VA_ARGS__
-#define CONFIG_STTY 1
-#define ENABLE_STTY 1
-#define IF_STTY(...) __VA_ARGS__
-#define IF_NOT_STTY(...)
-#define CONFIG_SUM 1
-#define ENABLE_SUM 1
-#define IF_SUM(...) __VA_ARGS__
-#define IF_NOT_SUM(...)
-#define CONFIG_SYNC 1
-#define ENABLE_SYNC 1
-#define IF_SYNC(...) __VA_ARGS__
-#define IF_NOT_SYNC(...)
-#define CONFIG_TAC 1
-#define ENABLE_TAC 1
-#define IF_TAC(...) __VA_ARGS__
-#define IF_NOT_TAC(...)
-#define CONFIG_TAIL 1
-#define ENABLE_TAIL 1
-#define IF_TAIL(...) __VA_ARGS__
-#define IF_NOT_TAIL(...)
-#define CONFIG_FEATURE_FANCY_TAIL 1
-#define ENABLE_FEATURE_FANCY_TAIL 1
-#define IF_FEATURE_FANCY_TAIL(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FANCY_TAIL(...)
-#define CONFIG_TEE 1
-#define ENABLE_TEE 1
-#define IF_TEE(...) __VA_ARGS__
-#define IF_NOT_TEE(...)
-#define CONFIG_FEATURE_TEE_USE_BLOCK_IO 1
-#define ENABLE_FEATURE_TEE_USE_BLOCK_IO 1
-#define IF_FEATURE_TEE_USE_BLOCK_IO(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TEE_USE_BLOCK_IO(...)
-#define CONFIG_TRUE 1
-#define ENABLE_TRUE 1
-#define IF_TRUE(...) __VA_ARGS__
-#define IF_NOT_TRUE(...)
-#undef CONFIG_TTY
-#define ENABLE_TTY 0
-#define IF_TTY(...)
-#define IF_NOT_TTY(...) __VA_ARGS__
-#define CONFIG_UNAME 1
-#define ENABLE_UNAME 1
-#define IF_UNAME(...) __VA_ARGS__
-#define IF_NOT_UNAME(...)
-#define CONFIG_UNEXPAND 1
-#define ENABLE_UNEXPAND 1
-#define IF_UNEXPAND(...) __VA_ARGS__
-#define IF_NOT_UNEXPAND(...)
-#define CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS 1
-#define ENABLE_FEATURE_UNEXPAND_LONG_OPTIONS 1
-#define IF_FEATURE_UNEXPAND_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_UNEXPAND_LONG_OPTIONS(...)
-#define CONFIG_UNIQ 1
-#define ENABLE_UNIQ 1
-#define IF_UNIQ(...) __VA_ARGS__
-#define IF_NOT_UNIQ(...)
-#define CONFIG_USLEEP 1
-#define ENABLE_USLEEP 1
-#define IF_USLEEP(...) __VA_ARGS__
-#define IF_NOT_USLEEP(...)
-#define CONFIG_UUDECODE 1
-#define ENABLE_UUDECODE 1
-#define IF_UUDECODE(...) __VA_ARGS__
-#define IF_NOT_UUDECODE(...)
-#define CONFIG_UUENCODE 1
-#define ENABLE_UUENCODE 1
-#define IF_UUENCODE(...) __VA_ARGS__
-#define IF_NOT_UUENCODE(...)
-#define CONFIG_WC 1
-#define ENABLE_WC 1
-#define IF_WC(...) __VA_ARGS__
-#define IF_NOT_WC(...)
-#undef CONFIG_FEATURE_WC_LARGE
-#define ENABLE_FEATURE_WC_LARGE 0
-#define IF_FEATURE_WC_LARGE(...)
-#define IF_NOT_FEATURE_WC_LARGE(...) __VA_ARGS__
-#define CONFIG_WHOAMI 1
-#define ENABLE_WHOAMI 1
-#define IF_WHOAMI(...) __VA_ARGS__
-#define IF_NOT_WHOAMI(...)
-#define CONFIG_YES 1
-#define ENABLE_YES 1
-#define IF_YES(...) __VA_ARGS__
-#define IF_NOT_YES(...)
-
-/*
- * Common options for cp and mv
- */
-#define CONFIG_FEATURE_PRESERVE_HARDLINKS 1
-#define ENABLE_FEATURE_PRESERVE_HARDLINKS 1
-#define IF_FEATURE_PRESERVE_HARDLINKS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PRESERVE_HARDLINKS(...)
-
-/*
- * Common options for ls, more and telnet
- */
-#define CONFIG_FEATURE_AUTOWIDTH 1
-#define ENABLE_FEATURE_AUTOWIDTH 1
-#define IF_FEATURE_AUTOWIDTH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_AUTOWIDTH(...)
-
-/*
- * Common options for df, du, ls
- */
-#define CONFIG_FEATURE_HUMAN_READABLE 1
-#define ENABLE_FEATURE_HUMAN_READABLE 1
-#define IF_FEATURE_HUMAN_READABLE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_HUMAN_READABLE(...)
-
-/*
- * Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
- */
-#define CONFIG_FEATURE_MD5_SHA1_SUM_CHECK 1
-#define ENABLE_FEATURE_MD5_SHA1_SUM_CHECK 1
-#define IF_FEATURE_MD5_SHA1_SUM_CHECK(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MD5_SHA1_SUM_CHECK(...)
-
-/*
- * Console Utilities
- */
-#undef CONFIG_CHVT
-#define ENABLE_CHVT 0
-#define IF_CHVT(...)
-#define IF_NOT_CHVT(...) __VA_ARGS__
-#undef CONFIG_FGCONSOLE
-#define ENABLE_FGCONSOLE 0
-#define IF_FGCONSOLE(...)
-#define IF_NOT_FGCONSOLE(...) __VA_ARGS__
-#define CONFIG_CLEAR 1
-#define ENABLE_CLEAR 1
-#define IF_CLEAR(...) __VA_ARGS__
-#define IF_NOT_CLEAR(...)
-#undef CONFIG_DEALLOCVT
-#define ENABLE_DEALLOCVT 0
-#define IF_DEALLOCVT(...)
-#define IF_NOT_DEALLOCVT(...) __VA_ARGS__
-#undef CONFIG_DUMPKMAP
-#define ENABLE_DUMPKMAP 0
-#define IF_DUMPKMAP(...)
-#define IF_NOT_DUMPKMAP(...) __VA_ARGS__
-#undef CONFIG_KBD_MODE
-#define ENABLE_KBD_MODE 0
-#define IF_KBD_MODE(...)
-#define IF_NOT_KBD_MODE(...) __VA_ARGS__
-#undef CONFIG_LOADFONT
-#define ENABLE_LOADFONT 0
-#define IF_LOADFONT(...)
-#define IF_NOT_LOADFONT(...) __VA_ARGS__
-#undef CONFIG_LOADKMAP
-#define ENABLE_LOADKMAP 0
-#define IF_LOADKMAP(...)
-#define IF_NOT_LOADKMAP(...) __VA_ARGS__
-#undef CONFIG_OPENVT
-#define ENABLE_OPENVT 0
-#define IF_OPENVT(...)
-#define IF_NOT_OPENVT(...) __VA_ARGS__
-#define CONFIG_RESET 1
-#define ENABLE_RESET 1
-#define IF_RESET(...) __VA_ARGS__
-#define IF_NOT_RESET(...)
-#define CONFIG_RESIZE 1
-#define ENABLE_RESIZE 1
-#define IF_RESIZE(...) __VA_ARGS__
-#define IF_NOT_RESIZE(...)
-#undef CONFIG_FEATURE_RESIZE_PRINT
-#define ENABLE_FEATURE_RESIZE_PRINT 0
-#define IF_FEATURE_RESIZE_PRINT(...)
-#define IF_NOT_FEATURE_RESIZE_PRINT(...) __VA_ARGS__
-#define CONFIG_SETCONSOLE 1
-#define ENABLE_SETCONSOLE 1
-#define IF_SETCONSOLE(...) __VA_ARGS__
-#define IF_NOT_SETCONSOLE(...)
-#undef CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
-#define ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS 0
-#define IF_FEATURE_SETCONSOLE_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_SETCONSOLE_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_SETFONT
-#define ENABLE_SETFONT 0
-#define IF_SETFONT(...)
-#define IF_NOT_SETFONT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SETFONT_TEXTUAL_MAP
-#define ENABLE_FEATURE_SETFONT_TEXTUAL_MAP 0
-#define IF_FEATURE_SETFONT_TEXTUAL_MAP(...)
-#define IF_NOT_FEATURE_SETFONT_TEXTUAL_MAP(...) __VA_ARGS__
-#define CONFIG_DEFAULT_SETFONT_DIR ""
-#define ENABLE_DEFAULT_SETFONT_DIR 1
-#define IF_DEFAULT_SETFONT_DIR(...) __VA_ARGS__
-#define IF_NOT_DEFAULT_SETFONT_DIR(...)
-#undef CONFIG_SETKEYCODES
-#define ENABLE_SETKEYCODES 0
-#define IF_SETKEYCODES(...)
-#define IF_NOT_SETKEYCODES(...) __VA_ARGS__
-#undef CONFIG_SETLOGCONS
-#define ENABLE_SETLOGCONS 0
-#define IF_SETLOGCONS(...)
-#define IF_NOT_SETLOGCONS(...) __VA_ARGS__
-#undef CONFIG_SHOWKEY
-#define ENABLE_SHOWKEY 0
-#define IF_SHOWKEY(...)
-#define IF_NOT_SHOWKEY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LOADFONT_PSF2
-#define ENABLE_FEATURE_LOADFONT_PSF2 0
-#define IF_FEATURE_LOADFONT_PSF2(...)
-#define IF_NOT_FEATURE_LOADFONT_PSF2(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LOADFONT_RAW
-#define ENABLE_FEATURE_LOADFONT_RAW 0
-#define IF_FEATURE_LOADFONT_RAW(...)
-#define IF_NOT_FEATURE_LOADFONT_RAW(...) __VA_ARGS__
-
-/*
- * Debian Utilities
- */
-#define CONFIG_MKTEMP 1
-#define ENABLE_MKTEMP 1
-#define IF_MKTEMP(...) __VA_ARGS__
-#define IF_NOT_MKTEMP(...)
-#define CONFIG_PIPE_PROGRESS 1
-#define ENABLE_PIPE_PROGRESS 1
-#define IF_PIPE_PROGRESS(...) __VA_ARGS__
-#define IF_NOT_PIPE_PROGRESS(...)
-#define CONFIG_RUN_PARTS 1
-#define ENABLE_RUN_PARTS 1
-#define IF_RUN_PARTS(...) __VA_ARGS__
-#define IF_NOT_RUN_PARTS(...)
-#define CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS 1
-#define ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS 1
-#define IF_FEATURE_RUN_PARTS_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_RUN_PARTS_LONG_OPTIONS(...)
-#define CONFIG_FEATURE_RUN_PARTS_FANCY 1
-#define ENABLE_FEATURE_RUN_PARTS_FANCY 1
-#define IF_FEATURE_RUN_PARTS_FANCY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_RUN_PARTS_FANCY(...)
-#undef CONFIG_START_STOP_DAEMON
-#define ENABLE_START_STOP_DAEMON 0
-#define IF_START_STOP_DAEMON(...)
-#define IF_NOT_START_STOP_DAEMON(...) __VA_ARGS__
-#undef CONFIG_FEATURE_START_STOP_DAEMON_FANCY
-#define ENABLE_FEATURE_START_STOP_DAEMON_FANCY 0
-#define IF_FEATURE_START_STOP_DAEMON_FANCY(...)
-#define IF_NOT_FEATURE_START_STOP_DAEMON_FANCY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
-#define ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS 0
-#define IF_FEATURE_START_STOP_DAEMON_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_START_STOP_DAEMON_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_WHICH 1
-#define ENABLE_WHICH 1
-#define IF_WHICH(...) __VA_ARGS__
-#define IF_NOT_WHICH(...)
-
-/*
- * Editors
- */
-#define CONFIG_PATCH 1
-#define ENABLE_PATCH 1
-#define IF_PATCH(...) __VA_ARGS__
-#define IF_NOT_PATCH(...)
-#define CONFIG_VI 1
-#define ENABLE_VI 1
-#define IF_VI(...) __VA_ARGS__
-#define IF_NOT_VI(...)
-#define CONFIG_FEATURE_VI_MAX_LEN 256
-#define ENABLE_FEATURE_VI_MAX_LEN 1
-#define IF_FEATURE_VI_MAX_LEN(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_MAX_LEN(...)
-#define CONFIG_FEATURE_VI_8BIT 1
-#define ENABLE_FEATURE_VI_8BIT 1
-#define IF_FEATURE_VI_8BIT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_8BIT(...)
-#define CONFIG_FEATURE_VI_COLON 1
-#define ENABLE_FEATURE_VI_COLON 1
-#define IF_FEATURE_VI_COLON(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_COLON(...)
-#define CONFIG_FEATURE_VI_YANKMARK 1
-#define ENABLE_FEATURE_VI_YANKMARK 1
-#define IF_FEATURE_VI_YANKMARK(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_YANKMARK(...)
-#define CONFIG_FEATURE_VI_SEARCH 1
-#define ENABLE_FEATURE_VI_SEARCH 1
-#define IF_FEATURE_VI_SEARCH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_SEARCH(...)
-#define CONFIG_FEATURE_VI_REGEX_SEARCH 1
-#define ENABLE_FEATURE_VI_REGEX_SEARCH 1
-#define IF_FEATURE_VI_REGEX_SEARCH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_REGEX_SEARCH(...)
-#define CONFIG_FEATURE_VI_USE_SIGNALS 1
-#define ENABLE_FEATURE_VI_USE_SIGNALS 1
-#define IF_FEATURE_VI_USE_SIGNALS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_USE_SIGNALS(...)
-#define CONFIG_FEATURE_VI_DOT_CMD 1
-#define ENABLE_FEATURE_VI_DOT_CMD 1
-#define IF_FEATURE_VI_DOT_CMD(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_DOT_CMD(...)
-#define CONFIG_FEATURE_VI_READONLY 1
-#define ENABLE_FEATURE_VI_READONLY 1
-#define IF_FEATURE_VI_READONLY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_READONLY(...)
-#define CONFIG_FEATURE_VI_SETOPTS 1
-#define ENABLE_FEATURE_VI_SETOPTS 1
-#define IF_FEATURE_VI_SETOPTS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_SETOPTS(...)
-#define CONFIG_FEATURE_VI_SET 1
-#define ENABLE_FEATURE_VI_SET 1
-#define IF_FEATURE_VI_SET(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_SET(...)
-#define CONFIG_FEATURE_VI_WIN_RESIZE 1
-#define ENABLE_FEATURE_VI_WIN_RESIZE 1
-#define IF_FEATURE_VI_WIN_RESIZE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_WIN_RESIZE(...)
-#define CONFIG_FEATURE_VI_ASK_TERMINAL 1
-#define ENABLE_FEATURE_VI_ASK_TERMINAL 1
-#define IF_FEATURE_VI_ASK_TERMINAL(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_ASK_TERMINAL(...)
-#define CONFIG_AWK 1
-#define ENABLE_AWK 1
-#define IF_AWK(...) __VA_ARGS__
-#define IF_NOT_AWK(...)
-#define CONFIG_FEATURE_AWK_LIBM 1
-#define ENABLE_FEATURE_AWK_LIBM 1
-#define IF_FEATURE_AWK_LIBM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_AWK_LIBM(...)
-#define CONFIG_CMP 1
-#define ENABLE_CMP 1
-#define IF_CMP(...) __VA_ARGS__
-#define IF_NOT_CMP(...)
-#define CONFIG_DIFF 1
-#define ENABLE_DIFF 1
-#define IF_DIFF(...) __VA_ARGS__
-#define IF_NOT_DIFF(...)
-#define CONFIG_FEATURE_DIFF_LONG_OPTIONS 1
-#define ENABLE_FEATURE_DIFF_LONG_OPTIONS 1
-#define IF_FEATURE_DIFF_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DIFF_LONG_OPTIONS(...)
-#define CONFIG_FEATURE_DIFF_DIR 1
-#define ENABLE_FEATURE_DIFF_DIR 1
-#define IF_FEATURE_DIFF_DIR(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DIFF_DIR(...)
-#define CONFIG_ED 1
-#define ENABLE_ED 1
-#define IF_ED(...) __VA_ARGS__
-#define IF_NOT_ED(...)
-#define CONFIG_SED 1
-#define ENABLE_SED 1
-#define IF_SED(...) __VA_ARGS__
-#define IF_NOT_SED(...)
-#define CONFIG_FEATURE_ALLOW_EXEC 1
-#define ENABLE_FEATURE_ALLOW_EXEC 1
-#define IF_FEATURE_ALLOW_EXEC(...) __VA_ARGS__
-#define IF_NOT_FEATURE_ALLOW_EXEC(...)
-
-/*
- * Finding Utilities
- */
-#define CONFIG_FIND 1
-#define ENABLE_FIND 1
-#define IF_FIND(...) __VA_ARGS__
-#define IF_NOT_FIND(...)
-#define CONFIG_FEATURE_FIND_PRINT0 1
-#define ENABLE_FEATURE_FIND_PRINT0 1
-#define IF_FEATURE_FIND_PRINT0(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PRINT0(...)
-#define CONFIG_FEATURE_FIND_MTIME 1
-#define ENABLE_FEATURE_FIND_MTIME 1
-#define IF_FEATURE_FIND_MTIME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_MTIME(...)
-#define CONFIG_FEATURE_FIND_MMIN 1
-#define ENABLE_FEATURE_FIND_MMIN 1
-#define IF_FEATURE_FIND_MMIN(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_MMIN(...)
-#define CONFIG_FEATURE_FIND_PERM 1
-#define ENABLE_FEATURE_FIND_PERM 1
-#define IF_FEATURE_FIND_PERM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PERM(...)
-#define CONFIG_FEATURE_FIND_TYPE 1
-#define ENABLE_FEATURE_FIND_TYPE 1
-#define IF_FEATURE_FIND_TYPE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_TYPE(...)
-#define CONFIG_FEATURE_FIND_XDEV 1
-#define ENABLE_FEATURE_FIND_XDEV 1
-#define IF_FEATURE_FIND_XDEV(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_XDEV(...)
-#define CONFIG_FEATURE_FIND_MAXDEPTH 1
-#define ENABLE_FEATURE_FIND_MAXDEPTH 1
-#define IF_FEATURE_FIND_MAXDEPTH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_MAXDEPTH(...)
-#define CONFIG_FEATURE_FIND_NEWER 1
-#define ENABLE_FEATURE_FIND_NEWER 1
-#define IF_FEATURE_FIND_NEWER(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_NEWER(...)
-#undef CONFIG_FEATURE_FIND_INUM
-#define ENABLE_FEATURE_FIND_INUM 0
-#define IF_FEATURE_FIND_INUM(...)
-#define IF_NOT_FEATURE_FIND_INUM(...) __VA_ARGS__
-#define CONFIG_FEATURE_FIND_EXEC 1
-#define ENABLE_FEATURE_FIND_EXEC 1
-#define IF_FEATURE_FIND_EXEC(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_EXEC(...)
-#define CONFIG_FEATURE_FIND_USER 1
-#define ENABLE_FEATURE_FIND_USER 1
-#define IF_FEATURE_FIND_USER(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_USER(...)
-#define CONFIG_FEATURE_FIND_GROUP 1
-#define ENABLE_FEATURE_FIND_GROUP 1
-#define IF_FEATURE_FIND_GROUP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_GROUP(...)
-#define CONFIG_FEATURE_FIND_NOT 1
-#define ENABLE_FEATURE_FIND_NOT 1
-#define IF_FEATURE_FIND_NOT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_NOT(...)
-#define CONFIG_FEATURE_FIND_DEPTH 1
-#define ENABLE_FEATURE_FIND_DEPTH 1
-#define IF_FEATURE_FIND_DEPTH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_DEPTH(...)
-#define CONFIG_FEATURE_FIND_PAREN 1
-#define ENABLE_FEATURE_FIND_PAREN 1
-#define IF_FEATURE_FIND_PAREN(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PAREN(...)
-#define CONFIG_FEATURE_FIND_SIZE 1
-#define ENABLE_FEATURE_FIND_SIZE 1
-#define IF_FEATURE_FIND_SIZE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_SIZE(...)
-#define CONFIG_FEATURE_FIND_PRUNE 1
-#define ENABLE_FEATURE_FIND_PRUNE 1
-#define IF_FEATURE_FIND_PRUNE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PRUNE(...)
-#undef CONFIG_FEATURE_FIND_DELETE
-#define ENABLE_FEATURE_FIND_DELETE 0
-#define IF_FEATURE_FIND_DELETE(...)
-#define IF_NOT_FEATURE_FIND_DELETE(...) __VA_ARGS__
-#define CONFIG_FEATURE_FIND_PATH 1
-#define ENABLE_FEATURE_FIND_PATH 1
-#define IF_FEATURE_FIND_PATH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PATH(...)
-#define CONFIG_FEATURE_FIND_REGEX 1
-#define ENABLE_FEATURE_FIND_REGEX 1
-#define IF_FEATURE_FIND_REGEX(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_REGEX(...)
-#undef CONFIG_FEATURE_FIND_CONTEXT
-#define ENABLE_FEATURE_FIND_CONTEXT 0
-#define IF_FEATURE_FIND_CONTEXT(...)
-#define IF_NOT_FEATURE_FIND_CONTEXT(...) __VA_ARGS__
-#define CONFIG_FEATURE_FIND_LINKS 1
-#define ENABLE_FEATURE_FIND_LINKS 1
-#define IF_FEATURE_FIND_LINKS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_LINKS(...)
-#define CONFIG_GREP 1
-#define ENABLE_GREP 1
-#define IF_GREP(...) __VA_ARGS__
-#define IF_NOT_GREP(...)
-#define CONFIG_FEATURE_GREP_EGREP_ALIAS 1
-#define ENABLE_FEATURE_GREP_EGREP_ALIAS 1
-#define IF_FEATURE_GREP_EGREP_ALIAS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GREP_EGREP_ALIAS(...)
-#define CONFIG_FEATURE_GREP_FGREP_ALIAS 1
-#define ENABLE_FEATURE_GREP_FGREP_ALIAS 1
-#define IF_FEATURE_GREP_FGREP_ALIAS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GREP_FGREP_ALIAS(...)
-#define CONFIG_FEATURE_GREP_CONTEXT 1
-#define ENABLE_FEATURE_GREP_CONTEXT 1
-#define IF_FEATURE_GREP_CONTEXT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GREP_CONTEXT(...)
-#define CONFIG_XARGS 1
-#define ENABLE_XARGS 1
-#define IF_XARGS(...) __VA_ARGS__
-#define IF_NOT_XARGS(...)
-#define CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION 1
-#define ENABLE_FEATURE_XARGS_SUPPORT_CONFIRMATION 1
-#define IF_FEATURE_XARGS_SUPPORT_CONFIRMATION(...) __VA_ARGS__
-#define IF_NOT_FEATURE_XARGS_SUPPORT_CONFIRMATION(...)
-#define CONFIG_FEATURE_XARGS_SUPPORT_QUOTES 1
-#define ENABLE_FEATURE_XARGS_SUPPORT_QUOTES 1
-#define IF_FEATURE_XARGS_SUPPORT_QUOTES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_XARGS_SUPPORT_QUOTES(...)
-#define CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT 1
-#define ENABLE_FEATURE_XARGS_SUPPORT_TERMOPT 1
-#define IF_FEATURE_XARGS_SUPPORT_TERMOPT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_XARGS_SUPPORT_TERMOPT(...)
-#define CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM 1
-#define ENABLE_FEATURE_XARGS_SUPPORT_ZERO_TERM 1
-#define IF_FEATURE_XARGS_SUPPORT_ZERO_TERM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_XARGS_SUPPORT_ZERO_TERM(...)
-
-/*
- * Init Utilities
- */
-#undef CONFIG_BOOTCHARTD
-#define ENABLE_BOOTCHARTD 0
-#define IF_BOOTCHARTD(...)
-#define IF_NOT_BOOTCHARTD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER
-#define ENABLE_FEATURE_BOOTCHARTD_BLOATED_HEADER 0
-#define IF_FEATURE_BOOTCHARTD_BLOATED_HEADER(...)
-#define IF_NOT_FEATURE_BOOTCHARTD_BLOATED_HEADER(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE
-#define ENABLE_FEATURE_BOOTCHARTD_CONFIG_FILE 0
-#define IF_FEATURE_BOOTCHARTD_CONFIG_FILE(...)
-#define IF_NOT_FEATURE_BOOTCHARTD_CONFIG_FILE(...) __VA_ARGS__
-#define CONFIG_HALT 1
-#define ENABLE_HALT 1
-#define IF_HALT(...) __VA_ARGS__
-#define IF_NOT_HALT(...)
-#undef CONFIG_FEATURE_CALL_TELINIT
-#define ENABLE_FEATURE_CALL_TELINIT 0
-#define IF_FEATURE_CALL_TELINIT(...)
-#define IF_NOT_FEATURE_CALL_TELINIT(...) __VA_ARGS__
-#define CONFIG_TELINIT_PATH ""
-#define ENABLE_TELINIT_PATH 1
-#define IF_TELINIT_PATH(...) __VA_ARGS__
-#define IF_NOT_TELINIT_PATH(...)
-#undef CONFIG_INIT
-#define ENABLE_INIT 0
-#define IF_INIT(...)
-#define IF_NOT_INIT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_USE_INITTAB
-#define ENABLE_FEATURE_USE_INITTAB 0
-#define IF_FEATURE_USE_INITTAB(...)
-#define IF_NOT_FEATURE_USE_INITTAB(...) __VA_ARGS__
-#undef CONFIG_FEATURE_KILL_REMOVED
-#define ENABLE_FEATURE_KILL_REMOVED 0
-#define IF_FEATURE_KILL_REMOVED(...)
-#define IF_NOT_FEATURE_KILL_REMOVED(...) __VA_ARGS__
-#define CONFIG_FEATURE_KILL_DELAY 0
-#define ENABLE_FEATURE_KILL_DELAY 1
-#define IF_FEATURE_KILL_DELAY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_KILL_DELAY(...)
-#undef CONFIG_FEATURE_INIT_SCTTY
-#define ENABLE_FEATURE_INIT_SCTTY 0
-#define IF_FEATURE_INIT_SCTTY(...)
-#define IF_NOT_FEATURE_INIT_SCTTY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INIT_SYSLOG
-#define ENABLE_FEATURE_INIT_SYSLOG 0
-#define IF_FEATURE_INIT_SYSLOG(...)
-#define IF_NOT_FEATURE_INIT_SYSLOG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_EXTRA_QUIET
-#define ENABLE_FEATURE_EXTRA_QUIET 0
-#define IF_FEATURE_EXTRA_QUIET(...)
-#define IF_NOT_FEATURE_EXTRA_QUIET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INIT_COREDUMPS
-#define ENABLE_FEATURE_INIT_COREDUMPS 0
-#define IF_FEATURE_INIT_COREDUMPS(...)
-#define IF_NOT_FEATURE_INIT_COREDUMPS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INITRD
-#define ENABLE_FEATURE_INITRD 0
-#define IF_FEATURE_INITRD(...)
-#define IF_NOT_FEATURE_INITRD(...) __VA_ARGS__
-#define CONFIG_INIT_TERMINAL_TYPE ""
-#define ENABLE_INIT_TERMINAL_TYPE 1
-#define IF_INIT_TERMINAL_TYPE(...) __VA_ARGS__
-#define IF_NOT_INIT_TERMINAL_TYPE(...)
-#define CONFIG_MESG 1
-#define ENABLE_MESG 1
-#define IF_MESG(...) __VA_ARGS__
-#define IF_NOT_MESG(...)
-#define CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP 1
-#define ENABLE_FEATURE_MESG_ENABLE_ONLY_GROUP 1
-#define IF_FEATURE_MESG_ENABLE_ONLY_GROUP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MESG_ENABLE_ONLY_GROUP(...)
-
-/*
- * Login/Password Management Utilities
- */
-#undef CONFIG_ADD_SHELL
-#define ENABLE_ADD_SHELL 0
-#define IF_ADD_SHELL(...)
-#define IF_NOT_ADD_SHELL(...) __VA_ARGS__
-#undef CONFIG_REMOVE_SHELL
-#define ENABLE_REMOVE_SHELL 0
-#define IF_REMOVE_SHELL(...)
-#define IF_NOT_REMOVE_SHELL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SHADOWPASSWDS
-#define ENABLE_FEATURE_SHADOWPASSWDS 0
-#define IF_FEATURE_SHADOWPASSWDS(...)
-#define IF_NOT_FEATURE_SHADOWPASSWDS(...) __VA_ARGS__
-#undef CONFIG_USE_BB_PWD_GRP
-#define ENABLE_USE_BB_PWD_GRP 0
-#define IF_USE_BB_PWD_GRP(...)
-#define IF_NOT_USE_BB_PWD_GRP(...) __VA_ARGS__
-#undef CONFIG_USE_BB_SHADOW
-#define ENABLE_USE_BB_SHADOW 0
-#define IF_USE_BB_SHADOW(...)
-#define IF_NOT_USE_BB_SHADOW(...) __VA_ARGS__
-#define CONFIG_USE_BB_CRYPT 1
-#define ENABLE_USE_BB_CRYPT 1
-#define IF_USE_BB_CRYPT(...) __VA_ARGS__
-#define IF_NOT_USE_BB_CRYPT(...)
-#undef CONFIG_USE_BB_CRYPT_SHA
-#define ENABLE_USE_BB_CRYPT_SHA 0
-#define IF_USE_BB_CRYPT_SHA(...)
-#define IF_NOT_USE_BB_CRYPT_SHA(...) __VA_ARGS__
-#undef CONFIG_ADDUSER
-#define ENABLE_ADDUSER 0
-#define IF_ADDUSER(...)
-#define IF_NOT_ADDUSER(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ADDUSER_LONG_OPTIONS
-#define ENABLE_FEATURE_ADDUSER_LONG_OPTIONS 0
-#define IF_FEATURE_ADDUSER_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_ADDUSER_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHECK_NAMES
-#define ENABLE_FEATURE_CHECK_NAMES 0
-#define IF_FEATURE_CHECK_NAMES(...)
-#define IF_NOT_FEATURE_CHECK_NAMES(...) __VA_ARGS__
-#define CONFIG_FIRST_SYSTEM_ID 0
-#define ENABLE_FIRST_SYSTEM_ID 1
-#define IF_FIRST_SYSTEM_ID(...) __VA_ARGS__
-#define IF_NOT_FIRST_SYSTEM_ID(...)
-#define CONFIG_LAST_SYSTEM_ID 0
-#define ENABLE_LAST_SYSTEM_ID 1
-#define IF_LAST_SYSTEM_ID(...) __VA_ARGS__
-#define IF_NOT_LAST_SYSTEM_ID(...)
-#undef CONFIG_ADDGROUP
-#define ENABLE_ADDGROUP 0
-#define IF_ADDGROUP(...)
-#define IF_NOT_ADDGROUP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS
-#define ENABLE_FEATURE_ADDGROUP_LONG_OPTIONS 0
-#define IF_FEATURE_ADDGROUP_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_ADDGROUP_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ADDUSER_TO_GROUP
-#define ENABLE_FEATURE_ADDUSER_TO_GROUP 0
-#define IF_FEATURE_ADDUSER_TO_GROUP(...)
-#define IF_NOT_FEATURE_ADDUSER_TO_GROUP(...) __VA_ARGS__
-#undef CONFIG_DELUSER
-#define ENABLE_DELUSER 0
-#define IF_DELUSER(...)
-#define IF_NOT_DELUSER(...) __VA_ARGS__
-#undef CONFIG_DELGROUP
-#define ENABLE_DELGROUP 0
-#define IF_DELGROUP(...)
-#define IF_NOT_DELGROUP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_DEL_USER_FROM_GROUP
-#define ENABLE_FEATURE_DEL_USER_FROM_GROUP 0
-#define IF_FEATURE_DEL_USER_FROM_GROUP(...)
-#define IF_NOT_FEATURE_DEL_USER_FROM_GROUP(...) __VA_ARGS__
-#undef CONFIG_GETTY
-#define ENABLE_GETTY 0
-#define IF_GETTY(...)
-#define IF_NOT_GETTY(...) __VA_ARGS__
-#undef CONFIG_LOGIN
-#define ENABLE_LOGIN 0
-#define IF_LOGIN(...)
-#define IF_NOT_LOGIN(...) __VA_ARGS__
-#undef CONFIG_LOGIN_SESSION_AS_CHILD
-#define ENABLE_LOGIN_SESSION_AS_CHILD 0
-#define IF_LOGIN_SESSION_AS_CHILD(...)
-#define IF_NOT_LOGIN_SESSION_AS_CHILD(...) __VA_ARGS__
-#undef CONFIG_PAM
-#define ENABLE_PAM 0
-#define IF_PAM(...)
-#define IF_NOT_PAM(...) __VA_ARGS__
-#undef CONFIG_LOGIN_SCRIPTS
-#define ENABLE_LOGIN_SCRIPTS 0
-#define IF_LOGIN_SCRIPTS(...)
-#define IF_NOT_LOGIN_SCRIPTS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_NOLOGIN
-#define ENABLE_FEATURE_NOLOGIN 0
-#define IF_FEATURE_NOLOGIN(...)
-#define IF_NOT_FEATURE_NOLOGIN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SECURETTY
-#define ENABLE_FEATURE_SECURETTY 0
-#define IF_FEATURE_SECURETTY(...)
-#define IF_NOT_FEATURE_SECURETTY(...) __VA_ARGS__
-#undef CONFIG_PASSWD
-#define ENABLE_PASSWD 0
-#define IF_PASSWD(...)
-#define IF_NOT_PASSWD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PASSWD_WEAK_CHECK
-#define ENABLE_FEATURE_PASSWD_WEAK_CHECK 0
-#define IF_FEATURE_PASSWD_WEAK_CHECK(...)
-#define IF_NOT_FEATURE_PASSWD_WEAK_CHECK(...) __VA_ARGS__
-#undef CONFIG_CRYPTPW
-#define ENABLE_CRYPTPW 0
-#define IF_CRYPTPW(...)
-#define IF_NOT_CRYPTPW(...) __VA_ARGS__
-#undef CONFIG_CHPASSWD
-#define ENABLE_CHPASSWD 0
-#define IF_CHPASSWD(...)
-#define IF_NOT_CHPASSWD(...) __VA_ARGS__
-#define CONFIG_FEATURE_DEFAULT_PASSWD_ALGO ""
-#define ENABLE_FEATURE_DEFAULT_PASSWD_ALGO 1
-#define IF_FEATURE_DEFAULT_PASSWD_ALGO(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DEFAULT_PASSWD_ALGO(...)
-#undef CONFIG_SU
-#define ENABLE_SU 0
-#define IF_SU(...)
-#define IF_NOT_SU(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SU_SYSLOG
-#define ENABLE_FEATURE_SU_SYSLOG 0
-#define IF_FEATURE_SU_SYSLOG(...)
-#define IF_NOT_FEATURE_SU_SYSLOG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SU_CHECKS_SHELLS
-#define ENABLE_FEATURE_SU_CHECKS_SHELLS 0
-#define IF_FEATURE_SU_CHECKS_SHELLS(...)
-#define IF_NOT_FEATURE_SU_CHECKS_SHELLS(...) __VA_ARGS__
-#undef CONFIG_SULOGIN
-#define ENABLE_SULOGIN 0
-#define IF_SULOGIN(...)
-#define IF_NOT_SULOGIN(...) __VA_ARGS__
-#undef CONFIG_VLOCK
-#define ENABLE_VLOCK 0
-#define IF_VLOCK(...)
-#define IF_NOT_VLOCK(...) __VA_ARGS__
-
-/*
- * Linux Ext2 FS Progs
- */
-#define CONFIG_CHATTR 1
-#define ENABLE_CHATTR 1
-#define IF_CHATTR(...) __VA_ARGS__
-#define IF_NOT_CHATTR(...)
-#undef CONFIG_FSCK
-#define ENABLE_FSCK 0
-#define IF_FSCK(...)
-#define IF_NOT_FSCK(...) __VA_ARGS__
-#define CONFIG_LSATTR 1
-#define ENABLE_LSATTR 1
-#define IF_LSATTR(...) __VA_ARGS__
-#define IF_NOT_LSATTR(...)
-#define CONFIG_TUNE2FS 1
-#define ENABLE_TUNE2FS 1
-#define IF_TUNE2FS(...) __VA_ARGS__
-#define IF_NOT_TUNE2FS(...)
-
-/*
- * Linux Module Utilities
- */
-#define CONFIG_MODINFO 1
-#define ENABLE_MODINFO 1
-#define IF_MODINFO(...) __VA_ARGS__
-#define IF_NOT_MODINFO(...)
-#undef CONFIG_MODPROBE_SMALL
-#define ENABLE_MODPROBE_SMALL 0
-#define IF_MODPROBE_SMALL(...)
-#define IF_NOT_MODPROBE_SMALL(...) __VA_ARGS__
-#define CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE 1
-#define ENABLE_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE 1
-#define IF_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE(...)
-#define CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED 1
-#define ENABLE_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED 1
-#define IF_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED(...)
-#define CONFIG_INSMOD 1
-#define ENABLE_INSMOD 1
-#define IF_INSMOD(...) __VA_ARGS__
-#define IF_NOT_INSMOD(...)
-#define CONFIG_RMMOD 1
-#define ENABLE_RMMOD 1
-#define IF_RMMOD(...) __VA_ARGS__
-#define IF_NOT_RMMOD(...)
-#define CONFIG_LSMOD 1
-#define ENABLE_LSMOD 1
-#define IF_LSMOD(...) __VA_ARGS__
-#define IF_NOT_LSMOD(...)
-#define CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT 1
-#define ENABLE_FEATURE_LSMOD_PRETTY_2_6_OUTPUT 1
-#define IF_FEATURE_LSMOD_PRETTY_2_6_OUTPUT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT(...)
-#define CONFIG_MODPROBE 1
-#define ENABLE_MODPROBE 1
-#define IF_MODPROBE(...) __VA_ARGS__
-#define IF_NOT_MODPROBE(...)
-#undef CONFIG_FEATURE_MODPROBE_BLACKLIST
-#define ENABLE_FEATURE_MODPROBE_BLACKLIST 0
-#define IF_FEATURE_MODPROBE_BLACKLIST(...)
-#define IF_NOT_FEATURE_MODPROBE_BLACKLIST(...) __VA_ARGS__
-#define CONFIG_DEPMOD 1
-#define ENABLE_DEPMOD 1
-#define IF_DEPMOD(...) __VA_ARGS__
-#define IF_NOT_DEPMOD(...)
-
-/*
- * Options common to multiple modutils
- */
-#undef CONFIG_FEATURE_2_4_MODULES
-#define ENABLE_FEATURE_2_4_MODULES 0
-#define IF_FEATURE_2_4_MODULES(...)
-#define IF_NOT_FEATURE_2_4_MODULES(...) __VA_ARGS__
-#define CONFIG_FEATURE_INSMOD_TRY_MMAP 1
-#define ENABLE_FEATURE_INSMOD_TRY_MMAP 1
-#define IF_FEATURE_INSMOD_TRY_MMAP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_INSMOD_TRY_MMAP(...)
-#undef CONFIG_FEATURE_INSMOD_VERSION_CHECKING
-#define ENABLE_FEATURE_INSMOD_VERSION_CHECKING 0
-#define IF_FEATURE_INSMOD_VERSION_CHECKING(...)
-#define IF_NOT_FEATURE_INSMOD_VERSION_CHECKING(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
-#define ENABLE_FEATURE_INSMOD_KSYMOOPS_SYMBOLS 0
-#define IF_FEATURE_INSMOD_KSYMOOPS_SYMBOLS(...)
-#define IF_NOT_FEATURE_INSMOD_KSYMOOPS_SYMBOLS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INSMOD_LOADINKMEM
-#define ENABLE_FEATURE_INSMOD_LOADINKMEM 0
-#define IF_FEATURE_INSMOD_LOADINKMEM(...)
-#define IF_NOT_FEATURE_INSMOD_LOADINKMEM(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INSMOD_LOAD_MAP
-#define ENABLE_FEATURE_INSMOD_LOAD_MAP 0
-#define IF_FEATURE_INSMOD_LOAD_MAP(...)
-#define IF_NOT_FEATURE_INSMOD_LOAD_MAP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL
-#define ENABLE_FEATURE_INSMOD_LOAD_MAP_FULL 0
-#define IF_FEATURE_INSMOD_LOAD_MAP_FULL(...)
-#define IF_NOT_FEATURE_INSMOD_LOAD_MAP_FULL(...) __VA_ARGS__
-#define CONFIG_FEATURE_CHECK_TAINTED_MODULE 1
-#define ENABLE_FEATURE_CHECK_TAINTED_MODULE 1
-#define IF_FEATURE_CHECK_TAINTED_MODULE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CHECK_TAINTED_MODULE(...)
-#define CONFIG_FEATURE_MODUTILS_ALIAS 1
-#define ENABLE_FEATURE_MODUTILS_ALIAS 1
-#define IF_FEATURE_MODUTILS_ALIAS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MODUTILS_ALIAS(...)
-#define CONFIG_FEATURE_MODUTILS_SYMBOLS 1
-#define ENABLE_FEATURE_MODUTILS_SYMBOLS 1
-#define IF_FEATURE_MODUTILS_SYMBOLS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MODUTILS_SYMBOLS(...)
-#define CONFIG_DEFAULT_DEPMOD_FILE "modules.dep"
-#define ENABLE_DEFAULT_DEPMOD_FILE 1
-#define IF_DEFAULT_DEPMOD_FILE(...) __VA_ARGS__
-#define IF_NOT_DEFAULT_DEPMOD_FILE(...)
-
-/*
- * Linux System Utilities
- */
-#define CONFIG_BLOCKDEV 1
-#define ENABLE_BLOCKDEV 1
-#define IF_BLOCKDEV(...) __VA_ARGS__
-#define IF_NOT_BLOCKDEV(...)
-#undef CONFIG_MDEV
-#define ENABLE_MDEV 0
-#define IF_MDEV(...)
-#define IF_NOT_MDEV(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_CONF
-#define ENABLE_FEATURE_MDEV_CONF 0
-#define IF_FEATURE_MDEV_CONF(...)
-#define IF_NOT_FEATURE_MDEV_CONF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_RENAME
-#define ENABLE_FEATURE_MDEV_RENAME 0
-#define IF_FEATURE_MDEV_RENAME(...)
-#define IF_NOT_FEATURE_MDEV_RENAME(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_RENAME_REGEXP
-#define ENABLE_FEATURE_MDEV_RENAME_REGEXP 0
-#define IF_FEATURE_MDEV_RENAME_REGEXP(...)
-#define IF_NOT_FEATURE_MDEV_RENAME_REGEXP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_EXEC
-#define ENABLE_FEATURE_MDEV_EXEC 0
-#define IF_FEATURE_MDEV_EXEC(...)
-#define IF_NOT_FEATURE_MDEV_EXEC(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_LOAD_FIRMWARE
-#define ENABLE_FEATURE_MDEV_LOAD_FIRMWARE 0
-#define IF_FEATURE_MDEV_LOAD_FIRMWARE(...)
-#define IF_NOT_FEATURE_MDEV_LOAD_FIRMWARE(...) __VA_ARGS__
-#define CONFIG_REV 1
-#define ENABLE_REV 1
-#define IF_REV(...) __VA_ARGS__
-#define IF_NOT_REV(...)
-#undef CONFIG_ACPID
-#define ENABLE_ACPID 0
-#define IF_ACPID(...)
-#define IF_NOT_ACPID(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ACPID_COMPAT
-#define ENABLE_FEATURE_ACPID_COMPAT 0
-#define IF_FEATURE_ACPID_COMPAT(...)
-#define IF_NOT_FEATURE_ACPID_COMPAT(...) __VA_ARGS__
-#define CONFIG_BLKID 1
-#define ENABLE_BLKID 1
-#define IF_BLKID(...) __VA_ARGS__
-#define IF_NOT_BLKID(...)
-#define CONFIG_FEATURE_BLKID_TYPE 1
-#define ENABLE_FEATURE_BLKID_TYPE 1
-#define IF_FEATURE_BLKID_TYPE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BLKID_TYPE(...)
-#define CONFIG_DMESG 1
-#define ENABLE_DMESG 1
-#define IF_DMESG(...) __VA_ARGS__
-#define IF_NOT_DMESG(...)
-#undef CONFIG_FEATURE_DMESG_PRETTY
-#define ENABLE_FEATURE_DMESG_PRETTY 0
-#define IF_FEATURE_DMESG_PRETTY(...)
-#define IF_NOT_FEATURE_DMESG_PRETTY(...) __VA_ARGS__
-#undef CONFIG_FBSET
-#define ENABLE_FBSET 0
-#define IF_FBSET(...)
-#define IF_NOT_FBSET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FBSET_FANCY
-#define ENABLE_FEATURE_FBSET_FANCY 0
-#define IF_FEATURE_FBSET_FANCY(...)
-#define IF_NOT_FEATURE_FBSET_FANCY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FBSET_READMODE
-#define ENABLE_FEATURE_FBSET_READMODE 0
-#define IF_FEATURE_FBSET_READMODE(...)
-#define IF_NOT_FEATURE_FBSET_READMODE(...) __VA_ARGS__
-#undef CONFIG_FDFLUSH
-#define ENABLE_FDFLUSH 0
-#define IF_FDFLUSH(...)
-#define IF_NOT_FDFLUSH(...) __VA_ARGS__
-#undef CONFIG_FDFORMAT
-#define ENABLE_FDFORMAT 0
-#define IF_FDFORMAT(...)
-#define IF_NOT_FDFORMAT(...) __VA_ARGS__
-#define CONFIG_FDISK 1
-#define ENABLE_FDISK 1
-#define IF_FDISK(...) __VA_ARGS__
-#define IF_NOT_FDISK(...)
-#define CONFIG_FDISK_SUPPORT_LARGE_DISKS 1
-#define ENABLE_FDISK_SUPPORT_LARGE_DISKS 1
-#define IF_FDISK_SUPPORT_LARGE_DISKS(...) __VA_ARGS__
-#define IF_NOT_FDISK_SUPPORT_LARGE_DISKS(...)
-#define CONFIG_FEATURE_FDISK_WRITABLE 1
-#define ENABLE_FEATURE_FDISK_WRITABLE 1
-#define IF_FEATURE_FDISK_WRITABLE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FDISK_WRITABLE(...)
-#undef CONFIG_FEATURE_AIX_LABEL
-#define ENABLE_FEATURE_AIX_LABEL 0
-#define IF_FEATURE_AIX_LABEL(...)
-#define IF_NOT_FEATURE_AIX_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SGI_LABEL
-#define ENABLE_FEATURE_SGI_LABEL 0
-#define IF_FEATURE_SGI_LABEL(...)
-#define IF_NOT_FEATURE_SGI_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SUN_LABEL
-#define ENABLE_FEATURE_SUN_LABEL 0
-#define IF_FEATURE_SUN_LABEL(...)
-#define IF_NOT_FEATURE_SUN_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_OSF_LABEL
-#define ENABLE_FEATURE_OSF_LABEL 0
-#define IF_FEATURE_OSF_LABEL(...)
-#define IF_NOT_FEATURE_OSF_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_GPT_LABEL
-#define ENABLE_FEATURE_GPT_LABEL 0
-#define IF_FEATURE_GPT_LABEL(...)
-#define IF_NOT_FEATURE_GPT_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FDISK_ADVANCED
-#define ENABLE_FEATURE_FDISK_ADVANCED 0
-#define IF_FEATURE_FDISK_ADVANCED(...)
-#define IF_NOT_FEATURE_FDISK_ADVANCED(...) __VA_ARGS__
-#undef CONFIG_FINDFS
-#define ENABLE_FINDFS 0
-#define IF_FINDFS(...)
-#define IF_NOT_FINDFS(...) __VA_ARGS__
-#define CONFIG_FLOCK 1
-#define ENABLE_FLOCK 1
-#define IF_FLOCK(...) __VA_ARGS__
-#define IF_NOT_FLOCK(...)
-#define CONFIG_FREERAMDISK 1
-#define ENABLE_FREERAMDISK 1
-#define IF_FREERAMDISK(...) __VA_ARGS__
-#define IF_NOT_FREERAMDISK(...)
-#undef CONFIG_FSCK_MINIX
-#define ENABLE_FSCK_MINIX 0
-#define IF_FSCK_MINIX(...)
-#define IF_NOT_FSCK_MINIX(...) __VA_ARGS__
-#define CONFIG_FSTRIM 1
-#define ENABLE_FSTRIM 1
-#define IF_FSTRIM(...) __VA_ARGS__
-#define IF_NOT_FSTRIM(...)
-#define CONFIG_MKFS_EXT2 1
-#define ENABLE_MKFS_EXT2 1
-#define IF_MKFS_EXT2(...) __VA_ARGS__
-#define IF_NOT_MKFS_EXT2(...)
-#undef CONFIG_MKFS_MINIX
-#define ENABLE_MKFS_MINIX 0
-#define IF_MKFS_MINIX(...)
-#define IF_NOT_MKFS_MINIX(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MINIX2
-#define ENABLE_FEATURE_MINIX2 0
-#define IF_FEATURE_MINIX2(...)
-#define IF_NOT_FEATURE_MINIX2(...) __VA_ARGS__
-#undef CONFIG_MKFS_REISER
-#define ENABLE_MKFS_REISER 0
-#define IF_MKFS_REISER(...)
-#define IF_NOT_MKFS_REISER(...) __VA_ARGS__
-#define CONFIG_MKFS_VFAT 1
-#define ENABLE_MKFS_VFAT 1
-#define IF_MKFS_VFAT(...) __VA_ARGS__
-#define IF_NOT_MKFS_VFAT(...)
-#define CONFIG_GETOPT 1
-#define ENABLE_GETOPT 1
-#define IF_GETOPT(...) __VA_ARGS__
-#define IF_NOT_GETOPT(...)
-#define CONFIG_FEATURE_GETOPT_LONG 1
-#define ENABLE_FEATURE_GETOPT_LONG 1
-#define IF_FEATURE_GETOPT_LONG(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GETOPT_LONG(...)
-#define CONFIG_HEXDUMP 1
-#define ENABLE_HEXDUMP 1
-#define IF_HEXDUMP(...) __VA_ARGS__
-#define IF_NOT_HEXDUMP(...)
-#define CONFIG_FEATURE_HEXDUMP_REVERSE 1
-#define ENABLE_FEATURE_HEXDUMP_REVERSE 1
-#define IF_FEATURE_HEXDUMP_REVERSE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_HEXDUMP_REVERSE(...)
-#undef CONFIG_HD
-#define ENABLE_HD 0
-#define IF_HD(...)
-#define IF_NOT_HD(...) __VA_ARGS__
-#undef CONFIG_HWCLOCK
-#define ENABLE_HWCLOCK 0
-#define IF_HWCLOCK(...)
-#define IF_NOT_HWCLOCK(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS
-#define ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS 0
-#define IF_FEATURE_HWCLOCK_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_HWCLOCK_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS
-#define ENABLE_FEATURE_HWCLOCK_ADJTIME_FHS 0
-#define IF_FEATURE_HWCLOCK_ADJTIME_FHS(...)
-#define IF_NOT_FEATURE_HWCLOCK_ADJTIME_FHS(...) __VA_ARGS__
-#undef CONFIG_IPCRM
-#define ENABLE_IPCRM 0
-#define IF_IPCRM(...)
-#define IF_NOT_IPCRM(...) __VA_ARGS__
-#undef CONFIG_IPCS
-#define ENABLE_IPCS 0
-#define IF_IPCS(...)
-#define IF_NOT_IPCS(...) __VA_ARGS__
-#define CONFIG_LOSETUP 1
-#define ENABLE_LOSETUP 1
-#define IF_LOSETUP(...) __VA_ARGS__
-#define IF_NOT_LOSETUP(...)
-#undef CONFIG_LSPCI
-#define ENABLE_LSPCI 0
-#define IF_LSPCI(...)
-#define IF_NOT_LSPCI(...) __VA_ARGS__
-#define CONFIG_LSUSB 1
-#define ENABLE_LSUSB 1
-#define IF_LSUSB(...) __VA_ARGS__
-#define IF_NOT_LSUSB(...)
-#define CONFIG_MKSWAP 1
-#define ENABLE_MKSWAP 1
-#define IF_MKSWAP(...) __VA_ARGS__
-#define IF_NOT_MKSWAP(...)
-#undef CONFIG_FEATURE_MKSWAP_UUID
-#define ENABLE_FEATURE_MKSWAP_UUID 0
-#define IF_FEATURE_MKSWAP_UUID(...)
-#define IF_NOT_FEATURE_MKSWAP_UUID(...) __VA_ARGS__
-#define CONFIG_MORE 1
-#define ENABLE_MORE 1
-#define IF_MORE(...) __VA_ARGS__
-#define IF_NOT_MORE(...)
-#define CONFIG_MOUNT 1
-#define ENABLE_MOUNT 1
-#define IF_MOUNT(...) __VA_ARGS__
-#define IF_NOT_MOUNT(...)
-#define CONFIG_FEATURE_MOUNT_FAKE 1
-#define ENABLE_FEATURE_MOUNT_FAKE 1
-#define IF_FEATURE_MOUNT_FAKE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_FAKE(...)
-#define CONFIG_FEATURE_MOUNT_VERBOSE 1
-#define ENABLE_FEATURE_MOUNT_VERBOSE 1
-#define IF_FEATURE_MOUNT_VERBOSE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_VERBOSE(...)
-#undef CONFIG_FEATURE_MOUNT_HELPERS
-#define ENABLE_FEATURE_MOUNT_HELPERS 0
-#define IF_FEATURE_MOUNT_HELPERS(...)
-#define IF_NOT_FEATURE_MOUNT_HELPERS(...) __VA_ARGS__
-#define CONFIG_FEATURE_MOUNT_LABEL 1
-#define ENABLE_FEATURE_MOUNT_LABEL 1
-#define IF_FEATURE_MOUNT_LABEL(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_LABEL(...)
-#define CONFIG_FEATURE_MOUNT_NFS 1
-#define ENABLE_FEATURE_MOUNT_NFS 1
-#define IF_FEATURE_MOUNT_NFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_NFS(...)
-#define CONFIG_FEATURE_MOUNT_CIFS 1
-#define ENABLE_FEATURE_MOUNT_CIFS 1
-#define IF_FEATURE_MOUNT_CIFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_CIFS(...)
-#define CONFIG_FEATURE_MOUNT_FLAGS 1
-#define ENABLE_FEATURE_MOUNT_FLAGS 1
-#define IF_FEATURE_MOUNT_FLAGS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_FLAGS(...)
-#define CONFIG_FEATURE_MOUNT_FSTAB 1
-#define ENABLE_FEATURE_MOUNT_FSTAB 1
-#define IF_FEATURE_MOUNT_FSTAB(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_FSTAB(...)
-#undef CONFIG_PIVOT_ROOT
-#define ENABLE_PIVOT_ROOT 0
-#define IF_PIVOT_ROOT(...)
-#define IF_NOT_PIVOT_ROOT(...) __VA_ARGS__
-#undef CONFIG_RDATE
-#define ENABLE_RDATE 0
-#define IF_RDATE(...)
-#define IF_NOT_RDATE(...) __VA_ARGS__
-#define CONFIG_RDEV 1
-#define ENABLE_RDEV 1
-#define IF_RDEV(...) __VA_ARGS__
-#define IF_NOT_RDEV(...)
-#undef CONFIG_READPROFILE
-#define ENABLE_READPROFILE 0
-#define IF_READPROFILE(...)
-#define IF_NOT_READPROFILE(...) __VA_ARGS__
-#undef CONFIG_RTCWAKE
-#define ENABLE_RTCWAKE 0
-#define IF_RTCWAKE(...)
-#define IF_NOT_RTCWAKE(...) __VA_ARGS__
-#undef CONFIG_SCRIPT
-#define ENABLE_SCRIPT 0
-#define IF_SCRIPT(...)
-#define IF_NOT_SCRIPT(...) __VA_ARGS__
-#undef CONFIG_SCRIPTREPLAY
-#define ENABLE_SCRIPTREPLAY 0
-#define IF_SCRIPTREPLAY(...)
-#define IF_NOT_SCRIPTREPLAY(...) __VA_ARGS__
-#undef CONFIG_SETARCH
-#define ENABLE_SETARCH 0
-#define IF_SETARCH(...)
-#define IF_NOT_SETARCH(...) __VA_ARGS__
-#define CONFIG_SWAPONOFF 1
-#define ENABLE_SWAPONOFF 1
-#define IF_SWAPONOFF(...) __VA_ARGS__
-#define IF_NOT_SWAPONOFF(...)
-#undef CONFIG_FEATURE_SWAPON_PRI
-#define ENABLE_FEATURE_SWAPON_PRI 0
-#define IF_FEATURE_SWAPON_PRI(...)
-#define IF_NOT_FEATURE_SWAPON_PRI(...) __VA_ARGS__
-#undef CONFIG_SWITCH_ROOT
-#define ENABLE_SWITCH_ROOT 0
-#define IF_SWITCH_ROOT(...)
-#define IF_NOT_SWITCH_ROOT(...) __VA_ARGS__
-#define CONFIG_UMOUNT 1
-#define ENABLE_UMOUNT 1
-#define IF_UMOUNT(...) __VA_ARGS__
-#define IF_NOT_UMOUNT(...)
-#define CONFIG_FEATURE_UMOUNT_ALL 1
-#define ENABLE_FEATURE_UMOUNT_ALL 1
-#define IF_FEATURE_UMOUNT_ALL(...) __VA_ARGS__
-#define IF_NOT_FEATURE_UMOUNT_ALL(...)
-
-/*
- * Common options for mount/umount
- */
-#define CONFIG_FEATURE_MOUNT_LOOP 1
-#define ENABLE_FEATURE_MOUNT_LOOP 1
-#define IF_FEATURE_MOUNT_LOOP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_LOOP(...)
-#define CONFIG_FEATURE_MOUNT_LOOP_CREATE 1
-#define ENABLE_FEATURE_MOUNT_LOOP_CREATE 1
-#define IF_FEATURE_MOUNT_LOOP_CREATE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_LOOP_CREATE(...)
-#undef CONFIG_FEATURE_MTAB_SUPPORT
-#define ENABLE_FEATURE_MTAB_SUPPORT 0
-#define IF_FEATURE_MTAB_SUPPORT(...)
-#define IF_NOT_FEATURE_MTAB_SUPPORT(...) __VA_ARGS__
-#define CONFIG_VOLUMEID 1
-#define ENABLE_VOLUMEID 1
-#define IF_VOLUMEID(...) __VA_ARGS__
-#define IF_NOT_VOLUMEID(...)
-
-/*
- * Filesystem/Volume identification
- */
-#define CONFIG_FEATURE_VOLUMEID_EXT 1
-#define ENABLE_FEATURE_VOLUMEID_EXT 1
-#define IF_FEATURE_VOLUMEID_EXT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_EXT(...)
-#undef CONFIG_FEATURE_VOLUMEID_BTRFS
-#define ENABLE_FEATURE_VOLUMEID_BTRFS 0
-#define IF_FEATURE_VOLUMEID_BTRFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_BTRFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_REISERFS
-#define ENABLE_FEATURE_VOLUMEID_REISERFS 0
-#define IF_FEATURE_VOLUMEID_REISERFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_REISERFS(...) __VA_ARGS__
-#define CONFIG_FEATURE_VOLUMEID_FAT 1
-#define ENABLE_FEATURE_VOLUMEID_FAT 1
-#define IF_FEATURE_VOLUMEID_FAT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_FAT(...)
-#define CONFIG_FEATURE_VOLUMEID_EXFAT 1
-#define ENABLE_FEATURE_VOLUMEID_EXFAT 1
-#define IF_FEATURE_VOLUMEID_EXFAT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_EXFAT(...)
-#undef CONFIG_FEATURE_VOLUMEID_HFS
-#define ENABLE_FEATURE_VOLUMEID_HFS 0
-#define IF_FEATURE_VOLUMEID_HFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_HFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_JFS
-#define ENABLE_FEATURE_VOLUMEID_JFS 0
-#define IF_FEATURE_VOLUMEID_JFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_JFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_XFS
-#define ENABLE_FEATURE_VOLUMEID_XFS 0
-#define IF_FEATURE_VOLUMEID_XFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_XFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_NILFS
-#define ENABLE_FEATURE_VOLUMEID_NILFS 0
-#define IF_FEATURE_VOLUMEID_NILFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_NILFS(...) __VA_ARGS__
-#define CONFIG_FEATURE_VOLUMEID_NTFS 1
-#define ENABLE_FEATURE_VOLUMEID_NTFS 1
-#define IF_FEATURE_VOLUMEID_NTFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_NTFS(...)
-#define CONFIG_FEATURE_VOLUMEID_ISO9660 1
-#define ENABLE_FEATURE_VOLUMEID_ISO9660 1
-#define IF_FEATURE_VOLUMEID_ISO9660(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_ISO9660(...)
-#undef CONFIG_FEATURE_VOLUMEID_UDF
-#define ENABLE_FEATURE_VOLUMEID_UDF 0
-#define IF_FEATURE_VOLUMEID_UDF(...)
-#define IF_NOT_FEATURE_VOLUMEID_UDF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_LUKS
-#define ENABLE_FEATURE_VOLUMEID_LUKS 0
-#define IF_FEATURE_VOLUMEID_LUKS(...)
-#define IF_NOT_FEATURE_VOLUMEID_LUKS(...) __VA_ARGS__
-#define CONFIG_FEATURE_VOLUMEID_LINUXSWAP 1
-#define ENABLE_FEATURE_VOLUMEID_LINUXSWAP 1
-#define IF_FEATURE_VOLUMEID_LINUXSWAP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_LINUXSWAP(...)
-#undef CONFIG_FEATURE_VOLUMEID_CRAMFS
-#define ENABLE_FEATURE_VOLUMEID_CRAMFS 0
-#define IF_FEATURE_VOLUMEID_CRAMFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_CRAMFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_ROMFS
-#define ENABLE_FEATURE_VOLUMEID_ROMFS 0
-#define IF_FEATURE_VOLUMEID_ROMFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_ROMFS(...) __VA_ARGS__
-#define CONFIG_FEATURE_VOLUMEID_SQUASHFS 1
-#define ENABLE_FEATURE_VOLUMEID_SQUASHFS 1
-#define IF_FEATURE_VOLUMEID_SQUASHFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_SQUASHFS(...)
-#undef CONFIG_FEATURE_VOLUMEID_SYSV
-#define ENABLE_FEATURE_VOLUMEID_SYSV 0
-#define IF_FEATURE_VOLUMEID_SYSV(...)
-#define IF_NOT_FEATURE_VOLUMEID_SYSV(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_OCFS2
-#define ENABLE_FEATURE_VOLUMEID_OCFS2 0
-#define IF_FEATURE_VOLUMEID_OCFS2(...)
-#define IF_NOT_FEATURE_VOLUMEID_OCFS2(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_LINUXRAID
-#define ENABLE_FEATURE_VOLUMEID_LINUXRAID 0
-#define IF_FEATURE_VOLUMEID_LINUXRAID(...)
-#define IF_NOT_FEATURE_VOLUMEID_LINUXRAID(...) __VA_ARGS__
-
-/*
- * Miscellaneous Utilities
- */
-#undef CONFIG_CONSPY
-#define ENABLE_CONSPY 0
-#define IF_CONSPY(...)
-#define IF_NOT_CONSPY(...) __VA_ARGS__
-#define CONFIG_LESS 1
-#define ENABLE_LESS 1
-#define IF_LESS(...) __VA_ARGS__
-#define IF_NOT_LESS(...)
-#define CONFIG_FEATURE_LESS_MAXLINES 65536
-#define ENABLE_FEATURE_LESS_MAXLINES 1
-#define IF_FEATURE_LESS_MAXLINES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_MAXLINES(...)
-#undef CONFIG_FEATURE_LESS_BRACKETS
-#define ENABLE_FEATURE_LESS_BRACKETS 0
-#define IF_FEATURE_LESS_BRACKETS(...)
-#define IF_NOT_FEATURE_LESS_BRACKETS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LESS_FLAGS
-#define ENABLE_FEATURE_LESS_FLAGS 0
-#define IF_FEATURE_LESS_FLAGS(...)
-#define IF_NOT_FEATURE_LESS_FLAGS(...) __VA_ARGS__
-#define CONFIG_FEATURE_LESS_MARKS 1
-#define ENABLE_FEATURE_LESS_MARKS 1
-#define IF_FEATURE_LESS_MARKS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_MARKS(...)
-#define CONFIG_FEATURE_LESS_REGEXP 1
-#define ENABLE_FEATURE_LESS_REGEXP 1
-#define IF_FEATURE_LESS_REGEXP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_REGEXP(...)
-#define CONFIG_FEATURE_LESS_WINCH 1
-#define ENABLE_FEATURE_LESS_WINCH 1
-#define IF_FEATURE_LESS_WINCH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_WINCH(...)
-#define CONFIG_FEATURE_LESS_ASK_TERMINAL 1
-#define ENABLE_FEATURE_LESS_ASK_TERMINAL 1
-#define IF_FEATURE_LESS_ASK_TERMINAL(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_ASK_TERMINAL(...)
-#undef CONFIG_FEATURE_LESS_DASHCMD
-#define ENABLE_FEATURE_LESS_DASHCMD 0
-#define IF_FEATURE_LESS_DASHCMD(...)
-#define IF_NOT_FEATURE_LESS_DASHCMD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LESS_LINENUMS
-#define ENABLE_FEATURE_LESS_LINENUMS 0
-#define IF_FEATURE_LESS_LINENUMS(...)
-#define IF_NOT_FEATURE_LESS_LINENUMS(...) __VA_ARGS__
-#define CONFIG_NANDWRITE 1
-#define ENABLE_NANDWRITE 1
-#define IF_NANDWRITE(...) __VA_ARGS__
-#define IF_NOT_NANDWRITE(...)
-#define CONFIG_NANDDUMP 1
-#define ENABLE_NANDDUMP 1
-#define IF_NANDDUMP(...) __VA_ARGS__
-#define IF_NOT_NANDDUMP(...)
-#define CONFIG_SETSERIAL 1
-#define ENABLE_SETSERIAL 1
-#define IF_SETSERIAL(...) __VA_ARGS__
-#define IF_NOT_SETSERIAL(...)
-#undef CONFIG_UBIATTACH
-#define ENABLE_UBIATTACH 0
-#define IF_UBIATTACH(...)
-#define IF_NOT_UBIATTACH(...) __VA_ARGS__
-#undef CONFIG_UBIDETACH
-#define ENABLE_UBIDETACH 0
-#define IF_UBIDETACH(...)
-#define IF_NOT_UBIDETACH(...) __VA_ARGS__
-#undef CONFIG_UBIMKVOL
-#define ENABLE_UBIMKVOL 0
-#define IF_UBIMKVOL(...)
-#define IF_NOT_UBIMKVOL(...) __VA_ARGS__
-#undef CONFIG_UBIRMVOL
-#define ENABLE_UBIRMVOL 0
-#define IF_UBIRMVOL(...)
-#define IF_NOT_UBIRMVOL(...) __VA_ARGS__
-#undef CONFIG_UBIRSVOL
-#define ENABLE_UBIRSVOL 0
-#define IF_UBIRSVOL(...)
-#define IF_NOT_UBIRSVOL(...) __VA_ARGS__
-#undef CONFIG_UBIUPDATEVOL
-#define ENABLE_UBIUPDATEVOL 0
-#define IF_UBIUPDATEVOL(...)
-#define IF_NOT_UBIUPDATEVOL(...) __VA_ARGS__
-#define CONFIG_ADJTIMEX 1
-#define ENABLE_ADJTIMEX 1
-#define IF_ADJTIMEX(...) __VA_ARGS__
-#define IF_NOT_ADJTIMEX(...)
-#define CONFIG_BBCONFIG 1
-#define ENABLE_BBCONFIG 1
-#define IF_BBCONFIG(...) __VA_ARGS__
-#define IF_NOT_BBCONFIG(...)
-#define CONFIG_FEATURE_COMPRESS_BBCONFIG 1
-#define ENABLE_FEATURE_COMPRESS_BBCONFIG 1
-#define IF_FEATURE_COMPRESS_BBCONFIG(...) __VA_ARGS__
-#define IF_NOT_FEATURE_COMPRESS_BBCONFIG(...)
-#undef CONFIG_BEEP
-#define ENABLE_BEEP 0
-#define IF_BEEP(...)
-#define IF_NOT_BEEP(...) __VA_ARGS__
-#define CONFIG_FEATURE_BEEP_FREQ 0
-#define ENABLE_FEATURE_BEEP_FREQ 1
-#define IF_FEATURE_BEEP_FREQ(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BEEP_FREQ(...)
-#define CONFIG_FEATURE_BEEP_LENGTH_MS 0
-#define ENABLE_FEATURE_BEEP_LENGTH_MS 1
-#define IF_FEATURE_BEEP_LENGTH_MS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BEEP_LENGTH_MS(...)
-#undef CONFIG_CHAT
-#define ENABLE_CHAT 0
-#define IF_CHAT(...)
-#define IF_NOT_CHAT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_NOFAIL
-#define ENABLE_FEATURE_CHAT_NOFAIL 0
-#define IF_FEATURE_CHAT_NOFAIL(...)
-#define IF_NOT_FEATURE_CHAT_NOFAIL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_TTY_HIFI
-#define ENABLE_FEATURE_CHAT_TTY_HIFI 0
-#define IF_FEATURE_CHAT_TTY_HIFI(...)
-#define IF_NOT_FEATURE_CHAT_TTY_HIFI(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_IMPLICIT_CR
-#define ENABLE_FEATURE_CHAT_IMPLICIT_CR 0
-#define IF_FEATURE_CHAT_IMPLICIT_CR(...)
-#define IF_NOT_FEATURE_CHAT_IMPLICIT_CR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_SWALLOW_OPTS
-#define ENABLE_FEATURE_CHAT_SWALLOW_OPTS 0
-#define IF_FEATURE_CHAT_SWALLOW_OPTS(...)
-#define IF_NOT_FEATURE_CHAT_SWALLOW_OPTS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_SEND_ESCAPES
-#define ENABLE_FEATURE_CHAT_SEND_ESCAPES 0
-#define IF_FEATURE_CHAT_SEND_ESCAPES(...)
-#define IF_NOT_FEATURE_CHAT_SEND_ESCAPES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_VAR_ABORT_LEN
-#define ENABLE_FEATURE_CHAT_VAR_ABORT_LEN 0
-#define IF_FEATURE_CHAT_VAR_ABORT_LEN(...)
-#define IF_NOT_FEATURE_CHAT_VAR_ABORT_LEN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_CLR_ABORT
-#define ENABLE_FEATURE_CHAT_CLR_ABORT 0
-#define IF_FEATURE_CHAT_CLR_ABORT(...)
-#define IF_NOT_FEATURE_CHAT_CLR_ABORT(...) __VA_ARGS__
-#undef CONFIG_CHRT
-#define ENABLE_CHRT 0
-#define IF_CHRT(...)
-#define IF_NOT_CHRT(...) __VA_ARGS__
-#define CONFIG_CROND 1
-#define ENABLE_CROND 1
-#define IF_CROND(...) __VA_ARGS__
-#define IF_NOT_CROND(...)
-#undef CONFIG_FEATURE_CROND_D
-#define ENABLE_FEATURE_CROND_D 0
-#define IF_FEATURE_CROND_D(...)
-#define IF_NOT_FEATURE_CROND_D(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CROND_CALL_SENDMAIL
-#define ENABLE_FEATURE_CROND_CALL_SENDMAIL 0
-#define IF_FEATURE_CROND_CALL_SENDMAIL(...)
-#define IF_NOT_FEATURE_CROND_CALL_SENDMAIL(...) __VA_ARGS__
-#define CONFIG_FEATURE_CROND_DIR "/system/etc/cron.d"
-#define ENABLE_FEATURE_CROND_DIR 1
-#define IF_FEATURE_CROND_DIR(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CROND_DIR(...)
-#define CONFIG_CRONTAB 1
-#define ENABLE_CRONTAB 1
-#define IF_CRONTAB(...) __VA_ARGS__
-#define IF_NOT_CRONTAB(...)
-#define CONFIG_DC 1
-#define ENABLE_DC 1
-#define IF_DC(...) __VA_ARGS__
-#define IF_NOT_DC(...)
-#define CONFIG_FEATURE_DC_LIBM 1
-#define ENABLE_FEATURE_DC_LIBM 1
-#define IF_FEATURE_DC_LIBM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DC_LIBM(...)
-#undef CONFIG_DEVFSD
-#define ENABLE_DEVFSD 0
-#define IF_DEVFSD(...)
-#define IF_NOT_DEVFSD(...) __VA_ARGS__
-#undef CONFIG_DEVFSD_MODLOAD
-#define ENABLE_DEVFSD_MODLOAD 0
-#define IF_DEVFSD_MODLOAD(...)
-#define IF_NOT_DEVFSD_MODLOAD(...) __VA_ARGS__
-#undef CONFIG_DEVFSD_FG_NP
-#define ENABLE_DEVFSD_FG_NP 0
-#define IF_DEVFSD_FG_NP(...)
-#define IF_NOT_DEVFSD_FG_NP(...) __VA_ARGS__
-#undef CONFIG_DEVFSD_VERBOSE
-#define ENABLE_DEVFSD_VERBOSE 0
-#define IF_DEVFSD_VERBOSE(...)
-#define IF_NOT_DEVFSD_VERBOSE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_DEVFS
-#define ENABLE_FEATURE_DEVFS 0
-#define IF_FEATURE_DEVFS(...)
-#define IF_NOT_FEATURE_DEVFS(...) __VA_ARGS__
-#define CONFIG_DEVMEM 1
-#define ENABLE_DEVMEM 1
-#define IF_DEVMEM(...) __VA_ARGS__
-#define IF_NOT_DEVMEM(...)
-#undef CONFIG_EJECT
-#define ENABLE_EJECT 0
-#define IF_EJECT(...)
-#define IF_NOT_EJECT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_EJECT_SCSI
-#define ENABLE_FEATURE_EJECT_SCSI 0
-#define IF_FEATURE_EJECT_SCSI(...)
-#define IF_NOT_FEATURE_EJECT_SCSI(...) __VA_ARGS__
-#define CONFIG_FBSPLASH 1
-#define ENABLE_FBSPLASH 1
-#define IF_FBSPLASH(...) __VA_ARGS__
-#define IF_NOT_FBSPLASH(...)
-#define CONFIG_FLASHCP 1
-#define ENABLE_FLASHCP 1
-#define IF_FLASHCP(...) __VA_ARGS__
-#define IF_NOT_FLASHCP(...)
-#define CONFIG_FLASH_LOCK 1
-#define ENABLE_FLASH_LOCK 1
-#define IF_FLASH_LOCK(...) __VA_ARGS__
-#define IF_NOT_FLASH_LOCK(...)
-#define CONFIG_FLASH_UNLOCK 1
-#define ENABLE_FLASH_UNLOCK 1
-#define IF_FLASH_UNLOCK(...) __VA_ARGS__
-#define IF_NOT_FLASH_UNLOCK(...)
-#undef CONFIG_FLASH_ERASEALL
-#define ENABLE_FLASH_ERASEALL 0
-#define IF_FLASH_ERASEALL(...)
-#define IF_NOT_FLASH_ERASEALL(...) __VA_ARGS__
-#define CONFIG_IONICE 1
-#define ENABLE_IONICE 1
-#define IF_IONICE(...) __VA_ARGS__
-#define IF_NOT_IONICE(...)
-#undef CONFIG_INOTIFYD
-#define ENABLE_INOTIFYD 0
-#define IF_INOTIFYD(...)
-#define IF_NOT_INOTIFYD(...) __VA_ARGS__
-#undef CONFIG_LAST
-#define ENABLE_LAST 0
-#define IF_LAST(...)
-#define IF_NOT_LAST(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LAST_SMALL
-#define ENABLE_FEATURE_LAST_SMALL 0
-#define IF_FEATURE_LAST_SMALL(...)
-#define IF_NOT_FEATURE_LAST_SMALL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LAST_FANCY
-#define ENABLE_FEATURE_LAST_FANCY 0
-#define IF_FEATURE_LAST_FANCY(...)
-#define IF_NOT_FEATURE_LAST_FANCY(...) __VA_ARGS__
-#undef CONFIG_HDPARM
-#define ENABLE_HDPARM 0
-#define IF_HDPARM(...)
-#define IF_NOT_HDPARM(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_GET_IDENTITY
-#define ENABLE_FEATURE_HDPARM_GET_IDENTITY 0
-#define IF_FEATURE_HDPARM_GET_IDENTITY(...)
-#define IF_NOT_FEATURE_HDPARM_GET_IDENTITY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
-#define ENABLE_FEATURE_HDPARM_HDIO_SCAN_HWIF 0
-#define IF_FEATURE_HDPARM_HDIO_SCAN_HWIF(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_SCAN_HWIF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
-#define ENABLE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF 0
-#define IF_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
-#define ENABLE_FEATURE_HDPARM_HDIO_DRIVE_RESET 0
-#define IF_FEATURE_HDPARM_HDIO_DRIVE_RESET(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_DRIVE_RESET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
-#define ENABLE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF 0
-#define IF_FEATURE_HDPARM_HDIO_TRISTATE_HWIF(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_TRISTATE_HWIF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
-#define ENABLE_FEATURE_HDPARM_HDIO_GETSET_DMA 0
-#define IF_FEATURE_HDPARM_HDIO_GETSET_DMA(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_GETSET_DMA(...) __VA_ARGS__
-#undef CONFIG_MAKEDEVS
-#define ENABLE_MAKEDEVS 0
-#define IF_MAKEDEVS(...)
-#define IF_NOT_MAKEDEVS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MAKEDEVS_LEAF
-#define ENABLE_FEATURE_MAKEDEVS_LEAF 0
-#define IF_FEATURE_MAKEDEVS_LEAF(...)
-#define IF_NOT_FEATURE_MAKEDEVS_LEAF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MAKEDEVS_TABLE
-#define ENABLE_FEATURE_MAKEDEVS_TABLE 0
-#define IF_FEATURE_MAKEDEVS_TABLE(...)
-#define IF_NOT_FEATURE_MAKEDEVS_TABLE(...) __VA_ARGS__
-#define CONFIG_MAN 1
-#define ENABLE_MAN 1
-#define IF_MAN(...) __VA_ARGS__
-#define IF_NOT_MAN(...)
-#undef CONFIG_MICROCOM
-#define ENABLE_MICROCOM 0
-#define IF_MICROCOM(...)
-#define IF_NOT_MICROCOM(...) __VA_ARGS__
-#define CONFIG_MOUNTPOINT 1
-#define ENABLE_MOUNTPOINT 1
-#define IF_MOUNTPOINT(...) __VA_ARGS__
-#define IF_NOT_MOUNTPOINT(...)
-#undef CONFIG_MT
-#define ENABLE_MT 0
-#define IF_MT(...)
-#define IF_NOT_MT(...) __VA_ARGS__
-#undef CONFIG_RAIDAUTORUN
-#define ENABLE_RAIDAUTORUN 0
-#define IF_RAIDAUTORUN(...)
-#define IF_NOT_RAIDAUTORUN(...) __VA_ARGS__
-#undef CONFIG_READAHEAD
-#define ENABLE_READAHEAD 0
-#define IF_READAHEAD(...)
-#define IF_NOT_READAHEAD(...) __VA_ARGS__
-#undef CONFIG_RFKILL
-#define ENABLE_RFKILL 0
-#define IF_RFKILL(...)
-#define IF_NOT_RFKILL(...) __VA_ARGS__
-#undef CONFIG_RUNLEVEL
-#define ENABLE_RUNLEVEL 0
-#define IF_RUNLEVEL(...)
-#define IF_NOT_RUNLEVEL(...) __VA_ARGS__
-#define CONFIG_RX 1
-#define ENABLE_RX 1
-#define IF_RX(...) __VA_ARGS__
-#define IF_NOT_RX(...)
-#define CONFIG_SETSID 1
-#define ENABLE_SETSID 1
-#define IF_SETSID(...) __VA_ARGS__
-#define IF_NOT_SETSID(...)
-#define CONFIG_STRINGS 1
-#define ENABLE_STRINGS 1
-#define IF_STRINGS(...) __VA_ARGS__
-#define IF_NOT_STRINGS(...)
-#define CONFIG_TASKSET 1
-#define ENABLE_TASKSET 1
-#define IF_TASKSET(...) __VA_ARGS__
-#define IF_NOT_TASKSET(...)
-#define CONFIG_FEATURE_TASKSET_FANCY 1
-#define ENABLE_FEATURE_TASKSET_FANCY 1
-#define IF_FEATURE_TASKSET_FANCY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TASKSET_FANCY(...)
-#define CONFIG_TIME 1
-#define ENABLE_TIME 1
-#define IF_TIME(...) __VA_ARGS__
-#define IF_NOT_TIME(...)
-#define CONFIG_TIMEOUT 1
-#define ENABLE_TIMEOUT 1
-#define IF_TIMEOUT(...) __VA_ARGS__
-#define IF_NOT_TIMEOUT(...)
-#define CONFIG_TTYSIZE 1
-#define ENABLE_TTYSIZE 1
-#define IF_TTYSIZE(...) __VA_ARGS__
-#define IF_NOT_TTYSIZE(...)
-#undef CONFIG_VOLNAME
-#define ENABLE_VOLNAME 0
-#define IF_VOLNAME(...)
-#define IF_NOT_VOLNAME(...) __VA_ARGS__
-#undef CONFIG_WALL
-#define ENABLE_WALL 0
-#define IF_WALL(...)
-#define IF_NOT_WALL(...) __VA_ARGS__
-#undef CONFIG_WATCHDOG
-#define ENABLE_WATCHDOG 0
-#define IF_WATCHDOG(...)
-#define IF_NOT_WATCHDOG(...) __VA_ARGS__
-
-/*
- * Networking Utilities
- */
-#undef CONFIG_NAMEIF
-#define ENABLE_NAMEIF 0
-#define IF_NAMEIF(...)
-#define IF_NOT_NAMEIF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_NAMEIF_EXTENDED
-#define ENABLE_FEATURE_NAMEIF_EXTENDED 0
-#define IF_FEATURE_NAMEIF_EXTENDED(...)
-#define IF_NOT_FEATURE_NAMEIF_EXTENDED(...) __VA_ARGS__
-#define CONFIG_NBDCLIENT 1
-#define ENABLE_NBDCLIENT 1
-#define IF_NBDCLIENT(...) __VA_ARGS__
-#define IF_NOT_NBDCLIENT(...)
-#define CONFIG_NC 1
-#define ENABLE_NC 1
-#define IF_NC(...) __VA_ARGS__
-#define IF_NOT_NC(...)
-#define CONFIG_NC_SERVER 1
-#define ENABLE_NC_SERVER 1
-#define IF_NC_SERVER(...) __VA_ARGS__
-#define IF_NOT_NC_SERVER(...)
-#define CONFIG_NC_EXTRA 1
-#define ENABLE_NC_EXTRA 1
-#define IF_NC_EXTRA(...) __VA_ARGS__
-#define IF_NOT_NC_EXTRA(...)
-#undef CONFIG_NC_110_COMPAT
-#define ENABLE_NC_110_COMPAT 0
-#define IF_NC_110_COMPAT(...)
-#define IF_NOT_NC_110_COMPAT(...) __VA_ARGS__
-#define CONFIG_PING 1
-#define ENABLE_PING 1
-#define IF_PING(...) __VA_ARGS__
-#define IF_NOT_PING(...)
-#undef CONFIG_PING6
-#define ENABLE_PING6 0
-#define IF_PING6(...)
-#define IF_NOT_PING6(...) __VA_ARGS__
-#define CONFIG_FEATURE_FANCY_PING 1
-#define ENABLE_FEATURE_FANCY_PING 1
-#define IF_FEATURE_FANCY_PING(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FANCY_PING(...)
-#undef CONFIG_WHOIS
-#define ENABLE_WHOIS 0
-#define IF_WHOIS(...)
-#define IF_NOT_WHOIS(...) __VA_ARGS__
-#define CONFIG_FEATURE_IPV6 1
-#define ENABLE_FEATURE_IPV6 1
-#define IF_FEATURE_IPV6(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IPV6(...)
-#undef CONFIG_FEATURE_UNIX_LOCAL
-#define ENABLE_FEATURE_UNIX_LOCAL 0
-#define IF_FEATURE_UNIX_LOCAL(...)
-#define IF_NOT_FEATURE_UNIX_LOCAL(...) __VA_ARGS__
-#define CONFIG_FEATURE_PREFER_IPV4_ADDRESS 1
-#define ENABLE_FEATURE_PREFER_IPV4_ADDRESS 1
-#define IF_FEATURE_PREFER_IPV4_ADDRESS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PREFER_IPV4_ADDRESS(...)
-#undef CONFIG_VERBOSE_RESOLUTION_ERRORS
-#define ENABLE_VERBOSE_RESOLUTION_ERRORS 0
-#define IF_VERBOSE_RESOLUTION_ERRORS(...)
-#define IF_NOT_VERBOSE_RESOLUTION_ERRORS(...) __VA_ARGS__
-#define CONFIG_ARP 1
-#define ENABLE_ARP 1
-#define IF_ARP(...) __VA_ARGS__
-#define IF_NOT_ARP(...)
-#undef CONFIG_ARPING
-#define ENABLE_ARPING 0
-#define IF_ARPING(...)
-#define IF_NOT_ARPING(...) __VA_ARGS__
-#define CONFIG_BRCTL 1
-#define ENABLE_BRCTL 1
-#define IF_BRCTL(...) __VA_ARGS__
-#define IF_NOT_BRCTL(...)
-#define CONFIG_FEATURE_BRCTL_FANCY 1
-#define ENABLE_FEATURE_BRCTL_FANCY 1
-#define IF_FEATURE_BRCTL_FANCY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BRCTL_FANCY(...)
-#define CONFIG_FEATURE_BRCTL_SHOW 1
-#define ENABLE_FEATURE_BRCTL_SHOW 1
-#define IF_FEATURE_BRCTL_SHOW(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BRCTL_SHOW(...)
-#define CONFIG_DNSD 1
-#define ENABLE_DNSD 1
-#define IF_DNSD(...) __VA_ARGS__
-#define IF_NOT_DNSD(...)
-#undef CONFIG_ETHER_WAKE
-#define ENABLE_ETHER_WAKE 0
-#define IF_ETHER_WAKE(...)
-#define IF_NOT_ETHER_WAKE(...) __VA_ARGS__
-#undef CONFIG_FAKEIDENTD
-#define ENABLE_FAKEIDENTD 0
-#define IF_FAKEIDENTD(...)
-#define IF_NOT_FAKEIDENTD(...) __VA_ARGS__
-#undef CONFIG_FTPD
-#define ENABLE_FTPD 0
-#define IF_FTPD(...)
-#define IF_NOT_FTPD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FTP_WRITE
-#define ENABLE_FEATURE_FTP_WRITE 0
-#define IF_FEATURE_FTP_WRITE(...)
-#define IF_NOT_FEATURE_FTP_WRITE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
-#define ENABLE_FEATURE_FTPD_ACCEPT_BROKEN_LIST 0
-#define IF_FEATURE_FTPD_ACCEPT_BROKEN_LIST(...)
-#define IF_NOT_FEATURE_FTPD_ACCEPT_BROKEN_LIST(...) __VA_ARGS__
-#define CONFIG_FTPGET 1
-#define ENABLE_FTPGET 1
-#define IF_FTPGET(...) __VA_ARGS__
-#define IF_NOT_FTPGET(...)
-#define CONFIG_FTPPUT 1
-#define ENABLE_FTPPUT 1
-#define IF_FTPPUT(...) __VA_ARGS__
-#define IF_NOT_FTPPUT(...)
-#define CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS 1
-#define ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS 1
-#define IF_FEATURE_FTPGETPUT_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FTPGETPUT_LONG_OPTIONS(...)
-#undef CONFIG_HOSTNAME
-#define ENABLE_HOSTNAME 0
-#define IF_HOSTNAME(...)
-#define IF_NOT_HOSTNAME(...) __VA_ARGS__
-#undef CONFIG_HTTPD
-#define ENABLE_HTTPD 0
-#define IF_HTTPD(...)
-#define IF_NOT_HTTPD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_RANGES
-#define ENABLE_FEATURE_HTTPD_RANGES 0
-#define IF_FEATURE_HTTPD_RANGES(...)
-#define IF_NOT_FEATURE_HTTPD_RANGES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_USE_SENDFILE
-#define ENABLE_FEATURE_HTTPD_USE_SENDFILE 0
-#define IF_FEATURE_HTTPD_USE_SENDFILE(...)
-#define IF_NOT_FEATURE_HTTPD_USE_SENDFILE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_SETUID
-#define ENABLE_FEATURE_HTTPD_SETUID 0
-#define IF_FEATURE_HTTPD_SETUID(...)
-#define IF_NOT_FEATURE_HTTPD_SETUID(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_BASIC_AUTH
-#define ENABLE_FEATURE_HTTPD_BASIC_AUTH 0
-#define IF_FEATURE_HTTPD_BASIC_AUTH(...)
-#define IF_NOT_FEATURE_HTTPD_BASIC_AUTH(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_AUTH_MD5
-#define ENABLE_FEATURE_HTTPD_AUTH_MD5 0
-#define IF_FEATURE_HTTPD_AUTH_MD5(...)
-#define IF_NOT_FEATURE_HTTPD_AUTH_MD5(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_CGI
-#define ENABLE_FEATURE_HTTPD_CGI 0
-#define IF_FEATURE_HTTPD_CGI(...)
-#define IF_NOT_FEATURE_HTTPD_CGI(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
-#define ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR 0
-#define IF_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR(...)
-#define IF_NOT_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
-#define ENABLE_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV 0
-#define IF_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV(...)
-#define IF_NOT_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_ENCODE_URL_STR
-#define ENABLE_FEATURE_HTTPD_ENCODE_URL_STR 0
-#define IF_FEATURE_HTTPD_ENCODE_URL_STR(...)
-#define IF_NOT_FEATURE_HTTPD_ENCODE_URL_STR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_ERROR_PAGES
-#define ENABLE_FEATURE_HTTPD_ERROR_PAGES 0
-#define IF_FEATURE_HTTPD_ERROR_PAGES(...)
-#define IF_NOT_FEATURE_HTTPD_ERROR_PAGES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_PROXY
-#define ENABLE_FEATURE_HTTPD_PROXY 0
-#define IF_FEATURE_HTTPD_PROXY(...)
-#define IF_NOT_FEATURE_HTTPD_PROXY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_GZIP
-#define ENABLE_FEATURE_HTTPD_GZIP 0
-#define IF_FEATURE_HTTPD_GZIP(...)
-#define IF_NOT_FEATURE_HTTPD_GZIP(...) __VA_ARGS__
-#define CONFIG_IFCONFIG 1
-#define ENABLE_IFCONFIG 1
-#define IF_IFCONFIG(...) __VA_ARGS__
-#define IF_NOT_IFCONFIG(...)
-#define CONFIG_FEATURE_IFCONFIG_STATUS 1
-#define ENABLE_FEATURE_IFCONFIG_STATUS 1
-#define IF_FEATURE_IFCONFIG_STATUS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IFCONFIG_STATUS(...)
-#undef CONFIG_FEATURE_IFCONFIG_SLIP
-#define ENABLE_FEATURE_IFCONFIG_SLIP 0
-#define IF_FEATURE_IFCONFIG_SLIP(...)
-#define IF_NOT_FEATURE_IFCONFIG_SLIP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
-#define ENABLE_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ 0
-#define IF_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ(...)
-#define IF_NOT_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ(...) __VA_ARGS__
-#define CONFIG_FEATURE_IFCONFIG_HW 1
-#define ENABLE_FEATURE_IFCONFIG_HW 1
-#define IF_FEATURE_IFCONFIG_HW(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IFCONFIG_HW(...)
-#undef CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS
-#define ENABLE_FEATURE_IFCONFIG_BROADCAST_PLUS 0
-#define IF_FEATURE_IFCONFIG_BROADCAST_PLUS(...)
-#define IF_NOT_FEATURE_IFCONFIG_BROADCAST_PLUS(...) __VA_ARGS__
-#undef CONFIG_IFENSLAVE
-#define ENABLE_IFENSLAVE 0
-#define IF_IFENSLAVE(...)
-#define IF_NOT_IFENSLAVE(...) __VA_ARGS__
-#undef CONFIG_IFPLUGD
-#define ENABLE_IFPLUGD 0
-#define IF_IFPLUGD(...)
-#define IF_NOT_IFPLUGD(...) __VA_ARGS__
-#undef CONFIG_IFUPDOWN
-#define ENABLE_IFUPDOWN 0
-#define IF_IFUPDOWN(...)
-#define IF_NOT_IFUPDOWN(...) __VA_ARGS__
-#define CONFIG_IFUPDOWN_IFSTATE_PATH ""
-#define ENABLE_IFUPDOWN_IFSTATE_PATH 1
-#define IF_IFUPDOWN_IFSTATE_PATH(...) __VA_ARGS__
-#define IF_NOT_IFUPDOWN_IFSTATE_PATH(...)
-#undef CONFIG_FEATURE_IFUPDOWN_IP
-#define ENABLE_FEATURE_IFUPDOWN_IP 0
-#define IF_FEATURE_IFUPDOWN_IP(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN
-#define ENABLE_FEATURE_IFUPDOWN_IP_BUILTIN 0
-#define IF_FEATURE_IFUPDOWN_IP_BUILTIN(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IP_BUILTIN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
-#define ENABLE_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN 0
-#define IF_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_IPV4
-#define ENABLE_FEATURE_IFUPDOWN_IPV4 0
-#define IF_FEATURE_IFUPDOWN_IPV4(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IPV4(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_IPV6
-#define ENABLE_FEATURE_IFUPDOWN_IPV6 0
-#define IF_FEATURE_IFUPDOWN_IPV6(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IPV6(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_MAPPING
-#define ENABLE_FEATURE_IFUPDOWN_MAPPING 0
-#define IF_FEATURE_IFUPDOWN_MAPPING(...)
-#define IF_NOT_FEATURE_IFUPDOWN_MAPPING(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP
-#define ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP 0
-#define IF_FEATURE_IFUPDOWN_EXTERNAL_DHCP(...)
-#define IF_NOT_FEATURE_IFUPDOWN_EXTERNAL_DHCP(...) __VA_ARGS__
-#define CONFIG_INETD 1
-#define ENABLE_INETD 1
-#define IF_INETD(...) __VA_ARGS__
-#define IF_NOT_INETD(...)
-#define CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO 1
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO 1
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_ECHO(...) __VA_ARGS__
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_ECHO(...)
-#undef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD 0
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD(...)
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD(...) __VA_ARGS__
-#define CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME 1
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_TIME 1
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_TIME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_TIME(...)
-#define CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME 1
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME 1
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME(...)
-#undef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN 0
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN(...)
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INETD_RPC
-#define ENABLE_FEATURE_INETD_RPC 0
-#define IF_FEATURE_INETD_RPC(...)
-#define IF_NOT_FEATURE_INETD_RPC(...) __VA_ARGS__
-#define CONFIG_IP 1
-#define ENABLE_IP 1
-#define IF_IP(...) __VA_ARGS__
-#define IF_NOT_IP(...)
-#define CONFIG_FEATURE_IP_ADDRESS 1
-#define ENABLE_FEATURE_IP_ADDRESS 1
-#define IF_FEATURE_IP_ADDRESS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IP_ADDRESS(...)
-#define CONFIG_FEATURE_IP_LINK 1
-#define ENABLE_FEATURE_IP_LINK 1
-#define IF_FEATURE_IP_LINK(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IP_LINK(...)
-#define CONFIG_FEATURE_IP_ROUTE 1
-#define ENABLE_FEATURE_IP_ROUTE 1
-#define IF_FEATURE_IP_ROUTE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IP_ROUTE(...)
-#undef CONFIG_FEATURE_IP_TUNNEL
-#define ENABLE_FEATURE_IP_TUNNEL 0
-#define IF_FEATURE_IP_TUNNEL(...)
-#define IF_NOT_FEATURE_IP_TUNNEL(...) __VA_ARGS__
-#define CONFIG_FEATURE_IP_RULE 1
-#define ENABLE_FEATURE_IP_RULE 1
-#define IF_FEATURE_IP_RULE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IP_RULE(...)
-#undef CONFIG_FEATURE_IP_SHORT_FORMS
-#define ENABLE_FEATURE_IP_SHORT_FORMS 0
-#define IF_FEATURE_IP_SHORT_FORMS(...)
-#define IF_NOT_FEATURE_IP_SHORT_FORMS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IP_RARE_PROTOCOLS
-#define ENABLE_FEATURE_IP_RARE_PROTOCOLS 0
-#define IF_FEATURE_IP_RARE_PROTOCOLS(...)
-#define IF_NOT_FEATURE_IP_RARE_PROTOCOLS(...) __VA_ARGS__
-#undef CONFIG_IPADDR
-#define ENABLE_IPADDR 0
-#define IF_IPADDR(...)
-#define IF_NOT_IPADDR(...) __VA_ARGS__
-#undef CONFIG_IPLINK
-#define ENABLE_IPLINK 0
-#define IF_IPLINK(...)
-#define IF_NOT_IPLINK(...) __VA_ARGS__
-#undef CONFIG_IPROUTE
-#define ENABLE_IPROUTE 0
-#define IF_IPROUTE(...)
-#define IF_NOT_IPROUTE(...) __VA_ARGS__
-#undef CONFIG_IPTUNNEL
-#define ENABLE_IPTUNNEL 0
-#define IF_IPTUNNEL(...)
-#define IF_NOT_IPTUNNEL(...) __VA_ARGS__
-#undef CONFIG_IPRULE
-#define ENABLE_IPRULE 0
-#define IF_IPRULE(...)
-#define IF_NOT_IPRULE(...) __VA_ARGS__
-#undef CONFIG_IPCALC
-#define ENABLE_IPCALC 0
-#define IF_IPCALC(...)
-#define IF_NOT_IPCALC(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IPCALC_FANCY
-#define ENABLE_FEATURE_IPCALC_FANCY 0
-#define IF_FEATURE_IPCALC_FANCY(...)
-#define IF_NOT_FEATURE_IPCALC_FANCY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IPCALC_LONG_OPTIONS
-#define ENABLE_FEATURE_IPCALC_LONG_OPTIONS 0
-#define IF_FEATURE_IPCALC_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_IPCALC_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_NETSTAT 1
-#define ENABLE_NETSTAT 1
-#define IF_NETSTAT(...) __VA_ARGS__
-#define IF_NOT_NETSTAT(...)
-#define CONFIG_FEATURE_NETSTAT_WIDE 1
-#define ENABLE_FEATURE_NETSTAT_WIDE 1
-#define IF_FEATURE_NETSTAT_WIDE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_NETSTAT_WIDE(...)
-#define CONFIG_FEATURE_NETSTAT_PRG 1
-#define ENABLE_FEATURE_NETSTAT_PRG 1
-#define IF_FEATURE_NETSTAT_PRG(...) __VA_ARGS__
-#define IF_NOT_FEATURE_NETSTAT_PRG(...)
-#define CONFIG_NSLOOKUP 1
-#define ENABLE_NSLOOKUP 1
-#define IF_NSLOOKUP(...) __VA_ARGS__
-#define IF_NOT_NSLOOKUP(...)
-#define CONFIG_NTPD 1
-#define ENABLE_NTPD 1
-#define IF_NTPD(...) __VA_ARGS__
-#define IF_NOT_NTPD(...)
-#undef CONFIG_FEATURE_NTPD_SERVER
-#define ENABLE_FEATURE_NTPD_SERVER 0
-#define IF_FEATURE_NTPD_SERVER(...)
-#define IF_NOT_FEATURE_NTPD_SERVER(...) __VA_ARGS__
-#undef CONFIG_PSCAN
-#define ENABLE_PSCAN 0
-#define IF_PSCAN(...)
-#define IF_NOT_PSCAN(...) __VA_ARGS__
-#define CONFIG_ROUTE 1
-#define ENABLE_ROUTE 1
-#define IF_ROUTE(...) __VA_ARGS__
-#define IF_NOT_ROUTE(...)
-#undef CONFIG_SLATTACH
-#define ENABLE_SLATTACH 0
-#define IF_SLATTACH(...)
-#define IF_NOT_SLATTACH(...) __VA_ARGS__
-#undef CONFIG_TCPSVD
-#define ENABLE_TCPSVD 0
-#define IF_TCPSVD(...)
-#define IF_NOT_TCPSVD(...) __VA_ARGS__
-#define CONFIG_TELNET 1
-#define ENABLE_TELNET 1
-#define IF_TELNET(...) __VA_ARGS__
-#define IF_NOT_TELNET(...)
-#define CONFIG_FEATURE_TELNET_TTYPE 1
-#define ENABLE_FEATURE_TELNET_TTYPE 1
-#define IF_FEATURE_TELNET_TTYPE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TELNET_TTYPE(...)
-#undef CONFIG_FEATURE_TELNET_AUTOLOGIN
-#define ENABLE_FEATURE_TELNET_AUTOLOGIN 0
-#define IF_FEATURE_TELNET_AUTOLOGIN(...)
-#define IF_NOT_FEATURE_TELNET_AUTOLOGIN(...) __VA_ARGS__
-#define CONFIG_TELNETD 1
-#define ENABLE_TELNETD 1
-#define IF_TELNETD(...) __VA_ARGS__
-#define IF_NOT_TELNETD(...)
-#define CONFIG_FEATURE_TELNETD_STANDALONE 1
-#define ENABLE_FEATURE_TELNETD_STANDALONE 1
-#define IF_FEATURE_TELNETD_STANDALONE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TELNETD_STANDALONE(...)
-#define CONFIG_FEATURE_TELNETD_INETD_WAIT 1
-#define ENABLE_FEATURE_TELNETD_INETD_WAIT 1
-#define IF_FEATURE_TELNETD_INETD_WAIT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TELNETD_INETD_WAIT(...)
-#define CONFIG_TFTP 1
-#define ENABLE_TFTP 1
-#define IF_TFTP(...) __VA_ARGS__
-#define IF_NOT_TFTP(...)
-#define CONFIG_TFTPD 1
-#define ENABLE_TFTPD 1
-#define IF_TFTPD(...) __VA_ARGS__
-#define IF_NOT_TFTPD(...)
-
-/*
- * Common options for tftp/tftpd
- */
-#define CONFIG_FEATURE_TFTP_GET 1
-#define ENABLE_FEATURE_TFTP_GET 1
-#define IF_FEATURE_TFTP_GET(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TFTP_GET(...)
-#define CONFIG_FEATURE_TFTP_PUT 1
-#define ENABLE_FEATURE_TFTP_PUT 1
-#define IF_FEATURE_TFTP_PUT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TFTP_PUT(...)
-#undef CONFIG_FEATURE_TFTP_BLOCKSIZE
-#define ENABLE_FEATURE_TFTP_BLOCKSIZE 0
-#define IF_FEATURE_TFTP_BLOCKSIZE(...)
-#define IF_NOT_FEATURE_TFTP_BLOCKSIZE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TFTP_PROGRESS_BAR
-#define ENABLE_FEATURE_TFTP_PROGRESS_BAR 0
-#define IF_FEATURE_TFTP_PROGRESS_BAR(...)
-#define IF_NOT_FEATURE_TFTP_PROGRESS_BAR(...) __VA_ARGS__
-#undef CONFIG_TFTP_DEBUG
-#define ENABLE_TFTP_DEBUG 0
-#define IF_TFTP_DEBUG(...)
-#define IF_NOT_TFTP_DEBUG(...) __VA_ARGS__
-#define CONFIG_TRACEROUTE 1
-#define ENABLE_TRACEROUTE 1
-#define IF_TRACEROUTE(...) __VA_ARGS__
-#define IF_NOT_TRACEROUTE(...)
-#undef CONFIG_TRACEROUTE6
-#define ENABLE_TRACEROUTE6 0
-#define IF_TRACEROUTE6(...)
-#define IF_NOT_TRACEROUTE6(...) __VA_ARGS__
-#define CONFIG_FEATURE_TRACEROUTE_VERBOSE 1
-#define ENABLE_FEATURE_TRACEROUTE_VERBOSE 1
-#define IF_FEATURE_TRACEROUTE_VERBOSE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TRACEROUTE_VERBOSE(...)
-#undef CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE
-#define ENABLE_FEATURE_TRACEROUTE_SOURCE_ROUTE 0
-#define IF_FEATURE_TRACEROUTE_SOURCE_ROUTE(...)
-#define IF_NOT_FEATURE_TRACEROUTE_SOURCE_ROUTE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TRACEROUTE_USE_ICMP
-#define ENABLE_FEATURE_TRACEROUTE_USE_ICMP 0
-#define IF_FEATURE_TRACEROUTE_USE_ICMP(...)
-#define IF_NOT_FEATURE_TRACEROUTE_USE_ICMP(...) __VA_ARGS__
-#undef CONFIG_TUNCTL
-#define ENABLE_TUNCTL 0
-#define IF_TUNCTL(...)
-#define IF_NOT_TUNCTL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TUNCTL_UG
-#define ENABLE_FEATURE_TUNCTL_UG 0
-#define IF_FEATURE_TUNCTL_UG(...)
-#define IF_NOT_FEATURE_TUNCTL_UG(...) __VA_ARGS__
-#undef CONFIG_UDHCPC6
-#define ENABLE_UDHCPC6 0
-#define IF_UDHCPC6(...)
-#define IF_NOT_UDHCPC6(...) __VA_ARGS__
-#undef CONFIG_UDHCPD
-#define ENABLE_UDHCPD 0
-#define IF_UDHCPD(...)
-#define IF_NOT_UDHCPD(...) __VA_ARGS__
-#undef CONFIG_DHCPRELAY
-#define ENABLE_DHCPRELAY 0
-#define IF_DHCPRELAY(...)
-#define IF_NOT_DHCPRELAY(...) __VA_ARGS__
-#undef CONFIG_DUMPLEASES
-#define ENABLE_DUMPLEASES 0
-#define IF_DUMPLEASES(...)
-#define IF_NOT_DUMPLEASES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY
-#define ENABLE_FEATURE_UDHCPD_WRITE_LEASES_EARLY 0
-#define IF_FEATURE_UDHCPD_WRITE_LEASES_EARLY(...)
-#define IF_NOT_FEATURE_UDHCPD_WRITE_LEASES_EARLY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC
-#define ENABLE_FEATURE_UDHCPD_BASE_IP_ON_MAC 0
-#define IF_FEATURE_UDHCPD_BASE_IP_ON_MAC(...)
-#define IF_NOT_FEATURE_UDHCPD_BASE_IP_ON_MAC(...) __VA_ARGS__
-#define CONFIG_DHCPD_LEASES_FILE ""
-#define ENABLE_DHCPD_LEASES_FILE 1
-#define IF_DHCPD_LEASES_FILE(...) __VA_ARGS__
-#define IF_NOT_DHCPD_LEASES_FILE(...)
-#undef CONFIG_UDHCPC
-#define ENABLE_UDHCPC 0
-#define IF_UDHCPC(...)
-#define IF_NOT_UDHCPC(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCPC_ARPING
-#define ENABLE_FEATURE_UDHCPC_ARPING 0
-#define IF_FEATURE_UDHCPC_ARPING(...)
-#define IF_NOT_FEATURE_UDHCPC_ARPING(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCP_PORT
-#define ENABLE_FEATURE_UDHCP_PORT 0
-#define IF_FEATURE_UDHCP_PORT(...)
-#define IF_NOT_FEATURE_UDHCP_PORT(...) __VA_ARGS__
-#define CONFIG_UDHCP_DEBUG 0
-#define ENABLE_UDHCP_DEBUG 1
-#define IF_UDHCP_DEBUG(...) __VA_ARGS__
-#define IF_NOT_UDHCP_DEBUG(...)
-#undef CONFIG_FEATURE_UDHCP_RFC3397
-#define ENABLE_FEATURE_UDHCP_RFC3397 0
-#define IF_FEATURE_UDHCP_RFC3397(...)
-#define IF_NOT_FEATURE_UDHCP_RFC3397(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCP_8021Q
-#define ENABLE_FEATURE_UDHCP_8021Q 0
-#define IF_FEATURE_UDHCP_8021Q(...)
-#define IF_NOT_FEATURE_UDHCP_8021Q(...) __VA_ARGS__
-#define CONFIG_UDHCPC_DEFAULT_SCRIPT ""
-#define ENABLE_UDHCPC_DEFAULT_SCRIPT 1
-#define IF_UDHCPC_DEFAULT_SCRIPT(...) __VA_ARGS__
-#define IF_NOT_UDHCPC_DEFAULT_SCRIPT(...)
-#define CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS 0
-#define ENABLE_UDHCPC_SLACK_FOR_BUGGY_SERVERS 1
-#define IF_UDHCPC_SLACK_FOR_BUGGY_SERVERS(...) __VA_ARGS__
-#define IF_NOT_UDHCPC_SLACK_FOR_BUGGY_SERVERS(...)
-#define CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS ""
-#define ENABLE_IFUPDOWN_UDHCPC_CMD_OPTIONS 1
-#define IF_IFUPDOWN_UDHCPC_CMD_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_IFUPDOWN_UDHCPC_CMD_OPTIONS(...)
-#undef CONFIG_UDPSVD
-#define ENABLE_UDPSVD 0
-#define IF_UDPSVD(...)
-#define IF_NOT_UDPSVD(...) __VA_ARGS__
-#undef CONFIG_VCONFIG
-#define ENABLE_VCONFIG 0
-#define IF_VCONFIG(...)
-#define IF_NOT_VCONFIG(...) __VA_ARGS__
-#define CONFIG_WGET 1
-#define ENABLE_WGET 1
-#define IF_WGET(...) __VA_ARGS__
-#define IF_NOT_WGET(...)
-#define CONFIG_FEATURE_WGET_STATUSBAR 1
-#define ENABLE_FEATURE_WGET_STATUSBAR 1
-#define IF_FEATURE_WGET_STATUSBAR(...) __VA_ARGS__
-#define IF_NOT_FEATURE_WGET_STATUSBAR(...)
-#define CONFIG_FEATURE_WGET_AUTHENTICATION 1
-#define ENABLE_FEATURE_WGET_AUTHENTICATION 1
-#define IF_FEATURE_WGET_AUTHENTICATION(...) __VA_ARGS__
-#define IF_NOT_FEATURE_WGET_AUTHENTICATION(...)
-#define CONFIG_FEATURE_WGET_LONG_OPTIONS 1
-#define ENABLE_FEATURE_WGET_LONG_OPTIONS 1
-#define IF_FEATURE_WGET_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_WGET_LONG_OPTIONS(...)
-#define CONFIG_FEATURE_WGET_TIMEOUT 1
-#define ENABLE_FEATURE_WGET_TIMEOUT 1
-#define IF_FEATURE_WGET_TIMEOUT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_WGET_TIMEOUT(...)
-#undef CONFIG_ZCIP
-#define ENABLE_ZCIP 0
-#define IF_ZCIP(...)
-#define IF_NOT_ZCIP(...) __VA_ARGS__
-
-/*
- * Print Utilities
- */
-#undef CONFIG_LPD
-#define ENABLE_LPD 0
-#define IF_LPD(...)
-#define IF_NOT_LPD(...) __VA_ARGS__
-#undef CONFIG_LPR
-#define ENABLE_LPR 0
-#define IF_LPR(...)
-#define IF_NOT_LPR(...) __VA_ARGS__
-#undef CONFIG_LPQ
-#define ENABLE_LPQ 0
-#define IF_LPQ(...)
-#define IF_NOT_LPQ(...) __VA_ARGS__
-
-/*
- * Mail Utilities
- */
-#undef CONFIG_MAKEMIME
-#define ENABLE_MAKEMIME 0
-#define IF_MAKEMIME(...)
-#define IF_NOT_MAKEMIME(...) __VA_ARGS__
-#define CONFIG_FEATURE_MIME_CHARSET ""
-#define ENABLE_FEATURE_MIME_CHARSET 1
-#define IF_FEATURE_MIME_CHARSET(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MIME_CHARSET(...)
-#undef CONFIG_POPMAILDIR
-#define ENABLE_POPMAILDIR 0
-#define IF_POPMAILDIR(...)
-#define IF_NOT_POPMAILDIR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_POPMAILDIR_DELIVERY
-#define ENABLE_FEATURE_POPMAILDIR_DELIVERY 0
-#define IF_FEATURE_POPMAILDIR_DELIVERY(...)
-#define IF_NOT_FEATURE_POPMAILDIR_DELIVERY(...) __VA_ARGS__
-#undef CONFIG_REFORMIME
-#define ENABLE_REFORMIME 0
-#define IF_REFORMIME(...)
-#define IF_NOT_REFORMIME(...) __VA_ARGS__
-#undef CONFIG_FEATURE_REFORMIME_COMPAT
-#define ENABLE_FEATURE_REFORMIME_COMPAT 0
-#define IF_FEATURE_REFORMIME_COMPAT(...)
-#define IF_NOT_FEATURE_REFORMIME_COMPAT(...) __VA_ARGS__
-#undef CONFIG_SENDMAIL
-#define ENABLE_SENDMAIL 0
-#define IF_SENDMAIL(...)
-#define IF_NOT_SENDMAIL(...) __VA_ARGS__
-
-/*
- * Process Utilities
- */
-#define CONFIG_IOSTAT 1
-#define ENABLE_IOSTAT 1
-#define IF_IOSTAT(...) __VA_ARGS__
-#define IF_NOT_IOSTAT(...)
-#define CONFIG_LSOF 1
-#define ENABLE_LSOF 1
-#define IF_LSOF(...) __VA_ARGS__
-#define IF_NOT_LSOF(...)
-#define CONFIG_MPSTAT 1
-#define ENABLE_MPSTAT 1
-#define IF_MPSTAT(...) __VA_ARGS__
-#define IF_NOT_MPSTAT(...)
-#undef CONFIG_NMETER
-#define ENABLE_NMETER 0
-#define IF_NMETER(...)
-#define IF_NOT_NMETER(...) __VA_ARGS__
-#define CONFIG_PMAP 1
-#define ENABLE_PMAP 1
-#define IF_PMAP(...) __VA_ARGS__
-#define IF_NOT_PMAP(...)
-#undef CONFIG_POWERTOP
-#define ENABLE_POWERTOP 0
-#define IF_POWERTOP(...)
-#define IF_NOT_POWERTOP(...) __VA_ARGS__
-#define CONFIG_PSTREE 1
-#define ENABLE_PSTREE 1
-#define IF_PSTREE(...) __VA_ARGS__
-#define IF_NOT_PSTREE(...)
-#define CONFIG_PWDX 1
-#define ENABLE_PWDX 1
-#define IF_PWDX(...) __VA_ARGS__
-#define IF_NOT_PWDX(...)
-#undef CONFIG_SMEMCAP
-#define ENABLE_SMEMCAP 0
-#define IF_SMEMCAP(...)
-#define IF_NOT_SMEMCAP(...) __VA_ARGS__
-#define CONFIG_TOP 1
-#define ENABLE_TOP 1
-#define IF_TOP(...) __VA_ARGS__
-#define IF_NOT_TOP(...)
-#define CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE 1
-#define ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE 1
-#define IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOP_CPU_USAGE_PERCENTAGE(...)
-#define CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS 1
-#define ENABLE_FEATURE_TOP_CPU_GLOBAL_PERCENTS 1
-#define IF_FEATURE_TOP_CPU_GLOBAL_PERCENTS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOP_CPU_GLOBAL_PERCENTS(...)
-#define CONFIG_FEATURE_TOP_SMP_CPU 1
-#define ENABLE_FEATURE_TOP_SMP_CPU 1
-#define IF_FEATURE_TOP_SMP_CPU(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOP_SMP_CPU(...)
-#define CONFIG_FEATURE_TOP_DECIMALS 1
-#define ENABLE_FEATURE_TOP_DECIMALS 1
-#define IF_FEATURE_TOP_DECIMALS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOP_DECIMALS(...)
-#undef CONFIG_FEATURE_TOP_SMP_PROCESS
-#define ENABLE_FEATURE_TOP_SMP_PROCESS 0
-#define IF_FEATURE_TOP_SMP_PROCESS(...)
-#define IF_NOT_FEATURE_TOP_SMP_PROCESS(...) __VA_ARGS__
-#define CONFIG_FEATURE_TOPMEM 1
-#define ENABLE_FEATURE_TOPMEM 1
-#define IF_FEATURE_TOPMEM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOPMEM(...)
-#define CONFIG_UPTIME 1
-#define ENABLE_UPTIME 1
-#define IF_UPTIME(...) __VA_ARGS__
-#define IF_NOT_UPTIME(...)
-#undef CONFIG_FEATURE_UPTIME_UTMP_SUPPORT
-#define ENABLE_FEATURE_UPTIME_UTMP_SUPPORT 0
-#define IF_FEATURE_UPTIME_UTMP_SUPPORT(...)
-#define IF_NOT_FEATURE_UPTIME_UTMP_SUPPORT(...) __VA_ARGS__
-#define CONFIG_FREE 1
-#define ENABLE_FREE 1
-#define IF_FREE(...) __VA_ARGS__
-#define IF_NOT_FREE(...)
-#define CONFIG_FUSER 1
-#define ENABLE_FUSER 1
-#define IF_FUSER(...) __VA_ARGS__
-#define IF_NOT_FUSER(...)
-#define CONFIG_KILL 1
-#define ENABLE_KILL 1
-#define IF_KILL(...) __VA_ARGS__
-#define IF_NOT_KILL(...)
-#define CONFIG_KILLALL 1
-#define ENABLE_KILLALL 1
-#define IF_KILLALL(...) __VA_ARGS__
-#define IF_NOT_KILLALL(...)
-#define CONFIG_KILLALL5 1
-#define ENABLE_KILLALL5 1
-#define IF_KILLALL5(...) __VA_ARGS__
-#define IF_NOT_KILLALL5(...)
-#define CONFIG_PGREP 1
-#define ENABLE_PGREP 1
-#define IF_PGREP(...) __VA_ARGS__
-#define IF_NOT_PGREP(...)
-#define CONFIG_PIDOF 1
-#define ENABLE_PIDOF 1
-#define IF_PIDOF(...) __VA_ARGS__
-#define IF_NOT_PIDOF(...)
-#define CONFIG_FEATURE_PIDOF_SINGLE 1
-#define ENABLE_FEATURE_PIDOF_SINGLE 1
-#define IF_FEATURE_PIDOF_SINGLE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PIDOF_SINGLE(...)
-#define CONFIG_FEATURE_PIDOF_OMIT 1
-#define ENABLE_FEATURE_PIDOF_OMIT 1
-#define IF_FEATURE_PIDOF_OMIT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PIDOF_OMIT(...)
-#define CONFIG_PKILL 1
-#define ENABLE_PKILL 1
-#define IF_PKILL(...) __VA_ARGS__
-#define IF_NOT_PKILL(...)
-#define CONFIG_PS 1
-#define ENABLE_PS 1
-#define IF_PS(...) __VA_ARGS__
-#define IF_NOT_PS(...)
-#define CONFIG_FEATURE_PS_WIDE 1
-#define ENABLE_FEATURE_PS_WIDE 1
-#define IF_FEATURE_PS_WIDE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PS_WIDE(...)
-#define CONFIG_FEATURE_PS_LONG 1
-#define ENABLE_FEATURE_PS_LONG 1
-#define IF_FEATURE_PS_LONG(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PS_LONG(...)
-#undef CONFIG_FEATURE_PS_TIME
-#define ENABLE_FEATURE_PS_TIME 0
-#define IF_FEATURE_PS_TIME(...)
-#define IF_NOT_FEATURE_PS_TIME(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS
-#define ENABLE_FEATURE_PS_ADDITIONAL_COLUMNS 0
-#define IF_FEATURE_PS_ADDITIONAL_COLUMNS(...)
-#define IF_NOT_FEATURE_PS_ADDITIONAL_COLUMNS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS
-#define ENABLE_FEATURE_PS_UNUSUAL_SYSTEMS 0
-#define IF_FEATURE_PS_UNUSUAL_SYSTEMS(...)
-#define IF_NOT_FEATURE_PS_UNUSUAL_SYSTEMS(...) __VA_ARGS__
-#define CONFIG_RENICE 1
-#define ENABLE_RENICE 1
-#define IF_RENICE(...) __VA_ARGS__
-#define IF_NOT_RENICE(...)
-#define CONFIG_BB_SYSCTL 1
-#define ENABLE_BB_SYSCTL 1
-#define IF_BB_SYSCTL(...) __VA_ARGS__
-#define IF_NOT_BB_SYSCTL(...)
-#define CONFIG_FEATURE_SHOW_THREADS 1
-#define ENABLE_FEATURE_SHOW_THREADS 1
-#define IF_FEATURE_SHOW_THREADS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SHOW_THREADS(...)
-#define CONFIG_WATCH 1
-#define ENABLE_WATCH 1
-#define IF_WATCH(...) __VA_ARGS__
-#define IF_NOT_WATCH(...)
-
-/*
- * Runit Utilities
- */
-#undef CONFIG_RUNSV
-#define ENABLE_RUNSV 0
-#define IF_RUNSV(...)
-#define IF_NOT_RUNSV(...) __VA_ARGS__
-#undef CONFIG_RUNSVDIR
-#define ENABLE_RUNSVDIR 0
-#define IF_RUNSVDIR(...)
-#define IF_NOT_RUNSVDIR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_RUNSVDIR_LOG
-#define ENABLE_FEATURE_RUNSVDIR_LOG 0
-#define IF_FEATURE_RUNSVDIR_LOG(...)
-#define IF_NOT_FEATURE_RUNSVDIR_LOG(...) __VA_ARGS__
-#undef CONFIG_SV
-#define ENABLE_SV 0
-#define IF_SV(...)
-#define IF_NOT_SV(...) __VA_ARGS__
-#define CONFIG_SV_DEFAULT_SERVICE_DIR ""
-#define ENABLE_SV_DEFAULT_SERVICE_DIR 1
-#define IF_SV_DEFAULT_SERVICE_DIR(...) __VA_ARGS__
-#define IF_NOT_SV_DEFAULT_SERVICE_DIR(...)
-#undef CONFIG_SVLOGD
-#define ENABLE_SVLOGD 0
-#define IF_SVLOGD(...)
-#define IF_NOT_SVLOGD(...) __VA_ARGS__
-#undef CONFIG_CHPST
-#define ENABLE_CHPST 0
-#define IF_CHPST(...)
-#define IF_NOT_CHPST(...) __VA_ARGS__
-#undef CONFIG_SETUIDGID
-#define ENABLE_SETUIDGID 0
-#define IF_SETUIDGID(...)
-#define IF_NOT_SETUIDGID(...) __VA_ARGS__
-#undef CONFIG_ENVUIDGID
-#define ENABLE_ENVUIDGID 0
-#define IF_ENVUIDGID(...)
-#define IF_NOT_ENVUIDGID(...) __VA_ARGS__
-#undef CONFIG_ENVDIR
-#define ENABLE_ENVDIR 0
-#define IF_ENVDIR(...)
-#define IF_NOT_ENVDIR(...) __VA_ARGS__
-#undef CONFIG_SOFTLIMIT
-#define ENABLE_SOFTLIMIT 0
-#define IF_SOFTLIMIT(...)
-#define IF_NOT_SOFTLIMIT(...) __VA_ARGS__
-#undef CONFIG_CHCON
-#define ENABLE_CHCON 0
-#define IF_CHCON(...)
-#define IF_NOT_CHCON(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHCON_LONG_OPTIONS
-#define ENABLE_FEATURE_CHCON_LONG_OPTIONS 0
-#define IF_FEATURE_CHCON_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_CHCON_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_GETENFORCE
-#define ENABLE_GETENFORCE 0
-#define IF_GETENFORCE(...)
-#define IF_NOT_GETENFORCE(...) __VA_ARGS__
-#undef CONFIG_GETSEBOOL
-#define ENABLE_GETSEBOOL 0
-#define IF_GETSEBOOL(...)
-#define IF_NOT_GETSEBOOL(...) __VA_ARGS__
-#undef CONFIG_LOAD_POLICY
-#define ENABLE_LOAD_POLICY 0
-#define IF_LOAD_POLICY(...)
-#define IF_NOT_LOAD_POLICY(...) __VA_ARGS__
-#undef CONFIG_MATCHPATHCON
-#define ENABLE_MATCHPATHCON 0
-#define IF_MATCHPATHCON(...)
-#define IF_NOT_MATCHPATHCON(...) __VA_ARGS__
-#undef CONFIG_RESTORECON
-#define ENABLE_RESTORECON 0
-#define IF_RESTORECON(...)
-#define IF_NOT_RESTORECON(...) __VA_ARGS__
-#undef CONFIG_RUNCON
-#define ENABLE_RUNCON 0
-#define IF_RUNCON(...)
-#define IF_NOT_RUNCON(...) __VA_ARGS__
-#undef CONFIG_FEATURE_RUNCON_LONG_OPTIONS
-#define ENABLE_FEATURE_RUNCON_LONG_OPTIONS 0
-#define IF_FEATURE_RUNCON_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_RUNCON_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_SELINUXENABLED
-#define ENABLE_SELINUXENABLED 0
-#define IF_SELINUXENABLED(...)
-#define IF_NOT_SELINUXENABLED(...) __VA_ARGS__
-#undef CONFIG_SETENFORCE
-#define ENABLE_SETENFORCE 0
-#define IF_SETENFORCE(...)
-#define IF_NOT_SETENFORCE(...) __VA_ARGS__
-#undef CONFIG_SETFILES
-#define ENABLE_SETFILES 0
-#define IF_SETFILES(...)
-#define IF_NOT_SETFILES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SETFILES_CHECK_OPTION
-#define ENABLE_FEATURE_SETFILES_CHECK_OPTION 0
-#define IF_FEATURE_SETFILES_CHECK_OPTION(...)
-#define IF_NOT_FEATURE_SETFILES_CHECK_OPTION(...) __VA_ARGS__
-#undef CONFIG_SETSEBOOL
-#define ENABLE_SETSEBOOL 0
-#define IF_SETSEBOOL(...)
-#define IF_NOT_SETSEBOOL(...) __VA_ARGS__
-#undef CONFIG_SESTATUS
-#define ENABLE_SESTATUS 0
-#define IF_SESTATUS(...)
-#define IF_NOT_SESTATUS(...) __VA_ARGS__
-
-/*
- * Shells
- */
-#define CONFIG_ASH 1
-#define ENABLE_ASH 1
-#define IF_ASH(...) __VA_ARGS__
-#define IF_NOT_ASH(...)
-#define CONFIG_ASH_BASH_COMPAT 1
-#define ENABLE_ASH_BASH_COMPAT 1
-#define IF_ASH_BASH_COMPAT(...) __VA_ARGS__
-#define IF_NOT_ASH_BASH_COMPAT(...)
-#undef CONFIG_ASH_IDLE_TIMEOUT
-#define ENABLE_ASH_IDLE_TIMEOUT 0
-#define IF_ASH_IDLE_TIMEOUT(...)
-#define IF_NOT_ASH_IDLE_TIMEOUT(...) __VA_ARGS__
-#define CONFIG_ASH_JOB_CONTROL 1
-#define ENABLE_ASH_JOB_CONTROL 1
-#define IF_ASH_JOB_CONTROL(...) __VA_ARGS__
-#define IF_NOT_ASH_JOB_CONTROL(...)
-#define CONFIG_ASH_ALIAS 1
-#define ENABLE_ASH_ALIAS 1
-#define IF_ASH_ALIAS(...) __VA_ARGS__
-#define IF_NOT_ASH_ALIAS(...)
-#undef CONFIG_ASH_GETOPTS
-#define ENABLE_ASH_GETOPTS 0
-#define IF_ASH_GETOPTS(...)
-#define IF_NOT_ASH_GETOPTS(...) __VA_ARGS__
-#define CONFIG_ASH_BUILTIN_ECHO 1
-#define ENABLE_ASH_BUILTIN_ECHO 1
-#define IF_ASH_BUILTIN_ECHO(...) __VA_ARGS__
-#define IF_NOT_ASH_BUILTIN_ECHO(...)
-#define CONFIG_ASH_BUILTIN_PRINTF 1
-#define ENABLE_ASH_BUILTIN_PRINTF 1
-#define IF_ASH_BUILTIN_PRINTF(...) __VA_ARGS__
-#define IF_NOT_ASH_BUILTIN_PRINTF(...)
-#define CONFIG_ASH_BUILTIN_TEST 1
-#define ENABLE_ASH_BUILTIN_TEST 1
-#define IF_ASH_BUILTIN_TEST(...) __VA_ARGS__
-#define IF_NOT_ASH_BUILTIN_TEST(...)
-#define CONFIG_ASH_CMDCMD 1
-#define ENABLE_ASH_CMDCMD 1
-#define IF_ASH_CMDCMD(...) __VA_ARGS__
-#define IF_NOT_ASH_CMDCMD(...)
-#undef CONFIG_ASH_MAIL
-#define ENABLE_ASH_MAIL 0
-#define IF_ASH_MAIL(...)
-#define IF_NOT_ASH_MAIL(...) __VA_ARGS__
-#define CONFIG_ASH_OPTIMIZE_FOR_SIZE 1
-#define ENABLE_ASH_OPTIMIZE_FOR_SIZE 1
-#define IF_ASH_OPTIMIZE_FOR_SIZE(...) __VA_ARGS__
-#define IF_NOT_ASH_OPTIMIZE_FOR_SIZE(...)
-#define CONFIG_ASH_RANDOM_SUPPORT 1
-#define ENABLE_ASH_RANDOM_SUPPORT 1
-#define IF_ASH_RANDOM_SUPPORT(...) __VA_ARGS__
-#define IF_NOT_ASH_RANDOM_SUPPORT(...)
-#define CONFIG_ASH_EXPAND_PRMT 1
-#define ENABLE_ASH_EXPAND_PRMT 1
-#define IF_ASH_EXPAND_PRMT(...) __VA_ARGS__
-#define IF_NOT_ASH_EXPAND_PRMT(...)
-#undef CONFIG_CTTYHACK
-#define ENABLE_CTTYHACK 0
-#define IF_CTTYHACK(...)
-#define IF_NOT_CTTYHACK(...) __VA_ARGS__
-#undef CONFIG_HUSH
-#define ENABLE_HUSH 0
-#define IF_HUSH(...)
-#define IF_NOT_HUSH(...) __VA_ARGS__
-#undef CONFIG_HUSH_BASH_COMPAT
-#define ENABLE_HUSH_BASH_COMPAT 0
-#define IF_HUSH_BASH_COMPAT(...)
-#define IF_NOT_HUSH_BASH_COMPAT(...) __VA_ARGS__
-#undef CONFIG_HUSH_BRACE_EXPANSION
-#define ENABLE_HUSH_BRACE_EXPANSION 0
-#define IF_HUSH_BRACE_EXPANSION(...)
-#define IF_NOT_HUSH_BRACE_EXPANSION(...) __VA_ARGS__
-#undef CONFIG_HUSH_HELP
-#define ENABLE_HUSH_HELP 0
-#define IF_HUSH_HELP(...)
-#define IF_NOT_HUSH_HELP(...) __VA_ARGS__
-#undef CONFIG_HUSH_INTERACTIVE
-#define ENABLE_HUSH_INTERACTIVE 0
-#define IF_HUSH_INTERACTIVE(...)
-#define IF_NOT_HUSH_INTERACTIVE(...) __VA_ARGS__
-#undef CONFIG_HUSH_SAVEHISTORY
-#define ENABLE_HUSH_SAVEHISTORY 0
-#define IF_HUSH_SAVEHISTORY(...)
-#define IF_NOT_HUSH_SAVEHISTORY(...) __VA_ARGS__
-#undef CONFIG_HUSH_JOB
-#define ENABLE_HUSH_JOB 0
-#define IF_HUSH_JOB(...)
-#define IF_NOT_HUSH_JOB(...) __VA_ARGS__
-#undef CONFIG_HUSH_TICK
-#define ENABLE_HUSH_TICK 0
-#define IF_HUSH_TICK(...)
-#define IF_NOT_HUSH_TICK(...) __VA_ARGS__
-#undef CONFIG_HUSH_IF
-#define ENABLE_HUSH_IF 0
-#define IF_HUSH_IF(...)
-#define IF_NOT_HUSH_IF(...) __VA_ARGS__
-#undef CONFIG_HUSH_LOOPS
-#define ENABLE_HUSH_LOOPS 0
-#define IF_HUSH_LOOPS(...)
-#define IF_NOT_HUSH_LOOPS(...) __VA_ARGS__
-#undef CONFIG_HUSH_CASE
-#define ENABLE_HUSH_CASE 0
-#define IF_HUSH_CASE(...)
-#define IF_NOT_HUSH_CASE(...) __VA_ARGS__
-#undef CONFIG_HUSH_FUNCTIONS
-#define ENABLE_HUSH_FUNCTIONS 0
-#define IF_HUSH_FUNCTIONS(...)
-#define IF_NOT_HUSH_FUNCTIONS(...) __VA_ARGS__
-#undef CONFIG_HUSH_LOCAL
-#define ENABLE_HUSH_LOCAL 0
-#define IF_HUSH_LOCAL(...)
-#define IF_NOT_HUSH_LOCAL(...) __VA_ARGS__
-#undef CONFIG_HUSH_RANDOM_SUPPORT
-#define ENABLE_HUSH_RANDOM_SUPPORT 0
-#define IF_HUSH_RANDOM_SUPPORT(...)
-#define IF_NOT_HUSH_RANDOM_SUPPORT(...) __VA_ARGS__
-#undef CONFIG_HUSH_EXPORT_N
-#define ENABLE_HUSH_EXPORT_N 0
-#define IF_HUSH_EXPORT_N(...)
-#define IF_NOT_HUSH_EXPORT_N(...) __VA_ARGS__
-#undef CONFIG_HUSH_MODE_X
-#define ENABLE_HUSH_MODE_X 0
-#define IF_HUSH_MODE_X(...)
-#define IF_NOT_HUSH_MODE_X(...) __VA_ARGS__
-#undef CONFIG_MSH
-#define ENABLE_MSH 0
-#define IF_MSH(...)
-#define IF_NOT_MSH(...) __VA_ARGS__
-#define CONFIG_FEATURE_SH_IS_ASH 1
-#define ENABLE_FEATURE_SH_IS_ASH 1
-#define IF_FEATURE_SH_IS_ASH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SH_IS_ASH(...)
-#undef CONFIG_FEATURE_SH_IS_HUSH
-#define ENABLE_FEATURE_SH_IS_HUSH 0
-#define IF_FEATURE_SH_IS_HUSH(...)
-#define IF_NOT_FEATURE_SH_IS_HUSH(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SH_IS_NONE
-#define ENABLE_FEATURE_SH_IS_NONE 0
-#define IF_FEATURE_SH_IS_NONE(...)
-#define IF_NOT_FEATURE_SH_IS_NONE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BASH_IS_ASH
-#define ENABLE_FEATURE_BASH_IS_ASH 0
-#define IF_FEATURE_BASH_IS_ASH(...)
-#define IF_NOT_FEATURE_BASH_IS_ASH(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BASH_IS_HUSH
-#define ENABLE_FEATURE_BASH_IS_HUSH 0
-#define IF_FEATURE_BASH_IS_HUSH(...)
-#define IF_NOT_FEATURE_BASH_IS_HUSH(...) __VA_ARGS__
-#define CONFIG_FEATURE_BASH_IS_NONE 1
-#define ENABLE_FEATURE_BASH_IS_NONE 1
-#define IF_FEATURE_BASH_IS_NONE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BASH_IS_NONE(...)
-#define CONFIG_SH_MATH_SUPPORT 1
-#define ENABLE_SH_MATH_SUPPORT 1
-#define IF_SH_MATH_SUPPORT(...) __VA_ARGS__
-#define IF_NOT_SH_MATH_SUPPORT(...)
-#define CONFIG_SH_MATH_SUPPORT_64 1
-#define ENABLE_SH_MATH_SUPPORT_64 1
-#define IF_SH_MATH_SUPPORT_64(...) __VA_ARGS__
-#define IF_NOT_SH_MATH_SUPPORT_64(...)
-#define CONFIG_FEATURE_SH_EXTRA_QUIET 1
-#define ENABLE_FEATURE_SH_EXTRA_QUIET 1
-#define IF_FEATURE_SH_EXTRA_QUIET(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SH_EXTRA_QUIET(...)
-#undef CONFIG_FEATURE_SH_STANDALONE
-#define ENABLE_FEATURE_SH_STANDALONE 0
-#define IF_FEATURE_SH_STANDALONE(...)
-#define IF_NOT_FEATURE_SH_STANDALONE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SH_NOFORK
-#define ENABLE_FEATURE_SH_NOFORK 0
-#define IF_FEATURE_SH_NOFORK(...)
-#define IF_NOT_FEATURE_SH_NOFORK(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SH_HISTFILESIZE
-#define ENABLE_FEATURE_SH_HISTFILESIZE 0
-#define IF_FEATURE_SH_HISTFILESIZE(...)
-#define IF_NOT_FEATURE_SH_HISTFILESIZE(...) __VA_ARGS__
-
-/*
- * System Logging Utilities
- */
-#undef CONFIG_SYSLOGD
-#define ENABLE_SYSLOGD 0
-#define IF_SYSLOGD(...)
-#define IF_NOT_SYSLOGD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ROTATE_LOGFILE
-#define ENABLE_FEATURE_ROTATE_LOGFILE 0
-#define IF_FEATURE_ROTATE_LOGFILE(...)
-#define IF_NOT_FEATURE_ROTATE_LOGFILE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_REMOTE_LOG
-#define ENABLE_FEATURE_REMOTE_LOG 0
-#define IF_FEATURE_REMOTE_LOG(...)
-#define IF_NOT_FEATURE_REMOTE_LOG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SYSLOGD_DUP
-#define ENABLE_FEATURE_SYSLOGD_DUP 0
-#define IF_FEATURE_SYSLOGD_DUP(...)
-#define IF_NOT_FEATURE_SYSLOGD_DUP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SYSLOGD_CFG
-#define ENABLE_FEATURE_SYSLOGD_CFG 0
-#define IF_FEATURE_SYSLOGD_CFG(...)
-#define IF_NOT_FEATURE_SYSLOGD_CFG(...) __VA_ARGS__
-#define CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE 0
-#define ENABLE_FEATURE_SYSLOGD_READ_BUFFER_SIZE 1
-#define IF_FEATURE_SYSLOGD_READ_BUFFER_SIZE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SYSLOGD_READ_BUFFER_SIZE(...)
-#undef CONFIG_FEATURE_IPC_SYSLOG
-#define ENABLE_FEATURE_IPC_SYSLOG 0
-#define IF_FEATURE_IPC_SYSLOG(...)
-#define IF_NOT_FEATURE_IPC_SYSLOG(...) __VA_ARGS__
-#define CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE 0
-#define ENABLE_FEATURE_IPC_SYSLOG_BUFFER_SIZE 1
-#define IF_FEATURE_IPC_SYSLOG_BUFFER_SIZE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IPC_SYSLOG_BUFFER_SIZE(...)
-#undef CONFIG_LOGREAD
-#define ENABLE_LOGREAD 0
-#define IF_LOGREAD(...)
-#define IF_NOT_LOGREAD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING
-#define ENABLE_FEATURE_LOGREAD_REDUCED_LOCKING 0
-#define IF_FEATURE_LOGREAD_REDUCED_LOCKING(...)
-#define IF_NOT_FEATURE_LOGREAD_REDUCED_LOCKING(...) __VA_ARGS__
-#undef CONFIG_FEATURE_KMSG_SYSLOG
-#define ENABLE_FEATURE_KMSG_SYSLOG 0
-#define IF_FEATURE_KMSG_SYSLOG(...)
-#define IF_NOT_FEATURE_KMSG_SYSLOG(...) __VA_ARGS__
-#undef CONFIG_KLOGD
-#define ENABLE_KLOGD 0
-#define IF_KLOGD(...)
-#define IF_NOT_KLOGD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_KLOGD_KLOGCTL
-#define ENABLE_FEATURE_KLOGD_KLOGCTL 0
-#define IF_FEATURE_KLOGD_KLOGCTL(...)
-#define IF_NOT_FEATURE_KLOGD_KLOGCTL(...) __VA_ARGS__
-#undef CONFIG_LOGGER
-#define ENABLE_LOGGER 0
-#define IF_LOGGER(...)
-#define IF_NOT_LOGGER(...) __VA_ARGS__
diff --git a/include-full/bbconfigopts.h b/include-full/bbconfigopts.h
deleted file mode 100644
index a879f55..0000000
--- a/include-full/bbconfigopts.h
+++ /dev/null
@@ -1,898 +0,0 @@
-#ifndef _BBCONFIGOPTS_H
-#define _BBCONFIGOPTS_H
-/*
- * busybox configuration settings.
- *
- * Licensed under GPLv2 or later, see file LICENSE in this source tree.
- *
- * This file is generated automatically by scripts/mkconfigs.
- * Do not edit.
- */
-static const char bbconfig_config[] ALIGN1 =
-"CONFIG_HAVE_DOT_CONFIG=y\n"
-"# CONFIG_DESKTOP is not set\n"
-"# CONFIG_EXTRA_COMPAT is not set\n"
-"# CONFIG_INCLUDE_SUSv2 is not set\n"
-"# CONFIG_USE_PORTABLE_CODE is not set\n"
-"CONFIG_PLATFORM_LINUX=y\n"
-"CONFIG_FEATURE_BUFFERS_USE_MALLOC=y\n"
-"# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set\n"
-"# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set\n"
-"CONFIG_SHOW_USAGE=y\n"
-"CONFIG_FEATURE_VERBOSE_USAGE=y\n"
-"CONFIG_FEATURE_COMPRESS_USAGE=y\n"
-"# CONFIG_FEATURE_INSTALLER is not set\n"
-"CONFIG_INSTALL_NO_USR=y\n"
-"# CONFIG_LOCALE_SUPPORT is not set\n"
-"CONFIG_UNICODE_SUPPORT=y\n"
-"# CONFIG_UNICODE_USING_LOCALE is not set\n"
-"# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set\n"
-"CONFIG_SUBST_WCHAR=63\n"
-"CONFIG_LAST_SUPPORTED_WCHAR=0\n"
-"# CONFIG_UNICODE_COMBINING_WCHARS is not set\n"
-"CONFIG_UNICODE_WIDE_WCHARS=y\n"
-"# CONFIG_UNICODE_BIDI_SUPPORT is not set\n"
-"# CONFIG_UNICODE_NEUTRAL_TABLE is not set\n"
-"CONFIG_UNICODE_PRESERVE_BROKEN=y\n"
-"CONFIG_LONG_OPTS=y\n"
-"CONFIG_FEATURE_DEVPTS=y\n"
-"# CONFIG_FEATURE_CLEAN_UP is not set\n"
-"# CONFIG_FEATURE_UTMP is not set\n"
-"# CONFIG_FEATURE_WTMP is not set\n"
-"# CONFIG_FEATURE_PIDFILE is not set\n"
-"CONFIG_PID_FILE_PATH=\"\"\n"
-"CONFIG_FEATURE_SUID=y\n"
-"# CONFIG_FEATURE_SUID_CONFIG is not set\n"
-"# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set\n"
-"# CONFIG_SELINUX is not set\n"
-"# CONFIG_FEATURE_PREFER_APPLETS is not set\n"
-"CONFIG_BUSYBOX_EXEC_PATH=\"/proc/self/exe\"\n"
-"CONFIG_FEATURE_SYSLOG=y\n"
-"CONFIG_FEATURE_HAVE_RPC=y\n"
-"# CONFIG_STATIC is not set\n"
-"# CONFIG_PIE is not set\n"
-"# CONFIG_NOMMU is not set\n"
-"# CONFIG_BUILD_LIBBUSYBOX is not set\n"
-"# CONFIG_FEATURE_INDIVIDUAL is not set\n"
-"# CONFIG_FEATURE_SHARED_BUSYBOX is not set\n"
-"# CONFIG_LFS is not set\n"
-"CONFIG_CROSS_COMPILER_PREFIX=\"arm-eabi-\"\n"
-"CONFIG_SYSROOT=\"\"\n"
-"CONFIG_EXTRA_CFLAGS=\"-Os -fno-short-enums -fgcse-after-reload -frerun-cse-after-loop -frename-registers\"\n"
-"CONFIG_EXTRA_LDFLAGS=\"\"\n"
-"CONFIG_EXTRA_LDLIBS=\"\"\n"
-"# CONFIG_DEBUG is not set\n"
-"# CONFIG_DEBUG_PESSIMIZE is not set\n"
-"# CONFIG_WERROR is not set\n"
-"CONFIG_NO_DEBUG_LIB=y\n"
-"# CONFIG_DMALLOC is not set\n"
-"# CONFIG_EFENCE is not set\n"
-"CONFIG_INSTALL_APPLET_SYMLINKS=y\n"
-"# CONFIG_INSTALL_APPLET_HARDLINKS is not set\n"
-"# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set\n"
-"# CONFIG_INSTALL_APPLET_DONT is not set\n"
-"# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set\n"
-"# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set\n"
-"# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set\n"
-"CONFIG_PREFIX=\"./_install\"\n"
-"# CONFIG_FEATURE_SYSTEMD is not set\n"
-"CONFIG_FEATURE_RTMINMAX=y\n"
-"CONFIG_PASSWORD_MINLEN=6\n"
-"CONFIG_MD5_SMALL=1\n"
-"CONFIG_SHA3_SMALL=1\n"
-"CONFIG_FEATURE_FAST_TOP=y\n"
-"# CONFIG_FEATURE_ETC_NETWORKS is not set\n"
-"CONFIG_FEATURE_USE_TERMIOS=y\n"
-"CONFIG_FEATURE_EDITING=y\n"
-"CONFIG_FEATURE_EDITING_MAX_LEN=1024\n"
-"CONFIG_FEATURE_EDITING_VI=y\n"
-"CONFIG_FEATURE_EDITING_HISTORY=256\n"
-"CONFIG_FEATURE_EDITING_SAVEHISTORY=y\n"
-"# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set\n"
-"CONFIG_FEATURE_REVERSE_SEARCH=y\n"
-"CONFIG_FEATURE_TAB_COMPLETION=y\n"
-"# CONFIG_FEATURE_USERNAME_COMPLETION is not set\n"
-"CONFIG_FEATURE_EDITING_FANCY_PROMPT=y\n"
-"CONFIG_FEATURE_EDITING_ASK_TERMINAL=y\n"
-"CONFIG_FEATURE_NON_POSIX_CP=y\n"
-"# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set\n"
-"CONFIG_FEATURE_COPYBUF_KB=4\n"
-"CONFIG_FEATURE_SKIP_ROOTFS=y\n"
-"CONFIG_MONOTONIC_SYSCALL=y\n"
-"CONFIG_IOCTL_HEX2STR_ERROR=y\n"
-"# CONFIG_FEATURE_HWIB is not set\n"
-"CONFIG_FEATURE_SEAMLESS_XZ=y\n"
-"CONFIG_FEATURE_SEAMLESS_LZMA=y\n"
-"CONFIG_FEATURE_SEAMLESS_BZ2=y\n"
-"CONFIG_FEATURE_SEAMLESS_GZ=y\n"
-"# CONFIG_FEATURE_SEAMLESS_Z is not set\n"
-"# CONFIG_AR is not set\n"
-"# CONFIG_FEATURE_AR_LONG_FILENAMES is not set\n"
-"# CONFIG_FEATURE_AR_CREATE is not set\n"
-"CONFIG_BUNZIP2=y\n"
-"CONFIG_BZIP2=y\n"
-"CONFIG_CPIO=y\n"
-"CONFIG_FEATURE_CPIO_O=y\n"
-"CONFIG_FEATURE_CPIO_P=y\n"
-"# CONFIG_DPKG is not set\n"
-"# CONFIG_DPKG_DEB is not set\n"
-"# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set\n"
-"CONFIG_GUNZIP=y\n"
-"CONFIG_GZIP=y\n"
-"CONFIG_FEATURE_GZIP_LONG_OPTIONS=y\n"
-"CONFIG_GZIP_FAST=2\n"
-"CONFIG_LZOP=y\n"
-"# CONFIG_LZOP_COMPR_HIGH is not set\n"
-"# CONFIG_RPM2CPIO is not set\n"
-"# CONFIG_RPM is not set\n"
-"CONFIG_TAR=y\n"
-"CONFIG_FEATURE_TAR_CREATE=y\n"
-"CONFIG_FEATURE_TAR_AUTODETECT=y\n"
-"CONFIG_FEATURE_TAR_FROM=y\n"
-"# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set\n"
-"# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set\n"
-"CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y\n"
-"CONFIG_FEATURE_TAR_LONG_OPTIONS=y\n"
-"CONFIG_FEATURE_TAR_TO_COMMAND=y\n"
-"CONFIG_FEATURE_TAR_UNAME_GNAME=y\n"
-"CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y\n"
-"# CONFIG_FEATURE_TAR_SELINUX is not set\n"
-"CONFIG_UNCOMPRESS=y\n"
-"CONFIG_UNLZMA=y\n"
-"CONFIG_FEATURE_LZMA_FAST=y\n"
-"CONFIG_LZMA=y\n"
-"CONFIG_UNXZ=y\n"
-"CONFIG_XZ=y\n"
-"CONFIG_UNZIP=y\n"
-"CONFIG_BASENAME=y\n"
-"CONFIG_CAT=y\n"
-"CONFIG_DATE=y\n"
-"CONFIG_FEATURE_DATE_ISOFMT=y\n"
-"# CONFIG_FEATURE_DATE_NANO is not set\n"
-"CONFIG_FEATURE_DATE_COMPAT=y\n"
-"# CONFIG_HOSTID is not set\n"
-"CONFIG_ID=y\n"
-"CONFIG_GROUPS=y\n"
-"CONFIG_TEST=y\n"
-"# CONFIG_FEATURE_TEST_64 is not set\n"
-"CONFIG_TOUCH=y\n"
-"CONFIG_FEATURE_TOUCH_SUSV3=y\n"
-"CONFIG_TR=y\n"
-"CONFIG_FEATURE_TR_CLASSES=y\n"
-"# CONFIG_FEATURE_TR_EQUIV is not set\n"
-"CONFIG_BASE64=y\n"
-"# CONFIG_WHO is not set\n"
-"# CONFIG_USERS is not set\n"
-"CONFIG_CAL=y\n"
-"CONFIG_CATV=y\n"
-"CONFIG_CHGRP=y\n"
-"CONFIG_CHMOD=y\n"
-"CONFIG_CHOWN=y\n"
-"CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y\n"
-"CONFIG_CHROOT=y\n"
-"# CONFIG_CKSUM is not set\n"
-"CONFIG_COMM=y\n"
-"CONFIG_CP=y\n"
-"CONFIG_FEATURE_CP_LONG_OPTIONS=y\n"
-"CONFIG_CUT=y\n"
-"CONFIG_DD=y\n"
-"CONFIG_FEATURE_DD_SIGNAL_HANDLING=y\n"
-"CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y\n"
-"CONFIG_FEATURE_DD_IBS_OBS=y\n"
-"CONFIG_DF=y\n"
-"CONFIG_FEATURE_DF_FANCY=y\n"
-"CONFIG_DIRNAME=y\n"
-"CONFIG_DOS2UNIX=y\n"
-"CONFIG_UNIX2DOS=y\n"
-"CONFIG_DU=y\n"
-"CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y\n"
-"CONFIG_ECHO=y\n"
-"CONFIG_FEATURE_FANCY_ECHO=y\n"
-"CONFIG_ENV=y\n"
-"CONFIG_FEATURE_ENV_LONG_OPTIONS=y\n"
-"CONFIG_EXPAND=y\n"
-"CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y\n"
-"CONFIG_EXPR=y\n"
-"CONFIG_EXPR_MATH_SUPPORT_64=y\n"
-"CONFIG_FALSE=y\n"
-"CONFIG_FOLD=y\n"
-"CONFIG_FSYNC=y\n"
-"CONFIG_HEAD=y\n"
-"CONFIG_FEATURE_FANCY_HEAD=y\n"
-"CONFIG_INSTALL=y\n"
-"CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y\n"
-"CONFIG_LN=y\n"
-"# CONFIG_LOGNAME is not set\n"
-"CONFIG_LS=y\n"
-"CONFIG_FEATURE_LS_FILETYPES=y\n"
-"CONFIG_FEATURE_LS_FOLLOWLINKS=y\n"
-"CONFIG_FEATURE_LS_RECURSIVE=y\n"
-"CONFIG_FEATURE_LS_SORTFILES=y\n"
-"CONFIG_FEATURE_LS_TIMESTAMPS=y\n"
-"CONFIG_FEATURE_LS_USERNAME=y\n"
-"CONFIG_FEATURE_LS_COLOR=y\n"
-"# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set\n"
-"CONFIG_MD5SUM=y\n"
-"CONFIG_MKDIR=y\n"
-"CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y\n"
-"CONFIG_MKFIFO=y\n"
-"CONFIG_MKNOD=y\n"
-"CONFIG_MV=y\n"
-"CONFIG_FEATURE_MV_LONG_OPTIONS=y\n"
-"CONFIG_NICE=y\n"
-"CONFIG_NOHUP=y\n"
-"CONFIG_OD=y\n"
-"CONFIG_PRINTENV=y\n"
-"CONFIG_PRINTF=y\n"
-"CONFIG_PWD=y\n"
-"CONFIG_READLINK=y\n"
-"CONFIG_FEATURE_READLINK_FOLLOW=y\n"
-"CONFIG_REALPATH=y\n"
-"CONFIG_RM=y\n"
-"CONFIG_RMDIR=y\n"
-"CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y\n"
-"CONFIG_SEQ=y\n"
-"CONFIG_SHA1SUM=y\n"
-"CONFIG_SHA256SUM=y\n"
-"CONFIG_SHA512SUM=y\n"
-"CONFIG_SHA3SUM=y\n"
-"CONFIG_SLEEP=y\n"
-"CONFIG_FEATURE_FANCY_SLEEP=y\n"
-"CONFIG_FEATURE_FLOAT_SLEEP=y\n"
-"CONFIG_SORT=y\n"
-"CONFIG_FEATURE_SORT_BIG=y\n"
-"CONFIG_SPLIT=y\n"
-"CONFIG_FEATURE_SPLIT_FANCY=y\n"
-"CONFIG_STAT=y\n"
-"# CONFIG_FEATURE_STAT_FORMAT is not set\n"
-"CONFIG_STTY=y\n"
-"CONFIG_SUM=y\n"
-"CONFIG_SYNC=y\n"
-"CONFIG_TAC=y\n"
-"CONFIG_TAIL=y\n"
-"CONFIG_FEATURE_FANCY_TAIL=y\n"
-"CONFIG_TEE=y\n"
-"CONFIG_FEATURE_TEE_USE_BLOCK_IO=y\n"
-"CONFIG_TRUE=y\n"
-"# CONFIG_TTY is not set\n"
-"CONFIG_UNAME=y\n"
-"CONFIG_UNEXPAND=y\n"
-"CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y\n"
-"CONFIG_UNIQ=y\n"
-"CONFIG_USLEEP=y\n"
-"CONFIG_UUDECODE=y\n"
-"CONFIG_UUENCODE=y\n"
-"CONFIG_WC=y\n"
-"# CONFIG_FEATURE_WC_LARGE is not set\n"
-"CONFIG_WHOAMI=y\n"
-"CONFIG_YES=y\n"
-"CONFIG_FEATURE_PRESERVE_HARDLINKS=y\n"
-"CONFIG_FEATURE_AUTOWIDTH=y\n"
-"CONFIG_FEATURE_HUMAN_READABLE=y\n"
-"CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y\n"
-"# CONFIG_CHVT is not set\n"
-"# CONFIG_FGCONSOLE is not set\n"
-"CONFIG_CLEAR=y\n"
-"# CONFIG_DEALLOCVT is not set\n"
-"# CONFIG_DUMPKMAP is not set\n"
-"# CONFIG_KBD_MODE is not set\n"
-"# CONFIG_LOADFONT is not set\n"
-"# CONFIG_LOADKMAP is not set\n"
-"# CONFIG_OPENVT is not set\n"
-"CONFIG_RESET=y\n"
-"CONFIG_RESIZE=y\n"
-"# CONFIG_FEATURE_RESIZE_PRINT is not set\n"
-"CONFIG_SETCONSOLE=y\n"
-"# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set\n"
-"# CONFIG_SETFONT is not set\n"
-"# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set\n"
-"CONFIG_DEFAULT_SETFONT_DIR=\"\"\n"
-"# CONFIG_SETKEYCODES is not set\n"
-"# CONFIG_SETLOGCONS is not set\n"
-"# CONFIG_SHOWKEY is not set\n"
-"# CONFIG_FEATURE_LOADFONT_PSF2 is not set\n"
-"# CONFIG_FEATURE_LOADFONT_RAW is not set\n"
-"CONFIG_MKTEMP=y\n"
-"CONFIG_PIPE_PROGRESS=y\n"
-"CONFIG_RUN_PARTS=y\n"
-"CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y\n"
-"CONFIG_FEATURE_RUN_PARTS_FANCY=y\n"
-"# CONFIG_START_STOP_DAEMON is not set\n"
-"# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set\n"
-"# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set\n"
-"CONFIG_WHICH=y\n"
-"CONFIG_PATCH=y\n"
-"CONFIG_VI=y\n"
-"CONFIG_FEATURE_VI_MAX_LEN=256\n"
-"CONFIG_FEATURE_VI_8BIT=y\n"
-"CONFIG_FEATURE_VI_COLON=y\n"
-"CONFIG_FEATURE_VI_YANKMARK=y\n"
-"CONFIG_FEATURE_VI_SEARCH=y\n"
-"CONFIG_FEATURE_VI_REGEX_SEARCH=y\n"
-"CONFIG_FEATURE_VI_USE_SIGNALS=y\n"
-"CONFIG_FEATURE_VI_DOT_CMD=y\n"
-"CONFIG_FEATURE_VI_READONLY=y\n"
-"CONFIG_FEATURE_VI_SETOPTS=y\n"
-"CONFIG_FEATURE_VI_SET=y\n"
-"CONFIG_FEATURE_VI_WIN_RESIZE=y\n"
-"CONFIG_FEATURE_VI_ASK_TERMINAL=y\n"
-"CONFIG_AWK=y\n"
-"CONFIG_FEATURE_AWK_LIBM=y\n"
-"CONFIG_CMP=y\n"
-"CONFIG_DIFF=y\n"
-"CONFIG_FEATURE_DIFF_LONG_OPTIONS=y\n"
-"CONFIG_FEATURE_DIFF_DIR=y\n"
-"CONFIG_ED=y\n"
-"CONFIG_SED=y\n"
-"CONFIG_FEATURE_ALLOW_EXEC=y\n"
-"CONFIG_FIND=y\n"
-"CONFIG_FEATURE_FIND_PRINT0=y\n"
-"CONFIG_FEATURE_FIND_MTIME=y\n"
-"CONFIG_FEATURE_FIND_MMIN=y\n"
-"CONFIG_FEATURE_FIND_PERM=y\n"
-"CONFIG_FEATURE_FIND_TYPE=y\n"
-"CONFIG_FEATURE_FIND_XDEV=y\n"
-"CONFIG_FEATURE_FIND_MAXDEPTH=y\n"
-"CONFIG_FEATURE_FIND_NEWER=y\n"
-"# CONFIG_FEATURE_FIND_INUM is not set\n"
-"CONFIG_FEATURE_FIND_EXEC=y\n"
-"CONFIG_FEATURE_FIND_USER=y\n"
-"CONFIG_FEATURE_FIND_GROUP=y\n"
-"CONFIG_FEATURE_FIND_NOT=y\n"
-"CONFIG_FEATURE_FIND_DEPTH=y\n"
-"CONFIG_FEATURE_FIND_PAREN=y\n"
-"CONFIG_FEATURE_FIND_SIZE=y\n"
-"CONFIG_FEATURE_FIND_PRUNE=y\n"
-"# CONFIG_FEATURE_FIND_DELETE is not set\n"
-"CONFIG_FEATURE_FIND_PATH=y\n"
-"CONFIG_FEATURE_FIND_REGEX=y\n"
-"# CONFIG_FEATURE_FIND_CONTEXT is not set\n"
-"CONFIG_FEATURE_FIND_LINKS=y\n"
-"CONFIG_GREP=y\n"
-"CONFIG_FEATURE_GREP_EGREP_ALIAS=y\n"
-"CONFIG_FEATURE_GREP_FGREP_ALIAS=y\n"
-"CONFIG_FEATURE_GREP_CONTEXT=y\n"
-"CONFIG_XARGS=y\n"
-"CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y\n"
-"CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y\n"
-"CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y\n"
-"CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y\n"
-"# CONFIG_BOOTCHARTD is not set\n"
-"# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set\n"
-"# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set\n"
-"CONFIG_HALT=y\n"
-"# CONFIG_FEATURE_CALL_TELINIT is not set\n"
-"CONFIG_TELINIT_PATH=\"\"\n"
-"# CONFIG_INIT is not set\n"
-"# CONFIG_FEATURE_USE_INITTAB is not set\n"
-"# CONFIG_FEATURE_KILL_REMOVED is not set\n"
-"CONFIG_FEATURE_KILL_DELAY=0\n"
-"# CONFIG_FEATURE_INIT_SCTTY is not set\n"
-"# CONFIG_FEATURE_INIT_SYSLOG is not set\n"
-"# CONFIG_FEATURE_EXTRA_QUIET is not set\n"
-"# CONFIG_FEATURE_INIT_COREDUMPS is not set\n"
-"# CONFIG_FEATURE_INITRD is not set\n"
-"CONFIG_INIT_TERMINAL_TYPE=\"\"\n"
-"CONFIG_MESG=y\n"
-"CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y\n"
-"# CONFIG_ADD_SHELL is not set\n"
-"# CONFIG_REMOVE_SHELL is not set\n"
-"# CONFIG_FEATURE_SHADOWPASSWDS is not set\n"
-"# CONFIG_USE_BB_PWD_GRP is not set\n"
-"# CONFIG_USE_BB_SHADOW is not set\n"
-"CONFIG_USE_BB_CRYPT=y\n"
-"# CONFIG_USE_BB_CRYPT_SHA is not set\n"
-"# CONFIG_ADDUSER is not set\n"
-"# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set\n"
-"# CONFIG_FEATURE_CHECK_NAMES is not set\n"
-"CONFIG_FIRST_SYSTEM_ID=0\n"
-"CONFIG_LAST_SYSTEM_ID=0\n"
-"# CONFIG_ADDGROUP is not set\n"
-"# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set\n"
-"# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set\n"
-"# CONFIG_DELUSER is not set\n"
-"# CONFIG_DELGROUP is not set\n"
-"# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set\n"
-"# CONFIG_GETTY is not set\n"
-"# CONFIG_LOGIN is not set\n"
-"# CONFIG_LOGIN_SESSION_AS_CHILD is not set\n"
-"# CONFIG_PAM is not set\n"
-"# CONFIG_LOGIN_SCRIPTS is not set\n"
-"# CONFIG_FEATURE_NOLOGIN is not set\n"
-"# CONFIG_FEATURE_SECURETTY is not set\n"
-"# CONFIG_PASSWD is not set\n"
-"# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set\n"
-"# CONFIG_CRYPTPW is not set\n"
-"# CONFIG_CHPASSWD is not set\n"
-"CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=\"\"\n"
-"# CONFIG_SU is not set\n"
-"# CONFIG_FEATURE_SU_SYSLOG is not set\n"
-"# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set\n"
-"# CONFIG_SULOGIN is not set\n"
-"# CONFIG_VLOCK is not set\n"
-"CONFIG_CHATTR=y\n"
-"# CONFIG_FSCK is not set\n"
-"CONFIG_LSATTR=y\n"
-"CONFIG_TUNE2FS=y\n"
-"CONFIG_MODINFO=y\n"
-"# CONFIG_MODPROBE_SMALL is not set\n"
-"CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y\n"
-"CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y\n"
-"CONFIG_INSMOD=y\n"
-"CONFIG_RMMOD=y\n"
-"CONFIG_LSMOD=y\n"
-"CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y\n"
-"CONFIG_MODPROBE=y\n"
-"# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set\n"
-"CONFIG_DEPMOD=y\n"
-"# CONFIG_FEATURE_2_4_MODULES is not set\n"
-"CONFIG_FEATURE_INSMOD_TRY_MMAP=y\n"
-"# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set\n"
-"# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set\n"
-"# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set\n"
-"# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set\n"
-"# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set\n"
-"CONFIG_FEATURE_CHECK_TAINTED_MODULE=y\n"
-"CONFIG_FEATURE_MODUTILS_ALIAS=y\n"
-"CONFIG_FEATURE_MODUTILS_SYMBOLS=y\n"
-"CONFIG_DEFAULT_DEPMOD_FILE=\"modules.dep\"\n"
-"CONFIG_BLOCKDEV=y\n"
-"# CONFIG_MDEV is not set\n"
-"# CONFIG_FEATURE_MDEV_CONF is not set\n"
-"# CONFIG_FEATURE_MDEV_RENAME is not set\n"
-"# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set\n"
-"# CONFIG_FEATURE_MDEV_EXEC is not set\n"
-"# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set\n"
-"CONFIG_REV=y\n"
-"# CONFIG_ACPID is not set\n"
-"# CONFIG_FEATURE_ACPID_COMPAT is not set\n"
-"CONFIG_BLKID=y\n"
-"CONFIG_FEATURE_BLKID_TYPE=y\n"
-"CONFIG_DMESG=y\n"
-"# CONFIG_FEATURE_DMESG_PRETTY is not set\n"
-"# CONFIG_FBSET is not set\n"
-"# CONFIG_FEATURE_FBSET_FANCY is not set\n"
-"# CONFIG_FEATURE_FBSET_READMODE is not set\n"
-"# CONFIG_FDFLUSH is not set\n"
-"# CONFIG_FDFORMAT is not set\n"
-"CONFIG_FDISK=y\n"
-"CONFIG_FDISK_SUPPORT_LARGE_DISKS=y\n"
-"CONFIG_FEATURE_FDISK_WRITABLE=y\n"
-"# CONFIG_FEATURE_AIX_LABEL is not set\n"
-"# CONFIG_FEATURE_SGI_LABEL is not set\n"
-"# CONFIG_FEATURE_SUN_LABEL is not set\n"
-"# CONFIG_FEATURE_OSF_LABEL is not set\n"
-"# CONFIG_FEATURE_GPT_LABEL is not set\n"
-"# CONFIG_FEATURE_FDISK_ADVANCED is not set\n"
-"# CONFIG_FINDFS is not set\n"
-"CONFIG_FLOCK=y\n"
-"CONFIG_FREERAMDISK=y\n"
-"# CONFIG_FSCK_MINIX is not set\n"
-"CONFIG_FSTRIM=y\n"
-"CONFIG_MKFS_EXT2=y\n"
-"# CONFIG_MKFS_MINIX is not set\n"
-"# CONFIG_FEATURE_MINIX2 is not set\n"
-"# CONFIG_MKFS_REISER is not set\n"
-"CONFIG_MKFS_VFAT=y\n"
-"CONFIG_GETOPT=y\n"
-"CONFIG_FEATURE_GETOPT_LONG=y\n"
-"CONFIG_HEXDUMP=y\n"
-"CONFIG_FEATURE_HEXDUMP_REVERSE=y\n"
-"# CONFIG_HD is not set\n"
-"# CONFIG_HWCLOCK is not set\n"
-"# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set\n"
-"# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set\n"
-"# CONFIG_IPCRM is not set\n"
-"# CONFIG_IPCS is not set\n"
-"CONFIG_LOSETUP=y\n"
-"# CONFIG_LSPCI is not set\n"
-"CONFIG_LSUSB=y\n"
-"CONFIG_MKSWAP=y\n"
-"# CONFIG_FEATURE_MKSWAP_UUID is not set\n"
-"CONFIG_MORE=y\n"
-"CONFIG_MOUNT=y\n"
-"CONFIG_FEATURE_MOUNT_FAKE=y\n"
-"CONFIG_FEATURE_MOUNT_VERBOSE=y\n"
-"# CONFIG_FEATURE_MOUNT_HELPERS is not set\n"
-"CONFIG_FEATURE_MOUNT_LABEL=y\n"
-"CONFIG_FEATURE_MOUNT_NFS=y\n"
-"CONFIG_FEATURE_MOUNT_CIFS=y\n"
-"CONFIG_FEATURE_MOUNT_FLAGS=y\n"
-"CONFIG_FEATURE_MOUNT_FSTAB=y\n"
-"# CONFIG_PIVOT_ROOT is not set\n"
-"# CONFIG_RDATE is not set\n"
-"CONFIG_RDEV=y\n"
-"# CONFIG_READPROFILE is not set\n"
-"# CONFIG_RTCWAKE is not set\n"
-"# CONFIG_SCRIPT is not set\n"
-"# CONFIG_SCRIPTREPLAY is not set\n"
-"# CONFIG_SETARCH is not set\n"
-"CONFIG_SWAPONOFF=y\n"
-"# CONFIG_FEATURE_SWAPON_PRI is not set\n"
-"# CONFIG_SWITCH_ROOT is not set\n"
-"CONFIG_UMOUNT=y\n"
-"CONFIG_FEATURE_UMOUNT_ALL=y\n"
-"CONFIG_FEATURE_MOUNT_LOOP=y\n"
-"CONFIG_FEATURE_MOUNT_LOOP_CREATE=y\n"
-"# CONFIG_FEATURE_MTAB_SUPPORT is not set\n"
-"CONFIG_VOLUMEID=y\n"
-"CONFIG_FEATURE_VOLUMEID_EXT=y\n"
-"# CONFIG_FEATURE_VOLUMEID_BTRFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_REISERFS is not set\n"
-"CONFIG_FEATURE_VOLUMEID_FAT=y\n"
-"CONFIG_FEATURE_VOLUMEID_EXFAT=y\n"
-"# CONFIG_FEATURE_VOLUMEID_HFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_JFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_XFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_NILFS is not set\n"
-"CONFIG_FEATURE_VOLUMEID_NTFS=y\n"
-"CONFIG_FEATURE_VOLUMEID_ISO9660=y\n"
-"# CONFIG_FEATURE_VOLUMEID_UDF is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_LUKS is not set\n"
-"CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y\n"
-"# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_ROMFS is not set\n"
-"CONFIG_FEATURE_VOLUMEID_SQUASHFS=y\n"
-"# CONFIG_FEATURE_VOLUMEID_SYSV is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set\n"
-"# CONFIG_CONSPY is not set\n"
-"CONFIG_LESS=y\n"
-"CONFIG_FEATURE_LESS_MAXLINES=65536\n"
-"# CONFIG_FEATURE_LESS_BRACKETS is not set\n"
-"# CONFIG_FEATURE_LESS_FLAGS is not set\n"
-"CONFIG_FEATURE_LESS_MARKS=y\n"
-"CONFIG_FEATURE_LESS_REGEXP=y\n"
-"CONFIG_FEATURE_LESS_WINCH=y\n"
-"CONFIG_FEATURE_LESS_ASK_TERMINAL=y\n"
-"# CONFIG_FEATURE_LESS_DASHCMD is not set\n"
-"# CONFIG_FEATURE_LESS_LINENUMS is not set\n"
-"CONFIG_NANDWRITE=y\n"
-"CONFIG_NANDDUMP=y\n"
-"CONFIG_SETSERIAL=y\n"
-"# CONFIG_UBIATTACH is not set\n"
-"# CONFIG_UBIDETACH is not set\n"
-"# CONFIG_UBIMKVOL is not set\n"
-"# CONFIG_UBIRMVOL is not set\n"
-"# CONFIG_UBIRSVOL is not set\n"
-"# CONFIG_UBIUPDATEVOL is not set\n"
-"CONFIG_ADJTIMEX=y\n"
-"CONFIG_BBCONFIG=y\n"
-"CONFIG_FEATURE_COMPRESS_BBCONFIG=y\n"
-"# CONFIG_BEEP is not set\n"
-"CONFIG_FEATURE_BEEP_FREQ=0\n"
-"CONFIG_FEATURE_BEEP_LENGTH_MS=0\n"
-"# CONFIG_CHAT is not set\n"
-"# CONFIG_FEATURE_CHAT_NOFAIL is not set\n"
-"# CONFIG_FEATURE_CHAT_TTY_HIFI is not set\n"
-"# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set\n"
-"# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set\n"
-"# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set\n"
-"# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set\n"
-"# CONFIG_FEATURE_CHAT_CLR_ABORT is not set\n"
-"# CONFIG_CHRT is not set\n"
-"CONFIG_CROND=y\n"
-"# CONFIG_FEATURE_CROND_D is not set\n"
-"# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set\n"
-"CONFIG_FEATURE_CROND_DIR=\"/system/etc/cron.d\"\n"
-"CONFIG_CRONTAB=y\n"
-"CONFIG_DC=y\n"
-"CONFIG_FEATURE_DC_LIBM=y\n"
-"# CONFIG_DEVFSD is not set\n"
-"# CONFIG_DEVFSD_MODLOAD is not set\n"
-"# CONFIG_DEVFSD_FG_NP is not set\n"
-"# CONFIG_DEVFSD_VERBOSE is not set\n"
-"# CONFIG_FEATURE_DEVFS is not set\n"
-"CONFIG_DEVMEM=y\n"
-"# CONFIG_EJECT is not set\n"
-"# CONFIG_FEATURE_EJECT_SCSI is not set\n"
-"CONFIG_FBSPLASH=y\n"
-"CONFIG_FLASHCP=y\n"
-"CONFIG_FLASH_LOCK=y\n"
-"CONFIG_FLASH_UNLOCK=y\n"
-"# CONFIG_FLASH_ERASEALL is not set\n"
-"CONFIG_IONICE=y\n"
-"# CONFIG_INOTIFYD is not set\n"
-"# CONFIG_LAST is not set\n"
-"# CONFIG_FEATURE_LAST_SMALL is not set\n"
-"# CONFIG_FEATURE_LAST_FANCY is not set\n"
-"# CONFIG_HDPARM is not set\n"
-"# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set\n"
-"# CONFIG_MAKEDEVS is not set\n"
-"# CONFIG_FEATURE_MAKEDEVS_LEAF is not set\n"
-"# CONFIG_FEATURE_MAKEDEVS_TABLE is not set\n"
-"CONFIG_MAN=y\n"
-"# CONFIG_MICROCOM is not set\n"
-"CONFIG_MOUNTPOINT=y\n"
-"# CONFIG_MT is not set\n"
-"# CONFIG_RAIDAUTORUN is not set\n"
-"# CONFIG_READAHEAD is not set\n"
-"# CONFIG_RFKILL is not set\n"
-"# CONFIG_RUNLEVEL is not set\n"
-"CONFIG_RX=y\n"
-"CONFIG_SETSID=y\n"
-"CONFIG_STRINGS=y\n"
-"CONFIG_TASKSET=y\n"
-"CONFIG_FEATURE_TASKSET_FANCY=y\n"
-"CONFIG_TIME=y\n"
-"CONFIG_TIMEOUT=y\n"
-"CONFIG_TTYSIZE=y\n"
-"# CONFIG_VOLNAME is not set\n"
-"# CONFIG_WALL is not set\n"
-"# CONFIG_WATCHDOG is not set\n"
-"# CONFIG_NAMEIF is not set\n"
-"# CONFIG_FEATURE_NAMEIF_EXTENDED is not set\n"
-"CONFIG_NBDCLIENT=y\n"
-"CONFIG_NC=y\n"
-"CONFIG_NC_SERVER=y\n"
-"CONFIG_NC_EXTRA=y\n"
-"# CONFIG_NC_110_COMPAT is not set\n"
-"CONFIG_PING=y\n"
-"# CONFIG_PING6 is not set\n"
-"CONFIG_FEATURE_FANCY_PING=y\n"
-"# CONFIG_WHOIS is not set\n"
-"CONFIG_FEATURE_IPV6=y\n"
-"# CONFIG_FEATURE_UNIX_LOCAL is not set\n"
-"CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y\n"
-"# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set\n"
-"CONFIG_ARP=y\n"
-"# CONFIG_ARPING is not set\n"
-"CONFIG_BRCTL=y\n"
-"CONFIG_FEATURE_BRCTL_FANCY=y\n"
-"CONFIG_FEATURE_BRCTL_SHOW=y\n"
-"CONFIG_DNSD=y\n"
-"# CONFIG_ETHER_WAKE is not set\n"
-"# CONFIG_FAKEIDENTD is not set\n"
-"# CONFIG_FTPD is not set\n"
-"# CONFIG_FEATURE_FTP_WRITE is not set\n"
-"# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set\n"
-"CONFIG_FTPGET=y\n"
-"CONFIG_FTPPUT=y\n"
-"CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y\n"
-"# CONFIG_HOSTNAME is not set\n"
-"# CONFIG_HTTPD is not set\n"
-"# CONFIG_FEATURE_HTTPD_RANGES is not set\n"
-"# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set\n"
-"# CONFIG_FEATURE_HTTPD_SETUID is not set\n"
-"# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set\n"
-"# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set\n"
-"# CONFIG_FEATURE_HTTPD_CGI is not set\n"
-"# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set\n"
-"# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set\n"
-"# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set\n"
-"# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set\n"
-"# CONFIG_FEATURE_HTTPD_PROXY is not set\n"
-"# CONFIG_FEATURE_HTTPD_GZIP is not set\n"
-"CONFIG_IFCONFIG=y\n"
-"CONFIG_FEATURE_IFCONFIG_STATUS=y\n"
-"# CONFIG_FEATURE_IFCONFIG_SLIP is not set\n"
-"# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set\n"
-"CONFIG_FEATURE_IFCONFIG_HW=y\n"
-"# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set\n"
-"# CONFIG_IFENSLAVE is not set\n"
-"# CONFIG_IFPLUGD is not set\n"
-"# CONFIG_IFUPDOWN is not set\n"
-"CONFIG_IFUPDOWN_IFSTATE_PATH=\"\"\n"
-"# CONFIG_FEATURE_IFUPDOWN_IP is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set\n"
-"CONFIG_INETD=y\n"
-"CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y\n"
-"# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set\n"
-"CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y\n"
-"CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y\n"
-"# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set\n"
-"# CONFIG_FEATURE_INETD_RPC is not set\n"
-"CONFIG_IP=y\n"
-"CONFIG_FEATURE_IP_ADDRESS=y\n"
-"CONFIG_FEATURE_IP_LINK=y\n"
-"CONFIG_FEATURE_IP_ROUTE=y\n"
-"# CONFIG_FEATURE_IP_TUNNEL is not set\n"
-"CONFIG_FEATURE_IP_RULE=y\n"
-"# CONFIG_FEATURE_IP_SHORT_FORMS is not set\n"
-"# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set\n"
-"# CONFIG_IPADDR is not set\n"
-"# CONFIG_IPLINK is not set\n"
-"# CONFIG_IPROUTE is not set\n"
-"# CONFIG_IPTUNNEL is not set\n"
-"# CONFIG_IPRULE is not set\n"
-"# CONFIG_IPCALC is not set\n"
-"# CONFIG_FEATURE_IPCALC_FANCY is not set\n"
-"# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set\n"
-"CONFIG_NETSTAT=y\n"
-"CONFIG_FEATURE_NETSTAT_WIDE=y\n"
-"CONFIG_FEATURE_NETSTAT_PRG=y\n"
-"CONFIG_NSLOOKUP=y\n"
-"CONFIG_NTPD=y\n"
-"# CONFIG_FEATURE_NTPD_SERVER is not set\n"
-"# CONFIG_PSCAN is not set\n"
-"CONFIG_ROUTE=y\n"
-"# CONFIG_SLATTACH is not set\n"
-"# CONFIG_TCPSVD is not set\n"
-"CONFIG_TELNET=y\n"
-"CONFIG_FEATURE_TELNET_TTYPE=y\n"
-"# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set\n"
-"CONFIG_TELNETD=y\n"
-"CONFIG_FEATURE_TELNETD_STANDALONE=y\n"
-"CONFIG_FEATURE_TELNETD_INETD_WAIT=y\n"
-"CONFIG_TFTP=y\n"
-"CONFIG_TFTPD=y\n"
-"CONFIG_FEATURE_TFTP_GET=y\n"
-"CONFIG_FEATURE_TFTP_PUT=y\n"
-"# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set\n"
-"# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set\n"
-"# CONFIG_TFTP_DEBUG is not set\n"
-"CONFIG_TRACEROUTE=y\n"
-"# CONFIG_TRACEROUTE6 is not set\n"
-"CONFIG_FEATURE_TRACEROUTE_VERBOSE=y\n"
-"# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set\n"
-"# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set\n"
-"# CONFIG_TUNCTL is not set\n"
-"# CONFIG_FEATURE_TUNCTL_UG is not set\n"
-"# CONFIG_UDHCPC6 is not set\n"
-"# CONFIG_UDHCPD is not set\n"
-"# CONFIG_DHCPRELAY is not set\n"
-"# CONFIG_DUMPLEASES is not set\n"
-"# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set\n"
-"# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set\n"
-"CONFIG_DHCPD_LEASES_FILE=\"\"\n"
-"# CONFIG_UDHCPC is not set\n"
-"# CONFIG_FEATURE_UDHCPC_ARPING is not set\n"
-"# CONFIG_FEATURE_UDHCP_PORT is not set\n"
-"CONFIG_UDHCP_DEBUG=0\n"
-"# CONFIG_FEATURE_UDHCP_RFC3397 is not set\n"
-"# CONFIG_FEATURE_UDHCP_8021Q is not set\n"
-"CONFIG_UDHCPC_DEFAULT_SCRIPT=\"\"\n"
-"CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0\n"
-"CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=\"\"\n"
-"# CONFIG_UDPSVD is not set\n"
-"# CONFIG_VCONFIG is not set\n"
-"CONFIG_WGET=y\n"
-"CONFIG_FEATURE_WGET_STATUSBAR=y\n"
-"CONFIG_FEATURE_WGET_AUTHENTICATION=y\n"
-"CONFIG_FEATURE_WGET_LONG_OPTIONS=y\n"
-"CONFIG_FEATURE_WGET_TIMEOUT=y\n"
-"# CONFIG_ZCIP is not set\n"
-"# CONFIG_LPD is not set\n"
-"# CONFIG_LPR is not set\n"
-"# CONFIG_LPQ is not set\n"
-"# CONFIG_MAKEMIME is not set\n"
-"CONFIG_FEATURE_MIME_CHARSET=\"\"\n"
-"# CONFIG_POPMAILDIR is not set\n"
-"# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set\n"
-"# CONFIG_REFORMIME is not set\n"
-"# CONFIG_FEATURE_REFORMIME_COMPAT is not set\n"
-"# CONFIG_SENDMAIL is not set\n"
-"CONFIG_IOSTAT=y\n"
-"CONFIG_LSOF=y\n"
-"CONFIG_MPSTAT=y\n"
-"# CONFIG_NMETER is not set\n"
-"CONFIG_PMAP=y\n"
-"# CONFIG_POWERTOP is not set\n"
-"CONFIG_PSTREE=y\n"
-"CONFIG_PWDX=y\n"
-"# CONFIG_SMEMCAP is not set\n"
-"CONFIG_TOP=y\n"
-"CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y\n"
-"CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y\n"
-"CONFIG_FEATURE_TOP_SMP_CPU=y\n"
-"CONFIG_FEATURE_TOP_DECIMALS=y\n"
-"# CONFIG_FEATURE_TOP_SMP_PROCESS is not set\n"
-"CONFIG_FEATURE_TOPMEM=y\n"
-"CONFIG_UPTIME=y\n"
-"# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set\n"
-"CONFIG_FREE=y\n"
-"CONFIG_FUSER=y\n"
-"CONFIG_KILL=y\n"
-"CONFIG_KILLALL=y\n"
-"CONFIG_KILLALL5=y\n"
-"CONFIG_PGREP=y\n"
-"CONFIG_PIDOF=y\n"
-"CONFIG_FEATURE_PIDOF_SINGLE=y\n"
-"CONFIG_FEATURE_PIDOF_OMIT=y\n"
-"CONFIG_PKILL=y\n"
-"CONFIG_PS=y\n"
-"CONFIG_FEATURE_PS_WIDE=y\n"
-"CONFIG_FEATURE_PS_LONG=y\n"
-"# CONFIG_FEATURE_PS_TIME is not set\n"
-"# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set\n"
-"# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set\n"
-"CONFIG_RENICE=y\n"
-"CONFIG_BB_SYSCTL=y\n"
-"CONFIG_FEATURE_SHOW_THREADS=y\n"
-"CONFIG_WATCH=y\n"
-"# CONFIG_RUNSV is not set\n"
-"# CONFIG_RUNSVDIR is not set\n"
-"# CONFIG_FEATURE_RUNSVDIR_LOG is not set\n"
-"# CONFIG_SV is not set\n"
-"CONFIG_SV_DEFAULT_SERVICE_DIR=\"\"\n"
-"# CONFIG_SVLOGD is not set\n"
-"# CONFIG_CHPST is not set\n"
-"# CONFIG_SETUIDGID is not set\n"
-"# CONFIG_ENVUIDGID is not set\n"
-"# CONFIG_ENVDIR is not set\n"
-"# CONFIG_SOFTLIMIT is not set\n"
-"# CONFIG_CHCON is not set\n"
-"# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set\n"
-"# CONFIG_GETENFORCE is not set\n"
-"# CONFIG_GETSEBOOL is not set\n"
-"# CONFIG_LOAD_POLICY is not set\n"
-"# CONFIG_MATCHPATHCON is not set\n"
-"# CONFIG_RESTORECON is not set\n"
-"# CONFIG_RUNCON is not set\n"
-"# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set\n"
-"# CONFIG_SELINUXENABLED is not set\n"
-"# CONFIG_SETENFORCE is not set\n"
-"# CONFIG_SETFILES is not set\n"
-"# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set\n"
-"# CONFIG_SETSEBOOL is not set\n"
-"# CONFIG_SESTATUS is not set\n"
-"CONFIG_ASH=y\n"
-"CONFIG_ASH_BASH_COMPAT=y\n"
-"# CONFIG_ASH_IDLE_TIMEOUT is not set\n"
-"CONFIG_ASH_JOB_CONTROL=y\n"
-"CONFIG_ASH_ALIAS=y\n"
-"# CONFIG_ASH_GETOPTS is not set\n"
-"CONFIG_ASH_BUILTIN_ECHO=y\n"
-"CONFIG_ASH_BUILTIN_PRINTF=y\n"
-"CONFIG_ASH_BUILTIN_TEST=y\n"
-"CONFIG_ASH_CMDCMD=y\n"
-"# CONFIG_ASH_MAIL is not set\n"
-"CONFIG_ASH_OPTIMIZE_FOR_SIZE=y\n"
-"CONFIG_ASH_RANDOM_SUPPORT=y\n"
-"CONFIG_ASH_EXPAND_PRMT=y\n"
-"# CONFIG_CTTYHACK is not set\n"
-"# CONFIG_HUSH is not set\n"
-"# CONFIG_HUSH_BASH_COMPAT is not set\n"
-"# CONFIG_HUSH_BRACE_EXPANSION is not set\n"
-"# CONFIG_HUSH_HELP is not set\n"
-"# CONFIG_HUSH_INTERACTIVE is not set\n"
-"# CONFIG_HUSH_SAVEHISTORY is not set\n"
-"# CONFIG_HUSH_JOB is not set\n"
-"# CONFIG_HUSH_TICK is not set\n"
-"# CONFIG_HUSH_IF is not set\n"
-"# CONFIG_HUSH_LOOPS is not set\n"
-"# CONFIG_HUSH_CASE is not set\n"
-"# CONFIG_HUSH_FUNCTIONS is not set\n"
-"# CONFIG_HUSH_LOCAL is not set\n"
-"# CONFIG_HUSH_RANDOM_SUPPORT is not set\n"
-"# CONFIG_HUSH_EXPORT_N is not set\n"
-"# CONFIG_HUSH_MODE_X is not set\n"
-"# CONFIG_MSH is not set\n"
-"CONFIG_FEATURE_SH_IS_ASH=y\n"
-"# CONFIG_FEATURE_SH_IS_HUSH is not set\n"
-"# CONFIG_FEATURE_SH_IS_NONE is not set\n"
-"# CONFIG_FEATURE_BASH_IS_ASH is not set\n"
-"# CONFIG_FEATURE_BASH_IS_HUSH is not set\n"
-"CONFIG_FEATURE_BASH_IS_NONE=y\n"
-"CONFIG_SH_MATH_SUPPORT=y\n"
-"CONFIG_SH_MATH_SUPPORT_64=y\n"
-"CONFIG_FEATURE_SH_EXTRA_QUIET=y\n"
-"# CONFIG_FEATURE_SH_STANDALONE is not set\n"
-"# CONFIG_FEATURE_SH_NOFORK is not set\n"
-"# CONFIG_FEATURE_SH_HISTFILESIZE is not set\n"
-"# CONFIG_SYSLOGD is not set\n"
-"# CONFIG_FEATURE_ROTATE_LOGFILE is not set\n"
-"# CONFIG_FEATURE_REMOTE_LOG is not set\n"
-"# CONFIG_FEATURE_SYSLOGD_DUP is not set\n"
-"# CONFIG_FEATURE_SYSLOGD_CFG is not set\n"
-"CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0\n"
-"# CONFIG_FEATURE_IPC_SYSLOG is not set\n"
-"CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0\n"
-"# CONFIG_LOGREAD is not set\n"
-"# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set\n"
-"# CONFIG_FEATURE_KMSG_SYSLOG is not set\n"
-"# CONFIG_KLOGD is not set\n"
-"# CONFIG_FEATURE_KLOGD_KLOGCTL is not set\n"
-"# CONFIG_LOGGER is not set\n"
-;
-#endif
diff --git a/include-full/bbconfigopts_bz2.h b/include-full/bbconfigopts_bz2.h
deleted file mode 100644
index 9d4aba4..0000000
--- a/include-full/bbconfigopts_bz2.h
+++ /dev/null
@@ -1,343 +0,0 @@
-#ifndef _BBCONFIGOPTS_BZ2_H
-#define _BBCONFIGOPTS_BZ2_H
-/*
- * busybox configuration settings.
- *
- * Licensed under GPLv2 or later, see file LICENSE in this source tree.
- *
- * This file is generated automatically by scripts/mkconfigs.
- * Do not edit.
- */
-static const char bbconfig_config_bz2[] ALIGN1 = {
-0x68,0x31,0x31,0x41,0x59,0x26,0x53,0x59,0x20,0xf2,0x9e,0xfe,0x00,0x0a,0xb6,0x5f,
-0x80,0x00,0x10,0x58,0x03,0xff,0xe2,0x3f,0xff,0xff,0xf0,0xbf,0xe7,0xdf,0x60,0x60,
-0x1b,0x1c,0x00,0x3d,0xdc,0x06,0x40,0xc8,0xfb,0x6c,0x28,0x7d,0xf0,0x00,0x37,0x7b,
-0x59,0x0b,0x15,0xaf,0x40,0x74,0xaf,0x4e,0xba,0x01,0xee,0xcd,0x01,0xd9,0x9d,0x50,
-0x69,0xdb,0x69,0x90,0x75,0xba,0xd4,0x0b,0x5a,0x42,0x6c,0x6e,0xa6,0xee,0x55,0x3a,
-0x72,0xeb,0xb5,0x8c,0x8c,0xfb,0xd0,0x69,0xa1,0x00,0x08,0x26,0x89,0xa2,0x98,0x51,
-0xea,0x06,0x8c,0x9e,0x44,0xda,0x80,0xc8,0x03,0x4c,0x82,0x68,0x82,0x05,0x3c,0x8a,
-0x79,0x50,0x00,0x34,0xc8,0x00,0x00,0x01,0x29,0x88,0x92,0x0a,0x7b,0x48,0x51,0x88,
-0xc2,0x06,0x10,0x18,0x86,0x9a,0x0d,0x1a,0x00,0x93,0xd5,0x29,0x48,0xa6,0x09,0xea,
-0x06,0x23,0x40,0x00,0xd1,0x90,0xc4,0xd0,0xd0,0x00,0x12,0x2a,0x27,0x92,0x99,0x94,
-0xf4,0x80,0x01,0xa0,0xd3,0x40,0x3d,0x4d,0x3d,0x43,0xd4,0xc9,0x84,0xfd,0x51,0xa0,
-0x90,0x90,0x41,0x34,0xc8,0x11,0x29,0xea,0x9e,0x90,0x00,0x00,0x00,0x1a,0x0d,0x3f,
-0xf7,0xb5,0xfe,0xf8,0xb3,0x95,0xd2,0x5e,0xae,0xdd,0x29,0x28,0x8d,0x14,0x6c,0x96,
-0x84,0x80,0xa6,0x6d,0xa4,0x2e,0x5b,0xa5,0xe3,0x5d,0x2e,0x74,0xd7,0xd8,0xee,0xd1,
-0x52,0x91,0x63,0x18,0x2c,0x44,0x94,0x5e,0x9d,0xca,0x21,0x6f,0x4e,0xdd,0x29,0xb2,
-0x19,0x94,0x25,0xb5,0xe7,0x71,0xb5,0x14,0xf3,0xb7,0x4c,0xc0,0x4d,0x2f,0x1d,0x46,
-0xa3,0x6b,0x95,0xd1,0x77,0x45,0x74,0x35,0xc9,0xde,0x79,0xc2,0x83,0x33,0x22,0x92,
-0x33,0xc6,0xe2,0x28,0x27,0x3b,0x4c,0x2b,0x76,0x74,0xa5,0xe7,0x57,0x31,0x93,0x46,
-0xc5,0xe9,0xec,0xea,0xf1,0x7b,0xcb,0x85,0x8b,0x51,0x91,0x32,0x16,0xc4,0x58,0xb4,
-0x50,0x68,0x9e,0x75,0xeb,0xbc,0xea,0x36,0x8d,0x18,0xf5,0x2d,0xb8,0xcd,0x46,0x00,
-0xd1,0x24,0xde,0xb5,0xd2,0x33,0x7b,0x3c,0xf3,0xc9,0x91,0xec,0xeb,0xd5,0xeb,0xf4,
-0xde,0x23,0x06,0x4c,0x46,0xc9,0x33,0x11,0x21,0x82,0x35,0xed,0x39,0xb2,0x27,0x8b,
-0x93,0x34,0x86,0x4c,0xc2,0x66,0x98,0x9b,0x06,0xc6,0x9a,0x91,0xf9,0x75,0x69,0x00,
-0x85,0xc7,0x6d,0x96,0x65,0xe9,0x99,0xf7,0x63,0xb3,0xd2,0xf0,0xdb,0xcf,0xed,0xfc,
-0x70,0x27,0xf2,0x41,0xfc,0xd1,0x17,0xfa,0xc1,0x99,0x97,0xd7,0xdb,0xf5,0xed,0x73,
-0xf6,0x29,0x39,0xbd,0x2f,0xae,0xf9,0x3c,0x66,0x70,0xbe,0xdf,0xb0,0x4d,0x2d,0x47,
-0xf7,0xeb,0xe7,0xb4,0xf5,0x1b,0xbb,0x0d,0xf6,0xd6,0xe3,0xe4,0xdf,0x1f,0xa3,0xcb,
-0x7b,0xcd,0xb8,0x9f,0x50,0x7e,0xb5,0x2e,0xa9,0x07,0x8f,0xeb,0x56,0xef,0xcd,0xac,
-0xdc,0xe9,0x63,0x69,0xcb,0x98,0xca,0x24,0x43,0x68,0x17,0xc4,0xd3,0x9e,0xf3,0x8e,
-0xb6,0x89,0xf4,0xc2,0xbc,0x44,0x34,0xd6,0xfe,0x31,0xbc,0xdf,0x8d,0xd7,0x82,0x8f,
-0x0d,0xc3,0x5d,0xea,0xbb,0x6d,0x28,0x97,0xda,0x12,0x94,0x6b,0x0d,0x4b,0x9b,0x45,
-0x96,0xac,0x2a,0x15,0x5c,0xf6,0xe6,0x13,0x85,0xf6,0xa7,0x67,0xac,0x46,0x6b,0x8a,
-0x5a,0x9e,0xdf,0x49,0x73,0x7c,0x62,0x93,0x8f,0x55,0xc8,0xbb,0xe5,0x63,0xf4,0xed,
-0x57,0x87,0x4d,0x31,0xc9,0x7a,0x52,0x10,0x12,0x8a,0xd4,0xe3,0xd6,0x36,0x86,0x54,
-0x59,0x23,0xe6,0x99,0xac,0xb7,0xc6,0x2f,0x52,0x62,0x93,0x5d,0x2d,0xa1,0x01,0xd2,
-0xf5,0x07,0xb2,0xaf,0x1b,0xb6,0xd0,0xb4,0xce,0xb3,0x9d,0xaf,0x49,0x76,0x8e,0x34,
-0x6a,0xcb,0x06,0x53,0x17,0xef,0x89,0x76,0x95,0x8a,0x24,0xba,0x2f,0x5e,0xab,0xb6,
-0x8a,0xbb,0xe0,0x71,0x2a,0xc3,0x9e,0x56,0xd3,0xfb,0x2b,0xcc,0xd4,0xbc,0x62,0x54,
-0x5d,0x5d,0xd7,0x18,0x67,0x3d,0x0e,0x2a,0xd5,0x95,0x3d,0xb9,0xea,0x23,0x7e,0x72,
-0xd8,0xd9,0x64,0xcf,0xfa,0x91,0x00,0x10,0xbb,0x52,0x01,0x0b,0x21,0xa5,0xa5,0x93,
-0x24,0xd0,0x66,0x67,0x63,0xf7,0x04,0x58,0x90,0x08,0x5a,0x67,0x81,0xaf,0x5d,0x56,
-0x84,0xa0,0xe5,0x45,0x15,0x7c,0xea,0xc1,0xae,0x33,0xba,0xc4,0x67,0xbb,0xcb,0x96,
-0x6b,0xc9,0xe9,0xf8,0x79,0x7d,0x88,0x5b,0x8b,0xaf,0xfb,0x39,0x02,0x34,0xf7,0x9f,
-0x5e,0x73,0xf9,0x1d,0x5b,0x23,0x6f,0xc3,0x7f,0xef,0xfc,0xf2,0x39,0xd9,0xa4,0x01,
-0x9f,0xdf,0x19,0xc2,0x49,0xf3,0x82,0x52,0x02,0x94,0xaf,0xdb,0xaa,0xc2,0xec,0x42,
-0xff,0x99,0x4d,0xd8,0x8f,0xad,0x75,0xf8,0x0e,0xff,0x8c,0x0d,0xa0,0xe6,0x0c,0xcd,
-0xd9,0xe0,0xb0,0xda,0x1f,0x36,0xd8,0xc7,0xe9,0x08,0xf2,0x3f,0x1b,0x51,0x7e,0xa6,
-0x72,0xe3,0xd8,0x2c,0xa9,0x7f,0x5f,0xab,0x89,0xbb,0xd6,0x6b,0x21,0x9f,0x49,0xd5,
-0xd6,0x78,0x9e,0xd3,0xb0,0xfe,0x94,0x6e,0x62,0xa9,0xbc,0x59,0x92,0xd5,0x5f,0x71,
-0xed,0x81,0x0f,0x8e,0xd0,0x0e,0x2e,0xa7,0xd9,0x7a,0xb4,0x09,0x87,0xc3,0x9e,0xb4,
-0x67,0x18,0xa9,0x79,0xcc,0x77,0x5f,0x77,0x33,0xf7,0x9e,0x7d,0x27,0x3e,0x6f,0xe3,
-0xd3,0x66,0x1e,0x36,0xb0,0x2d,0xf9,0x5d,0xe1,0x4c,0xf7,0x71,0x28,0x62,0xed,0xb1,
-0x7c,0xc3,0xc6,0x3c,0x09,0x2d,0x37,0x2a,0x23,0xbd,0x7c,0x97,0xef,0xdf,0x66,0x0b,
-0xcb,0xe1,0xd5,0x75,0x4d,0xbb,0xf6,0xb5,0x86,0x17,0xa3,0x48,0x5b,0xb1,0x3f,0xd9,
-0x77,0xfe,0xb0,0xef,0x2b,0x1b,0x6a,0x73,0xe2,0x57,0xf3,0xe9,0x33,0xb5,0x60,0xcd,
-0xe9,0xbb,0xc6,0xa3,0x64,0x4f,0x26,0xd4,0xe7,0x89,0xaf,0xa6,0x10,0x79,0xa7,0x62,
-0x47,0xd4,0xaf,0xa2,0x10,0x34,0x46,0xac,0xc7,0x43,0x2e,0xbc,0x52,0x3b,0xda,0x1a,
-0xfa,0xbe,0x6f,0xdf,0x43,0xa6,0xb2,0xf9,0x73,0xd1,0xdc,0x24,0x4a,0xe7,0xd4,0xe3,
-0x15,0x8c,0x05,0x3e,0xa2,0xb9,0x8f,0x77,0xaf,0x26,0xa7,0x2e,0xec,0x14,0xaf,0x68,
-0xde,0x96,0x34,0x8b,0x19,0x34,0x16,0x5d,0x9c,0x6a,0xc4,0x42,0xcf,0x31,0xd3,0x9f,
-0x1e,0xac,0xe6,0xfd,0xe4,0xaf,0x5b,0xc5,0xef,0x81,0xe7,0x6f,0x8b,0x0a,0x57,0xce,
-0xf8,0xab,0xfb,0x46,0x9b,0xbe,0x09,0xad,0xfd,0xd0,0x4a,0x4d,0x61,0x9e,0xa8,0x5f,
-0x61,0x5c,0x99,0xce,0x34,0xf7,0xf6,0x87,0x2f,0x2c,0x9f,0xb3,0xdb,0x1b,0x5e,0x5b,
-0xc9,0x6b,0x2f,0x30,0x99,0x09,0x65,0x48,0x26,0x82,0x14,0xdf,0xd1,0x4f,0xc0,0x28,
-0x81,0x58,0x84,0x50,0x25,0x32,0x58,0x87,0x5b,0x89,0xd2,0xe1,0x91,0x83,0xa6,0x10,
-0x70,0x30,0x32,0x99,0x40,0xf6,0x4f,0x85,0xab,0xc1,0xc8,0x13,0x91,0xeb,0x66,0xc0,
-0x20,0xfa,0xd8,0x88,0x86,0x27,0x5f,0x3e,0x87,0x4e,0xa5,0x12,0xc2,0xd8,0x55,0x9c,
-0x6e,0x86,0xa6,0x9d,0x9c,0x42,0x11,0x70,0x1c,0x83,0x15,0x43,0x71,0x18,0xc2,0x76,
-0xd9,0x52,0xfe,0xa7,0x2d,0xb2,0xa8,0x00,0x1d,0xea,0x83,0x18,0xb7,0x9b,0xa4,0xb5,
-0xa7,0x73,0x5e,0xdb,0x12,0xca,0x7e,0x2a,0xb5,0xce,0xcc,0x23,0xe8,0x72,0x19,0x2b,
-0x90,0x1d,0x4e,0x76,0x33,0xbd,0x38,0xb4,0xb2,0xc3,0xd7,0x5f,0x14,0xfe,0xd1,0xb9,
-0xa6,0x12,0xdd,0x60,0x51,0x6c,0x1c,0xbb,0x34,0xda,0x5e,0x83,0xb7,0x1d,0x9e,0xa9,
-0xe1,0x76,0xf4,0xfd,0x50,0xac,0x54,0x51,0x38,0xd3,0x9a,0x94,0xab,0x71,0x3f,0x23,
-0xd9,0xa9,0x6e,0x2e,0x1d,0xdb,0x79,0xbc,0x99,0x74,0x3e,0xac,0xef,0xdb,0xb3,0x6f,
-0xd4,0x30,0xdb,0x7b,0xe5,0x2c,0x26,0x56,0xb5,0x6e,0x77,0xf7,0xb2,0x04,0x81,0x64,
-0x24,0xea,0x41,0x35,0x28,0xb7,0x44,0xc2,0x0b,0x9a,0xd0,0x44,0x9d,0x9c,0x5d,0x04,
-0x12,0x2e,0x18,0x81,0x6f,0x16,0xc7,0xb1,0x61,0x67,0xda,0x34,0x8b,0x34,0x78,0x3e,
-0x67,0x16,0x59,0x14,0x0f,0x45,0x19,0x26,0xec,0xfe,0x37,0x6c,0x24,0xd2,0xb9,0x73,
-0x72,0x95,0x8e,0xc2,0xfb,0x54,0x06,0x35,0xf0,0x15,0xad,0xa0,0xaf,0xa2,0x8c,0x60,
-0xb8,0x61,0xae,0x94,0x59,0x94,0xeb,0xab,0x7b,0xd3,0x13,0x67,0x8f,0x93,0xce,0x4f,
-0x0b,0x38,0x37,0xc2,0x87,0x9a,0x19,0xd3,0x26,0x8f,0x77,0x9e,0x8d,0x6c,0x9f,0x54,
-0x7c,0xba,0x36,0xc4,0xb6,0x4b,0x3a,0x55,0xf3,0x49,0xa3,0x33,0x6e,0xe6,0x58,0xe2,
-0x69,0x0d,0x82,0xee,0x0d,0x46,0x0f,0x1d,0xea,0xdf,0x8c,0xce,0x5c,0xd4,0x7b,0xdb,
-0x0b,0x6d,0xa3,0x51,0xa8,0xcb,0x81,0x75,0xbf,0x3a,0x7d,0x3c,0x17,0x03,0x8a,0x35,
-0x9f,0x1d,0x94,0xd5,0xe9,0xbd,0xb1,0xb6,0xf1,0xbe,0xb7,0x3d,0x7e,0x5f,0x77,0xe0,
-0xe7,0xbf,0xf3,0x57,0xf1,0x0a,0x90,0xd8,0x8e,0xe7,0x5b,0x86,0x46,0x63,0x49,0x4c,
-0x91,0xa6,0x23,0x22,0x48,0xca,0x20,0x49,0x62,0x49,0x49,0x22,0xd0,0x2c,0x98,0xd2,
-0x52,0x6c,0x01,0x66,0x26,0x35,0x40,0x69,0x62,0xb1,0x44,0x5a,0x12,0xa2,0x32,0x89,
-0x1a,0x29,0x4c,0x8d,0x91,0xa4,0x25,0x46,0x82,0x14,0x92,0x12,0x64,0x25,0x95,0x21,
-0x4c,0xc5,0x88,0x6c,0xcb,0x08,0x58,0x49,0x52,0x51,0x2d,0x93,0x08,0x8c,0x52,0x8a,
-0x7a,0x77,0x22,0xc9,0x18,0x4d,0x92,0x6d,0x5e,0x3a,0x64,0x04,0xc9,0x94,0xd4,0xc9,
-0x85,0xa4,0xca,0x33,0x09,0xdd,0xcc,0x96,0x34,0x85,0x14,0x14,0xcd,0x24,0x64,0xa3,
-0x79,0xd7,0x02,0x60,0xa6,0xc9,0x18,0x8b,0x23,0x46,0x3c,0xeb,0xa1,0xdd,0x70,0x48,
-0x34,0x6c,0x68,0x81,0x52,0x0a,0x64,0x6c,0x29,0x91,0x00,0x87,0x9d,0xbb,0xbf,0x15,
-0xef,0xdd,0x5e,0xdf,0xb9,0xd7,0x26,0xd7,0xda,0xbf,0x2f,0x9b,0xcf,0x54,0x50,0x63,
-0x1a,0x3c,0xa5,0xef,0xaa,0x41,0x2b,0x93,0x5d,0x5e,0xdf,0x57,0x7e,0x1d,0xab,0x4c,
-0x65,0x4c,0x6f,0x80,0xd9,0x82,0xaa,0x90,0xbe,0x7a,0xe9,0x63,0x48,0x46,0x44,0x61,
-0x6d,0x77,0x64,0x95,0xd9,0x8c,0x7c,0xca,0xed,0x59,0xe9,0xbb,0xcf,0x13,0x97,0x7a,
-0x6e,0xd6,0xbb,0x17,0x98,0x01,0xc1,0xe7,0xb7,0x5d,0xa5,0xf0,0xbb,0x4e,0xc7,0xad,
-0x25,0x85,0x9c,0x70,0x73,0x76,0xdc,0x17,0x88,0xec,0xc6,0xc2,0xe4,0xe8,0xb5,0xd9,
-0x7f,0xad,0xe8,0xa4,0xb2,0xd4,0x6c,0xd5,0x60,0x64,0x41,0xf8,0xbd,0xe9,0x0a,0xe3,
-0x3f,0x47,0x58,0x96,0x99,0xfd,0x37,0xcd,0x33,0x6e,0xd2,0xc2,0x83,0x68,0x8b,0x21,
-0x4e,0xa3,0x9f,0xab,0x76,0x31,0x32,0x27,0xb0,0x7c,0x00,0x09,0x24,0x02,0xd7,0x7e,
-0x98,0x47,0xb0,0x80,0x1a,0xba,0xbb,0xbb,0xb9,0xba,0x94,0xc0,0x02,0xd8,0xc5,0x90,
-0xd6,0x6f,0xa8,0x10,0x71,0x57,0x05,0x18,0xc9,0x30,0xe1,0xdc,0x78,0x21,0x78,0x08,
-0x0c,0x11,0x19,0x24,0x81,0xb6,0xba,0x39,0xe5,0xf1,0x68,0x1c,0xcc,0x71,0x38,0x07,
-0x65,0x64,0x70,0xb2,0xc6,0x56,0xe8,0xb7,0xd3,0x51,0xaa,0xf6,0xa9,0x14,0x54,0x22,
-0x04,0x38,0x41,0xdb,0xd6,0x95,0xc6,0x6b,0x33,0xb6,0xa9,0xc6,0xb3,0x8e,0x26,0x44,
-0x35,0xb8,0x7d,0x05,0xd8,0xfa,0xe2,0x9c,0x51,0x23,0xc2,0x6c,0x5a,0x1a,0x27,0x68,
-0x7a,0x1b,0xcb,0x70,0x22,0x23,0x72,0xc1,0x45,0xa9,0x26,0xb6,0x8a,0xdb,0x99,0xac,
-0x79,0xcb,0xf4,0xd6,0x57,0x2c,0x63,0xe2,0x3e,0x66,0xbd,0xc6,0x26,0xf4,0xfa,0xbc,
-0xe4,0xe2,0x7b,0x28,0x79,0x48,0x5c,0x75,0x7a,0xde,0x37,0x8e,0x0e,0x81,0x9c,0xe1,
-0xf1,0xde,0xd6,0x22,0xae,0x51,0xda,0x87,0x9c,0x07,0x9a,0x39,0xad,0x3d,0x4a,0x1d,
-0x2b,0x03,0x9c,0xa9,0x9c,0x77,0x8d,0x45,0x70,0xfa,0x96,0x1a,0x53,0x14,0x11,0xee,
-0x84,0x12,0x80,0x5b,0x8a,0xc1,0xd5,0x03,0x82,0x9d,0x2a,0x52,0xfc,0x20,0x48,0x15,
-0xee,0x31,0x7d,0xac,0x04,0xd1,0x03,0xc7,0xfd,0x77,0x79,0xac,0xf7,0xdb,0xce,0x98,
-0x7b,0x79,0x4c,0x0d,0x16,0xda,0x35,0x0f,0x9a,0x83,0x25,0x65,0x2c,0x52,0x43,0xd4,
-0xe7,0x56,0x24,0x58,0xb1,0x94,0x74,0x62,0x5b,0x2b,0x43,0x75,0x3b,0xaa,0x13,0x21,
-0xa8,0x56,0xdf,0x85,0x90,0xa2,0xcc,0xed,0xed,0xab,0x63,0x9e,0xf5,0xbd,0xe7,0x8f,
-0xab,0xeb,0x80,0x66,0x31,0x31,0xe3,0x8c,0xe8,0xaf,0x15,0x49,0x1f,0x04,0x67,0x64,
-0xee,0x97,0x04,0x1a,0x01,0x45,0x40,0xc0,0xe6,0x44,0x43,0xb7,0x1b,0x3d,0xef,0xdd,
-0x84,0x5f,0x6d,0x68,0x58,0x2e,0x5e,0x34,0xa1,0xba,0x3e,0xeb,0x4c,0xac,0x61,0xe4,
-0x3c,0xab,0xd9,0x2a,0xa9,0x89,0x36,0x84,0xf1,0xce,0x9c,0x0a,0x9e,0x54,0xf6,0x8a,
-0x8f,0x8d,0x71,0xd9,0x85,0x81,0x29,0xb2,0x7a,0x90,0xe4,0x45,0xe6,0x20,0x10,0xc0,
-0x96,0xb1,0x31,0x0f,0x14,0x1e,0x86,0xde,0xfd,0xa3,0x1e,0xcd,0x6f,0x64,0x8c,0x5a,
-0xf7,0xd5,0xa3,0x17,0x21,0x61,0xb3,0xd5,0x4a,0x1b,0xca,0xda,0x22,0x54,0xbb,0x72,
-0x21,0x10,0x63,0x1a,0x14,0x38,0x62,0xab,0x63,0x2b,0x92,0xa0,0xbd,0xf5,0xc9,0x9c,
-0x85,0x43,0xb3,0x6d,0x18,0x63,0x69,0x0e,0xb6,0x3c,0xea,0x25,0xb8,0x33,0x6f,0xb9,
-0x4c,0x3c,0xb0,0xec,0xd0,0xb8,0xc5,0x6c,0xec,0x2c,0x34,0x07,0x5b,0xcd,0x18,0x95,
-0x34,0x8b,0xb4,0x91,0xb3,0x08,0xd1,0x66,0x02,0xce,0x60,0x21,0xb4,0x8d,0x1a,0x51,
-0xa2,0x98,0x9b,0x48,0x63,0xd5,0x82,0xa6,0x84,0xa9,0x96,0x6a,0xd7,0x85,0xab,0x5a,
-0x0c,0x5a,0x18,0x7a,0x75,0x00,0xd5,0xea,0xf2,0xd6,0xd5,0x04,0x53,0x6c,0x51,0x81,
-0x1e,0xe9,0xea,0xc0,0xdf,0x62,0x08,0x57,0x68,0xc5,0xa2,0x48,0xb5,0xa7,0xbc,0x42,
-0xcf,0x5a,0x89,0x01,0x4d,0x0d,0xb6,0x1e,0x17,0xdf,0x89,0x67,0xa7,0xbc,0xda,0x7e,
-0xa2,0x9f,0xa4,0x23,0xf0,0xfb,0xf0,0x94,0x0e,0xdb,0x25,0x12,0x49,0x02,0xa9,0xa2,
-0x83,0x33,0x5f,0x84,0x33,0xc6,0x02,0x7c,0xee,0x08,0x01,0x2e,0x3e,0x69,0x8a,0x6b,
-0xb8,0x31,0x0a,0xec,0xdc,0xed,0x2f,0xb4,0x4a,0x67,0x15,0x74,0x9c,0x09,0x05,0xc4,
-0x19,0xe6,0x0c,0x08,0x89,0x41,0xdf,0x55,0xe3,0xcf,0x6e,0x1d,0x5e,0xd9,0x9e,0x6d,
-0x7f,0x53,0x81,0x60,0x0b,0x93,0xc0,0x75,0x7a,0x6c,0x1a,0x1a,0xb0,0x86,0xfd,0x3d,
-0xfd,0x7b,0xb6,0x4a,0xd2,0x6e,0xb3,0x08,0xd5,0xa4,0xbd,0x5a,0xd2,0x18,0xa5,0x19,
-0x79,0x55,0xd5,0x5b,0x0c,0x30,0xc3,0xe5,0xd8,0x3f,0x93,0x3b,0xfe,0x7f,0x10,0x1b,
-0x51,0xb5,0xf6,0x19,0xc6,0x82,0x96,0xe7,0x41,0xc2,0x4b,0x37,0xb4,0x84,0x16,0x27,
-0xa2,0x8c,0x0e,0x35,0x46,0x47,0x06,0x31,0x50,0x14,0xf6,0xc0,0x19,0xb1,0x00,0xdb,
-0xa6,0x8e,0xc2,0x45,0x34,0x8d,0x58,0x20,0xf0,0xc6,0xd0,0x97,0x76,0x85,0x66,0x80,
-0x10,0x9b,0x15,0x46,0xaa,0xbe,0xca,0xb9,0xab,0x15,0x6b,0xd8,0xae,0xab,0x2b,0xc5,
-0xb7,0xa2,0xb0,0x50,0xd2,0x05,0x18,0x20,0x23,0x01,0xb4,0x88,0x79,0x66,0xbe,0x14,
-0x1d,0x04,0x8e,0x04,0x44,0x71,0xc4,0xbf,0x2c,0xdc,0xa1,0xa9,0x00,0x21,0x25,0x9f,
-0x34,0xd2,0x56,0x15,0x34,0xbb,0xb5,0x10,0x5a,0x99,0x82,0x07,0x3e,0x28,0x3b,0x7d,
-0xc9,0x4b,0x40,0x8c,0xb1,0x10,0x42,0xac,0x47,0x4b,0x2a,0xba,0xa2,0x82,0x98,0x17,
-0x49,0x05,0xdb,0x61,0x4e,0x36,0xa4,0x2f,0xbf,0x55,0x6f,0x67,0xd5,0xbd,0x87,0xea,
-0xed,0x0d,0x86,0xb7,0x87,0x09,0x3e,0xa0,0xf0,0x80,0x02,0x8f,0x66,0xdb,0x03,0xbf,
-0x54,0x34,0x07,0xbf,0x2d,0x49,0xe4,0x3b,0xe9,0xa9,0x30,0xce,0xc8,0xfa,0x8b,0x44,
-0x28,0x46,0x85,0xab,0x27,0x16,0x58,0x56,0xca,0x0f,0x6b,0xaf,0x55,0xe9,0xa4,0x73,
-0x8b,0x0b,0x8c,0x72,0x50,0x92,0x49,0x0b,0x91,0x53,0x37,0xa0,0x38,0x62,0xf1,0x93,
-0x94,0xb6,0x30,0x23,0xd7,0x15,0xe8,0x69,0x0c,0x67,0x8e,0x26,0x9c,0xc3,0xd0,0x61,
-0x1e,0x6d,0xc0,0xd8,0x91,0xa0,0x40,0x3c,0xf3,0xdc,0x68,0xb6,0xbb,0xf1,0x14,0x61,
-0xcf,0x1a,0xe1,0xa6,0xd7,0x65,0x11,0xb3,0x14,0x29,0x20,0xd0,0xf7,0xe2,0x50,0xc7,
-0x71,0x3d,0x50,0xdf,0x7e,0x48,0x70,0x59,0x71,0x42,0x8d,0x01,0x1a,0x06,0x3d,0xab,
-0x72,0xe3,0x5a,0x57,0x5f,0x94,0x46,0xc0,0xbb,0x5b,0x83,0x69,0x8a,0x9b,0x67,0x4c,
-0x3a,0xd1,0x07,0xaf,0x3e,0x5d,0x5e,0x55,0x07,0x97,0xec,0x62,0xb9,0xc1,0xbf,0x8d,
-0x42,0xc9,0x73,0xbf,0xe5,0xe7,0x7b,0x7b,0xd7,0xdb,0x4f,0x74,0x19,0x3d,0x68,0x4f,
-0x52,0x06,0xbf,0x2f,0xf2,0xfa,0xe9,0xf3,0x40,0xf4,0x3c,0x76,0x90,0xe1,0x80,0xdf,
-0xd0,0x79,0x62,0xd1,0xaf,0x47,0x95,0x47,0x4b,0xb3,0x35,0x4c,0x34,0xfe,0x57,0xe6,
-0xc5,0xee,0x64,0x7b,0x9d,0x80,0xf8,0x56,0x7c,0x5d,0x1d,0x2f,0x07,0x8d,0x69,0x86,
-0x06,0xe5,0x33,0xf3,0xc0,0x7b,0x5c,0x77,0x42,0xdd,0x04,0x2d,0xa4,0x52,0x4f,0xc2,
-0x77,0x3c,0xd2,0x1c,0x90,0x20,0x96,0x27,0xe5,0xed,0x3a,0xa1,0x6c,0xfb,0x1b,0xe5,
-0x2c,0x60,0x96,0x35,0x6f,0x14,0x8e,0xa1,0x68,0xcc,0xb3,0x2e,0xe0,0x5f,0x31,0x7b,
-0xd3,0xc0,0x5c,0xb1,0xe2,0x83,0x7a,0x45,0x5c,0xda,0x3d,0x96,0xbb,0xe1,0xc2,0x49,
-0x4c,0xe9,0xd3,0xdd,0xb6,0x3a,0xa9,0x3d,0xe3,0x63,0x58,0x5f,0x60,0x8b,0x9d,0x67,
-0x10,0xd5,0x94,0xba,0x63,0x6d,0x83,0x27,0x1a,0xa8,0xd2,0xce,0xbd,0x9d,0xb8,0xef,
-0x97,0x7b,0x20,0x38,0x11,0x78,0xe3,0xac,0xc9,0xf2,0xac,0x6e,0xae,0x50,0x73,0xdd,
-0xd4,0x84,0x48,0xeb,0xec,0xb1,0xc0,0x33,0xc9,0xde,0x16,0x9d,0x34,0x10,0x18,0x72,
-0x32,0xcd,0x14,0xd3,0x68,0xcd,0xac,0x2d,0xa8,0x46,0x7d,0x7a,0xf4,0x58,0x3c,0xfd,
-0x7b,0xac,0x66,0x32,0xed,0xe3,0xa2,0xcd,0xb3,0xdf,0x8d,0x5d,0x26,0xec,0x70,0xfa,
-0x91,0x15,0x39,0x29,0x21,0x53,0x54,0x3d,0x03,0x9b,0xd4,0x64,0xda,0xe5,0xea,0x5a,
-0x36,0xd1,0xd3,0x13,0x66,0x95,0x42,0x20,0xb1,0xe2,0xf8,0x12,0x26,0x9d,0xeb,0xe7,
-0x41,0x84,0x6e,0x8d,0xdb,0xe5,0xb9,0x18,0xd9,0x1a,0xbd,0x11,0xd6,0x96,0x6e,0xb7,
-0x34,0xd8,0xb7,0x58,0xb4,0xf7,0x6c,0x77,0x91,0x18,0xf5,0xf8,0x5c,0x10,0xd8,0x81,
-0xe0,0x2a,0x43,0x49,0xae,0x93,0xc8,0xeb,0x30,0xa7,0xb0,0xc1,0xf5,0x03,0x6e,0x3f,
-0x51,0xc7,0xa7,0x70,0x89,0x8b,0x27,0x54,0x3e,0x06,0x36,0xd3,0x18,0xc6,0xf8,0x42,
-0x19,0xbf,0xbe,0x39,0xd7,0x2b,0x07,0x54,0x37,0x5c,0xb5,0x66,0xc6,0xfb,0xbb,0x76,
-0xe2,0x4e,0x98,0x40,0xf3,0x33,0x96,0x59,0x21,0xe5,0x1d,0x0e,0x1c,0x41,0x75,0x8f,
-0x39,0xb1,0xcc,0xd0,0x24,0x19,0x13,0x0c,0x45,0x6a,0xcc,0x0d,0x09,0x21,0x02,0x8c,
-0x0d,0xc3,0xb1,0xb8,0x40,0x41,0x1c,0x90,0x17,0x38,0x7d,0x08,0xbc,0xab,0xae,0xc5,
-0x18,0xf2,0x87,0x42,0xe4,0xd1,0xc9,0x61,0x40,0xa0,0x8e,0xc1,0x24,0x44,0xa9,0x76,
-0x47,0xdb,0x77,0xa6,0x8f,0x51,0x33,0x32,0xc5,0x93,0x7b,0x3e,0x53,0xc7,0x17,0x0f,
-0x21,0x67,0x42,0x0c,0x3b,0xb8,0x74,0xdc,0xdf,0x52,0x17,0x15,0x24,0xae,0xb6,0x97,
-0x68,0xb9,0x09,0x06,0xaa,0x9b,0x1d,0x40,0xa1,0xa0,0x6c,0x54,0x5c,0x84,0x3d,0x90,
-0xd9,0xb1,0xb6,0x2c,0x84,0x19,0x72,0xe2,0x40,0x09,0x5b,0x25,0xa1,0x51,0x02,0xd9,
-0x96,0x88,0xa9,0x01,0x48,0x13,0xbc,0x02,0x3b,0x88,0x29,0x52,0xa3,0x10,0x0c,0xb2,
-0x72,0xd0,0xb7,0x35,0x76,0x82,0xf2,0x2b,0xc5,0xdd,0x80,0xbd,0x67,0x43,0x19,0x4a,
-0xe0,0xd2,0x32,0xa0,0x4a,0x65,0xc4,0x40,0x62,0x2e,0x08,0xbb,0x8c,0x68,0x05,0x4a,
-0xe3,0x65,0x74,0x20,0x10,0x2e,0xc6,0x48,0x88,0x72,0xf3,0x05,0x6b,0xd9,0x53,0x74,
-0xa1,0x7b,0xb5,0x19,0x6a,0x9e,0xf8,0xf3,0xad,0x79,0x65,0xf7,0x95,0x5c,0xf8,0x90,
-0x45,0x99,0xfb,0x8e,0xc8,0xc5,0x50,0xaa,0xa0,0x2f,0x55,0x8a,0xf0,0x1b,0xe2,0x2f,
-0x61,0x96,0x82,0x02,0x3c,0xf1,0x83,0x59,0x1d,0x1a,0x03,0x69,0x22,0xc3,0xb7,0xce,
-0xd6,0x3c,0x2f,0xa0,0x9c,0xf0,0x6c,0xb3,0x45,0xf4,0xe3,0x85,0xf8,0x6e,0xc8,0x44,
-0xcb,0xd5,0xbd,0x61,0x96,0x01,0x47,0x04,0x3b,0xf3,0x06,0xb9,0x6a,0xe1,0x8a,0x1d,
-0x84,0x80,0x12,0x89,0x0a,0xdb,0xe9,0xa3,0xe3,0x5b,0xa5,0x96,0x90,0x30,0x7c,0x61,
-0xed,0x65,0x02,0xc6,0x5b,0xc5,0x87,0x36,0xd2,0x6d,0xc0,0xc4,0x9c,0x80,0xec,0x76,
-0x6f,0x7e,0x8b,0x16,0x16,0x60,0x2c,0xc8,0x0c,0xc8,0x91,0xac,0x21,0x24,0x35,0x8d,
-0x6e,0x3e,0x99,0x9b,0x8b,0x31,0x63,0xb7,0x60,0x39,0x69,0xb1,0xb1,0x78,0x74,0xd1,
-0xa0,0x63,0x6c,0xce,0x8e,0xb2,0xae,0xd7,0x3a,0x66,0xfa,0x9d,0xc3,0xab,0x45,0xf3,
-0xa2,0x5a,0xcf,0x73,0xcf,0x73,0x02,0x57,0x03,0x9f,0xa5,0x10,0x71,0x63,0x3b,0xf3,
-0xdf,0x5a,0xab,0x46,0x93,0x6a,0x05,0x1a,0x13,0x30,0xbe,0x94,0x9e,0x94,0x91,0x02,
-0x1f,0xf2,0xdd,0x77,0x50,0xe3,0xc7,0xae,0x9c,0x13,0x87,0x81,0x7a,0x2e,0xef,0xde,
-0x8e,0xc2,0xeb,0xbc,0xc8,0xa3,0x2e,0xaa,0xae,0xaf,0x04,0x4c,0x1d,0x58,0xa7,0xa1,
-0x54,0x0f,0x26,0x34,0x2c,0x31,0xec,0xcc,0x40,0xed,0xf5,0x16,0x89,0x31,0x77,0xb5,
-0x1b,0xf0,0xde,0xab,0xdb,0x28,0x18,0xfb,0x19,0x67,0x09,0x0c,0xa6,0x26,0xc4,0xff,
-0x20,0xd7,0x57,0x43,0x2d,0xe0,0xf4,0x98,0x59,0x90,0x09,0x17,0x9d,0xc3,0x23,0x80,
-0x46,0x90,0xc3,0x0b,0xbb,0x24,0x80,0x06,0x90,0x1e,0x31,0xa9,0xdc,0x8f,0x43,0x7a,
-0xe0,0x66,0xc9,0xb4,0x36,0x23,0xcb,0x23,0x65,0x24,0x74,0x84,0x5f,0xad,0x5e,0x70,
-0x1c,0xb3,0x6e,0xea,0x08,0xe5,0x0d,0xb0,0xe5,0xb7,0x58,0x77,0x75,0xb3,0x3c,0x54,
-0xce,0x90,0xc3,0x5a,0x1e,0x31,0x63,0x93,0x50,0x99,0x83,0x44,0xa2,0x7d,0x88,0x52,
-0x7d,0x3c,0xb8,0xce,0x7b,0x75,0x0e,0x20,0x05,0x0d,0xe3,0x13,0x39,0x14,0xa1,0xf7,
-0x41,0xa2,0x54,0x49,0x1d,0xe5,0x3f,0x14,0x89,0x38,0x90,0xe9,0xd0,0x18,0x0e,0xb1,
-0x3a,0xef,0xf3,0xa1,0x5b,0x6e,0xce,0x48,0xb3,0xb6,0x73,0x83,0xa9,0x7a,0xc4,0x5d,
-0x99,0x4a,0x94,0xa3,0x1a,0xdf,0x17,0x86,0x2e,0xe8,0x89,0x7e,0x09,0x3d,0x6f,0x2b,
-0x7a,0x5f,0x43,0xa7,0x61,0x41,0x6e,0x33,0xad,0x43,0x54,0xef,0x82,0x2c,0x6d,0x27,
-0x9b,0x25,0xef,0xe4,0xa7,0xd9,0x5e,0x0f,0x1f,0x5a,0xbe,0x42,0xe2,0xfb,0x64,0x61,
-0x76,0xb4,0x30,0xd1,0x8b,0xab,0x0b,0xc9,0x6a,0x6c,0xa7,0xdd,0xc5,0x12,0x00,0x0c,
-0xb1,0x21,0x04,0x33,0xcd,0xee,0x03,0x94,0x44,0x6e,0x94,0xe8,0x35,0xed,0x96,0xcd,
-0x5e,0x34,0x35,0xb9,0xcc,0x21,0x48,0x8e,0x6d,0x63,0x02,0xab,0x53,0x3a,0xb8,0xb2,
-0xd4,0x37,0xe3,0x5b,0x4b,0xa2,0x8f,0x3e,0x27,0xb0,0xb4,0xc7,0x40,0x49,0xb4,0x18,
-0x35,0x3a,0x2b,0x18,0x89,0xde,0x54,0x74,0x45,0xa4,0x92,0x37,0xb1,0xd5,0xd7,0x25,
-0x41,0xad,0x53,0x1d,0xca,0x82,0x1b,0x06,0x9a,0xe3,0x5b,0xd3,0x23,0x4a,0xe9,0x3a,
-0x8c,0xd9,0x5f,0xce,0x6e,0xef,0x68,0x6b,0x09,0x67,0xa4,0x3a,0xaa,0x98,0x28,0x4a,
-0x68,0x84,0x42,0x48,0x9e,0xe7,0x05,0x10,0x66,0xfc,0xcf,0xb1,0x9a,0x1d,0xd8,0x2c,
-0x1e,0x9d,0xbe,0x75,0xda,0x44,0xcb,0x6a,0x32,0xa8,0x5a,0x89,0x6b,0x87,0xe6,0xf1,
-0x24,0x44,0xf1,0xb6,0x0c,0x64,0xd0,0xe3,0xb3,0x54,0x4a,0x34,0xe7,0x19,0xd9,0xed,
-0x4c,0xcf,0x0c,0x2b,0x7e,0x1c,0x56,0x93,0xbe,0xc3,0x01,0x63,0x48,0xf7,0x9d,0x87,
-0x31,0x19,0xd1,0x06,0xcd,0x3d,0x55,0xbb,0x40,0x39,0x33,0x69,0xfc,0x3e,0xe1,0xb7,
-0xb5,0x0f,0xc6,0x6b,0x7f,0x5b,0x94,0x05,0xdc,0xd9,0xae,0x79,0x19,0xe3,0x7a,0xc0,
-0x1d,0x0d,0x11,0xa3,0xb1,0xa2,0x0c,0x26,0x76,0xd9,0x8a,0x69,0xe1,0xc2,0x1d,0xa7,
-0x3d,0xa5,0xcb,0x00,0x36,0xcd,0x49,0x8c,0xb0,0x92,0x2c,0x85,0x69,0xa7,0x2f,0x53,
-0x0c,0xf3,0x7c,0xb5,0x22,0xb0,0x86,0x34,0xda,0x1b,0x55,0x1b,0x4d,0xa1,0xc7,0x1c,
-0x90,0x70,0x6d,0xc6,0xdb,0x70,0x8e,0x46,0xe3,0x9e,0x9e,0xf6,0x3b,0x3b,0xf4,0x56,
-0xe6,0xdc,0x6f,0x91,0xf8,0x84,0xa7,0xc9,0x4f,0x72,0xa1,0x13,0xa3,0x56,0xb6,0x79,
-0x11,0x51,0x2e,0xa2,0x1b,0x21,0x7a,0x72,0x96,0x60,0x5b,0xa8,0x59,0xe7,0x38,0xbb,
-0x16,0x8c,0x62,0x68,0xd9,0x82,0x9d,0x6c,0x4a,0x1f,0x8d,0x76,0x48,0xb4,0x3c,0x30,
-0xcf,0x5a,0xeb,0xa5,0xf2,0xc2,0xe6,0xe1,0x73,0x05,0x95,0xe9,0x4c,0xe6,0x7e,0x8e,
-0xfb,0xa3,0xa7,0xc5,0xbb,0xb4,0x75,0xfc,0x3f,0x9d,0x7f,0x93,0xf8,0xb0,0x7d,0xb1,
-0x23,0xe3,0x0f,0x3f,0x26,0xfe,0x0a,0x2b,0x96,0x71,0xfa,0x42,0x7d,0xa2,0x3c,0xa8,
-0x15,0xea,0x24,0x1a,0x6d,0xec,0xca,0x3d,0xfb,0xb1,0x45,0xad,0x8f,0x4a,0x64,0xee,
-0x15,0x0f,0x9d,0xdf,0x56,0x9b,0x34,0x3d,0x74,0xd4,0xcf,0x2f,0xf0,0x06,0x56,0xc9,
-0x1a,0x5b,0xe2,0x21,0xb7,0xda,0x71,0xcf,0xc6,0x92,0x58,0x94,0x63,0x22,0xe3,0xd7,
-0xd6,0xd4,0x85,0x25,0x66,0x56,0x5e,0x6c,0xef,0x98,0x5e,0xeb,0x18,0xd8,0x87,0x9d,
-0x5e,0xd5,0x9b,0x5e,0xc6,0x2f,0x3b,0xdb,0x8c,0x9d,0x6a,0x69,0xe1,0xe3,0x49,0x54,
-0x4e,0xdc,0x69,0xa5,0xd4,0x9a,0x28,0x66,0xea,0xa6,0xd4,0x6b,0xbe,0x31,0xe0,0x56,
-0x27,0x0f,0x06,0xb9,0xcd,0x94,0x12,0x75,0x02,0x21,0x34,0x70,0xd0,0x6e,0x44,0xcd,
-0x6e,0x5f,0x58,0xf3,0x08,0x36,0x02,0x36,0x14,0xe5,0x02,0x41,0x0e,0xea,0x66,0x83,
-0x0b,0xee,0x5b,0x7c,0x03,0x48,0xcb,0x33,0xa8,0xd4,0x35,0xc0,0x49,0xb3,0x09,0x8e,
-0x9a,0x45,0xea,0xd0,0x15,0x15,0x6c,0xd8,0x80,0x38,0x07,0xc9,0x0f,0x89,0x0b,0xc6,
-0xd2,0x1b,0x33,0xad,0x60,0x3f,0x97,0xbf,0x50,0x5f,0xbc,0x51,0xe8,0xdc,0x06,0x04,
-0xe0,0xec,0x5a,0x83,0xd3,0x42,0x36,0xe2,0xb0,0xc3,0xe4,0x81,0xe3,0xf5,0xe0,0xeb,
-0xa8,0x3f,0x77,0xe5,0x68,0x0c,0xc2,0x69,0xe1,0xa8,0x46,0xb5,0x3e,0x6f,0x08,0x82,
-0x35,0x08,0xed,0x8e,0xd4,0x2c,0xe3,0x2f,0xe4,0x43,0xcb,0x17,0x7b,0xe7,0xee,0x18,
-0xd9,0x84,0xb6,0xcc,0x6c,0xde,0xf2,0x80,0xa3,0x3d,0x1f,0xad,0x09,0x96,0xf0,0xcd,
-0x75,0xa8,0x53,0xde,0x11,0x6a,0xe6,0x04,0x92,0x04,0xf8,0xd5,0xb6,0x36,0xac,0xd9,
-0x51,0x69,0xb1,0xbc,0x05,0xdf,0x29,0x84,0x67,0xb0,0x7d,0x0a,0x9c,0x02,0x6e,0x13,
-0xe2,0x93,0x82,0x5e,0xe0,0xc2,0x0b,0xa4,0xc0,0x83,0x3c,0x66,0xf3,0x13,0x47,0x03,
-0x58,0x42,0xef,0x10,0x34,0xb3,0x59,0x64,0xee,0x29,0xc1,0x8c,0xc4,0x3a,0x91,0x10,
-0xa8,0x4f,0xd2,0x3d,0xa0,0xf0,0xdf,0x2d,0x04,0x57,0xc8,0xd6,0x60,0x88,0x95,0x6e,
-0x11,0x18,0x87,0x29,0x47,0x9f,0x96,0x51,0x54,0x82,0x20,0x31,0x98,0xa8,0xed,0x1c,
-0xa2,0x3e,0x58,0xbd,0xe4,0x48,0xe0,0xc8,0xaf,0x7d,0x2c,0x99,0xa6,0xea,0x50,0x2f,
-0xd1,0xc6,0x50,0xe2,0xe4,0x4a,0x1c,0x3f,0xce,0x85,0xd7,0x7c,0x2d,0xf1,0x0d,0x1f,
-0xdf,0x7f,0x9c,0x08,0xd9,0x08,0xbe,0x46,0x7d,0x68,0x81,0x20,0x55,0x3a,0xa2,0x82,
-0xf2,0xb6,0xb6,0x58,0x41,0x82,0xad,0x44,0x11,0x75,0x9e,0x56,0x93,0x6f,0x6f,0x78,
-0x41,0x1e,0x56,0xe6,0xfb,0x14,0x16,0xfa,0xc4,0x36,0xc1,0xb2,0x6c,0xc3,0x95,0x2e,
-0x39,0x74,0x20,0x08,0x6d,0xa1,0x7a,0x58,0xb1,0x86,0x73,0x7a,0x3a,0x42,0xfb,0x8c,
-0x06,0x2c,0x79,0x2d,0x26,0xb2,0x5e,0x50,0x87,0x8c,0xaa,0xd5,0xf6,0xf2,0x92,0xca,
-0xa3,0x18,0x6f,0xd9,0xcc,0x9a,0x43,0xd9,0x8e,0x77,0xdf,0x04,0x68,0x64,0xe4,0x35,
-0xa6,0x69,0x62,0xe3,0x04,0x92,0x55,0x9c,0x16,0x02,0x4b,0x24,0xc8,0x41,0xb8,0x2a,
-0x8a,0x9b,0xbb,0x0d,0xd0,0xe8,0xef,0x78,0x1c,0x91,0x1c,0x50,0xb1,0x4e,0x1d,0x73,
-0x54,0x45,0x85,0x62,0x6a,0x2a,0xa2,0x08,0x03,0x6b,0x37,0xd4,0x5a,0x16,0x3e,0x3b,
-0xaf,0x0a,0x76,0x9f,0x6b,0xe7,0x1a,0x7a,0x77,0xd5,0xcb,0x32,0xb1,0x5a,0xdf,0xba,
-0xce,0x9e,0xad,0x8b,0xa4,0xd1,0xa2,0x84,0x60,0x1a,0xcd,0x35,0x73,0x9c,0x51,0xf1,
-0x9a,0x7b,0xae,0x15,0x77,0x10,0xda,0x6d,0xa0,0x54,0x91,0x50,0x92,0xc8,0xf5,0xf1,
-0x84,0x3b,0xd7,0x03,0x35,0x99,0x3b,0x7e,0xc9,0x3b,0x82,0x3c,0x05,0x8f,0x78,0x09,
-0x5a,0x11,0xa6,0x64,0x49,0x27,0x23,0x93,0x42,0xc2,0x0c,0xc7,0x75,0xd2,0x75,0xbe,
-0x95,0xd1,0xb4,0x27,0x42,0x19,0x44,0x38,0x04,0x16,0x92,0x8c,0x2d,0xe2,0x1c,0x8a,
-0xa7,0x70,0x4c,0x67,0x0e,0xc6,0x2c,0xd9,0xa0,0x2d,0x8a,0x93,0x64,0x2c,0x4b,0x87,
-0xf0,0x73,0x30,0x0a,0x21,0x38,0xf0,0xfe,0x35,0x0a,0x91,0x25,0x21,0x4a,0x0b,0x1c,
-0x32,0xb0,0xbc,0xf2,0xf0,0xd4,0xc5,0x19,0xfc,0x4f,0x4f,0xaf,0xda,0xed,0x9d,0xf4,
-0xfe,0x48,0xef,0xf1,0x9e,0xa5,0x8f,0x0a,0x2a,0xa7,0xde,0x83,0x89,0x62,0x22,0xbb,
-0xc1,0x99,0x62,0x30,0x49,0x13,0x2d,0x97,0x96,0xaa,0xa9,0x28,0x51,0xc6,0x94,0x2c,
-0x2e,0xd0,0xe3,0x0d,0xbd,0x56,0xe6,0x27,0x0e,0xac,0x50,0x12,0x60,0xa8,0xa1,0xcb,
-0xf9,0x7c,0x3c,0xb8,0x45,0x1f,0x0e,0x81,0xe5,0x36,0x1f,0x8c,0x0f,0x79,0x10,0x00,
-0x3d,0x0a,0x35,0x8a,0x76,0x8d,0xfb,0x98,0xa1,0x13,0xcb,0xfc,0xf8,0x55,0x35,0x64,
-0xa1,0xbc,0xf4,0xef,0x8e,0xfe,0x30,0x06,0x73,0xdd,0xc1,0x9a,0x5a,0xcf,0x87,0x16,
-0xd8,0x23,0xb7,0x95,0xc4,0x20,0x40,0x25,0x22,0x8a,0xa0,0xab,0x92,0x70,0x8d,0xb6,
-0x42,0xa8,0x6e,0x69,0x85,0xa3,0xc3,0x76,0x3b,0xb3,0x5d,0xc3,0x30,0xb4,0x12,0x4c,
-0x70,0xe8,0x84,0xeb,0xc1,0xf6,0xed,0x17,0xa0,0xa4,0xb5,0x57,0x9d,0xe4,0x9a,0x48,
-0x51,0xe7,0x70,0xee,0x4e,0x18,0x14,0x18,0xe2,0xb6,0xac,0x4d,0x4d,0x6b,0x12,0x04,
-0xb0,0x6c,0xa2,0x58,0x00,0x9a,0x0f,0x5c,0x2d,0x09,0xd5,0x85,0x14,0x41,0x08,0xe0,
-0xda,0x1d,0x9c,0x6c,0x58,0x91,0x0d,0x31,0x36,0xc1,0xb0,0xbd,0xad,0xbd,0xfb,0xdb,
-0x0b,0x2d,0x58,0x63,0x18,0x4d,0x5d,0x0d,0xa5,0x33,0x34,0x29,0x85,0x33,0xac,0x05,
-0xcb,0x48,0x4c,0xdb,0x3e,0xbe,0xad,0xe9,0xe9,0x60,0x8f,0x03,0xa3,0xea,0x6c,0x78,
-0xc4,0xb0,0x04,0x4d,0xf3,0x62,0xa3,0xa9,0x1b,0xe3,0xb1,0xc8,0x85,0xe9,0x05,0xd7,
-0x74,0x13,0xcf,0x62,0xe1,0x0d,0xb2,0xf7,0x38,0xb8,0x8e,0x56,0x26,0x37,0xae,0xf5,
-0xac,0xa3,0xcb,0x48,0xca,0xf1,0xc1,0x54,0x4b,0x94,0x20,0x07,0xa3,0x31,0x1b,0x52,
-0x70,0x49,0x9c,0xca,0xa8,0xab,0x31,0x11,0xde,0x15,0x90,0x58,0x10,0x76,0x4a,0x79,
-0x58,0x84,0x59,0x89,0xea,0xe3,0x68,0xd5,0xa4,0x3f,0x91,0x90,0x11,0x42,0xb4,0x3b,
-0x6f,0xa3,0x7b,0x31,0xa2,0x91,0xd8,0xb3,0x2d,0xa7,0xa7,0x66,0x81,0x6f,0x17,0xc9,
-0x0a,0x5f,0xb4,0x5d,0xe2,0x37,0xa4,0xa2,0x73,0x39,0x56,0xea,0x00,0xa9,0x44,0x4b,
-0x78,0x59,0xfb,0xe7,0x87,0x97,0x08,0xbd,0x36,0x62,0x6b,0xae,0x3e,0x4f,0x08,0x90,
-0x83,0xb5,0x06,0x95,0xab,0xdd,0x1c,0x23,0x17,0x16,0x3c,0xd6,0x5c,0xb8,0x95,0x41,
-0xc2,0x71,0x02,0x8b,0xb0,0x94,0x3d,0xfd,0x91,0x95,0xd4,0x62,0xa2,0x06,0x48,0xb7,
-0xfa,0x3d,0x1e,0xe9,0x4a,0x2f,0x05,0xde,0x78,0xaf,0x20,0xc1,0x16,0x82,0x19,0x45,
-0x32,0x38,0xc6,0xa6,0x41,0x99,0x74,0xc5,0xd2,0x2c,0x49,0x06,0x08,0xea,0x68,0xe2,
-0x1c,0x09,0x0d,0xb7,0xa5,0x43,0xa9,0x5b,0xaa,0x3b,0x76,0xed,0x1b,0x4e,0x88,0xb2,
-0x09,0x84,0x83,0x96,0xc1,0x2f,0x0f,0xf8,0x08,0x1c,0x3a,0x43,0x7d,0xaf,0x18,0x15,
-0x45,0x40,0xa0,0xa4,0x3b,0xe5,0x15,0xb3,0x01,0x9b,0xa9,0x7f,0x86,0x14,0x3d,0x81,
-0x17,0x60,0xa6,0x9a,0xdd,0x5d,0xc1,0x4a,0x33,0x2a,0x65,0xc0,0x64,0x23,0xe2,0xbe,
-0xbc,0x59,0xb8,0x2f,0x5a,0x11,0x54,0x17,0xf2,0x51,0xa2,0x96,0x48,0x95,0x30,0x1c,
-0x2e,0xd9,0x7f,0x98,0x8a,0x45,0x92,0x5c,0xc8,0xd5,0xbc,0x48,0xef,0xb2,0x76,0x60,
-0x49,0x06,0x13,0x20,0x3d,0x43,0x5b,0x98,0xec,0xee,0xe1,0x12,0xd9,0xf8,0xe7,0x68,
-0xc5,0x2c,0x28,0x49,0xc3,0x13,0xe5,0xcb,0xb3,0xb6,0x96,0x5c,0x29,0x24,0xa3,0xdb,
-0x79,0x0e,0x18,0x91,0x19,0x4c,0x98,0x90,0x60,0xa3,0x64,0x22,0x37,0x2c,0xcb,0x65,
-0xad,0x90,0xb3,0x21,0xce,0xfd,0x36,0x8b,0xce,0x68,0x1d,0x47,0x7d,0xd6,0x4e,0x2c,
-0x67,0x4d,0xde,0x9d,0x91,0x4d,0xa1,0x28,0xa5,0x48,0x28,0x9b,0xc0,0x78,0xec,0x8c,
-0x60,0x82,0x64,0x5c,0x2e,0xcd,0xf8,0x6d,0xb1,0x88,0x19,0xb4,0xd9,0x35,0xb7,0xf3,
-0xed,0xfc,0xfc,0xe7,0xe9,0xed,0xf5,0xff,0x53,0x28,0x8c,0xa1,0x71,0x0d,0x99,0x8c,
-0xd4,0x67,0x9d,0xe0,0x73,0xe8,0x9d,0x4f,0xaa,0x09,0x00,0x85,0x51,0x34,0x42,0x93,
-0x46,0xe4,0x7f,0x6d,0xb9,0x20,0x10,0xbc,0x6b,0xfb,0x73,0xab,0xdb,0xb4,0xaf,0x57,
-0x3c,0xdb,0x8d,0x92,0x01,0x0b,0xf6,0x57,0xcd,0xf6,0xf4,0xe6,0x9f,0xb6,0xe9,0x00,
-0x85,0x31,0xbc,0xca,0xca,0x4a,0xe5,0x28,0x50,0xea,0xc7,0x5a,0x40,0x21,0x57,0x7a,
-0x25,0x38,0x52,0x01,0x0a,0xad,0xbd,0x9b,0x50,0xa1,0x20,0x10,0xa9,0x48,0x04,0x2b,
-0xfc,0x53,0xbc,0x23,0xe4,0xbf,0x0c,0x51,0x90,0x84,0x21,0x47,0xfc,0x5d,0xc9,0x14,
-0xe1,0x42,0x40,0x83,0xca,0x7b,0xf8,
-};
-#endif
diff --git a/include-full/copy-current.sh b/include-full/copy-current.sh
deleted file mode 100755
index 20ffc3a..0000000
--- a/include-full/copy-current.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-# after .config setup, type "make prepare" to generate /include files
-# this step is no more required to build busybox, it is made automatically
-# in Android.mk (busybox_prepare module)
-
-cat ../.config | grep -v CONFIG_CROSS_COMPILER_PREFIX > ../.config-full
-
-cp ../include/applets.h ./
-cp ../include/applet_tables.h ./
-cp ../include/autoconf.h ./
-cp ../include/bbconfigopts_bz2.h ./
-cp ../include/bbconfigopts.h ./
-cp ../include/NUM_APPLETS.h ./
-cp ../include/usage_compressed.h ./
diff --git a/include-full/usage_compressed.h b/include-full/usage_compressed.h
deleted file mode 100644
index 9785cd3..0000000
--- a/include-full/usage_compressed.h
+++ /dev/null
@@ -1,3913 +0,0 @@
-#define UNPACKED_USAGE "" \
-"\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x20\x5d\x0a\x0a\x43\x68" \
-"\x65\x63\x6b\x20\x66\x69\x6c\x65\x20\x74\x79\x70\x65\x73\x2c\x20" \
-"\x63\x6f\x6d\x70\x61\x72\x65\x20\x76\x61\x6c\x75\x65\x73\x20\x65" \
-"\x74\x63\x2e\x20\x52\x65\x74\x75\x72\x6e\x20\x61\x20\x30\x2f\x31" \
-"\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x0a\x64\x65\x70\x65\x6e" \
-"\x64\x69\x6e\x67\x20\x6f\x6e\x20\x6c\x6f\x67\x69\x63\x61\x6c\x20" \
-"\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x45\x58\x50\x52\x45\x53\x53" \
-"\x49\x4f\x4e\x00\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x20\x5d" \
-"\x0a\x0a\x43\x68\x65\x63\x6b\x20\x66\x69\x6c\x65\x20\x74\x79\x70" \
-"\x65\x73\x2c\x20\x63\x6f\x6d\x70\x61\x72\x65\x20\x76\x61\x6c\x75" \
-"\x65\x73\x20\x65\x74\x63\x2e\x20\x52\x65\x74\x75\x72\x6e\x20\x61" \
-"\x20\x30\x2f\x31\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x0a\x64" \
-"\x65\x70\x65\x6e\x64\x69\x6e\x67\x20\x6f\x6e\x20\x6c\x6f\x67\x69" \
-"\x63\x61\x6c\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x45\x58\x50" \
-"\x52\x45\x53\x53\x49\x4f\x4e\x00\x5b\x2d\x71\x5d\x20\x5b\x2d\x6f" \
-"\x20\x4f\x46\x46\x5d\x20\x5b\x2d\x66\x20\x46\x52\x45\x51\x5d\x20" \
-"\x5b\x2d\x70\x20\x54\x43\x4f\x4e\x53\x54\x5d\x20\x5b\x2d\x74\x20" \
-"\x54\x49\x43\x4b\x5d\x0a\x0a\x52\x65\x61\x64\x20\x61\x6e\x64\x20" \
-"\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x6c\x79\x20\x73\x65\x74\x20\x73" \
-"\x79\x73\x74\x65\x6d\x20\x74\x69\x6d\x65\x62\x61\x73\x65\x20\x70" \
-"\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x20\x53\x65\x65\x20\x61" \
-"\x64\x6a\x74\x69\x6d\x65\x78\x28\x32\x29\x0a\x0a\x09\x2d\x71\x09" \
-"\x51\x75\x69\x65\x74\x0a\x09\x2d\x6f\x20\x4f\x46\x46\x09\x54\x69" \
-"\x6d\x65\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x6d\x69\x63\x72\x6f" \
-"\x73\x65\x63\x6f\x6e\x64\x73\x0a\x09\x2d\x66\x20\x46\x52\x45\x51" \
-"\x09\x46\x72\x65\x71\x75\x65\x6e\x63\x79\x20\x61\x64\x6a\x75\x73" \
-"\x74\x2c\x20\x69\x6e\x74\x65\x67\x65\x72\x20\x6b\x65\x72\x6e\x65" \
-"\x6c\x20\x75\x6e\x69\x74\x73\x20\x28\x36\x35\x35\x33\x36\x20\x69" \
-"\x73\x20\x31\x70\x70\x6d\x29\x0a\x09\x09\x28\x70\x6f\x73\x69\x74" \
-"\x69\x76\x65\x20\x76\x61\x6c\x75\x65\x73\x20\x6d\x61\x6b\x65\x20" \
-"\x63\x6c\x6f\x63\x6b\x20\x72\x75\x6e\x20\x66\x61\x73\x74\x65\x72" \
-"\x29\x0a\x09\x2d\x74\x20\x54\x49\x43\x4b\x09\x4d\x69\x63\x72\x6f" \
-"\x73\x65\x63\x6f\x6e\x64\x73\x20\x70\x65\x72\x20\x74\x69\x63\x6b" \
-"\x2c\x20\x75\x73\x75\x61\x6c\x6c\x79\x20\x31\x30\x30\x30\x30\x0a" \
-"\x09\x2d\x70\x20\x54\x43\x4f\x4e\x53\x54\x00\x0a\x5b\x2d\x76\x6e" \
-"\x5d\x09\x5b\x2d\x48\x20\x48\x57\x54\x59\x50\x45\x5d\x20\x5b\x2d" \
-"\x69\x20\x49\x46\x5d\x20\x2d\x61\x20\x5b\x48\x4f\x53\x54\x4e\x41" \
-"\x4d\x45\x5d\x0a\x5b\x2d\x76\x5d\x09\x09\x20\x20\x20\x20\x5b\x2d" \
-"\x69\x20\x49\x46\x5d\x20\x2d\x64\x20\x48\x4f\x53\x54\x4e\x41\x4d" \
-"\x45\x20\x5b\x70\x75\x62\x5d\x0a\x5b\x2d\x76\x5d\x09\x5b\x2d\x48" \
-"\x20\x48\x57\x54\x59\x50\x45\x5d\x20\x5b\x2d\x69\x20\x49\x46\x5d" \
-"\x20\x2d\x73\x20\x48\x4f\x53\x54\x4e\x41\x4d\x45\x20\x48\x57\x41" \
-"\x44\x44\x52\x20\x5b\x74\x65\x6d\x70\x5d\x0a\x5b\x2d\x76\x5d\x09" \
-"\x5b\x2d\x48\x20\x48\x57\x54\x59\x50\x45\x5d\x20\x5b\x2d\x69\x20" \
-"\x49\x46\x5d\x20\x2d\x73\x20\x48\x4f\x53\x54\x4e\x41\x4d\x45\x20" \
-"\x48\x57\x41\x44\x44\x52\x20\x5b\x6e\x65\x74\x6d\x61\x73\x6b\x20" \
-"\x4d\x41\x53\x4b\x5d\x20\x70\x75\x62\x0a\x5b\x2d\x76\x5d\x09\x5b" \
-"\x2d\x48\x20\x48\x57\x54\x59\x50\x45\x5d\x20\x5b\x2d\x69\x20\x49" \
-"\x46\x5d\x20\x2d\x44\x73\x20\x48\x4f\x53\x54\x4e\x41\x4d\x45\x20" \
-"\x49\x46\x41\x43\x45\x20\x5b\x6e\x65\x74\x6d\x61\x73\x6b\x20\x4d" \
-"\x41\x53\x4b\x5d\x20\x70\x75\x62\x0a\x0a\x4d\x61\x6e\x69\x70\x75" \
-"\x6c\x61\x74\x65\x20\x41\x52\x50\x20\x63\x61\x63\x68\x65\x0a\x0a" \
-"\x09\x2d\x61\x09\x09\x44\x69\x73\x70\x6c\x61\x79\x20\x28\x61\x6c" \
-"\x6c\x29\x20\x68\x6f\x73\x74\x73\x0a\x09\x2d\x73\x09\x09\x53\x65" \
-"\x74\x20\x6e\x65\x77\x20\x41\x52\x50\x20\x65\x6e\x74\x72\x79\x0a" \
-"\x09\x2d\x64\x09\x09\x44\x65\x6c\x65\x74\x65\x20\x61\x20\x73\x70" \
-"\x65\x63\x69\x66\x69\x65\x64\x20\x65\x6e\x74\x72\x79\x0a\x09\x2d" \
-"\x76\x09\x09\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x6e\x09\x09" \
-"\x44\x6f\x6e\x27\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x20\x6e\x61" \
-"\x6d\x65\x73\x0a\x09\x2d\x69\x20\x49\x46\x09\x09\x4e\x65\x74\x77" \
-"\x6f\x72\x6b\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x0a\x09\x2d" \
-"\x44\x09\x09\x52\x65\x61\x64\x20\x3c\x68\x77\x61\x64\x64\x72\x3e" \
-"\x20\x66\x72\x6f\x6d\x20\x67\x69\x76\x65\x6e\x20\x64\x65\x76\x69" \
-"\x63\x65\x0a\x09\x2d\x41\x2c\x2d\x70\x20\x41\x46\x09\x50\x72\x6f" \
-"\x74\x6f\x63\x6f\x6c\x20\x66\x61\x6d\x69\x6c\x79\x0a\x09\x2d\x48" \
-"\x20\x48\x57\x54\x59\x50\x45\x09\x48\x61\x72\x64\x77\x61\x72\x65" \
-"\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x79\x70\x65\x00\x5b\x2d" \
-"\x2f\x2b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x2d\x2f\x2b\x6f" \
-"\x20\x4f\x50\x54\x5d\x2e\x2e\x2e\x20\x5b\x2d\x63\x20\x27\x53\x43" \
-"\x52\x49\x50\x54\x27\x20\x5b\x41\x52\x47\x30\x20\x5b\x41\x52\x47" \
-"\x53\x5d\x5d\x20\x2f\x20\x46\x49\x4c\x45\x20\x5b\x41\x52\x47\x53" \
-"\x5d\x5d\x0a\x0a\x55\x6e\x69\x78\x20\x73\x68\x65\x6c\x6c\x20\x69" \
-"\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x00\x5b\x4f\x50\x54\x49" \
-"\x4f\x4e\x53\x5d\x20\x5b\x41\x57\x4b\x5f\x50\x52\x4f\x47\x52\x41" \
-"\x4d\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d" \
-"\x76\x20\x56\x41\x52\x3d\x56\x41\x4c\x09\x53\x65\x74\x20\x76\x61" \
-"\x72\x69\x61\x62\x6c\x65\x0a\x09\x2d\x46\x20\x53\x45\x50\x09\x09" \
-"\x55\x73\x65\x20\x53\x45\x50\x20\x61\x73\x20\x66\x69\x65\x6c\x64" \
-"\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x0a\x09\x2d\x66\x20\x46" \
-"\x49\x4c\x45\x09\x09\x52\x65\x61\x64\x20\x70\x72\x6f\x67\x72\x61" \
-"\x6d\x20\x66\x72\x6f\x6d\x20\x46\x49\x4c\x45\x00\x5b\x2d\x64\x5d" \
-"\x20\x5b\x46\x49\x4c\x45\x5d\x0a\x0a\x42\x61\x73\x65\x36\x34\x20" \
-"\x65\x6e\x63\x6f\x64\x65\x20\x6f\x72\x20\x64\x65\x63\x6f\x64\x65" \
-"\x20\x46\x49\x4c\x45\x20\x74\x6f\x20\x73\x74\x61\x6e\x64\x61\x72" \
-"\x64\x20\x6f\x75\x74\x70\x75\x74\x0a\x09\x2d\x64\x09\x44\x65\x63" \
-"\x6f\x64\x65\x20\x64\x61\x74\x61\x00\x46\x49\x4c\x45\x20\x5b\x53" \
-"\x55\x46\x46\x49\x58\x5d\x0a\x0a\x53\x74\x72\x69\x70\x20\x64\x69" \
-"\x72\x65\x63\x74\x6f\x72\x79\x20\x70\x61\x74\x68\x20\x61\x6e\x64" \
-"\x20\x2e\x53\x55\x46\x46\x49\x58\x20\x66\x72\x6f\x6d\x20\x46\x49" \
-"\x4c\x45\x0a\x00\x0a\x0a\x50\x72\x69\x6e\x74\x20\x74\x68\x65\x20" \
-"\x63\x6f\x6e\x66\x69\x67\x20\x66\x69\x6c\x65\x20\x75\x73\x65\x64" \
-"\x20\x62\x79\x20\x62\x75\x73\x79\x62\x6f\x78\x20\x62\x75\x69\x6c" \
-"\x64\x00\x5b\x42\x4c\x4f\x43\x4b\x44\x45\x56\x5d\x2e\x2e\x2e\x0a" \
-"\x0a\x50\x72\x69\x6e\x74\x20\x55\x55\x49\x44\x73\x20\x6f\x66\x20" \
-"\x61\x6c\x6c\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x00" \
-"\x4f\x50\x54\x49\x4f\x4e\x20\x42\x4c\x4f\x43\x4b\x44\x45\x56\x0a" \
-"\x0a\x09\x2d\x2d\x73\x65\x74\x72\x6f\x09\x09\x53\x65\x74\x20\x72" \
-"\x6f\x0a\x09\x2d\x2d\x73\x65\x74\x72\x77\x09\x09\x53\x65\x74\x20" \
-"\x72\x77\x0a\x09\x2d\x2d\x67\x65\x74\x72\x6f\x09\x09\x47\x65\x74" \
-"\x20\x72\x6f\x0a\x09\x2d\x2d\x67\x65\x74\x73\x73\x09\x09\x47\x65" \
-"\x74\x20\x73\x65\x63\x74\x6f\x72\x20\x73\x69\x7a\x65\x0a\x09\x2d" \
-"\x2d\x67\x65\x74\x62\x73\x7a\x09\x47\x65\x74\x20\x62\x6c\x6f\x63" \
-"\x6b\x20\x73\x69\x7a\x65\x0a\x09\x2d\x2d\x73\x65\x74\x62\x73\x7a" \
-"\x20\x42\x59\x54\x45\x53\x09\x53\x65\x74\x20\x62\x6c\x6f\x63\x6b" \
-"\x20\x73\x69\x7a\x65\x0a\x09\x2d\x2d\x67\x65\x74\x73\x7a\x09\x09" \
-"\x47\x65\x74\x20\x64\x65\x76\x69\x63\x65\x20\x73\x69\x7a\x65\x20" \
-"\x69\x6e\x20\x35\x31\x32\x2d\x62\x79\x74\x65\x20\x73\x65\x63\x74" \
-"\x6f\x72\x73\x0a\x09\x2d\x2d\x67\x65\x74\x73\x69\x7a\x65\x36\x34" \
-"\x09\x47\x65\x74\x20\x64\x65\x76\x69\x63\x65\x20\x73\x69\x7a\x65" \
-"\x20\x69\x6e\x20\x62\x79\x74\x65\x73\x0a\x09\x2d\x2d\x66\x6c\x75" \
-"\x73\x68\x62\x75\x66\x73\x09\x46\x6c\x75\x73\x68\x20\x62\x75\x66" \
-"\x66\x65\x72\x73\x0a\x09\x2d\x2d\x72\x65\x72\x65\x61\x64\x70\x74" \
-"\x09\x52\x65\x72\x65\x61\x64\x20\x70\x61\x72\x74\x69\x74\x69\x6f" \
-"\x6e\x20\x74\x61\x62\x6c\x65\x00\x43\x4f\x4d\x4d\x41\x4e\x44\x20" \
-"\x5b\x42\x52\x49\x44\x47\x45\x20\x5b\x49\x4e\x54\x45\x52\x46\x41" \
-"\x43\x45\x5d\x5d\x0a\x0a\x4d\x61\x6e\x61\x67\x65\x20\x65\x74\x68" \
-"\x65\x72\x6e\x65\x74\x20\x62\x72\x69\x64\x67\x65\x73\x0a\x0a\x43" \
-"\x6f\x6d\x6d\x61\x6e\x64\x73\x3a\x0a\x09\x73\x68\x6f\x77\x09\x09" \
-"\x09\x53\x68\x6f\x77\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20" \
-"\x62\x72\x69\x64\x67\x65\x73\x0a\x09\x61\x64\x64\x62\x72\x20\x42" \
-"\x52\x49\x44\x47\x45\x09\x09\x43\x72\x65\x61\x74\x65\x20\x42\x52" \
-"\x49\x44\x47\x45\x0a\x09\x64\x65\x6c\x62\x72\x20\x42\x52\x49\x44" \
-"\x47\x45\x09\x09\x44\x65\x6c\x65\x74\x65\x20\x42\x52\x49\x44\x47" \
-"\x45\x0a\x09\x61\x64\x64\x69\x66\x20\x42\x52\x49\x44\x47\x45\x20" \
-"\x49\x46\x41\x43\x45\x09\x41\x64\x64\x20\x49\x46\x41\x43\x45\x20" \
-"\x74\x6f\x20\x42\x52\x49\x44\x47\x45\x0a\x09\x64\x65\x6c\x69\x66" \
-"\x20\x42\x52\x49\x44\x47\x45\x20\x49\x46\x41\x43\x45\x09\x44\x65" \
-"\x6c\x65\x74\x65\x20\x49\x46\x41\x43\x45\x20\x66\x72\x6f\x6d\x20" \
-"\x42\x52\x49\x44\x47\x45\x0a\x09\x73\x65\x74\x61\x67\x65\x69\x6e" \
-"\x67\x20\x42\x52\x49\x44\x47\x45\x20\x54\x49\x4d\x45\x09\x09\x53" \
-"\x65\x74\x20\x61\x67\x65\x69\x6e\x67\x20\x74\x69\x6d\x65\x0a\x09" \
-"\x73\x65\x74\x66\x64\x20\x42\x52\x49\x44\x47\x45\x20\x54\x49\x4d" \
-"\x45\x09\x09\x53\x65\x74\x20\x62\x72\x69\x64\x67\x65\x20\x66\x6f" \
-"\x72\x77\x61\x72\x64\x20\x64\x65\x6c\x61\x79\x0a\x09\x73\x65\x74" \
-"\x68\x65\x6c\x6c\x6f\x20\x42\x52\x49\x44\x47\x45\x20\x54\x49\x4d" \
-"\x45\x09\x09\x53\x65\x74\x20\x68\x65\x6c\x6c\x6f\x20\x74\x69\x6d" \
-"\x65\x0a\x09\x73\x65\x74\x6d\x61\x78\x61\x67\x65\x20\x42\x52\x49" \
-"\x44\x47\x45\x20\x54\x49\x4d\x45\x09\x09\x53\x65\x74\x20\x6d\x61" \
-"\x78\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x61\x67\x65\x0a\x09\x73" \
-"\x65\x74\x70\x61\x74\x68\x63\x6f\x73\x74\x20\x42\x52\x49\x44\x47" \
-"\x45\x20\x43\x4f\x53\x54\x09\x09\x53\x65\x74\x20\x70\x61\x74\x68" \
-"\x20\x63\x6f\x73\x74\x0a\x09\x73\x65\x74\x70\x6f\x72\x74\x70\x72" \
-"\x69\x6f\x20\x42\x52\x49\x44\x47\x45\x20\x50\x52\x49\x4f\x09\x09" \
-"\x53\x65\x74\x20\x70\x6f\x72\x74\x20\x70\x72\x69\x6f\x72\x69\x74" \
-"\x79\x0a\x09\x73\x65\x74\x62\x72\x69\x64\x67\x65\x70\x72\x69\x6f" \
-"\x20\x42\x52\x49\x44\x47\x45\x20\x50\x52\x49\x4f\x09\x53\x65\x74" \
-"\x20\x62\x72\x69\x64\x67\x65\x20\x70\x72\x69\x6f\x72\x69\x74\x79" \
-"\x0a\x09\x73\x74\x70\x20\x42\x52\x49\x44\x47\x45\x20\x5b\x31\x2f" \
-"\x79\x65\x73\x2f\x6f\x6e\x7c\x30\x2f\x6e\x6f\x2f\x6f\x66\x66\x5d" \
-"\x09\x53\x54\x50\x20\x6f\x6e\x2f\x6f\x66\x66\x00\x5b\x2d\x63\x66" \
-"\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65\x63" \
-"\x6f\x6d\x70\x72\x65\x73\x73\x20\x46\x49\x4c\x45\x73\x20\x28\x6f" \
-"\x72\x20\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d\x63\x09\x57\x72" \
-"\x69\x74\x65\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d" \
-"\x66\x09\x46\x6f\x72\x63\x65\x00\x46\x49\x4c\x45\x0a\x0a\x44\x65" \
-"\x63\x6f\x6d\x70\x72\x65\x73\x73\x20\x74\x6f\x20\x73\x74\x64\x6f" \
-"\x75\x74\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f\x6d\x70\x72\x65\x73\x73" \
-"\x20\x46\x49\x4c\x45\x73\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e" \
-"\x29\x20\x77\x69\x74\x68\x20\x62\x7a\x69\x70\x32\x20\x61\x6c\x67" \
-"\x6f\x72\x69\x74\x68\x6d\x0a\x0a\x09\x2d\x31\x2e\x2e\x39\x09\x43" \
-"\x6f\x6d\x70\x72\x65\x73\x73\x69\x6f\x6e\x20\x6c\x65\x76\x65\x6c" \
-"\x0a\x09\x2d\x64\x09\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x0a" \
-"\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20\x74\x6f\x20\x73\x74\x64" \
-"\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x00\x5b\x2d" \
-"\x6a\x79\x5d\x20\x5b\x5b\x4d\x4f\x4e\x54\x48\x5d\x20\x59\x45\x41" \
-"\x52\x5d\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x61\x20\x63\x61" \
-"\x6c\x65\x6e\x64\x61\x72\x0a\x0a\x09\x2d\x6a\x09\x55\x73\x65\x20" \
-"\x6a\x75\x6c\x69\x61\x6e\x20\x64\x61\x74\x65\x73\x0a\x09\x2d\x79" \
-"\x09\x44\x69\x73\x70\x6c\x61\x79\x20\x74\x68\x65\x20\x65\x6e\x74" \
-"\x69\x72\x65\x20\x79\x65\x61\x72\x00\x5b\x46\x49\x4c\x45\x5d\x2e" \
-"\x2e\x2e\x0a\x0a\x43\x6f\x6e\x63\x61\x74\x65\x6e\x61\x74\x65\x20" \
-"\x46\x49\x4c\x45\x73\x20\x61\x6e\x64\x20\x70\x72\x69\x6e\x74\x20" \
-"\x74\x68\x65\x6d\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x00\x5b" \
-"\x2d\x65\x74\x76\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a" \
-"\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x6e\x6f\x6e\x70\x72\x69\x6e" \
-"\x74\x69\x6e\x67\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20" \
-"\x61\x73\x20\x5e\x78\x20\x6f\x72\x20\x4d\x2d\x78\x0a\x0a\x09\x2d" \
-"\x65\x09\x45\x6e\x64\x20\x65\x61\x63\x68\x20\x6c\x69\x6e\x65\x20" \
-"\x77\x69\x74\x68\x20\x24\x0a\x09\x2d\x74\x09\x53\x68\x6f\x77\x20" \
-"\x74\x61\x62\x73\x20\x61\x73\x20\x5e\x49\x0a\x09\x2d\x76\x09\x44" \
-"\x6f\x6e\x27\x74\x20\x75\x73\x65\x20\x5e\x78\x20\x6f\x72\x20\x4d" \
-"\x2d\x78\x20\x65\x73\x63\x61\x70\x65\x73\x00\x5b\x2d\x52\x5d\x20" \
-"\x5b\x2d\x2b\x3d\x41\x61\x63\x44\x64\x69\x6a\x73\x53\x74\x54\x75" \
-"\x5d\x20\x5b\x2d\x76\x20\x56\x45\x52\x53\x49\x4f\x4e\x5d\x20\x5b" \
-"\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x68\x61\x6e\x67\x65" \
-"\x20\x66\x69\x6c\x65\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73" \
-"\x20\x6f\x6e\x20\x61\x6e\x20\x65\x78\x74\x32\x20\x66\x73\x0a\x0a" \
-"\x4d\x6f\x64\x69\x66\x69\x65\x72\x73\x3a\x0a\x09\x2d\x09\x52\x65" \
-"\x6d\x6f\x76\x65\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x0a" \
-"\x09\x2b\x09\x41\x64\x64\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65" \
-"\x73\x0a\x09\x3d\x09\x53\x65\x74\x20\x61\x74\x74\x72\x69\x62\x75" \
-"\x74\x65\x73\x0a\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73\x3a\x0a" \
-"\x09\x41\x09\x44\x6f\x6e\x27\x74\x20\x74\x72\x61\x63\x6b\x20\x61" \
-"\x74\x69\x6d\x65\x0a\x09\x61\x09\x41\x70\x70\x65\x6e\x64\x20\x6d" \
-"\x6f\x64\x65\x20\x6f\x6e\x6c\x79\x0a\x09\x63\x09\x45\x6e\x61\x62" \
-"\x6c\x65\x20\x63\x6f\x6d\x70\x72\x65\x73\x73\x0a\x09\x44\x09\x57" \
-"\x72\x69\x74\x65\x20\x64\x69\x72\x20\x63\x6f\x6e\x74\x65\x6e\x74" \
-"\x73\x20\x73\x79\x6e\x63\x68\x72\x6f\x6e\x6f\x75\x73\x6c\x79\x0a" \
-"\x09\x64\x09\x44\x6f\x6e\x27\x74\x20\x62\x61\x63\x6b\x75\x70\x20" \
-"\x77\x69\x74\x68\x20\x64\x75\x6d\x70\x0a\x09\x69\x09\x43\x61\x6e" \
-"\x6e\x6f\x74\x20\x62\x65\x20\x6d\x6f\x64\x69\x66\x69\x65\x64\x20" \
-"\x28\x69\x6d\x6d\x75\x74\x61\x62\x6c\x65\x29\x0a\x09\x6a\x09\x57" \
-"\x72\x69\x74\x65\x20\x61\x6c\x6c\x20\x64\x61\x74\x61\x20\x74\x6f" \
-"\x20\x6a\x6f\x75\x72\x6e\x61\x6c\x20\x66\x69\x72\x73\x74\x0a\x09" \
-"\x73\x09\x5a\x65\x72\x6f\x20\x64\x69\x73\x6b\x20\x73\x74\x6f\x72" \
-"\x61\x67\x65\x20\x77\x68\x65\x6e\x20\x64\x65\x6c\x65\x74\x65\x64" \
-"\x0a\x09\x53\x09\x57\x72\x69\x74\x65\x20\x66\x69\x6c\x65\x20\x63" \
-"\x6f\x6e\x74\x65\x6e\x74\x73\x20\x73\x79\x6e\x63\x68\x72\x6f\x6e" \
-"\x6f\x75\x73\x6c\x79\x0a\x09\x74\x09\x44\x69\x73\x61\x62\x6c\x65" \
-"\x20\x74\x61\x69\x6c\x2d\x6d\x65\x72\x67\x69\x6e\x67\x20\x6f\x66" \
-"\x20\x70\x61\x72\x74\x69\x61\x6c\x20\x62\x6c\x6f\x63\x6b\x73\x20" \
-"\x77\x69\x74\x68\x20\x6f\x74\x68\x65\x72\x20\x66\x69\x6c\x65\x73" \
-"\x0a\x09\x75\x09\x41\x6c\x6c\x6f\x77\x20\x66\x69\x6c\x65\x20\x74" \
-"\x6f\x20\x62\x65\x20\x75\x6e\x64\x65\x6c\x65\x74\x65\x64\x0a\x09" \
-"\x2d\x52\x09\x52\x65\x63\x75\x72\x73\x65\x0a\x09\x2d\x76\x09\x53" \
-"\x65\x74\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x27\x73\x20\x76\x65" \
-"\x72\x73\x69\x6f\x6e\x2f\x67\x65\x6e\x65\x72\x61\x74\x69\x6f\x6e" \
-"\x20\x6e\x75\x6d\x62\x65\x72\x00\x5b\x2d\x52\x68\x4c\x48\x50\x5d" \
-"\x2e\x2e\x2e\x20\x47\x52\x4f\x55\x50\x20\x46\x49\x4c\x45\x2e\x2e" \
-"\x2e\x0a\x0a\x43\x68\x61\x6e\x67\x65\x20\x74\x68\x65\x20\x67\x72" \
-"\x6f\x75\x70\x20\x6d\x65\x6d\x62\x65\x72\x73\x68\x69\x70\x20\x6f" \
-"\x66\x20\x65\x61\x63\x68\x20\x46\x49\x4c\x45\x20\x74\x6f\x20\x47" \
-"\x52\x4f\x55\x50\x0a\x0a\x09\x2d\x52\x09\x52\x65\x63\x75\x72\x73" \
-"\x65\x0a\x09\x2d\x68\x09\x41\x66\x66\x65\x63\x74\x20\x73\x79\x6d" \
-"\x6c\x69\x6e\x6b\x73\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66" \
-"\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x20\x74\x61\x72\x67\x65\x74\x73" \
-"\x0a\x09\x2d\x4c\x09\x54\x72\x61\x76\x65\x72\x73\x65\x20\x61\x6c" \
-"\x6c\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x74\x6f\x20\x64\x69" \
-"\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x09\x2d\x48\x09\x54\x72" \
-"\x61\x76\x65\x72\x73\x65\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20" \
-"\x6f\x6e\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x20" \
-"\x6f\x6e\x6c\x79\x0a\x09\x2d\x50\x09\x44\x6f\x6e\x27\x74\x20\x74" \
-"\x72\x61\x76\x65\x72\x73\x65\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73" \
-"\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x00\x5b\x2d\x52\x5d\x20" \
-"\x4d\x4f\x44\x45\x5b\x2c\x4d\x4f\x44\x45\x5d\x2e\x2e\x2e\x20\x46" \
-"\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x45\x61\x63\x68\x20\x4d\x4f\x44" \
-"\x45\x20\x69\x73\x20\x6f\x6e\x65\x20\x6f\x72\x20\x6d\x6f\x72\x65" \
-"\x20\x6f\x66\x20\x74\x68\x65\x20\x6c\x65\x74\x74\x65\x72\x73\x20" \
-"\x75\x67\x6f\x61\x2c\x20\x6f\x6e\x65\x20\x6f\x66\x20\x74\x68\x65" \
-"\x0a\x73\x79\x6d\x62\x6f\x6c\x73\x20\x2b\x2d\x3d\x20\x61\x6e\x64" \
-"\x20\x6f\x6e\x65\x20\x6f\x72\x20\x6d\x6f\x72\x65\x20\x6f\x66\x20" \
-"\x74\x68\x65\x20\x6c\x65\x74\x74\x65\x72\x73\x20\x72\x77\x78\x73" \
-"\x74\x0a\x0a\x09\x2d\x52\x09\x52\x65\x63\x75\x72\x73\x65\x00\x5b" \
-"\x2d\x52\x68\x4c\x48\x50\x5d\x2e\x2e\x2e\x20\x4f\x57\x4e\x45\x52" \
-"\x5b\x3c\x2e\x7c\x3a\x3e\x5b\x47\x52\x4f\x55\x50\x5d\x5d\x20\x46" \
-"\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x43\x68\x61\x6e\x67\x65\x20\x74" \
-"\x68\x65\x20\x6f\x77\x6e\x65\x72\x20\x61\x6e\x64\x2f\x6f\x72\x20" \
-"\x67\x72\x6f\x75\x70\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x46\x49" \
-"\x4c\x45\x20\x74\x6f\x20\x4f\x57\x4e\x45\x52\x20\x61\x6e\x64\x2f" \
-"\x6f\x72\x20\x47\x52\x4f\x55\x50\x0a\x0a\x09\x2d\x52\x09\x52\x65" \
-"\x63\x75\x72\x73\x65\x0a\x09\x2d\x68\x09\x41\x66\x66\x65\x63\x74" \
-"\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x69\x6e\x73\x74\x65\x61" \
-"\x64\x20\x6f\x66\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x20\x74\x61\x72" \
-"\x67\x65\x74\x73\x0a\x09\x2d\x4c\x09\x54\x72\x61\x76\x65\x72\x73" \
-"\x65\x20\x61\x6c\x6c\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x74" \
-"\x6f\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x09\x2d" \
-"\x48\x09\x54\x72\x61\x76\x65\x72\x73\x65\x20\x73\x79\x6d\x6c\x69" \
-"\x6e\x6b\x73\x20\x6f\x6e\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c" \
-"\x69\x6e\x65\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x50\x09\x44\x6f\x6e" \
-"\x27\x74\x20\x74\x72\x61\x76\x65\x72\x73\x65\x20\x73\x79\x6d\x6c" \
-"\x69\x6e\x6b\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x00\x4e" \
-"\x45\x57\x52\x4f\x4f\x54\x20\x5b\x50\x52\x4f\x47\x20\x41\x52\x47" \
-"\x53\x5d\x0a\x0a\x52\x75\x6e\x20\x50\x52\x4f\x47\x20\x77\x69\x74" \
-"\x68\x20\x72\x6f\x6f\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79" \
-"\x20\x73\x65\x74\x20\x74\x6f\x20\x4e\x45\x57\x52\x4f\x4f\x54\x00" \
-"\x0a\x0a\x43\x6c\x65\x61\x72\x20\x73\x63\x72\x65\x65\x6e\x00\x5b" \
-"\x2d\x6c\x5d\x20\x5b\x2d\x73\x5d\x20\x46\x49\x4c\x45\x31\x20\x5b" \
-"\x46\x49\x4c\x45\x32\x5d\x0a\x0a\x43\x6f\x6d\x70\x61\x72\x65\x20" \
-"\x46\x49\x4c\x45\x31\x20\x77\x69\x74\x68\x20\x46\x49\x4c\x45\x32" \
-"\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d\x6c" \
-"\x09\x57\x72\x69\x74\x65\x20\x74\x68\x65\x20\x62\x79\x74\x65\x20" \
-"\x6e\x75\x6d\x62\x65\x72\x73\x20\x28\x64\x65\x63\x69\x6d\x61\x6c" \
-"\x29\x20\x61\x6e\x64\x20\x76\x61\x6c\x75\x65\x73\x20\x28\x6f\x63" \
-"\x74\x61\x6c\x29\x0a\x09\x09\x66\x6f\x72\x20\x61\x6c\x6c\x20\x64" \
-"\x69\x66\x66\x65\x72\x69\x6e\x67\x20\x62\x79\x74\x65\x73\x0a\x09" \
-"\x2d\x73\x09\x51\x75\x69\x65\x74\x00\x5b\x2d\x31\x32\x33\x5d\x20" \
-"\x46\x49\x4c\x45\x31\x20\x46\x49\x4c\x45\x32\x0a\x0a\x43\x6f\x6d" \
-"\x70\x61\x72\x65\x20\x46\x49\x4c\x45\x31\x20\x77\x69\x74\x68\x20" \
-"\x46\x49\x4c\x45\x32\x0a\x0a\x09\x2d\x31\x09\x53\x75\x70\x70\x72" \
-"\x65\x73\x73\x20\x6c\x69\x6e\x65\x73\x20\x75\x6e\x69\x71\x75\x65" \
-"\x20\x74\x6f\x20\x46\x49\x4c\x45\x31\x0a\x09\x2d\x32\x09\x53\x75" \
-"\x70\x70\x72\x65\x73\x73\x20\x6c\x69\x6e\x65\x73\x20\x75\x6e\x69" \
-"\x71\x75\x65\x20\x74\x6f\x20\x46\x49\x4c\x45\x32\x0a\x09\x2d\x33" \
-"\x09\x53\x75\x70\x70\x72\x65\x73\x73\x20\x6c\x69\x6e\x65\x73\x20" \
-"\x63\x6f\x6d\x6d\x6f\x6e\x20\x74\x6f\x20\x62\x6f\x74\x68\x20\x66" \
-"\x69\x6c\x65\x73\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x53" \
-"\x4f\x55\x52\x43\x45\x2e\x2e\x2e\x20\x44\x45\x53\x54\x0a\x0a\x43" \
-"\x6f\x70\x79\x20\x53\x4f\x55\x52\x43\x45\x28\x73\x29\x20\x74\x6f" \
-"\x20\x44\x45\x53\x54\x0a\x0a\x09\x2d\x61\x09\x53\x61\x6d\x65\x20" \
-"\x61\x73\x20\x2d\x64\x70\x52\x0a\x09\x2d\x52\x2c\x2d\x72\x09\x52" \
-"\x65\x63\x75\x72\x73\x65\x0a\x09\x2d\x64\x2c\x2d\x50\x09\x50\x72" \
-"\x65\x73\x65\x72\x76\x65\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20" \
-"\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x69\x66\x20\x2d\x52\x29\x0a" \
-"\x09\x2d\x4c\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x61\x6c\x6c\x20\x73" \
-"\x79\x6d\x6c\x69\x6e\x6b\x73\x0a\x09\x2d\x48\x09\x46\x6f\x6c\x6c" \
-"\x6f\x77\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x6f\x6e\x20\x63" \
-"\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x0a\x09\x2d\x70\x09" \
-"\x50\x72\x65\x73\x65\x72\x76\x65\x20\x66\x69\x6c\x65\x20\x61\x74" \
-"\x74\x72\x69\x62\x75\x74\x65\x73\x20\x69\x66\x20\x70\x6f\x73\x73" \
-"\x69\x62\x6c\x65\x0a\x09\x2d\x66\x09\x4f\x76\x65\x72\x77\x72\x69" \
-"\x74\x65\x0a\x09\x2d\x69\x09\x50\x72\x6f\x6d\x70\x74\x20\x62\x65" \
-"\x66\x6f\x72\x65\x20\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x0a\x09" \
-"\x2d\x6c\x2c\x2d\x73\x09\x43\x72\x65\x61\x74\x65\x20\x28\x73\x79" \
-"\x6d\x29\x6c\x69\x6e\x6b\x73\x00\x5b\x2d\x64\x6d\x76\x75\x5d\x20" \
-"\x5b\x2d\x46\x20\x46\x49\x4c\x45\x5d\x20\x5b\x2d\x48\x20\x6e\x65" \
-"\x77\x63\x5d\x20\x5b\x2d\x74\x69\x6f\x5d\x20\x5b\x2d\x70\x20\x44" \
-"\x49\x52\x5d\x20\x5b\x45\x58\x54\x52\x5f\x46\x49\x4c\x45\x5d\x2e" \
-"\x2e\x2e\x0a\x0a\x45\x78\x74\x72\x61\x63\x74\x20\x6f\x72\x20\x6c" \
-"\x69\x73\x74\x20\x66\x69\x6c\x65\x73\x20\x66\x72\x6f\x6d\x20\x61" \
-"\x20\x63\x70\x69\x6f\x20\x61\x72\x63\x68\x69\x76\x65\x2c\x20\x6f" \
-"\x72\x0a\x63\x72\x65\x61\x74\x65\x20\x61\x6e\x20\x61\x72\x63\x68" \
-"\x69\x76\x65\x20\x28\x2d\x6f\x29\x20\x6f\x72\x20\x63\x6f\x70\x79" \
-"\x20\x66\x69\x6c\x65\x73\x20\x28\x2d\x70\x29\x20\x75\x73\x69\x6e" \
-"\x67\x20\x66\x69\x6c\x65\x20\x6c\x69\x73\x74\x20\x6f\x6e\x20\x73" \
-"\x74\x64\x69\x6e\x0a\x0a\x4d\x61\x69\x6e\x20\x6f\x70\x65\x72\x61" \
-"\x74\x69\x6f\x6e\x20\x6d\x6f\x64\x65\x3a\x0a\x09\x2d\x74\x09\x4c" \
-"\x69\x73\x74\x0a\x09\x2d\x69\x09\x45\x78\x74\x72\x61\x63\x74\x20" \
-"\x45\x58\x54\x52\x5f\x46\x49\x4c\x45\x73\x20\x28\x6f\x72\x20\x61" \
-"\x6c\x6c\x29\x0a\x09\x2d\x6f\x09\x43\x72\x65\x61\x74\x65\x20\x28" \
-"\x72\x65\x71\x75\x69\x72\x65\x73\x20\x2d\x48\x20\x6e\x65\x77\x63" \
-"\x29\x0a\x09\x2d\x70\x20\x44\x49\x52\x09\x43\x6f\x70\x79\x20\x66" \
-"\x69\x6c\x65\x73\x20\x74\x6f\x20\x44\x49\x52\x0a\x09\x2d\x64\x09" \
-"\x4d\x61\x6b\x65\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x09\x2d\x6d\x09\x50\x72\x65" \
-"\x73\x65\x72\x76\x65\x20\x6d\x74\x69\x6d\x65\x0a\x09\x2d\x76\x09" \
-"\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x75\x09\x4f\x76\x65\x72" \
-"\x77\x72\x69\x74\x65\x0a\x09\x2d\x46\x20\x46\x49\x4c\x45\x09\x49" \
-"\x6e\x70\x75\x74\x20\x28\x2d\x74\x2c\x2d\x69\x2c\x2d\x70\x29\x20" \
-"\x6f\x72\x20\x6f\x75\x74\x70\x75\x74\x20\x28\x2d\x6f\x29\x20\x66" \
-"\x69\x6c\x65\x0a\x09\x2d\x48\x20\x6e\x65\x77\x63\x09\x41\x72\x63" \
-"\x68\x69\x76\x65\x20\x66\x6f\x72\x6d\x61\x74\x00\x2d\x66\x62\x53" \
-"\x20\x2d\x6c\x20\x4e\x20\x2d\x4c\x20\x4c\x4f\x47\x46\x49\x4c\x45" \
-"\x20\x2d\x63\x20\x44\x49\x52\x0a\x0a\x09\x2d\x66\x09\x46\x6f\x72" \
-"\x65\x67\x72\x6f\x75\x6e\x64\x0a\x09\x2d\x62\x09\x42\x61\x63\x6b" \
-"\x67\x72\x6f\x75\x6e\x64\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29" \
-"\x0a\x09\x2d\x53\x09\x4c\x6f\x67\x20\x74\x6f\x20\x73\x79\x73\x6c" \
-"\x6f\x67\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x6c" \
-"\x09\x53\x65\x74\x20\x6c\x6f\x67\x20\x6c\x65\x76\x65\x6c\x2e\x20" \
-"\x30\x20\x69\x73\x20\x74\x68\x65\x20\x6d\x6f\x73\x74\x20\x76\x65" \
-"\x72\x62\x6f\x73\x65\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x38" \
-"\x0a\x09\x2d\x4c\x09\x4c\x6f\x67\x20\x74\x6f\x20\x66\x69\x6c\x65" \
-"\x0a\x09\x2d\x63\x09\x57\x6f\x72\x6b\x69\x6e\x67\x20\x64\x69\x72" \
-"\x00\x5b\x2d\x63\x20\x44\x49\x52\x5d\x20\x5b\x2d\x75\x20\x55\x53" \
-"\x45\x52\x5d\x20\x5b\x2d\x6c\x65\x72\x5d\x7c\x5b\x46\x49\x4c\x45" \
-"\x5d\x0a\x0a\x09\x2d\x63\x09\x43\x72\x6f\x6e\x74\x61\x62\x20\x64" \
-"\x69\x72\x65\x63\x74\x6f\x72\x79\x0a\x09\x2d\x75\x09\x55\x73\x65" \
-"\x72\x0a\x09\x2d\x6c\x09\x4c\x69\x73\x74\x20\x63\x72\x6f\x6e\x74" \
-"\x61\x62\x0a\x09\x2d\x65\x09\x45\x64\x69\x74\x20\x63\x72\x6f\x6e" \
-"\x74\x61\x62\x0a\x09\x2d\x72\x09\x44\x65\x6c\x65\x74\x65\x20\x63" \
-"\x72\x6f\x6e\x74\x61\x62\x0a\x09\x46\x49\x4c\x45\x09\x52\x65\x70" \
-"\x6c\x61\x63\x65\x20\x63\x72\x6f\x6e\x74\x61\x62\x20\x62\x79\x20" \
-"\x46\x49\x4c\x45\x20\x28\x27\x2d\x27\x3a\x20\x73\x74\x64\x69\x6e" \
-"\x29\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x46\x49\x4c" \
-"\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x73\x65\x6c" \
-"\x65\x63\x74\x65\x64\x20\x66\x69\x65\x6c\x64\x73\x20\x66\x72\x6f" \
-"\x6d\x20\x65\x61\x63\x68\x20\x69\x6e\x70\x75\x74\x20\x46\x49\x4c" \
-"\x45\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x0a\x09\x2d\x62" \
-"\x20\x4c\x49\x53\x54\x09\x4f\x75\x74\x70\x75\x74\x20\x6f\x6e\x6c" \
-"\x79\x20\x62\x79\x74\x65\x73\x20\x66\x72\x6f\x6d\x20\x4c\x49\x53" \
-"\x54\x0a\x09\x2d\x63\x20\x4c\x49\x53\x54\x09\x4f\x75\x74\x70\x75" \
-"\x74\x20\x6f\x6e\x6c\x79\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72" \
-"\x73\x20\x66\x72\x6f\x6d\x20\x4c\x49\x53\x54\x0a\x09\x2d\x64\x20" \
-"\x43\x48\x41\x52\x09\x55\x73\x65\x20\x43\x48\x41\x52\x20\x69\x6e" \
-"\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x74\x61\x62\x20\x61\x73\x20" \
-"\x74\x68\x65\x20\x66\x69\x65\x6c\x64\x20\x64\x65\x6c\x69\x6d\x69" \
-"\x74\x65\x72\x0a\x09\x2d\x73\x09\x4f\x75\x74\x70\x75\x74\x20\x6f" \
-"\x6e\x6c\x79\x20\x74\x68\x65\x20\x6c\x69\x6e\x65\x73\x20\x63\x6f" \
-"\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x64\x65\x6c\x69\x6d\x69\x74" \
-"\x65\x72\x0a\x09\x2d\x66\x20\x4e\x09\x50\x72\x69\x6e\x74\x20\x6f" \
-"\x6e\x6c\x79\x20\x74\x68\x65\x73\x65\x20\x66\x69\x65\x6c\x64\x73" \
-"\x0a\x09\x2d\x6e\x09\x49\x67\x6e\x6f\x72\x65\x64\x00\x5b\x4f\x50" \
-"\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x2b\x46\x4d\x54\x5d\x20\x5b\x54" \
-"\x49\x4d\x45\x5d\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x74\x69" \
-"\x6d\x65\x20\x28\x75\x73\x69\x6e\x67\x20\x2b\x46\x4d\x54\x29\x2c" \
-"\x20\x6f\x72\x20\x73\x65\x74\x20\x74\x69\x6d\x65\x0a\x0a\x09\x5b" \
-"\x2d\x73\x2c\x2d\x2d\x73\x65\x74\x5d\x20\x54\x49\x4d\x45\x09\x53" \
-"\x65\x74\x20\x74\x69\x6d\x65\x20\x74\x6f\x20\x54\x49\x4d\x45\x0a" \
-"\x09\x2d\x75\x2c\x2d\x2d\x75\x74\x63\x09\x57\x6f\x72\x6b\x20\x69" \
-"\x6e\x20\x55\x54\x43\x20\x28\x64\x6f\x6e\x27\x74\x20\x63\x6f\x6e" \
-"\x76\x65\x72\x74\x20\x74\x6f\x20\x6c\x6f\x63\x61\x6c\x20\x74\x69" \
-"\x6d\x65\x29\x0a\x09\x2d\x52\x2c\x2d\x2d\x72\x66\x63\x2d\x32\x38" \
-"\x32\x32\x09\x4f\x75\x74\x70\x75\x74\x20\x52\x46\x43\x2d\x32\x38" \
-"\x32\x32\x20\x63\x6f\x6d\x70\x6c\x69\x61\x6e\x74\x20\x64\x61\x74" \
-"\x65\x20\x73\x74\x72\x69\x6e\x67\x0a\x09\x2d\x49\x5b\x53\x50\x45" \
-"\x43\x5d\x09\x4f\x75\x74\x70\x75\x74\x20\x49\x53\x4f\x2d\x38\x36" \
-"\x30\x31\x20\x63\x6f\x6d\x70\x6c\x69\x61\x6e\x74\x20\x64\x61\x74" \
-"\x65\x20\x73\x74\x72\x69\x6e\x67\x0a\x09\x09\x09\x53\x50\x45\x43" \
-"\x3d\x27\x64\x61\x74\x65\x27\x20\x28\x64\x65\x66\x61\x75\x6c\x74" \
-"\x29\x20\x66\x6f\x72\x20\x64\x61\x74\x65\x20\x6f\x6e\x6c\x79\x2c" \
-"\x0a\x09\x09\x09\x27\x68\x6f\x75\x72\x73\x27\x2c\x20\x27\x6d\x69" \
-"\x6e\x75\x74\x65\x73\x27\x2c\x20\x6f\x72\x20\x27\x73\x65\x63\x6f" \
-"\x6e\x64\x73\x27\x20\x66\x6f\x72\x20\x64\x61\x74\x65\x20\x61\x6e" \
-"\x64\x0a\x09\x09\x09\x74\x69\x6d\x65\x20\x74\x6f\x20\x74\x68\x65" \
-"\x20\x69\x6e\x64\x69\x63\x61\x74\x65\x64\x20\x70\x72\x65\x63\x69" \
-"\x73\x69\x6f\x6e\x0a\x09\x2d\x72\x2c\x2d\x2d\x72\x65\x66\x65\x72" \
-"\x65\x6e\x63\x65\x20\x46\x49\x4c\x45\x09\x44\x69\x73\x70\x6c\x61" \
-"\x79\x20\x6c\x61\x73\x74\x20\x6d\x6f\x64\x69\x66\x69\x63\x61\x74" \
-"\x69\x6f\x6e\x20\x74\x69\x6d\x65\x20\x6f\x66\x20\x46\x49\x4c\x45" \
-"\x0a\x09\x2d\x64\x2c\x2d\x2d\x64\x61\x74\x65\x20\x54\x49\x4d\x45" \
-"\x09\x44\x69\x73\x70\x6c\x61\x79\x20\x54\x49\x4d\x45\x2c\x20\x6e" \
-"\x6f\x74\x20\x27\x6e\x6f\x77\x27\x0a\x09\x2d\x44\x20\x46\x4d\x54" \
-"\x09\x09\x55\x73\x65\x20\x46\x4d\x54\x20\x66\x6f\x72\x20\x2d\x64" \
-"\x20\x54\x49\x4d\x45\x20\x63\x6f\x6e\x76\x65\x72\x73\x69\x6f\x6e" \
-"\x0a\x0a\x52\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\x20\x54\x49\x4d" \
-"\x45\x20\x66\x6f\x72\x6d\x61\x74\x73\x3a\x0a\x09\x68\x68\x3a\x6d" \
-"\x6d\x5b\x3a\x73\x73\x5d\x0a\x09\x5b\x59\x59\x59\x59\x2e\x5d\x4d" \
-"\x4d\x2e\x44\x44\x2d\x68\x68\x3a\x6d\x6d\x5b\x3a\x73\x73\x5d\x0a" \
-"\x09\x59\x59\x59\x59\x2d\x4d\x4d\x2d\x44\x44\x20\x68\x68\x3a\x6d" \
-"\x6d\x5b\x3a\x73\x73\x5d\x0a\x09\x5b\x5b\x5b\x5b\x5b\x59\x59\x5d" \
-"\x59\x59\x5d\x4d\x4d\x5d\x44\x44\x5d\x68\x68\x5d\x6d\x6d\x5b\x2e" \
-"\x73\x73\x5d\x0a\x09\x27\x64\x61\x74\x65\x20\x54\x49\x4d\x45\x27" \
-"\x20\x66\x6f\x72\x6d\x20\x61\x63\x63\x65\x70\x74\x73\x20\x4d\x4d" \
-"\x44\x44\x68\x68\x6d\x6d\x5b\x5b\x59\x59\x5d\x59\x59\x5d\x5b\x2e" \
-"\x73\x73\x5d\x20\x69\x6e\x73\x74\x65\x61\x64\x00\x45\x58\x50\x52" \
-"\x45\x53\x53\x49\x4f\x4e\x2e\x2e\x2e\x0a\x0a\x54\x69\x6e\x79\x20" \
-"\x52\x50\x4e\x20\x63\x61\x6c\x63\x75\x6c\x61\x74\x6f\x72\x2e\x20" \
-"\x4f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x3a\x0a\x2b\x2c\x20\x61" \
-"\x64\x64\x2c\x20\x2d\x2c\x20\x73\x75\x62\x2c\x20\x2a\x2c\x20\x6d" \
-"\x75\x6c\x2c\x20\x2f\x2c\x20\x64\x69\x76\x2c\x20\x25\x2c\x20\x6d" \
-"\x6f\x64\x2c\x20\x2a\x2a\x2c\x20\x65\x78\x70\x2c\x20\x61\x6e\x64" \
-"\x2c\x20\x6f\x72\x2c\x20\x6e\x6f\x74\x2c\x20\x78\x6f\x72\x2c\x0a" \
-"\x70\x20\x2d\x20\x70\x72\x69\x6e\x74\x20\x74\x6f\x70\x20\x6f\x66" \
-"\x20\x74\x68\x65\x20\x73\x74\x61\x63\x6b\x20\x28\x77\x69\x74\x68" \
-"\x6f\x75\x74\x20\x70\x6f\x70\x70\x69\x6e\x67\x29\x2c\x0a\x66\x20" \
-"\x2d\x20\x70\x72\x69\x6e\x74\x20\x65\x6e\x74\x69\x72\x65\x20\x73" \
-"\x74\x61\x63\x6b\x2c\x0a\x6f\x20\x2d\x20\x70\x6f\x70\x20\x74\x68" \
-"\x65\x20\x76\x61\x6c\x75\x65\x20\x61\x6e\x64\x20\x73\x65\x74\x20" \
-"\x6f\x75\x74\x70\x75\x74\x20\x72\x61\x64\x69\x78\x20\x28\x6d\x75" \
-"\x73\x74\x20\x62\x65\x20\x31\x30\x2c\x20\x31\x36\x2c\x20\x38\x20" \
-"\x6f\x72\x20\x32\x29\x2e\x0a\x45\x78\x61\x6d\x70\x6c\x65\x73\x3a" \
-"\x20\x27\x64\x63\x20\x32\x20\x32\x20\x61\x64\x64\x20\x70\x27\x20" \
-"\x2d\x3e\x20\x34\x2c\x20\x27\x64\x63\x20\x38\x20\x38\x20\x6d\x75" \
-"\x6c\x20\x32\x20\x32\x20\x2b\x20\x2f\x20\x70\x27\x20\x2d\x3e\x20" \
-"\x31\x36\x00\x5b\x69\x66\x3d\x46\x49\x4c\x45\x5d\x20\x5b\x6f\x66" \
-"\x3d\x46\x49\x4c\x45\x5d\x20\x5b\x69\x62\x73\x3d\x4e\x5d\x20\x5b" \
-"\x6f\x62\x73\x3d\x4e\x5d\x20\x5b\x62\x73\x3d\x4e\x5d\x20\x5b\x63" \
-"\x6f\x75\x6e\x74\x3d\x4e\x5d\x20\x5b\x73\x6b\x69\x70\x3d\x4e\x5d" \
-"\x0a\x09\x5b\x73\x65\x65\x6b\x3d\x4e\x5d\x20\x5b\x63\x6f\x6e\x76" \
-"\x3d\x6e\x6f\x74\x72\x75\x6e\x63\x7c\x6e\x6f\x65\x72\x72\x6f\x72" \
-"\x7c\x73\x79\x6e\x63\x7c\x66\x73\x79\x6e\x63\x5d\x0a\x0a\x43\x6f" \
-"\x70\x79\x20\x61\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x63" \
-"\x6f\x6e\x76\x65\x72\x74\x69\x6e\x67\x20\x61\x6e\x64\x20\x66\x6f" \
-"\x72\x6d\x61\x74\x74\x69\x6e\x67\x0a\x0a\x09\x69\x66\x3d\x46\x49" \
-"\x4c\x45\x09\x09\x52\x65\x61\x64\x20\x66\x72\x6f\x6d\x20\x46\x49" \
-"\x4c\x45\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x73\x74" \
-"\x64\x69\x6e\x0a\x09\x6f\x66\x3d\x46\x49\x4c\x45\x09\x09\x57\x72" \
-"\x69\x74\x65\x20\x74\x6f\x20\x46\x49\x4c\x45\x20\x69\x6e\x73\x74" \
-"\x65\x61\x64\x20\x6f\x66\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x62" \
-"\x73\x3d\x4e\x09\x09\x52\x65\x61\x64\x20\x61\x6e\x64\x20\x77\x72" \
-"\x69\x74\x65\x20\x4e\x20\x62\x79\x74\x65\x73\x20\x61\x74\x20\x61" \
-"\x20\x74\x69\x6d\x65\x0a\x09\x69\x62\x73\x3d\x4e\x09\x09\x52\x65" \
-"\x61\x64\x20\x4e\x20\x62\x79\x74\x65\x73\x20\x61\x74\x20\x61\x20" \
-"\x74\x69\x6d\x65\x0a\x09\x6f\x62\x73\x3d\x4e\x09\x09\x57\x72\x69" \
-"\x74\x65\x20\x4e\x20\x62\x79\x74\x65\x73\x20\x61\x74\x20\x61\x20" \
-"\x74\x69\x6d\x65\x0a\x09\x63\x6f\x75\x6e\x74\x3d\x4e\x09\x09\x43" \
-"\x6f\x70\x79\x20\x6f\x6e\x6c\x79\x20\x4e\x20\x69\x6e\x70\x75\x74" \
-"\x20\x62\x6c\x6f\x63\x6b\x73\x0a\x09\x73\x6b\x69\x70\x3d\x4e\x09" \
-"\x09\x53\x6b\x69\x70\x20\x4e\x20\x69\x6e\x70\x75\x74\x20\x62\x6c" \
-"\x6f\x63\x6b\x73\x0a\x09\x73\x65\x65\x6b\x3d\x4e\x09\x09\x53\x6b" \
-"\x69\x70\x20\x4e\x20\x6f\x75\x74\x70\x75\x74\x20\x62\x6c\x6f\x63" \
-"\x6b\x73\x0a\x09\x63\x6f\x6e\x76\x3d\x6e\x6f\x74\x72\x75\x6e\x63" \
-"\x09\x44\x6f\x6e\x27\x74\x20\x74\x72\x75\x6e\x63\x61\x74\x65\x20" \
-"\x6f\x75\x74\x70\x75\x74\x20\x66\x69\x6c\x65\x0a\x09\x63\x6f\x6e" \
-"\x76\x3d\x6e\x6f\x65\x72\x72\x6f\x72\x09\x43\x6f\x6e\x74\x69\x6e" \
-"\x75\x65\x20\x61\x66\x74\x65\x72\x20\x72\x65\x61\x64\x20\x65\x72" \
-"\x72\x6f\x72\x73\x0a\x09\x63\x6f\x6e\x76\x3d\x73\x79\x6e\x63\x09" \
-"\x50\x61\x64\x20\x62\x6c\x6f\x63\x6b\x73\x20\x77\x69\x74\x68\x20" \
-"\x7a\x65\x72\x6f\x73\x0a\x09\x63\x6f\x6e\x76\x3d\x66\x73\x79\x6e" \
-"\x63\x09\x50\x68\x79\x73\x69\x63\x61\x6c\x6c\x79\x20\x77\x72\x69" \
-"\x74\x65\x20\x64\x61\x74\x61\x20\x6f\x75\x74\x20\x62\x65\x66\x6f" \
-"\x72\x65\x20\x66\x69\x6e\x69\x73\x68\x69\x6e\x67\x0a\x0a\x4e\x75" \
-"\x6d\x62\x65\x72\x73\x20\x6d\x61\x79\x20\x62\x65\x20\x73\x75\x66" \
-"\x66\x69\x78\x65\x64\x20\x62\x79\x20\x63\x20\x28\x78\x31\x29\x2c" \
-"\x20\x77\x20\x28\x78\x32\x29\x2c\x20\x62\x20\x28\x78\x35\x31\x32" \
-"\x29\x2c\x20\x6b\x44\x20\x28\x78\x31\x30\x30\x30\x29\x2c\x20\x6b" \
-"\x20\x28\x78\x31\x30\x32\x34\x29\x2c\x0a\x4d\x44\x20\x28\x78\x31" \
-"\x30\x30\x30\x30\x30\x30\x29\x2c\x20\x4d\x20\x28\x78\x31\x30\x34" \
-"\x38\x35\x37\x36\x29\x2c\x20\x47\x44\x20\x28\x78\x31\x30\x30\x30" \
-"\x30\x30\x30\x30\x30\x30\x29\x20\x6f\x72\x20\x47\x20\x28\x78\x31" \
-"\x30\x37\x33\x37\x34\x31\x38\x32\x34\x29\x00\x5b\x2d\x6e\x5d\x20" \
-"\x5b\x4d\x4f\x44\x46\x49\x4c\x45\x53\x5d\x2e\x2e\x2e\x0a\x0a\x47" \
-"\x65\x6e\x65\x72\x61\x74\x65\x20\x6d\x6f\x64\x75\x6c\x65\x73\x2e" \
-"\x64\x65\x70\x2c\x20\x61\x6c\x69\x61\x73\x2c\x20\x61\x6e\x64\x20" \
-"\x73\x79\x6d\x62\x6f\x6c\x73\x20\x66\x69\x6c\x65\x73\x0a\x0a\x09" \
-"\x2d\x6e\x09\x44\x72\x79\x20\x72\x75\x6e\x3a\x20\x70\x72\x69\x6e" \
-"\x74\x20\x66\x69\x6c\x65\x73\x20\x74\x6f\x20\x73\x74\x64\x6f\x75" \
-"\x74\x00\x41\x44\x44\x52\x45\x53\x53\x20\x5b\x57\x49\x44\x54\x48" \
-"\x20\x5b\x56\x41\x4c\x55\x45\x5d\x5d\x0a\x0a\x52\x65\x61\x64\x2f" \
-"\x77\x72\x69\x74\x65\x20\x66\x72\x6f\x6d\x20\x70\x68\x79\x73\x69" \
-"\x63\x61\x6c\x20\x61\x64\x64\x72\x65\x73\x73\x0a\x0a\x09\x41\x44" \
-"\x44\x52\x45\x53\x53\x09\x41\x64\x64\x72\x65\x73\x73\x20\x74\x6f" \
-"\x20\x61\x63\x74\x20\x75\x70\x6f\x6e\x0a\x09\x57\x49\x44\x54\x48" \
-"\x09\x57\x69\x64\x74\x68\x20\x28\x38\x2f\x31\x36\x2f\x2e\x2e\x2e" \
-"\x29\x0a\x09\x56\x41\x4c\x55\x45\x09\x44\x61\x74\x61\x20\x74\x6f" \
-"\x20\x62\x65\x20\x77\x72\x69\x74\x74\x65\x6e\x00\x5b\x2d\x50\x6b" \
-"\x6d\x68\x61\x69\x5d\x20\x5b\x2d\x42\x20\x53\x49\x5a\x45\x5d\x20" \
-"\x5b\x46\x49\x4c\x45\x53\x59\x53\x54\x45\x4d\x5d\x2e\x2e\x2e\x0a" \
-"\x0a\x50\x72\x69\x6e\x74\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65" \
-"\x6d\x20\x75\x73\x61\x67\x65\x20\x73\x74\x61\x74\x69\x73\x74\x69" \
-"\x63\x73\x0a\x0a\x09\x2d\x50\x09\x50\x4f\x53\x49\x58\x20\x6f\x75" \
-"\x74\x70\x75\x74\x20\x66\x6f\x72\x6d\x61\x74\x0a\x09\x2d\x6b\x09" \
-"\x31\x30\x32\x34\x2d\x62\x79\x74\x65\x20\x62\x6c\x6f\x63\x6b\x73" \
-"\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x6d\x09\x31" \
-"\x4d\x2d\x62\x79\x74\x65\x20\x62\x6c\x6f\x63\x6b\x73\x0a\x09\x2d" \
-"\x68\x09\x48\x75\x6d\x61\x6e\x20\x72\x65\x61\x64\x61\x62\x6c\x65" \
-"\x20\x28\x65\x2e\x67\x2e\x20\x31\x4b\x20\x32\x34\x33\x4d\x20\x32" \
-"\x47\x29\x0a\x09\x2d\x61\x09\x53\x68\x6f\x77\x20\x61\x6c\x6c\x20" \
-"\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x0a\x09\x2d\x69\x09" \
-"\x49\x6e\x6f\x64\x65\x73\x0a\x09\x2d\x42\x20\x53\x49\x5a\x45\x09" \
-"\x42\x6c\x6f\x63\x6b\x73\x69\x7a\x65\x00\x5b\x2d\x61\x62\x42\x64" \
-"\x69\x4e\x71\x72\x54\x73\x74\x77\x5d\x20\x5b\x2d\x4c\x20\x4c\x41" \
-"\x42\x45\x4c\x5d\x20\x5b\x2d\x53\x20\x46\x49\x4c\x45\x5d\x20\x5b" \
-"\x2d\x55\x20\x4c\x49\x4e\x45\x53\x5d\x20\x46\x49\x4c\x45\x31\x20" \
-"\x46\x49\x4c\x45\x32\x0a\x0a\x43\x6f\x6d\x70\x61\x72\x65\x20\x66" \
-"\x69\x6c\x65\x73\x20\x6c\x69\x6e\x65\x20\x62\x79\x20\x6c\x69\x6e" \
-"\x65\x20\x61\x6e\x64\x20\x6f\x75\x74\x70\x75\x74\x20\x74\x68\x65" \
-"\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x63\x65\x73\x20\x62\x65\x74" \
-"\x77\x65\x65\x6e\x20\x74\x68\x65\x6d\x2e\x0a\x54\x68\x69\x73\x20" \
-"\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x73" \
-"\x75\x70\x70\x6f\x72\x74\x73\x20\x75\x6e\x69\x66\x69\x65\x64\x20" \
-"\x64\x69\x66\x66\x73\x20\x6f\x6e\x6c\x79\x2e\x0a\x0a\x09\x2d\x61" \
-"\x09\x54\x72\x65\x61\x74\x20\x61\x6c\x6c\x20\x66\x69\x6c\x65\x73" \
-"\x20\x61\x73\x20\x74\x65\x78\x74\x0a\x09\x2d\x62\x09\x49\x67\x6e" \
-"\x6f\x72\x65\x20\x63\x68\x61\x6e\x67\x65\x73\x20\x69\x6e\x20\x74" \
-"\x68\x65\x20\x61\x6d\x6f\x75\x6e\x74\x20\x6f\x66\x20\x77\x68\x69" \
-"\x74\x65\x73\x70\x61\x63\x65\x0a\x09\x2d\x42\x09\x49\x67\x6e\x6f" \
-"\x72\x65\x20\x63\x68\x61\x6e\x67\x65\x73\x20\x77\x68\x6f\x73\x65" \
-"\x20\x6c\x69\x6e\x65\x73\x20\x61\x72\x65\x20\x61\x6c\x6c\x20\x62" \
-"\x6c\x61\x6e\x6b\x0a\x09\x2d\x64\x09\x54\x72\x79\x20\x68\x61\x72" \
-"\x64\x20\x74\x6f\x20\x66\x69\x6e\x64\x20\x61\x20\x73\x6d\x61\x6c" \
-"\x6c\x65\x72\x20\x73\x65\x74\x20\x6f\x66\x20\x63\x68\x61\x6e\x67" \
-"\x65\x73\x0a\x09\x2d\x69\x09\x49\x67\x6e\x6f\x72\x65\x20\x63\x61" \
-"\x73\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x63\x65\x73\x0a\x09" \
-"\x2d\x4c\x09\x55\x73\x65\x20\x4c\x41\x42\x45\x4c\x20\x69\x6e\x73" \
-"\x74\x65\x61\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x66\x69\x6c\x65" \
-"\x6e\x61\x6d\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x75\x6e\x69\x66" \
-"\x69\x65\x64\x20\x68\x65\x61\x64\x65\x72\x0a\x09\x2d\x4e\x09\x54" \
-"\x72\x65\x61\x74\x20\x61\x62\x73\x65\x6e\x74\x20\x66\x69\x6c\x65" \
-"\x73\x20\x61\x73\x20\x65\x6d\x70\x74\x79\x0a\x09\x2d\x71\x09\x4f" \
-"\x75\x74\x70\x75\x74\x20\x6f\x6e\x6c\x79\x20\x77\x68\x65\x74\x68" \
-"\x65\x72\x20\x66\x69\x6c\x65\x73\x20\x64\x69\x66\x66\x65\x72\x0a" \
-"\x09\x2d\x72\x09\x52\x65\x63\x75\x72\x73\x65\x0a\x09\x2d\x53\x09" \
-"\x53\x74\x61\x72\x74\x20\x77\x69\x74\x68\x20\x46\x49\x4c\x45\x20" \
-"\x77\x68\x65\x6e\x20\x63\x6f\x6d\x70\x61\x72\x69\x6e\x67\x20\x64" \
-"\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x09\x2d\x54\x09\x4d" \
-"\x61\x6b\x65\x20\x74\x61\x62\x73\x20\x6c\x69\x6e\x65\x20\x75\x70" \
-"\x20\x62\x79\x20\x70\x72\x65\x66\x69\x78\x69\x6e\x67\x20\x61\x20" \
-"\x74\x61\x62\x20\x77\x68\x65\x6e\x20\x6e\x65\x63\x65\x73\x73\x61" \
-"\x72\x79\x0a\x09\x2d\x73\x09\x52\x65\x70\x6f\x72\x74\x20\x77\x68" \
-"\x65\x6e\x20\x74\x77\x6f\x20\x66\x69\x6c\x65\x73\x20\x61\x72\x65" \
-"\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x0a\x09\x2d\x74\x09\x45\x78" \
-"\x70\x61\x6e\x64\x20\x74\x61\x62\x73\x20\x74\x6f\x20\x73\x70\x61" \
-"\x63\x65\x73\x20\x69\x6e\x20\x6f\x75\x74\x70\x75\x74\x0a\x09\x2d" \
-"\x55\x09\x4f\x75\x74\x70\x75\x74\x20\x4c\x49\x4e\x45\x53\x20\x6c" \
-"\x69\x6e\x65\x73\x20\x6f\x66\x20\x63\x6f\x6e\x74\x65\x78\x74\x0a" \
-"\x09\x2d\x77\x09\x49\x67\x6e\x6f\x72\x65\x20\x61\x6c\x6c\x20\x77" \
-"\x68\x69\x74\x65\x73\x70\x61\x63\x65\x00\x46\x49\x4c\x45\x4e\x41" \
-"\x4d\x45\x0a\x0a\x53\x74\x72\x69\x70\x20\x6e\x6f\x6e\x2d\x64\x69" \
-"\x72\x65\x63\x74\x6f\x72\x79\x20\x73\x75\x66\x66\x69\x78\x20\x66" \
-"\x72\x6f\x6d\x20\x46\x49\x4c\x45\x4e\x41\x4d\x45\x00\x5b\x2d\x63" \
-"\x5d\x20\x5b\x2d\x6e\x20\x4c\x45\x56\x45\x4c\x5d\x20\x5b\x2d\x72" \
-"\x5d\x20\x5b\x2d\x73\x20\x53\x49\x5a\x45\x5d\x20\x5b\x2d\x43\x5d" \
-"\x0a\x0a\x50\x72\x69\x6e\x74\x20\x6f\x72\x20\x63\x6f\x6e\x74\x72" \
-"\x6f\x6c\x20\x74\x68\x65\x20\x6b\x65\x72\x6e\x65\x6c\x20\x72\x69" \
-"\x6e\x67\x20\x62\x75\x66\x66\x65\x72\x0a\x0a\x09\x2d\x63\x09\x09" \
-"\x43\x6c\x65\x61\x72\x20\x72\x69\x6e\x67\x20\x62\x75\x66\x66\x65" \
-"\x72\x20\x61\x66\x74\x65\x72\x20\x70\x72\x69\x6e\x74\x69\x6e\x67" \
-"\x0a\x09\x2d\x6e\x20\x4c\x45\x56\x45\x4c\x09\x53\x65\x74\x20\x63" \
-"\x6f\x6e\x73\x6f\x6c\x65\x20\x6c\x6f\x67\x67\x69\x6e\x67\x20\x6c" \
-"\x65\x76\x65\x6c\x0a\x09\x2d\x72\x09\x09\x53\x68\x6f\x77\x20\x6c" \
-"\x65\x76\x65\x6c\x20\x70\x72\x65\x66\x69\x78\x0a\x09\x2d\x73\x20" \
-"\x53\x49\x5a\x45\x09\x09\x42\x75\x66\x66\x65\x72\x20\x73\x69\x7a" \
-"\x65\x0a\x09\x2d\x43\x09\x09\x43\x6f\x6c\x6f\x72\x65\x64\x20\x6f" \
-"\x75\x74\x70\x75\x74\x00\x5b\x2d\x64\x76\x73\x5d\x20\x5b\x2d\x63" \
-"\x20\x43\x4f\x4e\x46\x46\x49\x4c\x45\x5d\x20\x5b\x2d\x74\x20\x54" \
-"\x54\x4c\x5f\x53\x45\x43\x5d\x20\x5b\x2d\x70\x20\x50\x4f\x52\x54" \
-"\x5d\x20\x5b\x2d\x69\x20\x41\x44\x44\x52\x5d\x0a\x0a\x53\x6d\x61" \
-"\x6c\x6c\x20\x73\x74\x61\x74\x69\x63\x20\x44\x4e\x53\x20\x73\x65" \
-"\x72\x76\x65\x72\x20\x64\x61\x65\x6d\x6f\x6e\x0a\x0a\x09\x2d\x63" \
-"\x20\x46\x49\x4c\x45\x09\x43\x6f\x6e\x66\x69\x67\x20\x66\x69\x6c" \
-"\x65\x0a\x09\x2d\x74\x20\x53\x45\x43\x09\x54\x54\x4c\x0a\x09\x2d" \
-"\x70\x20\x50\x4f\x52\x54\x09\x4c\x69\x73\x74\x65\x6e\x20\x6f\x6e" \
-"\x20\x50\x4f\x52\x54\x0a\x09\x2d\x69\x20\x41\x44\x44\x52\x09\x4c" \
-"\x69\x73\x74\x65\x6e\x20\x6f\x6e\x20\x41\x44\x44\x52\x0a\x09\x2d" \
-"\x64\x09\x44\x61\x65\x6d\x6f\x6e\x69\x7a\x65\x0a\x09\x2d\x76\x09" \
-"\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x73\x09\x53\x65\x6e\x64" \
-"\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x20\x72\x65\x70\x6c" \
-"\x69\x65\x73\x20\x6f\x6e\x6c\x79\x2e\x20\x55\x73\x65\x20\x74\x68" \
-"\x69\x73\x20\x69\x66\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x0a\x09" \
-"\x09\x74\x6f\x20\x75\x73\x65\x20\x2f\x65\x74\x63\x2f\x72\x65\x73" \
-"\x6f\x6c\x76\x2e\x63\x6f\x6e\x66\x20\x77\x69\x74\x68\x20\x74\x77" \
-"\x6f\x20\x6e\x61\x6d\x65\x73\x65\x72\x76\x65\x72\x20\x6c\x69\x6e" \
-"\x65\x73\x3a\x0a\x09\x09\x09\x6e\x61\x6d\x65\x73\x65\x72\x76\x65" \
-"\x72\x20\x44\x4e\x53\x44\x5f\x53\x45\x52\x56\x45\x52\x0a\x09\x09" \
-"\x09\x6e\x61\x6d\x65\x73\x65\x72\x76\x65\x72\x20\x4e\x4f\x52\x4d" \
-"\x41\x4c\x5f\x44\x4e\x53\x5f\x53\x45\x52\x56\x45\x52\x00\x5b\x2d" \
-"\x75\x64\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x0a\x0a\x43\x6f\x6e\x76" \
-"\x65\x72\x74\x20\x46\x49\x4c\x45\x20\x69\x6e\x2d\x70\x6c\x61\x63" \
-"\x65\x20\x66\x72\x6f\x6d\x20\x44\x4f\x53\x20\x74\x6f\x20\x55\x6e" \
-"\x69\x78\x20\x66\x6f\x72\x6d\x61\x74\x2e\x0a\x57\x68\x65\x6e\x20" \
-"\x6e\x6f\x20\x66\x69\x6c\x65\x20\x69\x73\x20\x67\x69\x76\x65\x6e" \
-"\x2c\x20\x75\x73\x65\x20\x73\x74\x64\x69\x6e\x2f\x73\x74\x64\x6f" \
-"\x75\x74\x2e\x0a\x0a\x09\x2d\x75\x09\x64\x6f\x73\x32\x75\x6e\x69" \
-"\x78\x0a\x09\x2d\x64\x09\x75\x6e\x69\x78\x32\x64\x6f\x73\x00\x5b" \
-"\x2d\x61\x48\x4c\x64\x63\x6c\x73\x78\x68\x6d\x6b\x5d\x20\x5b\x46" \
-"\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x53\x75\x6d\x6d\x61\x72\x69" \
-"\x7a\x65\x20\x64\x69\x73\x6b\x20\x73\x70\x61\x63\x65\x20\x75\x73" \
-"\x65\x64\x20\x66\x6f\x72\x20\x65\x61\x63\x68\x20\x46\x49\x4c\x45" \
-"\x20\x61\x6e\x64\x2f\x6f\x72\x20\x64\x69\x72\x65\x63\x74\x6f\x72" \
-"\x79\x0a\x0a\x09\x2d\x61\x09\x53\x68\x6f\x77\x20\x66\x69\x6c\x65" \
-"\x20\x73\x69\x7a\x65\x73\x20\x74\x6f\x6f\x0a\x09\x2d\x4c\x09\x46" \
-"\x6f\x6c\x6c\x6f\x77\x20\x61\x6c\x6c\x20\x73\x79\x6d\x6c\x69\x6e" \
-"\x6b\x73\x0a\x09\x2d\x48\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79" \
-"\x6d\x6c\x69\x6e\x6b\x73\x20\x6f\x6e\x20\x63\x6f\x6d\x6d\x61\x6e" \
-"\x64\x20\x6c\x69\x6e\x65\x0a\x09\x2d\x64\x20\x4e\x09\x4c\x69\x6d" \
-"\x69\x74\x20\x6f\x75\x74\x70\x75\x74\x20\x74\x6f\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x28\x61\x6e\x64\x20\x66\x69" \
-"\x6c\x65\x73\x20\x77\x69\x74\x68\x20\x2d\x61\x29\x20\x6f\x66\x20" \
-"\x64\x65\x70\x74\x68\x20\x3c\x20\x4e\x0a\x09\x2d\x63\x09\x53\x68" \
-"\x6f\x77\x20\x67\x72\x61\x6e\x64\x20\x74\x6f\x74\x61\x6c\x0a\x09" \
-"\x2d\x6c\x09\x43\x6f\x75\x6e\x74\x20\x73\x69\x7a\x65\x73\x20\x6d" \
-"\x61\x6e\x79\x20\x74\x69\x6d\x65\x73\x20\x69\x66\x20\x68\x61\x72" \
-"\x64\x20\x6c\x69\x6e\x6b\x65\x64\x0a\x09\x2d\x73\x09\x44\x69\x73" \
-"\x70\x6c\x61\x79\x20\x6f\x6e\x6c\x79\x20\x61\x20\x74\x6f\x74\x61" \
-"\x6c\x20\x66\x6f\x72\x20\x65\x61\x63\x68\x20\x61\x72\x67\x75\x6d" \
-"\x65\x6e\x74\x0a\x09\x2d\x78\x09\x53\x6b\x69\x70\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x6f\x6e\x20\x64\x69\x66\x66" \
-"\x65\x72\x65\x6e\x74\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d" \
-"\x73\x0a\x09\x2d\x68\x09\x53\x69\x7a\x65\x73\x20\x69\x6e\x20\x68" \
-"\x75\x6d\x61\x6e\x20\x72\x65\x61\x64\x61\x62\x6c\x65\x20\x66\x6f" \
-"\x72\x6d\x61\x74\x20\x28\x65\x2e\x67\x2e\x2c\x20\x31\x4b\x20\x32" \
-"\x34\x33\x4d\x20\x32\x47\x29\x0a\x09\x2d\x6d\x09\x53\x69\x7a\x65" \
-"\x73\x20\x69\x6e\x20\x6d\x65\x67\x61\x62\x79\x74\x65\x73\x0a\x09" \
-"\x2d\x6b\x09\x53\x69\x7a\x65\x73\x20\x69\x6e\x20\x6b\x69\x6c\x6f" \
-"\x62\x79\x74\x65\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x00" \
-"\x5b\x2d\x6e\x65\x45\x5d\x20\x5b\x41\x52\x47\x5d\x2e\x2e\x2e\x0a" \
-"\x0a\x50\x72\x69\x6e\x74\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69" \
-"\x66\x69\x65\x64\x20\x41\x52\x47\x73\x20\x74\x6f\x20\x73\x74\x64" \
-"\x6f\x75\x74\x0a\x0a\x09\x2d\x6e\x09\x53\x75\x70\x70\x72\x65\x73" \
-"\x73\x20\x74\x72\x61\x69\x6c\x69\x6e\x67\x20\x6e\x65\x77\x6c\x69" \
-"\x6e\x65\x0a\x09\x2d\x65\x09\x49\x6e\x74\x65\x72\x70\x72\x65\x74" \
-"\x20\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x20\x65\x73\x63\x61\x70" \
-"\x65\x73\x20\x28\x69\x2e\x65\x2e\x2c\x20\x5c\x74\x3d\x74\x61\x62" \
-"\x29\x0a\x09\x2d\x45\x09\x44\x6f\x6e\x27\x74\x20\x69\x6e\x74\x65" \
-"\x72\x70\x72\x65\x74\x20\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x20" \
-"\x65\x73\x63\x61\x70\x65\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74" \
-"\x29\x00\x00\x08\x00\x5b\x2d\x69\x75\x5d\x20\x5b\x2d\x5d\x20\x5b" \
-"\x6e\x61\x6d\x65\x3d\x76\x61\x6c\x75\x65\x5d\x2e\x2e\x2e\x20\x5b" \
-"\x50\x52\x4f\x47\x20\x41\x52\x47\x53\x5d\x0a\x0a\x50\x72\x69\x6e" \
-"\x74\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x65\x6e" \
-"\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x6f\x72\x20\x72\x75\x6e" \
-"\x20\x50\x52\x4f\x47\x20\x61\x66\x74\x65\x72\x20\x73\x65\x74\x74" \
-"\x69\x6e\x67\x20\x75\x70\x0a\x74\x68\x65\x20\x73\x70\x65\x63\x69" \
-"\x66\x69\x65\x64\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74" \
-"\x0a\x0a\x09\x2d\x2c\x20\x2d\x69\x09\x53\x74\x61\x72\x74\x20\x77" \
-"\x69\x74\x68\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x65\x6e\x76" \
-"\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x0a\x09\x2d\x75\x09\x52\x65\x6d" \
-"\x6f\x76\x65\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x66\x72\x6f" \
-"\x6d\x20\x74\x68\x65\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e" \
-"\x74\x00\x5b\x2d\x69\x5d\x20\x5b\x2d\x74\x20\x4e\x5d\x20\x5b\x46" \
-"\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f\x6e\x76\x65\x72\x74" \
-"\x20\x74\x61\x62\x73\x20\x74\x6f\x20\x73\x70\x61\x63\x65\x73\x2c" \
-"\x20\x77\x72\x69\x74\x69\x6e\x67\x20\x74\x6f\x20\x73\x74\x64\x6f" \
-"\x75\x74\x0a\x0a\x09\x2d\x69\x2c\x2d\x2d\x69\x6e\x69\x74\x69\x61" \
-"\x6c\x09\x44\x6f\x6e\x27\x74\x20\x63\x6f\x6e\x76\x65\x72\x74\x20" \
-"\x74\x61\x62\x73\x20\x61\x66\x74\x65\x72\x20\x6e\x6f\x6e\x20\x62" \
-"\x6c\x61\x6e\x6b\x73\x0a\x09\x2d\x74\x2c\x2d\x2d\x74\x61\x62\x73" \
-"\x3d\x4e\x09\x54\x61\x62\x73\x74\x6f\x70\x73\x20\x65\x76\x65\x72" \
-"\x79\x20\x4e\x20\x63\x68\x61\x72\x73\x00\x45\x58\x50\x52\x45\x53" \
-"\x53\x49\x4f\x4e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x74\x68\x65\x20" \
-"\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x45\x58\x50\x52\x45\x53\x53" \
-"\x49\x4f\x4e\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x0a\x45" \
-"\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x20\x6d\x61\x79\x20\x62\x65" \
-"\x3a\x0a\x09\x41\x52\x47\x31\x20\x7c\x20\x41\x52\x47\x32\x09\x41" \
-"\x52\x47\x31\x20\x69\x66\x20\x69\x74\x20\x69\x73\x20\x6e\x65\x69" \
-"\x74\x68\x65\x72\x20\x6e\x75\x6c\x6c\x20\x6e\x6f\x72\x20\x30\x2c" \
-"\x20\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x41\x52\x47\x32\x0a" \
-"\x09\x41\x52\x47\x31\x20\x26\x20\x41\x52\x47\x32\x09\x41\x52\x47" \
-"\x31\x20\x69\x66\x20\x6e\x65\x69\x74\x68\x65\x72\x20\x61\x72\x67" \
-"\x75\x6d\x65\x6e\x74\x20\x69\x73\x20\x6e\x75\x6c\x6c\x20\x6f\x72" \
-"\x20\x30\x2c\x20\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x30\x0a" \
-"\x09\x41\x52\x47\x31\x20\x3c\x20\x41\x52\x47\x32\x09\x31\x20\x69" \
-"\x66\x20\x41\x52\x47\x31\x20\x69\x73\x20\x6c\x65\x73\x73\x20\x74" \
-"\x68\x61\x6e\x20\x41\x52\x47\x32\x2c\x20\x65\x6c\x73\x65\x20\x30" \
-"\x2e\x20\x53\x69\x6d\x69\x6c\x61\x72\x6c\x79\x3a\x0a\x09\x41\x52" \
-"\x47\x31\x20\x3c\x3d\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47\x31" \
-"\x20\x3d\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x21\x3d" \
-"\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x3e\x3d\x20\x41" \
-"\x52\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x3e\x20\x41\x52\x47\x32" \
-"\x0a\x09\x41\x52\x47\x31\x20\x2b\x20\x41\x52\x47\x32\x09\x53\x75" \
-"\x6d\x20\x6f\x66\x20\x41\x52\x47\x31\x20\x61\x6e\x64\x20\x41\x52" \
-"\x47\x32\x2e\x20\x53\x69\x6d\x69\x6c\x61\x72\x6c\x79\x3a\x0a\x09" \
-"\x41\x52\x47\x31\x20\x2d\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47" \
-"\x31\x20\x2a\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x2f" \
-"\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x25\x20\x41\x52" \
-"\x47\x32\x0a\x09\x53\x54\x52\x49\x4e\x47\x20\x3a\x20\x52\x45\x47" \
-"\x45\x58\x50\x09\x09\x41\x6e\x63\x68\x6f\x72\x65\x64\x20\x70\x61" \
-"\x74\x74\x65\x72\x6e\x20\x6d\x61\x74\x63\x68\x20\x6f\x66\x20\x52" \
-"\x45\x47\x45\x58\x50\x20\x69\x6e\x20\x53\x54\x52\x49\x4e\x47\x0a" \
-"\x09\x6d\x61\x74\x63\x68\x20\x53\x54\x52\x49\x4e\x47\x20\x52\x45" \
-"\x47\x45\x58\x50\x09\x53\x61\x6d\x65\x20\x61\x73\x20\x53\x54\x52" \
-"\x49\x4e\x47\x20\x3a\x20\x52\x45\x47\x45\x58\x50\x0a\x09\x73\x75" \
-"\x62\x73\x74\x72\x20\x53\x54\x52\x49\x4e\x47\x20\x50\x4f\x53\x20" \
-"\x4c\x45\x4e\x47\x54\x48\x20\x53\x75\x62\x73\x74\x72\x69\x6e\x67" \
-"\x20\x6f\x66\x20\x53\x54\x52\x49\x4e\x47\x2c\x20\x50\x4f\x53\x20" \
-"\x63\x6f\x75\x6e\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x31\x0a\x09" \
-"\x69\x6e\x64\x65\x78\x20\x53\x54\x52\x49\x4e\x47\x20\x43\x48\x41" \
-"\x52\x53\x09\x49\x6e\x64\x65\x78\x20\x69\x6e\x20\x53\x54\x52\x49" \
-"\x4e\x47\x20\x77\x68\x65\x72\x65\x20\x61\x6e\x79\x20\x43\x48\x41" \
-"\x52\x53\x20\x69\x73\x20\x66\x6f\x75\x6e\x64\x2c\x20\x6f\x72\x20" \
-"\x30\x0a\x09\x6c\x65\x6e\x67\x74\x68\x20\x53\x54\x52\x49\x4e\x47" \
-"\x09\x09\x4c\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x53\x54\x52\x49" \
-"\x4e\x47\x0a\x09\x71\x75\x6f\x74\x65\x20\x54\x4f\x4b\x45\x4e\x09" \
-"\x09\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x20\x54\x4f\x4b\x45\x4e" \
-"\x20\x61\x73\x20\x61\x20\x73\x74\x72\x69\x6e\x67\x2c\x20\x65\x76" \
-"\x65\x6e\x20\x69\x66\x0a\x09\x09\x09\x09\x69\x74\x20\x69\x73\x20" \
-"\x61\x20\x6b\x65\x79\x77\x6f\x72\x64\x20\x6c\x69\x6b\x65\x20\x27" \
-"\x6d\x61\x74\x63\x68\x27\x20\x6f\x72\x20\x61\x6e\x0a\x09\x09\x09" \
-"\x09\x6f\x70\x65\x72\x61\x74\x6f\x72\x20\x6c\x69\x6b\x65\x20\x27" \
-"\x2f\x27\x0a\x09\x28\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x29" \
-"\x09\x09\x56\x61\x6c\x75\x65\x20\x6f\x66\x20\x45\x58\x50\x52\x45" \
-"\x53\x53\x49\x4f\x4e\x0a\x0a\x42\x65\x77\x61\x72\x65\x20\x74\x68" \
-"\x61\x74\x20\x6d\x61\x6e\x79\x20\x6f\x70\x65\x72\x61\x74\x6f\x72" \
-"\x73\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x62\x65\x20\x65\x73\x63" \
-"\x61\x70\x65\x64\x20\x6f\x72\x20\x71\x75\x6f\x74\x65\x64\x20\x66" \
-"\x6f\x72\x20\x73\x68\x65\x6c\x6c\x73\x2e\x0a\x43\x6f\x6d\x70\x61" \
-"\x72\x69\x73\x6f\x6e\x73\x20\x61\x72\x65\x20\x61\x72\x69\x74\x68" \
-"\x6d\x65\x74\x69\x63\x20\x69\x66\x20\x62\x6f\x74\x68\x20\x41\x52" \
-"\x47\x73\x20\x61\x72\x65\x20\x6e\x75\x6d\x62\x65\x72\x73\x2c\x20" \
-"\x65\x6c\x73\x65\x0a\x6c\x65\x78\x69\x63\x6f\x67\x72\x61\x70\x68" \
-"\x69\x63\x61\x6c\x2e\x20\x50\x61\x74\x74\x65\x72\x6e\x20\x6d\x61" \
-"\x74\x63\x68\x65\x73\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65" \
-"\x20\x73\x74\x72\x69\x6e\x67\x20\x6d\x61\x74\x63\x68\x65\x64\x20" \
-"\x62\x65\x74\x77\x65\x65\x6e\x0a\x5c\x28\x20\x61\x6e\x64\x20\x5c" \
-"\x29\x20\x6f\x72\x20\x6e\x75\x6c\x6c\x3b\x20\x69\x66\x20\x5c\x28" \
-"\x20\x61\x6e\x64\x20\x5c\x29\x20\x61\x72\x65\x20\x6e\x6f\x74\x20" \
-"\x75\x73\x65\x64\x2c\x20\x74\x68\x65\x79\x20\x72\x65\x74\x75\x72" \
-"\x6e\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x0a\x6f\x66\x20" \
-"\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x6d\x61\x74\x63\x68" \
-"\x65\x64\x20\x6f\x72\x20\x30\x2e\x00\x0a\x0a\x52\x65\x74\x75\x72" \
-"\x6e\x20\x61\x6e\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x6f" \
-"\x66\x20\x46\x41\x4c\x53\x45\x20\x28\x31\x29\x00\x2d\x73\x20\x49" \
-"\x4d\x47\x46\x49\x4c\x45\x20\x5b\x2d\x63\x5d\x20\x5b\x2d\x64\x20" \
-"\x44\x45\x56\x5d\x20\x5b\x2d\x69\x20\x49\x4e\x49\x46\x49\x4c\x45" \
-"\x5d\x20\x5b\x2d\x66\x20\x43\x4d\x44\x5d\x0a\x0a\x09\x2d\x73\x09" \
-"\x49\x6d\x61\x67\x65\x0a\x09\x2d\x63\x09\x48\x69\x64\x65\x20\x63" \
-"\x75\x72\x73\x6f\x72\x0a\x09\x2d\x64\x09\x46\x72\x61\x6d\x65\x62" \
-"\x75\x66\x66\x65\x72\x20\x64\x65\x76\x69\x63\x65\x20\x28\x64\x65" \
-"\x66\x61\x75\x6c\x74\x20\x2f\x64\x65\x76\x2f\x66\x62\x30\x29\x0a" \
-"\x09\x2d\x69\x09\x43\x6f\x6e\x66\x69\x67\x20\x66\x69\x6c\x65\x20" \
-"\x28\x76\x61\x72\x3d\x76\x61\x6c\x75\x65\x29\x3a\x0a\x09\x09\x09" \
-"\x42\x41\x52\x5f\x4c\x45\x46\x54\x2c\x42\x41\x52\x5f\x54\x4f\x50" \
-"\x2c\x42\x41\x52\x5f\x57\x49\x44\x54\x48\x2c\x42\x41\x52\x5f\x48" \
-"\x45\x49\x47\x48\x54\x0a\x09\x09\x09\x42\x41\x52\x5f\x52\x2c\x42" \
-"\x41\x52\x5f\x47\x2c\x42\x41\x52\x5f\x42\x0a\x09\x2d\x66\x09\x43" \
-"\x6f\x6e\x74\x72\x6f\x6c\x20\x70\x69\x70\x65\x20\x28\x65\x6c\x73" \
-"\x65\x20\x65\x78\x69\x74\x20\x61\x66\x74\x65\x72\x20\x64\x72\x61" \
-"\x77\x69\x6e\x67\x20\x69\x6d\x61\x67\x65\x29\x0a\x09\x09\x09\x63" \
-"\x6f\x6d\x6d\x61\x6e\x64\x73\x3a\x20\x27\x4e\x4e\x27\x20\x28\x25" \
-"\x20\x66\x6f\x72\x20\x70\x72\x6f\x67\x72\x65\x73\x73\x20\x62\x61" \
-"\x72\x29\x20\x6f\x72\x20\x27\x65\x78\x69\x74\x27\x00\x5b\x2d\x75" \
-"\x6c\x5d\x20\x5b\x2d\x43\x20\x43\x59\x4c\x49\x4e\x44\x45\x52\x53" \
-"\x5d\x20\x5b\x2d\x48\x20\x48\x45\x41\x44\x53\x5d\x20\x5b\x2d\x53" \
-"\x20\x53\x45\x43\x54\x4f\x52\x53\x5d\x20\x5b\x2d\x62\x20\x53\x53" \
-"\x5a\x5d\x20\x44\x49\x53\x4b\x0a\x0a\x43\x68\x61\x6e\x67\x65\x20" \
-"\x70\x61\x72\x74\x69\x74\x69\x6f\x6e\x20\x74\x61\x62\x6c\x65\x0a" \
-"\x0a\x09\x2d\x75\x09\x09\x53\x74\x61\x72\x74\x20\x61\x6e\x64\x20" \
-"\x45\x6e\x64\x20\x61\x72\x65\x20\x69\x6e\x20\x73\x65\x63\x74\x6f" \
-"\x72\x73\x20\x28\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x63" \
-"\x79\x6c\x69\x6e\x64\x65\x72\x73\x29\x0a\x09\x2d\x6c\x09\x09\x53" \
-"\x68\x6f\x77\x20\x70\x61\x72\x74\x69\x74\x69\x6f\x6e\x20\x74\x61" \
-"\x62\x6c\x65\x20\x66\x6f\x72\x20\x65\x61\x63\x68\x20\x44\x49\x53" \
-"\x4b\x2c\x20\x74\x68\x65\x6e\x20\x65\x78\x69\x74\x0a\x09\x2d\x62" \
-"\x20\x32\x30\x34\x38\x09\x09\x28\x66\x6f\x72\x20\x63\x65\x72\x74" \
-"\x61\x69\x6e\x20\x4d\x4f\x20\x64\x69\x73\x6b\x73\x29\x20\x75\x73" \
-"\x65\x20\x32\x30\x34\x38\x2d\x62\x79\x74\x65\x20\x73\x65\x63\x74" \
-"\x6f\x72\x73\x0a\x09\x2d\x43\x20\x43\x59\x4c\x49\x4e\x44\x45\x52" \
-"\x53\x09\x53\x65\x74\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20" \
-"\x63\x79\x6c\x69\x6e\x64\x65\x72\x73\x2f\x68\x65\x61\x64\x73\x2f" \
-"\x73\x65\x63\x74\x6f\x72\x73\x0a\x09\x2d\x48\x20\x48\x45\x41\x44" \
-"\x53\x0a\x09\x2d\x53\x20\x53\x45\x43\x54\x4f\x52\x53\x00\x08\x00" \
-"\x5b\x50\x41\x54\x48\x5d\x2e\x2e\x2e\x20\x5b\x4f\x50\x54\x49\x4f" \
-"\x4e\x53\x5d\x20\x5b\x41\x43\x54\x49\x4f\x4e\x53\x5d\x0a\x0a\x53" \
-"\x65\x61\x72\x63\x68\x20\x66\x6f\x72\x20\x66\x69\x6c\x65\x73\x20" \
-"\x61\x6e\x64\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x61\x63\x74\x69" \
-"\x6f\x6e\x73\x20\x6f\x6e\x20\x74\x68\x65\x6d\x2e\x0a\x46\x69\x72" \
-"\x73\x74\x20\x66\x61\x69\x6c\x65\x64\x20\x61\x63\x74\x69\x6f\x6e" \
-"\x20\x73\x74\x6f\x70\x73\x20\x70\x72\x6f\x63\x65\x73\x73\x69\x6e" \
-"\x67\x20\x6f\x66\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x66\x69\x6c" \
-"\x65\x2e\x0a\x44\x65\x66\x61\x75\x6c\x74\x73\x3a\x20\x50\x41\x54" \
-"\x48\x20\x69\x73\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x79\x2c\x20\x61\x63\x74\x69\x6f\x6e\x20\x69" \
-"\x73\x20\x27\x2d\x70\x72\x69\x6e\x74\x27\x0a\x0a\x09\x2d\x66\x6f" \
-"\x6c\x6c\x6f\x77\x09\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d" \
-"\x6c\x69\x6e\x6b\x73\x0a\x09\x2d\x78\x64\x65\x76\x09\x09\x44\x6f" \
-"\x6e\x27\x74\x20\x64\x65\x73\x63\x65\x6e\x64\x20\x64\x69\x72\x65" \
-"\x63\x74\x6f\x72\x69\x65\x73\x20\x6f\x6e\x20\x6f\x74\x68\x65\x72" \
-"\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x0a\x09\x2d\x6d" \
-"\x61\x78\x64\x65\x70\x74\x68\x20\x4e\x09\x44\x65\x73\x63\x65\x6e" \
-"\x64\x20\x61\x74\x20\x6d\x6f\x73\x74\x20\x4e\x20\x6c\x65\x76\x65" \
-"\x6c\x73\x2e\x20\x2d\x6d\x61\x78\x64\x65\x70\x74\x68\x20\x30\x20" \
-"\x61\x70\x70\x6c\x69\x65\x73\x0a\x09\x09\x09\x61\x63\x74\x69\x6f" \
-"\x6e\x73\x20\x74\x6f\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69" \
-"\x6e\x65\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x6f\x6e\x6c" \
-"\x79\x0a\x09\x2d\x6d\x69\x6e\x64\x65\x70\x74\x68\x20\x4e\x09\x44" \
-"\x6f\x6e\x27\x74\x20\x61\x63\x74\x20\x6f\x6e\x20\x66\x69\x72\x73" \
-"\x74\x20\x4e\x20\x6c\x65\x76\x65\x6c\x73\x0a\x09\x2d\x64\x65\x70" \
-"\x74\x68\x09\x09\x41\x63\x74\x20\x6f\x6e\x20\x64\x69\x72\x65\x63" \
-"\x74\x6f\x72\x79\x20\x2a\x61\x66\x74\x65\x72\x2a\x20\x74\x72\x61" \
-"\x76\x65\x72\x73\x69\x6e\x67\x20\x69\x74\x0a\x0a\x41\x63\x74\x69" \
-"\x6f\x6e\x73\x3a\x0a\x09\x28\x20\x41\x43\x54\x49\x4f\x4e\x53\x20" \
-"\x29\x09\x47\x72\x6f\x75\x70\x20\x61\x63\x74\x69\x6f\x6e\x73\x20" \
-"\x66\x6f\x72\x20\x2d\x6f\x20\x2f\x20\x2d\x61\x0a\x09\x21\x20\x41" \
-"\x43\x54\x09\x09\x49\x6e\x76\x65\x72\x74\x20\x41\x43\x54\x27\x73" \
-"\x20\x73\x75\x63\x63\x65\x73\x73\x2f\x66\x61\x69\x6c\x75\x72\x65" \
-"\x0a\x09\x41\x43\x54\x31\x20\x5b\x2d\x61\x5d\x20\x41\x43\x54\x32" \
-"\x09\x49\x66\x20\x41\x43\x54\x31\x20\x66\x61\x69\x6c\x73\x2c\x20" \
-"\x73\x74\x6f\x70\x2c\x20\x65\x6c\x73\x65\x20\x64\x6f\x20\x41\x43" \
-"\x54\x32\x0a\x09\x41\x43\x54\x31\x20\x2d\x6f\x20\x41\x43\x54\x32" \
-"\x09\x49\x66\x20\x41\x43\x54\x31\x20\x73\x75\x63\x63\x65\x65\x64" \
-"\x73\x2c\x20\x73\x74\x6f\x70\x2c\x20\x65\x6c\x73\x65\x20\x64\x6f" \
-"\x20\x41\x43\x54\x32\x0a\x09\x09\x09\x4e\x6f\x74\x65\x3a\x20\x2d" \
-"\x61\x20\x68\x61\x73\x20\x68\x69\x67\x68\x65\x72\x20\x70\x72\x69" \
-"\x6f\x72\x69\x74\x79\x20\x74\x68\x61\x6e\x20\x2d\x6f\x0a\x09\x2d" \
-"\x6e\x61\x6d\x65\x20\x50\x41\x54\x54\x45\x52\x4e\x09\x4d\x61\x74" \
-"\x63\x68\x20\x66\x69\x6c\x65\x20\x6e\x61\x6d\x65\x20\x28\x77\x2f" \
-"\x6f\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x6e\x61\x6d\x65" \
-"\x29\x20\x74\x6f\x20\x50\x41\x54\x54\x45\x52\x4e\x0a\x09\x2d\x69" \
-"\x6e\x61\x6d\x65\x20\x50\x41\x54\x54\x45\x52\x4e\x09\x43\x61\x73" \
-"\x65\x20\x69\x6e\x73\x65\x6e\x73\x69\x74\x69\x76\x65\x20\x2d\x6e" \
-"\x61\x6d\x65\x0a\x09\x2d\x70\x61\x74\x68\x20\x50\x41\x54\x54\x45" \
-"\x52\x4e\x09\x4d\x61\x74\x63\x68\x20\x70\x61\x74\x68\x20\x74\x6f" \
-"\x20\x50\x41\x54\x54\x45\x52\x4e\x0a\x09\x2d\x69\x70\x61\x74\x68" \
-"\x20\x50\x41\x54\x54\x45\x52\x4e\x09\x43\x61\x73\x65\x20\x69\x6e" \
-"\x73\x65\x6e\x73\x69\x74\x69\x76\x65\x20\x2d\x70\x61\x74\x68\x0a" \
-"\x09\x2d\x72\x65\x67\x65\x78\x20\x50\x41\x54\x54\x45\x52\x4e\x09" \
-"\x4d\x61\x74\x63\x68\x20\x70\x61\x74\x68\x20\x74\x6f\x20\x72\x65" \
-"\x67\x65\x78\x20\x50\x41\x54\x54\x45\x52\x4e\x0a\x09\x2d\x74\x79" \
-"\x70\x65\x20\x58\x09\x09\x46\x69\x6c\x65\x20\x74\x79\x70\x65\x20" \
-"\x69\x73\x20\x58\x20\x28\x6f\x6e\x65\x20\x6f\x66\x3a\x20\x66\x2c" \
-"\x64\x2c\x6c\x2c\x62\x2c\x63\x2c\x2e\x2e\x2e\x29\x0a\x09\x2d\x70" \
-"\x65\x72\x6d\x20\x4d\x41\x53\x4b\x09\x41\x74\x20\x6c\x65\x61\x73" \
-"\x74\x20\x6f\x6e\x65\x20\x6d\x61\x73\x6b\x20\x62\x69\x74\x20\x28" \
-"\x2b\x4d\x41\x53\x4b\x29\x2c\x20\x61\x6c\x6c\x20\x62\x69\x74\x73" \
-"\x20\x28\x2d\x4d\x41\x53\x4b\x29\x2c\x0a\x09\x09\x09\x6f\x72\x20" \
-"\x65\x78\x61\x63\x74\x6c\x79\x20\x4d\x41\x53\x4b\x20\x62\x69\x74" \
-"\x73\x20\x61\x72\x65\x20\x73\x65\x74\x20\x69\x6e\x20\x66\x69\x6c" \
-"\x65\x27\x73\x20\x6d\x6f\x64\x65\x0a\x09\x2d\x6d\x74\x69\x6d\x65" \
-"\x20\x44\x41\x59\x53\x09\x6d\x74\x69\x6d\x65\x20\x69\x73\x20\x67" \
-"\x72\x65\x61\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x28\x2b\x4e\x29" \
-"\x2c\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x28\x2d\x4e\x29" \
-"\x2c\x0a\x09\x09\x09\x6f\x72\x20\x65\x78\x61\x63\x74\x6c\x79\x20" \
-"\x4e\x20\x64\x61\x79\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x70\x61" \
-"\x73\x74\x0a\x09\x2d\x6d\x6d\x69\x6e\x20\x4d\x49\x4e\x53\x09\x6d" \
-"\x74\x69\x6d\x65\x20\x69\x73\x20\x67\x72\x65\x61\x74\x65\x72\x20" \
-"\x74\x68\x61\x6e\x20\x28\x2b\x4e\x29\x2c\x20\x6c\x65\x73\x73\x20" \
-"\x74\x68\x61\x6e\x20\x28\x2d\x4e\x29\x2c\x0a\x09\x09\x09\x6f\x72" \
-"\x20\x65\x78\x61\x63\x74\x6c\x79\x20\x4e\x20\x6d\x69\x6e\x75\x74" \
-"\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x70\x61\x73\x74\x0a\x09" \
-"\x2d\x6e\x65\x77\x65\x72\x20\x46\x49\x4c\x45\x09\x6d\x74\x69\x6d" \
-"\x65\x20\x69\x73\x20\x6d\x6f\x72\x65\x20\x72\x65\x63\x65\x6e\x74" \
-"\x20\x74\x68\x61\x6e\x20\x46\x49\x4c\x45\x27\x73\x0a\x09\x2d\x75" \
-"\x73\x65\x72\x20\x4e\x41\x4d\x45\x2f\x49\x44\x09\x46\x69\x6c\x65" \
-"\x20\x69\x73\x20\x6f\x77\x6e\x65\x64\x20\x62\x79\x20\x67\x69\x76" \
-"\x65\x6e\x20\x75\x73\x65\x72\x0a\x09\x2d\x67\x72\x6f\x75\x70\x20" \
-"\x4e\x41\x4d\x45\x2f\x49\x44\x09\x46\x69\x6c\x65\x20\x69\x73\x20" \
-"\x6f\x77\x6e\x65\x64\x20\x62\x79\x20\x67\x69\x76\x65\x6e\x20\x67" \
-"\x72\x6f\x75\x70\x0a\x09\x2d\x73\x69\x7a\x65\x20\x4e\x5b\x62\x63" \
-"\x6b\x5d\x09\x46\x69\x6c\x65\x20\x73\x69\x7a\x65\x20\x69\x73\x20" \
-"\x4e\x20\x28\x63\x3a\x62\x79\x74\x65\x73\x2c\x6b\x3a\x6b\x62\x79" \
-"\x74\x65\x73\x2c\x62\x3a\x35\x31\x32\x20\x62\x79\x74\x65\x73\x28" \
-"\x64\x65\x66\x2e\x29\x29\x0a\x09\x09\x09\x2b\x2f\x2d\x4e\x3a\x20" \
-"\x66\x69\x6c\x65\x20\x73\x69\x7a\x65\x20\x69\x73\x20\x62\x69\x67" \
-"\x67\x65\x72\x2f\x73\x6d\x61\x6c\x6c\x65\x72\x20\x74\x68\x61\x6e" \
-"\x20\x4e\x0a\x09\x2d\x6c\x69\x6e\x6b\x73\x20\x4e\x09\x4e\x75\x6d" \
-"\x62\x65\x72\x20\x6f\x66\x20\x6c\x69\x6e\x6b\x73\x20\x69\x73\x20" \
-"\x67\x72\x65\x61\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x28\x2b\x4e" \
-"\x29\x2c\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x28\x2d\x4e" \
-"\x29\x2c\x0a\x09\x09\x09\x6f\x72\x20\x65\x78\x61\x63\x74\x6c\x79" \
-"\x20\x4e\x0a\x09\x2d\x70\x72\x75\x6e\x65\x09\x09\x49\x66\x20\x63" \
-"\x75\x72\x72\x65\x6e\x74\x20\x66\x69\x6c\x65\x20\x69\x73\x20\x64" \
-"\x69\x72\x65\x63\x74\x6f\x72\x79\x2c\x20\x64\x6f\x6e\x27\x74\x20" \
-"\x64\x65\x73\x63\x65\x6e\x64\x20\x69\x6e\x74\x6f\x20\x69\x74\x0a" \
-"\x49\x66\x20\x6e\x6f\x6e\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x66" \
-"\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x61\x63\x74\x69\x6f\x6e\x73" \
-"\x20\x69\x73\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x2c\x20\x2d" \
-"\x70\x72\x69\x6e\x74\x20\x69\x73\x20\x61\x73\x73\x75\x6d\x65\x64" \
-"\x0a\x09\x2d\x70\x72\x69\x6e\x74\x09\x09\x50\x72\x69\x6e\x74\x20" \
-"\x66\x69\x6c\x65\x20\x6e\x61\x6d\x65\x0a\x09\x2d\x70\x72\x69\x6e" \
-"\x74\x30\x09\x09\x50\x72\x69\x6e\x74\x20\x66\x69\x6c\x65\x20\x6e" \
-"\x61\x6d\x65\x2c\x20\x4e\x55\x4c\x20\x74\x65\x72\x6d\x69\x6e\x61" \
-"\x74\x65\x64\x0a\x09\x2d\x65\x78\x65\x63\x20\x43\x4d\x44\x20\x41" \
-"\x52\x47\x20\x3b\x09\x52\x75\x6e\x20\x43\x4d\x44\x20\x77\x69\x74" \
-"\x68\x20\x61\x6c\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x73\x20" \
-"\x6f\x66\x20\x7b\x7d\x20\x72\x65\x70\x6c\x61\x63\x65\x64\x20\x62" \
-"\x79\x0a\x09\x09\x09\x66\x69\x6c\x65\x20\x6e\x61\x6d\x65\x2e\x20" \
-"\x46\x61\x69\x6c\x73\x20\x69\x66\x20\x43\x4d\x44\x20\x65\x78\x69" \
-"\x74\x73\x20\x77\x69\x74\x68\x20\x6e\x6f\x6e\x7a\x65\x72\x6f\x00" \
-"\x4d\x54\x44\x5f\x44\x45\x56\x49\x43\x45\x20\x4f\x46\x46\x53\x45" \
-"\x54\x20\x53\x45\x43\x54\x4f\x52\x53\x0a\x0a\x4c\x6f\x63\x6b\x20" \
-"\x70\x61\x72\x74\x20\x6f\x72\x20\x61\x6c\x6c\x20\x6f\x66\x20\x61" \
-"\x6e\x20\x4d\x54\x44\x20\x64\x65\x76\x69\x63\x65\x2e\x20\x49\x66" \
-"\x20\x53\x45\x43\x54\x4f\x52\x53\x20\x69\x73\x20\x2d\x31\x2c\x20" \
-"\x74\x68\x65\x6e\x20\x61\x6c\x6c\x20\x73\x65\x63\x74\x6f\x72\x73" \
-"\x0a\x77\x69\x6c\x6c\x20\x62\x65\x20\x6c\x6f\x63\x6b\x65\x64\x2c" \
-"\x20\x72\x65\x67\x61\x72\x64\x6c\x65\x73\x73\x20\x6f\x66\x20\x74" \
-"\x68\x65\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x4f\x46\x46\x53" \
-"\x45\x54\x00\x4d\x54\x44\x5f\x44\x45\x56\x49\x43\x45\x0a\x0a\x55" \
-"\x6e\x6c\x6f\x63\x6b\x20\x61\x6e\x20\x4d\x54\x44\x20\x64\x65\x76" \
-"\x69\x63\x65\x00\x2d\x76\x20\x46\x49\x4c\x45\x20\x4d\x54\x44\x5f" \
-"\x44\x45\x56\x49\x43\x45\x0a\x0a\x43\x6f\x70\x79\x20\x61\x6e\x20" \
-"\x69\x6d\x61\x67\x65\x20\x74\x6f\x20\x4d\x54\x44\x20\x64\x65\x76" \
-"\x69\x63\x65\x0a\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65" \
-"\x00\x5b\x2d\x73\x78\x75\x6e\x5d\x20\x46\x44\x7c\x7b\x46\x49\x4c" \
-"\x45\x20\x5b\x2d\x63\x5d\x20\x50\x52\x4f\x47\x20\x41\x52\x47\x53" \
-"\x7d\x0a\x0a\x5b\x55\x6e\x5d\x6c\x6f\x63\x6b\x20\x66\x69\x6c\x65" \
-"\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x2c\x20\x6f\x72\x20" \
-"\x6c\x6f\x63\x6b\x20\x46\x49\x4c\x45\x2c\x20\x72\x75\x6e\x20\x50" \
-"\x52\x4f\x47\x0a\x0a\x09\x2d\x73\x09\x53\x68\x61\x72\x65\x64\x20" \
-"\x6c\x6f\x63\x6b\x0a\x09\x2d\x78\x09\x45\x78\x63\x6c\x75\x73\x69" \
-"\x76\x65\x20\x6c\x6f\x63\x6b\x20\x28\x64\x65\x66\x61\x75\x6c\x74" \
-"\x29\x0a\x09\x2d\x75\x09\x55\x6e\x6c\x6f\x63\x6b\x20\x46\x44\x0a" \
-"\x09\x2d\x6e\x09\x46\x61\x69\x6c\x20\x72\x61\x74\x68\x65\x72\x20" \
-"\x74\x68\x61\x6e\x20\x77\x61\x69\x74\x00\x5b\x2d\x62\x73\x5d\x20" \
-"\x5b\x2d\x77\x20\x57\x49\x44\x54\x48\x5d\x20\x5b\x46\x49\x4c\x45" \
-"\x5d\x2e\x2e\x2e\x0a\x0a\x57\x72\x61\x70\x20\x69\x6e\x70\x75\x74" \
-"\x20\x6c\x69\x6e\x65\x73\x20\x69\x6e\x20\x65\x61\x63\x68\x20\x46" \
-"\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x2c\x20" \
-"\x77\x72\x69\x74\x69\x6e\x67\x20\x74\x6f\x20\x73\x74\x64\x6f\x75" \
-"\x74\x0a\x0a\x09\x2d\x62\x09\x43\x6f\x75\x6e\x74\x20\x62\x79\x74" \
-"\x65\x73\x20\x72\x61\x74\x68\x65\x72\x20\x74\x68\x61\x6e\x20\x63" \
-"\x6f\x6c\x75\x6d\x6e\x73\x0a\x09\x2d\x73\x09\x42\x72\x65\x61\x6b" \
-"\x20\x61\x74\x20\x73\x70\x61\x63\x65\x73\x0a\x09\x2d\x77\x09\x55" \
-"\x73\x65\x20\x57\x49\x44\x54\x48\x20\x63\x6f\x6c\x75\x6d\x6e\x73" \
-"\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x38\x30\x00\x0a" \
-"\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x74\x68\x65\x20\x61\x6d\x6f" \
-"\x75\x6e\x74\x20\x6f\x66\x20\x66\x72\x65\x65\x20\x61\x6e\x64\x20" \
-"\x75\x73\x65\x64\x20\x73\x79\x73\x74\x65\x6d\x20\x6d\x65\x6d\x6f" \
-"\x72\x79\x00\x44\x45\x56\x49\x43\x45\x0a\x0a\x46\x72\x65\x65\x20" \
-"\x61\x6c\x6c\x20\x6d\x65\x6d\x6f\x72\x79\x20\x75\x73\x65\x64\x20" \
-"\x62\x79\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64" \
-"\x20\x72\x61\x6d\x64\x69\x73\x6b\x00\x5b\x4f\x70\x74\x69\x6f\x6e" \
-"\x73\x5d\x20\x3c\x6d\x6f\x75\x6e\x74\x70\x6f\x69\x6e\x74\x3e\x0a" \
-"\x0a\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x0a\x09\x2d\x6f\x2c\x2d\x2d" \
-"\x6f\x66\x66\x73\x65\x74\x3d\x6f\x66\x66\x73\x65\x74\x09\x6f\x66" \
-"\x66\x73\x65\x74\x20\x69\x6e\x20\x62\x79\x74\x65\x73\x20\x74\x6f" \
-"\x20\x64\x69\x73\x63\x61\x72\x64\x20\x66\x72\x6f\x6d\x0a\x09\x2d" \
-"\x6c\x2c\x2d\x2d\x6c\x65\x6e\x67\x74\x68\x3d\x6c\x65\x6e\x67\x74" \
-"\x68\x09\x6c\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x62\x79\x74\x65" \
-"\x73\x20\x74\x6f\x20\x64\x69\x73\x63\x61\x72\x64\x20\x66\x72\x6f" \
-"\x6d\x20\x74\x68\x65\x20\x6f\x66\x66\x73\x65\x74\x0a\x09\x2d\x6d" \
-"\x2c\x2d\x2d\x6d\x69\x6e\x69\x6d\x75\x6d\x3d\x6d\x69\x6e\x69\x6d" \
-"\x75\x6d\x09\x6d\x69\x6e\x69\x6d\x75\x6d\x20\x65\x78\x74\x65\x6e" \
-"\x74\x20\x6c\x65\x6e\x67\x74\x68\x20\x74\x6f\x20\x64\x69\x73\x63" \
-"\x61\x72\x64\x0a\x09\x2d\x76\x2c\x2d\x2d\x76\x65\x72\x62\x6f\x73" \
-"\x65\x09\x09\x70\x72\x69\x6e\x74\x20\x6e\x75\x6d\x62\x65\x72\x20" \
-"\x6f\x66\x20\x64\x69\x73\x63\x61\x72\x64\x65\x64\x20\x62\x79\x74" \
-"\x65\x73\x00\x5b\x2d\x64\x5d\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x0a" \
-"\x0a\x57\x72\x69\x74\x65\x20\x66\x69\x6c\x65\x73\x27\x20\x62\x75" \
-"\x66\x66\x65\x72\x65\x64\x20\x62\x6c\x6f\x63\x6b\x73\x20\x74\x6f" \
-"\x20\x64\x69\x73\x6b\x0a\x0a\x09\x2d\x64\x09\x41\x76\x6f\x69\x64" \
-"\x20\x73\x79\x6e\x63\x69\x6e\x67\x20\x6d\x65\x74\x61\x64\x61\x74" \
-"\x61\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x48\x4f\x53\x54" \
-"\x20\x5b\x4c\x4f\x43\x41\x4c\x5f\x46\x49\x4c\x45\x5d\x20\x52\x45" \
-"\x4d\x4f\x54\x45\x5f\x46\x49\x4c\x45\x0a\x0a\x44\x6f\x77\x6e\x6c" \
-"\x6f\x61\x64\x20\x61\x20\x66\x69\x6c\x65\x20\x76\x69\x61\x20\x46" \
-"\x54\x50\x0a\x0a\x09\x2d\x63\x2c\x2d\x2d\x63\x6f\x6e\x74\x69\x6e" \
-"\x75\x65\x09\x09\x43\x6f\x6e\x74\x69\x6e\x75\x65\x20\x70\x72\x65" \
-"\x76\x69\x6f\x75\x73\x20\x74\x72\x61\x6e\x73\x66\x65\x72\x0a\x09" \
-"\x2d\x76\x2c\x2d\x2d\x76\x65\x72\x62\x6f\x73\x65\x09\x09\x56\x65" \
-"\x72\x62\x6f\x73\x65\x0a\x09\x2d\x75\x2c\x2d\x2d\x75\x73\x65\x72" \
-"\x6e\x61\x6d\x65\x20\x55\x53\x45\x52\x09\x55\x73\x65\x72\x6e\x61" \
-"\x6d\x65\x0a\x09\x2d\x70\x2c\x2d\x2d\x70\x61\x73\x73\x77\x6f\x72" \
-"\x64\x20\x50\x41\x53\x53\x09\x50\x61\x73\x73\x77\x6f\x72\x64\x0a" \
-"\x09\x2d\x50\x2c\x2d\x2d\x70\x6f\x72\x74\x20\x4e\x55\x4d\x09\x09" \
-"\x50\x6f\x72\x74\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x48" \
-"\x4f\x53\x54\x20\x5b\x52\x45\x4d\x4f\x54\x45\x5f\x46\x49\x4c\x45" \
-"\x5d\x20\x4c\x4f\x43\x41\x4c\x5f\x46\x49\x4c\x45\x0a\x0a\x55\x70" \
-"\x6c\x6f\x61\x64\x20\x61\x20\x66\x69\x6c\x65\x20\x74\x6f\x20\x61" \
-"\x20\x46\x54\x50\x20\x73\x65\x72\x76\x65\x72\x0a\x0a\x09\x2d\x76" \
-"\x2c\x2d\x2d\x76\x65\x72\x62\x6f\x73\x65\x09\x09\x56\x65\x72\x62" \
-"\x6f\x73\x65\x0a\x09\x2d\x75\x2c\x2d\x2d\x75\x73\x65\x72\x6e\x61" \
-"\x6d\x65\x20\x55\x53\x45\x52\x09\x55\x73\x65\x72\x6e\x61\x6d\x65" \
-"\x0a\x09\x2d\x70\x2c\x2d\x2d\x70\x61\x73\x73\x77\x6f\x72\x64\x20" \
-"\x50\x41\x53\x53\x09\x50\x61\x73\x73\x77\x6f\x72\x64\x0a\x09\x2d" \
-"\x50\x2c\x2d\x2d\x70\x6f\x72\x74\x20\x4e\x55\x4d\x09\x09\x50\x6f" \
-"\x72\x74\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x46\x49\x4c" \
-"\x45\x20\x6f\x72\x20\x50\x4f\x52\x54\x2f\x50\x52\x4f\x54\x4f\x0a" \
-"\x0a\x46\x69\x6e\x64\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x20" \
-"\x77\x68\x69\x63\x68\x20\x75\x73\x65\x20\x46\x49\x4c\x45\x73\x20" \
-"\x6f\x72\x20\x50\x4f\x52\x54\x73\x0a\x0a\x09\x2d\x6d\x09\x46\x69" \
-"\x6e\x64\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x20\x77\x68\x69" \
-"\x63\x68\x20\x75\x73\x65\x20\x73\x61\x6d\x65\x20\x66\x73\x20\x61" \
-"\x73\x20\x46\x49\x4c\x45\x73\x0a\x09\x2d\x34\x2c\x2d\x36\x09\x53" \
-"\x65\x61\x72\x63\x68\x20\x6f\x6e\x6c\x79\x20\x49\x50\x76\x34\x2f" \
-"\x49\x50\x76\x36\x20\x73\x70\x61\x63\x65\x0a\x09\x2d\x73\x09\x44" \
-"\x6f\x6e\x27\x74\x20\x64\x69\x73\x70\x6c\x61\x79\x20\x50\x49\x44" \
-"\x73\x0a\x09\x2d\x6b\x09\x4b\x69\x6c\x6c\x20\x66\x6f\x75\x6e\x64" \
-"\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x0a\x09\x2d\x53\x49\x47" \
-"\x4e\x41\x4c\x09\x53\x69\x67\x6e\x61\x6c\x20\x74\x6f\x20\x73\x65" \
-"\x6e\x64\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x4b\x49\x4c" \
-"\x4c\x29\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x2d\x2d" \
-"\x5d\x20\x4f\x50\x54\x53\x54\x52\x49\x4e\x47\x20\x50\x41\x52\x41" \
-"\x4d\x53\x0a\x0a\x09\x2d\x61\x2c\x2d\x2d\x61\x6c\x74\x65\x72\x6e" \
-"\x61\x74\x69\x76\x65\x09\x09\x41\x6c\x6c\x6f\x77\x20\x6c\x6f\x6e" \
-"\x67\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x73\x74\x61\x72\x74\x69" \
-"\x6e\x67\x20\x77\x69\x74\x68\x20\x73\x69\x6e\x67\x6c\x65\x20\x2d" \
-"\x0a\x09\x2d\x6c\x2c\x2d\x2d\x6c\x6f\x6e\x67\x6f\x70\x74\x69\x6f" \
-"\x6e\x73\x3d\x4c\x4f\x50\x54\x5b\x2c\x2e\x2e\x2e\x5d\x09\x4c\x6f" \
-"\x6e\x67\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x74\x6f\x20\x62\x65" \
-"\x20\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\x0a\x09\x2d\x6e\x2c" \
-"\x2d\x2d\x6e\x61\x6d\x65\x3d\x50\x52\x4f\x47\x4e\x41\x4d\x45\x09" \
-"\x09\x54\x68\x65\x20\x6e\x61\x6d\x65\x20\x75\x6e\x64\x65\x72\x20" \
-"\x77\x68\x69\x63\x68\x20\x65\x72\x72\x6f\x72\x73\x20\x61\x72\x65" \
-"\x20\x72\x65\x70\x6f\x72\x74\x65\x64\x0a\x09\x2d\x6f\x2c\x2d\x2d" \
-"\x6f\x70\x74\x69\x6f\x6e\x73\x3d\x4f\x50\x54\x53\x54\x52\x49\x4e" \
-"\x47\x09\x09\x53\x68\x6f\x72\x74\x20\x6f\x70\x74\x69\x6f\x6e\x73" \
-"\x20\x74\x6f\x20\x62\x65\x20\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65" \
-"\x64\x0a\x09\x2d\x71\x2c\x2d\x2d\x71\x75\x69\x65\x74\x09\x09\x09" \
-"\x44\x69\x73\x61\x62\x6c\x65\x20\x65\x72\x72\x6f\x72\x20\x72\x65" \
-"\x70\x6f\x72\x74\x69\x6e\x67\x20\x62\x79\x20\x67\x65\x74\x6f\x70" \
-"\x74\x28\x33\x29\x0a\x09\x2d\x51\x2c\x2d\x2d\x71\x75\x69\x65\x74" \
-"\x2d\x6f\x75\x74\x70\x75\x74\x09\x09\x4e\x6f\x20\x6e\x6f\x72\x6d" \
-"\x61\x6c\x20\x6f\x75\x74\x70\x75\x74\x0a\x09\x2d\x73\x2c\x2d\x2d" \
-"\x73\x68\x65\x6c\x6c\x3d\x53\x48\x45\x4c\x4c\x09\x09\x53\x65\x74" \
-"\x20\x73\x68\x65\x6c\x6c\x20\x71\x75\x6f\x74\x69\x6e\x67\x20\x63" \
-"\x6f\x6e\x76\x65\x6e\x74\x69\x6f\x6e\x73\x0a\x09\x2d\x54\x2c\x2d" \
-"\x2d\x74\x65\x73\x74\x09\x09\x09\x54\x65\x73\x74\x20\x66\x6f\x72" \
-"\x20\x67\x65\x74\x6f\x70\x74\x28\x31\x29\x20\x76\x65\x72\x73\x69" \
-"\x6f\x6e\x0a\x09\x2d\x75\x2c\x2d\x2d\x75\x6e\x71\x75\x6f\x74\x65" \
-"\x64\x09\x09\x09\x44\x6f\x6e\x27\x74\x20\x71\x75\x6f\x74\x65\x20" \
-"\x74\x68\x65\x20\x6f\x75\x74\x70\x75\x74\x0a\x0a\x45\x78\x61\x6d" \
-"\x70\x6c\x65\x3a\x0a\x0a\x4f\x3d\x60\x67\x65\x74\x6f\x70\x74\x20" \
-"\x2d\x6c\x20\x62\x62\x3a\x20\x2d\x2d\x20\x61\x62\x3a\x63\x3a\x3a" \
-"\x20\x22\x24\x40\x22\x60\x20\x7c\x7c\x20\x65\x78\x69\x74\x20\x31" \
-"\x0a\x65\x76\x61\x6c\x20\x73\x65\x74\x20\x2d\x2d\x20\x22\x24\x4f" \
-"\x22\x0a\x77\x68\x69\x6c\x65\x20\x74\x72\x75\x65\x3b\x20\x64\x6f" \
-"\x0a\x09\x63\x61\x73\x65\x20\x22\x24\x31\x22\x20\x69\x6e\x0a\x09" \
-"\x2d\x61\x29\x09\x65\x63\x68\x6f\x20\x41\x3b\x20\x73\x68\x69\x66" \
-"\x74\x3b\x3b\x0a\x09\x2d\x62\x7c\x2d\x2d\x62\x62\x29\x20\x65\x63" \
-"\x68\x6f\x20\x22\x42\x3a\x27\x24\x32\x27\x22\x3b\x20\x73\x68\x69" \
-"\x66\x74\x20\x32\x3b\x3b\x0a\x09\x2d\x63\x29\x09\x63\x61\x73\x65" \
-"\x20\x22\x24\x32\x22\x20\x69\x6e\x0a\x09\x09\x22\x22\x29\x09\x65" \
-"\x63\x68\x6f\x20\x43\x3b\x20\x73\x68\x69\x66\x74\x20\x32\x3b\x3b" \
-"\x0a\x09\x09\x2a\x29\x09\x65\x63\x68\x6f\x20\x22\x43\x3a\x27\x24" \
-"\x32\x27\x22\x3b\x20\x73\x68\x69\x66\x74\x20\x32\x3b\x3b\x0a\x09" \
-"\x09\x65\x73\x61\x63\x3b\x3b\x0a\x09\x2d\x2d\x29\x09\x73\x68\x69" \
-"\x66\x74\x3b\x20\x62\x72\x65\x61\x6b\x3b\x3b\x0a\x09\x2a\x29\x09" \
-"\x65\x63\x68\x6f\x20\x45\x72\x72\x6f\x72\x3b\x20\x65\x78\x69\x74" \
-"\x20\x31\x3b\x3b\x0a\x09\x65\x73\x61\x63\x0a\x64\x6f\x6e\x65\x00" \
-"\x5b\x2d\x48\x68\x6e\x6c\x4c\x6f\x71\x76\x73\x72\x69\x77\x46\x45" \
-"\x5d\x20\x5b\x2d\x6d\x20\x4e\x5d\x20\x5b\x2d\x41\x2f\x42\x2f\x43" \
-"\x20\x4e\x5d\x20\x50\x41\x54\x54\x45\x52\x4e\x2f\x2d\x65\x20\x50" \
-"\x41\x54\x54\x45\x52\x4e\x2e\x2e\x2e\x2f\x2d\x66\x20\x46\x49\x4c" \
-"\x45\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x53\x65\x61" \
-"\x72\x63\x68\x20\x66\x6f\x72\x20\x50\x41\x54\x54\x45\x52\x4e\x20" \
-"\x69\x6e\x20\x46\x49\x4c\x45\x73\x20\x28\x6f\x72\x20\x73\x74\x64" \
-"\x69\x6e\x29\x0a\x0a\x09\x2d\x48\x09\x41\x64\x64\x20\x27\x66\x69" \
-"\x6c\x65\x6e\x61\x6d\x65\x3a\x27\x20\x70\x72\x65\x66\x69\x78\x0a" \
-"\x09\x2d\x68\x09\x44\x6f\x20\x6e\x6f\x74\x20\x61\x64\x64\x20\x27" \
-"\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3a\x27\x20\x70\x72\x65\x66\x69" \
-"\x78\x0a\x09\x2d\x6e\x09\x41\x64\x64\x20\x27\x6c\x69\x6e\x65\x5f" \
-"\x6e\x6f\x3a\x27\x20\x70\x72\x65\x66\x69\x78\x0a\x09\x2d\x6c\x09" \
-"\x53\x68\x6f\x77\x20\x6f\x6e\x6c\x79\x20\x6e\x61\x6d\x65\x73\x20" \
-"\x6f\x66\x20\x66\x69\x6c\x65\x73\x20\x74\x68\x61\x74\x20\x6d\x61" \
-"\x74\x63\x68\x0a\x09\x2d\x4c\x09\x53\x68\x6f\x77\x20\x6f\x6e\x6c" \
-"\x79\x20\x6e\x61\x6d\x65\x73\x20\x6f\x66\x20\x66\x69\x6c\x65\x73" \
-"\x20\x74\x68\x61\x74\x20\x64\x6f\x6e\x27\x74\x20\x6d\x61\x74\x63" \
-"\x68\x0a\x09\x2d\x63\x09\x53\x68\x6f\x77\x20\x6f\x6e\x6c\x79\x20" \
-"\x63\x6f\x75\x6e\x74\x20\x6f\x66\x20\x6d\x61\x74\x63\x68\x69\x6e" \
-"\x67\x20\x6c\x69\x6e\x65\x73\x0a\x09\x2d\x6f\x09\x53\x68\x6f\x77" \
-"\x20\x6f\x6e\x6c\x79\x20\x74\x68\x65\x20\x6d\x61\x74\x63\x68\x69" \
-"\x6e\x67\x20\x70\x61\x72\x74\x20\x6f\x66\x20\x6c\x69\x6e\x65\x0a" \
-"\x09\x2d\x71\x09\x51\x75\x69\x65\x74\x2e\x20\x52\x65\x74\x75\x72" \
-"\x6e\x20\x30\x20\x69\x66\x20\x50\x41\x54\x54\x45\x52\x4e\x20\x69" \
-"\x73\x20\x66\x6f\x75\x6e\x64\x2c\x20\x31\x20\x6f\x74\x68\x65\x72" \
-"\x77\x69\x73\x65\x0a\x09\x2d\x76\x09\x53\x65\x6c\x65\x63\x74\x20" \
-"\x6e\x6f\x6e\x2d\x6d\x61\x74\x63\x68\x69\x6e\x67\x20\x6c\x69\x6e" \
-"\x65\x73\x0a\x09\x2d\x73\x09\x53\x75\x70\x70\x72\x65\x73\x73\x20" \
-"\x6f\x70\x65\x6e\x20\x61\x6e\x64\x20\x72\x65\x61\x64\x20\x65\x72" \
-"\x72\x6f\x72\x73\x0a\x09\x2d\x72\x09\x52\x65\x63\x75\x72\x73\x65" \
-"\x0a\x09\x2d\x69\x09\x49\x67\x6e\x6f\x72\x65\x20\x63\x61\x73\x65" \
-"\x0a\x09\x2d\x77\x09\x4d\x61\x74\x63\x68\x20\x77\x68\x6f\x6c\x65" \
-"\x20\x77\x6f\x72\x64\x73\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x78\x09" \
-"\x4d\x61\x74\x63\x68\x20\x77\x68\x6f\x6c\x65\x20\x6c\x69\x6e\x65" \
-"\x73\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x46\x09\x50\x41\x54\x54\x45" \
-"\x52\x4e\x20\x69\x73\x20\x61\x20\x6c\x69\x74\x65\x72\x61\x6c\x20" \
-"\x28\x6e\x6f\x74\x20\x72\x65\x67\x65\x78\x70\x29\x0a\x09\x2d\x45" \
-"\x09\x50\x41\x54\x54\x45\x52\x4e\x20\x69\x73\x20\x61\x6e\x20\x65" \
-"\x78\x74\x65\x6e\x64\x65\x64\x20\x72\x65\x67\x65\x78\x70\x0a\x09" \
-"\x2d\x6d\x20\x4e\x09\x4d\x61\x74\x63\x68\x20\x75\x70\x20\x74\x6f" \
-"\x20\x4e\x20\x74\x69\x6d\x65\x73\x20\x70\x65\x72\x20\x66\x69\x6c" \
-"\x65\x0a\x09\x2d\x41\x20\x4e\x09\x50\x72\x69\x6e\x74\x20\x4e\x20" \
-"\x6c\x69\x6e\x65\x73\x20\x6f\x66\x20\x74\x72\x61\x69\x6c\x69\x6e" \
-"\x67\x20\x63\x6f\x6e\x74\x65\x78\x74\x0a\x09\x2d\x42\x20\x4e\x09" \
-"\x50\x72\x69\x6e\x74\x20\x4e\x20\x6c\x69\x6e\x65\x73\x20\x6f\x66" \
-"\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x63\x6f\x6e\x74\x65\x78\x74" \
-"\x0a\x09\x2d\x43\x20\x4e\x09\x53\x61\x6d\x65\x20\x61\x73\x20\x27" \
-"\x2d\x41\x20\x4e\x20\x2d\x42\x20\x4e\x27\x0a\x09\x2d\x65\x20\x50" \
-"\x54\x52\x4e\x09\x50\x61\x74\x74\x65\x72\x6e\x20\x74\x6f\x20\x6d" \
-"\x61\x74\x63\x68\x0a\x09\x2d\x66\x20\x46\x49\x4c\x45\x09\x52\x65" \
-"\x61\x64\x20\x70\x61\x74\x74\x65\x72\x6e\x20\x66\x72\x6f\x6d\x20" \
-"\x66\x69\x6c\x65\x00\x5b\x55\x53\x45\x52\x5d\x0a\x0a\x50\x72\x69" \
-"\x6e\x74\x20\x74\x68\x65\x20\x67\x72\x6f\x75\x70\x20\x6d\x65\x6d" \
-"\x62\x65\x72\x73\x68\x69\x70\x73\x20\x6f\x66\x20\x55\x53\x45\x52" \
-"\x20\x6f\x72\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x63\x75\x72\x72" \
-"\x65\x6e\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x00\x5b\x2d\x63\x66" \
-"\x74\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65" \
-"\x63\x6f\x6d\x70\x72\x65\x73\x73\x20\x46\x49\x4c\x45\x73\x20\x28" \
-"\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d\x63\x09\x57" \
-"\x72\x69\x74\x65\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09" \
-"\x2d\x66\x09\x46\x6f\x72\x63\x65\x0a\x09\x2d\x74\x09\x54\x65\x73" \
-"\x74\x20\x66\x69\x6c\x65\x20\x69\x6e\x74\x65\x67\x72\x69\x74\x79" \
-"\x00\x5b\x2d\x63\x66\x64\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x43\x6f\x6d\x70\x72\x65\x73\x73\x20\x46\x49\x4c\x45" \
-"\x73\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d" \
-"\x64\x09\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x0a\x09\x2d\x63" \
-"\x09\x57\x72\x69\x74\x65\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74" \
-"\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x00\x5b\x2d\x64\x20\x44" \
-"\x45\x4c\x41\x59\x5d\x20\x5b\x2d\x6e\x5d\x20\x5b\x2d\x66\x5d\x0a" \
-"\x0a\x48\x61\x6c\x74\x20\x74\x68\x65\x20\x73\x79\x73\x74\x65\x6d" \
-"\x0a\x0a\x09\x2d\x64\x20\x53\x45\x43\x09\x44\x65\x6c\x61\x79\x20" \
-"\x69\x6e\x74\x65\x72\x76\x61\x6c\x0a\x09\x2d\x6e\x09\x44\x6f\x20" \
-"\x6e\x6f\x74\x20\x73\x79\x6e\x63\x0a\x09\x2d\x66\x09\x46\x6f\x72" \
-"\x63\x65\x20\x28\x64\x6f\x6e\x27\x74\x20\x67\x6f\x20\x74\x68\x72" \
-"\x6f\x75\x67\x68\x20\x69\x6e\x69\x74\x29\x00\x5b\x4f\x50\x54\x49" \
-"\x4f\x4e\x53\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a" \
-"\x50\x72\x69\x6e\x74\x20\x66\x69\x72\x73\x74\x20\x31\x30\x20\x6c" \
-"\x69\x6e\x65\x73\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x46\x49\x4c" \
-"\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x74\x6f\x20" \
-"\x73\x74\x64\x6f\x75\x74\x2e\x0a\x57\x69\x74\x68\x20\x6d\x6f\x72" \
-"\x65\x20\x74\x68\x61\x6e\x20\x6f\x6e\x65\x20\x46\x49\x4c\x45\x2c" \
-"\x20\x70\x72\x65\x63\x65\x64\x65\x20\x65\x61\x63\x68\x20\x77\x69" \
-"\x74\x68\x20\x61\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x68\x65" \
-"\x61\x64\x65\x72\x2e\x0a\x0a\x09\x2d\x6e\x20\x4e\x5b\x6b\x62\x6d" \
-"\x5d\x09\x50\x72\x69\x6e\x74\x20\x66\x69\x72\x73\x74\x20\x4e\x20" \
-"\x6c\x69\x6e\x65\x73\x0a\x09\x2d\x63\x20\x4e\x5b\x6b\x62\x6d\x5d" \
-"\x09\x50\x72\x69\x6e\x74\x20\x66\x69\x72\x73\x74\x20\x4e\x20\x62" \
-"\x79\x74\x65\x73\x0a\x09\x2d\x71\x09\x09\x4e\x65\x76\x65\x72\x20" \
-"\x70\x72\x69\x6e\x74\x20\x68\x65\x61\x64\x65\x72\x73\x0a\x09\x2d" \
-"\x76\x09\x09\x41\x6c\x77\x61\x79\x73\x20\x70\x72\x69\x6e\x74\x20" \
-"\x68\x65\x61\x64\x65\x72\x73\x0a\x0a\x4e\x20\x6d\x61\x79\x20\x62" \
-"\x65\x20\x73\x75\x66\x66\x69\x78\x65\x64\x20\x62\x79\x20\x6b\x20" \
-"\x28\x78\x31\x30\x32\x34\x29\x2c\x20\x62\x20\x28\x78\x35\x31\x32" \
-"\x29\x2c\x20\x6f\x72\x20\x6d\x20\x28\x78\x31\x30\x32\x34\x5e\x32" \
-"\x29\x2e\x00\x5b\x2d\x62\x63\x43\x64\x65\x66\x6e\x6f\x73\x76\x78" \
-"\x52\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x69" \
-"\x73\x70\x6c\x61\x79\x20\x46\x49\x4c\x45\x73\x20\x28\x6f\x72\x20" \
-"\x73\x74\x64\x69\x6e\x29\x20\x69\x6e\x20\x61\x20\x75\x73\x65\x72" \
-"\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x66\x6f\x72\x6d\x61" \
-"\x74\x0a\x0a\x09\x2d\x62\x09\x09\x4f\x6e\x65\x2d\x62\x79\x74\x65" \
-"\x20\x6f\x63\x74\x61\x6c\x20\x64\x69\x73\x70\x6c\x61\x79\x0a\x09" \
-"\x2d\x63\x09\x09\x4f\x6e\x65\x2d\x62\x79\x74\x65\x20\x63\x68\x61" \
-"\x72\x61\x63\x74\x65\x72\x20\x64\x69\x73\x70\x6c\x61\x79\x0a\x09" \
-"\x2d\x43\x09\x09\x43\x61\x6e\x6f\x6e\x69\x63\x61\x6c\x20\x68\x65" \
-"\x78\x2b\x41\x53\x43\x49\x49\x2c\x20\x31\x36\x20\x62\x79\x74\x65" \
-"\x73\x20\x70\x65\x72\x20\x6c\x69\x6e\x65\x0a\x09\x2d\x64\x09\x09" \
-"\x54\x77\x6f\x2d\x62\x79\x74\x65\x20\x64\x65\x63\x69\x6d\x61\x6c" \
-"\x20\x64\x69\x73\x70\x6c\x61\x79\x0a\x09\x2d\x65\x20\x46\x4f\x52" \
-"\x4d\x41\x54\x5f\x53\x54\x52\x49\x4e\x47\x0a\x09\x2d\x66\x20\x46" \
-"\x4f\x52\x4d\x41\x54\x5f\x46\x49\x4c\x45\x0a\x09\x2d\x6e\x20\x4c" \
-"\x45\x4e\x47\x54\x48\x09\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x20" \
-"\x6f\x6e\x6c\x79\x20\x4c\x45\x4e\x47\x54\x48\x20\x62\x79\x74\x65" \
-"\x73\x20\x6f\x66\x20\x69\x6e\x70\x75\x74\x0a\x09\x2d\x6f\x09\x09" \
-"\x54\x77\x6f\x2d\x62\x79\x74\x65\x20\x6f\x63\x74\x61\x6c\x20\x64" \
-"\x69\x73\x70\x6c\x61\x79\x0a\x09\x2d\x73\x20\x4f\x46\x46\x53\x45" \
-"\x54\x09\x53\x6b\x69\x70\x20\x4f\x46\x46\x53\x45\x54\x20\x62\x79" \
-"\x74\x65\x73\x0a\x09\x2d\x76\x09\x09\x44\x69\x73\x70\x6c\x61\x79" \
-"\x20\x61\x6c\x6c\x20\x69\x6e\x70\x75\x74\x20\x64\x61\x74\x61\x0a" \
-"\x09\x2d\x78\x09\x09\x54\x77\x6f\x2d\x62\x79\x74\x65\x20\x68\x65" \
-"\x78\x61\x64\x65\x63\x69\x6d\x61\x6c\x20\x64\x69\x73\x70\x6c\x61" \
-"\x79\x0a\x09\x2d\x52\x09\x09\x52\x65\x76\x65\x72\x73\x65\x20\x6f" \
-"\x66\x20\x27\x68\x65\x78\x64\x75\x6d\x70\x20\x2d\x43\x76\x27\x00" \
-"\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x55\x53\x45\x52\x5d" \
-"\x0a\x0a\x50\x72\x69\x6e\x74\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74" \
-"\x69\x6f\x6e\x20\x61\x62\x6f\x75\x74\x20\x55\x53\x45\x52\x20\x6f" \
-"\x72\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x75\x73" \
-"\x65\x72\x0a\x0a\x09\x2d\x75\x09\x55\x73\x65\x72\x20\x49\x44\x0a" \
-"\x09\x2d\x67\x09\x47\x72\x6f\x75\x70\x20\x49\x44\x0a\x09\x2d\x47" \
-"\x09\x53\x75\x70\x70\x6c\x65\x6d\x65\x6e\x74\x61\x72\x79\x20\x67" \
-"\x72\x6f\x75\x70\x20\x49\x44\x73\x0a\x09\x2d\x6e\x09\x50\x72\x69" \
-"\x6e\x74\x20\x6e\x61\x6d\x65\x73\x20\x69\x6e\x73\x74\x65\x61\x64" \
-"\x20\x6f\x66\x20\x6e\x75\x6d\x62\x65\x72\x73\x0a\x09\x2d\x72\x09" \
-"\x50\x72\x69\x6e\x74\x20\x72\x65\x61\x6c\x20\x49\x44\x20\x69\x6e" \
-"\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x65\x66\x66\x65\x63\x74\x69" \
-"\x76\x65\x20\x49\x44\x00\x5b\x2d\x61\x5d\x20\x69\x6e\x74\x65\x72" \
-"\x66\x61\x63\x65\x20\x5b\x61\x64\x64\x72\x65\x73\x73\x5d\x0a\x0a" \
-"\x43\x6f\x6e\x66\x69\x67\x75\x72\x65\x20\x61\x20\x6e\x65\x74\x77" \
-"\x6f\x72\x6b\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x0a\x0a\x09" \
-"\x5b\x61\x64\x64\x20\x41\x44\x44\x52\x45\x53\x53\x5b\x2f\x50\x52" \
-"\x45\x46\x49\x58\x4c\x45\x4e\x5d\x5d\x0a\x09\x5b\x64\x65\x6c\x20" \
-"\x41\x44\x44\x52\x45\x53\x53\x5b\x2f\x50\x52\x45\x46\x49\x58\x4c" \
-"\x45\x4e\x5d\x5d\x0a\x09\x5b\x5b\x2d\x5d\x62\x72\x6f\x61\x64\x63" \
-"\x61\x73\x74\x20\x5b\x41\x44\x44\x52\x45\x53\x53\x5d\x5d\x20\x5b" \
-"\x5b\x2d\x5d\x70\x6f\x69\x6e\x74\x6f\x70\x6f\x69\x6e\x74\x20\x5b" \
-"\x41\x44\x44\x52\x45\x53\x53\x5d\x5d\x0a\x09\x5b\x6e\x65\x74\x6d" \
-"\x61\x73\x6b\x20\x41\x44\x44\x52\x45\x53\x53\x5d\x20\x5b\x64\x73" \
-"\x74\x61\x64\x64\x72\x20\x41\x44\x44\x52\x45\x53\x53\x5d\x0a\x09" \
-"\x5b\x68\x77\x20\x65\x74\x68\x65\x72\x20\x41\x44\x44\x52\x45\x53" \
-"\x53\x5d\x20\x5b\x6d\x65\x74\x72\x69\x63\x20\x4e\x4e\x5d\x20\x5b" \
-"\x6d\x74\x75\x20\x4e\x4e\x5d\x0a\x09\x5b\x5b\x2d\x5d\x74\x72\x61" \
-"\x69\x6c\x65\x72\x73\x5d\x20\x5b\x5b\x2d\x5d\x61\x72\x70\x5d\x20" \
-"\x5b\x5b\x2d\x5d\x61\x6c\x6c\x6d\x75\x6c\x74\x69\x5d\x0a\x09\x5b" \
-"\x6d\x75\x6c\x74\x69\x63\x61\x73\x74\x5d\x20\x5b\x5b\x2d\x5d\x70" \
-"\x72\x6f\x6d\x69\x73\x63\x5d\x20\x5b\x74\x78\x71\x75\x65\x75\x65" \
-"\x6c\x65\x6e\x20\x4e\x4e\x5d\x20\x5b\x5b\x2d\x5d\x64\x79\x6e\x61" \
-"\x6d\x69\x63\x5d\x0a\x09\x5b\x75\x70\x7c\x64\x6f\x77\x6e\x5d\x20" \
-"\x2e\x2e\x2e\x00\x5b\x2d\x66\x65\x5d\x20\x5b\x2d\x71\x20\x4e\x5d" \
-"\x20\x5b\x2d\x52\x20\x4e\x5d\x20\x5b\x43\x4f\x4e\x46\x46\x49\x4c" \
-"\x45\x5d\x0a\x0a\x4c\x69\x73\x74\x65\x6e\x20\x66\x6f\x72\x20\x6e" \
-"\x65\x74\x77\x6f\x72\x6b\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f" \
-"\x6e\x73\x20\x61\x6e\x64\x20\x6c\x61\x75\x6e\x63\x68\x20\x70\x72" \
-"\x6f\x67\x72\x61\x6d\x73\x0a\x0a\x09\x2d\x66\x09\x52\x75\x6e\x20" \
-"\x69\x6e\x20\x66\x6f\x72\x65\x67\x72\x6f\x75\x6e\x64\x0a\x09\x2d" \
-"\x65\x09\x4c\x6f\x67\x20\x74\x6f\x20\x73\x74\x64\x65\x72\x72\x0a" \
-"\x09\x2d\x71\x20\x4e\x09\x53\x6f\x63\x6b\x65\x74\x20\x6c\x69\x73" \
-"\x74\x65\x6e\x20\x71\x75\x65\x75\x65\x20\x28\x64\x65\x66\x61\x75" \
-"\x6c\x74\x3a\x20\x31\x32\x38\x29\x0a\x09\x2d\x52\x20\x4e\x09\x50" \
-"\x61\x75\x73\x65\x20\x73\x65\x72\x76\x69\x63\x65\x73\x20\x61\x66" \
-"\x74\x65\x72\x20\x4e\x20\x63\x6f\x6e\x6e\x65\x63\x74\x73\x2f\x6d" \
-"\x69\x6e\x0a\x09\x09\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x30" \
-"\x20\x2d\x20\x64\x69\x73\x61\x62\x6c\x65\x64\x29\x00\x46\x49\x4c" \
-"\x45\x20\x5b\x53\x59\x4d\x42\x4f\x4c\x3d\x56\x41\x4c\x55\x45\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x4c\x6f\x61\x64\x20\x74\x68\x65\x20\x73\x70" \
-"\x65\x63\x69\x66\x69\x65\x64\x20\x6b\x65\x72\x6e\x65\x6c\x20\x6d" \
-"\x6f\x64\x75\x6c\x65\x73\x20\x69\x6e\x74\x6f\x20\x74\x68\x65\x20" \
-"\x6b\x65\x72\x6e\x65\x6c\x00\x5b\x2d\x63\x64\x44\x73\x70\x5d\x20" \
-"\x5b\x2d\x6f\x20\x55\x53\x45\x52\x5d\x20\x5b\x2d\x67\x20\x47\x52" \
-"\x50\x5d\x20\x5b\x2d\x6d\x20\x4d\x4f\x44\x45\x5d\x20\x5b\x53\x4f" \
-"\x55\x52\x43\x45\x5d\x2e\x2e\x2e\x20\x44\x45\x53\x54\x0a\x0a\x43" \
-"\x6f\x70\x79\x20\x66\x69\x6c\x65\x73\x20\x61\x6e\x64\x20\x73\x65" \
-"\x74\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x0a\x0a\x09\x2d" \
-"\x63\x09\x4a\x75\x73\x74\x20\x63\x6f\x70\x79\x20\x28\x64\x65\x66" \
-"\x61\x75\x6c\x74\x29\x0a\x09\x2d\x64\x09\x43\x72\x65\x61\x74\x65" \
-"\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x09\x2d\x44" \
-"\x09\x43\x72\x65\x61\x74\x65\x20\x6c\x65\x61\x64\x69\x6e\x67\x20" \
-"\x74\x61\x72\x67\x65\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69" \
-"\x65\x73\x0a\x09\x2d\x73\x09\x53\x74\x72\x69\x70\x20\x73\x79\x6d" \
-"\x62\x6f\x6c\x20\x74\x61\x62\x6c\x65\x0a\x09\x2d\x70\x09\x50\x72" \
-"\x65\x73\x65\x72\x76\x65\x20\x64\x61\x74\x65\x0a\x09\x2d\x6f\x20" \
-"\x55\x53\x45\x52\x09\x53\x65\x74\x20\x6f\x77\x6e\x65\x72\x73\x68" \
-"\x69\x70\x0a\x09\x2d\x67\x20\x47\x52\x50\x09\x53\x65\x74\x20\x67" \
-"\x72\x6f\x75\x70\x20\x6f\x77\x6e\x65\x72\x73\x68\x69\x70\x0a\x09" \
-"\x2d\x6d\x20\x4d\x4f\x44\x45\x09\x53\x65\x74\x20\x70\x65\x72\x6d" \
-"\x69\x73\x73\x69\x6f\x6e\x73\x00\x5b\x2d\x63\x20\x31\x2d\x33\x5d" \
-"\x20\x5b\x2d\x6e\x20\x30\x2d\x37\x5d\x20\x5b\x2d\x70\x20\x50\x49" \
-"\x44\x5d\x20\x5b\x50\x52\x4f\x47\x5d\x0a\x0a\x43\x68\x61\x6e\x67" \
-"\x65\x20\x49\x2f\x4f\x20\x70\x72\x69\x6f\x72\x69\x74\x79\x20\x61" \
-"\x6e\x64\x20\x63\x6c\x61\x73\x73\x0a\x0a\x09\x2d\x63\x09\x43\x6c" \
-"\x61\x73\x73\x2e\x20\x31\x3a\x72\x65\x61\x6c\x74\x69\x6d\x65\x20" \
-"\x32\x3a\x62\x65\x73\x74\x2d\x65\x66\x66\x6f\x72\x74\x20\x33\x3a" \
-"\x69\x64\x6c\x65\x0a\x09\x2d\x6e\x09\x50\x72\x69\x6f\x72\x69\x74" \
-"\x79\x00\x5b\x2d\x63\x5d\x20\x5b\x2d\x64\x5d\x20\x5b\x2d\x74\x5d" \
-"\x20\x5b\x2d\x7a\x5d\x20\x5b\x2d\x6b\x7c\x2d\x6d\x5d\x20\x5b\x41" \
-"\x4c\x4c\x7c\x42\x4c\x4f\x43\x4b\x44\x45\x56\x2e\x2e\x2e\x5d\x20" \
-"\x5b\x49\x4e\x54\x45\x52\x56\x41\x4c\x20\x5b\x43\x4f\x55\x4e\x54" \
-"\x5d\x5d\x0a\x0a\x52\x65\x70\x6f\x72\x74\x20\x43\x50\x55\x20\x61" \
-"\x6e\x64\x20\x49\x2f\x4f\x20\x73\x74\x61\x74\x69\x73\x74\x69\x63" \
-"\x73\x0a\x0a\x09\x2d\x63\x09\x53\x68\x6f\x77\x20\x43\x50\x55\x20" \
-"\x75\x74\x69\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x0a\x09\x2d\x64\x09" \
-"\x53\x68\x6f\x77\x20\x64\x65\x76\x69\x63\x65\x20\x75\x74\x69\x6c" \
-"\x69\x7a\x61\x74\x69\x6f\x6e\x0a\x09\x2d\x74\x09\x50\x72\x69\x6e" \
-"\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x74\x69\x6d\x65\x0a\x09" \
-"\x2d\x7a\x09\x4f\x6d\x69\x74\x20\x64\x65\x76\x69\x63\x65\x73\x20" \
-"\x77\x69\x74\x68\x20\x6e\x6f\x20\x61\x63\x74\x69\x76\x69\x74\x79" \
-"\x0a\x09\x2d\x6b\x09\x55\x73\x65\x20\x6b\x62\x2f\x73\x0a\x09\x2d" \
-"\x6d\x09\x55\x73\x65\x20\x4d\x62\x2f\x73\x00\x5b\x4f\x50\x54\x49" \
-"\x4f\x4e\x53\x5d\x20\x7b\x61\x64\x64\x72\x65\x73\x73\x20\x7c\x20" \
-"\x72\x6f\x75\x74\x65\x20\x7c\x20\x6c\x69\x6e\x6b\x20\x7c\x20\x72" \
-"\x75\x6c\x65\x7d\x20\x7b\x43\x4f\x4d\x4d\x41\x4e\x44\x7d\x0a\x0a" \
-"\x69\x70\x20\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x4f\x42\x4a" \
-"\x45\x43\x54\x20\x7b\x43\x4f\x4d\x4d\x41\x4e\x44\x7d\x0a\x77\x68" \
-"\x65\x72\x65\x20\x4f\x42\x4a\x45\x43\x54\x20\x3a\x3d\x20\x7b\x61" \
-"\x64\x64\x72\x65\x73\x73\x20\x7c\x20\x72\x6f\x75\x74\x65\x20\x7c" \
-"\x20\x6c\x69\x6e\x6b\x20\x7c\x20\x72\x75\x6c\x65\x7d\x0a\x4f\x50" \
-"\x54\x49\x4f\x4e\x53\x20\x3a\x3d\x20\x7b\x20\x2d\x66\x5b\x61\x6d" \
-"\x69\x6c\x79\x5d\x20\x7b\x20\x69\x6e\x65\x74\x20\x7c\x20\x69\x6e" \
-"\x65\x74\x36\x20\x7c\x20\x6c\x69\x6e\x6b\x20\x7d\x20\x7c\x20\x2d" \
-"\x6f\x5b\x6e\x65\x6c\x69\x6e\x65\x5d\x20\x7d\x00\x5b\x2d\x6c\x5d" \
-"\x20\x5b\x2d\x53\x49\x47\x5d\x20\x50\x49\x44\x2e\x2e\x2e\x0a\x0a" \
-"\x53\x65\x6e\x64\x20\x61\x20\x73\x69\x67\x6e\x61\x6c\x20\x28\x64" \
-"\x65\x66\x61\x75\x6c\x74\x3a\x20\x54\x45\x52\x4d\x29\x20\x74\x6f" \
-"\x20\x67\x69\x76\x65\x6e\x20\x50\x49\x44\x73\x0a\x0a\x09\x2d\x6c" \
-"\x09\x4c\x69\x73\x74\x20\x61\x6c\x6c\x20\x73\x69\x67\x6e\x61\x6c" \
-"\x20\x6e\x61\x6d\x65\x73\x20\x61\x6e\x64\x20\x6e\x75\x6d\x62\x65" \
-"\x72\x73\x00\x5b\x2d\x6c\x5d\x20\x5b\x2d\x71\x5d\x20\x5b\x2d\x53" \
-"\x49\x47\x5d\x20\x50\x52\x4f\x43\x45\x53\x53\x5f\x4e\x41\x4d\x45" \
-"\x2e\x2e\x2e\x0a\x0a\x53\x65\x6e\x64\x20\x61\x20\x73\x69\x67\x6e" \
-"\x61\x6c\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x54\x45\x52" \
-"\x4d\x29\x20\x74\x6f\x20\x67\x69\x76\x65\x6e\x20\x70\x72\x6f\x63" \
-"\x65\x73\x73\x65\x73\x0a\x0a\x09\x2d\x6c\x09\x4c\x69\x73\x74\x20" \
-"\x61\x6c\x6c\x20\x73\x69\x67\x6e\x61\x6c\x20\x6e\x61\x6d\x65\x73" \
-"\x20\x61\x6e\x64\x20\x6e\x75\x6d\x62\x65\x72\x73\x0a\x09\x2d\x71" \
-"\x09\x44\x6f\x6e\x27\x74\x20\x63\x6f\x6d\x70\x6c\x61\x69\x6e\x20" \
-"\x69\x66\x20\x6e\x6f\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x20" \
-"\x77\x65\x72\x65\x20\x6b\x69\x6c\x6c\x65\x64\x00\x5b\x2d\x6c\x5d" \
-"\x20\x5b\x2d\x53\x49\x47\x5d\x20\x5b\x2d\x6f\x20\x50\x49\x44\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x53\x65\x6e\x64\x20\x61\x20\x73\x69\x67\x6e" \
-"\x61\x6c\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x54\x45\x52" \
-"\x4d\x29\x20\x74\x6f\x20\x61\x6c\x6c\x20\x70\x72\x6f\x63\x65\x73" \
-"\x73\x65\x73\x20\x6f\x75\x74\x73\x69\x64\x65\x20\x63\x75\x72\x72" \
-"\x65\x6e\x74\x20\x73\x65\x73\x73\x69\x6f\x6e\x0a\x0a\x09\x2d\x6c" \
-"\x09\x4c\x69\x73\x74\x20\x61\x6c\x6c\x20\x73\x69\x67\x6e\x61\x6c" \
-"\x20\x6e\x61\x6d\x65\x73\x20\x61\x6e\x64\x20\x6e\x75\x6d\x62\x65" \
-"\x72\x73\x0a\x09\x2d\x6f\x20\x50\x49\x44\x09\x44\x6f\x6e\x27\x74" \
-"\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x69\x73\x20\x50\x49\x44" \
-"\x00\x5b\x2d\x45\x4e\x68\x7e\x49\x3f\x5d\x20\x5b\x46\x49\x4c\x45" \
-"\x5d\x2e\x2e\x2e\x0a\x0a\x56\x69\x65\x77\x20\x46\x49\x4c\x45\x20" \
-"\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x6f\x6e\x65\x20\x73" \
-"\x63\x72\x65\x65\x6e\x66\x75\x6c\x20\x61\x74\x20\x61\x20\x74\x69" \
-"\x6d\x65\x0a\x0a\x09\x2d\x45\x09\x51\x75\x69\x74\x20\x6f\x6e\x63" \
-"\x65\x20\x74\x68\x65\x20\x65\x6e\x64\x20\x6f\x66\x20\x61\x20\x66" \
-"\x69\x6c\x65\x20\x69\x73\x20\x72\x65\x61\x63\x68\x65\x64\x0a\x09" \
-"\x2d\x4e\x09\x50\x72\x65\x66\x69\x78\x20\x6c\x69\x6e\x65\x20\x6e" \
-"\x75\x6d\x62\x65\x72\x20\x74\x6f\x20\x65\x61\x63\x68\x20\x6c\x69" \
-"\x6e\x65\x0a\x09\x2d\x49\x09\x49\x67\x6e\x6f\x72\x65\x20\x63\x61" \
-"\x73\x65\x20\x69\x6e\x20\x61\x6c\x6c\x20\x73\x65\x61\x72\x63\x68" \
-"\x65\x73\x0a\x09\x2d\x7e\x09\x53\x75\x70\x70\x72\x65\x73\x73\x20" \
-"\x7e\x73\x20\x64\x69\x73\x70\x6c\x61\x79\x65\x64\x20\x70\x61\x73" \
-"\x74\x20\x45\x4f\x46\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20" \
-"\x54\x41\x52\x47\x45\x54\x2e\x2e\x2e\x20\x4c\x49\x4e\x4b\x7c\x44" \
-"\x49\x52\x0a\x0a\x43\x72\x65\x61\x74\x65\x20\x61\x20\x6c\x69\x6e" \
-"\x6b\x20\x4c\x49\x4e\x4b\x20\x6f\x72\x20\x44\x49\x52\x2f\x54\x41" \
-"\x52\x47\x45\x54\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x70\x65\x63" \
-"\x69\x66\x69\x65\x64\x20\x54\x41\x52\x47\x45\x54\x28\x73\x29\x0a" \
-"\x0a\x09\x2d\x73\x09\x4d\x61\x6b\x65\x20\x73\x79\x6d\x6c\x69\x6e" \
-"\x6b\x73\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x68\x61" \
-"\x72\x64\x6c\x69\x6e\x6b\x73\x0a\x09\x2d\x66\x09\x52\x65\x6d\x6f" \
-"\x76\x65\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x64\x65\x73\x74" \
-"\x69\x6e\x61\x74\x69\x6f\x6e\x73\x0a\x09\x2d\x6e\x09\x44\x6f\x6e" \
-"\x27\x74\x20\x64\x65\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x73" \
-"\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x2d\x20\x74\x72\x65\x61\x74\x20" \
-"\x6c\x69\x6b\x65\x20\x6e\x6f\x72\x6d\x61\x6c\x20\x66\x69\x6c\x65" \
-"\x0a\x09\x2d\x62\x09\x4d\x61\x6b\x65\x20\x61\x20\x62\x61\x63\x6b" \
-"\x75\x70\x20\x6f\x66\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74" \
-"\x20\x28\x69\x66\x20\x65\x78\x69\x73\x74\x73\x29\x20\x62\x65\x66" \
-"\x6f\x72\x65\x20\x6c\x69\x6e\x6b\x20\x6f\x70\x65\x72\x61\x74\x69" \
-"\x6f\x6e\x0a\x09\x2d\x53\x20\x73\x75\x66\x09\x55\x73\x65\x20\x73" \
-"\x75\x66\x66\x69\x78\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66" \
-"\x20\x7e\x20\x77\x68\x65\x6e\x20\x6d\x61\x6b\x69\x6e\x67\x20\x62" \
-"\x61\x63\x6b\x75\x70\x20\x66\x69\x6c\x65\x73\x0a\x09\x2d\x54\x09" \
-"\x32\x6e\x64\x20\x61\x72\x67\x20\x6d\x75\x73\x74\x20\x62\x65\x20" \
-"\x61\x20\x44\x49\x52\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73" \
-"\x65\x00\x5b\x2d\x72\x5d\x20\x5b\x2d\x6f\x20\x4f\x46\x53\x5d\x20" \
-"\x4c\x4f\x4f\x50\x44\x45\x56\x20\x46\x49\x4c\x45\x20\x2d\x20\x61" \
-"\x73\x73\x6f\x63\x69\x61\x74\x65\x20\x6c\x6f\x6f\x70\x20\x64\x65" \
-"\x76\x69\x63\x65\x73\x0a\x09\x6c\x6f\x73\x65\x74\x75\x70\x20\x2d" \
-"\x64\x20\x4c\x4f\x4f\x50\x44\x45\x56\x20\x2d\x20\x64\x69\x73\x61" \
-"\x73\x73\x6f\x63\x69\x61\x74\x65\x0a\x09\x6c\x6f\x73\x65\x74\x75" \
-"\x70\x20\x5b\x2d\x66\x5d\x20\x2d\x20\x73\x68\x6f\x77\x0a\x0a\x09" \
-"\x2d\x6f\x20\x4f\x46\x53\x09\x53\x74\x61\x72\x74\x20\x4f\x46\x53" \
-"\x20\x62\x79\x74\x65\x73\x20\x69\x6e\x74\x6f\x20\x46\x49\x4c\x45" \
-"\x0a\x09\x2d\x72\x09\x52\x65\x61\x64\x2d\x6f\x6e\x6c\x79\x0a\x09" \
-"\x2d\x66\x09\x53\x68\x6f\x77\x20\x66\x69\x72\x73\x74\x20\x66\x72" \
-"\x65\x65\x20\x6c\x6f\x6f\x70\x20\x64\x65\x76\x69\x63\x65\x00\x5b" \
-"\x2d\x31\x41\x61\x43\x78\x64\x4c\x48\x52\x46\x70\x6c\x69\x6e\x73" \
-"\x65\x68\x72\x53\x58\x76\x63\x74\x75\x5d\x20\x5b\x2d\x77\x20\x57" \
-"\x49\x44\x54\x48\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a" \
-"\x0a\x4c\x69\x73\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20" \
-"\x63\x6f\x6e\x74\x65\x6e\x74\x73\x0a\x0a\x09\x2d\x31\x09\x4f\x6e" \
-"\x65\x20\x63\x6f\x6c\x75\x6d\x6e\x20\x6f\x75\x74\x70\x75\x74\x0a" \
-"\x09\x2d\x61\x09\x49\x6e\x63\x6c\x75\x64\x65\x20\x65\x6e\x74\x72" \
-"\x69\x65\x73\x20\x77\x68\x69\x63\x68\x20\x73\x74\x61\x72\x74\x20" \
-"\x77\x69\x74\x68\x20\x2e\x0a\x09\x2d\x41\x09\x4c\x69\x6b\x65\x20" \
-"\x2d\x61\x2c\x20\x62\x75\x74\x20\x65\x78\x63\x6c\x75\x64\x65\x20" \
-"\x2e\x20\x61\x6e\x64\x20\x2e\x2e\x0a\x09\x2d\x43\x09\x4c\x69\x73" \
-"\x74\x20\x62\x79\x20\x63\x6f\x6c\x75\x6d\x6e\x73\x0a\x09\x2d\x78" \
-"\x09\x4c\x69\x73\x74\x20\x62\x79\x20\x6c\x69\x6e\x65\x73\x0a\x09" \
-"\x2d\x64\x09\x4c\x69\x73\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72" \
-"\x79\x20\x65\x6e\x74\x72\x69\x65\x73\x20\x69\x6e\x73\x74\x65\x61" \
-"\x64\x20\x6f\x66\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x0a\x09\x2d" \
-"\x4c\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d\x6c\x69\x6e\x6b" \
-"\x73\x0a\x09\x2d\x48\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d" \
-"\x6c\x69\x6e\x6b\x73\x20\x6f\x6e\x20\x63\x6f\x6d\x6d\x61\x6e\x64" \
-"\x20\x6c\x69\x6e\x65\x0a\x09\x2d\x52\x09\x52\x65\x63\x75\x72\x73" \
-"\x65\x0a\x09\x2d\x70\x09\x41\x70\x70\x65\x6e\x64\x20\x2f\x20\x74" \
-"\x6f\x20\x64\x69\x72\x20\x65\x6e\x74\x72\x69\x65\x73\x0a\x09\x2d" \
-"\x46\x09\x41\x70\x70\x65\x6e\x64\x20\x69\x6e\x64\x69\x63\x61\x74" \
-"\x6f\x72\x20\x28\x6f\x6e\x65\x20\x6f\x66\x20\x2a\x2f\x3d\x40\x7c" \
-"\x29\x20\x74\x6f\x20\x65\x6e\x74\x72\x69\x65\x73\x0a\x09\x2d\x6c" \
-"\x09\x4c\x6f\x6e\x67\x20\x6c\x69\x73\x74\x69\x6e\x67\x20\x66\x6f" \
-"\x72\x6d\x61\x74\x0a\x09\x2d\x69\x09\x4c\x69\x73\x74\x20\x69\x6e" \
-"\x6f\x64\x65\x20\x6e\x75\x6d\x62\x65\x72\x73\x0a\x09\x2d\x6e\x09" \
-"\x4c\x69\x73\x74\x20\x6e\x75\x6d\x65\x72\x69\x63\x20\x55\x49\x44" \
-"\x73\x20\x61\x6e\x64\x20\x47\x49\x44\x73\x20\x69\x6e\x73\x74\x65" \
-"\x61\x64\x20\x6f\x66\x20\x6e\x61\x6d\x65\x73\x0a\x09\x2d\x73\x09" \
-"\x4c\x69\x73\x74\x20\x61\x6c\x6c\x6f\x63\x61\x74\x65\x64\x20\x62" \
-"\x6c\x6f\x63\x6b\x73\x0a\x09\x2d\x65\x09\x4c\x69\x73\x74\x20\x66" \
-"\x75\x6c\x6c\x20\x64\x61\x74\x65\x20\x61\x6e\x64\x20\x74\x69\x6d" \
-"\x65\x0a\x09\x2d\x68\x09\x4c\x69\x73\x74\x20\x73\x69\x7a\x65\x73" \
-"\x20\x69\x6e\x20\x68\x75\x6d\x61\x6e\x20\x72\x65\x61\x64\x61\x62" \
-"\x6c\x65\x20\x66\x6f\x72\x6d\x61\x74\x20\x28\x31\x4b\x20\x32\x34" \
-"\x33\x4d\x20\x32\x47\x29\x0a\x09\x2d\x72\x09\x53\x6f\x72\x74\x20" \
-"\x69\x6e\x20\x72\x65\x76\x65\x72\x73\x65\x20\x6f\x72\x64\x65\x72" \
-"\x0a\x09\x2d\x53\x09\x53\x6f\x72\x74\x20\x62\x79\x20\x73\x69\x7a" \
-"\x65\x0a\x09\x2d\x58\x09\x53\x6f\x72\x74\x20\x62\x79\x20\x65\x78" \
-"\x74\x65\x6e\x73\x69\x6f\x6e\x0a\x09\x2d\x76\x09\x53\x6f\x72\x74" \
-"\x20\x62\x79\x20\x76\x65\x72\x73\x69\x6f\x6e\x0a\x09\x2d\x63\x09" \
-"\x57\x69\x74\x68\x20\x2d\x6c\x3a\x20\x73\x6f\x72\x74\x20\x62\x79" \
-"\x20\x63\x74\x69\x6d\x65\x0a\x09\x2d\x74\x09\x57\x69\x74\x68\x20" \
-"\x2d\x6c\x3a\x20\x73\x6f\x72\x74\x20\x62\x79\x20\x6d\x74\x69\x6d" \
-"\x65\x0a\x09\x2d\x75\x09\x57\x69\x74\x68\x20\x2d\x6c\x3a\x20\x73" \
-"\x6f\x72\x74\x20\x62\x79\x20\x61\x74\x69\x6d\x65\x0a\x09\x2d\x77" \
-"\x20\x4e\x09\x41\x73\x73\x75\x6d\x65\x20\x74\x68\x65\x20\x74\x65" \
-"\x72\x6d\x69\x6e\x61\x6c\x20\x69\x73\x20\x4e\x20\x63\x6f\x6c\x75" \
-"\x6d\x6e\x73\x20\x77\x69\x64\x65\x0a\x09\x2d\x2d\x63\x6f\x6c\x6f" \
-"\x72\x5b\x3d\x7b\x61\x6c\x77\x61\x79\x73\x2c\x6e\x65\x76\x65\x72" \
-"\x2c\x61\x75\x74\x6f\x7d\x5d\x09\x43\x6f\x6e\x74\x72\x6f\x6c\x20" \
-"\x63\x6f\x6c\x6f\x72\x69\x6e\x67\x00\x5b\x2d\x52\x61\x64\x6c\x76" \
-"\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x4c\x69\x73" \
-"\x74\x20\x66\x69\x6c\x65\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65" \
-"\x73\x20\x6f\x6e\x20\x61\x6e\x20\x65\x78\x74\x32\x20\x66\x73\x0a" \
-"\x0a\x09\x2d\x52\x09\x52\x65\x63\x75\x72\x73\x65\x0a\x09\x2d\x61" \
-"\x09\x44\x6f\x6e\x27\x74\x20\x68\x69\x64\x65\x20\x65\x6e\x74\x72" \
-"\x69\x65\x73\x20\x73\x74\x61\x72\x74\x69\x6e\x67\x20\x77\x69\x74" \
-"\x68\x20\x2e\x0a\x09\x2d\x64\x09\x4c\x69\x73\x74\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x79\x20\x65\x6e\x74\x72\x69\x65\x73\x20\x69" \
-"\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x63\x6f\x6e\x74\x65\x6e" \
-"\x74\x73\x0a\x09\x2d\x6c\x09\x4c\x69\x73\x74\x20\x6c\x6f\x6e\x67" \
-"\x20\x66\x6c\x61\x67\x20\x6e\x61\x6d\x65\x73\x0a\x09\x2d\x76\x09" \
-"\x4c\x69\x73\x74\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x27\x73\x20" \
-"\x76\x65\x72\x73\x69\x6f\x6e\x2f\x67\x65\x6e\x65\x72\x61\x74\x69" \
-"\x6f\x6e\x20\x6e\x75\x6d\x62\x65\x72\x00\x0a\x0a\x4c\x69\x73\x74" \
-"\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x6c\x79\x20\x6c" \
-"\x6f\x61\x64\x65\x64\x20\x6b\x65\x72\x6e\x65\x6c\x20\x6d\x6f\x64" \
-"\x75\x6c\x65\x73\x00\x0a\x0a\x53\x68\x6f\x77\x20\x61\x6c\x6c\x20" \
-"\x6f\x70\x65\x6e\x20\x66\x69\x6c\x65\x73\x00\x08\x00\x46\x49\x4c" \
-"\x45\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x20\x74\x6f" \
-"\x20\x73\x74\x64\x6f\x75\x74\x00\x2d\x64\x20\x5b\x2d\x63\x66\x5d" \
-"\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65\x63\x6f" \
-"\x6d\x70\x72\x65\x73\x73\x20\x46\x49\x4c\x45\x20\x28\x6f\x72\x20" \
-"\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d\x64\x09\x44\x65\x63\x6f" \
-"\x6d\x70\x72\x65\x73\x73\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65" \
-"\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46" \
-"\x6f\x72\x63\x65\x00\x5b\x2d\x63\x66\x76\x64\x31\x32\x33\x34\x35" \
-"\x36\x37\x38\x39\x43\x46\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x09\x2d\x31\x2e\x2e\x39\x09\x43\x6f\x6d\x70\x72\x65" \
-"\x73\x73\x69\x6f\x6e\x20\x6c\x65\x76\x65\x6c\x0a\x09\x2d\x64\x09" \
-"\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x0a\x09\x2d\x63\x09\x57" \
-"\x72\x69\x74\x65\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09" \
-"\x2d\x66\x09\x46\x6f\x72\x63\x65\x0a\x09\x2d\x76\x09\x56\x65\x72" \
-"\x62\x6f\x73\x65\x0a\x09\x2d\x46\x09\x44\x6f\x6e\x27\x74\x20\x73" \
-"\x74\x6f\x72\x65\x20\x6f\x72\x20\x76\x65\x72\x69\x66\x79\x20\x63" \
-"\x68\x65\x63\x6b\x73\x75\x6d\x0a\x09\x2d\x43\x09\x41\x6c\x73\x6f" \
-"\x20\x77\x72\x69\x74\x65\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x20" \
-"\x6f\x66\x20\x63\x6f\x6d\x70\x72\x65\x73\x73\x65\x64\x20\x62\x6c" \
-"\x6f\x63\x6b\x00\x5b\x2d\x76\x43\x46\x5d\x20\x5b\x46\x49\x4c\x45" \
-"\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73" \
-"\x65\x0a\x09\x2d\x46\x09\x44\x6f\x6e\x27\x74\x20\x73\x74\x6f\x72" \
-"\x65\x20\x6f\x72\x20\x76\x65\x72\x69\x66\x79\x20\x63\x68\x65\x63" \
-"\x6b\x73\x75\x6d\x00\x5b\x2d\x61\x77\x5d\x20\x5b\x4d\x41\x4e\x50" \
-"\x41\x47\x45\x5d\x2e\x2e\x2e\x0a\x0a\x46\x6f\x72\x6d\x61\x74\x20" \
-"\x61\x6e\x64\x20\x64\x69\x73\x70\x6c\x61\x79\x20\x6d\x61\x6e\x75" \
-"\x61\x6c\x20\x70\x61\x67\x65\x0a\x0a\x09\x2d\x61\x09\x44\x69\x73" \
-"\x70\x6c\x61\x79\x20\x61\x6c\x6c\x20\x70\x61\x67\x65\x73\x0a\x09" \
-"\x2d\x77\x09\x53\x68\x6f\x77\x20\x70\x61\x67\x65\x20\x6c\x6f\x63" \
-"\x61\x74\x69\x6f\x6e\x73\x00\x5b\x2d\x63\x5b\x73\x77\x5d\x5d\x20" \
-"\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74" \
-"\x20\x6f\x72\x20\x63\x68\x65\x63\x6b\x20\x4d\x44\x35\x20\x63\x68" \
-"\x65\x63\x6b\x73\x75\x6d\x73\x0a\x0a\x09\x2d\x63\x09\x43\x68\x65" \
-"\x63\x6b\x20\x73\x75\x6d\x73\x20\x61\x67\x61\x69\x6e\x73\x74\x20" \
-"\x6c\x69\x73\x74\x20\x69\x6e\x20\x46\x49\x4c\x45\x73\x0a\x09\x2d" \
-"\x73\x09\x44\x6f\x6e\x27\x74\x20\x6f\x75\x74\x70\x75\x74\x20\x61" \
-"\x6e\x79\x74\x68\x69\x6e\x67\x2c\x20\x73\x74\x61\x74\x75\x73\x20" \
-"\x63\x6f\x64\x65\x20\x73\x68\x6f\x77\x73\x20\x73\x75\x63\x63\x65" \
-"\x73\x73\x0a\x09\x2d\x77\x09\x57\x61\x72\x6e\x20\x61\x62\x6f\x75" \
-"\x74\x20\x69\x6d\x70\x72\x6f\x70\x65\x72\x6c\x79\x20\x66\x6f\x72" \
-"\x6d\x61\x74\x74\x65\x64\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x20" \
-"\x6c\x69\x6e\x65\x73\x00\x5b\x79\x7c\x6e\x5d\x0a\x0a\x43\x6f\x6e" \
-"\x74\x72\x6f\x6c\x20\x77\x72\x69\x74\x65\x20\x61\x63\x63\x65\x73" \
-"\x73\x20\x74\x6f\x20\x79\x6f\x75\x72\x20\x74\x65\x72\x6d\x69\x6e" \
-"\x61\x6c\x0a\x09\x79\x09\x41\x6c\x6c\x6f\x77\x20\x77\x72\x69\x74" \
-"\x65\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6f\x20\x79\x6f\x75\x72" \
-"\x20\x74\x65\x72\x6d\x69\x6e\x61\x6c\x0a\x09\x6e\x09\x44\x69\x73" \
-"\x61\x6c\x6c\x6f\x77\x20\x77\x72\x69\x74\x65\x20\x61\x63\x63\x65" \
-"\x73\x73\x20\x74\x6f\x20\x79\x6f\x75\x72\x20\x74\x65\x72\x6d\x69" \
-"\x6e\x61\x6c\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x44\x49" \
-"\x52\x45\x43\x54\x4f\x52\x59\x2e\x2e\x2e\x0a\x0a\x43\x72\x65\x61" \
-"\x74\x65\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59\x0a\x0a\x09\x2d" \
-"\x6d\x20\x4d\x4f\x44\x45\x09\x4d\x6f\x64\x65\x0a\x09\x2d\x70\x09" \
-"\x4e\x6f\x20\x65\x72\x72\x6f\x72\x20\x69\x66\x20\x65\x78\x69\x73" \
-"\x74\x73\x3b\x20\x6d\x61\x6b\x65\x20\x70\x61\x72\x65\x6e\x74\x20" \
-"\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x61\x73\x20\x6e" \
-"\x65\x65\x64\x65\x64\x00\x5b\x2d\x76\x5d\x20\x5b\x2d\x6e\x20\x4c" \
-"\x41\x42\x45\x4c\x5d\x20\x42\x4c\x4f\x43\x4b\x44\x45\x56\x20\x5b" \
-"\x4b\x42\x59\x54\x45\x53\x5d\x0a\x0a\x4d\x61\x6b\x65\x20\x61\x20" \
-"\x46\x41\x54\x33\x32\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d" \
-"\x0a\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d" \
-"\x6e\x20\x4c\x42\x4c\x09\x56\x6f\x6c\x75\x6d\x65\x20\x6c\x61\x62" \
-"\x65\x6c\x00\x5b\x2d\x46\x6e\x5d\x20\x5b\x2d\x62\x20\x42\x4c\x4b" \
-"\x5f\x53\x49\x5a\x45\x5d\x20\x5b\x2d\x69\x20\x49\x4e\x4f\x44\x45" \
-"\x5f\x52\x41\x54\x49\x4f\x5d\x20\x5b\x2d\x49\x20\x49\x4e\x4f\x44" \
-"\x45\x5f\x53\x49\x5a\x45\x5d\x20\x5b\x2d\x6d\x20\x52\x45\x53\x45" \
-"\x52\x56\x45\x44\x5f\x50\x45\x52\x43\x45\x4e\x54\x5d\x20\x5b\x2d" \
-"\x4c\x20\x4c\x41\x42\x45\x4c\x5d\x20\x42\x4c\x4f\x43\x4b\x44\x45" \
-"\x56\x20\x5b\x4b\x42\x59\x54\x45\x53\x5d\x0a\x0a\x09\x2d\x62\x20" \
-"\x42\x4c\x4b\x5f\x53\x49\x5a\x45\x09\x42\x6c\x6f\x63\x6b\x20\x73" \
-"\x69\x7a\x65\x2c\x20\x62\x79\x74\x65\x73\x0a\x09\x2d\x46\x09\x09" \
-"\x46\x6f\x72\x63\x65\x0a\x09\x2d\x69\x20\x52\x41\x54\x49\x4f\x09" \
-"\x4d\x61\x78\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x66\x69" \
-"\x6c\x65\x73\x20\x69\x73\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65" \
-"\x6d\x5f\x73\x69\x7a\x65\x20\x2f\x20\x52\x41\x54\x49\x4f\x0a\x09" \
-"\x2d\x49\x20\x42\x59\x54\x45\x53\x09\x49\x6e\x6f\x64\x65\x20\x73" \
-"\x69\x7a\x65\x20\x28\x6d\x69\x6e\x20\x31\x32\x38\x29\x0a\x09\x2d" \
-"\x4c\x20\x4c\x42\x4c\x09\x09\x56\x6f\x6c\x75\x6d\x65\x20\x6c\x61" \
-"\x62\x65\x6c\x0a\x09\x2d\x6d\x20\x50\x45\x52\x43\x45\x4e\x54\x09" \
-"\x50\x65\x72\x63\x65\x6e\x74\x20\x6f\x66\x20\x62\x6c\x6f\x63\x6b" \
-"\x73\x20\x74\x6f\x20\x72\x65\x73\x65\x72\x76\x65\x20\x66\x6f\x72" \
-"\x20\x61\x64\x6d\x69\x6e\x0a\x09\x2d\x6e\x09\x09\x44\x72\x79\x20" \
-"\x72\x75\x6e\x00\x5b\x2d\x6d\x20\x4d\x4f\x44\x45\x5d\x20\x4e\x41" \
-"\x4d\x45\x0a\x0a\x43\x72\x65\x61\x74\x65\x20\x6e\x61\x6d\x65\x64" \
-"\x20\x70\x69\x70\x65\x0a\x0a\x09\x2d\x6d\x20\x4d\x4f\x44\x45\x09" \
-"\x4d\x6f\x64\x65\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x61\x3d" \
-"\x72\x77\x29\x00\x5b\x2d\x46\x6e\x5d\x20\x5b\x2d\x62\x20\x42\x4c" \
-"\x4b\x5f\x53\x49\x5a\x45\x5d\x20\x5b\x2d\x69\x20\x49\x4e\x4f\x44" \
-"\x45\x5f\x52\x41\x54\x49\x4f\x5d\x20\x5b\x2d\x49\x20\x49\x4e\x4f" \
-"\x44\x45\x5f\x53\x49\x5a\x45\x5d\x20\x5b\x2d\x6d\x20\x52\x45\x53" \
-"\x45\x52\x56\x45\x44\x5f\x50\x45\x52\x43\x45\x4e\x54\x5d\x20\x5b" \
-"\x2d\x4c\x20\x4c\x41\x42\x45\x4c\x5d\x20\x42\x4c\x4f\x43\x4b\x44" \
-"\x45\x56\x20\x5b\x4b\x42\x59\x54\x45\x53\x5d\x0a\x0a\x09\x2d\x62" \
-"\x20\x42\x4c\x4b\x5f\x53\x49\x5a\x45\x09\x42\x6c\x6f\x63\x6b\x20" \
-"\x73\x69\x7a\x65\x2c\x20\x62\x79\x74\x65\x73\x0a\x09\x2d\x46\x09" \
-"\x09\x46\x6f\x72\x63\x65\x0a\x09\x2d\x69\x20\x52\x41\x54\x49\x4f" \
-"\x09\x4d\x61\x78\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x66" \
-"\x69\x6c\x65\x73\x20\x69\x73\x20\x66\x69\x6c\x65\x73\x79\x73\x74" \
-"\x65\x6d\x5f\x73\x69\x7a\x65\x20\x2f\x20\x52\x41\x54\x49\x4f\x0a" \
-"\x09\x2d\x49\x20\x42\x59\x54\x45\x53\x09\x49\x6e\x6f\x64\x65\x20" \
-"\x73\x69\x7a\x65\x20\x28\x6d\x69\x6e\x20\x31\x32\x38\x29\x0a\x09" \
-"\x2d\x4c\x20\x4c\x42\x4c\x09\x09\x56\x6f\x6c\x75\x6d\x65\x20\x6c" \
-"\x61\x62\x65\x6c\x0a\x09\x2d\x6d\x20\x50\x45\x52\x43\x45\x4e\x54" \
-"\x09\x50\x65\x72\x63\x65\x6e\x74\x20\x6f\x66\x20\x62\x6c\x6f\x63" \
-"\x6b\x73\x20\x74\x6f\x20\x72\x65\x73\x65\x72\x76\x65\x20\x66\x6f" \
-"\x72\x20\x61\x64\x6d\x69\x6e\x0a\x09\x2d\x6e\x09\x09\x44\x72\x79" \
-"\x20\x72\x75\x6e\x00\x5b\x2d\x76\x5d\x20\x5b\x2d\x6e\x20\x4c\x41" \
-"\x42\x45\x4c\x5d\x20\x42\x4c\x4f\x43\x4b\x44\x45\x56\x20\x5b\x4b" \
-"\x42\x59\x54\x45\x53\x5d\x0a\x0a\x4d\x61\x6b\x65\x20\x61\x20\x46" \
-"\x41\x54\x33\x32\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x0a" \
-"\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x6e" \
-"\x20\x4c\x42\x4c\x09\x56\x6f\x6c\x75\x6d\x65\x20\x6c\x61\x62\x65" \
-"\x6c\x00\x5b\x2d\x6d\x20\x4d\x4f\x44\x45\x5d\x20\x4e\x41\x4d\x45" \
-"\x20\x54\x59\x50\x45\x20\x4d\x41\x4a\x4f\x52\x20\x4d\x49\x4e\x4f" \
-"\x52\x0a\x0a\x43\x72\x65\x61\x74\x65\x20\x61\x20\x73\x70\x65\x63" \
-"\x69\x61\x6c\x20\x66\x69\x6c\x65\x20\x28\x62\x6c\x6f\x63\x6b\x2c" \
-"\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x2c\x20\x6f\x72\x20\x70" \
-"\x69\x70\x65\x29\x0a\x0a\x09\x2d\x6d\x20\x4d\x4f\x44\x45\x09\x43" \
-"\x72\x65\x61\x74\x69\x6f\x6e\x20\x6d\x6f\x64\x65\x20\x28\x64\x65" \
-"\x66\x61\x75\x6c\x74\x20\x61\x3d\x72\x77\x29\x0a\x54\x59\x50\x45" \
-"\x3a\x0a\x09\x62\x09\x42\x6c\x6f\x63\x6b\x20\x64\x65\x76\x69\x63" \
-"\x65\x0a\x09\x63\x20\x6f\x72\x20\x75\x09\x43\x68\x61\x72\x61\x63" \
-"\x74\x65\x72\x20\x64\x65\x76\x69\x63\x65\x0a\x09\x70\x09\x4e\x61" \
-"\x6d\x65\x64\x20\x70\x69\x70\x65\x20\x28\x4d\x41\x4a\x4f\x52\x20" \
-"\x61\x6e\x64\x20\x4d\x49\x4e\x4f\x52\x20\x61\x72\x65\x20\x69\x67" \
-"\x6e\x6f\x72\x65\x64\x29\x00\x5b\x2d\x4c\x20\x4c\x42\x4c\x5d\x20" \
-"\x42\x4c\x4f\x43\x4b\x44\x45\x56\x20\x5b\x4b\x42\x59\x54\x45\x53" \
-"\x5d\x0a\x0a\x50\x72\x65\x70\x61\x72\x65\x20\x42\x4c\x4f\x43\x4b" \
-"\x44\x45\x56\x20\x74\x6f\x20\x62\x65\x20\x75\x73\x65\x64\x20\x61" \
-"\x73\x20\x73\x77\x61\x70\x20\x70\x61\x72\x74\x69\x74\x69\x6f\x6e" \
-"\x0a\x0a\x09\x2d\x4c\x20\x4c\x42\x4c\x09\x4c\x61\x62\x65\x6c\x00" \
-"\x5b\x2d\x64\x74\x5d\x20\x5b\x2d\x70\x20\x44\x49\x52\x5d\x20\x5b" \
-"\x54\x45\x4d\x50\x4c\x41\x54\x45\x5d\x0a\x0a\x43\x72\x65\x61\x74" \
-"\x65\x20\x61\x20\x74\x65\x6d\x70\x6f\x72\x61\x72\x79\x20\x66\x69" \
-"\x6c\x65\x20\x77\x69\x74\x68\x20\x6e\x61\x6d\x65\x20\x62\x61\x73" \
-"\x65\x64\x20\x6f\x6e\x20\x54\x45\x4d\x50\x4c\x41\x54\x45\x20\x61" \
-"\x6e\x64\x20\x70\x72\x69\x6e\x74\x20\x69\x74\x73\x20\x6e\x61\x6d" \
-"\x65\x2e\x0a\x54\x45\x4d\x50\x4c\x41\x54\x45\x20\x6d\x75\x73\x74" \
-"\x20\x65\x6e\x64\x20\x77\x69\x74\x68\x20\x58\x58\x58\x58\x58\x58" \
-"\x20\x28\x65\x2e\x67\x2e\x20\x5b\x2f\x64\x69\x72\x2f\x5d\x6e\x61" \
-"\x6d\x65\x58\x58\x58\x58\x58\x58\x29\x2e\x0a\x57\x69\x74\x68\x6f" \
-"\x75\x74\x20\x54\x45\x4d\x50\x4c\x41\x54\x45\x2c\x20\x2d\x74\x20" \
-"\x74\x6d\x70\x2e\x58\x58\x58\x58\x58\x58\x20\x69\x73\x20\x61\x73" \
-"\x73\x75\x6d\x65\x64\x2e\x0a\x0a\x09\x2d\x64\x09\x4d\x61\x6b\x65" \
-"\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x2c\x20\x6e\x6f\x74\x20" \
-"\x66\x69\x6c\x65\x0a\x09\x2d\x71\x09\x46\x61\x69\x6c\x20\x73\x69" \
-"\x6c\x65\x6e\x74\x6c\x79\x20\x6f\x6e\x20\x65\x72\x72\x6f\x72\x73" \
-"\x0a\x09\x2d\x74\x09\x50\x72\x65\x70\x65\x6e\x64\x20\x62\x61\x73" \
-"\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x6e\x61\x6d\x65" \
-"\x20\x74\x6f\x20\x54\x45\x4d\x50\x4c\x41\x54\x45\x0a\x09\x2d\x70" \
-"\x20\x44\x49\x52\x09\x55\x73\x65\x20\x44\x49\x52\x20\x61\x73\x20" \
-"\x61\x20\x62\x61\x73\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79" \
-"\x20\x28\x69\x6d\x70\x6c\x69\x65\x73\x20\x2d\x74\x29\x0a\x09\x2d" \
-"\x75\x09\x44\x6f\x20\x6e\x6f\x74\x20\x63\x72\x65\x61\x74\x65\x20" \
-"\x61\x6e\x79\x74\x68\x69\x6e\x67\x3b\x20\x70\x72\x69\x6e\x74\x20" \
-"\x61\x20\x6e\x61\x6d\x65\x0a\x0a\x42\x61\x73\x65\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x3a\x20\x2d\x70\x20\x44\x49" \
-"\x52\x2c\x20\x65\x6c\x73\x65\x20\x24\x54\x4d\x50\x44\x49\x52\x2c" \
-"\x20\x65\x6c\x73\x65\x20\x2f\x74\x6d\x70\x00\x5b\x2d\x61\x64\x6c" \
-"\x70\x30\x5d\x20\x5b\x2d\x46\x20\x6b\x65\x79\x77\x6f\x72\x64\x5d" \
-"\x20\x4d\x4f\x44\x55\x4c\x45\x0a\x0a\x09\x2d\x61\x09\x09\x53\x68" \
-"\x6f\x72\x74\x63\x75\x74\x20\x66\x6f\x72\x20\x27\x2d\x46\x20\x61" \
-"\x75\x74\x68\x6f\x72\x27\x0a\x09\x2d\x64\x09\x09\x53\x68\x6f\x72" \
-"\x74\x63\x75\x74\x20\x66\x6f\x72\x20\x27\x2d\x46\x20\x64\x65\x73" \
-"\x63\x72\x69\x70\x74\x69\x6f\x6e\x27\x0a\x09\x2d\x6c\x09\x09\x53" \
-"\x68\x6f\x72\x74\x63\x75\x74\x20\x66\x6f\x72\x20\x27\x2d\x46\x20" \
-"\x6c\x69\x63\x65\x6e\x73\x65\x27\x0a\x09\x2d\x70\x09\x09\x53\x68" \
-"\x6f\x72\x74\x63\x75\x74\x20\x66\x6f\x72\x20\x27\x2d\x46\x20\x70" \
-"\x61\x72\x6d\x27\x0a\x09\x2d\x46\x20\x6b\x65\x79\x77\x6f\x72\x64" \
-"\x09\x4b\x65\x79\x77\x6f\x72\x64\x20\x74\x6f\x20\x6c\x6f\x6f\x6b" \
-"\x20\x66\x6f\x72\x0a\x09\x2d\x30\x09\x09\x53\x65\x70\x61\x72\x61" \
-"\x74\x65\x20\x6f\x75\x74\x70\x75\x74\x20\x77\x69\x74\x68\x20\x4e" \
-"\x55\x4c\x73\x00\x5b\x2d\x71\x66\x77\x72\x73\x76\x5d\x20\x4d\x4f" \
-"\x44\x55\x4c\x45\x20\x5b\x73\x79\x6d\x62\x6f\x6c\x3d\x76\x61\x6c" \
-"\x75\x65\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x72\x09\x52\x65\x6d\x6f" \
-"\x76\x65\x20\x4d\x4f\x44\x55\x4c\x45\x20\x28\x73\x74\x61\x63\x6b" \
-"\x73\x29\x20\x6f\x72\x20\x64\x6f\x20\x61\x75\x74\x6f\x63\x6c\x65" \
-"\x61\x6e\x0a\x09\x2d\x71\x09\x51\x75\x69\x65\x74\x0a\x09\x2d\x76" \
-"\x09\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x66\x09\x46\x6f\x72" \
-"\x63\x65\x0a\x09\x2d\x77\x09\x57\x61\x69\x74\x20\x66\x6f\x72\x20" \
-"\x75\x6e\x6c\x6f\x61\x64\x0a\x09\x2d\x73\x09\x52\x65\x70\x6f\x72" \
-"\x74\x20\x76\x69\x61\x20\x73\x79\x73\x6c\x6f\x67\x20\x69\x6e\x73" \
-"\x74\x65\x61\x64\x20\x6f\x66\x20\x73\x74\x64\x65\x72\x72\x00\x5b" \
-"\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x56\x69\x65\x77\x20\x46" \
-"\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x6f" \
-"\x6e\x65\x20\x73\x63\x72\x65\x65\x6e\x66\x75\x6c\x20\x61\x74\x20" \
-"\x61\x20\x74\x69\x6d\x65\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d" \
-"\x20\x5b\x2d\x6f\x20\x4f\x50\x54\x53\x5d\x20\x44\x45\x56\x49\x43" \
-"\x45\x20\x4e\x4f\x44\x45\x0a\x0a\x4d\x6f\x75\x6e\x74\x20\x61\x20" \
-"\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x2e\x20\x46\x69\x6c\x65" \
-"\x73\x79\x73\x74\x65\x6d\x20\x61\x75\x74\x6f\x64\x65\x74\x65\x63" \
-"\x74\x69\x6f\x6e\x20\x72\x65\x71\x75\x69\x72\x65\x73\x20\x2f\x70" \
-"\x72\x6f\x63\x2e\x0a\x0a\x09\x2d\x61\x09\x09\x4d\x6f\x75\x6e\x74" \
-"\x20\x61\x6c\x6c\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73" \
-"\x20\x69\x6e\x20\x66\x73\x74\x61\x62\x0a\x09\x2d\x66\x09\x09\x44" \
-"\x72\x79\x20\x72\x75\x6e\x0a\x09\x2d\x76\x09\x09\x56\x65\x72\x62" \
-"\x6f\x73\x65\x0a\x09\x2d\x72\x09\x09\x52\x65\x61\x64\x2d\x6f\x6e" \
-"\x6c\x79\x20\x6d\x6f\x75\x6e\x74\x0a\x09\x2d\x77\x09\x09\x52\x65" \
-"\x61\x64\x2d\x77\x72\x69\x74\x65\x20\x6d\x6f\x75\x6e\x74\x20\x28" \
-"\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x74\x20\x46\x53\x54" \
-"\x59\x50\x45\x5b\x2c\x2e\x2e\x2e\x5d\x09\x46\x69\x6c\x65\x73\x79" \
-"\x73\x74\x65\x6d\x20\x74\x79\x70\x65\x28\x73\x29\x0a\x09\x2d\x4f" \
-"\x20\x4f\x50\x54\x09\x09\x4d\x6f\x75\x6e\x74\x20\x6f\x6e\x6c\x79" \
-"\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x20\x77\x69\x74" \
-"\x68\x20\x6f\x70\x74\x69\x6f\x6e\x20\x4f\x50\x54\x20\x28\x2d\x61" \
-"\x20\x6f\x6e\x6c\x79\x29\x0a\x2d\x6f\x20\x4f\x50\x54\x3a\x0a\x09" \
-"\x6c\x6f\x6f\x70\x09\x09\x49\x67\x6e\x6f\x72\x65\x64\x20\x28\x6c" \
-"\x6f\x6f\x70\x20\x64\x65\x76\x69\x63\x65\x73\x20\x61\x72\x65\x20" \
-"\x61\x75\x74\x6f\x64\x65\x74\x65\x63\x74\x65\x64\x29\x0a\x09\x5b" \
-"\x61\x5d\x73\x79\x6e\x63\x09\x09\x57\x72\x69\x74\x65\x73\x20\x61" \
-"\x72\x65\x20\x5b\x61\x5d\x73\x79\x6e\x63\x68\x72\x6f\x6e\x6f\x75" \
-"\x73\x0a\x09\x5b\x6e\x6f\x5d\x61\x74\x69\x6d\x65\x09\x44\x69\x73" \
-"\x61\x62\x6c\x65\x2f\x65\x6e\x61\x62\x6c\x65\x20\x75\x70\x64\x61" \
-"\x74\x65\x73\x20\x74\x6f\x20\x69\x6e\x6f\x64\x65\x20\x61\x63\x63" \
-"\x65\x73\x73\x20\x74\x69\x6d\x65\x73\x0a\x09\x5b\x6e\x6f\x5d\x64" \
-"\x69\x72\x61\x74\x69\x6d\x65\x09\x44\x69\x73\x61\x62\x6c\x65\x2f" \
-"\x65\x6e\x61\x62\x6c\x65\x20\x61\x74\x69\x6d\x65\x20\x75\x70\x64" \
-"\x61\x74\x65\x73\x20\x74\x6f\x20\x64\x69\x72\x65\x63\x74\x6f\x72" \
-"\x69\x65\x73\x0a\x09\x5b\x6e\x6f\x5d\x72\x65\x6c\x61\x74\x69\x6d" \
-"\x65\x09\x44\x69\x73\x61\x62\x6c\x65\x2f\x65\x6e\x61\x62\x6c\x65" \
-"\x20\x61\x74\x69\x6d\x65\x20\x75\x70\x64\x61\x74\x65\x73\x20\x72" \
-"\x65\x6c\x61\x74\x69\x76\x65\x20\x74\x6f\x20\x6d\x6f\x64\x69\x66" \
-"\x69\x63\x61\x74\x69\x6f\x6e\x20\x74\x69\x6d\x65\x0a\x09\x5b\x6e" \
-"\x6f\x5d\x64\x65\x76\x09\x09\x28\x44\x69\x73\x29\x61\x6c\x6c\x6f" \
-"\x77\x20\x75\x73\x65\x20\x6f\x66\x20\x73\x70\x65\x63\x69\x61\x6c" \
-"\x20\x64\x65\x76\x69\x63\x65\x20\x66\x69\x6c\x65\x73\x0a\x09\x5b" \
-"\x6e\x6f\x5d\x65\x78\x65\x63\x09\x28\x44\x69\x73\x29\x61\x6c\x6c" \
-"\x6f\x77\x20\x75\x73\x65\x20\x6f\x66\x20\x65\x78\x65\x63\x75\x74" \
-"\x61\x62\x6c\x65\x20\x66\x69\x6c\x65\x73\x0a\x09\x5b\x6e\x6f\x5d" \
-"\x73\x75\x69\x64\x09\x28\x44\x69\x73\x29\x61\x6c\x6c\x6f\x77\x20" \
-"\x73\x65\x74\x2d\x75\x73\x65\x72\x2d\x69\x64\x2d\x72\x6f\x6f\x74" \
-"\x20\x70\x72\x6f\x67\x72\x61\x6d\x73\x0a\x09\x5b\x72\x5d\x73\x68" \
-"\x61\x72\x65\x64\x09\x43\x6f\x6e\x76\x65\x72\x74\x20\x5b\x72\x65" \
-"\x63\x75\x72\x73\x69\x76\x65\x6c\x79\x5d\x20\x74\x6f\x20\x61\x20" \
-"\x73\x68\x61\x72\x65\x64\x20\x73\x75\x62\x74\x72\x65\x65\x0a\x09" \
-"\x5b\x72\x5d\x73\x6c\x61\x76\x65\x09\x43\x6f\x6e\x76\x65\x72\x74" \
-"\x20\x5b\x72\x65\x63\x75\x72\x73\x69\x76\x65\x6c\x79\x5d\x20\x74" \
-"\x6f\x20\x61\x20\x73\x6c\x61\x76\x65\x20\x73\x75\x62\x74\x72\x65" \
-"\x65\x0a\x09\x5b\x72\x5d\x70\x72\x69\x76\x61\x74\x65\x09\x43\x6f" \
-"\x6e\x76\x65\x72\x74\x20\x5b\x72\x65\x63\x75\x72\x73\x69\x76\x65" \
-"\x6c\x79\x5d\x20\x74\x6f\x20\x61\x20\x70\x72\x69\x76\x61\x74\x65" \
-"\x20\x73\x75\x62\x74\x72\x65\x65\x0a\x09\x5b\x75\x6e\x5d\x62\x69" \
-"\x6e\x64\x61\x62\x6c\x65\x09\x4d\x61\x6b\x65\x20\x6d\x6f\x75\x6e" \
-"\x74\x20\x70\x6f\x69\x6e\x74\x20\x5b\x75\x6e\x5d\x61\x62\x6c\x65" \
-"\x20\x74\x6f\x20\x62\x65\x20\x62\x69\x6e\x64\x20\x6d\x6f\x75\x6e" \
-"\x74\x65\x64\x0a\x09\x5b\x72\x5d\x62\x69\x6e\x64\x09\x09\x42\x69" \
-"\x6e\x64\x20\x61\x20\x66\x69\x6c\x65\x20\x6f\x72\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x79\x20\x5b\x72\x65\x63\x75\x72\x73\x69\x76" \
-"\x65\x6c\x79\x5d\x20\x74\x6f\x20\x61\x6e\x6f\x74\x68\x65\x72\x20" \
-"\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x0a\x09\x6d\x6f\x76\x65\x09\x09" \
-"\x52\x65\x6c\x6f\x63\x61\x74\x65\x20\x61\x6e\x20\x65\x78\x69\x73" \
-"\x74\x69\x6e\x67\x20\x6d\x6f\x75\x6e\x74\x20\x70\x6f\x69\x6e\x74" \
-"\x0a\x09\x72\x65\x6d\x6f\x75\x6e\x74\x09\x09\x52\x65\x6d\x6f\x75" \
-"\x6e\x74\x20\x61\x20\x6d\x6f\x75\x6e\x74\x65\x64\x20\x66\x69\x6c" \
-"\x65\x73\x79\x73\x74\x65\x6d\x2c\x20\x63\x68\x61\x6e\x67\x69\x6e" \
-"\x67\x20\x66\x6c\x61\x67\x73\x0a\x09\x72\x6f\x2f\x72\x77\x09\x09" \
-"\x53\x61\x6d\x65\x20\x61\x73\x20\x2d\x72\x2f\x2d\x77\x0a\x0a\x54" \
-"\x68\x65\x72\x65\x20\x61\x72\x65\x20\x66\x69\x6c\x65\x73\x79\x73" \
-"\x74\x65\x6d\x2d\x73\x70\x65\x63\x69\x66\x69\x63\x20\x2d\x6f\x20" \
-"\x66\x6c\x61\x67\x73\x2e\x00\x5b\x2d\x71\x5d\x20\x3c\x5b\x2d\x64" \
-"\x6e\x5d\x20\x44\x49\x52\x20\x7c\x20\x2d\x78\x20\x44\x45\x56\x49" \
-"\x43\x45\x3e\x0a\x0a\x43\x68\x65\x63\x6b\x20\x69\x66\x20\x74\x68" \
-"\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x61" \
-"\x20\x6d\x6f\x75\x6e\x74\x70\x6f\x69\x6e\x74\x0a\x0a\x09\x2d\x71" \
-"\x09\x51\x75\x69\x65\x74\x0a\x09\x2d\x64\x09\x50\x72\x69\x6e\x74" \
-"\x20\x6d\x61\x6a\x6f\x72\x2f\x6d\x69\x6e\x6f\x72\x20\x64\x65\x76" \
-"\x69\x63\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x74\x68" \
-"\x65\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x0a\x09\x2d\x6e" \
-"\x09\x50\x72\x69\x6e\x74\x20\x64\x65\x76\x69\x63\x65\x20\x6e\x61" \
-"\x6d\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x73\x79" \
-"\x73\x74\x65\x6d\x0a\x09\x2d\x78\x09\x50\x72\x69\x6e\x74\x20\x6d" \
-"\x61\x6a\x6f\x72\x2f\x6d\x69\x6e\x6f\x72\x20\x64\x65\x76\x69\x63" \
-"\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x74\x68\x65\x20" \
-"\x62\x6c\x6f\x63\x6b\x64\x65\x76\x69\x63\x65\x00\x5b\x2d\x41\x5d" \
-"\x20\x5b\x2d\x49\x20\x53\x55\x4d\x7c\x43\x50\x55\x7c\x41\x4c\x4c" \
-"\x7c\x53\x43\x50\x55\x5d\x20\x5b\x2d\x75\x5d\x20\x5b\x2d\x50\x20" \
-"\x6e\x75\x6d\x7c\x41\x4c\x4c\x5d\x20\x5b\x49\x4e\x54\x45\x52\x56" \
-"\x41\x4c\x20\x5b\x43\x4f\x55\x4e\x54\x5d\x5d\x0a\x0a\x50\x65\x72" \
-"\x2d\x70\x72\x6f\x63\x65\x73\x73\x6f\x72\x20\x73\x74\x61\x74\x69" \
-"\x73\x74\x69\x63\x73\x0a\x0a\x09\x2d\x41\x09\x09\x09\x53\x61\x6d" \
-"\x65\x20\x61\x73\x20\x2d\x49\x20\x41\x4c\x4c\x20\x2d\x75\x20\x2d" \
-"\x50\x20\x41\x4c\x4c\x0a\x09\x2d\x49\x20\x53\x55\x4d\x7c\x43\x50" \
-"\x55\x7c\x41\x4c\x4c\x7c\x53\x43\x50\x55\x09\x52\x65\x70\x6f\x72" \
-"\x74\x20\x69\x6e\x74\x65\x72\x72\x75\x70\x74\x20\x73\x74\x61\x74" \
-"\x69\x73\x74\x69\x63\x73\x0a\x09\x2d\x50\x20\x6e\x75\x6d\x7c\x41" \
-"\x4c\x4c\x09\x09\x50\x72\x6f\x63\x65\x73\x73\x6f\x72\x20\x74\x6f" \
-"\x20\x6d\x6f\x6e\x69\x74\x6f\x72\x0a\x09\x2d\x75\x09\x09\x09\x52" \
-"\x65\x70\x6f\x72\x74\x20\x43\x50\x55\x20\x75\x74\x69\x6c\x69\x7a" \
-"\x61\x74\x69\x6f\x6e\x00\x5b\x2d\x66\x69\x6e\x5d\x20\x53\x4f\x55" \
-"\x52\x43\x45\x20\x44\x45\x53\x54\x0a\x6f\x72\x3a\x20\x6d\x76\x20" \
-"\x5b\x2d\x66\x69\x6e\x5d\x20\x53\x4f\x55\x52\x43\x45\x2e\x2e\x2e" \
-"\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59\x0a\x0a\x52\x65\x6e\x61" \
-"\x6d\x65\x20\x53\x4f\x55\x52\x43\x45\x20\x74\x6f\x20\x44\x45\x53" \
-"\x54\x2c\x20\x6f\x72\x20\x6d\x6f\x76\x65\x20\x53\x4f\x55\x52\x43" \
-"\x45\x28\x73\x29\x20\x74\x6f\x20\x44\x49\x52\x45\x43\x54\x4f\x52" \
-"\x59\x0a\x0a\x09\x2d\x66\x09\x44\x6f\x6e\x27\x74\x20\x70\x72\x6f" \
-"\x6d\x70\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x6f\x76\x65\x72\x77" \
-"\x72\x69\x74\x69\x6e\x67\x0a\x09\x2d\x69\x09\x49\x6e\x74\x65\x72" \
-"\x61\x63\x74\x69\x76\x65\x2c\x20\x70\x72\x6f\x6d\x70\x74\x20\x62" \
-"\x65\x66\x6f\x72\x65\x20\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x0a" \
-"\x09\x2d\x6e\x09\x44\x6f\x6e\x27\x74\x20\x6f\x76\x65\x72\x77\x72" \
-"\x69\x74\x65\x20\x61\x6e\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20" \
-"\x66\x69\x6c\x65\x00\x5b\x2d\x6f\x5d\x20\x5b\x2d\x62\x5d\x20\x5b" \
-"\x2d\x73\x20\x41\x44\x44\x52\x5d\x20\x5b\x2d\x66\x20\x46\x49\x4c" \
-"\x45\x5d\x20\x4d\x54\x44\x5f\x44\x45\x56\x49\x43\x45\x0a\x0a\x44" \
-"\x75\x6d\x70\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65" \
-"\x64\x20\x4d\x54\x44\x20\x64\x65\x76\x69\x63\x65\x0a\x0a\x09\x2d" \
-"\x6f\x09\x44\x75\x6d\x70\x20\x6f\x6f\x62\x20\x64\x61\x74\x61\x0a" \
-"\x09\x2d\x62\x09\x4f\x6d\x69\x74\x20\x62\x61\x64\x20\x62\x6c\x6f" \
-"\x63\x6b\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x64\x75\x6d\x70" \
-"\x0a\x09\x2d\x73\x20\x41\x44\x44\x52\x09\x53\x74\x61\x72\x74\x20" \
-"\x61\x64\x64\x72\x65\x73\x73\x0a\x09\x2d\x6c\x20\x4c\x45\x4e\x09" \
-"\x4c\x65\x6e\x67\x74\x68\x0a\x09\x2d\x66\x20\x46\x49\x4c\x45\x09" \
-"\x44\x75\x6d\x70\x20\x74\x6f\x20\x66\x69\x6c\x65\x20\x28\x27\x2d" \
-"\x27\x20\x66\x6f\x72\x20\x73\x74\x64\x6f\x75\x74\x29\x00\x5b\x2d" \
-"\x70\x5d\x20\x5b\x2d\x73\x20\x41\x44\x44\x52\x5d\x20\x4d\x54\x44" \
-"\x5f\x44\x45\x56\x49\x43\x45\x20\x5b\x46\x49\x4c\x45\x5d\x0a\x0a" \
-"\x57\x72\x69\x74\x65\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x70\x65" \
-"\x63\x69\x66\x69\x65\x64\x20\x4d\x54\x44\x20\x64\x65\x76\x69\x63" \
-"\x65\x0a\x0a\x09\x2d\x70\x09\x50\x61\x64\x20\x74\x6f\x20\x70\x61" \
-"\x67\x65\x20\x73\x69\x7a\x65\x0a\x09\x2d\x73\x20\x41\x44\x44\x52" \
-"\x09\x53\x74\x61\x72\x74\x20\x61\x64\x64\x72\x65\x73\x73\x00\x48" \
-"\x4f\x53\x54\x20\x50\x4f\x52\x54\x20\x42\x4c\x4f\x43\x4b\x44\x45" \
-"\x56\x0a\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x20\x74\x6f\x20\x48\x4f" \
-"\x53\x54\x20\x61\x6e\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x20\x61" \
-"\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x62\x6c\x6f\x63\x6b\x20\x64" \
-"\x65\x76\x69\x63\x65\x20\x6f\x6e\x20\x42\x4c\x4f\x43\x4b\x44\x45" \
-"\x56\x00\x5b\x2d\x69\x4e\x5d\x20\x5b\x2d\x77\x4e\x5d\x20\x5b\x2d" \
-"\x6c\x5d\x20\x5b\x2d\x70\x20\x50\x4f\x52\x54\x5d\x20\x5b\x2d\x66" \
-"\x20\x46\x49\x4c\x45\x7c\x49\x50\x41\x44\x44\x52\x20\x50\x4f\x52" \
-"\x54\x5d\x20\x5b\x2d\x65\x20\x50\x52\x4f\x47\x5d\x0a\x0a\x4f\x70" \
-"\x65\x6e\x20\x61\x20\x70\x69\x70\x65\x20\x74\x6f\x20\x49\x50\x3a" \
-"\x50\x4f\x52\x54\x20\x6f\x72\x20\x46\x49\x4c\x45\x0a\x0a\x09\x2d" \
-"\x65\x20\x50\x52\x4f\x47\x09\x52\x75\x6e\x20\x50\x52\x4f\x47\x20" \
-"\x61\x66\x74\x65\x72\x20\x63\x6f\x6e\x6e\x65\x63\x74\x0a\x09\x2d" \
-"\x6c\x09\x4c\x69\x73\x74\x65\x6e\x20\x6d\x6f\x64\x65\x2c\x20\x66" \
-"\x6f\x72\x20\x69\x6e\x62\x6f\x75\x6e\x64\x20\x63\x6f\x6e\x6e\x65" \
-"\x63\x74\x73\x0a\x09\x09\x28\x75\x73\x65\x20\x2d\x6c\x20\x74\x77" \
-"\x69\x63\x65\x20\x77\x69\x74\x68\x20\x2d\x65\x20\x66\x6f\x72\x20" \
-"\x70\x65\x72\x73\x69\x73\x74\x65\x6e\x74\x20\x73\x65\x72\x76\x65" \
-"\x72\x29\x0a\x09\x2d\x70\x20\x50\x4f\x52\x54\x09\x4c\x6f\x63\x61" \
-"\x6c\x20\x70\x6f\x72\x74\x0a\x09\x2d\x77\x20\x53\x45\x43\x09\x54" \
-"\x69\x6d\x65\x6f\x75\x74\x20\x66\x6f\x72\x20\x63\x6f\x6e\x6e\x65" \
-"\x63\x74\x0a\x09\x2d\x69\x20\x53\x45\x43\x09\x44\x65\x6c\x61\x79" \
-"\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x66\x6f\x72\x20\x6c\x69" \
-"\x6e\x65\x73\x20\x73\x65\x6e\x74\x0a\x09\x2d\x66\x20\x46\x49\x4c" \
-"\x45\x09\x55\x73\x65\x20\x66\x69\x6c\x65\x20\x28\x61\x6c\x61\x20" \
-"\x2f\x64\x65\x76\x2f\x74\x74\x79\x53\x30\x29\x20\x69\x6e\x73\x74" \
-"\x65\x61\x64\x20\x6f\x66\x20\x6e\x65\x74\x77\x6f\x72\x6b\x00\x5b" \
-"\x2d\x72\x61\x6c\x5d\x20\x5b\x2d\x74\x75\x77\x78\x5d\x20\x5b\x2d" \
-"\x65\x6e\x57\x70\x5d\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x6e" \
-"\x65\x74\x77\x6f\x72\x6b\x69\x6e\x67\x20\x69\x6e\x66\x6f\x72\x6d" \
-"\x61\x74\x69\x6f\x6e\x0a\x0a\x09\x2d\x72\x09\x52\x6f\x75\x74\x69" \
-"\x6e\x67\x20\x74\x61\x62\x6c\x65\x0a\x09\x2d\x61\x09\x41\x6c\x6c" \
-"\x20\x73\x6f\x63\x6b\x65\x74\x73\x0a\x09\x2d\x6c\x09\x4c\x69\x73" \
-"\x74\x65\x6e\x69\x6e\x67\x20\x73\x6f\x63\x6b\x65\x74\x73\x0a\x09" \
-"\x09\x45\x6c\x73\x65\x3a\x20\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64" \
-"\x20\x73\x6f\x63\x6b\x65\x74\x73\x0a\x09\x2d\x74\x09\x54\x43\x50" \
-"\x20\x73\x6f\x63\x6b\x65\x74\x73\x0a\x09\x2d\x75\x09\x55\x44\x50" \
-"\x20\x73\x6f\x63\x6b\x65\x74\x73\x0a\x09\x2d\x77\x09\x52\x61\x77" \
-"\x20\x73\x6f\x63\x6b\x65\x74\x73\x0a\x09\x2d\x78\x09\x55\x6e\x69" \
-"\x78\x20\x73\x6f\x63\x6b\x65\x74\x73\x0a\x09\x09\x45\x6c\x73\x65" \
-"\x3a\x20\x61\x6c\x6c\x20\x73\x6f\x63\x6b\x65\x74\x20\x74\x79\x70" \
-"\x65\x73\x0a\x09\x2d\x65\x09\x4f\x74\x68\x65\x72\x2f\x6d\x6f\x72" \
-"\x65\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x09\x2d" \
-"\x6e\x09\x44\x6f\x6e\x27\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x20" \
-"\x6e\x61\x6d\x65\x73\x0a\x09\x2d\x57\x09\x57\x69\x64\x65\x20\x64" \
-"\x69\x73\x70\x6c\x61\x79\x0a\x09\x2d\x70\x09\x53\x68\x6f\x77\x20" \
-"\x50\x49\x44\x2f\x70\x72\x6f\x67\x72\x61\x6d\x20\x6e\x61\x6d\x65" \
-"\x20\x66\x6f\x72\x20\x73\x6f\x63\x6b\x65\x74\x73\x00\x5b\x2d\x6e" \
-"\x20\x41\x44\x4a\x55\x53\x54\x5d\x20\x5b\x50\x52\x4f\x47\x20\x41" \
-"\x52\x47\x53\x5d\x0a\x0a\x43\x68\x61\x6e\x67\x65\x20\x73\x63\x68" \
-"\x65\x64\x75\x6c\x69\x6e\x67\x20\x70\x72\x69\x6f\x72\x69\x74\x79" \
-"\x2c\x20\x72\x75\x6e\x20\x50\x52\x4f\x47\x0a\x0a\x09\x2d\x6e\x20" \
-"\x41\x44\x4a\x55\x53\x54\x09\x41\x64\x6a\x75\x73\x74\x20\x70\x72" \
-"\x69\x6f\x72\x69\x74\x79\x20\x62\x79\x20\x41\x44\x4a\x55\x53\x54" \
-"\x00\x50\x52\x4f\x47\x20\x41\x52\x47\x53\x0a\x0a\x52\x75\x6e\x20" \
-"\x50\x52\x4f\x47\x20\x69\x6d\x6d\x75\x6e\x65\x20\x74\x6f\x20\x68" \
-"\x61\x6e\x67\x75\x70\x73\x2c\x20\x77\x69\x74\x68\x20\x6f\x75\x74" \
-"\x70\x75\x74\x20\x74\x6f\x20\x61\x20\x6e\x6f\x6e\x2d\x74\x74\x79" \
-"\x00\x5b\x48\x4f\x53\x54\x5d\x20\x5b\x53\x45\x52\x56\x45\x52\x5d" \
-"\x0a\x0a\x51\x75\x65\x72\x79\x20\x74\x68\x65\x20\x6e\x61\x6d\x65" \
-"\x73\x65\x72\x76\x65\x72\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x49" \
-"\x50\x20\x61\x64\x64\x72\x65\x73\x73\x20\x6f\x66\x20\x74\x68\x65" \
-"\x20\x67\x69\x76\x65\x6e\x20\x48\x4f\x53\x54\x0a\x6f\x70\x74\x69" \
-"\x6f\x6e\x61\x6c\x6c\x79\x20\x75\x73\x69\x6e\x67\x20\x61\x20\x73" \
-"\x70\x65\x63\x69\x66\x69\x65\x64\x20\x44\x4e\x53\x20\x73\x65\x72" \
-"\x76\x65\x72\x00\x5b\x2d\x64\x6e\x71\x4e\x77\x5d\x20\x5b\x2d\x53" \
-"\x20\x50\x52\x4f\x47\x5d\x20\x5b\x2d\x70\x20\x50\x45\x45\x52\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x4e\x54\x50\x20\x63\x6c\x69\x65\x6e\x74\x2f" \
-"\x73\x65\x72\x76\x65\x72\x0a\x0a\x09\x2d\x64\x09\x56\x65\x72\x62" \
-"\x6f\x73\x65\x0a\x09\x2d\x6e\x09\x44\x6f\x20\x6e\x6f\x74\x20\x64" \
-"\x61\x65\x6d\x6f\x6e\x69\x7a\x65\x0a\x09\x2d\x71\x09\x51\x75\x69" \
-"\x74\x20\x61\x66\x74\x65\x72\x20\x63\x6c\x6f\x63\x6b\x20\x69\x73" \
-"\x20\x73\x65\x74\x0a\x09\x2d\x4e\x09\x52\x75\x6e\x20\x61\x74\x20" \
-"\x68\x69\x67\x68\x20\x70\x72\x69\x6f\x72\x69\x74\x79\x0a\x09\x2d" \
-"\x77\x09\x44\x6f\x20\x6e\x6f\x74\x20\x73\x65\x74\x20\x74\x69\x6d" \
-"\x65\x20\x28\x6f\x6e\x6c\x79\x20\x71\x75\x65\x72\x79\x20\x70\x65" \
-"\x65\x72\x73\x29\x2c\x20\x69\x6d\x70\x6c\x69\x65\x73\x20\x2d\x6e" \
-"\x0a\x09\x2d\x53\x20\x50\x52\x4f\x47\x09\x52\x75\x6e\x20\x50\x52" \
-"\x4f\x47\x20\x61\x66\x74\x65\x72\x20\x73\x74\x65\x70\x70\x69\x6e" \
-"\x67\x20\x74\x69\x6d\x65\x2c\x20\x73\x74\x72\x61\x74\x75\x6d\x20" \
-"\x63\x68\x61\x6e\x67\x65\x2c\x20\x61\x6e\x64\x20\x65\x76\x65\x72" \
-"\x79\x20\x31\x31\x20\x6d\x69\x6e\x73\x0a\x09\x2d\x70\x20\x50\x45" \
-"\x45\x52\x09\x4f\x62\x74\x61\x69\x6e\x20\x74\x69\x6d\x65\x20\x66" \
-"\x72\x6f\x6d\x20\x50\x45\x45\x52\x20\x28\x6d\x61\x79\x20\x62\x65" \
-"\x20\x72\x65\x70\x65\x61\x74\x65\x64\x29\x00\x5b\x2d\x61\x42\x62" \
-"\x63\x44\x64\x65\x46\x66\x48\x68\x49\x69\x4c\x6c\x4f\x6f\x76\x58" \
-"\x78\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x0a\x0a\x50\x72\x69\x6e\x74" \
-"\x20\x46\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29" \
-"\x20\x75\x6e\x61\x6d\x62\x69\x67\x75\x6f\x75\x73\x6c\x79\x2c\x20" \
-"\x61\x73\x20\x6f\x63\x74\x61\x6c\x20\x62\x79\x74\x65\x73\x20\x62" \
-"\x79\x20\x64\x65\x66\x61\x75\x6c\x74\x00\x5b\x4f\x50\x54\x49\x4f" \
-"\x4e\x53\x5d\x20\x5b\x4f\x52\x49\x47\x46\x49\x4c\x45\x20\x5b\x50" \
-"\x41\x54\x43\x48\x46\x49\x4c\x45\x5d\x5d\x0a\x0a\x09\x2d\x70\x2c" \
-"\x2d\x2d\x73\x74\x72\x69\x70\x20\x4e\x09\x09\x53\x74\x72\x69\x70" \
-"\x20\x4e\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x63\x6f\x6d\x70\x6f" \
-"\x6e\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x20\x66\x69\x6c\x65\x20" \
-"\x6e\x61\x6d\x65\x73\x0a\x09\x2d\x69\x2c\x2d\x2d\x69\x6e\x70\x75" \
-"\x74\x20\x44\x49\x46\x46\x09\x09\x52\x65\x61\x64\x20\x44\x49\x46" \
-"\x46\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x73\x74\x64" \
-"\x69\x6e\x0a\x09\x2d\x52\x2c\x2d\x2d\x72\x65\x76\x65\x72\x73\x65" \
-"\x09\x09\x52\x65\x76\x65\x72\x73\x65\x20\x70\x61\x74\x63\x68\x0a" \
-"\x09\x2d\x4e\x2c\x2d\x2d\x66\x6f\x72\x77\x61\x72\x64\x09\x09\x49" \
-"\x67\x6e\x6f\x72\x65\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x61\x70" \
-"\x70\x6c\x69\x65\x64\x20\x70\x61\x74\x63\x68\x65\x73\x0a\x09\x2d" \
-"\x45\x2c\x2d\x2d\x72\x65\x6d\x6f\x76\x65\x2d\x65\x6d\x70\x74\x79" \
-"\x2d\x66\x69\x6c\x65\x73\x09\x52\x65\x6d\x6f\x76\x65\x20\x6f\x75" \
-"\x74\x70\x75\x74\x20\x66\x69\x6c\x65\x73\x20\x69\x66\x20\x74\x68" \
-"\x65\x79\x20\x62\x65\x63\x6f\x6d\x65\x20\x65\x6d\x70\x74\x79\x00" \
-"\x5b\x2d\x66\x6c\x6e\x6f\x76\x78\x5d\x20\x5b\x2d\x73\x20\x53\x49" \
-"\x44\x7c\x2d\x50\x20\x50\x50\x49\x44\x7c\x50\x41\x54\x54\x45\x52" \
-"\x4e\x5d\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x70\x72\x6f\x63" \
-"\x65\x73\x73\x28\x65\x73\x29\x20\x73\x65\x6c\x65\x63\x74\x65\x64" \
-"\x20\x62\x79\x20\x72\x65\x67\x65\x78\x20\x50\x41\x54\x54\x45\x52" \
-"\x4e\x0a\x0a\x09\x2d\x6c\x09\x53\x68\x6f\x77\x20\x63\x6f\x6d\x6d" \
-"\x61\x6e\x64\x20\x6e\x61\x6d\x65\x20\x74\x6f\x6f\x0a\x09\x2d\x66" \
-"\x09\x4d\x61\x74\x63\x68\x20\x61\x67\x61\x69\x6e\x73\x74\x20\x65" \
-"\x6e\x74\x69\x72\x65\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69" \
-"\x6e\x65\x0a\x09\x2d\x6e\x09\x53\x68\x6f\x77\x20\x74\x68\x65\x20" \
-"\x6e\x65\x77\x65\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x6f" \
-"\x6e\x6c\x79\x0a\x09\x2d\x6f\x09\x53\x68\x6f\x77\x20\x74\x68\x65" \
-"\x20\x6f\x6c\x64\x65\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x20" \
-"\x6f\x6e\x6c\x79\x0a\x09\x2d\x76\x09\x4e\x65\x67\x61\x74\x65\x20" \
-"\x74\x68\x65\x20\x6d\x61\x74\x63\x68\x0a\x09\x2d\x78\x09\x4d\x61" \
-"\x74\x63\x68\x20\x77\x68\x6f\x6c\x65\x20\x6e\x61\x6d\x65\x20\x28" \
-"\x6e\x6f\x74\x20\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x29\x0a\x09" \
-"\x2d\x73\x09\x4d\x61\x74\x63\x68\x20\x73\x65\x73\x73\x69\x6f\x6e" \
-"\x20\x49\x44\x20\x28\x30\x20\x66\x6f\x72\x20\x63\x75\x72\x72\x65" \
-"\x6e\x74\x29\x0a\x09\x2d\x50\x09\x4d\x61\x74\x63\x68\x20\x70\x61" \
-"\x72\x65\x6e\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x49\x44\x00" \
-"\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x4e\x41\x4d\x45\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x4c\x69\x73\x74\x20\x50\x49\x44\x73\x20\x6f" \
-"\x66\x20\x61\x6c\x6c\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x20" \
-"\x77\x69\x74\x68\x20\x6e\x61\x6d\x65\x73\x20\x74\x68\x61\x74\x20" \
-"\x6d\x61\x74\x63\x68\x20\x4e\x41\x4d\x45\x73\x0a\x0a\x09\x2d\x73" \
-"\x09\x53\x68\x6f\x77\x20\x6f\x6e\x6c\x79\x20\x6f\x6e\x65\x20\x50" \
-"\x49\x44\x0a\x09\x2d\x6f\x20\x50\x49\x44\x09\x4f\x6d\x69\x74\x20" \
-"\x67\x69\x76\x65\x6e\x20\x70\x69\x64\x0a\x09\x09\x55\x73\x65\x20" \
-"\x25\x50\x50\x49\x44\x20\x74\x6f\x20\x6f\x6d\x69\x74\x20\x70\x69" \
-"\x64\x20\x6f\x66\x20\x70\x69\x64\x6f\x66\x27\x73\x20\x70\x61\x72" \
-"\x65\x6e\x74\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x48\x4f" \
-"\x53\x54\x0a\x0a\x53\x65\x6e\x64\x20\x49\x43\x4d\x50\x20\x45\x43" \
-"\x48\x4f\x5f\x52\x45\x51\x55\x45\x53\x54\x20\x70\x61\x63\x6b\x65" \
-"\x74\x73\x20\x74\x6f\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x68\x6f" \
-"\x73\x74\x73\x0a\x0a\x09\x2d\x34\x2c\x2d\x36\x09\x09\x46\x6f\x72" \
-"\x63\x65\x20\x49\x50\x20\x6f\x72\x20\x49\x50\x76\x36\x20\x6e\x61" \
-"\x6d\x65\x20\x72\x65\x73\x6f\x6c\x75\x74\x69\x6f\x6e\x0a\x09\x2d" \
-"\x63\x20\x43\x4e\x54\x09\x09\x53\x65\x6e\x64\x20\x6f\x6e\x6c\x79" \
-"\x20\x43\x4e\x54\x20\x70\x69\x6e\x67\x73\x0a\x09\x2d\x73\x20\x53" \
-"\x49\x5a\x45\x09\x09\x53\x65\x6e\x64\x20\x53\x49\x5a\x45\x20\x64" \
-"\x61\x74\x61\x20\x62\x79\x74\x65\x73\x20\x69\x6e\x20\x70\x61\x63" \
-"\x6b\x65\x74\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x35\x36" \
-"\x29\x0a\x09\x2d\x74\x20\x54\x54\x4c\x09\x09\x53\x65\x74\x20\x54" \
-"\x54\x4c\x0a\x09\x2d\x49\x20\x49\x46\x41\x43\x45\x2f\x49\x50\x09" \
-"\x55\x73\x65\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x6f\x72" \
-"\x20\x49\x50\x20\x61\x64\x64\x72\x65\x73\x73\x20\x61\x73\x20\x73" \
-"\x6f\x75\x72\x63\x65\x0a\x09\x2d\x57\x20\x53\x45\x43\x09\x09\x53" \
-"\x65\x63\x6f\x6e\x64\x73\x20\x74\x6f\x20\x77\x61\x69\x74\x20\x66" \
-"\x6f\x72\x20\x74\x68\x65\x20\x66\x69\x72\x73\x74\x20\x72\x65\x73" \
-"\x70\x6f\x6e\x73\x65\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x31" \
-"\x30\x29\x0a\x09\x09\x09\x28\x61\x66\x74\x65\x72\x20\x61\x6c\x6c" \
-"\x20\x2d\x63\x20\x43\x4e\x54\x20\x70\x61\x63\x6b\x65\x74\x73\x20" \
-"\x61\x72\x65\x20\x73\x65\x6e\x74\x29\x0a\x09\x2d\x77\x20\x53\x45" \
-"\x43\x09\x09\x53\x65\x63\x6f\x6e\x64\x73\x20\x75\x6e\x74\x69\x6c" \
-"\x20\x70\x69\x6e\x67\x20\x65\x78\x69\x74\x73\x20\x28\x64\x65\x66" \
-"\x61\x75\x6c\x74\x3a\x69\x6e\x66\x69\x6e\x69\x74\x65\x29\x0a\x09" \
-"\x09\x09\x28\x63\x61\x6e\x20\x65\x78\x69\x74\x20\x65\x61\x72\x6c" \
-"\x69\x65\x72\x20\x77\x69\x74\x68\x20\x2d\x63\x20\x43\x4e\x54\x29" \
-"\x0a\x09\x2d\x71\x09\x09\x51\x75\x69\x65\x74\x2c\x20\x6f\x6e\x6c" \
-"\x79\x20\x64\x69\x73\x70\x6c\x61\x79\x73\x20\x6f\x75\x74\x70\x75" \
-"\x74\x20\x61\x74\x20\x73\x74\x61\x72\x74\x0a\x09\x09\x09\x61\x6e" \
-"\x64\x20\x77\x68\x65\x6e\x20\x66\x69\x6e\x69\x73\x68\x65\x64\x00" \
-"\x08\x00\x5b\x2d\x6c\x7c\x2d\x53\x49\x47\x4e\x41\x4c\x5d\x20\x5b" \
-"\x2d\x66\x6e\x6f\x76\x78\x5d\x20\x5b\x2d\x73\x20\x53\x49\x44\x7c" \
-"\x2d\x50\x20\x50\x50\x49\x44\x7c\x50\x41\x54\x54\x45\x52\x4e\x5d" \
-"\x0a\x0a\x53\x65\x6e\x64\x20\x61\x20\x73\x69\x67\x6e\x61\x6c\x20" \
-"\x74\x6f\x20\x70\x72\x6f\x63\x65\x73\x73\x28\x65\x73\x29\x20\x73" \
-"\x65\x6c\x65\x63\x74\x65\x64\x20\x62\x79\x20\x72\x65\x67\x65\x78" \
-"\x20\x50\x41\x54\x54\x45\x52\x4e\x0a\x0a\x09\x2d\x6c\x09\x4c\x69" \
-"\x73\x74\x20\x61\x6c\x6c\x20\x73\x69\x67\x6e\x61\x6c\x73\x0a\x09" \
-"\x2d\x66\x09\x4d\x61\x74\x63\x68\x20\x61\x67\x61\x69\x6e\x73\x74" \
-"\x20\x65\x6e\x74\x69\x72\x65\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20" \
-"\x6c\x69\x6e\x65\x0a\x09\x2d\x6e\x09\x53\x69\x67\x6e\x61\x6c\x20" \
-"\x74\x68\x65\x20\x6e\x65\x77\x65\x73\x74\x20\x70\x72\x6f\x63\x65" \
-"\x73\x73\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x6f\x09\x53\x69\x67\x6e" \
-"\x61\x6c\x20\x74\x68\x65\x20\x6f\x6c\x64\x65\x73\x74\x20\x70\x72" \
-"\x6f\x63\x65\x73\x73\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x76\x09\x4e" \
-"\x65\x67\x61\x74\x65\x20\x74\x68\x65\x20\x6d\x61\x74\x63\x68\x0a" \
-"\x09\x2d\x78\x09\x4d\x61\x74\x63\x68\x20\x77\x68\x6f\x6c\x65\x20" \
-"\x6e\x61\x6d\x65\x20\x28\x6e\x6f\x74\x20\x73\x75\x62\x73\x74\x72" \
-"\x69\x6e\x67\x29\x0a\x09\x2d\x73\x09\x4d\x61\x74\x63\x68\x20\x73" \
-"\x65\x73\x73\x69\x6f\x6e\x20\x49\x44\x20\x28\x30\x20\x66\x6f\x72" \
-"\x20\x63\x75\x72\x72\x65\x6e\x74\x29\x0a\x09\x2d\x50\x09\x4d\x61" \
-"\x74\x63\x68\x20\x70\x61\x72\x65\x6e\x74\x20\x70\x72\x6f\x63\x65" \
-"\x73\x73\x20\x49\x44\x00\x5b\x2d\x78\x71\x5d\x20\x50\x49\x44\x0a" \
-"\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x64\x65\x74\x61\x69\x6c\x65" \
-"\x64\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x6d\x65\x6d\x6f\x72\x79" \
-"\x20\x75\x73\x61\x67\x65\x0a\x0a\x09\x2d\x78\x09\x53\x68\x6f\x77" \
-"\x20\x64\x65\x74\x61\x69\x6c\x73\x0a\x09\x2d\x71\x09\x51\x75\x69" \
-"\x65\x74\x00\x5b\x2d\x64\x20\x44\x45\x4c\x41\x59\x5d\x20\x5b\x2d" \
-"\x6e\x5d\x20\x5b\x2d\x66\x5d\x0a\x0a\x48\x61\x6c\x74\x20\x61\x6e" \
-"\x64\x20\x73\x68\x75\x74\x20\x6f\x66\x66\x20\x70\x6f\x77\x65\x72" \
-"\x0a\x0a\x09\x2d\x64\x20\x53\x45\x43\x09\x44\x65\x6c\x61\x79\x20" \
-"\x69\x6e\x74\x65\x72\x76\x61\x6c\x0a\x09\x2d\x6e\x09\x44\x6f\x20" \
-"\x6e\x6f\x74\x20\x73\x79\x6e\x63\x0a\x09\x2d\x66\x09\x46\x6f\x72" \
-"\x63\x65\x20\x28\x64\x6f\x6e\x27\x74\x20\x67\x6f\x20\x74\x68\x72" \
-"\x6f\x75\x67\x68\x20\x69\x6e\x69\x74\x29\x00\x5b\x56\x41\x52\x49" \
-"\x41\x42\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20" \
-"\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x56\x41\x52\x49" \
-"\x41\x42\x4c\x45\x73\x2e\x0a\x49\x66\x20\x6e\x6f\x20\x56\x41\x52" \
-"\x49\x41\x42\x4c\x45\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x2c" \
-"\x20\x70\x72\x69\x6e\x74\x20\x61\x6c\x6c\x2e\x00\x46\x4f\x52\x4d" \
-"\x41\x54\x20\x5b\x41\x52\x47\x5d\x2e\x2e\x2e\x0a\x0a\x46\x6f\x72" \
-"\x6d\x61\x74\x20\x61\x6e\x64\x20\x70\x72\x69\x6e\x74\x20\x41\x52" \
-"\x47\x28\x73\x29\x20\x61\x63\x63\x6f\x72\x64\x69\x6e\x67\x20\x74" \
-"\x6f\x20\x46\x4f\x52\x4d\x41\x54\x20\x28\x61\x2d\x6c\x61\x20\x43" \
-"\x20\x70\x72\x69\x6e\x74\x66\x29\x00\x0a\x0a\x53\x68\x6f\x77\x20" \
-"\x6c\x69\x73\x74\x20\x6f\x66\x20\x70\x72\x6f\x63\x65\x73\x73\x65" \
-"\x73\x0a\x0a\x09\x77\x09\x57\x69\x64\x65\x20\x6f\x75\x74\x70\x75" \
-"\x74\x0a\x09\x6c\x09\x4c\x6f\x6e\x67\x20\x6f\x75\x74\x70\x75\x74" \
-"\x0a\x09\x54\x09\x53\x68\x6f\x77\x20\x74\x68\x72\x65\x61\x64\x73" \
-"\x00\x5b\x2d\x70\x5d\x20\x5b\x50\x49\x44\x7c\x55\x53\x45\x52\x5d" \
-"\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x70\x72\x6f\x63\x65\x73" \
-"\x73\x20\x74\x72\x65\x65\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c" \
-"\x6c\x79\x20\x73\x74\x61\x72\x74\x20\x66\x72\x6f\x6d\x20\x55\x53" \
-"\x45\x52\x20\x6f\x72\x20\x50\x49\x44\x0a\x0a\x09\x2d\x70\x09\x53" \
-"\x68\x6f\x77\x20\x70\x69\x64\x73\x00\x0a\x0a\x50\x72\x69\x6e\x74" \
-"\x20\x74\x68\x65\x20\x66\x75\x6c\x6c\x20\x66\x69\x6c\x65\x6e\x61" \
-"\x6d\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e" \
-"\x74\x20\x77\x6f\x72\x6b\x69\x6e\x67\x20\x64\x69\x72\x65\x63\x74" \
-"\x6f\x72\x79\x00\x50\x49\x44\x2e\x2e\x2e\x0a\x0a\x53\x68\x6f\x77" \
-"\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x64\x69\x72\x65\x63\x74\x6f" \
-"\x72\x79\x20\x66\x6f\x72\x20\x50\x49\x44\x73\x0a\x00\x0a\x0a\x50" \
-"\x72\x69\x6e\x74\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x20" \
-"\x6e\x6f\x64\x65\x20\x61\x73\x73\x6f\x63\x69\x61\x74\x65\x64\x20" \
-"\x77\x69\x74\x68\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x73\x79\x73" \
-"\x74\x65\x6d\x20\x6d\x6f\x75\x6e\x74\x65\x64\x20\x61\x74\x20\x27" \
-"\x2f\x27\x00\x5b\x2d\x66\x6e\x76\x5d\x20\x46\x49\x4c\x45\x0a\x0a" \
-"\x44\x69\x73\x70\x6c\x61\x79\x20\x74\x68\x65\x20\x76\x61\x6c\x75" \
-"\x65\x20\x6f\x66\x20\x61\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x0a\x0a" \
-"\x09\x2d\x66\x09\x43\x61\x6e\x6f\x6e\x69\x63\x61\x6c\x69\x7a\x65" \
-"\x20\x62\x79\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x61\x6c" \
-"\x6c\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x0a\x09\x2d\x6e\x09\x44" \
-"\x6f\x6e\x27\x74\x20\x61\x64\x64\x20\x6e\x65\x77\x6c\x69\x6e\x65" \
-"\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x00\x46\x49\x4c" \
-"\x45\x2e\x2e\x2e\x0a\x0a\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65" \
-"\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x20\x70\x61\x74\x68\x6e\x61" \
-"\x6d\x65\x73\x20\x6f\x66\x20\x67\x69\x76\x65\x6e\x20\x46\x49\x4c" \
-"\x45\x00\x5b\x2d\x64\x20\x44\x45\x4c\x41\x59\x5d\x20\x5b\x2d\x6e" \
-"\x5d\x20\x5b\x2d\x66\x5d\x0a\x0a\x52\x65\x62\x6f\x6f\x74\x20\x74" \
-"\x68\x65\x20\x73\x79\x73\x74\x65\x6d\x0a\x0a\x09\x2d\x64\x20\x53" \
-"\x45\x43\x09\x44\x65\x6c\x61\x79\x20\x69\x6e\x74\x65\x72\x76\x61" \
-"\x6c\x0a\x09\x2d\x6e\x09\x44\x6f\x20\x6e\x6f\x74\x20\x73\x79\x6e" \
-"\x63\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x20\x28\x64\x6f\x6e" \
-"\x27\x74\x20\x67\x6f\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x69\x6e" \
-"\x69\x74\x29\x00\x7b\x7b\x2d\x6e\x20\x49\x4e\x43\x52\x45\x4d\x45" \
-"\x4e\x54\x7d\x20\x7c\x20\x50\x52\x49\x4f\x52\x49\x54\x59\x7d\x20" \
-"\x5b\x5b\x2d\x70\x20\x7c\x20\x2d\x67\x20\x7c\x20\x2d\x75\x5d\x20" \
-"\x49\x44\x2e\x2e\x2e\x5d\x0a\x0a\x43\x68\x61\x6e\x67\x65\x20\x73" \
-"\x63\x68\x65\x64\x75\x6c\x69\x6e\x67\x20\x70\x72\x69\x6f\x72\x69" \
-"\x74\x79\x20\x66\x6f\x72\x20\x61\x20\x72\x75\x6e\x6e\x69\x6e\x67" \
-"\x20\x70\x72\x6f\x63\x65\x73\x73\x0a\x0a\x09\x2d\x6e\x09\x41\x64" \
-"\x6a\x75\x73\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x6e\x69\x63" \
-"\x65\x20\x76\x61\x6c\x75\x65\x20\x28\x73\x6d\x61\x6c\x6c\x65\x72" \
-"\x20\x69\x73\x20\x66\x61\x73\x74\x65\x72\x29\x0a\x09\x2d\x70\x09" \
-"\x50\x72\x6f\x63\x65\x73\x73\x20\x69\x64\x28\x73\x29\x20\x28\x64" \
-"\x65\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x67\x09\x50\x72\x6f\x63" \
-"\x65\x73\x73\x20\x67\x72\x6f\x75\x70\x20\x69\x64\x28\x73\x29\x0a" \
-"\x09\x2d\x75\x09\x50\x72\x6f\x63\x65\x73\x73\x20\x75\x73\x65\x72" \
-"\x20\x6e\x61\x6d\x65\x28\x73\x29\x20\x61\x6e\x64\x2f\x6f\x72\x20" \
-"\x69\x64\x28\x73\x29\x00\x0a\x0a\x52\x65\x73\x65\x74\x20\x74\x68" \
-"\x65\x20\x73\x63\x72\x65\x65\x6e\x00\x0a\x0a\x52\x65\x73\x69\x7a" \
-"\x65\x20\x74\x68\x65\x20\x73\x63\x72\x65\x65\x6e\x00\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x52\x65\x76\x65\x72\x73\x65\x20" \
-"\x6c\x69\x6e\x65\x73\x20\x6f\x66\x20\x46\x49\x4c\x45\x00\x5b\x2d" \
-"\x69\x72\x66\x5d\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x52\x65" \
-"\x6d\x6f\x76\x65\x20\x28\x75\x6e\x6c\x69\x6e\x6b\x29\x20\x46\x49" \
-"\x4c\x45\x73\x0a\x0a\x09\x2d\x69\x09\x41\x6c\x77\x61\x79\x73\x20" \
-"\x70\x72\x6f\x6d\x70\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x72\x65" \
-"\x6d\x6f\x76\x69\x6e\x67\x0a\x09\x2d\x66\x09\x4e\x65\x76\x65\x72" \
-"\x20\x70\x72\x6f\x6d\x70\x74\x0a\x09\x2d\x52\x2c\x2d\x72\x09\x52" \
-"\x65\x63\x75\x72\x73\x65\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d" \
-"\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59\x2e\x2e\x2e\x0a\x0a\x52" \
-"\x65\x6d\x6f\x76\x65\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59\x20" \
-"\x69\x66\x20\x69\x74\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x0a\x0a" \
-"\x09\x2d\x70\x7c\x2d\x2d\x70\x61\x72\x65\x6e\x74\x73\x09\x49\x6e" \
-"\x63\x6c\x75\x64\x65\x20\x70\x61\x72\x65\x6e\x74\x73\x0a\x09\x2d" \
-"\x2d\x69\x67\x6e\x6f\x72\x65\x2d\x66\x61\x69\x6c\x2d\x6f\x6e\x2d" \
-"\x6e\x6f\x6e\x2d\x65\x6d\x70\x74\x79\x00\x5b\x2d\x77\x66\x61\x5d" \
-"\x20\x5b\x4d\x4f\x44\x55\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x55\x6e" \
-"\x6c\x6f\x61\x64\x20\x6b\x65\x72\x6e\x65\x6c\x20\x6d\x6f\x64\x75" \
-"\x6c\x65\x73\x0a\x0a\x09\x2d\x77\x09\x57\x61\x69\x74\x20\x75\x6e" \
-"\x74\x69\x6c\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69" \
-"\x73\x20\x6e\x6f\x20\x6c\x6f\x6e\x67\x65\x72\x20\x75\x73\x65\x64" \
-"\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x20\x75\x6e\x6c\x6f\x61" \
-"\x64\x0a\x09\x2d\x61\x09\x52\x65\x6d\x6f\x76\x65\x20\x61\x6c\x6c" \
-"\x20\x75\x6e\x75\x73\x65\x64\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20" \
-"\x28\x72\x65\x63\x75\x72\x73\x69\x76\x65\x6c\x79\x29\x00\x5b\x7b" \
-"\x61\x64\x64\x7c\x64\x65\x6c\x7c\x64\x65\x6c\x65\x74\x65\x7d\x5d" \
-"\x0a\x0a\x45\x64\x69\x74\x20\x6b\x65\x72\x6e\x65\x6c\x20\x72\x6f" \
-"\x75\x74\x69\x6e\x67\x20\x74\x61\x62\x6c\x65\x73\x0a\x0a\x09\x2d" \
-"\x6e\x09\x44\x6f\x6e\x27\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x20" \
-"\x6e\x61\x6d\x65\x73\x0a\x09\x2d\x65\x09\x44\x69\x73\x70\x6c\x61" \
-"\x79\x20\x6f\x74\x68\x65\x72\x2f\x6d\x6f\x72\x65\x20\x69\x6e\x66" \
-"\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x09\x2d\x41\x20\x69\x6e\x65" \
-"\x74\x7b\x36\x7d\x09\x53\x65\x6c\x65\x63\x74\x20\x61\x64\x64\x72" \
-"\x65\x73\x73\x20\x66\x61\x6d\x69\x6c\x79\x00\x5b\x2d\x74\x6c\x5d" \
-"\x20\x5b\x2d\x61\x20\x41\x52\x47\x5d\x2e\x2e\x2e\x20\x5b\x2d\x75" \
-"\x20\x4d\x41\x53\x4b\x5d\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59" \
-"\x0a\x0a\x52\x75\x6e\x20\x61\x20\x62\x75\x6e\x63\x68\x20\x6f\x66" \
-"\x20\x73\x63\x72\x69\x70\x74\x73\x20\x69\x6e\x20\x44\x49\x52\x45" \
-"\x43\x54\x4f\x52\x59\x0a\x0a\x09\x2d\x74\x09\x44\x72\x79\x20\x72" \
-"\x75\x6e\x0a\x09\x2d\x6c\x09\x50\x72\x69\x6e\x74\x20\x6e\x61\x6d" \
-"\x65\x73\x20\x6f\x66\x20\x6d\x61\x74\x63\x68\x69\x6e\x67\x20\x66" \
-"\x69\x6c\x65\x73\x20\x65\x76\x65\x6e\x20\x69\x66\x20\x74\x68\x65" \
-"\x79\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x65\x78\x65\x63\x75\x74" \
-"\x61\x62\x6c\x65\x0a\x09\x2d\x61\x20\x41\x52\x47\x09\x50\x61\x73" \
-"\x73\x20\x41\x52\x47\x20\x61\x73\x20\x61\x72\x67\x75\x6d\x65\x6e" \
-"\x74\x20\x74\x6f\x20\x70\x72\x6f\x67\x72\x61\x6d\x73\x0a\x09\x2d" \
-"\x75\x20\x4d\x41\x53\x4b\x09\x53\x65\x74\x20\x75\x6d\x61\x73\x6b" \
-"\x20\x74\x6f\x20\x4d\x41\x53\x4b\x20\x62\x65\x66\x6f\x72\x65\x20" \
-"\x72\x75\x6e\x6e\x69\x6e\x67\x20\x70\x72\x6f\x67\x72\x61\x6d\x73" \
-"\x00\x46\x49\x4c\x45\x0a\x0a\x52\x65\x63\x65\x69\x76\x65\x20\x61" \
-"\x20\x66\x69\x6c\x65\x20\x75\x73\x69\x6e\x67\x20\x74\x68\x65\x20" \
-"\x78\x6d\x6f\x64\x65\x6d\x20\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x00" \
-"\x5b\x2d\x69\x6e\x72\x5d\x20\x5b\x2d\x66\x20\x46\x49\x4c\x45\x5d" \
-"\x2e\x2e\x2e\x20\x5b\x2d\x65\x20\x43\x4d\x44\x5d\x2e\x2e\x2e\x20" \
-"\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x6f\x72\x3a\x20\x73\x65" \
-"\x64\x20\x5b\x2d\x69\x6e\x72\x5d\x20\x43\x4d\x44\x20\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x65\x20\x43\x4d\x44\x09" \
-"\x41\x64\x64\x20\x43\x4d\x44\x20\x74\x6f\x20\x73\x65\x64\x20\x63" \
-"\x6f\x6d\x6d\x61\x6e\x64\x73\x20\x74\x6f\x20\x62\x65\x20\x65\x78" \
-"\x65\x63\x75\x74\x65\x64\x0a\x09\x2d\x66\x20\x46\x49\x4c\x45\x09" \
-"\x41\x64\x64\x20\x46\x49\x4c\x45\x20\x63\x6f\x6e\x74\x65\x6e\x74" \
-"\x73\x20\x74\x6f\x20\x73\x65\x64\x20\x63\x6f\x6d\x6d\x61\x6e\x64" \
-"\x73\x20\x74\x6f\x20\x62\x65\x20\x65\x78\x65\x63\x75\x74\x65\x64" \
-"\x0a\x09\x2d\x69\x5b\x53\x46\x58\x5d\x09\x45\x64\x69\x74\x20\x66" \
-"\x69\x6c\x65\x73\x20\x69\x6e\x2d\x70\x6c\x61\x63\x65\x20\x28\x6f" \
-"\x74\x68\x65\x72\x77\x69\x73\x65\x20\x73\x65\x6e\x64\x73\x20\x74" \
-"\x6f\x20\x73\x74\x64\x6f\x75\x74\x29\x0a\x09\x09\x4f\x70\x74\x69" \
-"\x6f\x6e\x61\x6c\x6c\x79\x20\x62\x61\x63\x6b\x20\x66\x69\x6c\x65" \
-"\x73\x20\x75\x70\x2c\x20\x61\x70\x70\x65\x6e\x64\x69\x6e\x67\x20" \
-"\x53\x46\x58\x0a\x09\x2d\x6e\x09\x53\x75\x70\x70\x72\x65\x73\x73" \
-"\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x20\x70\x72\x69\x6e\x74" \
-"\x69\x6e\x67\x20\x6f\x66\x20\x70\x61\x74\x74\x65\x72\x6e\x20\x73" \
-"\x70\x61\x63\x65\x0a\x09\x2d\x72\x09\x55\x73\x65\x20\x65\x78\x74" \
-"\x65\x6e\x64\x65\x64\x20\x72\x65\x67\x65\x78\x20\x73\x79\x6e\x74" \
-"\x61\x78\x0a\x0a\x49\x66\x20\x6e\x6f\x20\x2d\x65\x20\x6f\x72\x20" \
-"\x2d\x66\x2c\x20\x74\x68\x65\x20\x66\x69\x72\x73\x74\x20\x6e\x6f" \
-"\x6e\x2d\x6f\x70\x74\x69\x6f\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e" \
-"\x74\x20\x69\x73\x20\x74\x68\x65\x20\x73\x65\x64\x20\x63\x6f\x6d" \
-"\x6d\x61\x6e\x64\x20\x73\x74\x72\x69\x6e\x67\x2e\x0a\x52\x65\x6d" \
-"\x61\x69\x6e\x69\x6e\x67\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73" \
-"\x20\x61\x72\x65\x20\x69\x6e\x70\x75\x74\x20\x66\x69\x6c\x65\x73" \
-"\x20\x28\x73\x74\x64\x69\x6e\x20\x69\x66\x20\x6e\x6f\x6e\x65\x29" \
-"\x2e\x00\x5b\x2d\x77\x5d\x20\x5b\x2d\x73\x20\x53\x45\x50\x5d\x20" \
-"\x5b\x46\x49\x52\x53\x54\x20\x5b\x49\x4e\x43\x5d\x5d\x20\x4c\x41" \
-"\x53\x54\x0a\x0a\x50\x72\x69\x6e\x74\x20\x6e\x75\x6d\x62\x65\x72" \
-"\x73\x20\x66\x72\x6f\x6d\x20\x46\x49\x52\x53\x54\x20\x74\x6f\x20" \
-"\x4c\x41\x53\x54\x2c\x20\x69\x6e\x20\x73\x74\x65\x70\x73\x20\x6f" \
-"\x66\x20\x49\x4e\x43\x2e\x0a\x46\x49\x52\x53\x54\x2c\x20\x49\x4e" \
-"\x43\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x74\x6f\x20\x31\x2e\x0a" \
-"\x0a\x09\x2d\x77\x09\x50\x61\x64\x20\x74\x6f\x20\x6c\x61\x73\x74" \
-"\x20\x77\x69\x74\x68\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x7a\x65" \
-"\x72\x6f\x73\x0a\x09\x2d\x73\x20\x53\x45\x50\x09\x53\x74\x72\x69" \
-"\x6e\x67\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x00\x5b\x2d\x72" \
-"\x5d\x20\x5b\x44\x45\x56\x49\x43\x45\x5d\x0a\x0a\x52\x65\x64\x69" \
-"\x72\x65\x63\x74\x20\x73\x79\x73\x74\x65\x6d\x20\x63\x6f\x6e\x73" \
-"\x6f\x6c\x65\x20\x6f\x75\x74\x70\x75\x74\x20\x74\x6f\x20\x44\x45" \
-"\x56\x49\x43\x45\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x2f" \
-"\x64\x65\x76\x2f\x74\x74\x79\x29\x0a\x0a\x09\x2d\x72\x09\x52\x65" \
-"\x73\x65\x74\x20\x6f\x75\x74\x70\x75\x74\x20\x74\x6f\x20\x2f\x64" \
-"\x65\x76\x2f\x63\x6f\x6e\x73\x6f\x6c\x65\x00\x5b\x2d\x67\x61\x62" \
-"\x47\x76\x7a\x56\x5d\x20\x44\x45\x56\x49\x43\x45\x20\x5b\x50\x41" \
-"\x52\x41\x4d\x45\x54\x45\x52\x20\x5b\x41\x52\x47\x5d\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x52\x65\x71\x75\x65\x73\x74\x20\x6f\x72\x20\x73\x65" \
-"\x74\x20\x4c\x69\x6e\x75\x78\x20\x73\x65\x72\x69\x61\x6c\x20\x70" \
-"\x6f\x72\x74\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a" \
-"\x0a\x09\x2d\x67\x09\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x20\x70" \
-"\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x61\x73\x20\x6c\x69\x73" \
-"\x74\x20\x6f\x66\x20\x64\x65\x76\x69\x63\x65\x73\x20\x66\x6f\x72" \
-"\x20\x72\x65\x70\x6f\x72\x74\x69\x6e\x67\x0a\x09\x2d\x61\x09\x50" \
-"\x72\x69\x6e\x74\x20\x61\x6c\x6c\x20\x61\x76\x61\x69\x6c\x61\x62" \
-"\x6c\x65\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x09" \
-"\x2d\x62\x09\x50\x72\x69\x6e\x74\x20\x73\x75\x6d\x6d\x61\x72\x79" \
-"\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x09\x2d\x47" \
-"\x09\x50\x72\x69\x6e\x74\x20\x69\x6e\x20\x66\x6f\x72\x6d\x20\x77" \
-"\x68\x69\x63\x68\x20\x63\x61\x6e\x20\x62\x65\x20\x66\x65\x64\x20" \
-"\x62\x61\x63\x6b\x0a\x09\x09\x74\x6f\x20\x73\x65\x74\x73\x65\x72" \
-"\x69\x61\x6c\x20\x61\x73\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c" \
-"\x69\x6e\x65\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x0a\x09" \
-"\x2d\x7a\x09\x5a\x65\x72\x6f\x20\x6f\x75\x74\x20\x73\x65\x72\x69" \
-"\x61\x6c\x20\x66\x6c\x61\x67\x73\x20\x62\x65\x66\x6f\x72\x65\x20" \
-"\x73\x65\x74\x74\x69\x6e\x67\x0a\x09\x2d\x76\x09\x56\x65\x72\x62" \
-"\x6f\x73\x65\x0a\x0a\x50\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x3a" \
-"\x20\x28\x2a\x20\x3d\x20\x74\x61\x6b\x65\x73\x20\x61\x6e\x20\x61" \
-"\x72\x67\x75\x6d\x65\x6e\x74\x2c\x20\x5e\x20\x3d\x20\x63\x61\x6e" \
-"\x20\x62\x65\x20\x74\x75\x72\x6e\x65\x64\x20\x6f\x66\x66\x20\x62" \
-"\x79\x20\x70\x72\x65\x63\x65\x64\x69\x6e\x67\x20\x5e\x29\x0a\x09" \
-"\x2a\x70\x6f\x72\x74\x2c\x20\x2a\x69\x72\x71\x2c\x20\x2a\x64\x69" \
-"\x76\x69\x73\x6f\x72\x2c\x20\x2a\x75\x61\x72\x74\x2c\x20\x2a\x62" \
-"\x61\x75\x6e\x64\x5f\x62\x61\x73\x65\x2c\x20\x2a\x63\x6c\x6f\x73" \
-"\x65\x5f\x64\x65\x6c\x61\x79\x2c\x20\x2a\x63\x6c\x6f\x73\x69\x6e" \
-"\x67\x5f\x77\x61\x69\x74\x2c\x0a\x09\x5e\x66\x6f\x75\x72\x70\x6f" \
-"\x72\x74\x2c\x20\x5e\x61\x75\x74\x6f\x5f\x69\x72\x71\x2c\x20\x5e" \
-"\x73\x6b\x69\x70\x5f\x74\x65\x73\x74\x2c\x20\x5e\x73\x61\x6b\x2c" \
-"\x20\x5e\x73\x65\x73\x73\x69\x6f\x6e\x5f\x6c\x6f\x63\x6b\x6f\x75" \
-"\x74\x2c\x20\x5e\x70\x67\x72\x70\x5f\x6c\x6f\x63\x6b\x6f\x75\x74" \
-"\x2c\x0a\x09\x5e\x63\x61\x6c\x6c\x6f\x75\x74\x5f\x6e\x6f\x68\x75" \
-"\x70\x2c\x20\x5e\x73\x70\x6c\x69\x74\x5f\x74\x65\x72\x6d\x69\x6f" \
-"\x73\x2c\x20\x5e\x68\x75\x70\x5f\x6e\x6f\x74\x69\x66\x79\x2c\x20" \
-"\x5e\x6c\x6f\x77\x5f\x6c\x61\x74\x65\x6e\x63\x79\x2c\x20\x61\x75" \
-"\x74\x6f\x63\x6f\x6e\x66\x69\x67\x2c\x0a\x09\x73\x70\x64\x5f\x6e" \
-"\x6f\x72\x6d\x61\x6c\x2c\x20\x73\x70\x64\x5f\x68\x69\x2c\x20\x73" \
-"\x70\x64\x5f\x76\x68\x69\x2c\x20\x73\x70\x64\x5f\x73\x68\x69\x2c" \
-"\x20\x73\x70\x64\x5f\x77\x61\x72\x70\x2c\x20\x73\x70\x64\x5f\x63" \
-"\x75\x73\x74\x0a\x0a\x55\x41\x52\x54\x20\x74\x79\x70\x65\x73\x3a" \
-"\x0a\x09\x75\x6e\x6b\x6e\x6f\x77\x6e\x2c\x20\x38\x32\x35\x30\x2c" \
-"\x20\x31\x36\x34\x35\x30\x2c\x20\x31\x36\x35\x35\x30\x2c\x20\x31" \
-"\x36\x35\x35\x30\x41\x2c\x20\x43\x69\x72\x72\x75\x73\x2c\x20\x31" \
-"\x36\x36\x35\x30\x2c\x20\x31\x36\x36\x35\x30\x56\x32\x2c\x20\x31" \
-"\x36\x37\x35\x30\x2c\x0a\x09\x31\x36\x39\x35\x30\x2c\x20\x31\x36" \
-"\x39\x35\x34\x2c\x20\x31\x36\x36\x35\x34\x2c\x20\x31\x36\x38\x35" \
-"\x30\x2c\x20\x52\x53\x41\x2c\x20\x4e\x53\x31\x36\x35\x35\x30\x41" \
-"\x2c\x20\x58\x53\x43\x41\x4c\x45\x2c\x20\x52\x4d\x39\x30\x30\x30" \
-"\x2c\x20\x4f\x43\x54\x45\x4f\x4e\x2c\x20\x41\x52\x37\x2c\x0a\x09" \
-"\x55\x36\x5f\x31\x36\x35\x35\x30\x41\x00\x50\x52\x4f\x47\x20\x41" \
-"\x52\x47\x53\x0a\x0a\x52\x75\x6e\x20\x50\x52\x4f\x47\x20\x69\x6e" \
-"\x20\x61\x20\x6e\x65\x77\x20\x73\x65\x73\x73\x69\x6f\x6e\x2e\x20" \
-"\x50\x52\x4f\x47\x20\x77\x69\x6c\x6c\x20\x68\x61\x76\x65\x20\x6e" \
-"\x6f\x20\x63\x6f\x6e\x74\x72\x6f\x6c\x6c\x69\x6e\x67\x20\x74\x65" \
-"\x72\x6d\x69\x6e\x61\x6c\x0a\x61\x6e\x64\x20\x77\x69\x6c\x6c\x20" \
-"\x6e\x6f\x74\x20\x62\x65\x20\x61\x66\x66\x65\x63\x74\x65\x64\x20" \
-"\x62\x79\x20\x6b\x65\x79\x62\x6f\x61\x72\x64\x20\x73\x69\x67\x6e" \
-"\x61\x6c\x73\x20\x28\x43\x74\x72\x6c\x2d\x43\x20\x65\x74\x63\x29" \
-"\x2e\x0a\x53\x65\x65\x20\x73\x65\x74\x73\x69\x64\x28\x32\x29\x20" \
-"\x66\x6f\x72\x20\x64\x65\x74\x61\x69\x6c\x73\x2e\x00\x5b\x2d\x2f" \
-"\x2b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x2d\x2f\x2b\x6f\x20" \
-"\x4f\x50\x54\x5d\x2e\x2e\x2e\x20\x5b\x2d\x63\x20\x27\x53\x43\x52" \
-"\x49\x50\x54\x27\x20\x5b\x41\x52\x47\x30\x20\x5b\x41\x52\x47\x53" \
-"\x5d\x5d\x20\x2f\x20\x46\x49\x4c\x45\x20\x5b\x41\x52\x47\x53\x5d" \
-"\x5d\x0a\x0a\x55\x6e\x69\x78\x20\x73\x68\x65\x6c\x6c\x20\x69\x6e" \
-"\x74\x65\x72\x70\x72\x65\x74\x65\x72\x00\x5b\x2d\x63\x5b\x73\x77" \
-"\x5d\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72" \
-"\x69\x6e\x74\x20\x6f\x72\x20\x63\x68\x65\x63\x6b\x20\x53\x48\x41" \
-"\x31\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x73\x0a\x0a\x09\x2d\x63" \
-"\x09\x43\x68\x65\x63\x6b\x20\x73\x75\x6d\x73\x20\x61\x67\x61\x69" \
-"\x6e\x73\x74\x20\x6c\x69\x73\x74\x20\x69\x6e\x20\x46\x49\x4c\x45" \
-"\x73\x0a\x09\x2d\x73\x09\x44\x6f\x6e\x27\x74\x20\x6f\x75\x74\x70" \
-"\x75\x74\x20\x61\x6e\x79\x74\x68\x69\x6e\x67\x2c\x20\x73\x74\x61" \
-"\x74\x75\x73\x20\x63\x6f\x64\x65\x20\x73\x68\x6f\x77\x73\x20\x73" \
-"\x75\x63\x63\x65\x73\x73\x0a\x09\x2d\x77\x09\x57\x61\x72\x6e\x20" \
-"\x61\x62\x6f\x75\x74\x20\x69\x6d\x70\x72\x6f\x70\x65\x72\x6c\x79" \
-"\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x64\x20\x63\x68\x65\x63\x6b" \
-"\x73\x75\x6d\x20\x6c\x69\x6e\x65\x73\x00\x5b\x2d\x63\x5b\x73\x77" \
-"\x5d\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72" \
-"\x69\x6e\x74\x20\x6f\x72\x20\x63\x68\x65\x63\x6b\x20\x53\x48\x41" \
-"\x32\x35\x36\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x73\x0a\x0a\x09" \
-"\x2d\x63\x09\x43\x68\x65\x63\x6b\x20\x73\x75\x6d\x73\x20\x61\x67" \
-"\x61\x69\x6e\x73\x74\x20\x6c\x69\x73\x74\x20\x69\x6e\x20\x46\x49" \
-"\x4c\x45\x73\x0a\x09\x2d\x73\x09\x44\x6f\x6e\x27\x74\x20\x6f\x75" \
-"\x74\x70\x75\x74\x20\x61\x6e\x79\x74\x68\x69\x6e\x67\x2c\x20\x73" \
-"\x74\x61\x74\x75\x73\x20\x63\x6f\x64\x65\x20\x73\x68\x6f\x77\x73" \
-"\x20\x73\x75\x63\x63\x65\x73\x73\x0a\x09\x2d\x77\x09\x57\x61\x72" \
-"\x6e\x20\x61\x62\x6f\x75\x74\x20\x69\x6d\x70\x72\x6f\x70\x65\x72" \
-"\x6c\x79\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x64\x20\x63\x68\x65" \
-"\x63\x6b\x73\x75\x6d\x20\x6c\x69\x6e\x65\x73\x00\x5b\x2d\x63\x5b" \
-"\x73\x77\x5d\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a" \
-"\x50\x72\x69\x6e\x74\x20\x6f\x72\x20\x63\x68\x65\x63\x6b\x20\x53" \
-"\x48\x41\x33\x2d\x35\x31\x32\x20\x63\x68\x65\x63\x6b\x73\x75\x6d" \
-"\x73\x0a\x0a\x09\x2d\x63\x09\x43\x68\x65\x63\x6b\x20\x73\x75\x6d" \
-"\x73\x20\x61\x67\x61\x69\x6e\x73\x74\x20\x6c\x69\x73\x74\x20\x69" \
-"\x6e\x20\x46\x49\x4c\x45\x73\x0a\x09\x2d\x73\x09\x44\x6f\x6e\x27" \
-"\x74\x20\x6f\x75\x74\x70\x75\x74\x20\x61\x6e\x79\x74\x68\x69\x6e" \
-"\x67\x2c\x20\x73\x74\x61\x74\x75\x73\x20\x63\x6f\x64\x65\x20\x73" \
-"\x68\x6f\x77\x73\x20\x73\x75\x63\x63\x65\x73\x73\x0a\x09\x2d\x77" \
-"\x09\x57\x61\x72\x6e\x20\x61\x62\x6f\x75\x74\x20\x69\x6d\x70\x72" \
-"\x6f\x70\x65\x72\x6c\x79\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x64" \
-"\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x20\x6c\x69\x6e\x65\x73\x00" \
-"\x5b\x2d\x63\x5b\x73\x77\x5d\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e" \
-"\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x6f\x72\x20\x63\x68\x65" \
-"\x63\x6b\x20\x53\x48\x41\x35\x31\x32\x20\x63\x68\x65\x63\x6b\x73" \
-"\x75\x6d\x73\x0a\x0a\x09\x2d\x63\x09\x43\x68\x65\x63\x6b\x20\x73" \
-"\x75\x6d\x73\x20\x61\x67\x61\x69\x6e\x73\x74\x20\x6c\x69\x73\x74" \
-"\x20\x69\x6e\x20\x46\x49\x4c\x45\x73\x0a\x09\x2d\x73\x09\x44\x6f" \
-"\x6e\x27\x74\x20\x6f\x75\x74\x70\x75\x74\x20\x61\x6e\x79\x74\x68" \
-"\x69\x6e\x67\x2c\x20\x73\x74\x61\x74\x75\x73\x20\x63\x6f\x64\x65" \
-"\x20\x73\x68\x6f\x77\x73\x20\x73\x75\x63\x63\x65\x73\x73\x0a\x09" \
-"\x2d\x77\x09\x57\x61\x72\x6e\x20\x61\x62\x6f\x75\x74\x20\x69\x6d" \
-"\x70\x72\x6f\x70\x65\x72\x6c\x79\x20\x66\x6f\x72\x6d\x61\x74\x74" \
-"\x65\x64\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x20\x6c\x69\x6e\x65" \
-"\x73\x00\x5b\x4e\x5d\x2e\x2e\x2e\x0a\x0a\x50\x61\x75\x73\x65\x20" \
-"\x66\x6f\x72\x20\x61\x20\x74\x69\x6d\x65\x20\x65\x71\x75\x61\x6c" \
-"\x20\x74\x6f\x20\x74\x68\x65\x20\x74\x6f\x74\x61\x6c\x20\x6f\x66" \
-"\x20\x74\x68\x65\x20\x61\x72\x67\x73\x20\x67\x69\x76\x65\x6e\x2c" \
-"\x20\x77\x68\x65\x72\x65\x20\x65\x61\x63\x68\x20\x61\x72\x67\x20" \
-"\x63\x61\x6e\x0a\x68\x61\x76\x65\x20\x61\x6e\x20\x6f\x70\x74\x69" \
-"\x6f\x6e\x61\x6c\x20\x73\x75\x66\x66\x69\x78\x20\x6f\x66\x20\x28" \
-"\x73\x29\x65\x63\x6f\x6e\x64\x73\x2c\x20\x28\x6d\x29\x69\x6e\x75" \
-"\x74\x65\x73\x2c\x20\x28\x68\x29\x6f\x75\x72\x73\x2c\x20\x6f\x72" \
-"\x20\x28\x64\x29\x61\x79\x73\x00\x5b\x2d\x6e\x72\x75\x67\x4d\x63" \
-"\x73\x7a\x62\x64\x66\x69\x6d\x53\x54\x6f\x6b\x74\x5d\x20\x5b\x2d" \
-"\x6f\x20\x46\x49\x4c\x45\x5d\x20\x5b\x2d\x6b\x20\x73\x74\x61\x72" \
-"\x74\x5b\x2e\x6f\x66\x66\x73\x65\x74\x5d\x5b\x6f\x70\x74\x73\x5d" \
-"\x5b\x2c\x65\x6e\x64\x5b\x2e\x6f\x66\x66\x73\x65\x74\x5d\x5b\x6f" \
-"\x70\x74\x73\x5d\x5d\x20\x5b\x2d\x74\x20\x43\x48\x41\x52\x5d\x20" \
-"\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x53\x6f\x72\x74\x20" \
-"\x6c\x69\x6e\x65\x73\x20\x6f\x66\x20\x74\x65\x78\x74\x0a\x0a\x09" \
-"\x2d\x62\x09\x49\x67\x6e\x6f\x72\x65\x20\x6c\x65\x61\x64\x69\x6e" \
-"\x67\x20\x62\x6c\x61\x6e\x6b\x73\x0a\x09\x2d\x63\x09\x43\x68\x65" \
-"\x63\x6b\x20\x77\x68\x65\x74\x68\x65\x72\x20\x69\x6e\x70\x75\x74" \
-"\x20\x69\x73\x20\x73\x6f\x72\x74\x65\x64\x0a\x09\x2d\x64\x09\x44" \
-"\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x20\x6f\x72\x64\x65\x72\x20" \
-"\x28\x62\x6c\x61\x6e\x6b\x20\x6f\x72\x20\x61\x6c\x70\x68\x61\x6e" \
-"\x75\x6d\x65\x72\x69\x63\x20\x6f\x6e\x6c\x79\x29\x0a\x09\x2d\x66" \
-"\x09\x49\x67\x6e\x6f\x72\x65\x20\x63\x61\x73\x65\x0a\x09\x2d\x67" \
-"\x09\x47\x65\x6e\x65\x72\x61\x6c\x20\x6e\x75\x6d\x65\x72\x69\x63" \
-"\x61\x6c\x20\x73\x6f\x72\x74\x0a\x09\x2d\x69\x09\x49\x67\x6e\x6f" \
-"\x72\x65\x20\x75\x6e\x70\x72\x69\x6e\x74\x61\x62\x6c\x65\x20\x63" \
-"\x68\x61\x72\x61\x63\x74\x65\x72\x73\x0a\x09\x2d\x6b\x09\x53\x6f" \
-"\x72\x74\x20\x6b\x65\x79\x0a\x09\x2d\x4d\x09\x53\x6f\x72\x74\x20" \
-"\x6d\x6f\x6e\x74\x68\x0a\x09\x2d\x6e\x09\x53\x6f\x72\x74\x20\x6e" \
-"\x75\x6d\x62\x65\x72\x73\x0a\x09\x2d\x6f\x09\x4f\x75\x74\x70\x75" \
-"\x74\x20\x74\x6f\x20\x66\x69\x6c\x65\x0a\x09\x2d\x6b\x09\x53\x6f" \
-"\x72\x74\x20\x62\x79\x20\x6b\x65\x79\x0a\x09\x2d\x74\x20\x43\x48" \
-"\x41\x52\x09\x4b\x65\x79\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72" \
-"\x0a\x09\x2d\x72\x09\x52\x65\x76\x65\x72\x73\x65\x20\x73\x6f\x72" \
-"\x74\x20\x6f\x72\x64\x65\x72\x0a\x09\x2d\x73\x09\x53\x74\x61\x62" \
-"\x6c\x65\x20\x28\x64\x6f\x6e\x27\x74\x20\x73\x6f\x72\x74\x20\x74" \
-"\x69\x65\x73\x20\x61\x6c\x70\x68\x61\x62\x65\x74\x69\x63\x61\x6c" \
-"\x6c\x79\x29\x0a\x09\x2d\x75\x09\x53\x75\x70\x70\x72\x65\x73\x73" \
-"\x20\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x20\x6c\x69\x6e\x65\x73" \
-"\x0a\x09\x2d\x7a\x09\x4c\x69\x6e\x65\x73\x20\x61\x72\x65\x20\x74" \
-"\x65\x72\x6d\x69\x6e\x61\x74\x65\x64\x20\x62\x79\x20\x4e\x55\x4c" \
-"\x2c\x20\x6e\x6f\x74\x20\x6e\x65\x77\x6c\x69\x6e\x65\x0a\x09\x2d" \
-"\x6d\x53\x54\x09\x49\x67\x6e\x6f\x72\x65\x64\x20\x66\x6f\x72\x20" \
-"\x47\x4e\x55\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x69\x6c\x69\x74" \
-"\x79\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x49\x4e\x50" \
-"\x55\x54\x20\x5b\x50\x52\x45\x46\x49\x58\x5d\x5d\x0a\x0a\x09\x2d" \
-"\x62\x20\x4e\x5b\x6b\x7c\x6d\x5d\x09\x53\x70\x6c\x69\x74\x20\x62" \
-"\x79\x20\x4e\x20\x28\x6b\x69\x6c\x6f\x7c\x6d\x65\x67\x61\x29\x62" \
-"\x79\x74\x65\x73\x0a\x09\x2d\x6c\x20\x4e\x09\x09\x53\x70\x6c\x69" \
-"\x74\x20\x62\x79\x20\x4e\x20\x6c\x69\x6e\x65\x73\x0a\x09\x2d\x61" \
-"\x20\x4e\x09\x09\x55\x73\x65\x20\x4e\x20\x6c\x65\x74\x74\x65\x72" \
-"\x73\x20\x61\x73\x20\x73\x75\x66\x66\x69\x78\x00\x5b\x4f\x50\x54" \
-"\x49\x4f\x4e\x53\x5d\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x44" \
-"\x69\x73\x70\x6c\x61\x79\x20\x66\x69\x6c\x65\x20\x28\x64\x65\x66" \
-"\x61\x75\x6c\x74\x29\x20\x6f\x72\x20\x66\x69\x6c\x65\x73\x79\x73" \
-"\x74\x65\x6d\x20\x73\x74\x61\x74\x75\x73\x0a\x0a\x09\x2d\x66\x09" \
-"\x44\x69\x73\x70\x6c\x61\x79\x20\x66\x69\x6c\x65\x73\x79\x73\x74" \
-"\x65\x6d\x20\x73\x74\x61\x74\x75\x73\x0a\x09\x2d\x4c\x09\x46\x6f" \
-"\x6c\x6c\x6f\x77\x20\x6c\x69\x6e\x6b\x73\x0a\x09\x2d\x74\x09\x44" \
-"\x69\x73\x70\x6c\x61\x79\x20\x69\x6e\x66\x6f\x20\x69\x6e\x20\x74" \
-"\x65\x72\x73\x65\x20\x66\x6f\x72\x6d\x00\x5b\x2d\x61\x66\x6f\x5d" \
-"\x20\x5b\x2d\x6e\x20\x4c\x45\x4e\x5d\x20\x5b\x46\x49\x4c\x45\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x70\x72\x69" \
-"\x6e\x74\x61\x62\x6c\x65\x20\x73\x74\x72\x69\x6e\x67\x73\x20\x69" \
-"\x6e\x20\x61\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x69\x6c\x65\x0a" \
-"\x0a\x09\x2d\x61\x09\x53\x63\x61\x6e\x20\x77\x68\x6f\x6c\x65\x20" \
-"\x66\x69\x6c\x65\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09" \
-"\x2d\x66\x09\x50\x72\x65\x63\x65\x64\x65\x20\x73\x74\x72\x69\x6e" \
-"\x67\x73\x20\x77\x69\x74\x68\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65" \
-"\x73\x0a\x09\x2d\x6e\x20\x4c\x45\x4e\x09\x41\x74\x20\x6c\x65\x61" \
-"\x73\x74\x20\x4c\x45\x4e\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72" \
-"\x73\x20\x66\x6f\x72\x6d\x20\x61\x20\x73\x74\x72\x69\x6e\x67\x20" \
-"\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x34\x29\x0a\x09\x2d\x6f\x09" \
-"\x50\x72\x65\x63\x65\x64\x65\x20\x73\x74\x72\x69\x6e\x67\x73\x20" \
-"\x77\x69\x74\x68\x20\x64\x65\x63\x69\x6d\x61\x6c\x20\x6f\x66\x66" \
-"\x73\x65\x74\x73\x00\x5b\x2d\x61\x7c\x67\x5d\x20\x5b\x2d\x46\x20" \
-"\x44\x45\x56\x49\x43\x45\x5d\x20\x5b\x53\x45\x54\x54\x49\x4e\x47" \
-"\x5d\x2e\x2e\x2e\x0a\x0a\x57\x69\x74\x68\x6f\x75\x74\x20\x61\x72" \
-"\x67\x75\x6d\x65\x6e\x74\x73\x2c\x20\x70\x72\x69\x6e\x74\x73\x20" \
-"\x62\x61\x75\x64\x20\x72\x61\x74\x65\x2c\x20\x6c\x69\x6e\x65\x20" \
-"\x64\x69\x73\x63\x69\x70\x6c\x69\x6e\x65\x2c\x0a\x61\x6e\x64\x20" \
-"\x64\x65\x76\x69\x61\x74\x69\x6f\x6e\x73\x20\x66\x72\x6f\x6d\x20" \
-"\x73\x74\x74\x79\x20\x73\x61\x6e\x65\x0a\x0a\x09\x2d\x46\x20\x44" \
-"\x45\x56\x49\x43\x45\x09\x4f\x70\x65\x6e\x20\x64\x65\x76\x69\x63" \
-"\x65\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x73\x74\x64" \
-"\x69\x6e\x0a\x09\x2d\x61\x09\x09\x50\x72\x69\x6e\x74\x20\x61\x6c" \
-"\x6c\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x73\x65\x74\x74\x69\x6e" \
-"\x67\x73\x20\x69\x6e\x20\x68\x75\x6d\x61\x6e\x2d\x72\x65\x61\x64" \
-"\x61\x62\x6c\x65\x20\x66\x6f\x72\x6d\x0a\x09\x2d\x67\x09\x09\x50" \
-"\x72\x69\x6e\x74\x20\x69\x6e\x20\x73\x74\x74\x79\x2d\x72\x65\x61" \
-"\x64\x61\x62\x6c\x65\x20\x66\x6f\x72\x6d\x0a\x09\x5b\x53\x45\x54" \
-"\x54\x49\x4e\x47\x5d\x09\x53\x65\x65\x20\x6d\x61\x6e\x70\x61\x67" \
-"\x65\x00\x5b\x2d\x72\x73\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x43\x68\x65\x63\x6b\x73\x75\x6d\x20\x61\x6e\x64\x20" \
-"\x63\x6f\x75\x6e\x74\x20\x74\x68\x65\x20\x62\x6c\x6f\x63\x6b\x73" \
-"\x20\x69\x6e\x20\x61\x20\x66\x69\x6c\x65\x0a\x0a\x09\x2d\x72\x09" \
-"\x55\x73\x65\x20\x42\x53\x44\x20\x73\x75\x6d\x20\x61\x6c\x67\x6f" \
-"\x72\x69\x74\x68\x6d\x20\x28\x31\x4b\x20\x62\x6c\x6f\x63\x6b\x73" \
-"\x29\x0a\x09\x2d\x73\x09\x55\x73\x65\x20\x53\x79\x73\x74\x65\x6d" \
-"\x20\x56\x20\x73\x75\x6d\x20\x61\x6c\x67\x6f\x72\x69\x74\x68\x6d" \
-"\x20\x28\x35\x31\x32\x62\x79\x74\x65\x20\x62\x6c\x6f\x63\x6b\x73" \
-"\x29\x00\x5b\x2d\x61\x5d\x20\x5b\x44\x45\x56\x49\x43\x45\x5d\x0a" \
-"\x0a\x53\x74\x6f\x70\x20\x73\x77\x61\x70\x70\x69\x6e\x67\x20\x6f" \
-"\x6e\x20\x44\x45\x56\x49\x43\x45\x0a\x0a\x09\x2d\x61\x09\x53\x74" \
-"\x6f\x70\x20\x73\x77\x61\x70\x70\x69\x6e\x67\x20\x6f\x6e\x20\x61" \
-"\x6c\x6c\x20\x73\x77\x61\x70\x20\x64\x65\x76\x69\x63\x65\x73\x00" \
-"\x5b\x2d\x61\x5d\x20\x5b\x44\x45\x56\x49\x43\x45\x5d\x0a\x0a\x53" \
-"\x74\x61\x72\x74\x20\x73\x77\x61\x70\x70\x69\x6e\x67\x20\x6f\x6e" \
-"\x20\x44\x45\x56\x49\x43\x45\x0a\x0a\x09\x2d\x61\x09\x53\x74\x61" \
-"\x72\x74\x20\x73\x77\x61\x70\x70\x69\x6e\x67\x20\x6f\x6e\x20\x61" \
-"\x6c\x6c\x20\x73\x77\x61\x70\x20\x64\x65\x76\x69\x63\x65\x73\x00" \
-"\x0a\x0a\x57\x72\x69\x74\x65\x20\x61\x6c\x6c\x20\x62\x75\x66\x66" \
-"\x65\x72\x65\x64\x20\x62\x6c\x6f\x63\x6b\x73\x20\x74\x6f\x20\x64" \
-"\x69\x73\x6b\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x4b" \
-"\x45\x59\x5b\x3d\x56\x41\x4c\x55\x45\x5d\x5d\x2e\x2e\x2e\x0a\x0a" \
-"\x53\x68\x6f\x77\x2f\x73\x65\x74\x20\x6b\x65\x72\x6e\x65\x6c\x20" \
-"\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x0a\x0a\x09\x2d\x65\x09" \
-"\x44\x6f\x6e\x27\x74\x20\x77\x61\x72\x6e\x20\x61\x62\x6f\x75\x74" \
-"\x20\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x6b\x65\x79\x73\x0a\x09\x2d" \
-"\x6e\x09\x44\x6f\x6e\x27\x74\x20\x73\x68\x6f\x77\x20\x6b\x65\x79" \
-"\x20\x6e\x61\x6d\x65\x73\x0a\x09\x2d\x61\x09\x53\x68\x6f\x77\x20" \
-"\x61\x6c\x6c\x20\x76\x61\x6c\x75\x65\x73\x0a\x09\x2d\x77\x09\x53" \
-"\x65\x74\x20\x76\x61\x6c\x75\x65\x73\x0a\x09\x2d\x70\x20\x46\x49" \
-"\x4c\x45\x09\x53\x65\x74\x20\x76\x61\x6c\x75\x65\x73\x20\x66\x72" \
-"\x6f\x6d\x20\x46\x49\x4c\x45\x20\x28\x64\x65\x66\x61\x75\x6c\x74" \
-"\x20\x2f\x65\x74\x63\x2f\x73\x79\x73\x63\x74\x6c\x2e\x63\x6f\x6e" \
-"\x66\x29\x0a\x09\x2d\x71\x20\x20\x20\x20\x20\x20\x53\x65\x74\x20" \
-"\x76\x61\x6c\x75\x65\x73\x20\x73\x69\x6c\x65\x6e\x74\x6c\x79\x00" \
-"\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f\x6e\x63\x61" \
-"\x74\x65\x6e\x61\x74\x65\x20\x46\x49\x4c\x45\x73\x20\x61\x6e\x64" \
-"\x20\x70\x72\x69\x6e\x74\x20\x74\x68\x65\x6d\x20\x69\x6e\x20\x72" \
-"\x65\x76\x65\x72\x73\x65\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d" \
-"\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e" \
-"\x74\x20\x6c\x61\x73\x74\x20\x31\x30\x20\x6c\x69\x6e\x65\x73\x20" \
-"\x6f\x66\x20\x65\x61\x63\x68\x20\x46\x49\x4c\x45\x20\x28\x6f\x72" \
-"\x20\x73\x74\x64\x69\x6e\x29\x20\x74\x6f\x20\x73\x74\x64\x6f\x75" \
-"\x74\x2e\x0a\x57\x69\x74\x68\x20\x6d\x6f\x72\x65\x20\x74\x68\x61" \
-"\x6e\x20\x6f\x6e\x65\x20\x46\x49\x4c\x45\x2c\x20\x70\x72\x65\x63" \
-"\x65\x64\x65\x20\x65\x61\x63\x68\x20\x77\x69\x74\x68\x20\x61\x20" \
-"\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x68\x65\x61\x64\x65\x72\x2e" \
-"\x0a\x0a\x09\x2d\x66\x09\x09\x50\x72\x69\x6e\x74\x20\x64\x61\x74" \
-"\x61\x20\x61\x73\x20\x66\x69\x6c\x65\x20\x67\x72\x6f\x77\x73\x0a" \
-"\x09\x2d\x73\x20\x53\x45\x43\x4f\x4e\x44\x53\x09\x57\x61\x69\x74" \
-"\x20\x53\x45\x43\x4f\x4e\x44\x53\x20\x62\x65\x74\x77\x65\x65\x6e" \
-"\x20\x72\x65\x61\x64\x73\x20\x77\x69\x74\x68\x20\x2d\x66\x0a\x09" \
-"\x2d\x6e\x20\x4e\x5b\x6b\x62\x6d\x5d\x09\x50\x72\x69\x6e\x74\x20" \
-"\x6c\x61\x73\x74\x20\x4e\x20\x6c\x69\x6e\x65\x73\x0a\x09\x2d\x63" \
-"\x20\x4e\x5b\x6b\x62\x6d\x5d\x09\x50\x72\x69\x6e\x74\x20\x6c\x61" \
-"\x73\x74\x20\x4e\x20\x62\x79\x74\x65\x73\x0a\x09\x2d\x71\x09\x09" \
-"\x4e\x65\x76\x65\x72\x20\x70\x72\x69\x6e\x74\x20\x68\x65\x61\x64" \
-"\x65\x72\x73\x0a\x09\x2d\x76\x09\x09\x41\x6c\x77\x61\x79\x73\x20" \
-"\x70\x72\x69\x6e\x74\x20\x68\x65\x61\x64\x65\x72\x73\x0a\x0a\x4e" \
-"\x20\x6d\x61\x79\x20\x62\x65\x20\x73\x75\x66\x66\x69\x78\x65\x64" \
-"\x20\x62\x79\x20\x6b\x20\x28\x78\x31\x30\x32\x34\x29\x2c\x20\x62" \
-"\x20\x28\x78\x35\x31\x32\x29\x2c\x20\x6f\x72\x20\x6d\x20\x28\x78" \
-"\x31\x30\x32\x34\x5e\x32\x29\x2e\x0a\x49\x66\x20\x4e\x20\x73\x74" \
-"\x61\x72\x74\x73\x20\x77\x69\x74\x68\x20\x61\x20\x27\x2b\x27\x2c" \
-"\x20\x6f\x75\x74\x70\x75\x74\x20\x62\x65\x67\x69\x6e\x73\x20\x77" \
-"\x69\x74\x68\x20\x74\x68\x65\x20\x4e\x74\x68\x20\x69\x74\x65\x6d" \
-"\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x73\x74\x61\x72\x74\x0a" \
-"\x6f\x66\x20\x65\x61\x63\x68\x20\x66\x69\x6c\x65\x2c\x20\x6e\x6f" \
-"\x74\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x65\x6e\x64\x2e\x00" \
-"\x2d\x5b\x63\x78\x74\x7a\x4a\x6a\x61\x68\x6d\x76\x4f\x5d\x20\x5b" \
-"\x2d\x58\x20\x46\x49\x4c\x45\x5d\x20\x5b\x2d\x54\x20\x46\x49\x4c" \
-"\x45\x5d\x20\x5b\x2d\x66\x20\x54\x41\x52\x46\x49\x4c\x45\x5d\x20" \
-"\x5b\x2d\x43\x20\x44\x49\x52\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e" \
-"\x2e\x2e\x0a\x0a\x43\x72\x65\x61\x74\x65\x2c\x20\x65\x78\x74\x72" \
-"\x61\x63\x74\x2c\x20\x6f\x72\x20\x6c\x69\x73\x74\x20\x66\x69\x6c" \
-"\x65\x73\x20\x66\x72\x6f\x6d\x20\x61\x20\x74\x61\x72\x20\x66\x69" \
-"\x6c\x65\x0a\x0a\x4f\x70\x65\x72\x61\x74\x69\x6f\x6e\x3a\x0a\x09" \
-"\x63\x09\x43\x72\x65\x61\x74\x65\x0a\x09\x78\x09\x45\x78\x74\x72" \
-"\x61\x63\x74\x0a\x09\x74\x09\x4c\x69\x73\x74\x0a\x09\x66\x09\x4e" \
-"\x61\x6d\x65\x20\x6f\x66\x20\x54\x41\x52\x46\x49\x4c\x45\x20\x28" \
-"\x27\x2d\x27\x20\x66\x6f\x72\x20\x73\x74\x64\x69\x6e\x2f\x6f\x75" \
-"\x74\x29\x0a\x09\x43\x09\x43\x68\x61\x6e\x67\x65\x20\x74\x6f\x20" \
-"\x44\x49\x52\x20\x62\x65\x66\x6f\x72\x65\x20\x6f\x70\x65\x72\x61" \
-"\x74\x69\x6f\x6e\x0a\x09\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x0a" \
-"\x09\x7a\x09\x28\x44\x65\x29\x63\x6f\x6d\x70\x72\x65\x73\x73\x20" \
-"\x75\x73\x69\x6e\x67\x20\x67\x7a\x69\x70\x0a\x09\x4a\x09\x28\x44" \
-"\x65\x29\x63\x6f\x6d\x70\x72\x65\x73\x73\x20\x75\x73\x69\x6e\x67" \
-"\x20\x78\x7a\x0a\x09\x6a\x09\x28\x44\x65\x29\x63\x6f\x6d\x70\x72" \
-"\x65\x73\x73\x20\x75\x73\x69\x6e\x67\x20\x62\x7a\x69\x70\x32\x0a" \
-"\x09\x61\x09\x28\x44\x65\x29\x63\x6f\x6d\x70\x72\x65\x73\x73\x20" \
-"\x75\x73\x69\x6e\x67\x20\x6c\x7a\x6d\x61\x0a\x09\x4f\x09\x45\x78" \
-"\x74\x72\x61\x63\x74\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a" \
-"\x09\x68\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d\x6c\x69\x6e" \
-"\x6b\x73\x0a\x09\x6d\x09\x44\x6f\x6e\x27\x74\x20\x72\x65\x73\x74" \
-"\x6f\x72\x65\x20\x6d\x74\x69\x6d\x65\x0a\x09\x65\x78\x63\x6c\x75" \
-"\x64\x65\x09\x46\x69\x6c\x65\x20\x74\x6f\x20\x65\x78\x63\x6c\x75" \
-"\x64\x65\x0a\x09\x58\x09\x46\x69\x6c\x65\x20\x77\x69\x74\x68\x20" \
-"\x6e\x61\x6d\x65\x73\x20\x74\x6f\x20\x65\x78\x63\x6c\x75\x64\x65" \
-"\x0a\x09\x54\x09\x46\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x6e\x61" \
-"\x6d\x65\x73\x20\x74\x6f\x20\x69\x6e\x63\x6c\x75\x64\x65\x00\x5b" \
-"\x2d\x70\x5d\x20\x5b\x4d\x41\x53\x4b\x5d\x20\x5b\x50\x49\x44\x20" \
-"\x7c\x20\x50\x52\x4f\x47\x20\x41\x52\x47\x53\x5d\x0a\x0a\x53\x65" \
-"\x74\x20\x6f\x72\x20\x67\x65\x74\x20\x43\x50\x55\x20\x61\x66\x66" \
-"\x69\x6e\x69\x74\x79\x0a\x0a\x09\x2d\x70\x09\x4f\x70\x65\x72\x61" \
-"\x74\x65\x20\x6f\x6e\x20\x61\x6e\x20\x65\x78\x69\x73\x74\x69\x6e" \
-"\x67\x20\x50\x49\x44\x00\x5b\x2d\x61\x69\x5d\x20\x5b\x46\x49\x4c" \
-"\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f\x70\x79\x20\x73\x74\x64\x69" \
-"\x6e\x20\x74\x6f\x20\x65\x61\x63\x68\x20\x46\x49\x4c\x45\x2c\x20" \
-"\x61\x6e\x64\x20\x61\x6c\x73\x6f\x20\x74\x6f\x20\x73\x74\x64\x6f" \
-"\x75\x74\x0a\x0a\x09\x2d\x61\x09\x41\x70\x70\x65\x6e\x64\x20\x74" \
-"\x6f\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x46\x49\x4c\x45" \
-"\x73\x2c\x20\x64\x6f\x6e\x27\x74\x20\x6f\x76\x65\x72\x77\x72\x69" \
-"\x74\x65\x0a\x09\x2d\x69\x09\x49\x67\x6e\x6f\x72\x65\x20\x69\x6e" \
-"\x74\x65\x72\x72\x75\x70\x74\x20\x73\x69\x67\x6e\x61\x6c\x73\x20" \
-"\x28\x53\x49\x47\x49\x4e\x54\x29\x00\x48\x4f\x53\x54\x20\x5b\x50" \
-"\x4f\x52\x54\x5d\x0a\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x20\x74\x6f" \
-"\x20\x74\x65\x6c\x6e\x65\x74\x20\x73\x65\x72\x76\x65\x72\x00\x5b" \
-"\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x0a\x0a\x48\x61\x6e\x64\x6c\x65" \
-"\x20\x69\x6e\x63\x6f\x6d\x69\x6e\x67\x20\x74\x65\x6c\x6e\x65\x74" \
-"\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x73\x0a\x0a\x09\x2d" \
-"\x6c\x20\x4c\x4f\x47\x49\x4e\x09\x45\x78\x65\x63\x20\x4c\x4f\x47" \
-"\x49\x4e\x20\x6f\x6e\x20\x63\x6f\x6e\x6e\x65\x63\x74\x0a\x09\x2d" \
-"\x66\x20\x49\x53\x53\x55\x45\x5f\x46\x49\x4c\x45\x09\x44\x69\x73" \
-"\x70\x6c\x61\x79\x20\x49\x53\x53\x55\x45\x5f\x46\x49\x4c\x45\x20" \
-"\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x2f\x65\x74\x63\x2f" \
-"\x69\x73\x73\x75\x65\x0a\x09\x2d\x4b\x09\x09\x43\x6c\x6f\x73\x65" \
-"\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x20\x61\x73\x20\x73" \
-"\x6f\x6f\x6e\x20\x61\x73\x20\x6c\x6f\x67\x69\x6e\x20\x65\x78\x69" \
-"\x74\x73\x0a\x09\x09\x09\x28\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x20" \
-"\x77\x61\x69\x74\x20\x75\x6e\x74\x69\x6c\x20\x61\x6c\x6c\x20\x70" \
-"\x72\x6f\x67\x72\x61\x6d\x73\x20\x63\x6c\x6f\x73\x65\x20\x73\x6c" \
-"\x61\x76\x65\x20\x70\x74\x79\x29\x0a\x09\x2d\x70\x20\x50\x4f\x52" \
-"\x54\x09\x09\x50\x6f\x72\x74\x20\x74\x6f\x20\x6c\x69\x73\x74\x65" \
-"\x6e\x20\x6f\x6e\x0a\x09\x2d\x62\x20\x41\x44\x44\x52\x5b\x3a\x50" \
-"\x4f\x52\x54\x5d\x09\x41\x64\x64\x72\x65\x73\x73\x20\x74\x6f\x20" \
-"\x62\x69\x6e\x64\x20\x74\x6f\x0a\x09\x2d\x46\x09\x09\x52\x75\x6e" \
-"\x20\x69\x6e\x20\x66\x6f\x72\x65\x67\x72\x6f\x75\x6e\x64\x0a\x09" \
-"\x2d\x69\x09\x09\x49\x6e\x65\x74\x64\x20\x6d\x6f\x64\x65\x0a\x09" \
-"\x2d\x77\x20\x53\x45\x43\x09\x09\x49\x6e\x65\x74\x64\x20\x27\x77" \
-"\x61\x69\x74\x27\x20\x6d\x6f\x64\x65\x2c\x20\x6c\x69\x6e\x67\x65" \
-"\x72\x20\x74\x69\x6d\x65\x20\x53\x45\x43\x0a\x09\x2d\x53\x09\x09" \
-"\x4c\x6f\x67\x20\x74\x6f\x20\x73\x79\x73\x6c\x6f\x67\x20\x28\x69" \
-"\x6d\x70\x6c\x69\x65\x64\x20\x62\x79\x20\x2d\x69\x20\x6f\x72\x20" \
-"\x77\x69\x74\x68\x6f\x75\x74\x20\x2d\x46\x20\x61\x6e\x64\x20\x2d" \
-"\x77\x29\x00\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x20\x5d\x0a" \
-"\x0a\x43\x68\x65\x63\x6b\x20\x66\x69\x6c\x65\x20\x74\x79\x70\x65" \
-"\x73\x2c\x20\x63\x6f\x6d\x70\x61\x72\x65\x20\x76\x61\x6c\x75\x65" \
-"\x73\x20\x65\x74\x63\x2e\x20\x52\x65\x74\x75\x72\x6e\x20\x61\x20" \
-"\x30\x2f\x31\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x0a\x64\x65" \
-"\x70\x65\x6e\x64\x69\x6e\x67\x20\x6f\x6e\x20\x6c\x6f\x67\x69\x63" \
-"\x61\x6c\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x45\x58\x50\x52" \
-"\x45\x53\x53\x49\x4f\x4e\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d" \
-"\x20\x48\x4f\x53\x54\x20\x5b\x50\x4f\x52\x54\x5d\x0a\x0a\x54\x72" \
-"\x61\x6e\x73\x66\x65\x72\x20\x61\x20\x66\x69\x6c\x65\x20\x66\x72" \
-"\x6f\x6d\x2f\x74\x6f\x20\x74\x66\x74\x70\x20\x73\x65\x72\x76\x65" \
-"\x72\x0a\x0a\x09\x2d\x6c\x20\x46\x49\x4c\x45\x09\x4c\x6f\x63\x61" \
-"\x6c\x20\x46\x49\x4c\x45\x0a\x09\x2d\x72\x20\x46\x49\x4c\x45\x09" \
-"\x52\x65\x6d\x6f\x74\x65\x20\x46\x49\x4c\x45\x0a\x09\x2d\x67\x09" \
-"\x47\x65\x74\x20\x66\x69\x6c\x65\x0a\x09\x2d\x70\x09\x50\x75\x74" \
-"\x20\x66\x69\x6c\x65\x00\x5b\x2d\x63\x72\x5d\x20\x5b\x2d\x75\x20" \
-"\x55\x53\x45\x52\x5d\x20\x5b\x44\x49\x52\x5d\x0a\x0a\x54\x72\x61" \
-"\x6e\x73\x66\x65\x72\x20\x61\x20\x66\x69\x6c\x65\x20\x6f\x6e\x20" \
-"\x74\x66\x74\x70\x20\x63\x6c\x69\x65\x6e\x74\x27\x73\x20\x72\x65" \
-"\x71\x75\x65\x73\x74\x0a\x0a\x74\x66\x74\x70\x64\x20\x73\x68\x6f" \
-"\x75\x6c\x64\x20\x62\x65\x20\x75\x73\x65\x64\x20\x61\x73\x20\x61" \
-"\x6e\x20\x69\x6e\x65\x74\x64\x20\x73\x65\x72\x76\x69\x63\x65\x2e" \
-"\x0a\x74\x66\x74\x70\x64\x27\x73\x20\x6c\x69\x6e\x65\x20\x66\x6f" \
-"\x72\x20\x69\x6e\x65\x74\x64\x2e\x63\x6f\x6e\x66\x3a\x0a\x09\x36" \
-"\x39\x20\x64\x67\x72\x61\x6d\x20\x75\x64\x70\x20\x6e\x6f\x77\x61" \
-"\x69\x74\x20\x72\x6f\x6f\x74\x20\x74\x66\x74\x70\x64\x20\x74\x66" \
-"\x74\x70\x64\x20\x2d\x6c\x20\x2f\x66\x69\x6c\x65\x73\x2f\x74\x6f" \
-"\x2f\x73\x65\x72\x76\x65\x0a\x49\x74\x20\x61\x6c\x73\x6f\x20\x63" \
-"\x61\x6e\x20\x62\x65\x20\x72\x61\x6e\x20\x66\x72\x6f\x6d\x20\x75" \
-"\x64\x70\x73\x76\x64\x3a\x0a\x09\x75\x64\x70\x73\x76\x64\x20\x2d" \
-"\x76\x45\x20\x30\x2e\x30\x2e\x30\x2e\x30\x20\x36\x39\x20\x74\x66" \
-"\x74\x70\x64\x20\x2f\x66\x69\x6c\x65\x73\x2f\x74\x6f\x2f\x73\x65" \
-"\x72\x76\x65\x0a\x0a\x09\x2d\x72\x09\x50\x72\x6f\x68\x69\x62\x69" \
-"\x74\x20\x75\x70\x6c\x6f\x61\x64\x0a\x09\x2d\x63\x09\x41\x6c\x6c" \
-"\x6f\x77\x20\x66\x69\x6c\x65\x20\x63\x72\x65\x61\x74\x69\x6f\x6e" \
-"\x20\x76\x69\x61\x20\x75\x70\x6c\x6f\x61\x64\x0a\x09\x2d\x75\x09" \
-"\x41\x63\x63\x65\x73\x73\x20\x66\x69\x6c\x65\x73\x20\x61\x73\x20" \
-"\x55\x53\x45\x52\x0a\x09\x2d\x6c\x09\x4c\x6f\x67\x20\x74\x6f\x20" \
-"\x73\x79\x73\x6c\x6f\x67\x20\x28\x69\x6e\x65\x74\x64\x20\x6d\x6f" \
-"\x64\x65\x20\x72\x65\x71\x75\x69\x72\x65\x73\x20\x74\x68\x69\x73" \
-"\x29\x00\x5b\x2d\x76\x5d\x20\x50\x52\x4f\x47\x20\x41\x52\x47\x53" \
-"\x0a\x0a\x52\x75\x6e\x20\x50\x52\x4f\x47\x2c\x20\x64\x69\x73\x70" \
-"\x6c\x61\x79\x20\x72\x65\x73\x6f\x75\x72\x63\x65\x20\x75\x73\x61" \
-"\x67\x65\x20\x77\x68\x65\x6e\x20\x69\x74\x20\x65\x78\x69\x74\x73" \
-"\x0a\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x00\x5b\x2d" \
-"\x74\x20\x53\x45\x43\x53\x5d\x20\x5b\x2d\x73\x20\x53\x49\x47\x5d" \
-"\x20\x50\x52\x4f\x47\x20\x41\x52\x47\x53\x0a\x0a\x52\x75\x6e\x73" \
-"\x20\x50\x52\x4f\x47\x2e\x20\x53\x65\x6e\x64\x73\x20\x53\x49\x47" \
-"\x20\x74\x6f\x20\x69\x74\x20\x69\x66\x20\x69\x74\x20\x69\x73\x20" \
-"\x6e\x6f\x74\x20\x67\x6f\x6e\x65\x20\x69\x6e\x20\x53\x45\x43\x53" \
-"\x20\x73\x65\x63\x6f\x6e\x64\x73\x2e\x0a\x44\x65\x66\x61\x75\x6c" \
-"\x74\x73\x3a\x20\x53\x45\x43\x53\x3a\x20\x31\x30\x2c\x20\x53\x49" \
-"\x47\x3a\x20\x54\x45\x52\x4d\x2e\x00\x5b\x2d\x62\x5d\x20\x5b\x2d" \
-"\x6e\x43\x4f\x55\x4e\x54\x5d\x20\x5b\x2d\x64\x53\x45\x43\x4f\x4e" \
-"\x44\x53\x5d\x20\x5b\x2d\x6d\x5d\x0a\x0a\x50\x72\x6f\x76\x69\x64" \
-"\x65\x20\x61\x20\x76\x69\x65\x77\x20\x6f\x66\x20\x70\x72\x6f\x63" \
-"\x65\x73\x73\x20\x61\x63\x74\x69\x76\x69\x74\x79\x20\x69\x6e\x20" \
-"\x72\x65\x61\x6c\x20\x74\x69\x6d\x65\x2e\x0a\x52\x65\x61\x64\x20" \
-"\x74\x68\x65\x20\x73\x74\x61\x74\x75\x73\x20\x6f\x66\x20\x61\x6c" \
-"\x6c\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x20\x66\x72\x6f\x6d" \
-"\x20\x2f\x70\x72\x6f\x63\x20\x65\x61\x63\x68\x20\x53\x45\x43\x4f" \
-"\x4e\x44\x53\x0a\x61\x6e\x64\x20\x64\x69\x73\x70\x6c\x61\x79\x20" \
-"\x61\x20\x73\x63\x72\x65\x65\x6e\x66\x75\x6c\x20\x6f\x66\x20\x74" \
-"\x68\x65\x6d\x2e\x0a\x4b\x65\x79\x73\x3a\x0a\x09\x4e\x2f\x4d\x2f" \
-"\x50\x2f\x54\x3a\x20\x73\x68\x6f\x77\x20\x43\x50\x55\x20\x75\x73" \
-"\x61\x67\x65\x2c\x20\x73\x6f\x72\x74\x20\x62\x79\x20\x70\x69\x64" \
-"\x2f\x6d\x65\x6d\x2f\x63\x70\x75\x2f\x74\x69\x6d\x65\x0a\x09\x53" \
-"\x3a\x20\x73\x68\x6f\x77\x20\x6d\x65\x6d\x6f\x72\x79\x0a\x09\x52" \
-"\x3a\x20\x72\x65\x76\x65\x72\x73\x65\x20\x73\x6f\x72\x74\x0a\x09" \
-"\x48\x3a\x20\x74\x6f\x67\x67\x6c\x65\x20\x74\x68\x72\x65\x61\x64" \
-"\x73\x2c\x20\x31\x3a\x20\x74\x6f\x67\x67\x6c\x65\x20\x53\x4d\x50" \
-"\x0a\x09\x51\x2c\x5e\x43\x3a\x20\x65\x78\x69\x74\x0a\x0a\x4f\x70" \
-"\x74\x69\x6f\x6e\x73\x3a\x0a\x09\x2d\x62\x09\x42\x61\x74\x63\x68" \
-"\x20\x6d\x6f\x64\x65\x0a\x09\x2d\x6e\x20\x4e\x09\x45\x78\x69\x74" \
-"\x20\x61\x66\x74\x65\x72\x20\x4e\x20\x69\x74\x65\x72\x61\x74\x69" \
-"\x6f\x6e\x73\x0a\x09\x2d\x64\x20\x4e\x09\x44\x65\x6c\x61\x79\x20" \
-"\x62\x65\x74\x77\x65\x65\x6e\x20\x75\x70\x64\x61\x74\x65\x73\x0a" \
-"\x09\x2d\x6d\x09\x53\x61\x6d\x65\x20\x61\x73\x20\x27\x73\x27\x20" \
-"\x6b\x65\x79\x00\x5b\x2d\x63\x5d\x20\x5b\x2d\x64\x20\x44\x41\x54" \
-"\x45\x5d\x20\x5b\x2d\x74\x20\x44\x41\x54\x45\x5d\x20\x5b\x2d\x72" \
-"\x20\x46\x49\x4c\x45\x5d\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a" \
-"\x55\x70\x64\x61\x74\x65\x20\x74\x68\x65\x20\x6c\x61\x73\x74\x2d" \
-"\x6d\x6f\x64\x69\x66\x69\x65\x64\x20\x64\x61\x74\x65\x20\x6f\x6e" \
-"\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x46\x49\x4c\x45\x5b" \
-"\x73\x5d\x0a\x0a\x09\x2d\x63\x09\x44\x6f\x6e\x27\x74\x20\x63\x72" \
-"\x65\x61\x74\x65\x20\x66\x69\x6c\x65\x73\x0a\x09\x2d\x64\x20\x44" \
-"\x54\x09\x44\x61\x74\x65\x2f\x74\x69\x6d\x65\x20\x74\x6f\x20\x75" \
-"\x73\x65\x0a\x09\x2d\x74\x20\x44\x54\x09\x44\x61\x74\x65\x2f\x74" \
-"\x69\x6d\x65\x20\x74\x6f\x20\x75\x73\x65\x0a\x09\x2d\x72\x20\x46" \
-"\x49\x4c\x45\x09\x55\x73\x65\x20\x46\x49\x4c\x45\x27\x73\x20\x64" \
-"\x61\x74\x65\x2f\x74\x69\x6d\x65\x00\x5b\x2d\x63\x64\x73\x5d\x20" \
-"\x53\x54\x52\x49\x4e\x47\x31\x20\x5b\x53\x54\x52\x49\x4e\x47\x32" \
-"\x5d\x0a\x0a\x54\x72\x61\x6e\x73\x6c\x61\x74\x65\x2c\x20\x73\x71" \
-"\x75\x65\x65\x7a\x65\x2c\x20\x6f\x72\x20\x64\x65\x6c\x65\x74\x65" \
-"\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x66\x72\x6f\x6d" \
-"\x20\x73\x74\x64\x69\x6e\x2c\x20\x77\x72\x69\x74\x69\x6e\x67\x20" \
-"\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x0a\x09\x2d\x63\x09\x54" \
-"\x61\x6b\x65\x20\x63\x6f\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x20\x6f" \
-"\x66\x20\x53\x54\x52\x49\x4e\x47\x31\x0a\x09\x2d\x64\x09\x44\x65" \
-"\x6c\x65\x74\x65\x20\x69\x6e\x70\x75\x74\x20\x63\x68\x61\x72\x61" \
-"\x63\x74\x65\x72\x73\x20\x63\x6f\x64\x65\x64\x20\x53\x54\x52\x49" \
-"\x4e\x47\x31\x0a\x09\x2d\x73\x09\x53\x71\x75\x65\x65\x7a\x65\x20" \
-"\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x6f\x75\x74\x70\x75\x74\x20" \
-"\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x6f\x66\x20\x53\x54" \
-"\x52\x49\x4e\x47\x32\x20\x69\x6e\x74\x6f\x20\x6f\x6e\x65\x20\x63" \
-"\x68\x61\x72\x61\x63\x74\x65\x72\x00\x5b\x2d\x46\x49\x6c\x64\x6e" \
-"\x72\x76\x5d\x20\x5b\x2d\x66\x20\x31\x53\x54\x5f\x54\x54\x4c\x5d" \
-"\x20\x5b\x2d\x6d\x20\x4d\x41\x58\x54\x54\x4c\x5d\x20\x5b\x2d\x70" \
-"\x20\x50\x4f\x52\x54\x5d\x20\x5b\x2d\x71\x20\x50\x52\x4f\x42\x45" \
-"\x53\x5d\x0a\x09\x5b\x2d\x73\x20\x53\x52\x43\x5f\x49\x50\x5d\x20" \
-"\x5b\x2d\x74\x20\x54\x4f\x53\x5d\x20\x5b\x2d\x77\x20\x57\x41\x49" \
-"\x54\x5f\x53\x45\x43\x5d\x20\x5b\x2d\x67\x20\x47\x41\x54\x45\x57" \
-"\x41\x59\x5d\x20\x5b\x2d\x69\x20\x49\x46\x41\x43\x45\x5d\x0a\x09" \
-"\x5b\x2d\x7a\x20\x50\x41\x55\x53\x45\x5f\x4d\x53\x45\x43\x5d\x20" \
-"\x48\x4f\x53\x54\x20\x5b\x42\x59\x54\x45\x53\x5d\x0a\x0a\x54\x72" \
-"\x61\x63\x65\x20\x74\x68\x65\x20\x72\x6f\x75\x74\x65\x20\x74\x6f" \
-"\x20\x48\x4f\x53\x54\x0a\x0a\x09\x2d\x46\x09\x53\x65\x74\x20\x74" \
-"\x68\x65\x20\x64\x6f\x6e\x27\x74\x20\x66\x72\x61\x67\x6d\x65\x6e" \
-"\x74\x20\x62\x69\x74\x0a\x09\x2d\x49\x09\x55\x73\x65\x20\x49\x43" \
-"\x4d\x50\x20\x45\x43\x48\x4f\x20\x69\x6e\x73\x74\x65\x61\x64\x20" \
-"\x6f\x66\x20\x55\x44\x50\x20\x64\x61\x74\x61\x67\x72\x61\x6d\x73" \
-"\x0a\x09\x2d\x6c\x09\x44\x69\x73\x70\x6c\x61\x79\x20\x74\x68\x65" \
-"\x20\x54\x54\x4c\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x74\x68" \
-"\x65\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x70\x61\x63\x6b\x65" \
-"\x74\x0a\x09\x2d\x64\x09\x53\x65\x74\x20\x53\x4f\x5f\x44\x45\x42" \
-"\x55\x47\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x74\x6f\x20\x73\x6f" \
-"\x63\x6b\x65\x74\x0a\x09\x2d\x6e\x09\x50\x72\x69\x6e\x74\x20\x6e" \
-"\x75\x6d\x65\x72\x69\x63\x20\x61\x64\x64\x72\x65\x73\x73\x65\x73" \
-"\x0a\x09\x2d\x72\x09\x42\x79\x70\x61\x73\x73\x20\x72\x6f\x75\x74" \
-"\x69\x6e\x67\x20\x74\x61\x62\x6c\x65\x73\x2c\x20\x73\x65\x6e\x64" \
-"\x20\x64\x69\x72\x65\x63\x74\x6c\x79\x20\x74\x6f\x20\x48\x4f\x53" \
-"\x54\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d" \
-"\x6d\x09\x4d\x61\x78\x20\x74\x69\x6d\x65\x2d\x74\x6f\x2d\x6c\x69" \
-"\x76\x65\x20\x28\x6d\x61\x78\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f" \
-"\x66\x20\x68\x6f\x70\x73\x29\x0a\x09\x2d\x70\x09\x42\x61\x73\x65" \
-"\x20\x55\x44\x50\x20\x70\x6f\x72\x74\x20\x6e\x75\x6d\x62\x65\x72" \
-"\x20\x75\x73\x65\x64\x20\x69\x6e\x20\x70\x72\x6f\x62\x65\x73\x0a" \
-"\x09\x09\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x33\x33\x34\x33\x34" \
-"\x29\x0a\x09\x2d\x71\x09\x4e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20" \
-"\x70\x72\x6f\x62\x65\x73\x20\x70\x65\x72\x20\x54\x54\x4c\x20\x28" \
-"\x64\x65\x66\x61\x75\x6c\x74\x20\x33\x29\x0a\x09\x2d\x73\x09\x49" \
-"\x50\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6f\x20\x75\x73\x65" \
-"\x20\x61\x73\x20\x74\x68\x65\x20\x73\x6f\x75\x72\x63\x65\x20\x61" \
-"\x64\x64\x72\x65\x73\x73\x0a\x09\x2d\x74\x09\x54\x79\x70\x65\x2d" \
-"\x6f\x66\x2d\x73\x65\x72\x76\x69\x63\x65\x20\x69\x6e\x20\x70\x72" \
-"\x6f\x62\x65\x20\x70\x61\x63\x6b\x65\x74\x73\x20\x28\x64\x65\x66" \
-"\x61\x75\x6c\x74\x20\x30\x29\x0a\x09\x2d\x77\x09\x54\x69\x6d\x65" \
-"\x20\x69\x6e\x20\x73\x65\x63\x6f\x6e\x64\x73\x20\x74\x6f\x20\x77" \
-"\x61\x69\x74\x20\x66\x6f\x72\x20\x61\x20\x72\x65\x73\x70\x6f\x6e" \
-"\x73\x65\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x33\x29\x0a\x09" \
-"\x2d\x67\x09\x4c\x6f\x6f\x73\x65\x20\x73\x6f\x75\x72\x63\x65\x20" \
-"\x72\x6f\x75\x74\x65\x20\x67\x61\x74\x65\x77\x61\x79\x20\x28\x38" \
-"\x20\x6d\x61\x78\x29\x00\x0a\x0a\x52\x65\x74\x75\x72\x6e\x20\x61" \
-"\x6e\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x6f\x66\x20\x54" \
-"\x52\x55\x45\x20\x28\x30\x29\x00\x5b\x77\x5d\x20\x5b\x68\x5d\x0a" \
-"\x0a\x50\x72\x69\x6e\x74\x20\x64\x69\x6d\x65\x6e\x73\x69\x6f\x6e" \
-"\x28\x73\x29\x20\x6f\x66\x20\x73\x74\x64\x69\x6e\x27\x73\x20\x74" \
-"\x65\x72\x6d\x69\x6e\x61\x6c\x2c\x20\x6f\x6e\x20\x65\x72\x72\x6f" \
-"\x72\x20\x72\x65\x74\x75\x72\x6e\x20\x38\x30\x78\x32\x35\x00\x5b" \
-"\x2d\x63\x20\x4d\x41\x58\x5f\x4d\x4f\x55\x4e\x54\x5f\x43\x4f\x55" \
-"\x4e\x54\x5d\x20\x5b\x2d\x69\x20\x44\x41\x59\x53\x5d\x20\x5b\x2d" \
-"\x43\x20\x4d\x4f\x55\x4e\x54\x5f\x43\x4f\x55\x4e\x54\x5d\x20\x5b" \
-"\x2d\x4c\x20\x4c\x41\x42\x45\x4c\x5d\x20\x42\x4c\x4f\x43\x4b\x44" \
-"\x45\x56\x0a\x0a\x41\x64\x6a\x75\x73\x74\x20\x66\x69\x6c\x65\x73" \
-"\x79\x73\x74\x65\x6d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x6f\x6e" \
-"\x20\x65\x78\x74\x5b\x32\x33\x5d\x20\x66\x69\x6c\x65\x73\x79\x73" \
-"\x74\x65\x6d\x73\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x46" \
-"\x49\x4c\x45\x53\x59\x53\x54\x45\x4d\x7c\x44\x49\x52\x45\x43\x54" \
-"\x4f\x52\x59\x0a\x0a\x55\x6e\x6d\x6f\x75\x6e\x74\x20\x66\x69\x6c" \
-"\x65\x20\x73\x79\x73\x74\x65\x6d\x73\x0a\x0a\x09\x2d\x61\x09\x55" \
-"\x6e\x6d\x6f\x75\x6e\x74\x20\x61\x6c\x6c\x20\x66\x69\x6c\x65\x20" \
-"\x73\x79\x73\x74\x65\x6d\x73\x0a\x09\x2d\x72\x09\x54\x72\x79\x20" \
-"\x74\x6f\x20\x72\x65\x6d\x6f\x75\x6e\x74\x20\x64\x65\x76\x69\x63" \
-"\x65\x73\x20\x61\x73\x20\x72\x65\x61\x64\x2d\x6f\x6e\x6c\x79\x20" \
-"\x69\x66\x20\x6d\x6f\x75\x6e\x74\x20\x69\x73\x20\x62\x75\x73\x79" \
-"\x0a\x09\x2d\x6c\x09\x4c\x61\x7a\x79\x20\x75\x6d\x6f\x75\x6e\x74" \
-"\x20\x28\x64\x65\x74\x61\x63\x68\x20\x66\x69\x6c\x65\x73\x79\x73" \
-"\x74\x65\x6d\x29\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x20\x75" \
-"\x6d\x6f\x75\x6e\x74\x20\x28\x69\x2e\x65\x2e\x2c\x20\x75\x6e\x72" \
-"\x65\x61\x63\x68\x61\x62\x6c\x65\x20\x4e\x46\x53\x20\x73\x65\x72" \
-"\x76\x65\x72\x29\x0a\x09\x2d\x64\x09\x46\x72\x65\x65\x20\x6c\x6f" \
-"\x6f\x70\x20\x64\x65\x76\x69\x63\x65\x20\x65\x76\x65\x6e\x20\x69" \
-"\x66\x20\x69\x74\x20\x68\x61\x73\x20\x62\x65\x65\x6e\x20\x75\x73" \
-"\x65\x64\x00\x5b\x2d\x61\x6d\x6e\x72\x73\x70\x76\x5d\x0a\x0a\x50" \
-"\x72\x69\x6e\x74\x20\x73\x79\x73\x74\x65\x6d\x20\x69\x6e\x66\x6f" \
-"\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x0a\x09\x2d\x61\x09\x50\x72\x69" \
-"\x6e\x74\x20\x61\x6c\x6c\x0a\x09\x2d\x6d\x09\x54\x68\x65\x20\x6d" \
-"\x61\x63\x68\x69\x6e\x65\x20\x28\x68\x61\x72\x64\x77\x61\x72\x65" \
-"\x29\x20\x74\x79\x70\x65\x0a\x09\x2d\x6e\x09\x48\x6f\x73\x74\x6e" \
-"\x61\x6d\x65\x0a\x09\x2d\x72\x09\x4f\x53\x20\x72\x65\x6c\x65\x61" \
-"\x73\x65\x0a\x09\x2d\x73\x09\x4f\x53\x20\x6e\x61\x6d\x65\x20\x28" \
-"\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x70\x09\x50\x72\x6f" \
-"\x63\x65\x73\x73\x6f\x72\x20\x74\x79\x70\x65\x0a\x09\x2d\x76\x09" \
-"\x4f\x53\x20\x76\x65\x72\x73\x69\x6f\x6e\x00\x5b\x2d\x63\x66\x5d" \
-"\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65\x63\x6f" \
-"\x6d\x70\x72\x65\x73\x73\x20\x2e\x5a\x20\x66\x69\x6c\x65\x5b\x73" \
-"\x5d\x0a\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20\x74\x6f\x20" \
-"\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x4f\x76\x65\x72\x77" \
-"\x72\x69\x74\x65\x00\x5b\x2d\x66\x61\x5d\x5b\x2d\x74\x20\x4e\x5d" \
-"\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f\x6e\x76" \
-"\x65\x72\x74\x20\x73\x70\x61\x63\x65\x73\x20\x74\x6f\x20\x74\x61" \
-"\x62\x73\x2c\x20\x77\x72\x69\x74\x69\x6e\x67\x20\x74\x6f\x20\x73" \
-"\x74\x64\x6f\x75\x74\x0a\x0a\x09\x2d\x61\x2c\x2d\x2d\x61\x6c\x6c" \
-"\x09\x43\x6f\x6e\x76\x65\x72\x74\x20\x61\x6c\x6c\x20\x62\x6c\x61" \
-"\x6e\x6b\x73\x0a\x09\x2d\x66\x2c\x2d\x2d\x66\x69\x72\x73\x74\x2d" \
-"\x6f\x6e\x6c\x79\x09\x43\x6f\x6e\x76\x65\x72\x74\x20\x6f\x6e\x6c" \
-"\x79\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x62\x6c\x61\x6e\x6b\x73" \
-"\x0a\x09\x2d\x74\x2c\x2d\x2d\x74\x61\x62\x73\x3d\x4e\x09\x54\x61" \
-"\x62\x73\x74\x6f\x70\x73\x20\x65\x76\x65\x72\x79\x20\x4e\x20\x63" \
-"\x68\x61\x72\x73\x00\x5b\x2d\x63\x64\x75\x5d\x5b\x2d\x66\x2c\x73" \
-"\x2c\x77\x20\x4e\x5d\x20\x5b\x49\x4e\x50\x55\x54\x20\x5b\x4f\x55" \
-"\x54\x50\x55\x54\x5d\x5d\x0a\x0a\x44\x69\x73\x63\x61\x72\x64\x20" \
-"\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x20\x6c\x69\x6e\x65\x73\x0a" \
-"\x0a\x09\x2d\x63\x09\x50\x72\x65\x66\x69\x78\x20\x6c\x69\x6e\x65" \
-"\x73\x20\x62\x79\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20" \
-"\x6f\x66\x20\x6f\x63\x63\x75\x72\x72\x65\x6e\x63\x65\x73\x0a\x09" \
-"\x2d\x64\x09\x4f\x6e\x6c\x79\x20\x70\x72\x69\x6e\x74\x20\x64\x75" \
-"\x70\x6c\x69\x63\x61\x74\x65\x20\x6c\x69\x6e\x65\x73\x0a\x09\x2d" \
-"\x75\x09\x4f\x6e\x6c\x79\x20\x70\x72\x69\x6e\x74\x20\x75\x6e\x69" \
-"\x71\x75\x65\x20\x6c\x69\x6e\x65\x73\x0a\x09\x2d\x66\x20\x4e\x09" \
-"\x53\x6b\x69\x70\x20\x66\x69\x72\x73\x74\x20\x4e\x20\x66\x69\x65" \
-"\x6c\x64\x73\x0a\x09\x2d\x73\x20\x4e\x09\x53\x6b\x69\x70\x20\x66" \
-"\x69\x72\x73\x74\x20\x4e\x20\x63\x68\x61\x72\x73\x20\x28\x61\x66" \
-"\x74\x65\x72\x20\x61\x6e\x79\x20\x73\x6b\x69\x70\x70\x65\x64\x20" \
-"\x66\x69\x65\x6c\x64\x73\x29\x0a\x09\x2d\x77\x20\x4e\x09\x43\x6f" \
-"\x6d\x70\x61\x72\x65\x20\x4e\x20\x63\x68\x61\x72\x61\x63\x74\x65" \
-"\x72\x73\x20\x69\x6e\x20\x6c\x69\x6e\x65\x00\x5b\x2d\x75\x64\x5d" \
-"\x20\x5b\x46\x49\x4c\x45\x5d\x0a\x0a\x43\x6f\x6e\x76\x65\x72\x74" \
-"\x20\x46\x49\x4c\x45\x20\x69\x6e\x2d\x70\x6c\x61\x63\x65\x20\x66" \
-"\x72\x6f\x6d\x20\x55\x6e\x69\x78\x20\x74\x6f\x20\x44\x4f\x53\x20" \
-"\x66\x6f\x72\x6d\x61\x74\x2e\x0a\x57\x68\x65\x6e\x20\x6e\x6f\x20" \
-"\x66\x69\x6c\x65\x20\x69\x73\x20\x67\x69\x76\x65\x6e\x2c\x20\x75" \
-"\x73\x65\x20\x73\x74\x64\x69\x6e\x2f\x73\x74\x64\x6f\x75\x74\x2e" \
-"\x0a\x0a\x09\x2d\x75\x09\x64\x6f\x73\x32\x75\x6e\x69\x78\x0a\x09" \
-"\x2d\x64\x09\x75\x6e\x69\x78\x32\x64\x6f\x73\x00\x5b\x2d\x63\x66" \
-"\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65\x63" \
-"\x6f\x6d\x70\x72\x65\x73\x73\x20\x46\x49\x4c\x45\x20\x28\x6f\x72" \
-"\x20\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d\x63\x09\x57\x72\x69" \
-"\x74\x65\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66" \
-"\x09\x46\x6f\x72\x63\x65\x00\x5b\x2d\x63\x66\x76\x43\x46\x5d\x20" \
-"\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x63\x09\x57" \
-"\x72\x69\x74\x65\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09" \
-"\x2d\x66\x09\x46\x6f\x72\x63\x65\x0a\x09\x2d\x76\x09\x56\x65\x72" \
-"\x62\x6f\x73\x65\x0a\x09\x2d\x46\x09\x44\x6f\x6e\x27\x74\x20\x73" \
-"\x74\x6f\x72\x65\x20\x6f\x72\x20\x76\x65\x72\x69\x66\x79\x20\x63" \
-"\x68\x65\x63\x6b\x73\x75\x6d\x00\x5b\x2d\x63\x66\x5d\x20\x5b\x46" \
-"\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72" \
-"\x65\x73\x73\x20\x46\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64" \
-"\x69\x6e\x29\x0a\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20\x74" \
-"\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46\x6f\x72" \
-"\x63\x65\x00\x5b\x2d\x6c\x6e\x6f\x70\x71\x5d\x20\x46\x49\x4c\x45" \
-"\x5b\x2e\x7a\x69\x70\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e" \
-"\x20\x5b\x2d\x78\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x5d\x20\x5b\x2d" \
-"\x64\x20\x44\x49\x52\x5d\x0a\x0a\x45\x78\x74\x72\x61\x63\x74\x20" \
-"\x46\x49\x4c\x45\x73\x20\x66\x72\x6f\x6d\x20\x5a\x49\x50\x20\x61" \
-"\x72\x63\x68\x69\x76\x65\x0a\x0a\x09\x2d\x6c\x09\x4c\x69\x73\x74" \
-"\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x28\x77\x69\x74\x68\x20" \
-"\x2d\x71\x20\x66\x6f\x72\x20\x73\x68\x6f\x72\x74\x20\x66\x6f\x72" \
-"\x6d\x29\x0a\x09\x2d\x6e\x09\x4e\x65\x76\x65\x72\x20\x6f\x76\x65" \
-"\x72\x77\x72\x69\x74\x65\x20\x66\x69\x6c\x65\x73\x20\x28\x64\x65" \
-"\x66\x61\x75\x6c\x74\x3a\x20\x61\x73\x6b\x29\x0a\x09\x2d\x6f\x09" \
-"\x4f\x76\x65\x72\x77\x72\x69\x74\x65\x0a\x09\x2d\x70\x09\x50\x72" \
-"\x69\x6e\x74\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d" \
-"\x71\x09\x51\x75\x69\x65\x74\x0a\x09\x2d\x78\x20\x46\x49\x4c\x45" \
-"\x09\x45\x78\x63\x6c\x75\x64\x65\x20\x46\x49\x4c\x45\x73\x0a\x09" \
-"\x2d\x64\x20\x44\x49\x52\x09\x45\x78\x74\x72\x61\x63\x74\x20\x69" \
-"\x6e\x74\x6f\x20\x44\x49\x52\x00\x0a\x0a\x44\x69\x73\x70\x6c\x61" \
-"\x79\x20\x74\x68\x65\x20\x74\x69\x6d\x65\x20\x73\x69\x6e\x63\x65" \
-"\x20\x74\x68\x65\x20\x6c\x61\x73\x74\x20\x62\x6f\x6f\x74\x00\x4e" \
-"\x0a\x0a\x50\x61\x75\x73\x65\x20\x66\x6f\x72\x20\x4e\x20\x6d\x69" \
-"\x63\x72\x6f\x73\x65\x63\x6f\x6e\x64\x73\x00\x5b\x2d\x6f\x20\x4f" \
-"\x55\x54\x46\x49\x4c\x45\x5d\x20\x5b\x49\x4e\x46\x49\x4c\x45\x5d" \
-"\x0a\x0a\x55\x75\x64\x65\x63\x6f\x64\x65\x20\x61\x20\x66\x69\x6c" \
-"\x65\x0a\x46\x69\x6e\x64\x73\x20\x4f\x55\x54\x46\x49\x4c\x45\x20" \
-"\x69\x6e\x20\x75\x75\x65\x6e\x63\x6f\x64\x65\x64\x20\x73\x6f\x75" \
-"\x72\x63\x65\x20\x75\x6e\x6c\x65\x73\x73\x20\x2d\x6f\x20\x69\x73" \
-"\x20\x67\x69\x76\x65\x6e\x00\x5b\x2d\x6d\x5d\x20\x5b\x46\x49\x4c" \
-"\x45\x5d\x20\x53\x54\x4f\x52\x45\x44\x5f\x46\x49\x4c\x45\x4e\x41" \
-"\x4d\x45\x0a\x0a\x55\x75\x65\x6e\x63\x6f\x64\x65\x20\x46\x49\x4c" \
-"\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x74\x6f\x20" \
-"\x73\x74\x64\x6f\x75\x74\x0a\x0a\x09\x2d\x6d\x09\x55\x73\x65\x20" \
-"\x62\x61\x73\x65\x36\x34\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20" \
-"\x70\x65\x72\x20\x52\x46\x43\x31\x35\x32\x31\x00\x5b\x4f\x50\x54" \
-"\x49\x4f\x4e\x53\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a" \
-"\x0a\x45\x64\x69\x74\x20\x46\x49\x4c\x45\x0a\x0a\x09\x2d\x63\x20" \
-"\x43\x4d\x44\x09\x49\x6e\x69\x74\x69\x61\x6c\x20\x63\x6f\x6d\x6d" \
-"\x61\x6e\x64\x20\x74\x6f\x20\x72\x75\x6e\x20\x28\x24\x45\x58\x49" \
-"\x4e\x49\x54\x20\x61\x6c\x73\x6f\x20\x61\x76\x61\x69\x6c\x61\x62" \
-"\x6c\x65\x29\x0a\x09\x2d\x52\x09\x52\x65\x61\x64\x2d\x6f\x6e\x6c" \
-"\x79\x0a\x09\x2d\x48\x09\x4c\x69\x73\x74\x20\x61\x76\x61\x69\x6c" \
-"\x61\x62\x6c\x65\x20\x66\x65\x61\x74\x75\x72\x65\x73\x00\x5b\x2d" \
-"\x6e\x20\x53\x45\x43\x5d\x20\x5b\x2d\x74\x5d\x20\x50\x52\x4f\x47" \
-"\x20\x41\x52\x47\x53\x0a\x0a\x52\x75\x6e\x20\x50\x52\x4f\x47\x20" \
-"\x70\x65\x72\x69\x6f\x64\x69\x63\x61\x6c\x6c\x79\x0a\x0a\x09\x2d" \
-"\x6e\x09\x4c\x6f\x6f\x70\x20\x70\x65\x72\x69\x6f\x64\x20\x69\x6e" \
-"\x20\x73\x65\x63\x6f\x6e\x64\x73\x20\x28\x64\x65\x66\x61\x75\x6c" \
-"\x74\x20\x32\x29\x0a\x09\x2d\x74\x09\x44\x6f\x6e\x27\x74\x20\x70" \
-"\x72\x69\x6e\x74\x20\x68\x65\x61\x64\x65\x72\x00\x5b\x2d\x63\x6d" \
-"\x6c\x77\x4c\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a" \
-"\x43\x6f\x75\x6e\x74\x20\x6c\x69\x6e\x65\x73\x2c\x20\x77\x6f\x72" \
-"\x64\x73\x2c\x20\x61\x6e\x64\x20\x62\x79\x74\x65\x73\x20\x66\x6f" \
-"\x72\x20\x65\x61\x63\x68\x20\x46\x49\x4c\x45\x20\x28\x6f\x72\x20" \
-"\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d\x63\x09\x43\x6f\x75\x6e" \
-"\x74\x20\x62\x79\x74\x65\x73\x0a\x09\x2d\x6d\x09\x43\x6f\x75\x6e" \
-"\x74\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x0a\x09\x2d\x6c" \
-"\x09\x43\x6f\x75\x6e\x74\x20\x6e\x65\x77\x6c\x69\x6e\x65\x73\x0a" \
-"\x09\x2d\x77\x09\x43\x6f\x75\x6e\x74\x20\x77\x6f\x72\x64\x73\x0a" \
-"\x09\x2d\x4c\x09\x50\x72\x69\x6e\x74\x20\x6c\x6f\x6e\x67\x65\x73" \
-"\x74\x20\x6c\x69\x6e\x65\x20\x6c\x65\x6e\x67\x74\x68\x00\x5b\x2d" \
-"\x63\x7c\x2d\x2d\x63\x6f\x6e\x74\x69\x6e\x75\x65\x5d\x20\x5b\x2d" \
-"\x73\x7c\x2d\x2d\x73\x70\x69\x64\x65\x72\x5d\x20\x5b\x2d\x71\x7c" \
-"\x2d\x2d\x71\x75\x69\x65\x74\x5d\x20\x5b\x2d\x4f\x7c\x2d\x2d\x6f" \
-"\x75\x74\x70\x75\x74\x2d\x64\x6f\x63\x75\x6d\x65\x6e\x74\x20\x46" \
-"\x49\x4c\x45\x5d\x0a\x09\x5b\x2d\x2d\x68\x65\x61\x64\x65\x72\x20" \
-"\x27\x68\x65\x61\x64\x65\x72\x3a\x20\x76\x61\x6c\x75\x65\x27\x5d" \
-"\x20\x5b\x2d\x59\x7c\x2d\x2d\x70\x72\x6f\x78\x79\x20\x6f\x6e\x2f" \
-"\x6f\x66\x66\x5d\x20\x5b\x2d\x50\x20\x44\x49\x52\x5d\x0a\x09\x5b" \
-"\x2d\x55\x7c\x2d\x2d\x75\x73\x65\x72\x2d\x61\x67\x65\x6e\x74\x20" \
-"\x41\x47\x45\x4e\x54\x5d\x20\x5b\x2d\x54\x20\x53\x45\x43\x5d\x20" \
-"\x55\x52\x4c\x2e\x2e\x2e\x0a\x0a\x52\x65\x74\x72\x69\x65\x76\x65" \
-"\x20\x66\x69\x6c\x65\x73\x20\x76\x69\x61\x20\x48\x54\x54\x50\x20" \
-"\x6f\x72\x20\x46\x54\x50\x0a\x0a\x09\x2d\x73\x09\x53\x70\x69\x64" \
-"\x65\x72\x20\x6d\x6f\x64\x65\x20\x2d\x20\x6f\x6e\x6c\x79\x20\x63" \
-"\x68\x65\x63\x6b\x20\x66\x69\x6c\x65\x20\x65\x78\x69\x73\x74\x65" \
-"\x6e\x63\x65\x0a\x09\x2d\x63\x09\x43\x6f\x6e\x74\x69\x6e\x75\x65" \
-"\x20\x72\x65\x74\x72\x69\x65\x76\x61\x6c\x20\x6f\x66\x20\x61\x62" \
-"\x6f\x72\x74\x65\x64\x20\x74\x72\x61\x6e\x73\x66\x65\x72\x0a\x09" \
-"\x2d\x71\x09\x51\x75\x69\x65\x74\x0a\x09\x2d\x50\x20\x44\x49\x52" \
-"\x09\x53\x61\x76\x65\x20\x74\x6f\x20\x44\x49\x52\x20\x28\x64\x65" \
-"\x66\x61\x75\x6c\x74\x20\x2e\x29\x0a\x09\x2d\x54\x20\x53\x45\x43" \
-"\x09\x4e\x65\x74\x77\x6f\x72\x6b\x20\x72\x65\x61\x64\x20\x74\x69" \
-"\x6d\x65\x6f\x75\x74\x20\x69\x73\x20\x53\x45\x43\x20\x73\x65\x63" \
-"\x6f\x6e\x64\x73\x0a\x09\x2d\x4f\x20\x46\x49\x4c\x45\x09\x53\x61" \
-"\x76\x65\x20\x74\x6f\x20\x46\x49\x4c\x45\x20\x28\x27\x2d\x27\x20" \
-"\x66\x6f\x72\x20\x73\x74\x64\x6f\x75\x74\x29\x0a\x09\x2d\x55\x20" \
-"\x53\x54\x52\x09\x55\x73\x65\x20\x53\x54\x52\x20\x66\x6f\x72\x20" \
-"\x55\x73\x65\x72\x2d\x41\x67\x65\x6e\x74\x20\x68\x65\x61\x64\x65" \
-"\x72\x0a\x09\x2d\x59\x09\x55\x73\x65\x20\x70\x72\x6f\x78\x79\x20" \
-"\x28\x27\x6f\x6e\x27\x20\x6f\x72\x20\x27\x6f\x66\x66\x27\x29\x00" \
-"\x5b\x43\x4f\x4d\x4d\x41\x4e\x44\x5d\x2e\x2e\x2e\x0a\x0a\x4c\x6f" \
-"\x63\x61\x74\x65\x20\x61\x20\x43\x4f\x4d\x4d\x41\x4e\x44\x00\x0a" \
-"\x0a\x50\x72\x69\x6e\x74\x20\x74\x68\x65\x20\x75\x73\x65\x72\x20" \
-"\x6e\x61\x6d\x65\x20\x61\x73\x73\x6f\x63\x69\x61\x74\x65\x64\x20" \
-"\x77\x69\x74\x68\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74" \
-"\x20\x65\x66\x66\x65\x63\x74\x69\x76\x65\x20\x75\x73\x65\x72\x20" \
-"\x69\x64\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x50\x52" \
-"\x4f\x47\x20\x41\x52\x47\x53\x5d\x0a\x0a\x52\x75\x6e\x20\x50\x52" \
-"\x4f\x47\x20\x6f\x6e\x20\x65\x76\x65\x72\x79\x20\x69\x74\x65\x6d" \
-"\x20\x67\x69\x76\x65\x6e\x20\x62\x79\x20\x73\x74\x64\x69\x6e\x0a" \
-"\x0a\x09\x2d\x70\x09\x41\x73\x6b\x20\x75\x73\x65\x72\x20\x77\x68" \
-"\x65\x74\x68\x65\x72\x20\x74\x6f\x20\x72\x75\x6e\x20\x65\x61\x63" \
-"\x68\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x0a\x09\x2d\x72\x09\x44\x6f" \
-"\x6e\x27\x74\x20\x72\x75\x6e\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20" \
-"\x69\x66\x20\x69\x6e\x70\x75\x74\x20\x69\x73\x20\x65\x6d\x70\x74" \
-"\x79\x0a\x09\x2d\x30\x09\x49\x6e\x70\x75\x74\x20\x69\x73\x20\x73" \
-"\x65\x70\x61\x72\x61\x74\x65\x64\x20\x62\x79\x20\x4e\x55\x4c\x20" \
-"\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x0a\x09\x2d\x74\x09\x50" \
-"\x72\x69\x6e\x74\x20\x74\x68\x65\x20\x63\x6f\x6d\x6d\x61\x6e\x64" \
-"\x20\x6f\x6e\x20\x73\x74\x64\x65\x72\x72\x20\x62\x65\x66\x6f\x72" \
-"\x65\x20\x65\x78\x65\x63\x75\x74\x69\x6f\x6e\x0a\x09\x2d\x65\x5b" \
-"\x53\x54\x52\x5d\x09\x53\x54\x52\x20\x73\x74\x6f\x70\x73\x20\x69" \
-"\x6e\x70\x75\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x69\x6e\x67\x0a" \
-"\x09\x2d\x6e\x20\x4e\x09\x50\x61\x73\x73\x20\x6e\x6f\x20\x6d\x6f" \
-"\x72\x65\x20\x74\x68\x61\x6e\x20\x4e\x20\x61\x72\x67\x73\x20\x74" \
-"\x6f\x20\x50\x52\x4f\x47\x0a\x09\x2d\x73\x20\x4e\x09\x50\x61\x73" \
-"\x73\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x20\x6f" \
-"\x66\x20\x6e\x6f\x20\x6d\x6f\x72\x65\x20\x74\x68\x61\x6e\x20\x4e" \
-"\x20\x62\x79\x74\x65\x73\x0a\x09\x2d\x78\x09\x45\x78\x69\x74\x20" \
-"\x69\x66\x20\x73\x69\x7a\x65\x20\x69\x73\x20\x65\x78\x63\x65\x65" \
-"\x64\x65\x64\x00\x2d\x64\x20\x5b\x2d\x63\x66\x5d\x20\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65" \
-"\x73\x73\x20\x46\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69" \
-"\x6e\x29\x0a\x0a\x09\x2d\x64\x09\x44\x65\x63\x6f\x6d\x70\x72\x65" \
-"\x73\x73\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20\x74\x6f\x20" \
-"\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65" \
-"\x00\x46\x49\x4c\x45\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65\x73" \
-"\x73\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x00\x5b\x53\x54\x52" \
-"\x49\x4e\x47\x5d\x0a\x0a\x52\x65\x70\x65\x61\x74\x65\x64\x6c\x79" \
-"\x20\x6f\x75\x74\x70\x75\x74\x20\x61\x20\x6c\x69\x6e\x65\x20\x77" \
-"\x69\x74\x68\x20\x53\x54\x52\x49\x4e\x47\x2c\x20\x6f\x72\x20\x27" \
-"\x79\x27\x00\x46\x49\x4c\x45\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72" \
-"\x65\x73\x73\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x00" \
-
-#define PACKED_USAGE \
-0x68,0x31,0x31,0x41,0x59,0x26,0x53,0x59,0x7a,0x82,0x4e,0x63,0x00,0x1a,0xd1,0xdf, \
-0x80,0x72,0x70,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x60, \
-0x4f,0x04,0x87,0xa0,0x0f,0xa1,0x7d,0xdd,0xe2,0x83,0xe9,0xa0,0xf7,0xd1,0x71,0x4e, \
-0x85,0x36,0xca,0x19,0xcb,0x8e,0x46,0xb2,0x00,0xa5,0x24,0x28,0xf2,0xd5,0x51,0x57, \
-0x59,0xd3,0x40,0x9f,0x7d,0xdc,0x01,0xba,0x0f,0x42,0x8f,0xbe,0xdb,0xe7,0xda,0xb7, \
-0xad,0x1d,0xbd,0x6a,0xb5,0xb6,0xaf,0x9d,0x87,0x12,0x4a,0x0a,0xad,0x8e,0xe0,0xfb, \
-0xdb,0xcf,0x65,0xb7,0xd9,0xa3,0xed,0xa2,0xae,0x80,0xfb,0x7a,0x07,0xae,0xbd,0xc9, \
-0x6b,0xe9,0xd0,0x37,0xd9,0xf7,0xb4,0xaf,0x43,0x2a,0xd2,0xf6,0x70,0x7d,0xde,0x82, \
-0x81,0x47,0xbc,0x77,0x67,0x2e,0xb9,0xb7,0x5c,0xeb,0x75,0x15,0x4a,0x3e,0x9a,0x2a, \
-0x69,0x4b,0x37,0x31,0xa7,0xb6,0xa0,0xd9,0x8a,0x27,0xb7,0x76,0x1f,0x43,0x8a,0xe5, \
-0xa8,0x66,0xc3,0x52,0x88,0x2b,0x66,0x85,0x69,0xaf,0x63,0xe8,0x3a,0x28,0x0a,0x25, \
-0x85,0x7a,0x3a,0x3b,0xa3,0xaa,0xb5,0xab,0xba,0x10,0x55,0x99,0xcc,0x48,0x9b,0x31, \
-0x50,0x91,0x2b,0xdb,0x83,0x9d,0xf0,0xd4,0xc4,0x04,0x00,0x08,0x00,0x98,0x4c,0x23, \
-0x4d,0x34,0x9a,0x69,0xa0,0x26,0x93,0xca,0x9e,0x69,0x95,0x3f,0x53,0xc8,0x03,0x24, \
-0xd3,0x02,0x0d,0x34,0x08,0x04,0x40,0x40,0x8c,0x4d,0x10,0x0c,0x90,0x4c,0x4f,0x24, \
-0x3d,0x4d,0x36,0x89,0xe9,0x0d,0x0d,0x00,0xd0,0x06,0x80,0x25,0x31,0x10,0x90,0xa6, \
-0x8d,0x4c,0x88,0xf4,0xa6,0x3d,0x46,0xa3,0x1a,0x69,0x34,0x18,0x68,0x41,0xa3,0x40, \
-0x06,0x81,0x84,0xc8,0x00,0xc0,0x93,0x4a,0x21,0x00,0x9a,0x00,0x80,0x8d,0x0a,0x79, \
-0x35,0x3c,0x94,0xde,0x99,0x34,0xa7,0xe8,0xa7,0xa9,0xfa,0x4f,0x45,0x1a,0x6c,0x88, \
-0x3d,0x40,0x03,0x40,0x02,0x44,0x88,0x14,0xf4,0x34,0x4d,0x4f,0xd4,0x64,0x53,0xca, \
-0x7a,0x32,0x8f,0xd2,0x9a,0x7b,0x52,0x66,0x9a,0x9b,0x29,0xb5,0x36,0x93,0xd4,0x34, \
-0x6c,0xa6,0x9e,0xa6,0xd3,0x50,0x3d,0x4d,0x03,0x40,0x24,0x44,0x20,0x9a,0x34,0x04, \
-0xc9,0xa6,0x80,0x8d,0x09,0x91,0xa6,0x10,0x27,0xa9,0xa9,0xe9,0xa9,0xb5,0x4c,0x8d, \
-0x34,0x6c,0xa0,0x06,0x4f,0x48,0x1a,0x4f,0xf2,0x3f,0x77,0x97,0x07,0x98,0xbc,0xdf, \
-0x29,0x83,0xfa,0xe2,0xfc,0xb2,0x1a,0xc8,0xa1,0xea,0x5c,0x9f,0x30,0xdf,0x83,0x10, \
-0xff,0x77,0xa7,0xd0,0xd7,0x5b,0x91,0xe1,0xdf,0xed,0xa8,0x23,0x5a,0x49,0xf2,0x8d, \
-0x17,0x23,0x3b,0x9c,0xf7,0x10,0xa2,0xaf,0xd2,0x25,0x95,0x45,0x1f,0xe0,0xd6,0x2d, \
-0x60,0x9c,0x9f,0x3f,0x9a,0x56,0x6d,0x90,0x48,0x70,0xe2,0x66,0x4a,0xa0,0x79,0xf7, \
-0xcb,0xee,0x6f,0xfe,0x54,0x68,0x15,0x3f,0xb7,0x0b,0x78,0x26,0x2f,0x02,0x33,0x8b, \
-0x76,0x3f,0xbb,0xfa,0x69,0x5c,0x77,0xcf,0xfe,0xf2,0xdb,0x2f,0x0b,0x42,0xe3,0xa8, \
-0x22,0x14,0xae,0xde,0xa5,0x6e,0x1f,0xec,0xa9,0xc7,0xcd,0x79,0x3d,0xb5,0x8c,0x57, \
-0xb5,0xe1,0xaf,0x25,0x70,0xba,0xc7,0x1f,0xdd,0x0b,0xe5,0xc1,0x5b,0xf4,0xe7,0x35, \
-0xbc,0xf6,0xad,0x65,0x25,0x13,0xb5,0xf4,0xc6,0xca,0xd9,0x08,0x77,0x93,0x4b,0x78, \
-0x2f,0xbf,0xee,0x1b,0x0b,0x19,0xee,0x01,0xa1,0x5b,0x54,0x04,0x73,0x9f,0xfd,0x2e, \
-0x7f,0xe1,0x88,0xa5,0x0f,0xcc,0x9d,0xfc,0x10,0x31,0xe9,0x33,0x51,0x6b,0xad,0x83, \
-0xef,0x58,0x93,0x5f,0xbb,0xf6,0xfb,0x4d,0xfc,0xcc,0x0d,0x76,0x88,0x81,0xeb,0x56, \
-0xf9,0x85,0xfa,0xf5,0x0c,0x9f,0xcf,0x2c,0xd4,0x4d,0xc6,0xaf,0xde,0xbe,0xcf,0x8f, \
-0x86,0xd4,0x9b,0xf9,0x19,0x6e,0xc3,0xfc,0x5d,0xf9,0x87,0xc2,0xfb,0xf5,0x78,0xbf, \
-0x39,0x38,0x4d,0x48,0xcc,0x3a,0xf2,0x60,0x8e,0xbe,0xd4,0x7a,0x06,0x5f,0x0f,0xa6, \
-0x79,0x90,0x0c,0x4b,0xfd,0x32,0x3d,0xb8,0x6d,0xc9,0xdb,0x96,0x6a,0xd2,0xc5,0x6f, \
-0x25,0xce,0xee,0xd9,0x71,0xd0,0xed,0x9c,0x76,0x0b,0xe2,0xa0,0xc8,0xf9,0xa5,0x54, \
-0x44,0x44,0x15,0x2e,0x06,0xdb,0x6f,0xdd,0xf0,0x77,0x3b,0x72,0x57,0x55,0x4d,0x03, \
-0x4d,0x82,0x01,0x23,0xee,0xe2,0x8e,0x5d,0x58,0x10,0x4c,0x77,0xb7,0xf4,0xe1,0xaa, \
-0x91,0xf6,0x74,0x76,0x32,0x3e,0x42,0xaa,0x24,0x93,0xc7,0xce,0x63,0x89,0x68,0xda, \
-0xf0,0xf4,0xc4,0x3b,0x2f,0xb8,0x75,0xb0,0x8c,0xab,0x56,0xe4,0xe7,0xbf,0x2a,0x71, \
-0x8c,0x4f,0x4c,0xca,0x53,0x14,0xbf,0x88,0x8d,0xf1,0x31,0xb7,0x45,0xcd,0x41,0x6d, \
-0xb7,0x83,0xdf,0x56,0x66,0x8e,0x85,0xee,0xb5,0xd1,0xe6,0xa5,0xb7,0x2d,0x31,0x83, \
-0x0a,0xb6,0xf0,0x0f,0x61,0x58,0xc6,0x12,0x75,0x56,0xac,0xa8,0xe0,0x58,0xee,0x6a, \
-0xe7,0x75,0x57,0x65,0xc5,0x1d,0xa4,0xa9,0x8a,0x6e,0x2f,0xb1,0x74,0x49,0x44,0xc6, \
-0xa0,0xb9,0xe8,0x6a,0x02,0xbd,0x52,0x5d,0x99,0x5e,0x1e,0x91,0x2f,0x45,0xe8,0x84, \
-0x85,0x0c,0x53,0xb3,0x2b,0x03,0xd1,0x7c,0x2e,0x05,0x02,0xcf,0x9f,0x8e,0x79,0x70, \
-0x56,0x26,0x92,0x6e,0xde,0x65,0xde,0xc1,0xd4,0x03,0x73,0xee,0x56,0x35,0x29,0x01, \
-0x29,0x44,0x4a,0xcc,0x3e,0x7e,0x0e,0x2c,0xf8,0xa1,0x82,0xec,0xb3,0x16,0x3b,0xa5, \
-0x9f,0x88,0x87,0x39,0x4f,0x88,0x7c,0xfa,0x3e,0x68,0x65,0x13,0x6f,0xc5,0xb4,0xba, \
-0xd6,0x32,0x18,0x75,0x1d,0xc6,0xcc,0xb8,0x6e,0x4b,0x6d,0xe6,0xc5,0xe0,0xc9,0xd3, \
-0xce,0xfd,0xe7,0x9b,0x60,0x60,0x16,0x4d,0xc7,0x6a,0xc4,0x82,0x9a,0x93,0x06,0x7d, \
-0xe9,0x56,0x23,0xbe,0x75,0xc3,0x05,0x8d,0x1c,0xe5,0x1e,0x0c,0x93,0x87,0xd7,0x1e, \
-0x71,0x7b,0xa0,0x10,0x58,0x2b,0x15,0xa3,0x78,0xdb,0xd9,0x60,0xa8,0x67,0x8f,0xb2, \
-0xf8,0x5e,0x2b,0x0c,0x31,0x86,0x25,0xe9,0x7c,0xfc,0x62,0xc5,0x76,0x7d,0x7f,0x44, \
-0x63,0x07,0x2a,0xa7,0x5e,0x1c,0x9f,0xaf,0x4e,0x41,0x4d,0x7c,0xae,0x90,0x8f,0xb2, \
-0x5c,0xdb,0xf3,0x51,0xdf,0x88,0x6a,0x04,0x26,0x0d,0xad,0x51,0xc8,0xc5,0xee,0x80, \
-0xe6,0x91,0x83,0x80,0x83,0x4b,0x39,0x0b,0x84,0xc6,0x63,0x66,0xbc,0x2d,0xd8,0x51, \
-0x68,0xcf,0x1c,0xec,0xd8,0x78,0x25,0x3b,0xbe,0xae,0x73,0xe7,0xdb,0xda,0x2b,0x99, \
-0xdb,0x4e,0xda,0x22,0x5f,0xa7,0x18,0x22,0x06,0xd8,0xd9,0x12,0xe7,0x8f,0xfc,0x3a, \
-0x63,0xaa,0xeb,0xbc,0x68,0x6d,0xc1,0x60,0x87,0xe5,0x88,0x5d,0x13,0x27,0x05,0x88, \
-0x1a,0xf2,0x2e,0x72,0xc9,0x4c,0xeb,0xf3,0x30,0x43,0xd7,0xb9,0x05,0x25,0x94,0x87, \
-0xe9,0xac,0xf8,0x69,0x99,0x34,0x10,0x64,0xe7,0x39,0x01,0x96,0x44,0xe1,0x90,0xe2, \
-0x99,0xca,0x1a,0xf3,0x9d,0x82,0x5d,0x75,0x26,0x07,0x34,0xa0,0xe8,0x73,0xc8,0xd8, \
-0xf2,0xeb,0x66,0xc3,0x38,0x75,0x72,0xc9,0x00,0xea,0x72,0xab,0xbd,0xb8,0x2f,0x69, \
-0x4f,0x44,0xd5,0x67,0x90,0xc3,0xf1,0x84,0xbe,0x9b,0x8f,0x2a,0xdb,0xd3,0xae,0x2d, \
-0xbf,0x8f,0x16,0x35,0x9f,0xe6,0xe1,0x8f,0xc1,0x78,0x73,0x24,0xb8,0x8b,0x3f,0x3b, \
-0xb3,0x0e,0xd1,0x0b,0x35,0xe3,0x82,0xa3,0x96,0xcc,0xc4,0xe6,0x37,0x08,0xe7,0x4e, \
-0xf9,0x69,0x40,0xcb,0x6a,0x5b,0xdf,0x87,0xd3,0x9f,0xdb,0xba,0x71,0x18,0xa6,0x5d, \
-0x2a,0x00,0xac,0x82,0x18,0xc6,0x6b,0x20,0xa7,0x8e,0xb4,0xbf,0xa3,0xe5,0x8f,0x67, \
-0x26,0x5f,0xaf,0xf1,0xc3,0xdd,0x4a,0xa4,0x3d,0x07,0x1f,0xca,0x3d,0x40,0xc0,0x0c, \
-0xa2,0x93,0xf6,0xda,0x07,0x23,0x01,0x70,0x88,0x90,0xfa,0x98,0x7b,0x1e,0x27,0xae, \
-0xe8,0x27,0x65,0x0a,0xa0,0xaa,0x69,0x42,0x65,0xe3,0x15,0x18,0x35,0xf7,0x7f,0x3a, \
-0xc9,0xbe,0xdd,0x3a,0x3e,0x6a,0x30,0xd3,0xcf,0x56,0xdd,0x81,0x8a,0xda,0xdd,0x51, \
-0xc6,0xc8,0x9c,0x8f,0x9a,0x2d,0x77,0xa3,0xf6,0xb9,0xd0,0x5d,0x6b,0xf3,0xac,0xb3, \
-0x9f,0x81,0x0c,0x13,0x13,0x65,0x48,0x07,0x55,0xa6,0xe2,0xf7,0x3e,0xb2,0x14,0xb1, \
-0xe9,0x8d,0xab,0x62,0xcf,0x87,0x01,0x66,0x4d,0x18,0x4b,0x38,0x51,0x37,0xf6,0xbc, \
-0xa4,0x94,0x32,0x2d,0xf5,0x0f,0x94,0x78,0x3e,0x33,0x51,0xfa,0x8f,0xa1,0x46,0x18, \
-0xc7,0x86,0x7a,0x52,0x94,0x90,0x45,0x25,0xe8,0x1e,0x0c,0x01,0x77,0x6d,0xcd,0x3d, \
-0x7f,0x7d,0xb1,0x49,0xf6,0x9c,0x24,0x1a,0xaa,0xc0,0x9b,0x89,0x2c,0x41,0x95,0xdf, \
-0x0a,0x2b,0x55,0x41,0x2b,0x46,0x48,0xf0,0x5a,0x99,0xf5,0xcb,0x97,0x03,0xd4,0x77, \
-0xaa,0xa0,0xb1,0xa9,0x42,0x53,0xef,0xf1,0x5a,0xba,0xb0,0x89,0x44,0xa2,0x20,0x85, \
-0x9d,0x04,0x12,0x17,0xdc,0x93,0x57,0x2a,0x2b,0x60,0xc9,0x3d,0x6e,0x93,0x13,0xa0, \
-0x90,0x13,0xe7,0x67,0x11,0x4b,0x55,0x32,0xd5,0xa9,0x58,0x37,0xe6,0x2c,0xdb,0x16, \
-0xe4,0x79,0x62,0x28,0xe3,0xed,0x23,0x41,0x05,0xbe,0x84,0xe3,0x48,0x5f,0x2c,0xfa, \
-0xab,0x58,0x79,0xd7,0x4b,0x77,0x0a,0xfe,0x4a,0x2c,0x28,0xa7,0xba,0xfc,0xbd,0xcf, \
-0x91,0xf9,0x6b,0x23,0xb2,0xca,0x75,0x4a,0x62,0x20,0xaa,0xee,0xad,0xd8,0xea,0x1a, \
-0x5a,0x9e,0x21,0x9d,0xc4,0x1e,0x3d,0xb7,0x6f,0x59,0x7a,0x20,0xd3,0x54,0xf8,0x1e, \
-0xfa,0xce,0xe4,0x39,0x3c,0xff,0x36,0xb6,0xa4,0x4b,0xa8,0x6d,0x2b,0x81,0xc8,0x30, \
-0xcc,0xc6,0xcc,0xc3,0x23,0x35,0x6a,0x25,0x02,0xc3,0xb1,0xe6,0xec,0x1a,0xfa,0x6b, \
-0x42,0x76,0x7f,0x05,0x03,0x08,0xec,0xec,0x62,0xfe,0xfe,0xce,0xfb,0x8c,0xc5,0x94, \
-0x1e,0x21,0xdd,0xb6,0xbf,0xb6,0xdd,0xcd,0x36,0x55,0x05,0x14,0x1b,0x33,0x6a,0xc1, \
-0x7e,0x43,0xfc,0xd4,0x12,0x5a,0xcb,0xda,0xf4,0x10,0x5d,0x6c,0xde,0x10,0x3a,0xef, \
-0xb3,0x79,0xd4,0xf8,0x39,0xee,0xbb,0x9d,0x79,0x6e,0x41,0xae,0x47,0x98,0xbb,0x7c, \
-0x18,0x72,0xdd,0x1b,0xdb,0x4c,0x9c,0xbc,0xf1,0x7a,0xaf,0x8a,0x64,0x52,0x3c,0x3c, \
-0x9e,0xa4,0x7a,0x8f,0x08,0x5a,0x5e,0xbd,0x5f,0x63,0xfd,0xe5,0xc9,0xb9,0xa1,0x21, \
-0x87,0x3d,0x5b,0x78,0x89,0x5c,0x96,0x35,0x98,0x21,0xee,0xc3,0x8b,0x01,0x0f,0xf5, \
-0x33,0x08,0x47,0x3e,0x74,0x45,0x16,0xf6,0x30,0x61,0xe2,0xa3,0x5a,0x9b,0xdd,0x69, \
-0x2e,0x9a,0x2c,0xca,0xa0,0x68,0x44,0xbe,0x7d,0x4c,0x0e,0xbc,0x39,0xa0,0xe6,0x11, \
-0x2a,0x04,0x3a,0xad,0x32,0xe9,0x5b,0x4d,0x41,0x0b,0xd6,0x66,0xa2,0x95,0xb8,0xe1, \
-0x81,0x93,0xf7,0xcf,0xc7,0x58,0x35,0xdb,0x3d,0x8f,0xf8,0x00,0xe0,0x78,0x90,0x21, \
-0x94,0x0e,0x10,0x40,0xba,0xa9,0x62,0x6a,0x2e,0xcf,0xdf,0xbe,0x4e,0xa3,0xe2,0x95, \
-0x20,0xb4,0x8f,0x7b,0x50,0x53,0x93,0x6b,0xd9,0xf8,0xb8,0x53,0xb2,0xb9,0xa9,0xf4, \
-0xe9,0xed,0x75,0x2d,0x48,0x27,0x6d,0xe0,0x90,0xf5,0x8e,0x51,0xd8,0x61,0xe0,0x5b, \
-0x7a,0xe0,0xcf,0xf5,0x53,0xa7,0x6f,0xd2,0xc2,0x7c,0xcf,0x2c,0x3d,0x8e,0xc2,0x29, \
-0xc2,0x1a,0x6a,0xbb,0xc0,0x9a,0xd3,0xef,0x14,0xef,0x04,0xf9,0xb8,0x4c,0xb0,0x54, \
-0x76,0x02,0x5e,0x98,0xcf,0x9c,0xa4,0xdb,0x62,0x6f,0xf1,0xbd,0x8d,0x1f,0xf2,0xfb, \
-0x97,0xe7,0xca,0xed,0x85,0x63,0xf2,0x72,0x3b,0x43,0x89,0x6b,0x4b,0xa7,0x28,0xf0, \
-0xd4,0x7e,0x2c,0x4b,0x7b,0xfa,0x35,0x71,0x15,0x5a,0x34,0xb5,0xaf,0xd3,0x33,0xab, \
-0x05,0x85,0xe8,0x0b,0x96,0x72,0x47,0xca,0xb9,0xef,0x7c,0xf1,0x76,0xfd,0xd4,0xa3, \
-0x3f,0xed,0x7e,0xbd,0xfe,0xdd,0x1c,0x85,0xde,0x85,0x3d,0xb7,0xd7,0x71,0x3d,0x46, \
-0x73,0x80,0x10,0xb5,0xf3,0xb5,0x19,0x81,0x48,0x66,0xaa,0x13,0x0e,0x3e,0xf6,0x51, \
-0xca,0xe9,0x0a,0xd3,0x07,0x6f,0x5c,0xaf,0x6e,0x77,0xb2,0xdb,0xfc,0x6d,0xc3,0x4e, \
-0xe8,0xe1,0x75,0x62,0xb1,0x7b,0x98,0x55,0xe8,0xa3,0x6e,0x71,0x0e,0x3c,0xee,0x87, \
-0xa5,0x2e,0xa2,0x89,0xd8,0x61,0x5c,0xb8,0xc6,0xeb,0x29,0xa5,0x5a,0xb3,0x6b,0xee, \
-0x70,0x1c,0x92,0xe7,0x75,0xb8,0x68,0x6a,0xe3,0xf7,0x9a,0xf4,0xf7,0x7c,0x87,0x72, \
-0x10,0xd9,0x90,0x04,0x61,0x05,0x17,0xad,0xb2,0x2b,0xae,0x2e,0x00,0xf9,0x50,0x9b, \
-0x98,0x40,0xc3,0x06,0xd2,0x43,0x68,0x07,0x74,0x43,0x40,0x34,0x34,0x61,0xbd,0x9a, \
-0x27,0x65,0xfb,0x3d,0x1d,0xb9,0x2f,0x9f,0xae,0xd7,0x5f,0x59,0xb6,0x7c,0x04,0xcb, \
-0x63,0x53,0x6d,0x3f,0x85,0x7e,0xf0,0xaf,0x1f,0xd7,0x3c,0x42,0xf7,0x8b,0x88,0xec, \
-0x5b,0x27,0x33,0xec,0x8e,0xb0,0x0a,0xb6,0x45,0x68,0x27,0xb7,0xb0,0x17,0x71,0xb5, \
-0x6e,0x63,0xc9,0x85,0x7b,0x8e,0x67,0x90,0xe3,0x1c,0x1a,0xa8,0x12,0xb0,0xa3,0x96, \
-0x7b,0x43,0xc1,0xf0,0x0b,0x85,0x46,0xe2,0x79,0x1a,0xce,0x44,0xd6,0x69,0xbd,0x71, \
-0x20,0x3e,0xed,0xc6,0x11,0x42,0x98,0x27,0x3b,0x18,0x93,0x72,0xad,0x22,0x28,0x69, \
-0x53,0x90,0x83,0xbc,0x68,0xa1,0xf7,0x21,0xde,0x26,0x20,0x74,0x72,0x92,0xe9,0x5d, \
-0xd7,0x6b,0x67,0xd9,0x94,0x17,0x6d,0xfd,0xd3,0x26,0x6d,0x8d,0x8f,0xe2,0xe0,0x4d, \
-0xcc,0x3e,0xc7,0x33,0x08,0x7b,0xba,0x73,0x50,0xb9,0x9f,0xd9,0xe1,0xeb,0xe2,0xae, \
-0x1a,0x6c,0x13,0x5f,0x30,0xaa,0x17,0x35,0xfa,0x12,0x9e,0xee,0xd5,0xf3,0xc7,0xc3, \
-0x94,0x52,0x65,0xd8,0x9a,0x06,0x77,0x39,0xac,0x0b,0xf3,0xc3,0xe4,0xd8,0x6d,0x97, \
-0x39,0xd2,0xc9,0x33,0xc8,0xca,0x09,0x3f,0xbf,0xf2,0xab,0xfa,0xf0,0xd9,0x3c,0x15, \
-0xe0,0x91,0x3a,0x64,0xc3,0xa9,0x92,0xd8,0xe9,0xa2,0x65,0x41,0x0f,0xa1,0xd3,0x82, \
-0x68,0x74,0xcb,0x79,0x3b,0x96,0x5c,0x48,0xfe,0xc9,0xc4,0xd7,0x3f,0x7b,0xbe,0xaf, \
-0x4e,0xef,0x8f,0x50,0x39,0x5b,0x7e,0x7d,0x2f,0x01,0x8c,0xf7,0xe9,0x2f,0x3b,0xf5, \
-0xe0,0xc2,0x99,0xed,0x18,0x0b,0xde,0xf0,0x15,0x2b,0x88,0xea,0xa3,0x45,0x52,0x9b, \
-0xa9,0xd3,0x37,0x91,0x44,0xb5,0x6c,0x51,0x28,0x4b,0x3e,0xa4,0x8b,0xe9,0x9e,0x76, \
-0x9e,0xd1,0x9b,0x91,0xe5,0xc4,0x59,0x72,0x11,0xff,0x5f,0xf0,0xc6,0x3f,0x95,0x13, \
-0x07,0x2d,0x5f,0xf3,0xdf,0x8c,0x53,0x8e,0x5c,0x5c,0x4b,0x1b,0x9c,0x33,0xbc,0x6d, \
-0x9b,0xe9,0xf5,0xe0,0xd7,0xd9,0x06,0xd6,0x3f,0xee,0xff,0xdb,0xa3,0xe3,0xc7,0x67, \
-0x9b,0x66,0x66,0x2b,0xf6,0xb3,0x0e,0x95,0x28,0x55,0xa5,0x22,0xf1,0x62,0x01,0xdd, \
-0xba,0x39,0xc9,0x41,0xb9,0x81,0x0d,0x3d,0x78,0x30,0x04,0x1e,0x29,0x4d,0xb9,0xcb, \
-0x30,0xfa,0xea,0x64,0x1c,0xda,0xf4,0x2d,0x3a,0x44,0xf2,0xba,0xa3,0x63,0x03,0x8a, \
-0x22,0xf0,0x40,0x5a,0x45,0xe7,0x1a,0x92,0x38,0x73,0x9a,0xa7,0xf0,0x08,0x1f,0xc2, \
-0x70,0x74,0x0f,0x32,0xdd,0x11,0x47,0x55,0xf9,0xd5,0xb8,0xf1,0x5d,0x8d,0xe3,0xbd, \
-0x9f,0x3b,0x4b,0x11,0x6b,0xda,0xdc,0x4c,0x78,0xc4,0x63,0x1e,0x1b,0x45,0xc2,0xf6, \
-0x20,0x2d,0x0d,0xb8,0xfa,0x23,0xa2,0x0c,0x54,0x73,0x9d,0x55,0x74,0x24,0xfe,0xca, \
-0x8d,0x0a,0x06,0xf9,0x9d,0x43,0x65,0x5e,0x07,0xd7,0xd0,0x06,0x11,0x12,0x08,0x17, \
-0x9b,0xe1,0xb8,0x4c,0xbb,0xcd,0x11,0x49,0x2b,0x04,0x4c,0x3b,0x50,0xc8,0x5d,0x7d, \
-0xa3,0x09,0x2a,0xf4,0x0d,0x4d,0x06,0xee,0x40,0xa3,0x60,0x8a,0x3b,0x26,0xbf,0xe8, \
-0xed,0xd7,0x23,0x2f,0x4d,0x12,0x87,0xd2,0x52,0xba,0xdd,0x0c,0x9d,0x2d,0xab,0xe5, \
-0x4c,0x29,0x0c,0xb7,0x7e,0x6f,0x79,0x1e,0xbf,0x4f,0x5c,0x98,0x56,0xa7,0xf8,0x12, \
-0x70,0xd4,0xc2,0x33,0x57,0xe3,0xe9,0x28,0x83,0x67,0x24,0xc0,0xf4,0xcd,0xc7,0xa6, \
-0x1f,0xe3,0xba,0x56,0xdf,0x33,0x84,0xbf,0x0e,0x58,0x74,0x81,0x9a,0x8d,0xfa,0xb7, \
-0x3a,0xb7,0x3f,0xe2,0xa7,0xd8,0x98,0x05,0x4c,0x46,0xa4,0x04,0x55,0x44,0x78,0x62, \
-0x35,0x27,0xdf,0xa2,0x4e,0x1b,0xb1,0x89,0x64,0x91,0x77,0x2e,0x2b,0x6b,0x17,0xa1, \
-0xe9,0xaa,0x93,0x9c,0x2e,0x33,0xff,0x52,0x55,0x80,0x9a,0x06,0x99,0xcd,0x45,0x71, \
-0x74,0xb1,0xc2,0x53,0x99,0x81,0xb5,0x63,0xcb,0xd0,0x21,0x20,0x81,0xc9,0x28,0x49, \
-0xbf,0xdf,0xe1,0x96,0x96,0x9f,0xd5,0xe5,0x7d,0xe6,0x13,0xa8,0x5f,0x80,0x3c,0x86, \
-0xc6,0x43,0xd3,0xbd,0x9b,0x9a,0xb2,0xc3,0x87,0x20,0x3a,0xbe,0x7b,0x37,0xea,0x1e, \
-0x79,0xc5,0xbb,0xf5,0xdf,0xdd,0x4f,0x0d,0x13,0x6d,0x84,0x1c,0xf2,0x2c,0x77,0x5f, \
-0xbd,0x7d,0xe3,0x04,0x05,0x52,0xd3,0x65,0xb5,0x58,0xb1,0x02,0xeb,0xa0,0xe0,0x4a, \
-0x71,0x0c,0xa3,0x96,0x01,0xa2,0x6b,0x88,0xb8,0x38,0x12,0xb0,0x50,0xc8,0xfb,0x28, \
-0xb8,0x88,0x4d,0xb6,0x20,0xe8,0x3c,0x5a,0xf6,0x2f,0x15,0x56,0x31,0x47,0xd0,0xcb, \
-0xeb,0x51,0xd9,0x7f,0x88,0xc0,0x3c,0xb8,0xa7,0xa3,0x6d,0x13,0x05,0xa9,0xa4,0x6a, \
-0x56,0x22,0x16,0x39,0xc4,0xbd,0xe3,0x90,0xc7,0x39,0x61,0x8b,0x00,0xba,0xba,0xef, \
-0x14,0x60,0x5f,0xfb,0x4b,0x2a,0xa6,0xc3,0x05,0xd1,0x50,0xca,0xbb,0x29,0x3b,0x1f, \
-0x51,0x9b,0x39,0x3e,0x05,0x93,0x78,0x06,0xaa,0x49,0x5c,0xf4,0x19,0xb6,0xe2,0xb0, \
-0x8c,0x4c,0xcd,0x49,0xd2,0xca,0xa6,0xa5,0xda,0x6f,0xb1,0x8c,0x32,0x96,0x07,0xc0, \
-0xeb,0x0f,0x7e,0x8a,0x16,0xb7,0xa0,0xf0,0xc7,0x5f,0x58,0x33,0xc8,0x30,0xba,0xd7, \
-0x93,0xb9,0xd8,0xc5,0x99,0xcc,0x5f,0x49,0xf6,0x61,0x84,0x9b,0x7b,0xed,0x7d,0x7e, \
-0xa3,0x54,0xcd,0x76,0x65,0x1f,0x3a,0x56,0x3b,0xf4,0x31,0xe8,0xe7,0xd5,0xab,0x06, \
-0x02,0x3e,0x6c,0x32,0x1e,0xc3,0x71,0x08,0x96,0x0b,0xc7,0x95,0x84,0xca,0x42,0x4c, \
-0xa0,0x2b,0xa5,0xe6,0x3f,0xd8,0x60,0xfd,0xe7,0xc3,0x3f,0xd2,0xfd,0xd8,0xbf,0x70, \
-0xc3,0x9b,0x0d,0x99,0xa2,0x00,0x54,0x38,0x27,0xdd,0xb5,0x99,0x4f,0xd5,0x07,0x0c, \
-0x3b,0x35,0xb8,0xd0,0xa5,0x8e,0x1a,0xac,0xdd,0x92,0x17,0x77,0xae,0x11,0xfd,0xef, \
-0x88,0xd0,0x57,0x54,0x11,0xb1,0x77,0xcc,0xd2,0x29,0xdd,0xbc,0xe5,0xf9,0x27,0xec, \
-0xec,0x80,0x1e,0x8e,0xce,0xf5,0x01,0xe4,0x5d,0x86,0xde,0x2a,0xfe,0x79,0x39,0x0c, \
-0x66,0xc3,0x56,0x31,0xe6,0xcc,0x4b,0x0b,0x60,0x9b,0x0a,0xad,0x80,0x26,0x34,0x73, \
-0x6c,0xbb,0x3d,0xd0,0x5a,0xd7,0x77,0x1f,0x65,0x5d,0x11,0x9e,0x84,0x0f,0xad,0xb3, \
-0xbe,0xbc,0x35,0x58,0xda,0x83,0xee,0xaa,0x8b,0xfd,0x5f,0x8d,0x88,0x6f,0x90,0xf1, \
-0xe4,0x17,0xe8,0xbd,0x07,0xe1,0x2b,0x10,0xe3,0xb0,0x3a,0x06,0x8c,0xec,0x34,0xd5, \
-0x2b,0x0a,0x49,0x65,0x1d,0x3b,0x17,0x37,0x99,0x87,0x9e,0x07,0x87,0x51,0x00,0x37, \
-0x18,0x70,0xae,0x25,0x19,0x44,0xd1,0x39,0xa6,0x75,0xdc,0x81,0x7d,0x52,0x23,0xa7, \
-0x8d,0x01,0x00,0x93,0x92,0x0e,0x3a,0x5b,0xa6,0x46,0xde,0xcd,0xf4,0x8b,0x84,0x77, \
-0x9c,0x96,0x3c,0x0f,0x3d,0x73,0xa3,0x74,0x18,0xb6,0xa3,0x63,0x20,0x63,0x33,0xd2, \
-0x68,0x5c,0xcc,0x2e,0x47,0xa8,0x1b,0xa7,0xdf,0x9a,0x57,0xca,0x05,0x33,0xa6,0xae, \
-0x54,0x27,0x57,0x9f,0x6b,0x6d,0x79,0x3c,0xa7,0x72,0x11,0xc9,0x4c,0x56,0xde,0x7e, \
-0x51,0xbf,0xcc,0xb8,0x3c,0x8a,0x91,0x43,0xf8,0x31,0xec,0xf8,0x94,0x38,0x8b,0xaa, \
-0x1a,0x37,0xb3,0x7e,0x8b,0x44,0x77,0x0a,0x9e,0x7d,0x9a,0x6f,0x56,0x27,0x13,0x29, \
-0x5b,0xc0,0xe9,0xc1,0x45,0x56,0x2e,0x1a,0xd0,0x96,0x03,0x4c,0xca,0xc2,0xc0,0x2a, \
-0xd0,0x86,0x13,0xd6,0x7b,0x7b,0x14,0x0f,0xba,0x16,0xbf,0x33,0x54,0xeb,0x58,0xa7, \
-0x2d,0xae,0x77,0x3b,0xae,0x60,0xd8,0xbe,0x1c,0x26,0x41,0xe4,0x5d,0x13,0x7d,0x6b, \
-0x87,0xf2,0x92,0x5e,0x05,0xfe,0xfe,0x9f,0x2d,0x59,0xeb,0xe1,0x99,0x1c,0xf4,0x12, \
-0x36,0x32,0xaf,0x86,0x5c,0x06,0x2c,0xa9,0xaf,0x9d,0xc3,0x73,0xa3,0x34,0xab,0xdc, \
-0x3f,0x90,0xb7,0xa2,0x81,0xc6,0x9a,0xdb,0xb3,0xe1,0xfe,0x17,0xcf,0x0f,0xa3,0x5d, \
-0x2f,0xe9,0xb6,0x61,0x97,0xf5,0xd6,0x06,0x5c,0xd2,0x20,0xb4,0x81,0x14,0xfd,0x71, \
-0x1c,0x93,0x30,0xdc,0xb3,0x54,0x14,0x18,0x05,0x8a,0x0d,0xdd,0x5d,0x43,0xf5,0x66, \
-0x1b,0x20,0xfc,0x32,0x28,0x10,0x56,0x04,0xbd,0x2d,0xf9,0xef,0x2d,0x4c,0x05,0x79, \
-0xe6,0x0b,0xa5,0x73,0x44,0x41,0x77,0x29,0xbd,0x12,0xba,0xca,0xee,0x4b,0x89,0xd5, \
-0x0d,0x88,0xfd,0x32,0xd4,0xde,0x1b,0xdc,0x75,0x7b,0xdb,0xe8,0xd0,0x97,0xe8,0xcf, \
-0x23,0xa9,0x85,0xae,0x7c,0xbc,0xa4,0x60,0x82,0x23,0xb7,0x4c,0x34,0x21,0x47,0x6a, \
-0xa8,0xc0,0x21,0xc2,0xb3,0x7b,0x14,0x69,0xa7,0xc1,0x65,0xb4,0xb2,0x2d,0xd7,0x9d, \
-0x38,0x4e,0xdd,0xff,0x65,0xde,0xbc,0xdb,0x86,0x53,0xe6,0xc4,0x5f,0x95,0xab,0xfb, \
-0xde,0x58,0xef,0x87,0x42,0xfc,0xa3,0x38,0x81,0x46,0x16,0xad,0x40,0x6d,0x1f,0xf3, \
-0xe7,0x61,0x7c,0x66,0x76,0x8e,0xf7,0x55,0x0c,0x1d,0x41,0xbc,0x3f,0x6e,0xf4,0xb2, \
-0xd0,0x06,0x4a,0xd5,0x85,0xdf,0xde,0x21,0x34,0xca,0x09,0xfe,0x3a,0xe9,0x1c,0xd7, \
-0x43,0xad,0xf9,0xaf,0xcf,0x41,0x56,0x5a,0x2b,0x37,0x6b,0xd2,0xb0,0x32,0x37,0x55, \
-0x1a,0xfc,0x36,0x78,0x8f,0x29,0xa4,0x8b,0x7d,0x32,0xb9,0x08,0xf8,0x4b,0x7e,0xd0, \
-0xd0,0x4a,0x1c,0x5f,0x70,0xc3,0xc7,0x2a,0xcb,0x21,0xa0,0xd5,0xc9,0xdd,0xbd,0xea, \
-0x3c,0x72,0x9e,0xa8,0xd8,0xb5,0x08,0xae,0x80,0x5b,0x8c,0x0d,0xe8,0x04,0x92,0x14, \
-0x1f,0x6f,0xd9,0xd6,0x3e,0x34,0x80,0x29,0xeb,0xf2,0xd9,0xd2,0x4f,0x3e,0xd7,0xc5, \
-0x6d,0xb7,0x79,0xad,0x91,0x4f,0xa7,0x21,0x4d,0x63,0x97,0x7d,0xf9,0x89,0x12,0x77, \
-0xf7,0x50,0xc6,0x28,0x62,0x8b,0x42,0x3a,0xfa,0x0a,0xed,0x02,0xc1,0xa8,0xdd,0xc7, \
-0x4e,0x39,0x5b,0x30,0xed,0x74,0xab,0x26,0x78,0xe8,0x62,0xbf,0xf7,0x21,0xef,0x12, \
-0x7d,0x8e,0x9c,0x38,0x5d,0xae,0xed,0xc2,0x1e,0xd1,0x96,0x03,0xbc,0x54,0x8a,0xb6, \
-0xcf,0xcc,0xa7,0xc8,0x0b,0xc5,0x57,0x53,0x1b,0xe4,0x67,0xf2,0x51,0x6a,0x6d,0xb7, \
-0x0b,0x3c,0x8a,0x02,0xce,0xa6,0x0a,0x43,0x5c,0x8f,0xa1,0xc0,0x75,0x4b,0x3b,0x68, \
-0x77,0x27,0x1a,0xd4,0x7e,0x01,0xcb,0x00,0x5c,0x21,0x2c,0x4f,0xc6,0xd5,0xd2,0x7e, \
-0xb7,0xbf,0xd2,0xf8,0x4e,0xa2,0xe2,0xa1,0xd2,0x90,0xce,0xfc,0xd6,0xac,0x3d,0xdf, \
-0x4f,0xd3,0xc9,0x04,0x46,0xd8,0x15,0xf5,0x98,0x63,0x49,0xf3,0xfd,0x31,0x18,0x54, \
-0x8a,0x15,0x03,0x47,0xee,0x65,0x1d,0xf0,0xd4,0xb5,0x1b,0xcc,0x15,0x85,0x1c,0x86, \
-0xf6,0xd9,0xd3,0xd5,0x61,0x14,0x65,0x94,0x60,0x3d,0x6a,0x96,0x75,0xa0,0x83,0x4e, \
-0xb7,0xc4,0xe2,0x66,0x6a,0xce,0x62,0x78,0x25,0x04,0x3d,0x48,0x23,0x76,0x2a,0x66, \
-0x54,0xc3,0x33,0x51,0xda,0x93,0x2e,0xbd,0xef,0x5c,0xef,0xfc,0x1f,0x0a,0x8d,0xc4, \
-0xbe,0x59,0x87,0x05,0xe9,0xf5,0xbf,0xa5,0x10,0x7f,0x70,0xa3,0xb2,0x0f,0x9d,0xbe, \
-0x1e,0x58,0x91,0x6e,0xb2,0x2a,0xe7,0x20,0xaa,0x00,0xdc,0x37,0xf5,0xc3,0x38,0xd9, \
-0xbd,0x54,0x47,0xf6,0x29,0x1d,0x1d,0xc5,0x3f,0x67,0xc3,0x33,0xfa,0xb5,0x42,0x46, \
-0xb3,0xd4,0xfc,0xc9,0x95,0xf1,0x6e,0xc1,0x4f,0x32,0xf8,0xf2,0xe4,0xe2,0x3a,0x2b, \
-0x5f,0x59,0x0e,0x62,0x17,0x8a,0x7e,0xd8,0x38,0x2c,0x74,0xf8,0xf2,0x62,0x6e,0x41, \
-0x29,0xd9,0x38,0x33,0xbc,0x01,0x45,0x8f,0x61,0xe2,0xdf,0xe3,0x7c,0x1e,0x65,0x82, \
-0x22,0x3f,0x8a,0xcf,0xc6,0x66,0x0b,0x0c,0x61,0xb1,0x64,0x60,0x59,0x0d,0x64,0xe2, \
-0x21,0x71,0xa8,0xea,0x26,0x6e,0x39,0x70,0x42,0x9c,0xa6,0x4a,0xcc,0xc9,0x9c,0xc8, \
-0xfb,0x60,0x15,0x1d,0x89,0x0a,0x78,0xfd,0xe5,0x9f,0x81,0xcf,0x8f,0xc0,0xd5,0x88, \
-0x12,0x86,0x30,0xb7,0x2d,0x9d,0x98,0x6d,0x40,0xa7,0x64,0xe3,0x2e,0x2e,0x38,0x6c, \
-0x5c,0x6b,0x86,0xaf,0x4c,0x33,0x90,0x33,0xa5,0xce,0x8d,0x7d,0x6e,0x03,0x57,0x87, \
-0xb9,0x06,0x92,0xdc,0x37,0x04,0x0b,0x55,0x6e,0x7b,0x7a,0x0a,0xb9,0x7d,0xe4,0x3a, \
-0xed,0x98,0xf8,0xd3,0x7e,0x7c,0x68,0x2a,0x82,0x96,0x8a,0xf4,0x8d,0xe7,0x83,0xd6, \
-0x6e,0x54,0xd0,0xf3,0x4b,0xb5,0xe8,0xa6,0x12,0xf4,0x0a,0xe2,0x7e,0x15,0x7b,0xc4, \
-0x32,0x8a,0xa8,0x58,0xac,0x2e,0x44,0x47,0xec,0x8e,0x09,0x3f,0x20,0xeb,0xb4,0x79, \
-0x76,0x66,0xbd,0x3d,0x6a,0xb3,0xdd,0x64,0x96,0x18,0x3c,0x25,0x5d,0x35,0x09,0x83, \
-0x48,0xd6,0xb7,0x08,0x20,0x80,0x5b,0x2c,0x2b,0x27,0x38,0xaa,0xb8,0x46,0xe6,0x0b, \
-0x68,0x37,0xe3,0xed,0x47,0xe2,0x54,0xb6,0xd8,0x6f,0x66,0x74,0xd2,0xcb,0xc4,0xa2, \
-0x94,0xdf,0x5c,0x93,0x8c,0x03,0x84,0x9e,0x5c,0xec,0x2c,0x4e,0xf8,0x85,0xb5,0x97, \
-0xcd,0x2c,0x32,0xfa,0x22,0xc3,0x31,0x91,0x90,0xe1,0xb3,0xe1,0x41,0x88,0x19,0xb6, \
-0xd5,0xdb,0xa1,0x62,0x19,0x86,0x0b,0x00,0xcb,0x7c,0x41,0xc8,0x8c,0x8e,0xf4,0x50, \
-0x17,0x65,0x55,0x1a,0x66,0x24,0x63,0xde,0x1e,0xd0,0x94,0x34,0x1c,0xd4,0x23,0x92, \
-0x76,0x1c,0x6e,0xee,0x25,0x4a,0xdd,0x91,0x5d,0x69,0x6f,0x46,0x6d,0xf8,0xfa,0x9a, \
-0x78,0x79,0x19,0xda,0xcb,0x31,0x5c,0x64,0x6d,0xc2,0xd5,0xec,0x6f,0xe7,0x67,0x6d, \
-0x60,0x74,0x83,0x93,0xbf,0x1d,0xb6,0x5a,0xae,0xc3,0xc5,0xc5,0xac,0x51,0x96,0x8f, \
-0x3f,0x50,0xfc,0x0f,0x4c,0x9b,0xaa,0xfd,0x85,0xce,0x5c,0xfd,0xee,0xf4,0x45,0xab, \
-0x54,0x37,0x4a,0x3d,0xc2,0xe1,0xaf,0x5a,0x6e,0x0d,0x81,0x08,0x5b,0x84,0xd4,0x11, \
-0xf5,0x72,0xb3,0x05,0x42,0x48,0xe3,0x7a,0x11,0x0a,0xca,0xbd,0x4b,0xa2,0x49,0x4e, \
-0x69,0x6e,0xac,0x4d,0x62,0xea,0xcc,0x6a,0x8c,0xa5,0x86,0x6f,0x3f,0x86,0xfc,0x1e, \
-0x78,0x87,0x46,0x8b,0x67,0xb6,0x73,0x0a,0x85,0xb7,0x2a,0x2a,0xe1,0xc0,0x70,0x5c, \
-0x1d,0x9c,0x2c,0x77,0x4a,0x7d,0xce,0xb1,0xdb,0xdb,0xda,0xbf,0x14,0x8f,0x0f,0x1c, \
-0xc8,0x3d,0xbd,0xf8,0x1e,0x77,0xca,0x0a,0xe3,0xcc,0xd5,0x76,0xb2,0x22,0x49,0xcc, \
-0xdc,0x66,0x0a,0x06,0x80,0x93,0x2f,0xb1,0xc1,0x73,0x62,0x13,0xe7,0xa4,0xd8,0x50, \
-0x38,0x8a,0x40,0x5b,0xea,0xc3,0xa7,0x7d,0xa7,0x24,0x29,0x3d,0x31,0x70,0xee,0x29, \
-0x16,0xc0,0x0f,0x6f,0x4b,0x72,0xf6,0xf2,0x6b,0x5f,0x5c,0x39,0x60,0x2f,0x6d,0xea, \
-0x3d,0xc5,0xc7,0xa2,0xd8,0x60,0x11,0xc3,0x32,0x9c,0x95,0xaf,0x6b,0x57,0x16,0xd8, \
-0xa4,0x16,0x07,0xa9,0x8d,0x1e,0x36,0x67,0x85,0xf8,0x49,0xc8,0xf0,0x38,0xab,0xb8, \
-0x56,0xc5,0x90,0x39,0x8c,0x0d,0x7a,0xcb,0x4c,0x73,0x10,0xe1,0x67,0x8b,0x56,0x1f, \
-0x53,0x81,0xb3,0xd7,0xba,0xdb,0x8f,0xbe,0x36,0xda,0x96,0xba,0xd2,0x86,0xce,0x56, \
-0x3d,0x6d,0x40,0x28,0x68,0x98,0xd5,0xc5,0x84,0xd3,0xdf,0x14,0x1f,0x6e,0x57,0x22, \
-0x70,0xd2,0x0d,0x52,0xfc,0x94,0x35,0x1e,0x8d,0x41,0xdb,0x69,0xa0,0xe2,0x64,0x7d, \
-0x22,0x2a,0xa2,0xc0,0x63,0x71,0x6a,0xb7,0x08,0xd5,0xe2,0xca,0x1c,0xa5,0x0a,0x47, \
-0x4c,0x76,0xee,0x38,0xde,0x82,0x1f,0x83,0x68,0x7c,0xa2,0x57,0x77,0x98,0x8a,0xeb, \
-0x28,0x76,0xe9,0x4f,0x9b,0x2a,0x04,0x6c,0x0e,0xe1,0x9e,0x3a,0x6d,0x73,0x8c,0xe4, \
-0x37,0x9b,0xa7,0x68,0x63,0x2d,0x98,0x1a,0x65,0x00,0xa1,0x96,0xc8,0x35,0x40,0xf5, \
-0x4c,0xa4,0x2a,0xb3,0x69,0xa3,0x6b,0x77,0x03,0xbb,0xa2,0x77,0x38,0xa8,0x67,0x37, \
-0x1b,0xda,0xbb,0xf4,0x6d,0x73,0x1c,0xb7,0x7b,0xd0,0xab,0x4e,0x66,0x03,0x0f,0xbd, \
-0xc2,0x96,0xce,0x44,0xf5,0x0a,0xa9,0x81,0x12,0x88,0xa9,0x21,0x1e,0xf6,0xa0,0x73, \
-0xce,0xbb,0x23,0x78,0xd9,0x4b,0xa3,0x7e,0x7f,0x03,0x24,0x4e,0x7a,0x76,0x42,0xd5, \
-0x0e,0x37,0x60,0x90,0x5e,0xee,0x2e,0x10,0x55,0x88,0x96,0xd8,0xee,0xbc,0xf6,0xc6, \
-0x79,0x2a,0x3c,0x54,0x45,0x61,0xaa,0x37,0x31,0xa1,0x6c,0x2d,0xd5,0x05,0x26,0x33, \
-0xa1,0x95,0x12,0xbb,0x3d,0x50,0x99,0x42,0x46,0x87,0xaf,0x31,0x10,0x8e,0x7a,0xc6, \
-0x17,0x28,0x8c,0xa0,0xa0,0x54,0x50,0xc1,0x92,0xa2,0x9e,0x3d,0x52,0xd4,0x12,0x20, \
-0xa8,0xb3,0xe3,0xc6,0xea,0x14,0x4e,0x29,0x56,0xb3,0x7e,0x7b,0x2d,0x36,0x06,0x1f, \
-0xb5,0x1a,0x36,0xfc,0x6b,0x96,0xd9,0x6b,0x9f,0xcd,0xab,0xa5,0x13,0xa1,0x66,0xb0, \
-0x24,0x16,0x52,0x2c,0xde,0x33,0x72,0x5c,0x52,0x84,0xc5,0xa2,0xdd,0x25,0xed,0xc5, \
-0xb5,0xcb,0x32,0xb7,0xed,0xe4,0xbe,0xbc,0x4e,0xd7,0x0f,0x5c,0x2c,0xee,0xc5,0x3b, \
-0x3f,0x5c,0xe4,0xf1,0x1e,0x44,0x0a,0x28,0xb1,0xa8,0x5e,0xb7,0x1b,0xe2,0x98,0x6b, \
-0x50,0x3d,0xa6,0x91,0x15,0x33,0x1c,0x58,0x43,0x9d,0x84,0x30,0x5d,0x5b,0x3a,0x5c, \
-0x26,0xd7,0xe5,0xb2,0xe5,0x93,0x52,0xae,0x35,0x46,0x91,0x58,0xc5,0x7a,0xaf,0x0c, \
-0x6b,0x1e,0x35,0x72,0x3c,0xbd,0xc5,0x67,0x01,0xee,0xa0,0x62,0x60,0x8e,0x2d,0xf7, \
-0xce,0xd5,0xb6,0x17,0x46,0xd1,0x8c,0x9b,0xb5,0x4b,0x69,0xae,0x65,0x80,0x78,0xec, \
-0x4b,0x0b,0x81,0x2a,0x11,0x98,0x0b,0xba,0x34,0x85,0x4e,0x9f,0x32,0x22,0x47,0xc3, \
-0x31,0x40,0x6f,0x37,0xa7,0x9c,0x77,0x53,0x5d,0x64,0x45,0x28,0xd4,0x29,0xcf,0x75, \
-0x4e,0xe2,0x30,0x88,0x30,0x3b,0xe0,0x49,0x1c,0x27,0xbc,0xa8,0x64,0x59,0xcd,0x47, \
-0x76,0x14,0x40,0x4f,0x68,0x2b,0x33,0xc9,0x9b,0xc6,0x20,0xb0,0xfd,0x7f,0x2b,0x4b, \
-0x9b,0x75,0xeb,0x1b,0x74,0x9e,0x75,0x54,0xdd,0xdc,0x4c,0x75,0x9a,0x10,0xe5,0xd4, \
-0x5d,0x58,0x50,0xf9,0xb4,0x18,0xe5,0x18,0x8c,0xb2,0x4f,0x13,0x8c,0xbf,0xe7,0xec, \
-0x4d,0xaf,0x46,0xf6,0x06,0xd8,0x63,0x7b,0x26,0x0a,0xf3,0xb4,0x17,0x1b,0x6d,0xe7, \
-0x56,0xd1,0x10,0x6f,0xb0,0x6b,0x11,0xc5,0x0a,0x7b,0x7b,0x72,0xfa,0x84,0x62,0x41, \
-0x3b,0x27,0xb3,0x5a,0xd0,0x93,0x38,0xdf,0x65,0xe4,0x2b,0xf7,0x4d,0x3d,0x56,0xd1, \
-0xfd,0xbf,0xa2,0x7c,0xf3,0x7e,0xbc,0x7b,0x8e,0x53,0x9f,0x8f,0x1e,0xe0,0x1c,0x5f, \
-0x7d,0xda,0xaa,0xba,0xf0,0x3f,0x28,0x2f,0x31,0x51,0xec,0x8e,0xd9,0x8f,0x42,0xec, \
-0xa4,0x10,0x39,0x67,0x0d,0x71,0xb2,0xea,0xb5,0xaa,0xcf,0x88,0xe1,0xdd,0xd2,0x40, \
-0x70,0x28,0xce,0x36,0x29,0x28,0xd9,0xaf,0x8f,0x32,0x23,0xaa,0x63,0xb7,0x5c,0x97, \
-0x55,0x28,0xe8,0xb4,0x61,0x1f,0xe4,0xa7,0x2a,0xfe,0xff,0xc3,0xab,0xcf,0x32,0xd6, \
-0x07,0xa7,0xb8,0x18,0xfe,0x89,0x02,0x02,0xfb,0x09,0x01,0x92,0xb1,0x75,0xd5,0xee, \
-0x3c,0xda,0xf4,0x72,0xe7,0xbe,0xf4,0x3c,0x83,0x30,0xb4,0x75,0xab,0x79,0xb9,0xfa, \
-0x3a,0x95,0x7c,0x10,0xc3,0x5d,0x47,0x5d,0xe1,0x20,0x2d,0x6b,0x16,0x7d,0xe9,0x25, \
-0x0d,0x14,0x62,0x37,0xe9,0xd4,0xbb,0x1e,0x39,0x95,0x90,0x84,0x86,0x59,0xfe,0x90, \
-0x82,0x6a,0x9f,0x7e,0xfc,0x62,0x1a,0x00,0xc5,0x91,0x4e,0xc6,0x4a,0x84,0x16,0x40, \
-0xa5,0xa4,0x05,0x01,0x10,0x90,0xf5,0x36,0x3e,0xf6,0xbe,0x44,0x84,0xa1,0x01,0x05, \
-0xad,0x7c,0xf9,0xf7,0xe7,0x54,0x66,0x53,0x4f,0xd6,0xc1,0x7c,0xff,0x13,0x6c,0x7f, \
-0x46,0x73,0xc7,0x3f,0x9f,0xc5,0xe1,0xd4,0x78,0xa1,0x7b,0xb0,0xb4,0xc7,0xd9,0xf8, \
-0xf6,0xeb,0xe5,0xea,0x17,0x38,0x7e,0xb1,0x2c,0x93,0xe0,0x5a,0x0b,0x7c,0xb7,0x91, \
-0xe5,0x44,0x46,0x1c,0xd9,0xf8,0xe3,0x6c,0x4e,0xbd,0x1a,0x49,0x99,0xdc,0xd2,0x4d, \
-0xe1,0x11,0xf4,0x49,0x17,0x80,0xd7,0x21,0xd2,0x86,0x25,0xd1,0x5e,0x70,0xa0,0x51, \
-0x3d,0xc5,0xa4,0xeb,0x2b,0x0b,0x69,0x61,0xee,0x96,0x0d,0x8e,0x6e,0x67,0xa0,0xa7, \
-0xf9,0x82,0xe1,0x1e,0x44,0x02,0x8f,0xd3,0xd4,0x42,0x25,0x21,0x2d,0x9b,0x92,0xdf, \
-0xaf,0x6a,0xb2,0x61,0xc3,0xf6,0x32,0xe6,0x08,0xed,0x47,0xa8,0x86,0x69,0x24,0x49, \
-0x88,0x67,0x8d,0x20,0xac,0x97,0xd0,0x04,0xe6,0x1e,0x0e,0xbe,0x8c,0x7c,0x41,0xf4, \
-0x10,0x00,0xc8,0x88,0x75,0x7c,0x8d,0x38,0x75,0xa7,0xef,0x00,0x3b,0x80,0xdd,0xd6, \
-0x06,0x1f,0xeb,0x58,0xce,0xbb,0x0b,0x7d,0x5d,0xf9,0xeb,0xbc,0x30,0x74,0x47,0x14, \
-0xdf,0x6a,0x44,0xdb,0x4b,0xbb,0x81,0xfe,0x35,0x81,0x21,0x4d,0xcc,0x46,0x9b,0x76, \
-0xea,0xd9,0xf0,0xbd,0xb4,0x8e,0xc8,0x76,0x50,0x61,0x71,0x56,0x24,0xb4,0xc6,0x0b, \
-0xba,0x17,0xe4,0x39,0x63,0x7c,0xa4,0xb0,0xd0,0xc5,0x6d,0x60,0xdb,0x13,0x94,0x93, \
-0xe7,0x7a,0xc7,0x70,0xbd,0x18,0xcf,0xb6,0x02,0x5b,0x6a,0x35,0x04,0x07,0xf7,0xb2, \
-0x99,0x19,0xe4,0xcf,0x9a,0xc8,0x30,0x68,0xae,0xac,0xeb,0x63,0xe6,0x13,0x99,0xb3, \
-0x10,0x84,0xc1,0x21,0x03,0x99,0x6b,0x5d,0x53,0x7c,0x14,0x95,0xa8,0x30,0x1e,0x8e, \
-0xfe,0xbe,0x52,0x66,0xd0,0x32,0x54,0x71,0x28,0xcc,0xed,0xbc,0x39,0x3e,0x3d,0x34, \
-0x0a,0x46,0x78,0xbc,0x22,0xc1,0xee,0x1a,0xbf,0x7c,0x78,0x34,0x8a,0x83,0xaa,0x19, \
-0x7d,0x80,0x74,0xab,0x78,0xb1,0x9b,0xab,0x88,0x57,0x77,0x11,0xa9,0x7f,0x6c,0xb6, \
-0x32,0xba,0xe1,0x57,0x56,0x16,0xa5,0x04,0x85,0xe0,0xec,0xd2,0xac,0x0f,0xa0,0x2e, \
-0xd9,0xcc,0x6f,0xf6,0x9f,0xaf,0x16,0xa5,0x58,0x61,0xa0,0x60,0x41,0x45,0x2b,0x14, \
-0xe1,0xa1,0xb1,0x48,0x24,0x13,0x64,0x0f,0x2f,0xe1,0x1a,0x19,0xcd,0x51,0xc1,0xe8, \
-0xf1,0xea,0x14,0xac,0x2c,0xb4,0xcb,0x04,0xdc,0x9c,0x18,0xf7,0xdc,0x62,0x7e,0xdb, \
-0x43,0x09,0x05,0x5b,0xa9,0x71,0x46,0x52,0x0a,0x83,0x8a,0x52,0xb2,0x8a,0x84,0x41, \
-0x8d,0xbf,0x87,0xf8,0x59,0x63,0xfa,0x93,0x46,0x1c,0xf5,0xb8,0xee,0x2d,0x45,0x20, \
-0xe2,0x85,0x82,0x0a,0xaa,0x62,0xca,0x2a,0x8a,0xb1,0x5d,0xbb,0xe8,0x18,0x84,0x34, \
-0x6b,0x4d,0xd6,0x89,0x88,0x1c,0x9d,0x06,0x62,0x11,0x11,0x95,0x38,0xfc,0x3e,0xcf, \
-0xcc,0x2f,0xea,0xfc,0xb7,0x48,0x06,0xd1,0x38,0x15,0x68,0xa0,0x81,0x37,0xc4,0xb0, \
-0x91,0x82,0xb8,0x18,0x3c,0x8a,0x60,0x33,0x7e,0xac,0x4f,0x9f,0x5a,0x5d,0x02,0x5e, \
-0x69,0xa8,0x2b,0xce,0xf8,0x59,0x40,0x63,0x1d,0x1a,0x74,0xc4,0xa9,0x46,0xda,0xa2, \
-0xf8,0xfe,0xda,0x6f,0x54,0xd6,0xb2,0x55,0xd5,0xc4,0x31,0x23,0xfc,0x68,0x4c,0xb9, \
-0x16,0x03,0x2a,0x77,0xe2,0xbd,0xba,0xe1,0x30,0x54,0x54,0x88,0x92,0x1a,0x20,0xc6, \
-0x32,0xc3,0xec,0xcd,0xcf,0x5b,0x87,0x04,0x14,0x18,0xa8,0x88,0xf8,0x3d,0x36,0xcf, \
-0x93,0xab,0xd5,0x00,0x33,0xad,0x7f,0xdc,0x94,0x15,0x41,0x58,0x62,0xe9,0x8b,0xb5, \
-0xb0,0x33,0x2d,0x57,0xf1,0x4a,0x2b,0x83,0xcc,0xc1,0x71,0xdd,0xb7,0x0e,0x1f,0x20, \
-0x70,0xce,0x1d,0xd2,0x4e,0xa9,0xbf,0x78,0xc4,0x2a,0x54,0x91,0x3b,0x4a,0x95,0x95, \
-0x90,0xdd,0x41,0xcf,0x6b,0xf3,0xb7,0x54,0x1a,0x31,0xb0,0x94,0x9d,0x06,0xe5,0x64, \
-0x2b,0x9a,0x1b,0x77,0xeb,0xa2,0x1c,0x74,0xc1,0xb3,0x09,0x29,0xb1,0xe1,0x88,0x60, \
-0x11,0x8b,0xf2,0x6d,0x0c,0x7e,0x8a,0x64,0xc1,0x22,0x22,0x2a,0x8b,0xa9,0x4e,0x78, \
-0x33,0x13,0xaf,0x2b,0xa4,0x03,0x56,0xc4,0x2d,0x0d,0x30,0xf6,0x32,0xc8,0x4e,0x0e, \
-0x58,0xe8,0xc9,0x98,0xe0,0x81,0xe6,0xc2,0xcc,0xb3,0x9e,0x24,0x3d,0x94,0x8a,0x4c, \
-0x43,0x06,0x3e,0xea,0xee,0xf4,0x5b,0xe7,0xf7,0xcc,0x61,0x2d,0xf9,0xf0,0x8b,0xdf, \
-0x50,0xf5,0x8c,0xf4,0xb0,0x10,0x61,0xb9,0xe3,0xe7,0xd8,0xac,0xaf,0xf5,0x3a,0xb5, \
-0x40,0x6a,0x3c,0xee,0x68,0xe0,0x3d,0x15,0x48,0xbf,0x65,0x2d,0xb2,0x5b,0xe9,0xf7, \
-0x73,0xe3,0x74,0x1a,0x29,0xc8,0x11,0xe1,0x8e,0x86,0x32,0x80,0x11,0xfe,0x32,0x7e, \
-0x91,0x81,0xfe,0xf6,0x05,0x45,0x02,0x36,0xfe,0xcc,0x59,0xf3,0xd6,0xcf,0xc1,0x96, \
-0x0d,0xb6,0xd9,0xf0,0x68,0x3c,0xbb,0xeb,0x05,0xad,0xfc,0xf4,0x74,0x18,0xb6,0x26, \
-0x77,0x6a,0xfc,0x9c,0xa3,0xd1,0xf8,0xf6,0x78,0xf3,0xfc,0x0e,0xa5,0xa9,0x43,0xf5, \
-0x88,0x01,0xb4,0x6c,0x00,0xfa,0xee,0x9b,0x57,0xd1,0x5a,0xba,0xfd,0x1e,0x4f,0x96, \
-0x15,0x76,0xc5,0xf4,0x8c,0x35,0x0e,0x6f,0x27,0x9a,0x7c,0x5d,0x56,0x00,0xeb,0xea, \
-0x35,0x61,0x61,0x8e,0xa0,0x9c,0x32,0x1c,0x00,0xbb,0xd8,0xdf,0x11,0x31,0xa0,0x1b, \
-0xc6,0xb8,0x37,0xca,0x1c,0x63,0x94,0x23,0x80,0x74,0xbe,0x82,0x11,0xd1,0x10,0x9c, \
-0x4d,0xb2,0x8d,0xa6,0x62,0xee,0x96,0x2d,0xce,0x12,0x3c,0x83,0x2b,0x21,0xf7,0x25, \
-0xd7,0x67,0x6d,0x0d,0x10,0xe2,0x68,0xac,0x61,0xcb,0x40,0x13,0xfc,0x5a,0xf8,0x58, \
-0xbf,0x11,0x97,0x87,0xbf,0x5d,0x33,0x3c,0xf5,0x99,0x0c,0x5e,0x2c,0x52,0x43,0x83, \
-0xd7,0xa7,0xe2,0xab,0xf4,0xaa,0xd3,0x7d,0x2f,0x29,0xfe,0x7c,0x0f,0x4e,0x0a,0x86, \
-0x6f,0x41,0xeb,0x64,0xdb,0x45,0xac,0x23,0x55,0x2d,0x8a,0xa4,0xa5,0xe6,0x85,0x73, \
-0x3f,0xe7,0xb0,0xd1,0x63,0xd2,0xd5,0x6c,0xd2,0x52,0x0c,0xd6,0xc3,0x84,0x5a,0x76, \
-0xb9,0x11,0xc6,0x42,0xc1,0x1b,0xd5,0xdf,0xb1,0xdc,0x5d,0xd4,0xae,0xc8,0xdf,0x7a, \
-0xfe,0x54,0x7f,0x95,0xd4,0x6b,0x16,0xe2,0x0b,0x18,0x0f,0x08,0x0c,0x51,0x08,0x26, \
-0x26,0xaa,0xb0,0xd5,0x2a,0xa8,0x96,0xe1,0x66,0x80,0xe9,0xde,0x21,0x68,0x3b,0xac, \
-0xb6,0x9f,0x73,0x18,0xa7,0xb1,0xf2,0x42,0xf4,0x54,0x5a,0x08,0x0d,0xee,0xac,0xb2, \
-0x51,0x79,0xa3,0x27,0xc2,0x16,0xf6,0xa7,0xa7,0x56,0x46,0xf4,0xce,0xfc,0xd3,0x7e, \
-0x3d,0x2b,0x7b,0x05,0x49,0x14,0x92,0x3a,0x40,0x4f,0xa2,0x91,0x89,0x28,0x60,0x77, \
-0x3a,0x8e,0x45,0x10,0x13,0x10,0x0d,0x2b,0xa8,0x31,0xf9,0x7a,0xf8,0xde,0x9e,0x28, \
-0x15,0x14,0xc4,0x24,0x66,0xe5,0x33,0x24,0x99,0x45,0xab,0x6d,0x7e,0xb2,0x87,0xc5, \
-0x9b,0x7f,0x6e,0x88,0xdf,0xfc,0x63,0xf6,0x26,0x3c,0x3e,0x11,0xe0,0xfd,0xce,0xaf, \
-0xb5,0xaf,0xb2,0x63,0x20,0xdc,0x40,0xec,0x04,0x6a,0xd4,0xc3,0x2e,0x99,0xbb,0xbb, \
-0x26,0xcc,0x73,0xc9,0xe7,0x57,0x97,0x1f,0xb1,0xb2,0x78,0x8a,0x5f,0x24,0xf5,0x97, \
-0x8a,0xc1,0xe1,0xf1,0xf5,0xea,0x63,0xb6,0x3f,0xdb,0xef,0x55,0x2f,0x54,0x7f,0x9a, \
-0x94,0xd9,0xe9,0xb3,0x1f,0xd7,0x5f,0xdc,0x3b,0x6a,0x13,0xd5,0x1a,0x4f,0x30,0x9c, \
-0x80,0xe4,0x5f,0xeb,0xe7,0xfb,0xf5,0x2c,0x6b,0x13,0xfa,0x3d,0x7c,0xe0,0x59,0x39, \
-0x0f,0x45,0x46,0xa3,0x23,0x20,0x85,0x7e,0xf6,0xbf,0xb2,0xbf,0x7f,0x93,0x2f,0xfa, \
-0x35,0x45,0xef,0x06,0x79,0xa2,0x8e,0x1c,0x59,0x70,0xb9,0xc5,0x77,0xd5,0xea,0xfc, \
-0x7c,0xee,0xca,0x40,0x47,0x81,0xc1,0xa4,0x2c,0xbd,0x2b,0x17,0xec,0x04,0x8a,0xc6, \
-0x95,0xcc,0x3e,0x3f,0xe0,0x9f,0xaa,0x68,0xa0,0x69,0x6a,0x8c,0xa6,0x9e,0x53,0xfb, \
-0x7f,0x06,0x7a,0x7e,0x37,0x0f,0x06,0x65,0x50,0xb5,0xd7,0x10,0x85,0xde,0xd3,0x24, \
-0x5a,0xd6,0x16,0xd0,0x7d,0xe4,0x86,0x83,0x30,0x50,0x8a,0x80,0x62,0x24,0x30,0x0a, \
-0x2a,0x69,0x13,0x53,0xf8,0x76,0x5f,0xd3,0x27,0xd1,0xc4,0x87,0x13,0xc0,0xa7,0x52, \
-0x64,0x3f,0x27,0xfd,0xa4,0x9a,0xc4,0xc4,0x16,0x1e,0xa8,0x28,0x6f,0xb2,0xe3,0xef, \
-0xec,0xde,0x7f,0x36,0x81,0xb5,0x46,0x90,0x43,0x8e,0x86,0x1a,0x78,0xba,0x95,0x03, \
-0x3e,0x54,0xb8,0x15,0xa8,0x85,0x9c,0x4b,0x6f,0x24,0xf2,0x4c,0x02,0x4f,0x3b,0x5d, \
-0x88,0x96,0xa1,0x70,0xfd,0xdf,0x49,0x90,0x35,0x97,0xa7,0x10,0x10,0xc3,0xbe,0x11, \
-0xb3,0xc2,0x34,0x57,0xb2,0x8f,0xfb,0xf7,0xd6,0xbe,0xad,0xe6,0xf3,0xcc,0x0e,0xd6, \
-0x10,0xa1,0x0e,0x20,0x25,0x29,0x04,0xa3,0xa7,0xc0,0x56,0x2b,0xac,0x2c,0xae,0xc0, \
-0x4e,0x84,0x0c,0x68,0xd1,0x7f,0x49,0x50,0x44,0xef,0x1f,0x4f,0xd5,0xd0,0xa6,0x35, \
-0x43,0xe8,0x6e,0x82,0xf5,0x9b,0x1a,0x0d,0x2c,0x84,0x2b,0x0f,0x7b,0x45,0xb6,0x75, \
-0x23,0xf7,0xf2,0x52,0x88,0x24,0x76,0xa5,0x46,0x28,0x22,0x23,0x18,0x31,0x82,0x44, \
-0x58,0xb2,0x30,0x63,0x19,0xfd,0xd7,0xf6,0x5f,0xbd,0x13,0xda,0xe1,0x43,0xb3,0x39, \
-0xb4,0x7e,0x14,0xf5,0x3b,0x5d,0x1b,0x90,0xfc,0xee,0xdc,0xe4,0x72,0xc2,0x31,0x05, \
-0x5f,0x6e,0x50,0x47,0xae,0x8b,0xc5,0x9a,0xa5,0x80,0x68,0xef,0x06,0xf8,0xd2,0x85, \
-0x33,0x69,0xc0,0xc6,0x6c,0xa6,0x67,0x62,0x1c,0xe0,0x18,0x21,0xec,0x61,0xb9,0x25, \
-0x61,0xaa,0x4e,0x51,0x9b,0x93,0xeb,0x9d,0x42,0x1c,0xb4,0x45,0xa1,0x80,0xb1,0x0d, \
-0x31,0x47,0x16,0xda,0x8e,0x8b,0x77,0x10,0xec,0x39,0x84,0x0b,0xb1,0x09,0xa4,0x5c, \
-0xe5,0x31,0x4b,0x6c,0x51,0x18,0x88,0xc5,0x58,0xc8,0x41,0x61,0xbc,0x3c,0xd0,0xff, \
-0x36,0x32,0xe2,0x1e,0xce,0x67,0x3f,0x9e,0x7f,0x87,0x42,0x08,0x94,0x41,0xf0,0x95, \
-0x1a,0x78,0x52,0x6a,0xf4,0xb3,0xad,0x96,0x2b,0x42,0x42,0x6b,0x00,0x6e,0x64,0x60, \
-0x11,0x61,0x0a,0x32,0x99,0x8e,0x46,0xd5,0x73,0xde,0x76,0xaa,0xab,0xf6,0x77,0x34, \
-0x31,0x76,0xcb,0x2c,0xab,0x83,0x44,0x4d,0xba,0x51,0xf4,0x87,0xdd,0x5c,0x2b,0xb6, \
-0x32,0x0a,0x8b,0x43,0x23,0x22,0xae,0xe8,0xa6,0x8b,0x13,0x1b,0x05,0x5c,0x7c,0x87, \
-0xb2,0xbc,0x00,0xa8,0xcc,0x42,0x5e,0xe1,0x86,0xf2,0x09,0xc2,0x23,0x84,0x92,0x85, \
-0xa8,0xc2,0xc9,0xf0,0xd8,0xa5,0x02,0x9a,0x2d,0x49,0x78,0xdc,0x36,0x96,0x90,0xd9, \
-0x9c,0xad,0x79,0xdd,0xa8,0x30,0x58,0xf4,0x95,0x0e,0x29,0xc2,0x56,0xb0,0x94,0x91, \
-0xae,0xce,0x0a,0x22,0xad,0x51,0xab,0x51,0x52,0xe4,0x91,0xa6,0xe0,0xe0,0xf2,0x35, \
-0xdc,0x2b,0xa7,0x00,0xcd,0x67,0x05,0xc8,0x54,0x1a,0x41,0x6b,0x1f,0x75,0xc1,0x98, \
-0x7a,0x03,0xb2,0x3b,0x67,0xca,0x78,0x6f,0xd1,0x92,0xd8,0xc3,0x4e,0x70,0x4a,0x64, \
-0x35,0x41,0xae,0xb6,0x8b,0x04,0x11,0xd9,0x05,0xc4,0xfe,0x53,0x17,0xdd,0x02,0x4b, \
-0x3c,0x20,0xde,0xc4,0x15,0xac,0x28,0x95,0x7b,0x7b,0xaa,0x1b,0x0e,0xe1,0x67,0x62, \
-0xee,0x03,0x7b,0x09,0x93,0x20,0x2a,0xdf,0x87,0xac,0xf8,0xba,0xd2,0x7c,0x8d,0x40, \
-0x50,0xc4,0x9e,0xbe,0x11,0x13,0xf9,0xe3,0x67,0xd6,0x75,0x31,0x0d,0x27,0xda,0xa9, \
-0xfd,0x0c,0x9c,0xd0,0x2a,0x1e,0xb0,0x6d,0x78,0x60,0x03,0xc5,0xfa,0xed,0x8e,0x85, \
-0x3c,0x53,0x56,0x40,0xc2,0x49,0xec,0x6e,0x31,0x8f,0x16,0x50,0xed,0x7a,0x38,0xd1, \
-0x6f,0x0c,0x4e,0xc6,0x5b,0x0d,0x25,0x92,0x15,0xcc,0x41,0x57,0xe3,0x00,0x4b,0x05, \
-0x2f,0x85,0xde,0x03,0x7b,0xe8,0x7d,0xe3,0xcd,0x86,0xe3,0x3b,0x82,0x66,0xe8,0x5d, \
-0x66,0x68,0xaf,0x35,0xc0,0xaf,0x48,0x4a,0x1e,0x96,0xc7,0xa4,0x68,0x4a,0x0d,0xd1, \
-0x0c,0xc8,0x9a,0x64,0x38,0xa8,0x9a,0xd3,0x38,0x90,0xa0,0xca,0xcf,0x37,0x8e,0x69, \
-0x9f,0xe1,0x31,0x87,0xba,0xe4,0xc0,0x84,0x59,0x01,0x47,0x4d,0x8f,0x28,0x07,0xaf, \
-0x49,0xda,0x17,0x6f,0x6e,0xc6,0xd8,0x2c,0x6a,0xcf,0x14,0xda,0x49,0xbc,0x32,0x3a, \
-0x04,0x49,0x2c,0xd5,0x9b,0x02,0x0f,0x9e,0xb0,0xeb,0x69,0xb4,0x9a,0x1a,0x74,0xe0, \
-0x1b,0xc5,0xa0,0xd9,0x33,0xef,0x74,0x0e,0x2c,0x6d,0x2c,0xc9,0xee,0x5d,0x28,0x06, \
-0x21,0xa9,0x68,0xfd,0x74,0xc2,0x67,0xcd,0x81,0xba,0xe3,0xfa,0x6d,0x5e,0xc4,0x06, \
-0x25,0x0f,0x4b,0x68,0xfd,0xe3,0x46,0x31,0x05,0xd2,0x01,0xf8,0x12,0x86,0x1f,0x7f, \
-0x63,0x7c,0x46,0x64,0x0f,0x71,0xea,0xb0,0xc9,0x7f,0x6c,0x25,0xc3,0xc1,0x00,0x85, \
-0xeb,0xd4,0x0a,0xec,0x86,0xb9,0x72,0x07,0x8a,0x41,0x56,0xe9,0xfe,0x75,0x20,0x3b, \
-0xcb,0x0e,0xe8,0x57,0x5c,0x36,0x68,0x43,0x69,0x34,0x80,0x71,0x06,0xdb,0x8e,0x5e, \
-0xc8,0x3e,0x36,0x3b,0xe4,0xb6,0xe4,0x0b,0x5a,0x68,0x25,0x6a,0x0d,0xd7,0x79,0x5b, \
-0x4b,0x06,0x0b,0xb3,0x49,0xdd,0x84,0x42,0x62,0x5f,0xad,0xa0,0x41,0x2f,0xec,0x2f, \
-0x32,0x5f,0xfa,0xa6,0x18,0xf2,0x67,0xef,0x4c,0x7a,0xa1,0x70,0x45,0x01,0x7a,0x88, \
-0xce,0x68,0x1d,0xdb,0x43,0x1c,0xd9,0x84,0xf1,0x7a,0xcd,0x20,0xd9,0xd3,0x64,0x36, \
-0xa4,0xad,0x58,0xe5,0x05,0x0e,0xeb,0x3a,0xd6,0x38,0x6b,0xcd,0x07,0x72,0x2e,0x50, \
-0x2f,0x10,0x4a,0xcc,0x42,0x6d,0x21,0xb0,0x38,0xb2,0x70,0x60,0x4f,0x56,0x92,0xc4, \
-0x3d,0xe5,0x94,0x60,0x49,0xa2,0x13,0x56,0x42,0x57,0xd4,0x7d,0xdf,0x22,0xc0,0x54, \
-0x30,0xc5,0x97,0x30,0xa7,0x1a,0x82,0x84,0x7d,0x94,0x45,0x91,0x47,0x1b,0x08,0xfb, \
-0x76,0xd1,0x53,0x81,0xef,0x68,0xde,0x9e,0x69,0x05,0x16,0x0a,0xa1,0xff,0x1b,0x44, \
-0x48,0x7e,0x5d,0xdb,0xe2,0x7a,0x6d,0xfc,0xa7,0xaa,0x7c,0xff,0x16,0x4c,0x63,0xe5, \
-0x89,0xf9,0xc5,0x11,0xc2,0x81,0x7f,0xca,0x25,0x95,0x06,0x72,0xf2,0x35,0xb4,0x4d, \
-0xf0,0x6f,0xeb,0x06,0xd3,0x01,0x83,0x5c,0x5c,0x34,0xe8,0x56,0xf2,0x6e,0x22,0x50, \
-0xc4,0x73,0x61,0x84,0xca,0xc8,0xdc,0xde,0xb4,0xd9,0xa1,0x18,0x28,0xd0,0xaa,0x4b, \
-0xc2,0x38,0x9d,0x17,0x63,0x9e,0xc2,0x23,0x00,0xd7,0xf8,0xd9,0x81,0x3d,0x66,0xbd, \
-0xb3,0xe1,0x50,0xda,0x2d,0xf2,0x28,0x78,0xb8,0x71,0x10,0x5f,0x16,0x28,0x68,0x5b, \
-0x81,0x19,0xaf,0x47,0x00,0x83,0xaa,0x4f,0xe8,0xb4,0x0d,0x11,0x89,0x0e,0x26,0x94, \
-0xde,0xca,0xfc,0xf7,0x7c,0xf5,0x4b,0x5d,0x8e,0x78,0xfa,0xce,0x0e,0xea,0x78,0x4a, \
-0xf8,0x52,0xf9,0xde,0x41,0xe0,0x27,0x10,0xb3,0xf3,0x10,0xbf,0x3c,0x24,0x55,0x41, \
-0xd5,0x2a,0xaf,0xc5,0x01,0x94,0xb6,0xeb,0x0f,0xae,0x5a,0x75,0x40,0x2f,0x6e,0xc4, \
-0x62,0x4a,0x9b,0xba,0xaa,0x98,0x9e,0x77,0x82,0xdf,0xd5,0xbc,0x95,0xea,0xf3,0x8c, \
-0x59,0x7b,0xba,0xe4,0xd9,0xb6,0x87,0x50,0x86,0xd5,0xd6,0x83,0x2f,0xfb,0xea,0x96, \
-0x8e,0x1c,0x4e,0xcf,0x5f,0xa0,0xfd,0xde,0x18,0xee,0xc8,0xf5,0x90,0xc1,0x45,0xe1, \
-0xb5,0x89,0x83,0x46,0xb9,0x41,0x54,0x85,0x54,0xd1,0x91,0xf5,0x72,0x46,0x60,0xae, \
-0x70,0x26,0x31,0xa0,0x0b,0xdd,0xc5,0xc5,0xdc,0x0c,0x17,0x4c,0xb8,0x24,0xbb,0xc6, \
-0x92,0xe3,0x53,0x06,0x67,0xf4,0x1e,0x36,0xca,0x7d,0x01,0x40,0xf2,0x49,0x34,0x0c, \
-0xee,0xeb,0x1b,0x8d,0xbc,0x90,0x15,0xd8,0x6e,0x37,0x55,0x10,0x40,0x75,0x25,0x99, \
-0xa9,0x9a,0x8f,0xdf,0x4c,0x72,0x41,0xee,0xe1,0x03,0xba,0x20,0xbe,0x10,0xbb,0x3d, \
-0xfd,0x70,0x28,0xca,0x72,0xd3,0xfa,0x0e,0x22,0x88,0xe1,0x94,0x40,0x13,0x49,0xe6, \
-0xb5,0x90,0xe2,0x61,0x78,0xab,0x8e,0x5e,0x32,0x3b,0x36,0xe0,0x84,0x92,0x88,0x37, \
-0x0d,0x78,0x47,0x51,0x8f,0xbe,0xaf,0x26,0x8d,0x04,0x91,0x09,0x66,0xb2,0x36,0xda, \
-0x52,0x25,0x52,0x32,0xcd,0x1f,0x53,0x73,0x21,0x2c,0x1d,0xb0,0x6b,0x29,0xc0,0x14, \
-0x88,0xc4,0x6a,0x41,0xa1,0x77,0xe9,0x99,0x2d,0x99,0xb4,0x69,0x01,0x2c,0x5c,0x05, \
-0xb8,0xea,0xb3,0xb3,0x5f,0x3f,0x61,0xea,0xed,0x9e,0xb6,0x1c,0x5a,0x2b,0x3d,0x4c, \
-0x95,0x82,0x8a,0x44,0x44,0x41,0x19,0x14,0x48,0xaa,0xa0,0x24,0x17,0x69,0xb6,0x71, \
-0x4c,0xd9,0x0c,0xe3,0x34,0xfa,0x3d,0x99,0xcc,0x99,0xb8,0x33,0x3c,0x5d,0x7f,0x6e, \
-0x5c,0x55,0xe9,0x4d,0xec,0xb8,0x88,0xd5,0x9a,0xdd,0xd3,0x9a,0x42,0x0f,0x79,0xe7, \
-0x4a,0xbe,0x3f,0x01,0x87,0xa0,0x58,0x03,0xe9,0x7a,0x0d,0x1d,0x8a,0xe0,0xda,0xf8, \
-0x78,0x62,0xe4,0xd6,0x58,0x13,0x4b,0x44,0x9a,0x4d,0xcc,0x40,0x1e,0x94,0x06,0x8d, \
-0xa0,0x8b,0xd6,0x44,0xe7,0x80,0x61,0x28,0x84,0x59,0xa1,0x58,0x40,0x7b,0x47,0xb1, \
-0x18,0x97,0x45,0xd3,0x68,0x1d,0xcf,0x55,0x2b,0xaa,0xb5,0x41,0xc9,0x54,0xe8,0x3d, \
-0x0e,0x66,0x46,0xaa,0xdf,0xad,0xa5,0x08,0x91,0xfe,0xb8,0xe3,0xd0,0x93,0x5f,0x00, \
-0xf2,0x41,0x41,0x04,0x82,0xa8,0x89,0x11,0x50,0x51,0x9c,0x01,0x08,0x52,0x30,0x84, \
-0x9a,0x7c,0x67,0xaa,0x2f,0x26,0x48,0x99,0xde,0xf2,0xbb,0xc3,0xae,0x7c,0x2e,0xd8, \
-0x89,0xa7,0xe6,0xef,0xda,0xc3,0x2a,0xe8,0xa0,0x78,0x90,0xc5,0xcf,0x0c,0x7a,0xc7, \
-0xc5,0x6c,0x99,0xf9,0xea,0xd2,0x38,0x0c,0x4f,0xdb,0x72,0x94,0xae,0xd2,0x52,0xad, \
-0x2c,0xc0,0x94,0x32,0xa9,0x55,0x84,0x19,0xf0,0x4f,0x00,0xa5,0xd2,0xa1,0xf2,0xa1, \
-0xf6,0xf9,0x05,0x7d,0x02,0x77,0xf9,0xe4,0xe0,0x31,0x07,0xbc,0xf7,0xa0,0xa1,0x6a, \
-0x4e,0x0f,0x95,0xbd,0x34,0x18,0x4d,0x0c,0x50,0x3b,0xba,0x6f,0x7f,0x96,0xa1,0x83, \
-0x49,0xb5,0x2a,0x71,0x61,0x69,0x88,0xed,0x28,0x8c,0x34,0x31,0xbe,0xfd,0x30,0x4b, \
-0x25,0xa0,0xd2,0xb6,0xea,0xd5,0x7f,0xdd,0x9e,0xb3,0xf6,0xbf,0x03,0xfb,0xa3,0x32, \
-0xa9,0xb6,0x78,0xe8,0xb2,0xca,0xde,0x78,0x0a,0xc3,0x9b,0x27,0x5e,0xef,0x8d,0x71, \
-0xf1,0x75,0xb0,0x9c,0x07,0x75,0xe0,0x09,0x8e,0xe8,0x1f,0x20,0xce,0xc6,0xa2,0xa0, \
-0x95,0x92,0x56,0x13,0xfe,0xac,0x85,0x45,0x22,0x84,0x59,0x81,0x81,0x59,0x14,0x9f, \
-0xde,0xc2,0xb1,0x62,0x38,0x6b,0x02,0xed,0xbf,0x76,0xf7,0x87,0xcf,0xcf,0x96,0x7d, \
-0xde,0xcb,0xd8,0x72,0xba,0x99,0xa6,0xa1,0xed,0xf3,0x38,0x92,0x80,0x5b,0xd5,0x87, \
-0xb4,0x1a,0x18,0x64,0xf0,0x20,0xe9,0x7d,0x66,0x76,0xae,0x9c,0x97,0x6b,0xe0,0x16, \
-0x81,0x32,0x9a,0x38,0x56,0xfb,0x80,0xc8,0xc3,0xdb,0xb4,0x6c,0xd5,0x48,0x35,0xe4, \
-0x22,0x42,0x4d,0xcf,0x96,0xa3,0x1c,0xb3,0xa8,0x72,0x10,0x41,0xca,0x06,0xf0,0xef, \
-0x39,0x9e,0x5e,0x4a,0xb9,0x75,0x4b,0xba,0x13,0x96,0xf3,0x01,0xdb,0xc9,0x16,0x49, \
-0x29,0x80,0x3e,0xde,0x88,0xca,0xf3,0xba,0x6f,0x42,0x9e,0x06,0x54,0xbe,0x75,0x4a, \
-0x48,0xd1,0x68,0xf5,0x12,0xb2,0x10,0x6c,0x2a,0x6f,0x66,0x56,0x8e,0xbf,0x6c,0x70, \
-0xc6,0x43,0x9e,0x8e,0xb5,0xad,0x0d,0x37,0x55,0xca,0x86,0x75,0x0c,0xee,0x76,0xd4, \
-0x96,0x23,0x4e,0x18,0x40,0x18,0x76,0xff,0xba,0x42,0xfe,0x9a,0x18,0xc8,0x6a,0x6e, \
-0xd4,0x47,0x9e,0x1f,0xe3,0x0b,0x40,0x7a,0xed,0x9e,0x2b,0xa0,0x35,0x53,0x98,0x82, \
-0xa0,0x7d,0x5d,0xa4,0x2d,0xbf,0x74,0xea,0x63,0x59,0x6b,0xa5,0xea,0x75,0xb6,0xab, \
-0x12,0x42,0xa2,0x94,0xed,0xd0,0xf5,0xc8,0x68,0x9f,0xe9,0xfa,0x7c,0x0d,0xd1,0x83, \
-0xb1,0x0e,0x85,0x86,0x43,0x84,0x07,0xe8,0xcb,0x21,0x18,0x8c,0x31,0x3b,0x0b,0xab, \
-0x4b,0xe7,0xb5,0x99,0xea,0x2c,0x6d,0x0d,0x80,0xde,0x24,0x41,0x3f,0xba,0xd5,0x8b, \
-0x08,0xbe,0xf9,0xba,0xf1,0xf8,0xb1,0x7d,0xc6,0xf4,0x40,0x30,0x88,0xdc,0x14,0x9b, \
-0x7d,0x8f,0x70,0x6d,0xef,0x16,0xc1,0x1d,0x8a,0x02,0x2d,0x61,0xba,0xc0,0x0f,0x30, \
-0x59,0x94,0x03,0xc0,0xa2,0xef,0x47,0xf6,0x67,0x5b,0x80,0xd4,0x39,0xf0,0xee,0xea, \
-0x13,0xa7,0x3e,0x47,0x1c,0x70,0xd9,0xe3,0x83,0x4f,0xd4,0x51,0x15,0x82,0xc6,0x34, \
-0x1a,0xc8,0xb1,0x58,0x30,0x2b,0x35,0x91,0xc0,0xa4,0x18,0xa8,0x8a,0xc8,0xaa,0x02, \
-0x20,0x2c,0x62,0xa7,0xf3,0x65,0x8b,0x26,0x88,0x58,0xaa,0x8b,0x05,0x82,0x28,0x22, \
-0x28,0xa2,0x8c,0x15,0x41,0x41,0x88,0x28,0xa0,0x66,0xca,0x2a,0x22,0xb1,0x93,0x41, \
-0xac,0xcb,0x52,0x2c,0x18,0xbe,0x40,0xc6,0x85,0x17,0x37,0xe7,0xfb,0x7e,0xcd,0xb8, \
-0x72,0x35,0x35,0xf1,0xd6,0x3d,0xbf,0x4e,0x84,0x9c,0x51,0x48,0x7c,0xcc,0x92,0x89, \
-0x08,0xb1,0x61,0xfc,0xda,0x90,0x3b,0x1b,0x20,0xb0,0x58,0x44,0x51,0x42,0x74,0x7f, \
-0x17,0xbd,0xcf,0xb6,0xc2,0xf7,0x5a,0xeb,0xb1,0x4a,0xc5,0x39,0xe3,0x06,0x17,0xa3, \
-0x7e,0x16,0x69,0xc0,0xdd,0x53,0x44,0x12,0x7d,0x91,0x03,0x13,0x2f,0x1c,0x03,0x0b, \
-0xf0,0x4a,0x5d,0x48,0x61,0x05,0x68,0xe5,0x25,0x66,0xc3,0xfc,0x68,0xf8,0xe5,0x1a, \
-0x2c,0x02,0xbc,0x5d,0xa9,0x16,0xb2,0x1d,0xc2,0xb6,0xe7,0x34,0xb6,0xf1,0x9a,0xf1, \
-0x1a,0xee,0x58,0x46,0xb4,0x1f,0x14,0x92,0x79,0xe8,0x9f,0xb2,0xbd,0x77,0xa8,0xc1, \
-0xc6,0xdf,0x98,0xec,0xfd,0x8d,0xcc,0x69,0xc8,0xa6,0xe5,0x5b,0xf9,0xe7,0xaf,0x48, \
-0x6e,0xa7,0xf5,0xd6,0xf6,0xbb,0x51,0x32,0x69,0x02,0xfa,0x52,0xba,0xdc,0x1a,0xaa, \
-0x3d,0x31,0xf4,0xa8,0x58,0xd1,0xf5,0x5d,0xf0,0xef,0x0a,0xdb,0x3f,0xbd,0xf6,0x20, \
-0xf7,0xa5,0xe4,0x8c,0xa5,0xa3,0x87,0xbd,0x73,0x14,0xe5,0x84,0x95,0xfa,0xc1,0xe9, \
-0x74,0x23,0x5a,0x10,0x5e,0xec,0x31,0x62,0x1c,0x5e,0x79,0xdf,0x4c,0x08,0xe7,0x47, \
-0x4f,0xda,0x92,0x92,0xa4,0xd7,0xed,0x82,0xcb,0xdf,0x5f,0x95,0x6b,0xef,0x1d,0xda, \
-0x55,0xef,0x9f,0x0c,0x25,0xcc,0xc8,0xa5,0xbc,0x52,0x44,0x52,0x7b,0x22,0x65,0xa1, \
-0xfd,0x97,0x5e,0x1d,0x31,0x99,0x7b,0x71,0x4b,0x7f,0x4b,0x35,0xae,0x45,0x57,0x8d, \
-0xcd,0x1d,0xed,0x03,0x59,0x2b,0xcf,0x7d,0xaf,0xfa,0x18,0xaa,0xf5,0xce,0x2c,0xab, \
-0x74,0xaa,0xc9,0x8a,0xc8,0x69,0xdf,0x06,0xa7,0xcb,0x15,0xd4,0xfa,0xbb,0xef,0xb2, \
-0x4a,0xdb,0x25,0x1c,0xd8,0xc5,0x0e,0x7c,0x5b,0xe2,0xd9,0x25,0xf4,0x9f,0x7d,0xe8, \
-0x61,0x8f,0xd5,0xa6,0x62,0xd3,0x97,0x02,0xf9,0x4a,0x6b,0x7f,0x11,0x10,0x64,0xaa, \
-0xb1,0xfa,0x95,0xeb,0x84,0x8d,0x8d,0x05,0x98,0x63,0xdc,0x15,0x39,0xe8,0x6b,0xb8, \
-0x21,0x8c,0x0a,0x04,0xcf,0x17,0xf8,0xdc,0xd8,0xac,0x89,0xf2,0xef,0x3c,0xce,0xdf, \
-0x7d,0x63,0xb1,0x79,0xd3,0xbc,0xe3,0x14,0x1a,0xd9,0x7a,0x5a,0xac,0xff,0xf4,0x53, \
-0x66,0x88,0xe7,0xe6,0xe5,0xf9,0x7d,0x78,0xeb,0xd6,0x62,0x8c,0x3c,0xf0,0x4d,0x88, \
-0x5f,0x54,0xc0,0x6d,0xdb,0x97,0xbe,0x9d,0xec,0x0b,0xb6,0xc1,0x74,0x42,0x25,0x81, \
-0x7c,0x5a,0x0d,0x09,0x98,0x24,0x7d,0xfe,0x0a,0xab,0x5d,0x69,0x7c,0x50,0x2a,0xee, \
-0x96,0x72,0x22,0x24,0x02,0x8d,0xd1,0xe1,0x50,0x5d,0x4e,0xc7,0x88,0x70,0xda,0x92, \
-0x90,0xde,0xb4,0xb8,0xfa,0x28,0xa5,0xd3,0x03,0xca,0x4a,0x5e,0x53,0xda,0x75,0xc1, \
-0xe7,0x1a,0x0f,0x6e,0xe5,0xe7,0x25,0xc8,0xd1,0x92,0x6e,0x1c,0x9c,0x30,0x0b,0x8a, \
-0xfa,0xed,0x68,0xd4,0xc5,0x88,0x42,0x0e,0x73,0x80,0x68,0x63,0x88,0xb8,0x0e,0x62, \
-0xb3,0x06,0xdc,0x0c,0xca,0xd5,0x97,0x10,0x88,0x9e,0x52,0xfc,0xfd,0xba,0x1e,0xc0, \
-0xf4,0x56,0x01,0x4d,0xde,0x9f,0x7b,0x32,0x5a,0x1f,0x6a,0xe0,0xd3,0x00,0xb2,0x4a, \
-0x84,0x6d,0x20,0x4b,0x41,0x03,0x86,0x49,0x8b,0xcd,0x9f,0xce,0x84,0x7f,0x53,0x0f, \
-0xb9,0xbf,0xf5,0x18,0x20,0xad,0x2f,0xc7,0x9b,0x5e,0x9b,0x6c,0xd3,0x08,0x89,0xde, \
-0x4b,0xf5,0x5a,0x4a,0x85,0xa6,0x69,0xef,0xb5,0x29,0x40,0x66,0x80,0x18,0x0c,0xeb, \
-0x34,0x50,0xce,0x82,0xea,0x35,0xb1,0xdc,0xb1,0xf9,0xb1,0x84,0x3d,0x20,0x7b,0x18, \
-0x71,0x49,0xf6,0xbe,0x7f,0xaf,0x3b,0xad,0xda,0x1f,0xca,0xe2,0x19,0x0e,0x28,0xa0, \
-0x0c,0x3d,0x76,0x9f,0xac,0x37,0xfb,0x01,0x88,0x9a,0xfd,0x76,0x61,0x02,0x29,0x46, \
-0x43,0x76,0x35,0xf6,0x33,0x79,0x4e,0xf9,0x41,0xff,0x52,0xb1,0x18,0xdd,0x78,0x83, \
-0x45,0x4e,0xdf,0x18,0x28,0x2e,0x87,0xa2,0x4a,0xb3,0xc0,0x60,0x7f,0x4e,0x30,0x96, \
-0xfe,0x10,0x78,0x66,0x2c,0x88,0x0d,0x93,0x19,0x95,0x6e,0x8d,0xad,0x5c,0x15,0xfd, \
-0xf3,0x37,0xcc,0x19,0x93,0xcc,0xa2,0x37,0xa8,0x96,0x86,0x44,0xfe,0xe3,0x94,0xb9, \
-0x94,0xac,0x3f,0x16,0x36,0x36,0x50,0xe3,0xb1,0xdc,0xa7,0xd1,0x0a,0x19,0x7c,0x6e, \
-0xf3,0x9c,0xd4,0x8b,0x3f,0x2c,0x1d,0x8b,0x32,0xe8,0x6d,0xc5,0x9c,0xef,0x2c,0x37, \
-0x2f,0x47,0xcb,0xad,0xe3,0xd8,0x2e,0x33,0x25,0x6f,0x76,0xa7,0x3d,0xac,0xf9,0x80, \
-0xbd,0x8c,0x00,0xc5,0x54,0x51,0xc2,0xf5,0x45,0x7f,0xf2,0xb5,0xc6,0x8c,0x42,0xe9, \
-0x2c,0xa5,0x35,0xfb,0x8c,0x74,0xea,0x47,0xd1,0xa0,0x3c,0xb3,0x57,0xb6,0x8c,0x98, \
-0x8f,0x78,0x9a,0x86,0xbf,0x26,0x01,0x47,0x0d,0x24,0x42,0x1f,0x33,0xcf,0x46,0x93, \
-0xc0,0xb0,0xa3,0x4e,0x7d,0xc8,0x24,0x69,0x96,0x5f,0x3c,0x13,0x0c,0xd1,0x32,0x3d, \
-0xd2,0xe6,0xfa,0x7a,0x69,0x84,0x93,0xf8,0x89,0xea,0x70,0xb2,0x0c,0x58,0x45,0xf1, \
-0x71,0x84,0x1e,0xbb,0x40,0xae,0xe5,0x60,0xdf,0x90,0x96,0x8f,0x01,0x7c,0xd5,0xf6, \
-0xd0,0x8e,0xfd,0x64,0xdf,0x58,0x6d,0x8a,0x85,0x5e,0xb0,0x89,0x90,0x66,0xcf,0x56, \
-0xa8,0x3d,0xbd,0x31,0x49,0x6e,0x0f,0x6b,0x45,0x42,0xf5,0x86,0x86,0xd5,0xb1,0xf6, \
-0xc4,0xf9,0xc6,0xf7,0x80,0x5f,0x7b,0x50,0xd2,0x21,0xc2,0x89,0x50,0x29,0x34,0x83, \
-0x11,0x91,0x24,0x67,0x96,0xd2,0x9e,0x68,0xc0,0xf4,0xe2,0xb1,0x4a,0xa3,0x47,0xa1, \
-0xc3,0x18,0x3e,0x3d,0xfc,0x27,0x29,0xd2,0x25,0x7b,0x06,0xc1,0x75,0x6d,0xcd,0xaf, \
-0x73,0xe3,0x0e,0x39,0x10,0x4b,0x36,0x98,0xa2,0xf8,0xe4,0xb3,0x8c,0xe8,0x8a,0x14, \
-0x0a,0x3c,0x60,0xc5,0x90,0xc8,0xf0,0x2f,0x0b,0x98,0xd1,0x52,0x0d,0x33,0x30,0xa1, \
-0x49,0xd6,0x97,0xb5,0x91,0x83,0x17,0x62,0xd5,0x10,0x90,0xd4,0xb4,0x72,0xae,0xcc, \
-0x56,0x96,0x6d,0x28,0x6a,0x90,0x70,0x40,0x3a,0xcf,0x64,0x56,0x5b,0x66,0xd7,0xc2, \
-0x2c,0xbe,0x4f,0x41,0xd7,0x31,0xbe,0x8d,0x8c,0xdb,0xad,0xd1,0xce,0xe0,0x70,0x47, \
-0x5c,0xd1,0xfb,0x78,0x01,0xfa,0x60,0x39,0x52,0x70,0xcc,0x06,0x15,0x2a,0xe1,0x99, \
-0x4e,0xb4,0xb0,0x03,0x5d,0x92,0x0a,0x9a,0x04,0xc0,0xde,0xdc,0x68,0x4a,0x98,0xe0, \
-0x07,0x57,0x04,0x84,0x61,0x17,0xab,0xbf,0xf0,0xd1,0xf8,0xb5,0x5e,0x23,0x3d,0x46, \
-0x84,0xbd,0xfe,0x71,0x96,0xae,0xb1,0xb6,0x17,0x25,0xdc,0xd0,0x42,0x1a,0x42,0xf6, \
-0xf5,0xc5,0x03,0xe3,0x80,0x79,0xb1,0x7e,0xe0,0xf2,0x35,0xa9,0x41,0x27,0x9b,0x57, \
-0xd1,0x97,0x17,0x3e,0xbd,0x13,0xa5,0x4a,0x9a,0xcb,0x12,0x33,0x75,0xc2,0xe1,0x9c, \
-0x3d,0xee,0x0e,0xec,0xc4,0x5c,0xc4,0x2b,0x51,0xac,0x90,0xa4,0x7e,0x98,0xcc,0x33, \
-0xf2,0x5f,0x95,0x14,0xac,0xfa,0xd0,0xd2,0x18,0x64,0x92,0xc3,0x08,0x07,0x78,0x7e, \
-0x5b,0x06,0x3a,0xeb,0xee,0x01,0x49,0xe7,0x29,0x5b,0xa7,0x4a,0xae,0xe6,0x69,0xb0, \
-0xb4,0xf6,0x6b,0x91,0xed,0xa6,0xfa,0x07,0x10,0xc0,0xfa,0x42,0xc4,0xd6,0xd7,0x93, \
-0x46,0xe0,0x10,0x81,0xb8,0xfe,0xe6,0x54,0x10,0xdf,0xf0,0xa4,0xe4,0x92,0x78,0xf9, \
-0xd3,0x59,0xe1,0xc6,0xfc,0x18,0x1d,0xa9,0x9b,0x4a,0x24,0xea,0x84,0xb3,0x8d,0x36, \
-0xe7,0x7c,0x07,0x7a,0x4c,0x25,0x6a,0x27,0x24,0xde,0xe3,0x87,0x0b,0xef,0xf7,0xed, \
-0x41,0x69,0xe7,0xa7,0xbc,0x77,0xa3,0x1c,0xe1,0x1a,0x3d,0xda,0xf4,0x58,0x6d,0xb0, \
-0x81,0xf9,0xb5,0x01,0x8f,0x9d,0x90,0x49,0xac,0x67,0x76,0xbb,0x86,0x71,0xb6,0x96, \
-0x8b,0xe7,0xcd,0x87,0xe1,0x42,0x8e,0x7a,0x4d,0x3d,0xe6,0x69,0x60,0xd2,0xec,0x94, \
-0x42,0x50,0xd3,0xa7,0x1b,0x4a,0x08,0x55,0x49,0xb2,0x54,0x80,0xa5,0x0b,0xdf,0xa3, \
-0xf7,0xfe,0x47,0xe5,0x59,0xa2,0x5f,0x3c,0x9b,0x8d,0xd4,0x2b,0x6b,0x5e,0x1a,0x41, \
-0x05,0x91,0x04,0x1d,0x6c,0x0a,0xc3,0x81,0x0f,0x12,0x68,0x41,0x58,0x9a,0xad,0xa6, \
-0xf1,0x94,0xdd,0x8a,0x15,0x32,0xa2,0x19,0x17,0x79,0x20,0xa1,0x06,0x9c,0x07,0x57, \
-0x08,0x50,0xe1,0x0d,0x81,0x37,0x83,0x00,0xba,0xdc,0x6a,0x8a,0x58,0x35,0x94,0x2d, \
-0xac,0x89,0x2d,0xdd,0xe1,0x4c,0x32,0x0c,0x18,0x02,0xa6,0x64,0x8c,0xdf,0x86,0x1f, \
-0x31,0xd7,0x7e,0xa4,0x31,0xe9,0xaa,0x9b,0xd4,0x10,0xc4,0xc8,0x58,0xde,0x56,0xa2, \
-0xa5,0x60,0x41,0xb1,0xa4,0x4a,0x1b,0x48,0xe6,0x11,0x09,0x1f,0xc5,0x45,0xcd,0x07, \
-0xea,0xd0,0xaf,0x19,0x72,0xf0,0x70,0x96,0xe7,0xde,0xc9,0xa4,0x16,0xb7,0xce,0x56, \
-0xe4,0x0c,0x3a,0x49,0xf4,0xf3,0x9d,0xf1,0x5f,0x4a,0x50,0x54,0xe8,0x14,0x96,0x49, \
-0xad,0xab,0xad,0x28,0x69,0x4b,0x36,0x61,0x00,0x23,0xe1,0xe7,0x7e,0xbc,0x00,0x2a, \
-0x92,0x7e,0xde,0x61,0x28,0xd7,0xc0,0xa9,0xae,0x0a,0x1a,0x1a,0xc5,0xea,0x74,0xaf, \
-0x34,0xcb,0x94,0x87,0x7a,0x65,0x09,0xa6,0x9a,0x64,0x76,0xcb,0x6b,0x16,0x0b,0x4c, \
-0x53,0xd2,0x71,0xd0,0xc1,0xfe,0x2e,0xb0,0x1e,0xf5,0x33,0xe2,0xed,0x6a,0x8c,0x45, \
-0xac,0xb4,0xd0,0xdb,0x83,0x2f,0xa1,0xd5,0xd8,0xd2,0x13,0xab,0x14,0x2b,0x44,0xb1, \
-0xd2,0xde,0x54,0xcb,0x16,0x49,0x86,0x0b,0x11,0xd7,0x38,0xc2,0x18,0x69,0x92,0xd1, \
-0x60,0xe2,0xe2,0xdc,0x3d,0xb4,0xb9,0x6e,0x52,0x0d,0xe3,0x86,0xd3,0x66,0x69,0x14, \
-0x0e,0x49,0x0c,0x90,0x15,0x69,0xe4,0xb4,0x25,0x15,0x20,0x4a,0x9a,0x7f,0x3d,0xb3, \
-0xae,0x43,0xc2,0xe6,0x0d,0x23,0xa6,0xef,0x83,0x25,0xa1,0x89,0x64,0x62,0x80,0x82, \
-0xf0,0x03,0x01,0xe7,0x8c,0x34,0xa1,0x4c,0x8f,0x75,0x80,0xa9,0x88,0xc3,0xb0,0x0f, \
-0xb8,0xe9,0xee,0xdf,0xa3,0xd1,0x3a,0x9d,0xb9,0xea,0x47,0x7c,0x3b,0xca,0x35,0x03, \
-0x5f,0xe3,0x49,0xa5,0xb5,0x63,0xd7,0x06,0x9f,0x9f,0xd5,0x55,0x04,0x91,0x19,0x38, \
-0x1d,0x9d,0xe1,0x44,0x8a,0x2d,0x11,0x17,0xb8,0x71,0x88,0x5b,0x40,0xc0,0xd7,0xc6, \
-0xb8,0x9c,0x1d,0xac,0x5b,0x5d,0xb3,0x26,0xeb,0x9a,0x06,0xd3,0x62,0x17,0xcb,0xae, \
-0x79,0xf3,0x8b,0x9f,0xf3,0x98,0x22,0xff,0x1e,0xf5,0xd5,0xca,0xce,0xfd,0x26,0xa6, \
-0xdb,0xdb,0x32,0xa2,0xbd,0x8a,0x42,0x86,0x34,0x0e,0xd1,0xec,0x6a,0x4f,0xaf,0x1f, \
-0x10,0xa2,0xf6,0xb1,0x0a,0xf3,0xd5,0x92,0x27,0xe1,0x85,0x4e,0xda,0x0a,0x51,0xce, \
-0x33,0x00,0x2b,0xd7,0xad,0x10,0xad,0x1b,0x1d,0x96,0x9c,0xee,0x90,0x4b,0x6b,0x48, \
-0xfb,0x58,0x07,0xe6,0x0f,0xea,0xbc,0xee,0x4f,0x66,0x9c,0x89,0x31,0x66,0x2b,0xab, \
-0x00,0x8b,0xba,0xa4,0x69,0x8f,0x8f,0xbc,0xec,0x37,0x02,0x0e,0xce,0xfc,0x19,0xa3, \
-0x89,0x8b,0x49,0x68,0xce,0x99,0xc1,0xa8,0x69,0xc4,0x25,0x2e,0x5c,0x4e,0x73,0x2c, \
-0xf4,0xf7,0xe8,0xbe,0x79,0x0a,0x70,0x8c,0x64,0x25,0x36,0x21,0x15,0xf9,0x61,0x29, \
-0x0d,0x85,0xa8,0x84,0xe9,0xcb,0x12,0xc3,0x4a,0xc3,0x30,0x4f,0x6f,0x69,0x07,0x93, \
-0x89,0x9b,0x6d,0x61,0xb8,0x16,0x59,0x4d,0xc0,0xb1,0x4a,0x95,0xc2,0x36,0x02,0x9a, \
-0xa5,0x5c,0x5a,0xe5,0xe2,0x61,0x88,0x6c,0x2c,0x07,0x25,0x4a,0x5d,0x70,0xd1,0x6e, \
-0x67,0x4c,0x9e,0x33,0x0b,0x33,0x1b,0xbb,0xb7,0xb0,0x53,0xad,0x5f,0x1a,0x44,0x91, \
-0x4c,0x4d,0x15,0x22,0x60,0x4c,0x3b,0x2d,0x4e,0xe5,0x41,0xe4,0x85,0xec,0xa9,0x72, \
-0xc4,0x61,0xaa,0xd7,0xf7,0xc5,0x37,0xd5,0x82,0xb0,0x57,0xa2,0x96,0xa9,0x8c,0x23, \
-0x54,0x81,0xee,0x11,0x16,0x51,0x58,0xa0,0x6a,0x9d,0xde,0x11,0x84,0xe2,0xbb,0x8a, \
-0xa4,0xea,0xc6,0x1e,0xa4,0xdf,0x18,0x80,0xd6,0x0c,0x07,0xb8,0xd0,0xd7,0x81,0x1b, \
-0xb0,0xe2,0x21,0x5e,0xda,0x5b,0x87,0xd8,0x58,0x33,0x87,0x15,0xb2,0xd5,0xf8,0x59, \
-0xdc,0xb8,0xaa,0xed,0xaa,0x3e,0x45,0xf2,0x51,0x69,0x45,0xb3,0x0b,0x25,0x55,0xc1, \
-0xe1,0x6c,0x34,0xed,0xba,0x6f,0x77,0x5a,0x2a,0x2d,0xca,0xa5,0x5f,0x8d,0x78,0xf1, \
-0x79,0x11,0x81,0x77,0x17,0x10,0x8c,0x78,0x55,0x69,0x2a,0x66,0x17,0x60,0x95,0x39, \
-0xdc,0x5c,0xa4,0x44,0x66,0xb6,0x04,0xf1,0xbc,0xd9,0x4e,0xf8,0x8f,0x4c,0xb3,0x26, \
-0x3e,0x99,0xaf,0x4d,0xd7,0x85,0x48,0x9e,0x16,0x5e,0x94,0x1b,0x46,0xfa,0xed,0xcb, \
-0x30,0xbb,0x0c,0xb2,0x28,0x2b,0x6c,0xef,0xa5,0x14,0x7d,0x58,0x2b,0xd5,0x83,0x3d, \
-0x35,0x08,0x6b,0x0b,0x59,0x58,0x46,0x05,0x28,0x1c,0x46,0x78,0xe2,0x1c,0x41,0x17, \
-0xbc,0x1b,0xb8,0x6b,0x31,0x40,0xcc,0x1a,0xfa,0xc5,0xd6,0xb3,0x06,0x95,0x65,0x35, \
-0x34,0x12,0xea,0xd4,0xe2,0x5c,0x91,0x54,0x20,0x40,0xa8,0x97,0x01,0x42,0xef,0x6b, \
-0xb8,0xe2,0xc9,0x46,0x35,0xa1,0xce,0xb7,0x6e,0x22,0xb5,0x5b,0xaa,0x41,0x72,0x71, \
-0x4b,0x6a,0xc0,0x6f,0x45,0x14,0x94,0x56,0x45,0x7a,0x50,0x38,0x61,0x6e,0x35,0x82, \
-0x34,0xfb,0x20,0x8d,0xd4,0xaa,0xbb,0x92,0xe0,0xc8,0x75,0xab,0x91,0x5a,0xe0,0xc0, \
-0xb2,0xd7,0x8c,0xbc,0xc8,0x84,0xbb,0xd6,0x2b,0x95,0x59,0x47,0xda,0xb5,0xd5,0xb8, \
-0x48,0x7a,0xec,0xed,0x8b,0x5c,0x82,0x4d,0x76,0xa5,0xb4,0x60,0xd6,0xc1,0x46,0x46, \
-0x02,0xbc,0x13,0xc0,0xdd,0x05,0xea,0xa2,0xc3,0x64,0xa2,0x54,0x90,0x1b,0x5a,0x50, \
-0xe8,0x79,0xb3,0xd1,0x79,0xe8,0xa8,0xce,0xbc,0x99,0xc3,0x84,0x4c,0xec,0x57,0x35, \
-0xd9,0x30,0x6e,0x7a,0xbc,0x75,0x5a,0xde,0xa6,0xdb,0x83,0xc5,0xea,0x28,0x07,0x0a, \
-0x4a,0x20,0x72,0x52,0xb1,0xb1,0x03,0x4a,0xee,0xc3,0x55,0x71,0x2f,0x21,0x56,0xb4, \
-0x66,0x0a,0x05,0x11,0xc3,0xd8,0x56,0x4b,0x20,0xa5,0x29,0x61,0x93,0x99,0x4c,0xe5, \
-0xf0,0xec,0x5d,0x69,0x7a,0x7b,0x40,0x5b,0x45,0x76,0x0d,0x7e,0x04,0xe3,0x8f,0x09, \
-0x34,0x9a,0xd8,0x3e,0x74,0xf6,0x23,0x81,0x3f,0x10,0xf3,0x47,0x4b,0x26,0x36,0x1b, \
-0x72,0x88,0x71,0x61,0xc4,0x8d,0xa8,0xbe,0x1b,0x7d,0x3a,0xea,0x9b,0x5f,0x49,0x03, \
-0xa9,0xc3,0xee,0x85,0x1b,0x08,0x5b,0x14,0x58,0xc3,0xca,0x43,0x7c,0x94,0x21,0x8a, \
-0x3e,0x6c,0xfb,0x56,0x17,0xca,0xa8,0x83,0x78,0xd1,0x96,0xac,0x5f,0x45,0x44,0x4b, \
-0xd3,0x7f,0x88,0x5e,0x92,0xd8,0x15,0xd4,0x92,0x50,0x73,0x92,0xfd,0xd2,0x01,0xa8, \
-0x59,0x8f,0xed,0x79,0x2d,0x66,0xb3,0x09,0x22,0x54,0x6d,0x6d,0x92,0x52,0xad,0x21, \
-0xa1,0x82,0x24,0xc4,0x44,0x23,0x5a,0x34,0xe9,0xb6,0x11,0x5c,0x1d,0x61,0x55,0x9c, \
-0x1e,0xd8,0xe9,0x27,0x85,0xcc,0x2f,0x75,0xbb,0x04,0x6b,0xd1,0xda,0x4e,0x1f,0x0f, \
-0x21,0x7e,0x3c,0x84,0x4a,0x9d,0xdd,0x0e,0xb0,0x1f,0xad,0x72,0xdd,0xa4,0xf1,0xdc, \
-0xda,0xeb,0x76,0xfd,0x92,0xdb,0x8b,0x69,0xee,0x18,0xc5,0xfc,0x5d,0x25,0xd4,0x48, \
-0xe1,0x35,0xd8,0x0a,0x83,0xc6,0x8d,0xb0,0xb2,0x73,0x20,0x10,0x76,0xa1,0x78,0x12, \
-0xbe,0x21,0xd5,0x0b,0x67,0x59,0xb0,0x42,0x38,0x94,0x3a,0xce,0x70,0x95,0x2e,0x11, \
-0xb0,0x9f,0xc4,0xd9,0x09,0x52,0x21,0x65,0xde,0x66,0x67,0xb4,0xba,0x59,0xde,0x31, \
-0xe8,0x90,0x86,0x9d,0xe4,0xea,0x43,0x3a,0x85,0x3b,0x8d,0x0b,0x65,0x95,0x98,0xc5, \
-0x7e,0xf9,0x3a,0x1e,0x3c,0x4e,0xf2,0x7b,0xec,0x36,0xd2,0x43,0x54,0x2b,0x2b,0x06, \
-0x3d,0xe9,0xb5,0x3d,0x27,0xc2,0x50,0xc7,0x62,0xa0,0x26,0x87,0x0f,0x24,0x1b,0x03, \
-0xbd,0x78,0xa2,0x1b,0xdf,0x3e,0x2d,0xa3,0x6a,0xe9,0x80,0xa5,0x62,0xa0,0x75,0x25, \
-0x92,0x16,0xf6,0xac,0x6f,0x4a,0xe5,0x8a,0x36,0x68,0x6d,0xce,0xdc,0xb7,0x0b,0xaa, \
-0x26,0x21,0xbb,0x50,0x88,0x3e,0x18,0x6c,0xb0,0xcd,0xff,0x39,0xed,0x3d,0x55,0xb3, \
-0xf7,0x92,0x55,0xce,0xeb,0xd7,0xc1,0x79,0x37,0x5c,0x55,0x2a,0xa2,0x90,0xb8,0xf0, \
-0x4e,0xa5,0x92,0xe5,0x9d,0x6c,0xb4,0xcb,0x37,0x66,0x18,0x59,0xc0,0x10,0x5e,0x15, \
-0xe4,0xe1,0x3a,0x21,0x9c,0x73,0xc4,0x2e,0x39,0x97,0x45,0x50,0x50,0x14,0xa6,0x8b, \
-0xa0,0xd5,0xa0,0x49,0x4f,0x09,0x26,0x74,0x15,0x50,0xd8,0x7b,0x02,0xb2,0x87,0xf1, \
-0x30,0x66,0x07,0x7b,0x44,0x50,0x16,0xea,0x2a,0x8f,0xc0,0xd0,0x88,0x2e,0x44,0x3a, \
-0x3c,0xaf,0x1d,0xe2,0x1e,0xf2,0x28,0xd8,0x08,0x21,0x19,0x95,0xf1,0x75,0xa6,0x13, \
-0x0e,0x75,0xc8,0xde,0xba,0xf7,0xbb,0x74,0x95,0x2b,0xaf,0x97,0x0e,0x1c,0x67,0x6d, \
-0x9e,0x0e,0xe0,0x84,0xd5,0x7d,0x03,0x14,0xc0,0x1e,0x06,0x01,0xab,0x5e,0xbd,0x66, \
-0x4d,0x18,0x86,0x3b,0xf3,0x4c,0x34,0x2a,0xd0,0x0a,0xa0,0x6d,0x1a,0x03,0xf1,0x81, \
-0xc7,0xe5,0xfe,0xf1,0x33,0x27,0x09,0xf4,0xf9,0x48,0xe0,0xf2,0xe3,0x4b,0x07,0x41, \
-0x12,0xd8,0x28,0x2a,0x8e,0x73,0x33,0xc6,0x3a,0xb3,0x08,0x62,0x3a,0x8b,0x10,0x96, \
-0xb6,0x0b,0x93,0xa8,0x6c,0x49,0x1a,0xc2,0x44,0xbb,0x4c,0x09,0xa1,0xb2,0x57,0xa2, \
-0xc1,0x38,0xc4,0x0c,0xb6,0x18,0x2a,0x57,0x34,0x6e,0x82,0xc0,0x43,0xb6,0x1f,0xbd, \
-0x85,0x68,0x41,0x2a,0xfa,0x61,0x67,0x58,0x80,0xac,0xb1,0x36,0x80,0xf7,0x59,0xbd, \
-0x4d,0x28,0xb1,0x4b,0x32,0x18,0x76,0x9b,0xb3,0x2d,0xd4,0x6a,0x01,0xb2,0xf5,0xc2, \
-0x61,0xce,0xfa,0x52,0xb5,0x1d,0xd3,0x57,0x53,0x94,0xa5,0xf7,0xb9,0x66,0xdb,0xd7, \
-0xb0,0x37,0x7e,0x16,0x74,0x6e,0x40,0xe6,0xf8,0x04,0x24,0x2a,0x91,0x56,0x14,0x0c, \
-0x6d,0xbc,0xc2,0x6d,0x36,0xa5,0xc4,0xe9,0x68,0x8c,0x0a,0xdf,0x15,0x0c,0x31,0x52, \
-0x32,0xcb,0x31,0x71,0xe2,0x3c,0xd4,0xdf,0x5a,0x13,0xe9,0x65,0x26,0xb3,0xeb,0x38, \
-0x87,0xa7,0x78,0x6d,0xd8,0x2d,0x81,0xcd,0x40,0xb1,0x1a,0xd2,0xd2,0x60,0xaf,0x06, \
-0x05,0x8c,0x18,0xc5,0xb4,0x2d,0x0b,0x64,0x62,0xab,0x23,0x1d,0x2d,0x5b,0x48,0xcd, \
-0x40,0xc8,0x55,0xdd,0xf9,0x9b,0x63,0xa1,0x91,0x5e,0xa8,0xc3,0x40,0x0b,0x82,0xd0, \
-0x33,0x8c,0x38,0x58,0xcb,0x7d,0xf6,0x65,0x68,0xfc,0x13,0xc8,0x69,0xa3,0x4d,0x26, \
-0xd4,0x2e,0xb6,0x8d,0x66,0x51,0xd6,0xe5,0x18,0xba,0x58,0x63,0x1b,0x0b,0x69,0x53, \
-0x7f,0x5b,0x63,0xbd,0xf0,0x0f,0x96,0x6d,0x0e,0x44,0xd4,0x4e,0x46,0xe8,0x5d,0x8d, \
-0xbc,0x23,0x9e,0x9b,0xa6,0x9c,0x22,0x67,0x77,0x86,0x73,0x3a,0x4a,0x30,0x29,0x67, \
-0x09,0x61,0x9d,0x12,0x33,0xe6,0xde,0x1b,0xc3,0xe7,0x54,0xf0,0x35,0x0b,0x5f,0xbd, \
-0xe8,0x4b,0x35,0x70,0x5d,0x89,0xa0,0x6d,0xba,0x05,0xe2,0x4a,0x69,0x72,0x7f,0x2e, \
-0x10,0x23,0x30,0xb0,0xf6,0x6d,0xde,0x0b,0xeb,0x65,0xfa,0xfb,0xb1,0x0e,0xc4,0x81, \
-0xf7,0xa1,0xb8,0x78,0xc1,0x03,0xc6,0x6e,0x17,0xf2,0xa2,0x8b,0xf2,0x97,0x96,0xf4, \
-0xe2,0x21,0x64,0xd2,0xea,0xdb,0x1e,0x6b,0x8c,0xc4,0xbf,0xe4,0x39,0x09,0x84,0x9a, \
-0x1b,0x49,0xb5,0x31,0x2e,0x1a,0x30,0xcc,0x30,0x17,0x66,0x4c,0xb0,0x98,0x12,0x2c, \
-0x60,0xc1,0x56,0x8d,0xad,0x83,0x8a,0x15,0x92,0x28,0x44,0x4f,0x0b,0x4c,0x3b,0xf3, \
-0xa9,0xd8,0xe7,0x96,0x6e,0xc8,0xfe,0xed,0x37,0x21,0xe7,0x7e,0x04,0xf8,0xf3,0x90, \
-0x78,0x9d,0xcc,0x34,0x24,0x22,0x26,0x99,0x5d,0x36,0xbd,0x0f,0xba,0x1b,0x63,0x45, \
-0xe3,0x46,0x42,0xfb,0x8f,0x7d,0x0d,0x5b,0x48,0x83,0x86,0x4c,0x63,0x40,0x19,0x03, \
-0x71,0x1e,0xb0,0xa0,0x43,0xbd,0x90,0x9e,0xa1,0x9c,0x90,0x03,0xa8,0x92,0x1e,0xdc, \
-0x16,0x6b,0xce,0x90,0xc5,0xe0,0x08,0x88,0x38,0x0c,0x15,0x33,0xca,0xe6,0x40,0xdf, \
-0xf4,0x58,0x49,0xa9,0x06,0x4e,0xe4,0x86,0xc0,0x32,0x6e,0xda,0x87,0xec,0x42,0x07, \
-0x63,0x33,0x01,0xfc,0xbe,0xfe,0xb0,0xf0,0xc4,0x85,0x7a,0x56,0xab,0xeb,0x28,0x3d, \
-0x55,0x05,0x18,0x52,0x69,0x17,0xa6,0x42,0x68,0x0b,0x9a,0x14,0xc6,0xda,0x53,0x45, \
-0x93,0x1c,0x2c,0x00,0xc0,0x83,0x18,0x68,0xcd,0x19,0x3e,0xf8,0xf6,0x73,0xbd,0xba, \
-0xbb,0xa4,0x67,0x2a,0x4c,0xa3,0xe1,0x6d,0x4a,0x31,0x05,0x9e,0x23,0xe7,0x9d,0x74, \
-0x3e,0x37,0x4c,0x96,0x74,0xdc,0xef,0xff,0xe6,0x0b,0x81,0x9b,0xa4,0xe9,0x9a,0xd4, \
-0xa0,0x80,0xbf,0x45,0xd6,0xbd,0x25,0x4a,0x1a,0x2e,0x12,0xb9,0x74,0x48,0x86,0x9d, \
-0x96,0x0e,0xee,0xe5,0x63,0x4b,0xbd,0x86,0x8b,0x1e,0x01,0xf1,0x60,0xe6,0x93,0xeb, \
-0xdf,0xb1,0xd2,0x8a,0x54,0x0a,0x07,0x2a,0xe9,0xe6,0x6d,0x3d,0xac,0xbe,0x71,0x51, \
-0x19,0x22,0x02,0xa2,0x8b,0x15,0x60,0x8c,0x4f,0x4b,0x44,0x1a,0x25,0x19,0xdd,0x1a, \
-0x31,0x01,0x44,0x62,0x15,0xa8,0xac,0x8c,0x05,0xf6,0xfc,0x93,0x1f,0x97,0xd0,0x7e, \
-0x19,0xeb,0xb7,0xd1,0xb0,0x07,0xf5,0x01,0x28,0xd5,0x58,0x96,0x85,0x2b,0x1c,0xbe, \
-0xb7,0x45,0x42,0xe0,0xf5,0xc5,0x26,0x8c,0x10,0xbd,0xed,0x0d,0xa8,0x43,0x33,0xaa, \
-0x7c,0xe8,0x7c,0x7a,0x93,0x89,0x06,0x2c,0x86,0xe6,0x08,0x6d,0xa5,0xa4,0xfa,0x05, \
-0x0f,0xc8,0x60,0x0d,0xed,0x10,0x68,0x70,0x8b,0x93,0x85,0x71,0x8c,0xad,0x1c,0x29, \
-0xee,0xf8,0x7c,0xff,0x4d,0x5e,0x1c,0x32,0x45,0xf4,0x43,0x23,0x4c,0xb0,0xc8,0x50, \
-0x0c,0xd4,0xe8,0x50,0x20,0x3e,0x9c,0xbb,0xe7,0xa5,0x51,0x64,0x61,0x49,0xc3,0x92, \
-0x2b,0x52,0x77,0x58,0x21,0x55,0x09,0xb1,0xb4,0x26,0x8e,0xec,0x8a,0x93,0x54,0xac, \
-0x5a,0x69,0xda,0xf6,0x64,0xe4,0xf1,0xe7,0x33,0xb0,0x4b,0x2a,0x6b,0xdf,0x3e,0x28, \
-0xd0,0xee,0xd6,0x87,0xcc,0x3d,0x45,0x1b,0x37,0x10,0x7b,0x02,0x02,0x94,0xc7,0x66, \
-0x5b,0x2f,0x03,0xe1,0x68,0x4d,0xbf,0x3b,0x7b,0x29,0xe4,0xb0,0x9c,0xeb,0x71,0xa5, \
-0x4e,0x03,0xc8,0x48,0xb7,0x48,0x2a,0xc0,0xbd,0x17,0x77,0x64,0x7e,0xb2,0x1e,0x5d, \
-0x3d,0xdc,0xce,0xdd,0x74,0x5c,0x69,0xab,0x49,0x5f,0x1f,0x3c,0xdd,0x8b,0xd1,0xcf, \
-0x04,0xaf,0x16,0x56,0x93,0x68,0x1a,0x6e,0x81,0x0c,0xc7,0x08,0x86,0x5c,0x09,0x9c, \
-0xa6,0x0b,0x96,0xb5,0x30,0x1d,0xad,0x01,0xcf,0x9d,0x45,0xd8,0xd3,0x43,0xe7,0x09, \
-0xb0,0x8d,0x88,0xd0,0xb4,0xea,0x0f,0xc6,0x86,0xf1,0x7a,0x46,0x36,0xb8,0xe9,0xad, \
-0xb0,0xcc,0xfc,0xde,0x27,0x78,0xda,0x3b,0x4e,0x17,0x24,0x07,0xe0,0x34,0x0d,0x89, \
-0xea,0x70,0x03,0x18,0xaa,0x34,0xb0,0x91,0x08,0x11,0x26,0x0d,0x89,0x41,0x6d,0x6b, \
-0x67,0x8d,0x9e,0x25,0x42,0x2d,0x55,0x5c,0x65,0x0a,0xd0,0x97,0x7d,0x82,0x84,0xed, \
-0xb6,0x1d,0xe7,0x77,0x71,0xb7,0xa2,0xab,0x0f,0x28,0xf1,0xde,0x5a,0x58,0x94,0x07, \
-0x95,0x09,0xf2,0xa0,0x5c,0xd9,0x58,0x03,0x6a,0x48,0x31,0x9c,0xcd,0x09,0xe5,0xdd, \
-0x4e,0x7a,0xf8,0x26,0x7f,0x0d,0xaf,0x88,0x9b,0x74,0x39,0xdc,0x56,0x41,0x71,0x62, \
-0x03,0x63,0x40,0x50,0xd8,0xd7,0x7b,0x41,0xcd,0x6a,0xe8,0xcc,0xd9,0x85,0x27,0xdb, \
-0x4d,0xa4,0xf9,0xfa,0x83,0xf6,0xfa,0xa4,0x54,0x39,0xa2,0xb6,0xc5,0x64,0xcc,0xba, \
-0xfa,0x3d,0x31,0xde,0xcd,0x79,0x57,0x80,0xb5,0xf5,0xd3,0x0c,0xf2,0xf6,0x02,0xe9, \
-0x53,0x41,0x81,0x53,0x28,0xfd,0x62,0xdb,0x5a,0x25,0x11,0xd6,0xa1,0xcd,0x90,0x12, \
-0xf4,0x2e,0xf2,0x45,0x53,0xc0,0x77,0x0e,0x48,0x7c,0x0e,0xf9,0x00,0xc1,0xa0,0xe5, \
-0x20,0x97,0xa6,0x72,0x6b,0x23,0x27,0x8b,0x24,0xdd,0xf2,0x8c,0x11,0x90,0x01,0x4b, \
-0x24,0x41,0x85,0xbc,0x21,0xb8,0xfc,0x7d,0x3d,0xfa,0x1d,0x35,0xa7,0x65,0x82,0x82, \
-0xa3,0x05,0x63,0x04,0x49,0x10,0x54,0x8b,0x24,0x2c,0x0d,0xbd,0x3b,0x4f,0xdb,0x9f, \
-0x35,0x3e,0xd6,0xa3,0x97,0x26,0x05,0xef,0xe0,0x8c,0x39,0x52,0xeb,0x97,0x20,0xe2, \
-0x8b,0x03,0x40,0x1e,0x4b,0x0c,0x91,0xfa,0xfc,0x3e,0x5d,0x89,0x78,0x30,0xe4,0x8d, \
-0x2c,0x42,0x62,0x00,0xff,0x4c,0xac,0x38,0xaf,0x83,0x50,0xf8,0x83,0xb0,0xee,0xc1, \
-0x3b,0x7a,0x52,0x6b,0x14,0x59,0x16,0x45,0x22,0x6d,0xf7,0x7a,0xa0,0x1e,0xf1,0x60, \
-0xc4,0x18,0x28,0xfc,0x2f,0xaf,0xc8,0x31,0x32,0xcf,0x8b,0xe6,0xbd,0x56,0xd3,0x85, \
-0xbf,0x9a,0xbb,0xec,0x74,0x64,0x7b,0x9a,0xab,0x85,0xff,0xa3,0xac,0xde,0x1a,0xae, \
-0x6d,0xf9,0xd2,0xeb,0xd5,0x45,0x04,0xe8,0xd9,0x6e,0x9b,0x8d,0xc8,0xf7,0x26,0x08, \
-0x63,0x00,0xf4,0x94,0x08,0x91,0xde,0x4a,0x33,0x0d,0x6a,0x72,0x34,0xc4,0x46,0x31, \
-0x65,0xc7,0xc2,0xcd,0x59,0x53,0xd9,0xdb,0x4e,0x1d,0x0d,0xac,0xe9,0x8e,0x58,0x95, \
-0xb0,0xf9,0xa4,0x9b,0x60,0xdb,0xd3,0x88,0x86,0x6d,0x82,0x26,0x18,0x2b,0x85,0x2d, \
-0xb4,0x45,0x61,0x04,0xa7,0xec,0x4c,0xf5,0xe4,0xff,0xe7,0xc0,0xd9,0xf8,0xe5,0x0c, \
-0x2d,0x8f,0x4c,0x09,0x15,0xe2,0xe2,0xd3,0x59,0x8a,0x62,0x94,0x9b,0x9b,0xa9,0x40, \
-0xfa,0x1a,0xb1,0xd0,0x6b,0x0c,0xec,0xd8,0x64,0xa5,0xb2,0xb7,0x54,0xfc,0xaf,0x79, \
-0xbf,0x3e,0xab,0xf9,0xc3,0xea,0xcf,0x49,0xb0,0x0b,0x37,0xe3,0x50,0x31,0x40,0x2c, \
-0x05,0x3e,0xac,0x73,0x9d,0xc4,0xe6,0x1f,0x76,0xe3,0x70,0xc1,0x45,0x82,0xa3,0x14, \
-0x59,0x06,0x06,0x12,0x07,0x56,0x75,0xe7,0xd9,0x32,0xf0,0xc9,0xe0,0xca,0x84,0xf0, \
-0x61,0x93,0x19,0xa5,0x8b,0x25,0xc7,0xbf,0x37,0x22,0x0f,0x57,0x26,0x99,0x43,0x0b, \
-0xb3,0x62,0xa1,0x52,0x91,0x04,0x50,0x5d,0x65,0x94,0x45,0xd1,0xa2,0x29,0xac,0xb2, \
-0x5d,0x17,0x90,0x85,0xa0,0xb4,0x34,0x95,0x56,0x12,0x01,0xac,0xc9,0x48,0xc6,0xd2, \
-0xd4,0x15,0x5b,0xb3,0xbc,0xb5,0xf6,0xe3,0x72,0xa1,0x86,0xaf,0x0d,0x15,0x2c,0xd5, \
-0xc3,0xdc,0x18,0xaf,0x62,0x3a,0xc1,0xf7,0x0a,0x4d,0xc6,0xef,0x3b,0x92,0xd1,0x4f, \
-0x56,0xc2,0x69,0x45,0x80,0xa8,0xd0,0x36,0x0c,0x18,0x03,0x63,0xcb,0x0b,0x49,0xac, \
-0xf9,0x40,0x65,0x5a,0x32,0xaa,0x88,0xbe,0xdb,0x48,0xb2,0x23,0xef,0xaa,0x58,0x8c, \
-0x57,0x2c,0x94,0xcd,0xa1,0xb3,0x32,0xaa,0x24,0xdf,0x6c,0xca,0x3a,0xda,0xc8,0xb2, \
-0x61,0x94,0x46,0x66,0xf1,0x93,0xa7,0x43,0x86,0x06,0x1e,0x1a,0x1b,0x6d,0x33,0x89, \
-0x39,0xeb,0xf8,0xfa,0x17,0xbf,0x43,0x7c,0xb4,0xe8,0xc9,0xc1,0xa8,0xb0,0x8b,0x21, \
-0x6d,0x38,0x79,0x6b,0xbc,0x28,0x02,0xc9,0x04,0x08,0xfa,0xee,0x34,0xa7,0x79,0x0d, \
-0x51,0x99,0x9c,0xa0,0x2e,0xa2,0x67,0xea,0x42,0x3c,0xc6,0x0a,0x49,0x9c,0xfe,0x18, \
-0x84,0xca,0x10,0xe2,0x70,0x3a,0xe3,0xe4,0x44,0x67,0x63,0xf6,0x62,0x75,0x70,0x93, \
-0xb9,0x95,0x93,0x95,0x24,0x63,0xbf,0x2c,0xeb,0x05,0x27,0x04,0x50,0xa2,0x73,0x1c, \
-0x62,0x95,0x86,0x19,0x3f,0x6a,0x49,0x8c,0x67,0x13,0xcd,0xc0,0x96,0x68,0x2d,0xa4, \
-0x65,0xa6,0x31,0x03,0x9d,0x36,0xf6,0xe0,0xe9,0xc5,0x44,0xe3,0xc1,0xda,0xb0,0x70, \
-0x65,0x5b,0xf9,0x4f,0xd1,0xf5,0x0c,0x91,0x95,0xee,0x21,0x25,0x3d,0xc1,0x41,0x1a, \
-0x5f,0x36,0xbc,0xf6,0x2e,0xdc,0x4a,0x8f,0x4a,0x41,0xf4,0x66,0xbe,0x3b,0xd6,0xd7, \
-0x2c,0xc0,0x85,0x5a,0x01,0xfb,0x15,0x5d,0x58,0x71,0x42,0x96,0xda,0x42,0x6c,0x6d, \
-0x40,0x10,0x92,0x2b,0x41,0x5f,0x8b,0x35,0x13,0x56,0xb5,0x9e,0xc5,0x5d,0x7b,0xb9, \
-0xd4,0x31,0x17,0x97,0x10,0xa6,0x9b,0x70,0xc5,0xf1,0x41,0x30,0xc5,0xe0,0xcc,0x8c, \
-0xc5,0x2b,0xd6,0xd4,0xd5,0x35,0x32,0x1b,0x78,0xf9,0x63,0x3d,0xa6,0x0f,0x04,0x0a, \
-0x4f,0x4e,0x0f,0xeb,0xb0,0x46,0xcb,0x0a,0xbd,0x14,0x34,0x08,0xc4,0x44,0x8d,0x54, \
-0x4a,0x34,0x79,0x41,0xa2,0x50,0xc9,0x82,0x25,0xa6,0x93,0x53,0x11,0x43,0xa4,0x47, \
-0x2f,0x09,0xbd,0x8a,0xd7,0xce,0x5b,0x91,0xd8,0x1f,0xa5,0x15,0xc7,0xdf,0xab,0xe7, \
-0xdc,0x67,0x10,0xa7,0x35,0x5f,0xab,0xc2,0x5e,0x41,0xc8,0x21,0xa8,0x27,0x94,0xb8, \
-0xc9,0x0a,0x4f,0x07,0xe6,0x61,0xcd,0xeb,0xa4,0x92,0xf7,0x3b,0xb4,0x31,0x80,0xdd, \
-0x02,0x73,0x3c,0x3b,0xc1,0xec,0x22,0x44,0x01,0x04,0x51,0x16,0x43,0x85,0xab,0x15, \
-0x9a,0x03,0x62,0xb6,0xd0,0x44,0x54,0x63,0x22,0xd4,0x7b,0xb6,0xfb,0x52,0x69,0xe6, \
-0x68,0xaf,0xe6,0xa7,0x0c,0x52,0x8c,0xc9,0xca,0x86,0xf0,0x30,0xc5,0x82,0xc9,0xb0, \
-0xc3,0xd3,0xea,0xcf,0xde,0xb6,0x04,0x06,0xa8,0xf1,0x8a,0x05,0xb5,0x80,0x24,0xa7, \
-0x7d,0xc8,0xf1,0x18,0xb9,0xce,0x2f,0x5a,0xa5,0x42,0x14,0x5c,0xa5,0x28,0x67,0xdb, \
-0xc5,0x4b,0x68,0x10,0xf1,0x39,0xdd,0xc6,0x3b,0xd0,0xe7,0x21,0xf6,0xb3,0x54,0x9e, \
-0x7d,0xf6,0x8f,0x68,0xc9,0x41,0x11,0x35,0x2f,0xa2,0xe3,0x70,0x93,0xfc,0xbe,0x1a, \
-0x4c,0x32,0x7b,0x76,0x23,0x79,0xc8,0x6c,0xf3,0xb4,0xb1,0xc2,0x42,0x58,0x30,0xb2, \
-0x61,0x05,0x11,0xd2,0x15,0x83,0x4d,0x67,0x2d,0xd3,0xd7,0x83,0xe5,0xb7,0x7c,0xe9, \
-0xea,0xc1,0x5e,0xdf,0x5f,0x23,0x89,0xcc,0x6a,0xbc,0xa1,0xc9,0x21,0x39,0xf1,0x35, \
-0x1c,0x5a,0x24,0xd6,0x97,0x2c,0xc3,0x30,0x91,0x57,0x5c,0xe5,0x93,0xd3,0x5d,0x63, \
-0xd4,0x2d,0xe2,0x33,0x56,0x99,0x48,0x86,0x14,0x42,0xc6,0x2a,0xb6,0x5b,0x59,0x54, \
-0x65,0xa2,0x2d,0x52,0xb4,0x62,0xbb,0x29,0xc9,0x50,0x43,0xd3,0x48,0xc7,0x4e,0x61, \
-0x2e,0xe8,0xb5,0x1d,0x32,0xee,0xe5,0x2a,0xb5,0x56,0x88,0xae,0x59,0x69,0xd6,0x63, \
-0x8a,0x90,0x84,0xf0,0x59,0x3e,0xc6,0x41,0x2a,0x9a,0x24,0x89,0x52,0x19,0xa1,0x87, \
-0x17,0x93,0x94,0x4c,0xc6,0xe5,0x86,0x94,0xaa,0x82,0xdb,0x6d,0x16,0xe1,0xa8,0xc8, \
-0x0e,0x58,0x86,0x8a,0xaa,0x10,0x51,0xab,0xa7,0xcb,0xa1,0xd6,0x32,0x9d,0x2e,0x5e, \
-0x7d,0xaf,0x77,0x3c,0x6b,0x87,0xc6,0x5e,0x12,0x7f,0x86,0x38,0x9e,0xd7,0x95,0xe1, \
-0xe4,0xb5,0x44,0x2b,0x34,0x44,0x04,0x2b,0xe8,0x61,0xb7,0xa9,0xa2,0xe9,0xc2,0xa5, \
-0x14,0x03,0x10,0xc9,0xe1,0xd2,0x82,0xa3,0x03,0x83,0x0e,0x03,0x3b,0xb0,0xd3,0x62, \
-0x16,0x2e,0x99,0x31,0x3a,0x95,0x4e,0x90,0xb5,0x59,0xf5,0xb4,0x19,0xf5,0x0d,0x03, \
-0x44,0xc9,0xa7,0x49,0x5b,0xa4,0x81,0x24,0x88,0xc1,0x3f,0x3f,0xe9,0xb2,0x18,0x8a, \
-0x26,0x50,0xa3,0x20,0xe9,0x42,0xa2,0xc9,0x9c,0x14,0x98,0x65,0x6b,0x05,0xc0,0xd4, \
-0x13,0x8e,0x22,0x44,0xab,0x68,0x81,0x7d,0x04,0x8e,0x0d,0x94,0xc5,0x31,0x55,0x11, \
-0x4a,0x54,0xbe,0x26,0x55,0x55,0x88,0x8a,0x66,0xca,0xe0,0xed,0xa7,0x3f,0x7c,0x87, \
-0xa1,0xd8,0x60,0x10,0x3b,0xf7,0x67,0x88,0x26,0xd2,0x01,0xa7,0xb8,0xa7,0x31,0x9b, \
-0x4d,0xc4,0xbf,0x75,0x87,0x14,0x9c,0x00,0xc9,0x0e,0x11,0x24,0x85,0x60,0x28,0x03, \
-0x19,0x20,0x74,0x80,0xdb,0x16,0xd6,0x18,0x03,0x18,0x33,0xd0,0xd2,0x1c,0xcd,0x75, \
-0xcc,0xcc,0x9c,0x36,0xc6,0x13,0xd2,0x09,0x83,0xd2,0x6b,0xa4,0x59,0x32,0x21,0x55, \
-0x11,0x20,0x79,0x60,0x3a,0xed,0x36,0x24,0x5b,0x06,0x92,0x81,0xa4,0x50,0xbb,0x21, \
-0x1e,0x1f,0x0d,0x82,0xd1,0x47,0xa5,0x7a,0xbb,0xad,0x53,0x6b,0x46,0x03,0x37,0xbb, \
-0xcd,0x80,0x10,0x5b,0xc7,0xec,0x95,0xc1,0xa5,0x2d,0x8d,0x17,0xd7,0x41,0xad,0x63, \
-0x7f,0xae,0xef,0x61,0x7e,0xdb,0xb4,0xeb,0x60,0x36,0xbc,0xa9,0x03,0xf4,0xf9,0xde, \
-0xa8,0xcb,0x1e,0x20,0x68,0x05,0x1d,0x07,0xb5,0xd7,0x01,0x82,0x95,0x0a,0xaa,0x82, \
-0xcb,0x83,0x58,0x5b,0x2d,0x16,0x29,0x44,0x11,0xb6,0x53,0x03,0x5c,0x45,0x44,0x4b, \
-0x4a,0x28,0x28,0x16,0x94,0x1b,0x60,0xdb,0x19,0x42,0xc9,0x68,0xca,0x32,0xd2,0xdb, \
-0x21,0x46,0x35,0xa9,0x1a,0x39,0x82,0x38,0x3d,0xf9,0x0c,0x99,0x93,0x7d,0x05,0x62, \
-0x05,0x8b,0x89,0x65,0x86,0x80,0x52,0x60,0xa4,0xc4,0x18,0x18,0x49,0xad,0x87,0x19, \
-0x09,0x59,0xa6,0x03,0x48,0x73,0x4d,0x90,0x57,0x22,0xea,0xb4,0x12,0x74,0x59,0x20, \
-0x67,0x94,0x93,0xa7,0xa1,0xf2,0xea,0xa5,0x8a,0x45,0x49,0xc0,0xdd,0x59,0x40,0xda, \
-0x34,0x64,0x12,0x7f,0xd0,0x6c,0x63,0x11,0xd9,0x22,0x9a,0xed,0xf5,0x62,0x41,0x72, \
-0xc3,0xda,0xc3,0x93,0x3f,0xad,0x85,0x0f,0x08,0xc1,0xad,0xac,0x86,0x2a,0x30,0x65, \
-0x22,0xbf,0x44,0xa0,0xb9,0x95,0x69,0x09,0x76,0xac,0xf4,0x48,0x9b,0x58,0x06,0x0a, \
-0x2d,0x74,0x11,0x43,0x1d,0x32,0x2a,0x61,0x82,0x5f,0x85,0xf1,0xf1,0xdd,0x2b,0xd9, \
-0xe5,0x59,0x2c,0x43,0x61,0xce,0x44,0x96,0x61,0x89,0x0c,0xa0,0x5f,0xb1,0x81,0x48, \
-0x1c,0x43,0x59,0xf2,0x78,0xf6,0x7b,0xe7,0xf5,0xbf,0xa2,0x5a,0x59,0xdc,0x2a,0x55, \
-0x61,0x04,0x28,0x1c,0x5e,0x56,0x42,0xb5,0x81,0x54,0xbd,0x08,0x3b,0x18,0x93,0x69, \
-0x09,0x5f,0xc2,0x36,0x6c,0xeb,0x93,0xca,0x0f,0x44,0xd5,0xdb,0xf6,0x23,0x62,0x37, \
-0xa1,0xec,0x18,0x66,0xb8,0x24,0xd9,0x9f,0xdb,0xf7,0x0b,0x97,0xe9,0x6b,0x37,0xcd, \
-0x8f,0x41,0xd7,0xe2,0x36,0x37,0x4e,0xdf,0x8a,0x06,0x5d,0xf8,0xbb,0xcf,0xd4,0x21, \
-0x17,0x8a,0xe4,0x01,0xae,0x48,0xc6,0x04,0x17,0x31,0x83,0x05,0x90,0x11,0x80,0x98, \
-0x87,0xb8,0x99,0x60,0x74,0x43,0xda,0x86,0x01,0x88,0xb0,0x7b,0x1e,0xdc,0x42,0x58, \
-0xc4,0x15,0x18,0x31,0x32,0x9e,0xaf,0x92,0x1e,0xd6,0x2a,0x08,0xb0,0x59,0x05,0x81, \
-0x8d,0x67,0xa2,0x59,0xb0,0x81,0xc4,0xbc,0xa4,0x36,0xa1,0xf0,0x7e,0x37,0x6b,0x42, \
-0xf3,0xd6,0x6c,0x23,0xe9,0xea,0x51,0x9a,0x1d,0x27,0x2d,0xca,0x29,0x01,0x56,0x6f, \
-0x60,0x75,0x86,0xf9,0xbc,0x49,0x66,0xdc,0xe4,0xee,0x60,0x1c,0x8d,0x26,0x90,0x64, \
-0x38,0x3b,0x45,0x15,0x01,0x01,0x53,0x6f,0x77,0x79,0xc3,0x9f,0x16,0x1d,0x0f,0x1e, \
-0x31,0xf0,0x85,0xcd,0x9a,0x59,0x7a,0x3f,0x47,0x64,0x4d,0x34,0x40,0x75,0xb5,0x5d, \
-0xad,0x78,0x34,0x6f,0x9f,0x03,0x66,0xd4,0xd8,0x67,0x7e,0x5c,0xf6,0xca,0xe1,0x80, \
-0x61,0x6d,0x53,0x9a,0x4b,0xdf,0x42,0x8a,0x8c,0x8f,0x92,0x56,0x0a,0x20,0x8e,0x4b, \
-0x84,0x0f,0x70,0x27,0x4a,0x1c,0x66,0xd5,0x80,0x90,0x92,0x4a,0x0e,0x99,0x17,0x39, \
-0x54,0x0e,0x8b,0x72,0x44,0x30,0xd7,0xf8,0x52,0x6c,0x7f,0xb0,0xda,0x61,0xc6,0x9b, \
-0xfb,0x92,0x0f,0x30,0x2f,0x5b,0xa1,0x6c,0x03,0x51,0xcc,0x82,0x2f,0x92,0x21,0x35, \
-0x0d,0x30,0x94,0x61,0x9c,0x61,0x52,0xc9,0x15,0xe2,0xbb,0x10,0x60,0x1f,0xc1,0xa6, \
-0xcb,0x01,0x78,0x31,0x6e,0x18,0x06,0xe9,0xd2,0x22,0xfe,0x27,0x77,0x57,0x4a,0x14, \
-0xfa,0x04,0x4e,0x8e,0x06,0x2d,0xc6,0x1d,0x28,0x60,0x26,0x3b,0x98,0x58,0xd7,0x78, \
-0xda,0x49,0x8d,0x61,0xde,0x33,0x38,0x2e,0x49,0x1b,0x31,0x7d,0xf3,0x16,0x4d,0x62, \
-0x6e,0x31,0x3f,0x8d,0xe6,0xcc,0x18,0x9b,0x43,0x69,0x31,0x99,0x2a,0xfb,0xcf,0x6b, \
-0x32,0x38,0x96,0x61,0xd9,0x14,0xd4,0x41,0xf6,0xc2,0xd0,0xc2,0xed,0xab,0x14,0x7b, \
-0x98,0xfc,0x54,0x26,0x3d,0x6e,0x59,0x32,0xd9,0x09,0xb2,0xc2,0x2f,0x5c,0x11,0xdb, \
-0x7e,0x3f,0xc3,0x2e,0x2c,0xd5,0xc5,0x09,0x54,0xcd,0xec,0xfb,0x65,0x0e,0x66,0x68, \
-0xbc,0x7e,0x24,0x07,0x3d,0x61,0xfb,0x32,0xef,0x5b,0x04,0x9b,0xfc,0x37,0xa4,0x40, \
-0xb2,0x5e,0x87,0x2d,0xcc,0x88,0xc1,0x54,0x15,0x60,0x32,0x20,0x85,0xb6,0xfb,0xa9, \
-0x4e,0x1b,0x43,0xdb,0x7d,0xc8,0xd5,0x05,0xdd,0x31,0xed,0xd2,0x1e,0xb6,0x91,0xbc, \
-0xf5,0xd7,0x84,0xc4,0x7a,0xe2,0x2b,0x7b,0x14,0x15,0x06,0xe1,0x22,0x21,0x93,0x87, \
-0xd9,0x11,0x65,0xa1,0x44,0x3f,0x52,0x76,0xb6,0xb2,0x69,0x19,0x8f,0x1a,0xdf,0xa8, \
-0xec,0xc9,0xf3,0x23,0xd1,0xe5,0x8a,0xed,0x58,0x06,0x5e,0xba,0x74,0xb5,0x59,0x71, \
-0x84,0xd1,0x06,0x48,0xde,0xc3,0x26,0x1a,0x45,0x82,0x50,0x18,0x38,0x18,0x1d,0xb2, \
-0x42,0x1d,0xee,0x03,0x37,0x56,0xa1,0x18,0x0b,0xf0,0xd0,0x17,0xab,0xd3,0x1b,0x6f, \
-0x02,0xa9,0x2e,0x3b,0x70,0xe5,0xb9,0xbc,0xea,0x83,0x33,0x0c,0xe6,0x22,0x58,0xc3, \
-0x9d,0x35,0xdc,0x88,0x7e,0xef,0x03,0x19,0x0f,0xa3,0x8d,0x9c,0x48,0xfc,0x18,0x61, \
-0x93,0x1e,0xcb,0x21,0x06,0xa8,0x2e,0x61,0x9a,0x70,0x32,0xb4,0xf6,0x62,0x5d,0x71, \
-0xb2,0xfc,0x76,0xec,0x88,0xfc,0xed,0x95,0xe5,0x48,0x78,0x0c,0x24,0x43,0x19,0xf4, \
-0xeb,0xc2,0xb2,0xdd,0x14,0x98,0xfc,0xc1,0x95,0x15,0x5d,0x8a,0x47,0xeb,0x08,0x25, \
-0x52,0x0c,0x49,0x2d,0x41,0x30,0x50,0x59,0xca,0x4c,0x74,0x64,0x17,0xde,0x85,0x3d, \
-0x96,0x29,0xd9,0xca,0x81,0xdc,0x87,0xcc,0x20,0x4d,0x5a,0x93,0x08,0x6f,0x83,0x32, \
-0x71,0x9a,0xf5,0xa7,0x3f,0x7c,0xdb,0x08,0x60,0xa6,0x90,0x4d,0x1f,0x6a,0x02,0x23, \
-0x70,0xe0,0xd0,0x9b,0x9f,0x55,0x3e,0xcd,0x39,0xc3,0xa3,0x06,0x21,0x18,0xaa,0x88, \
-0x20,0xb0,0x3c,0xf7,0x20,0x1a,0xc9,0x01,0x07,0x10,0x64,0xf2,0xf2,0x54,0xf7,0xef, \
-0x84,0xf5,0x61,0xb6,0x20,0xd2,0x88,0xc9,0xd5,0xee,0x46,0xa2,0x12,0xc5,0x1b,0xb7, \
-0x58,0x34,0x99,0x48,0x0d,0x88,0x86,0x1a,0x8a,0x19,0x65,0x58,0x2c,0x52,0x1e,0x17, \
-0xe4,0x31,0x75,0x1b,0x50,0xa8,0x22,0x8c,0x1e,0xd6,0xa3,0x04,0x60,0xcd,0xa9,0x2a, \
-0xee,0xa1,0x58,0x22,0x0a,0xa1,0x50,0xbb,0x9a,0xa8,0x82,0x83,0x15,0x51,0x62,0xc4, \
-0x51,0x48,0x2a,0x20,0xaa,0xca,0xad,0x56,0x2a,0xc9,0x07,0xb6,0x24,0xa0,0xc5,0x62, \
-0x31,0x88,0x86,0x1a,0x0e,0xcc,0x96,0xe9,0x4c,0x44,0x5c,0xef,0xf9,0x7f,0xb3,0x3c, \
-0xcd,0xdb,0x3e,0x2f,0x88,0x63,0xef,0xe8,0x06,0x84,0x94,0xeb,0xc3,0xdb,0x55,0x42, \
-0xff,0x8a,0xb7,0x95,0xe8,0x91,0x4b,0xb1,0x82,0xf5,0x4e,0x38,0x17,0x5c,0xd9,0xb2, \
-0x40,0x94,0xcd,0xdb,0x84,0x47,0xb7,0x00,0x4d,0xa4,0xee,0x48,0x22,0xad,0x35,0x27, \
-0xc6,0x99,0x8a,0x20,0xa0,0x8a,0x08,0xc4,0xca,0x19,0x6a,0x60,0xc1,0x4a,0x4d,0xc6, \
-0x2e,0x05,0x11,0x6b,0x2c,0x64,0x15,0x1c,0x5a,0x08,0xb2,0xb7,0xb7,0x84,0xd1,0x9d, \
-0x04,0xbd,0xf5,0xf9,0xbf,0x87,0x9e,0x4f,0xdf,0xd4,0xeb,0xfd,0x40,0x79,0x8a,0xad, \
-0xc9,0xc7,0x79,0xf2,0x1d,0xed,0x9b,0x50,0x07,0xab,0x98,0x6e,0xde,0xf6,0x8e,0x18, \
-0xde,0x4b,0xaf,0x98,0xe3,0x21,0x70,0xbb,0x20,0xe6,0x3c,0xf2,0x93,0x7c,0xf9,0xa9, \
-0xef,0x72,0xed,0x3d,0xef,0x32,0x92,0xa5,0x10,0x13,0x7e,0x56,0x1c,0x9e,0xc4,0xdb, \
-0xd7,0xdb,0x35,0x32,0x23,0xfd,0x09,0x3d,0xdd,0x90,0x45,0x60,0x2f,0x8b,0x58,0xa8, \
-0x82,0xa8,0x22,0xaa,0x61,0x91,0x26,0xe4,0xbb,0x73,0x0c,0xbc,0x88,0xa1,0x19,0xdd, \
-0x01,0x0f,0x48,0x77,0x61,0x8b,0x04,0x44,0x31,0x2d,0x9b,0x8c,0x69,0x82,0x1b,0x8e, \
-0x40,0xb1,0x41,0x18,0xa0,0xc1,0x88,0x80,0xa4,0x82,0x2c,0x26,0x4b,0x40,0xc4,0x3b, \
-0xe6,0x9f,0x74,0x9f,0x12,0x08,0xc4,0x54,0x64,0x9b,0xe6,0x30,0x4b,0xd1,0x03,0x63, \
-0xe4,0xd3,0x12,0x1b,0xaf,0x08,0x26,0x25,0x42,0xa4,0x92,0x90,0xed,0x86,0x08,0x94, \
-0x18,0xac,0x11,0x21,0x93,0x91,0x4f,0x1e,0x9b,0xc8,0x74,0x12,0x29,0x22,0x20,0x3a, \
-0xc3,0xce,0x00,0x49,0x2d,0x6c,0x47,0x72,0xd8,0x1c,0xf4,0x6e,0x76,0x47,0x21,0x1a, \
-0x4b,0x29,0xc2,0xf5,0xb5,0x1f,0xeb,0x63,0x68,0xbc,0x55,0xac,0xc1,0xda,0x5e,0xdd, \
-0xf2,0x73,0x19,0x60,0x08,0x7e,0x4c,0x98,0xd0,0xbd,0xea,0x32,0x22,0x0b,0x1b,0x68, \
-0xc8,0x2c,0xd1,0x8a,0x1d,0x1a,0x22,0x03,0x02,0x24,0xf8,0x6a,0x13,0xcb,0x53,0x66, \
-0x2e,0xa8,0x89,0x6c,0x45,0xb0,0x14,0x06,0xda,0x96,0x89,0x45,0x28,0x23,0x6c,0x95, \
-0xad,0x22,0x3d,0xd6,0xd2,0x25,0x0b,0x28,0x36,0x2a,0x5c,0x90,0xba,0xed,0x5f,0xcc, \
-0xc0,0xa8,0x94,0xc1,0x4c,0x22,0x18,0x51,0x30,0x91,0xbe,0xf7,0x04,0xb2,0x1c,0x7c, \
-0x11,0x04,0x52,0x05,0x1d,0x19,0xa3,0xea,0xe8,0xe6,0xaf,0x0d,0x24,0x2b,0x52,0xd3, \
-0xf2,0xa5,0xa7,0xe1,0x81,0xf8,0xcf,0x07,0xab,0xbf,0xc4,0x87,0xb9,0x37,0xb2,0x65, \
-0x90,0xf8,0xba,0xe7,0x23,0x13,0x95,0x7d,0x31,0x58,0x74,0x89,0x7d,0x34,0xe8,0x99, \
-0x5f,0x15,0x4e,0x45,0x29,0xa4,0x0a,0x05,0x8b,0xfc,0xab,0x05,0x56,0x8c,0xa3,0x82, \
-0x92,0x32,0x72,0x1b,0x01,0xae,0x40,0xe0,0xf4,0xbf,0x2b,0xda,0xf5,0x52,0x4c,0x10, \
-0xb8,0x55,0x15,0xc4,0x65,0x04,0x01,0x5e,0xfe,0x9e,0xad,0x5c,0x5b,0x76,0x15,0x6c, \
-0x7e,0x59,0x0e,0x8e,0x52,0x50,0x1c,0xb5,0x18,0x41,0x11,0xc9,0x40,0xa9,0xbc,0xcb, \
-0x2d,0xc8,0x5a,0x8e,0x43,0xad,0x42,0x5e,0x03,0xd6,0xf1,0xbf,0x19,0xd7,0x6d,0x98, \
-0x46,0x15,0x88,0xc5,0xc2,0x9e,0xef,0x59,0x97,0x3d,0x04,0x31,0x6e,0x9c,0x1c,0x82, \
-0x4b,0x02,0xe6,0xe8,0x84,0x34,0xc5,0x5e,0xa0,0xdd,0x55,0x5c,0x7a,0x06,0x21,0x94, \
-0x29,0xd2,0x97,0x76,0xd4,0xd4,0x78,0xde,0x8e,0x21,0x86,0x1b,0x8c,0x31,0x8e,0xdb, \
-0xfe,0x1d,0x60,0xa2,0x23,0x16,0x70,0x34,0x0a,0x29,0xcf,0x9e,0xea,0x18,0x53,0x82, \
-0xe2,0x14,0x91,0x95,0x5c,0x02,0x8c,0x29,0x4e,0x8f,0x00,0x8d,0x73,0xa3,0x9c,0xde, \
-0x1a,0xf8,0x1b,0xff,0x7c,0x78,0xac,0x3d,0xc3,0xb5,0x67,0xbf,0x21,0xea,0xd1,0xd4, \
-0x18,0xd2,0xf3,0x67,0xb3,0xd3,0x7a,0xd5,0x6e,0x52,0xb7,0x37,0xb2,0x38,0xac,0xf5, \
-0x7e,0x04,0x31,0xb9,0x03,0xc0,0x8d,0xb2,0xa2,0x9d,0x55,0x41,0x00,0xb5,0xdb,0x8f, \
-0x3d,0x93,0x70,0xe3,0x01,0xa2,0x76,0x79,0x61,0x04,0x2c,0xe2,0x0e,0x39,0x97,0x08, \
-0x28,0x08,0x19,0x40,0x72,0x4d,0x96,0xf0,0x07,0x1e,0x8e,0xdc,0xf8,0x35,0x06,0xea, \
-0x94,0x71,0xa2,0xd1,0xba,0xc9,0xae,0xeb,0x00,0xc2,0x92,0xb9,0xf0,0x41,0x48,0x1a, \
-0x0a,0xb5,0x02,0x51,0x68,0x0a,0xb3,0xdb,0x19,0x18,0x10,0xf3,0x2a,0x98,0xd6,0x10, \
-0x39,0xda,0x56,0xad,0x75,0x5d,0x33,0x03,0x50,0xf7,0x33,0x55,0xf4,0x2a,0xe8,0x8d, \
-0x05,0x09,0x62,0xf1,0x80,0xc1,0x7a,0x66,0x4d,0x52,0x29,0x5b,0x30,0x71,0xf1,0x4e, \
-0xeb,0x1c,0x9d,0xaa,0x40,0xc1,0x6a,0x85,0x0b,0x34,0x46,0x79,0xd1,0xf5,0x1e,0x2e, \
-0x9d,0x2a,0x2e,0xd1,0xdb,0x96,0xe6,0x7b,0xc1,0x1d,0x9f,0x6c,0xf5,0x35,0xc2,0xf2, \
-0xcd,0x55,0x72,0xd2,0x46,0xc0,0xf4,0x82,0x17,0x13,0x2c,0xea,0xb1,0xca,0x12,0x36, \
-0x00,0x1f,0xae,0xe0,0x7c,0xe0,0xb7,0x0b,0xfd,0x94,0xb8,0x9b,0x0b,0x84,0xc0,0xe8, \
-0xe5,0x3f,0x7d,0xfe,0x24,0x7a,0x68,0x0c,0x19,0x82,0xa4,0xa3,0xd9,0xd7,0x7b,0x18, \
-0x91,0x8f,0x95,0x96,0x0b,0xbf,0x16,0xb3,0x6c,0xe7,0x07,0xbc,0xc5,0xf2,0xf9,0x9b, \
-0x26,0xd3,0x76,0x0d,0x01,0x89,0xec,0x4f,0x76,0x1a,0xa9,0xd9,0x61,0xac,0xa9,0x5a, \
-0x85,0x8e,0x5c,0xe3,0x67,0x4c,0x8d,0x33,0x80,0x77,0x6b,0xa2,0x6e,0x2f,0x05,0x55, \
-0xf5,0xa1,0xf2,0xa6,0xf1,0x4e,0x69,0x63,0x36,0x4f,0x9b,0xc7,0x86,0x84,0x47,0xb9, \
-0x86,0x9c,0x95,0x22,0x9d,0xd8,0x30,0x60,0xe0,0x75,0x26,0x4a,0x94,0x51,0x3c,0x53, \
-0x91,0x04,0x3b,0xfe,0x3a,0xb1,0x75,0x4d,0x55,0x98,0x5d,0x53,0x99,0x58,0x25,0xc4, \
-0x3a,0x9c,0xc3,0x0c,0x73,0x3e,0xbb,0x4e,0xf8,0x58,0x3f,0xeb,0x6b,0x43,0xa7,0x00, \
-0x82,0x58,0x8c,0x3a,0x8d,0xa4,0x89,0x4e,0x08,0xb3,0x86,0x69,0xa6,0x4d,0xcf,0x3d, \
-0x6a,0x15,0xa2,0x34,0xd3,0x5c,0x43,0xe2,0xd8,0x0e,0x27,0x2b,0x0e,0xa9,0xc5,0x9c, \
-0x67,0x60,0x23,0xf6,0x3c,0xfa,0xb7,0xda,0xda,0x0c,0xf6,0xd0,0xda,0x1a,0xd7,0x84, \
-0xf0,0xeb,0x0e,0x01,0x22,0x2f,0x5c,0xb6,0xa3,0x2a,0x70,0xb2,0x99,0x42,0xa7,0xa5, \
-0x96,0x07,0x6b,0x0f,0x14,0x23,0xa4,0x20,0x76,0xe8,0x6e,0xd3,0xd9,0x83,0xc9,0x84, \
-0xf1,0x41,0x49,0x16,0x02,0xc4,0xd8,0x24,0xdf,0xf0,0xf8,0x28,0x86,0x25,0xcd,0xa0, \
-0xc6,0xa1,0x0a,0x3a,0xe4,0x53,0x30,0x3c,0x6b,0xf3,0xea,0xb5,0xab,0x58,0x21,0x2a, \
-0x69,0xe9,0x22,0xb0,0x6e,0x9a,0x4a,0x97,0xac,0xb9,0xa4,0x5b,0x92,0xa9,0xdd,0x0f, \
-0x2d,0xd0,0xef,0x10,0x52,0x8a,0xd5,0xa5,0x5c,0x55,0xf4,0xd4,0x71,0xef,0xc6,0x44, \
-0x94,0xb1,0x09,0x72,0x19,0x22,0x47,0x5a,0x00,0xc9,0x04,0x9b,0x8a,0x1c,0x18,0x72, \
-0xc9,0xe8,0x33,0x2c,0xf2,0xc5,0x83,0x18,0x79,0x68,0x6a,0x60,0xfa,0x7a,0xdd,0x98, \
-0x4f,0x52,0x07,0x67,0x45,0x03,0x4a,0x54,0x42,0x18,0xb7,0x79,0x98,0xf7,0x22,0x89, \
-0x58,0x3b,0xb4,0xe8,0x37,0xd6,0xdf,0xba,0x00,0x59,0x7d,0x9c,0xa5,0x39,0xb3,0xf7, \
-0xbe,0x88,0x78,0x88,0xc6,0x20,0xb0,0x88,0x9e,0xff,0x23,0xf3,0xf4,0xe9,0xe8,0x9d, \
-0xdb,0x7a,0x38,0x3d,0x7e,0x4b,0x7c,0x17,0xea,0xb0,0x3b,0xae,0x80,0x94,0xed,0x28, \
-0x26,0xb1,0xeb,0x17,0x71,0x35,0x0e,0xea,0xe0,0xa2,0x08,0xd5,0xeb,0xa6,0x26,0x5c, \
-0x99,0x54,0x69,0xae,0x6d,0xc7,0x66,0x22,0xd9,0xa6,0xe1,0xb5,0xb5,0x45,0xf1,0x8b, \
-0x05,0xbd,0x7a,0x26,0x13,0x42,0x5d,0x0d,0x7d,0x01,0x36,0x05,0x7a,0x21,0x4b,0x90, \
-0x6a,0x23,0x42,0xce,0x16,0xc5,0xf5,0x6a,0x48,0x95,0x79,0x69,0x34,0x50,0x04,0x09, \
-0x10,0x0b,0x43,0x50,0xcb,0x28,0x52,0x09,0x59,0x48,0x94,0x50,0xc4,0x61,0x05,0x81, \
-0xf8,0xf4,0x64,0x63,0x09,0x8a,0x87,0x22,0x86,0xe0,0x13,0xf6,0xbb,0x8b,0xe1,0x12, \
-0x82,0x48,0xbd,0x98,0x60,0x46,0xc0,0x1c,0x50,0x2a,0x42,0xa4,0x8b,0xb1,0x42,0x40, \
-0x84,0x80,0xe8,0x2b,0x22,0x54,0x1a,0xaa,0xb9,0x97,0x95,0x48,0x43,0x20,0xc9,0x53, \
-0x28,0x64,0xc5,0xd6,0x4c,0x21,0x4a,0x4b,0xbc,0xdd,0xb8,0x65,0x0d,0x31,0xe4,0x8a, \
-0x88,0x11,0x46,0x72,0x72,0xe6,0x9e,0x5d,0x4d,0xcd,0x94,0xef,0x9d,0xb0,0xea,0x8e, \
-0x51,0xa3,0x7d,0x24,0xa7,0x27,0x8d,0x6f,0x43,0x74,0xd8,0x8d,0xcc,0x95,0xee,0x17, \
-0x6e,0xb7,0x97,0x28,0xd8,0x9d,0x61,0xd2,0xbb,0xc9,0x85,0xf7,0x67,0x6d,0x5c,0xd0, \
-0xa2,0x05,0x13,0x89,0xae,0x61,0x3b,0x2d,0x59,0x9a,0x6d,0x31,0x95,0x34,0xf2,0xfa, \
-0xa3,0x0d,0xb1,0x83,0xc3,0x72,0xf3,0x59,0x48,0x33,0x98,0x3b,0x92,0xad,0x68,0xdb, \
-0x66,0x69,0xb3,0x49,0xd9,0xe3,0x77,0x3b,0x74,0xb2,0x56,0xcc,0xc3,0xb1,0x29,0x4e, \
-0x59,0x72,0x8e,0x2e,0xb2,0x28,0x25,0xe3,0x18,0x24,0xba,0x6d,0x49,0x35,0x75,0x49, \
-0x12,0x1c,0x1b,0x01,0x01,0x63,0x29,0x11,0x68,0x90,0x2f,0x58,0x29,0x52,0xd0,0x22, \
-0xaa,0x57,0x73,0xb0,0x6e,0xe9,0x59,0x1a,0xaa,0xee,0xa4,0x62,0xbe,0x16,0xa7,0x0e, \
-0x1d,0xfb,0xf5,0x59,0x95,0x83,0x3c,0x08,0x75,0x1c,0x02,0xe1,0x10,0x70,0x0e,0x1b, \
-0xf7,0x2f,0xd7,0xaa,0x62,0x47,0x97,0xa3,0x5b,0x50,0x33,0xc3,0x64,0x03,0x30,0x47, \
-0x71,0x07,0xd6,0x44,0x91,0xb6,0x71,0x8b,0x68,0x1c,0x0d,0xfb,0x45,0x77,0x66,0xce, \
-0x9e,0x9b,0xb3,0xdd,0xdf,0x11,0xdc,0x62,0x09,0xc4,0x14,0x51,0x0d,0x15,0x08,0xee, \
-0x9c,0x59,0x38,0x40,0x0e,0x01,0x61,0xa4,0x90,0x0e,0x79,0x60,0xac,0x30,0x9c,0x12, \
-0xc1,0x91,0x54,0x52,0x84,0x90,0x7d,0x20,0x91,0x26,0xa2,0x4a,0xb7,0x2e,0xca,0xb5, \
-0x29,0x51,0x6c,0x75,0x15,0x63,0xb4,0x14,0x88,0xd1,0x53,0x45,0x51,0xa1,0xad,0xde, \
-0x87,0x38,0x5d,0x77,0xaf,0x86,0x85,0x36,0xae,0x69,0xd4,0x39,0x32,0x30,0x41,0x88, \
-0xd2,0x5d,0xf3,0x08,0x30,0x62,0xb0,0xde,0xf2,0x18,0xee,0x49,0x97,0xe8,0x30,0x36, \
-0x8a,0x46,0x2b,0x95,0x48,0x9b,0x54,0x61,0x80,0x1e,0xbc,0x51,0xc6,0x88,0x2c,0xb1, \
-0x1b,0xa4,0x24,0xc8,0x2d,0x40,0xd7,0xad,0x93,0x93,0x06,0xcb,0xc1,0x25,0x54,0x44, \
-0xc0,0x8d,0xaa,0x38,0x3b,0xf8,0xe9,0xa9,0xb2,0xee,0xad,0x0f,0x8d,0x7e,0xaf,0x5a, \
-0x69,0xae,0xff,0x44,0x86,0x87,0x8d,0x94,0x72,0x6b,0x64,0xa8,0xb3,0x3f,0xae,0xc0, \
-0xc8,0x81,0x9a,0xd2,0xef,0x08,0x61,0x00,0x86,0xf6,0x40,0xe0,0xc8,0xe9,0xb5,0x56, \
-0xe8,0x63,0x1f,0xb2,0xd0,0xd0,0x3b,0x08,0xab,0x05,0xb3,0x80,0x94,0x6d,0x8e,0x2e, \
-0xa5,0xed,0xd2,0xbc,0x01,0xe1,0xad,0x60,0xbc,0x69,0x7a,0x7c,0x3e,0xd2,0x66,0x8e, \
-0x1c,0xb0,0x30,0x88,0x4d,0x35,0xe5,0x52,0xa4,0xa0,0xfb,0x34,0x6a,0xd5,0x97,0x22, \
-0x94,0x27,0x54,0x84,0x6a,0x56,0x0b,0x58,0x74,0x47,0x2c,0x51,0xaa,0xa1,0xab,0x3c, \
-0x97,0xa9,0x41,0x1c,0x46,0x61,0x61,0x8b,0xaa,0x58,0xb8,0x58,0xaa,0x56,0x75,0xc8, \
-0x60,0x37,0x83,0xa9,0xad,0x6a,0x1b,0xb4,0xa0,0x8f,0x68,0x76,0x76,0x73,0x64,0xd1, \
-0x82,0x90,0x01,0x64,0x14,0x27,0x56,0x04,0x32,0x98,0x61,0x84,0x9b,0x64,0xe6,0x76, \
-0x0c,0xc8,0xb3,0xda,0x6e,0x37,0x21,0xbd,0x64,0xb2,0x66,0x59,0xc5,0x51,0x20,0x10, \
-0xc1,0x17,0xac,0x29,0xcc,0xbd,0xa3,0x02,0x33,0xaa,0x48,0x2b,0x6e,0xc4,0xbc,0xe0, \
-0x25,0x87,0x72,0x7b,0xc0,0xbf,0x01,0x32,0xa8,0xcd,0x80,0xc3,0xf0,0x92,0x88,0xb6, \
-0xc6,0xe6,0x46,0x3d,0x99,0xc9,0x04,0x25,0xc4,0x0d,0xdd,0x41,0x4f,0x35,0x23,0x23, \
-0x75,0x17,0xa4,0x99,0x35,0xe7,0xef,0x97,0xc3,0x87,0x9a,0xac,0xa3,0x73,0x0a,0x0a, \
-0x32,0x7c,0xde,0x3b,0x78,0xaf,0xa7,0x1d,0x76,0x14,0x87,0x63,0x40,0xda,0xec,0x86, \
-0x62,0x07,0xc7,0xc0,0xe4,0x77,0xda,0xa8,0x28,0xa5,0x6d,0xb6,0x9a,0x4d,0x99,0x3c, \
-0xb6,0xc4,0xf4,0xcd,0x00,0xd1,0x3b,0xd0,0xd9,0xf7,0x3c,0x3e,0xab,0x78,0xf0,0xfa, \
-0x67,0xf9,0xe2,0x43,0x7c,0xda,0x16,0xdd,0x07,0x20,0x3e,0x1a,0xf6,0x3d,0x17,0x6d, \
-0xb4,0xbc,0x98,0x10,0x41,0x07,0x39,0x82,0x4a,0x5f,0xce,0x4f,0xf9,0x55,0x04,0x05, \
-0xfd,0xab,0xf3,0x6a,0x12,0x78,0xf1,0x59,0x52,0xf2,0xe6,0x26,0xdd,0x9a,0x83,0xb3, \
-0xc0,0x1e,0xbd,0xdd,0x31,0xea,0x16,0x47,0x8c,0x17,0x9b,0x97,0x04,0x08,0xc5,0x33, \
-0x51,0x0c,0x39,0x44,0x23,0x8b,0x8f,0xeb,0xfd,0xeb,0x75,0xe0,0x7b,0x15,0x08,0xbe, \
-0x41,0xb4,0xfc,0xdd,0xac,0x99,0x0e,0x19,0xd2,0x1b,0x1d,0x27,0xe9,0x99,0x21,0xa9, \
-0xdb,0x0f,0xdc,0x8a,0xc0,0x69,0x8f,0xcb,0xd0,0x5f,0x27,0x3d,0xd1,0xd4,0x04,0x50, \
-0x9d,0xd0,0x2f,0xec,0x3c,0x08,0x6f,0xe6,0xca,0x8f,0xb1,0xe5,0x80,0x01,0x09,0x1f, \
-0x74,0x3c,0x31,0x8f,0x55,0x8b,0x7f,0xaa,0x82,0xdb,0xea,0xaa,0x1e,0x31,0x9e,0x7e, \
-0x28,0x1b,0xb9,0x1d,0xfb,0xc0,0xf3,0xcf,0x19,0x0c,0x23,0xe9,0x00,0x44,0x02,0xd6, \
-0x47,0x5d,0xe4,0xea,0xc3,0xc0,0x62,0x90,0xf3,0x43,0xb9,0x82,0x1c,0x0d,0x31,0x25, \
-0xda,0x6f,0xf1,0x3f,0xb7,0xdd,0x59,0xaf,0xa1,0xac,0xf7,0xb1,0x06,0x41,0x51,0x16, \
-0x03,0x16,0x08,0x91,0x56,0x4b,0xf8,0xd9,0xb8,0x33,0x52,0x21,0xe2,0x85,0x45,0x22, \
-0xa4,0x58,0x60,0xbf,0x29,0xd0,0xd5,0x0b,0xd1,0xa5,0x8c,0x7a,0xb4,0x2a,0xab,0x5a, \
-0x89,0x48,0x8f,0x7a,0x68,0x4c,0x18,0x9b,0x55,0xd9,0x7f,0x9e,0x29,0xb4,0x91,0xd8, \
-0xc3,0x2f,0xaf,0xea,0x95,0xa6,0xc1,0xb1,0x5e,0x8f,0x45,0x4b,0xf2,0x80,0xd9,0x5e, \
-0x73,0xc5,0x9a,0xb4,0x6c,0x54,0x0c,0x8e,0xa4,0x3f,0x44,0x60,0x7a,0x27,0x53,0xfd, \
-0x5c,0x7a,0xb8,0xec,0xe1,0x78,0x09,0x84,0x54,0x5c,0x38,0x5e,0x09,0x91,0xe3,0x34, \
-0xd1,0x30,0x99,0x98,0x47,0x49,0x29,0x23,0x12,0x74,0xd0,0x86,0x01,0x1e,0x93,0x88, \
-0x53,0x61,0x23,0x0b,0x34,0x46,0x13,0xc0,0xdc,0xa2,0xcd,0x03,0xed,0xd0,0x2c,0x26, \
-0xe6,0x02,0x82,0x86,0x4c,0x37,0x58,0x60,0xb0,0xfb,0x7b,0xfc,0x78,0x67,0x81,0xf9, \
-0xb2,0xec,0x86,0x80,0xeb,0x89,0x9d,0x3a,0x64,0x64,0x9f,0x9c,0xc0,0x98,0x8e,0xd6, \
-0x91,0x46,0x03,0x7b,0x5a,0x4a,0x97,0x1d,0x53,0xaf,0x7d,0x79,0x7b,0x22,0xff,0x2d, \
-0x68,0xbf,0x2d,0x4a,0x1f,0xe1,0xc6,0x2a,0x96,0xa3,0x86,0xb7,0x4a,0xce,0xa0,0x6b, \
-0xa0,0x6f,0xba,0x27,0x3b,0x27,0xde,0x90,0x50,0x34,0x6a,0x68,0x74,0xe0,0x18,0x87, \
-0x6a,0x10,0x1d,0xc1,0xa4,0x0b,0x8f,0x8a,0xfb,0xf5,0x03,0x57,0x2a,0x24,0xdd,0xe9, \
-0x40,0x36,0x3f,0xbb,0x28,0x94,0x76,0xe0,0x2f,0x8d,0x3a,0xac,0xb9,0x30,0x20,0x4e, \
-0xe8,0x85,0x89,0x15,0x44,0x89,0x35,0x30,0x7c,0xa5,0x70,0xa7,0x38,0x88,0x78,0xc1, \
-0x7e,0x53,0x21,0x79,0x39,0x99,0xbb,0x4a,0x2a,0xe6,0x2c,0x13,0xf3,0x60,0xe5,0x99, \
-0x96,0x1b,0xe7,0x8d,0xac,0x86,0x19,0x16,0x1d,0xc3,0x2e,0x9e,0x1c,0x72,0x13,0x24, \
-0x7e,0x9e,0x79,0x9c,0xf5,0x99,0xca,0xf6,0xa4,0x8f,0x63,0xef,0xf2,0x5f,0x95,0xd6, \
-0x90,0xcd,0xa7,0x7d,0x9d,0x49,0x6f,0x19,0x65,0xa6,0x87,0x69,0xc4,0xcf,0xb3,0x67, \
-0xc9,0x87,0x34,0xdf,0xc7,0x1e,0x34,0xa9,0xd8,0xc6,0x91,0x2f,0x1e,0x26,0xb3,0xc9, \
-0x93,0x9e,0xee,0xdd,0x6f,0x54,0x45,0x32,0xda,0x3e,0x1a,0x7d,0x46,0x63,0x86,0x5b, \
-0xb5,0xca,0x79,0x77,0x92,0x89,0x50,0x72,0xe2,0x05,0x56,0x0e,0xd8,0x9a,0x70,0xdc, \
-0x2c,0x5d,0xd6,0xe7,0x7d,0x3b,0x66,0xe9,0x92,0x93,0x1e,0xee,0x8e,0x3c,0x99,0xa8, \
-0xf7,0x7a,0xdd,0x61,0x30,0x84,0x5a,0x77,0xfd,0xc8,0x78,0xab,0xe9,0x23,0x69,0x23, \
-0x7d,0xf5,0x3d,0x0c,0xca,0x80,0xbe,0xc3,0xa3,0x2c,0xf6,0xe1,0xdd,0x81,0x40,0x4b, \
-0x63,0x42,0xa8,0x7e,0x38,0x8b,0xc5,0xa2,0xfc,0x18,0x9d,0xbd,0x23,0x11,0xf1,0x62, \
-0x16,0xc0,0x11,0xb8,0x55,0x0f,0x55,0x39,0x3e,0x4b,0x94,0x46,0x8e,0xf8,0xed,0x54, \
-0x68,0x45,0xed,0x36,0x18,0x6b,0x20,0x5f,0x1c,0x8f,0xd3,0xab,0x65,0x8e,0xac,0x30, \
-0x79,0xd9,0x93,0x87,0xd3,0x20,0x26,0xc0,0xff,0x2d,0xd8,0xe2,0xef,0x76,0x71,0x5f, \
-0xcd,0xf3,0x9a,0xbe,0x5d,0x7b,0xf8,0xca,0x4f,0x47,0x49,0xd4,0xf4,0xea,0x13,0x1f, \
-0xaa,0x3d,0x94,0x55,0x8e,0x7e,0xae,0xe5,0xf4,0xc5,0x80,0x7d,0xdb,0x53,0x51,0x60, \
-0xd0,0x8d,0xdf,0x1a,0x73,0xaf,0x79,0x7f,0xe1,0x77,0x24,0x53,0x85,0x09,0x07,0xa8, \
-0x24,0xe6,0x30, \
-
diff --git a/include-minimal/NUM_APPLETS.h b/include-minimal/NUM_APPLETS.h
deleted file mode 100644
index c52697c..0000000
--- a/include-minimal/NUM_APPLETS.h
+++ /dev/null
@@ -1 +0,0 @@
-#define NUM_APPLETS 169
diff --git a/include-minimal/applet_tables.h b/include-minimal/applet_tables.h
deleted file mode 100644
index 2e9b5e7..0000000
--- a/include-minimal/applet_tables.h
+++ /dev/null
@@ -1,524 +0,0 @@
-/* This is a generated file, don't edit */
-
-#define NUM_APPLETS 169
-
-const char applet_names[] ALIGN1 = ""
-"[" "\0"
-"[[" "\0"
-"ash" "\0"
-"awk" "\0"
-"base64" "\0"
-"basename" "\0"
-"bbconfig" "\0"
-"blkid" "\0"
-"blockdev" "\0"
-"bunzip2" "\0"
-"bzcat" "\0"
-"bzip2" "\0"
-"cal" "\0"
-"cat" "\0"
-"catv" "\0"
-"chattr" "\0"
-"chgrp" "\0"
-"chmod" "\0"
-"chown" "\0"
-"chroot" "\0"
-"clear" "\0"
-"cmp" "\0"
-"cp" "\0"
-"cpio" "\0"
-"cut" "\0"
-"date" "\0"
-"dc" "\0"
-"dd" "\0"
-"depmod" "\0"
-"devmem" "\0"
-"df" "\0"
-"diff" "\0"
-"dirname" "\0"
-"dmesg" "\0"
-"dos2unix" "\0"
-"du" "\0"
-"echo" "\0"
-"egrep" "\0"
-"env" "\0"
-"expand" "\0"
-"expr" "\0"
-"false" "\0"
-"fdisk" "\0"
-"fgrep" "\0"
-"find" "\0"
-"fold" "\0"
-"free" "\0"
-"freeramdisk" "\0"
-"fstrim" "\0"
-"fuser" "\0"
-"getopt" "\0"
-"grep" "\0"
-"groups" "\0"
-"gunzip" "\0"
-"gzip" "\0"
-"head" "\0"
-"hexdump" "\0"
-"id" "\0"
-"insmod" "\0"
-"install" "\0"
-"kill" "\0"
-"killall" "\0"
-"killall5" "\0"
-"less" "\0"
-"ln" "\0"
-"losetup" "\0"
-"ls" "\0"
-"lsattr" "\0"
-"lsmod" "\0"
-"lsof" "\0"
-"lspci" "\0"
-"lsusb" "\0"
-"lzcat" "\0"
-"lzop" "\0"
-"lzopcat" "\0"
-"makedevs" "\0"
-"md5sum" "\0"
-"mkdir" "\0"
-"mkdosfs" "\0"
-"mke2fs" "\0"
-"mkfifo" "\0"
-"mkfs.ext2" "\0"
-"mkfs.vfat" "\0"
-"mknod" "\0"
-"mkswap" "\0"
-"mktemp" "\0"
-"modinfo" "\0"
-"modprobe" "\0"
-"more" "\0"
-"mount" "\0"
-"mountpoint" "\0"
-"mv" "\0"
-"nanddump" "\0"
-"nandwrite" "\0"
-"nice" "\0"
-"nohup" "\0"
-"od" "\0"
-"patch" "\0"
-"pgrep" "\0"
-"pidof" "\0"
-"pkill" "\0"
-"printenv" "\0"
-"printf" "\0"
-"ps" "\0"
-"pstree" "\0"
-"pwd" "\0"
-"rdev" "\0"
-"readlink" "\0"
-"realpath" "\0"
-"renice" "\0"
-"reset" "\0"
-"resize" "\0"
-"rev" "\0"
-"rm" "\0"
-"rmdir" "\0"
-"rmmod" "\0"
-"run-parts" "\0"
-"sed" "\0"
-"seq" "\0"
-"setconsole" "\0"
-"setserial" "\0"
-"setsid" "\0"
-"sh" "\0"
-"sha1sum" "\0"
-"sha256sum" "\0"
-"sha512sum" "\0"
-"sleep" "\0"
-"sort" "\0"
-"split" "\0"
-"stat" "\0"
-"strings" "\0"
-"stty" "\0"
-"swapoff" "\0"
-"swapon" "\0"
-"sync" "\0"
-"sysctl" "\0"
-"tac" "\0"
-"tail" "\0"
-"tar" "\0"
-"tee" "\0"
-"test" "\0"
-"time" "\0"
-"top" "\0"
-"touch" "\0"
-"tr" "\0"
-"true" "\0"
-"ttysize" "\0"
-"tune2fs" "\0"
-"umount" "\0"
-"uname" "\0"
-"unexpand" "\0"
-"uniq" "\0"
-"unix2dos" "\0"
-"unlzma" "\0"
-"unlzop" "\0"
-"unxz" "\0"
-"unzip" "\0"
-"uptime" "\0"
-"usleep" "\0"
-"uudecode" "\0"
-"uuencode" "\0"
-"watch" "\0"
-"wc" "\0"
-"which" "\0"
-"whoami" "\0"
-"xargs" "\0"
-"xzcat" "\0"
-"yes" "\0"
-"zcat" "\0"
-;
-
-#ifndef SKIP_applet_main
-int (*const applet_main[])(int argc, char **argv) = {
-test_main,
-test_main,
-ash_main,
-awk_main,
-base64_main,
-basename_main,
-bbconfig_main,
-blkid_main,
-blockdev_main,
-bunzip2_main,
-bunzip2_main,
-bzip2_main,
-cal_main,
-cat_main,
-catv_main,
-chattr_main,
-chgrp_main,
-chmod_main,
-chown_main,
-chroot_main,
-clear_main,
-cmp_main,
-cp_main,
-cpio_main,
-cut_main,
-date_main,
-dc_main,
-dd_main,
-modprobe_main,
-devmem_main,
-df_main,
-diff_main,
-dirname_main,
-dmesg_main,
-dos2unix_main,
-du_main,
-echo_main,
-grep_main,
-env_main,
-expand_main,
-expr_main,
-false_main,
-fdisk_main,
-grep_main,
-find_main,
-fold_main,
-free_main,
-freeramdisk_main,
-fstrim_main,
-fuser_main,
-getopt_main,
-grep_main,
-id_main,
-gunzip_main,
-gzip_main,
-head_main,
-hexdump_main,
-id_main,
-modprobe_main,
-install_main,
-kill_main,
-kill_main,
-kill_main,
-less_main,
-ln_main,
-losetup_main,
-ls_main,
-lsattr_main,
-modprobe_main,
-lsof_main,
-lspci_main,
-lsusb_main,
-unlzma_main,
-lzop_main,
-lzop_main,
-makedevs_main,
-md5_sha1_sum_main,
-mkdir_main,
-mkfs_vfat_main,
-mkfs_ext2_main,
-mkfifo_main,
-mkfs_ext2_main,
-mkfs_vfat_main,
-mknod_main,
-mkswap_main,
-mktemp_main,
-modinfo_main,
-modprobe_main,
-more_main,
-mount_main,
-mountpoint_main,
-mv_main,
-nandwrite_main,
-nandwrite_main,
-nice_main,
-nohup_main,
-od_main,
-patch_main,
-pgrep_main,
-pidof_main,
-pgrep_main,
-printenv_main,
-printf_main,
-ps_main,
-pstree_main,
-pwd_main,
-rdev_main,
-readlink_main,
-realpath_main,
-renice_main,
-reset_main,
-resize_main,
-rev_main,
-rm_main,
-rmdir_main,
-modprobe_main,
-run_parts_main,
-sed_main,
-seq_main,
-setconsole_main,
-setserial_main,
-setsid_main,
-ash_main,
-md5_sha1_sum_main,
-md5_sha1_sum_main,
-md5_sha1_sum_main,
-sleep_main,
-sort_main,
-split_main,
-stat_main,
-strings_main,
-stty_main,
-swap_on_off_main,
-swap_on_off_main,
-sync_main,
-sysctl_main,
-tac_main,
-tail_main,
-tar_main,
-tee_main,
-test_main,
-time_main,
-top_main,
-touch_main,
-tr_main,
-true_main,
-ttysize_main,
-tune2fs_main,
-umount_main,
-uname_main,
-expand_main,
-uniq_main,
-dos2unix_main,
-unlzma_main,
-lzop_main,
-unxz_main,
-unzip_main,
-uptime_main,
-usleep_main,
-uudecode_main,
-uuencode_main,
-watch_main,
-wc_main,
-which_main,
-whoami_main,
-xargs_main,
-unxz_main,
-yes_main,
-gunzip_main,
-};
-#endif
-
-const uint16_t applet_nameofs[] ALIGN2 = {
-0x0000,
-0x0002,
-0x0005,
-0x0009,
-0x000d,
-0x0014,
-0x001d,
-0x0026,
-0x002c,
-0x0035,
-0x003d,
-0x0043,
-0x0049,
-0x004d,
-0x0051,
-0x0056,
-0x005d,
-0x0063,
-0x0069,
-0x006f,
-0x0076,
-0x007c,
-0x0080,
-0x0083,
-0x0088,
-0x008c,
-0x0091,
-0x0094,
-0x0097,
-0x009e,
-0x00a5,
-0x00a8,
-0x00ad,
-0x00b5,
-0x00bb,
-0x00c4,
-0x00c7,
-0x00cc,
-0x00d2,
-0x00d6,
-0x00dd,
-0x00e2,
-0x00e8,
-0x00ee,
-0x00f4,
-0x00f9,
-0x00fe,
-0x0103,
-0x010f,
-0x0116,
-0x011c,
-0x0123,
-0x0128,
-0x012f,
-0x0136,
-0x013b,
-0x0140,
-0x0148,
-0x014b,
-0x0152,
-0x015a,
-0x015f,
-0x0167,
-0x0170,
-0x0175,
-0x0178,
-0x0180,
-0x0183,
-0x018a,
-0x0190,
-0x0195,
-0x019b,
-0x01a1,
-0x01a7,
-0x01ac,
-0x01b4,
-0x01bd,
-0x01c4,
-0x01ca,
-0x01d2,
-0x01d9,
-0x01e0,
-0x01ea,
-0x01f4,
-0x01fa,
-0x0201,
-0x0208,
-0x0210,
-0x0219,
-0x021e,
-0x0224,
-0x022f,
-0x0232,
-0x023b,
-0x0245,
-0x024a,
-0x0250,
-0x0253,
-0x0259,
-0x025f,
-0x0265,
-0x026b,
-0x0274,
-0x027b,
-0x027e,
-0x0285,
-0x0289,
-0x028e,
-0x0297,
-0x02a0,
-0x02a7,
-0x02ad,
-0x02b4,
-0x02b8,
-0x02bb,
-0x02c1,
-0x02c7,
-0x02d1,
-0x02d5,
-0x02d9,
-0x02e4,
-0x02ee,
-0x02f5,
-0x02f8,
-0x0300,
-0x030a,
-0x0314,
-0x031a,
-0x031f,
-0x0325,
-0x032a,
-0x0332,
-0x0337,
-0x033f,
-0x0346,
-0x034b,
-0x0352,
-0x0356,
-0x035b,
-0x035f,
-0x0363,
-0x0368,
-0x036d,
-0x0371,
-0x0377,
-0x037a,
-0x037f,
-0x0387,
-0x038f,
-0x0396,
-0x039c,
-0x03a5,
-0x03aa,
-0x03b3,
-0x03ba,
-0x03c1,
-0x03c6,
-0x03cc,
-0x03d3,
-0x03da,
-0x03e3,
-0x03ec,
-0x03f2,
-0x03f5,
-0x03fb,
-0x0402,
-0x0408,
-0x040e,
-0x0412,
-};
-
-
-#define MAX_APPLET_NAME_LEN 11
diff --git a/include-minimal/applets.h b/include-minimal/applets.h
deleted file mode 100644
index 65a5017..0000000
--- a/include-minimal/applets.h
+++ /dev/null
@@ -1,498 +0,0 @@
-/* DO NOT EDIT. This file is generated from applets.src.h */
-/* vi: set sw=4 ts=4: */
-/*
- * applets.h - a listing of all busybox applets.
- *
- * If you write a new applet, you need to add an entry to this list to make
- * busybox aware of it.
- */
-
-/*
-name  - applet name as it is typed on command line
-name2 - applet name, converted to C (ether-wake: name2 = ether_wake)
-main  - corresponding <applet>_main to call (bzcat: main = bunzip2)
-l     - location to install link to: [/usr]/[s]bin
-s     - suid type:
-        BB_SUID_REQUIRE: will complain if busybox isn't suid
-        and is run by non-root (applet_main() will not be called at all)
-        BB_SUID_DROP: will drop suid prior to applet_main()
-        BB_SUID_MAYBE: neither of the above
-        (every instance of BB_SUID_REQUIRE and BB_SUID_MAYBE
-        needs to be justified in comment)
-        NB: please update FEATURE_SUID help text whenever you add/remove
-        BB_SUID_REQUIRE or BB_SUID_MAYBE applet.
-*/
-
-#if defined(PROTOTYPES)
-# define APPLET(name,l,s)                    int name##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-# define APPLET_ODDNAME(name,main,l,s,name2) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-# define APPLET_NOEXEC(name,main,l,s,name2)  int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-# define APPLET_NOFORK(name,main,l,s,name2)  int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-
-#elif defined(NAME_MAIN_CNAME)
-# define APPLET(name,l,s)                    name name##_main name
-# define APPLET_ODDNAME(name,main,l,s,name2) name main##_main name2
-# define APPLET_NOEXEC(name,main,l,s,name2)  name main##_main name2
-# define APPLET_NOFORK(name,main,l,s,name2)  name main##_main name2
-
-#elif defined(MAKE_USAGE) && ENABLE_FEATURE_VERBOSE_USAGE
-# define APPLET(name,l,s)                    MAKE_USAGE(#name, name##_trivial_usage name##_full_usage)
-# define APPLET_ODDNAME(name,main,l,s,name2) MAKE_USAGE(#name, name2##_trivial_usage name2##_full_usage)
-# define APPLET_NOEXEC(name,main,l,s,name2)  MAKE_USAGE(#name, name2##_trivial_usage name2##_full_usage)
-# define APPLET_NOFORK(name,main,l,s,name2)  MAKE_USAGE(#name, name2##_trivial_usage name2##_full_usage)
-
-#elif defined(MAKE_USAGE) && !ENABLE_FEATURE_VERBOSE_USAGE
-# define APPLET(name,l,s)                    MAKE_USAGE(#name, name##_trivial_usage)
-# define APPLET_ODDNAME(name,main,l,s,name2) MAKE_USAGE(#name, name2##_trivial_usage)
-# define APPLET_NOEXEC(name,main,l,s,name2)  MAKE_USAGE(#name, name2##_trivial_usage)
-# define APPLET_NOFORK(name,main,l,s,name2)  MAKE_USAGE(#name, name2##_trivial_usage)
-
-#elif defined(MAKE_LINKS)
-# define APPLET(name,l,c)                    LINK l name
-# define APPLET_ODDNAME(name,main,l,s,name2) LINK l name
-# define APPLET_NOEXEC(name,main,l,s,name2)  LINK l name
-# define APPLET_NOFORK(name,main,l,s,name2)  LINK l name
-
-#else
-  static struct bb_applet applets[] = { /*    name, main, location, need_suid */
-# define APPLET(name,l,s)                    { #name, #name, l, s },
-# define APPLET_ODDNAME(name,main,l,s,name2) { #name, #main, l, s },
-# define APPLET_NOEXEC(name,main,l,s,name2)  { #name, #main, l, s, 1 },
-# define APPLET_NOFORK(name,main,l,s,name2)  { #name, #main, l, s, 1, 1 },
-#endif
-
-#if ENABLE_INSTALL_NO_USR
-# define BB_DIR_USR_BIN BB_DIR_BIN
-# define BB_DIR_USR_SBIN BB_DIR_SBIN
-#endif
-
-
-IF_BUNZIP2(APPLET(bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_BUNZIP2(APPLET_ODDNAME(bzcat, bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP, bzcat))
-IF_DATE(APPLET(date, BB_DIR_BIN, BB_SUID_DROP))
-IF_HOSTID(APPLET_NOFORK(hostid, hostid, BB_DIR_USR_BIN, BB_SUID_DROP, hostid))
-IF_GROUPS(APPLET_NOEXEC(groups, id, BB_DIR_USR_BIN, BB_SUID_DROP, groups))
-IF_ID(    APPLET_NOEXEC(id,     id, BB_DIR_USR_BIN, BB_SUID_DROP, id    ))
-IF_TOUCH(APPLET_NOFORK(touch, touch, BB_DIR_BIN, BB_SUID_DROP, touch))
-IF_BASE64(APPLET(base64, BB_DIR_BIN, BB_SUID_DROP))
-IF_USERS(APPLET_ODDNAME(users, who, BB_DIR_USR_BIN, BB_SUID_DROP, users))
-IF_WHO(  APPLET(  who, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PATCH(APPLET(patch, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_VI(APPLET(vi, BB_DIR_BIN, BB_SUID_DROP))
-IF_FIND(APPLET_NOEXEC(find, find, BB_DIR_USR_BIN, BB_SUID_DROP, find))
-IF_GREP(APPLET(grep, BB_DIR_BIN, BB_SUID_DROP))
-IF_FEATURE_GREP_EGREP_ALIAS(APPLET_ODDNAME(egrep, grep, BB_DIR_BIN, BB_SUID_DROP, egrep))
-IF_FEATURE_GREP_FGREP_ALIAS(APPLET_ODDNAME(fgrep, grep, BB_DIR_BIN, BB_SUID_DROP, fgrep))
-IF_XARGS(APPLET_NOEXEC(xargs, xargs, BB_DIR_USR_BIN, BB_SUID_DROP, xargs))
-IF_BOOTCHARTD(APPLET(bootchartd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_HALT(APPLET(halt, BB_DIR_SBIN, BB_SUID_DROP))
-IF_HALT(APPLET_ODDNAME(poweroff, halt, BB_DIR_SBIN, BB_SUID_DROP, poweroff))
-IF_HALT(APPLET_ODDNAME(reboot, halt, BB_DIR_SBIN, BB_SUID_DROP, reboot))
-IF_INIT(APPLET(init, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FEATURE_INITRD(APPLET_ODDNAME(linuxrc, init, BB_DIR_ROOT, BB_SUID_DROP, linuxrc))
-IF_MESG(APPLET(mesg, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_ADD_SHELL(   APPLET_ODDNAME(add-shell   , add_remove_shell, BB_DIR_USR_SBIN, BB_SUID_DROP, add_shell   ))
-IF_REMOVE_SHELL(APPLET_ODDNAME(remove-shell, add_remove_shell, BB_DIR_USR_SBIN, BB_SUID_DROP, remove_shell))
-IF_CONSPY(APPLET(conspy, BB_DIR_BIN, BB_SUID_DROP))
-IF_NANDWRITE(APPLET(nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_NANDWRITE(APPLET_ODDNAME(nanddump, nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP, nanddump))
-IF_SETSERIAL(APPLET(setserial, BB_DIR_BIN, BB_SUID_DROP))
-IF_UBIATTACH(APPLET_ODDNAME(ubiattach, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubiattach))
-IF_UBIDETACH(APPLET_ODDNAME(ubidetach, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubidetach))
-IF_UBIMKVOL(APPLET_ODDNAME(ubimkvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubimkvol))
-IF_UBIRMVOL(APPLET_ODDNAME(ubirmvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubirmvol))
-IF_UBIRSVOL(APPLET_ODDNAME(ubirsvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubirsvol))
-IF_UBIUPDATEVOL(APPLET_ODDNAME(ubiupdatevol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubiupdatevol))
-IF_DEPMOD(APPLET(depmod, BB_DIR_SBIN, BB_SUID_DROP))
-IF_INSMOD(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LSMOD(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MODINFO(APPLET(modinfo, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MODPROBE(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MODPROBE_SMALL(APPLET_ODDNAME(depmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe))
-IF_MODPROBE_SMALL(APPLET_ODDNAME(insmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe))
-IF_MODPROBE_SMALL(APPLET_ODDNAME(lsmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe))
-IF_MODPROBE_SMALL(APPLET_ODDNAME(rmmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe))
-IF_RMMOD(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP))
-IF_NBDCLIENT(APPLET_ODDNAME(nbd-client, nbdclient, BB_DIR_USR_SBIN, BB_SUID_DROP, nbdclient))
-IF_PING(APPLET(ping, BB_DIR_BIN, BB_SUID_MAYBE))
-IF_PING6(APPLET(ping6, BB_DIR_BIN, BB_SUID_MAYBE))
-IF_WHOIS(APPLET(whois, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IOSTAT(APPLET(iostat, BB_DIR_BIN, BB_SUID_DROP))
-IF_LSOF(APPLET(lsof, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_MPSTAT(APPLET(mpstat, BB_DIR_BIN, BB_SUID_DROP))
-IF_NMETER(APPLET(nmeter, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PMAP(APPLET(pmap, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_POWERTOP(APPLET(powertop, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_PSTREE(APPLET(pstree, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PWDX(APPLET(pwdx, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SMEMCAP(APPLET(smemcap, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP))
-IF_FEATURE_SH_IS_ASH(APPLET_ODDNAME(sh, ash, BB_DIR_BIN, BB_SUID_DROP, sh))
-IF_FEATURE_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, BB_DIR_BIN, BB_SUID_DROP, bash))
-IF_CTTYHACK(APPLET(cttyhack, BB_DIR_BIN, BB_SUID_DROP))
-IF_HUSH(APPLET(hush, BB_DIR_BIN, BB_SUID_DROP))
-IF_MSH(APPLET(msh, BB_DIR_BIN, BB_SUID_DROP))
-IF_FEATURE_SH_IS_HUSH(APPLET_ODDNAME(sh, hush, BB_DIR_BIN, BB_SUID_DROP, sh))
-IF_FEATURE_BASH_IS_HUSH(APPLET_ODDNAME(bash, hush, BB_DIR_BIN, BB_SUID_DROP, bash))
-IF_BLOCKDEV(APPLET(blockdev, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MDEV(APPLET(mdev, BB_DIR_SBIN, BB_SUID_DROP))
-IF_REV(APPLET(rev, BB_DIR_BIN, BB_SUID_DROP))
-IF_UDHCPC6(APPLET(udhcpc6, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TEST(APPLET_NOFORK([,  test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-IF_TEST(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP))
-IF_ADDGROUP(APPLET(addgroup, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_ADDUSER(APPLET(adduser, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_ADJTIMEX(APPLET(adjtimex, BB_DIR_SBIN, BB_SUID_DROP))
-IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
-IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_AWK(APPLET_NOEXEC(awk, awk, BB_DIR_USR_BIN, BB_SUID_DROP, awk))
-IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename))
-IF_BBCONFIG(APPLET(bbconfig, BB_DIR_BIN, BB_SUID_DROP))
-IF_BEEP(APPLET(beep, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP))
-IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
-IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP))
-IF_CHAT(APPLET(chat, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_CHATTR(APPLET(chattr, BB_DIR_BIN, BB_SUID_DROP))
-IF_CHCON(APPLET(chcon, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CHGRP(APPLET_NOEXEC(chgrp, chgrp, BB_DIR_BIN, BB_SUID_DROP, chgrp))
-IF_CHMOD(APPLET_NOEXEC(chmod, chmod, BB_DIR_BIN, BB_SUID_DROP, chmod))
-IF_CHOWN(APPLET_NOEXEC(chown, chown, BB_DIR_BIN, BB_SUID_DROP, chown))
-IF_CHPASSWD(APPLET(chpasswd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_CHPST(APPLET(chpst, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CHROOT(APPLET(chroot, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_CHRT(APPLET(chrt, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CHVT(APPLET(chvt, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CKSUM(APPLET_NOEXEC(cksum, cksum, BB_DIR_USR_BIN, BB_SUID_DROP, cksum))
-IF_CLEAR(APPLET(clear, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CMP(APPLET(cmp, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_COMM(APPLET(comm, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CP(APPLET_NOEXEC(cp, cp, BB_DIR_BIN, BB_SUID_DROP, cp))
-IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP))
-IF_CROND(APPLET(crond, BB_DIR_USR_SBIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change /var/spool/cron* files: */
-IF_CRONTAB(APPLET(crontab, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
-IF_CRYPTPW(APPLET(cryptpw, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CUT(APPLET_NOEXEC(cut, cut, BB_DIR_USR_BIN, BB_SUID_DROP, cut))
-IF_DC(APPLET(dc, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DD(APPLET_NOEXEC(dd, dd, BB_DIR_BIN, BB_SUID_DROP, dd))
-IF_DEALLOCVT(APPLET(deallocvt, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DELGROUP(APPLET_ODDNAME(delgroup, deluser, BB_DIR_USR_SBIN, BB_SUID_DROP, delgroup))
-IF_DELUSER(APPLET(deluser, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_DEVFSD(APPLET(devfsd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_DEVMEM(APPLET(devmem, BB_DIR_SBIN, BB_SUID_DROP))
-IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP))
-IF_DHCPRELAY(APPLET(dhcprelay, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_DIFF(APPLET(diff, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname))
-IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP))
-IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_HOSTNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname))
-IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix))
-IF_DPKG(APPLET(dpkg, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DPKG_DEB(APPLET_ODDNAME(dpkg-deb, dpkg_deb, BB_DIR_USR_BIN, BB_SUID_DROP, dpkg_deb))
-IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP))
-IF_DUMPLEASES(APPLET(dumpleases, BB_DIR_USR_BIN, BB_SUID_DROP))
-//IF_E2FSCK(APPLET(e2fsck, BB_DIR_SBIN, BB_SUID_DROP))
-//IF_E2LABEL(APPLET_ODDNAME(e2label, tune2fs, BB_DIR_SBIN, BB_SUID_DROP, e2label))
-IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo))
-IF_ED(APPLET(ed, BB_DIR_BIN, BB_SUID_DROP))
-IF_EJECT(APPLET(eject, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env))
-IF_ENVDIR(APPLET_ODDNAME(envdir, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, envdir))
-IF_ENVUIDGID(APPLET_ODDNAME(envuidgid, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, envuidgid))
-IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
-IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false))
-IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FBSPLASH(APPLET(fbsplash, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FDFLUSH(APPLET_ODDNAME(fdflush, freeramdisk, BB_DIR_BIN, BB_SUID_DROP, fdflush))
-IF_FDFORMAT(APPLET(fdformat, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FDISK(APPLET(fdisk, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FGCONSOLE(APPLET(fgconsole, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Benefits from suid root: better access to /dev/BLOCKDEVs: */
-IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE))
-IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FLASH_LOCK(APPLET_ODDNAME(flash_lock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_lock))
-IF_FLASH_UNLOCK(APPLET_ODDNAME(flash_unlock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_unlock))
-IF_FLASHCP(APPLET(flashcp, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FLOCK(APPLET(flock, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_FOLD(APPLET_NOEXEC(fold, fold, BB_DIR_USR_BIN, BB_SUID_DROP, fold))
-IF_FREE(APPLET(free, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_FREERAMDISK(APPLET(freeramdisk, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FSCK(APPLET(fsck, BB_DIR_SBIN, BB_SUID_DROP))
-//IF_E2FSCK(APPLET_ODDNAME(fsck.ext2, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext2))
-//IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext3))
-IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix))
-IF_FSTRIM(APPLET(fstrim, BB_DIR_SBIN, BB_SUID_DROP))
-IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync))
-IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpget))
-IF_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpput))
-IF_FUSER(APPLET(fuser, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP))
-IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_GETTY(APPLET(getty, BB_DIR_SBIN, BB_SUID_DROP))
-IF_GUNZIP(APPLET(gunzip, BB_DIR_BIN, BB_SUID_DROP))
-IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP))
-IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd))
-IF_HDPARM(APPLET(hdparm, BB_DIR_SBIN, BB_SUID_DROP))
-IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head))
-IF_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hexdump))
-IF_HOSTNAME(APPLET(hostname, BB_DIR_BIN, BB_SUID_DROP))
-IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFUPDOWN(APPLET_ODDNAME(ifdown, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifdown))
-IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_IFUPDOWN(APPLET_ODDNAME(ifup, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifup))
-IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_INOTIFYD(APPLET(inotifyd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IONICE(APPLET(ionice, BB_DIR_BIN, BB_SUID_DROP))
-#if ENABLE_FEATURE_IP_ADDRESS \
- || ENABLE_FEATURE_IP_ROUTE \
- || ENABLE_FEATURE_IP_LINK \
- || ENABLE_FEATURE_IP_TUNNEL \
- || ENABLE_FEATURE_IP_RULE
-IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
-#endif
-IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
-IF_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IPCS(APPLET(ipcs, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IPLINK(APPLET(iplink, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPROUTE(APPLET(iproute, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPRULE(APPLET(iprule, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_SBIN, BB_SUID_DROP))
-IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP))
-IF_KILL(APPLET(kill, BB_DIR_BIN, BB_SUID_DROP))
-IF_KILLALL(APPLET_ODDNAME(killall, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall))
-IF_KILLALL5(APPLET_ODDNAME(killall5, kill, BB_DIR_USR_SBIN, BB_SUID_DROP, killall5))
-IF_KLOGD(APPLET(klogd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LAST(APPLET(last, BB_DIR_USR_BIN, BB_SUID_DROP))
-//IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length))
-IF_LESS(APPLET(less, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SETARCH(APPLET_ODDNAME(linux32, setarch, BB_DIR_BIN, BB_SUID_DROP, linux32))
-IF_SETARCH(APPLET_ODDNAME(linux64, setarch, BB_DIR_BIN, BB_SUID_DROP, linux64))
-IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln))
-IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LOGGER(APPLET(logger, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change uid and gid: */
-IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE))
-IF_LOGNAME(APPLET_NOFORK(logname, logname, BB_DIR_USR_BIN, BB_SUID_DROP, logname))
-IF_LOGREAD(APPLET(logread, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LOSETUP(APPLET(losetup, BB_DIR_SBIN, BB_SUID_DROP))
-IF_LPD(APPLET(lpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_LPQ(APPLET_ODDNAME(lpq, lpqr, BB_DIR_USR_BIN, BB_SUID_DROP, lpq))
-IF_LPR(APPLET_ODDNAME(lpr, lpqr, BB_DIR_USR_BIN, BB_SUID_DROP, lpr))
-IF_LS(APPLET_NOEXEC(ls, ls, BB_DIR_BIN, BB_SUID_DROP, ls))
-IF_LSATTR(APPLET(lsattr, BB_DIR_BIN, BB_SUID_DROP))
-IF_LSPCI(APPLET(lspci, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_LSUSB(APPLET(lsusb, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UNLZMA(APPLET_ODDNAME(lzcat, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzcat))
-IF_LZMA(APPLET_ODDNAME(lzma, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzma))
-IF_LZOP(APPLET(lzop, BB_DIR_BIN, BB_SUID_DROP))
-IF_LZOP(APPLET_ODDNAME(lzopcat, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, lzopcat))
-IF_MAKEDEVS(APPLET(makedevs, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MAKEMIME(APPLET(makemime, BB_DIR_BIN, BB_SUID_DROP))
-IF_MAN(APPLET(man, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MATCHPATHCON(APPLET(matchpathcon, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_MD5SUM(APPLET_NOEXEC(md5sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, md5sum))
-IF_MICROCOM(APPLET(microcom, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_MKDIR(APPLET_NOFORK(mkdir, mkdir, BB_DIR_BIN, BB_SUID_DROP, mkdir))
-IF_MKFS_VFAT(APPLET_ODDNAME(mkdosfs, mkfs_vfat, BB_DIR_SBIN, BB_SUID_DROP, mkfs_vfat))
-IF_MKFS_EXT2(APPLET_ODDNAME(mke2fs, mkfs_ext2, BB_DIR_SBIN, BB_SUID_DROP, mkfs_ext2))
-IF_MKFIFO(APPLET_NOEXEC(mkfifo, mkfifo, BB_DIR_USR_BIN, BB_SUID_DROP, mkfifo))
-IF_MKFS_EXT2(APPLET_ODDNAME(mkfs.ext2, mkfs_ext2, BB_DIR_SBIN, BB_SUID_DROP, mkfs_ext2))
-//IF_MKE2FS(APPLET_ODDNAME(mkfs.ext3, mke2fs, BB_DIR_SBIN, BB_SUID_DROP, mkfs_ext3))
-IF_MKFS_MINIX(APPLET_ODDNAME(mkfs.minix, mkfs_minix, BB_DIR_SBIN, BB_SUID_DROP, mkfs_minix))
-IF_MKFS_REISER(APPLET_ODDNAME(mkfs.reiser, mkfs_reiser, BB_DIR_SBIN, BB_SUID_DROP, mkfs_reiser))
-IF_MKFS_VFAT(APPLET_ODDNAME(mkfs.vfat, mkfs_vfat, BB_DIR_SBIN, BB_SUID_DROP, mkfs_vfat))
-IF_MKNOD(APPLET_NOEXEC(mknod, mknod, BB_DIR_BIN, BB_SUID_DROP, mknod))
-IF_CRYPTPW(APPLET_ODDNAME(mkpasswd, cryptpw, BB_DIR_USR_BIN, BB_SUID_DROP, mkpasswd))
-IF_MKSWAP(APPLET(mkswap, BB_DIR_SBIN, BB_SUID_DROP))
-IF_MKTEMP(APPLET(mktemp, BB_DIR_BIN, BB_SUID_DROP))
-IF_MORE(APPLET(more, BB_DIR_BIN, BB_SUID_DROP))
-/* On full-blown systems, requires suid for user mounts.
- * But it's not unthinkable to have it available in non-suid flavor on some systems,
- * for viewing mount table.
- * Therefore we use BB_SUID_MAYBE instead of BB_SUID_REQUIRE: */
-IF_MOUNT(APPLET(mount, BB_DIR_BIN, IF_DESKTOP(BB_SUID_MAYBE) IF_NOT_DESKTOP(BB_SUID_DROP)))
-IF_MOUNTPOINT(APPLET(mountpoint, BB_DIR_BIN, BB_SUID_DROP))
-IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DROP))
-IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
-IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
-IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
-IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP))
-IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP))
-//IF_PARSE(APPLET(parse, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change /etc/{passwd,shadow}: */
-IF_PASSWD(APPLET(passwd, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
-IF_PGREP(APPLET(pgrep, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PIDOF(APPLET(pidof, BB_DIR_BIN, BB_SUID_DROP))
-IF_PIPE_PROGRESS(APPLET(pipe_progress, BB_DIR_BIN, BB_SUID_DROP))
-IF_PIVOT_ROOT(APPLET(pivot_root, BB_DIR_SBIN, BB_SUID_DROP))
-IF_PKILL(APPLET_ODDNAME(pkill, pgrep, BB_DIR_USR_BIN, BB_SUID_DROP, pkill))
-IF_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv))
-IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf))
-IF_PS(APPLET(ps, BB_DIR_BIN, BB_SUID_DROP))
-IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd))
-IF_RAIDAUTORUN(APPLET(raidautorun, BB_DIR_SBIN, BB_SUID_DROP))
-IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_RDEV(APPLET(rdev, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_READAHEAD(APPLET(readahead, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_READLINK(APPLET(readlink, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_READPROFILE(APPLET(readprofile, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_REALPATH(APPLET(realpath, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_REFORMIME(APPLET(reformime, BB_DIR_BIN, BB_SUID_DROP))
-IF_RENICE(APPLET(renice, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RESET(APPLET(reset, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RESIZE(APPLET(resize, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RESTORECON(APPLET_ODDNAME(restorecon, setfiles, BB_DIR_SBIN, BB_SUID_DROP, restorecon))
-IF_RFKILL(APPLET(rfkill, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm))
-IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir))
-IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
-IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
-IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, BB_DIR_BIN, BB_SUID_DROP, run_parts))
-IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RUNLEVEL(APPLET(runlevel, BB_DIR_SBIN, BB_SUID_DROP))
-IF_RUNSV(APPLET(runsv, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RUNSVDIR(APPLET(runsvdir, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_RX(APPLET(rx, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SCRIPT(APPLET(script, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SCRIPTREPLAY(APPLET(scriptreplay, BB_DIR_BIN, BB_SUID_DROP))
-IF_SED(APPLET(sed, BB_DIR_BIN, BB_SUID_DROP))
-IF_SELINUXENABLED(APPLET(selinuxenabled, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SENDMAIL(APPLET(sendmail, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SEQ(APPLET_NOFORK(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq))
-IF_SESTATUS(APPLET(sestatus, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETARCH(APPLET(setarch, BB_DIR_BIN, BB_SUID_DROP))
-IF_SETCONSOLE(APPLET(setconsole, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SETENFORCE(APPLET(setenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETFILES(APPLET(setfiles, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SETFONT(APPLET(setfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETKEYCODES(APPLET(setkeycodes, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETSEBOOL(APPLET(setsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SETSID(APPLET(setsid, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SETUIDGID(APPLET_ODDNAME(setuidgid, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, setuidgid))
-IF_SHA1SUM(APPLET_NOEXEC(sha1sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha1sum))
-IF_SHA3SUM(APPLET_NOEXEC(sha3sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha3sum))
-IF_SHA256SUM(APPLET_NOEXEC(sha256sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha256sum))
-IF_SHA512SUM(APPLET_NOEXEC(sha512sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha512sum))
-IF_SHOWKEY(APPLET(showkey, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP))
-/* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells: */
-IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP))
-IF_SOFTLIMIT(APPLET_ODDNAME(softlimit, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, softlimit))
-IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort))
-IF_SPLIT(APPLET(split, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_START_STOP_DAEMON(APPLET_ODDNAME(start-stop-daemon, start_stop_daemon, BB_DIR_SBIN, BB_SUID_DROP, start_stop_daemon))
-IF_STAT(APPLET(stat, BB_DIR_BIN, BB_SUID_DROP))
-IF_STRINGS(APPLET(strings, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_STTY(APPLET(stty, BB_DIR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change uid and gid: */
-IF_SU(APPLET(su, BB_DIR_BIN, BB_SUID_REQUIRE))
-IF_SULOGIN(APPLET(sulogin, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SUM(APPLET(sum, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SV(APPLET(sv, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SVLOGD(APPLET(svlogd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_SWAPONOFF(APPLET_ODDNAME(swapoff, swap_on_off, BB_DIR_SBIN, BB_SUID_DROP, swapoff))
-IF_SWAPONOFF(APPLET_ODDNAME(swapon, swap_on_off, BB_DIR_SBIN, BB_SUID_DROP, swapon))
-IF_SWITCH_ROOT(APPLET(switch_root, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SYNC(APPLET_NOFORK(sync, sync, BB_DIR_BIN, BB_SUID_DROP, sync))
-IF_BB_SYSCTL(APPLET(sysctl, BB_DIR_SBIN, BB_SUID_DROP))
-IF_SYSLOGD(APPLET(syslogd, BB_DIR_SBIN, BB_SUID_DROP))
-IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac))
-IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TAR(APPLET(tar, BB_DIR_BIN, BB_SUID_DROP))
-IF_TASKSET(APPLET(taskset, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* IF_TC(APPLET(tc, BB_DIR_SBIN, BB_SUID_DROP)) */
-IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd))
-IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TELNET(APPLET(telnet, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
-IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TFTPD(APPLET(tftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-#endif
-IF_TIME(APPLET(time, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TIMEOUT(APPLET(timeout, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TOP(APPLET(top, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
-IF_TRACEROUTE(APPLET(traceroute, BB_DIR_USR_BIN, BB_SUID_MAYBE))
-IF_TRACEROUTE6(APPLET(traceroute6, BB_DIR_USR_BIN, BB_SUID_MAYBE))
-IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true))
-IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TTYSIZE(APPLET(ttysize, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP))
-IF_TUNE2FS(APPLET(tune2fs, BB_DIR_SBIN, BB_SUID_DROP))
-IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP))
-IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd))
-IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP))
-IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP))
-IF_UNCOMPRESS(APPLET(uncompress, BB_DIR_BIN, BB_SUID_DROP))
-IF_UNEXPAND(APPLET_ODDNAME(unexpand, expand, BB_DIR_USR_BIN, BB_SUID_DROP, unexpand))
-IF_UNIQ(APPLET(uniq, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix2dos))
-IF_UNXZ(APPLET(unxz, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UNLZMA(APPLET(unlzma, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_LZOP(APPLET_ODDNAME(unlzop, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, unlzop))
-IF_UNZIP(APPLET(unzip, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UPTIME(APPLET(uptime, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep))
-IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to change uid and gid: */
-IF_VLOCK(APPLET(vlock, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
-IF_VOLNAME(APPLET(volname, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to write to /dev/TTY: */
-IF_WALL(APPLET(wall, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
-IF_WATCH(APPLET(watch, BB_DIR_BIN, BB_SUID_DROP))
-IF_WATCHDOG(APPLET(watchdog, BB_DIR_SBIN, BB_SUID_DROP))
-IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_WHICH(APPLET(which, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami))
-IF_UNXZ(APPLET_ODDNAME(xzcat, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xzcat))
-IF_XZ(APPLET_ODDNAME(xz, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xz))
-IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
-IF_GUNZIP(APPLET_ODDNAME(zcat, gunzip, BB_DIR_BIN, BB_SUID_DROP, zcat))
-IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
-
-#if !defined(PROTOTYPES) && !defined(NAME_MAIN_CNAME) && !defined(MAKE_USAGE)
-};
-#endif
-
-#undef APPLET
-#undef APPLET_ODDNAME
-#undef APPLET_NOEXEC
-#undef APPLET_NOFORK
diff --git a/include-minimal/autoconf.h b/include-minimal/autoconf.h
deleted file mode 100644
index f80f6f6..0000000
--- a/include-minimal/autoconf.h
+++ /dev/null
@@ -1,3678 +0,0 @@
-/*
- * Automatically generated C config: don't edit
- * Busybox version: 1.21.1-jb
- */
-#define AUTOCONF_TIMESTAMP "2013-07-25 21:23 +0100"
-
-#define CONFIG_HAVE_DOT_CONFIG 1
-#define ENABLE_HAVE_DOT_CONFIG 1
-#define IF_HAVE_DOT_CONFIG(...) __VA_ARGS__
-#define IF_NOT_HAVE_DOT_CONFIG(...)
-
-/*
- * Busybox Settings
- */
-
-/*
- * General Configuration
- */
-#undef CONFIG_DESKTOP
-#define ENABLE_DESKTOP 0
-#define IF_DESKTOP(...)
-#define IF_NOT_DESKTOP(...) __VA_ARGS__
-#undef CONFIG_EXTRA_COMPAT
-#define ENABLE_EXTRA_COMPAT 0
-#define IF_EXTRA_COMPAT(...)
-#define IF_NOT_EXTRA_COMPAT(...) __VA_ARGS__
-#undef CONFIG_INCLUDE_SUSv2
-#define ENABLE_INCLUDE_SUSv2 0
-#define IF_INCLUDE_SUSv2(...)
-#define IF_NOT_INCLUDE_SUSv2(...) __VA_ARGS__
-#undef CONFIG_USE_PORTABLE_CODE
-#define ENABLE_USE_PORTABLE_CODE 0
-#define IF_USE_PORTABLE_CODE(...)
-#define IF_NOT_USE_PORTABLE_CODE(...) __VA_ARGS__
-#define CONFIG_PLATFORM_LINUX 1
-#define ENABLE_PLATFORM_LINUX 1
-#define IF_PLATFORM_LINUX(...) __VA_ARGS__
-#define IF_NOT_PLATFORM_LINUX(...)
-#define CONFIG_FEATURE_BUFFERS_USE_MALLOC 1
-#define ENABLE_FEATURE_BUFFERS_USE_MALLOC 1
-#define IF_FEATURE_BUFFERS_USE_MALLOC(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BUFFERS_USE_MALLOC(...)
-#undef CONFIG_FEATURE_BUFFERS_GO_ON_STACK
-#define ENABLE_FEATURE_BUFFERS_GO_ON_STACK 0
-#define IF_FEATURE_BUFFERS_GO_ON_STACK(...)
-#define IF_NOT_FEATURE_BUFFERS_GO_ON_STACK(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BUFFERS_GO_IN_BSS
-#define ENABLE_FEATURE_BUFFERS_GO_IN_BSS 0
-#define IF_FEATURE_BUFFERS_GO_IN_BSS(...)
-#define IF_NOT_FEATURE_BUFFERS_GO_IN_BSS(...) __VA_ARGS__
-#define CONFIG_SHOW_USAGE 1
-#define ENABLE_SHOW_USAGE 1
-#define IF_SHOW_USAGE(...) __VA_ARGS__
-#define IF_NOT_SHOW_USAGE(...)
-#define CONFIG_FEATURE_VERBOSE_USAGE 1
-#define ENABLE_FEATURE_VERBOSE_USAGE 1
-#define IF_FEATURE_VERBOSE_USAGE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VERBOSE_USAGE(...)
-#define CONFIG_FEATURE_COMPRESS_USAGE 1
-#define ENABLE_FEATURE_COMPRESS_USAGE 1
-#define IF_FEATURE_COMPRESS_USAGE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_COMPRESS_USAGE(...)
-#undef CONFIG_FEATURE_INSTALLER
-#define ENABLE_FEATURE_INSTALLER 0
-#define IF_FEATURE_INSTALLER(...)
-#define IF_NOT_FEATURE_INSTALLER(...) __VA_ARGS__
-#define CONFIG_INSTALL_NO_USR 1
-#define ENABLE_INSTALL_NO_USR 1
-#define IF_INSTALL_NO_USR(...) __VA_ARGS__
-#define IF_NOT_INSTALL_NO_USR(...)
-#undef CONFIG_LOCALE_SUPPORT
-#define ENABLE_LOCALE_SUPPORT 0
-#define IF_LOCALE_SUPPORT(...)
-#define IF_NOT_LOCALE_SUPPORT(...) __VA_ARGS__
-#define CONFIG_UNICODE_SUPPORT 1
-#define ENABLE_UNICODE_SUPPORT 1
-#define IF_UNICODE_SUPPORT(...) __VA_ARGS__
-#define IF_NOT_UNICODE_SUPPORT(...)
-#undef CONFIG_UNICODE_USING_LOCALE
-#define ENABLE_UNICODE_USING_LOCALE 0
-#define IF_UNICODE_USING_LOCALE(...)
-#define IF_NOT_UNICODE_USING_LOCALE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
-#define ENABLE_FEATURE_CHECK_UNICODE_IN_ENV 0
-#define IF_FEATURE_CHECK_UNICODE_IN_ENV(...)
-#define IF_NOT_FEATURE_CHECK_UNICODE_IN_ENV(...) __VA_ARGS__
-#define CONFIG_SUBST_WCHAR 63
-#define ENABLE_SUBST_WCHAR 1
-#define IF_SUBST_WCHAR(...) __VA_ARGS__
-#define IF_NOT_SUBST_WCHAR(...)
-#define CONFIG_LAST_SUPPORTED_WCHAR 0
-#define ENABLE_LAST_SUPPORTED_WCHAR 1
-#define IF_LAST_SUPPORTED_WCHAR(...) __VA_ARGS__
-#define IF_NOT_LAST_SUPPORTED_WCHAR(...)
-#undef CONFIG_UNICODE_COMBINING_WCHARS
-#define ENABLE_UNICODE_COMBINING_WCHARS 0
-#define IF_UNICODE_COMBINING_WCHARS(...)
-#define IF_NOT_UNICODE_COMBINING_WCHARS(...) __VA_ARGS__
-#define CONFIG_UNICODE_WIDE_WCHARS 1
-#define ENABLE_UNICODE_WIDE_WCHARS 1
-#define IF_UNICODE_WIDE_WCHARS(...) __VA_ARGS__
-#define IF_NOT_UNICODE_WIDE_WCHARS(...)
-#undef CONFIG_UNICODE_BIDI_SUPPORT
-#define ENABLE_UNICODE_BIDI_SUPPORT 0
-#define IF_UNICODE_BIDI_SUPPORT(...)
-#define IF_NOT_UNICODE_BIDI_SUPPORT(...) __VA_ARGS__
-#undef CONFIG_UNICODE_NEUTRAL_TABLE
-#define ENABLE_UNICODE_NEUTRAL_TABLE 0
-#define IF_UNICODE_NEUTRAL_TABLE(...)
-#define IF_NOT_UNICODE_NEUTRAL_TABLE(...) __VA_ARGS__
-#define CONFIG_UNICODE_PRESERVE_BROKEN 1
-#define ENABLE_UNICODE_PRESERVE_BROKEN 1
-#define IF_UNICODE_PRESERVE_BROKEN(...) __VA_ARGS__
-#define IF_NOT_UNICODE_PRESERVE_BROKEN(...)
-#define CONFIG_LONG_OPTS 1
-#define ENABLE_LONG_OPTS 1
-#define IF_LONG_OPTS(...) __VA_ARGS__
-#define IF_NOT_LONG_OPTS(...)
-#undef CONFIG_FEATURE_DEVPTS
-#define ENABLE_FEATURE_DEVPTS 0
-#define IF_FEATURE_DEVPTS(...)
-#define IF_NOT_FEATURE_DEVPTS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CLEAN_UP
-#define ENABLE_FEATURE_CLEAN_UP 0
-#define IF_FEATURE_CLEAN_UP(...)
-#define IF_NOT_FEATURE_CLEAN_UP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UTMP
-#define ENABLE_FEATURE_UTMP 0
-#define IF_FEATURE_UTMP(...)
-#define IF_NOT_FEATURE_UTMP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_WTMP
-#define ENABLE_FEATURE_WTMP 0
-#define IF_FEATURE_WTMP(...)
-#define IF_NOT_FEATURE_WTMP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PIDFILE
-#define ENABLE_FEATURE_PIDFILE 0
-#define IF_FEATURE_PIDFILE(...)
-#define IF_NOT_FEATURE_PIDFILE(...) __VA_ARGS__
-#define CONFIG_PID_FILE_PATH ""
-#define ENABLE_PID_FILE_PATH 1
-#define IF_PID_FILE_PATH(...) __VA_ARGS__
-#define IF_NOT_PID_FILE_PATH(...)
-#define CONFIG_FEATURE_SUID 1
-#define ENABLE_FEATURE_SUID 1
-#define IF_FEATURE_SUID(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SUID(...)
-#undef CONFIG_FEATURE_SUID_CONFIG
-#define ENABLE_FEATURE_SUID_CONFIG 0
-#define IF_FEATURE_SUID_CONFIG(...)
-#define IF_NOT_FEATURE_SUID_CONFIG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SUID_CONFIG_QUIET
-#define ENABLE_FEATURE_SUID_CONFIG_QUIET 0
-#define IF_FEATURE_SUID_CONFIG_QUIET(...)
-#define IF_NOT_FEATURE_SUID_CONFIG_QUIET(...) __VA_ARGS__
-#undef CONFIG_SELINUX
-#define ENABLE_SELINUX 0
-#define IF_SELINUX(...)
-#define IF_NOT_SELINUX(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PREFER_APPLETS
-#define ENABLE_FEATURE_PREFER_APPLETS 0
-#define IF_FEATURE_PREFER_APPLETS(...)
-#define IF_NOT_FEATURE_PREFER_APPLETS(...) __VA_ARGS__
-#define CONFIG_BUSYBOX_EXEC_PATH "/proc/self/exe"
-#define ENABLE_BUSYBOX_EXEC_PATH 1
-#define IF_BUSYBOX_EXEC_PATH(...) __VA_ARGS__
-#define IF_NOT_BUSYBOX_EXEC_PATH(...)
-#undef CONFIG_FEATURE_SYSLOG
-#define ENABLE_FEATURE_SYSLOG 0
-#define IF_FEATURE_SYSLOG(...)
-#define IF_NOT_FEATURE_SYSLOG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HAVE_RPC
-#define ENABLE_FEATURE_HAVE_RPC 0
-#define IF_FEATURE_HAVE_RPC(...)
-#define IF_NOT_FEATURE_HAVE_RPC(...) __VA_ARGS__
-
-/*
- * Build Options
- */
-#undef CONFIG_STATIC
-#define ENABLE_STATIC 0
-#define IF_STATIC(...)
-#define IF_NOT_STATIC(...) __VA_ARGS__
-#undef CONFIG_PIE
-#define ENABLE_PIE 0
-#define IF_PIE(...)
-#define IF_NOT_PIE(...) __VA_ARGS__
-#undef CONFIG_NOMMU
-#define ENABLE_NOMMU 0
-#define IF_NOMMU(...)
-#define IF_NOT_NOMMU(...) __VA_ARGS__
-#undef CONFIG_BUILD_LIBBUSYBOX
-#define ENABLE_BUILD_LIBBUSYBOX 0
-#define IF_BUILD_LIBBUSYBOX(...)
-#define IF_NOT_BUILD_LIBBUSYBOX(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INDIVIDUAL
-#define ENABLE_FEATURE_INDIVIDUAL 0
-#define IF_FEATURE_INDIVIDUAL(...)
-#define IF_NOT_FEATURE_INDIVIDUAL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SHARED_BUSYBOX
-#define ENABLE_FEATURE_SHARED_BUSYBOX 0
-#define IF_FEATURE_SHARED_BUSYBOX(...)
-#define IF_NOT_FEATURE_SHARED_BUSYBOX(...) __VA_ARGS__
-#undef CONFIG_LFS
-#define ENABLE_LFS 0
-#define IF_LFS(...)
-#define IF_NOT_LFS(...) __VA_ARGS__
-#define CONFIG_CROSS_COMPILER_PREFIX "arm-eabi-"
-#define ENABLE_CROSS_COMPILER_PREFIX 1
-#define IF_CROSS_COMPILER_PREFIX(...) __VA_ARGS__
-#define IF_NOT_CROSS_COMPILER_PREFIX(...)
-#define CONFIG_SYSROOT ""
-#define ENABLE_SYSROOT 1
-#define IF_SYSROOT(...) __VA_ARGS__
-#define IF_NOT_SYSROOT(...)
-#define CONFIG_EXTRA_CFLAGS "-Os"
-#define ENABLE_EXTRA_CFLAGS 1
-#define IF_EXTRA_CFLAGS(...) __VA_ARGS__
-#define IF_NOT_EXTRA_CFLAGS(...)
-#define CONFIG_EXTRA_LDFLAGS ""
-#define ENABLE_EXTRA_LDFLAGS 1
-#define IF_EXTRA_LDFLAGS(...) __VA_ARGS__
-#define IF_NOT_EXTRA_LDFLAGS(...)
-#define CONFIG_EXTRA_LDLIBS ""
-#define ENABLE_EXTRA_LDLIBS 1
-#define IF_EXTRA_LDLIBS(...) __VA_ARGS__
-#define IF_NOT_EXTRA_LDLIBS(...)
-
-/*
- * Debugging Options
- */
-#undef CONFIG_DEBUG
-#define ENABLE_DEBUG 0
-#define IF_DEBUG(...)
-#define IF_NOT_DEBUG(...) __VA_ARGS__
-#undef CONFIG_DEBUG_PESSIMIZE
-#define ENABLE_DEBUG_PESSIMIZE 0
-#define IF_DEBUG_PESSIMIZE(...)
-#define IF_NOT_DEBUG_PESSIMIZE(...) __VA_ARGS__
-#undef CONFIG_WERROR
-#define ENABLE_WERROR 0
-#define IF_WERROR(...)
-#define IF_NOT_WERROR(...) __VA_ARGS__
-#define CONFIG_NO_DEBUG_LIB 1
-#define ENABLE_NO_DEBUG_LIB 1
-#define IF_NO_DEBUG_LIB(...) __VA_ARGS__
-#define IF_NOT_NO_DEBUG_LIB(...)
-#undef CONFIG_DMALLOC
-#define ENABLE_DMALLOC 0
-#define IF_DMALLOC(...)
-#define IF_NOT_DMALLOC(...) __VA_ARGS__
-#undef CONFIG_EFENCE
-#define ENABLE_EFENCE 0
-#define IF_EFENCE(...)
-#define IF_NOT_EFENCE(...) __VA_ARGS__
-
-/*
- * Installation Options ("make install" behavior)
- */
-#define CONFIG_INSTALL_APPLET_SYMLINKS 1
-#define ENABLE_INSTALL_APPLET_SYMLINKS 1
-#define IF_INSTALL_APPLET_SYMLINKS(...) __VA_ARGS__
-#define IF_NOT_INSTALL_APPLET_SYMLINKS(...)
-#undef CONFIG_INSTALL_APPLET_HARDLINKS
-#define ENABLE_INSTALL_APPLET_HARDLINKS 0
-#define IF_INSTALL_APPLET_HARDLINKS(...)
-#define IF_NOT_INSTALL_APPLET_HARDLINKS(...) __VA_ARGS__
-#undef CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
-#define ENABLE_INSTALL_APPLET_SCRIPT_WRAPPERS 0
-#define IF_INSTALL_APPLET_SCRIPT_WRAPPERS(...)
-#define IF_NOT_INSTALL_APPLET_SCRIPT_WRAPPERS(...) __VA_ARGS__
-#undef CONFIG_INSTALL_APPLET_DONT
-#define ENABLE_INSTALL_APPLET_DONT 0
-#define IF_INSTALL_APPLET_DONT(...)
-#define IF_NOT_INSTALL_APPLET_DONT(...) __VA_ARGS__
-#undef CONFIG_INSTALL_SH_APPLET_SYMLINK
-#define ENABLE_INSTALL_SH_APPLET_SYMLINK 0
-#define IF_INSTALL_SH_APPLET_SYMLINK(...)
-#define IF_NOT_INSTALL_SH_APPLET_SYMLINK(...) __VA_ARGS__
-#undef CONFIG_INSTALL_SH_APPLET_HARDLINK
-#define ENABLE_INSTALL_SH_APPLET_HARDLINK 0
-#define IF_INSTALL_SH_APPLET_HARDLINK(...)
-#define IF_NOT_INSTALL_SH_APPLET_HARDLINK(...) __VA_ARGS__
-#undef CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
-#define ENABLE_INSTALL_SH_APPLET_SCRIPT_WRAPPER 0
-#define IF_INSTALL_SH_APPLET_SCRIPT_WRAPPER(...)
-#define IF_NOT_INSTALL_SH_APPLET_SCRIPT_WRAPPER(...) __VA_ARGS__
-#define CONFIG_PREFIX "/system/xbin/bb"
-#define ENABLE_PREFIX 1
-#define IF_PREFIX(...) __VA_ARGS__
-#define IF_NOT_PREFIX(...)
-
-/*
- * Busybox Library Tuning
- */
-#undef CONFIG_FEATURE_SYSTEMD
-#define ENABLE_FEATURE_SYSTEMD 0
-#define IF_FEATURE_SYSTEMD(...)
-#define IF_NOT_FEATURE_SYSTEMD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_RTMINMAX
-#define ENABLE_FEATURE_RTMINMAX 0
-#define IF_FEATURE_RTMINMAX(...)
-#define IF_NOT_FEATURE_RTMINMAX(...) __VA_ARGS__
-#define CONFIG_PASSWORD_MINLEN 6
-#define ENABLE_PASSWORD_MINLEN 1
-#define IF_PASSWORD_MINLEN(...) __VA_ARGS__
-#define IF_NOT_PASSWORD_MINLEN(...)
-#define CONFIG_MD5_SMALL 0
-#define ENABLE_MD5_SMALL 1
-#define IF_MD5_SMALL(...) __VA_ARGS__
-#define IF_NOT_MD5_SMALL(...)
-#define CONFIG_SHA3_SMALL 1
-#define ENABLE_SHA3_SMALL 1
-#define IF_SHA3_SMALL(...) __VA_ARGS__
-#define IF_NOT_SHA3_SMALL(...)
-#define CONFIG_FEATURE_FAST_TOP 1
-#define ENABLE_FEATURE_FAST_TOP 1
-#define IF_FEATURE_FAST_TOP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FAST_TOP(...)
-#undef CONFIG_FEATURE_ETC_NETWORKS
-#define ENABLE_FEATURE_ETC_NETWORKS 0
-#define IF_FEATURE_ETC_NETWORKS(...)
-#define IF_NOT_FEATURE_ETC_NETWORKS(...) __VA_ARGS__
-#define CONFIG_FEATURE_USE_TERMIOS 1
-#define ENABLE_FEATURE_USE_TERMIOS 1
-#define IF_FEATURE_USE_TERMIOS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_USE_TERMIOS(...)
-#define CONFIG_FEATURE_EDITING 1
-#define ENABLE_FEATURE_EDITING 1
-#define IF_FEATURE_EDITING(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING(...)
-#define CONFIG_FEATURE_EDITING_MAX_LEN 1024
-#define ENABLE_FEATURE_EDITING_MAX_LEN 1
-#define IF_FEATURE_EDITING_MAX_LEN(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_MAX_LEN(...)
-#define CONFIG_FEATURE_EDITING_VI 1
-#define ENABLE_FEATURE_EDITING_VI 1
-#define IF_FEATURE_EDITING_VI(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_VI(...)
-#define CONFIG_FEATURE_EDITING_HISTORY 256
-#define ENABLE_FEATURE_EDITING_HISTORY 1
-#define IF_FEATURE_EDITING_HISTORY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_HISTORY(...)
-#define CONFIG_FEATURE_EDITING_SAVEHISTORY 1
-#define ENABLE_FEATURE_EDITING_SAVEHISTORY 1
-#define IF_FEATURE_EDITING_SAVEHISTORY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_SAVEHISTORY(...)
-#define CONFIG_FEATURE_EDITING_SAVE_ON_EXIT 1
-#define ENABLE_FEATURE_EDITING_SAVE_ON_EXIT 1
-#define IF_FEATURE_EDITING_SAVE_ON_EXIT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_SAVE_ON_EXIT(...)
-#define CONFIG_FEATURE_REVERSE_SEARCH 1
-#define ENABLE_FEATURE_REVERSE_SEARCH 1
-#define IF_FEATURE_REVERSE_SEARCH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_REVERSE_SEARCH(...)
-#define CONFIG_FEATURE_TAB_COMPLETION 1
-#define ENABLE_FEATURE_TAB_COMPLETION 1
-#define IF_FEATURE_TAB_COMPLETION(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAB_COMPLETION(...)
-#undef CONFIG_FEATURE_USERNAME_COMPLETION
-#define ENABLE_FEATURE_USERNAME_COMPLETION 0
-#define IF_FEATURE_USERNAME_COMPLETION(...)
-#define IF_NOT_FEATURE_USERNAME_COMPLETION(...) __VA_ARGS__
-#define CONFIG_FEATURE_EDITING_FANCY_PROMPT 1
-#define ENABLE_FEATURE_EDITING_FANCY_PROMPT 1
-#define IF_FEATURE_EDITING_FANCY_PROMPT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_EDITING_FANCY_PROMPT(...)
-#undef CONFIG_FEATURE_EDITING_ASK_TERMINAL
-#define ENABLE_FEATURE_EDITING_ASK_TERMINAL 0
-#define IF_FEATURE_EDITING_ASK_TERMINAL(...)
-#define IF_NOT_FEATURE_EDITING_ASK_TERMINAL(...) __VA_ARGS__
-#define CONFIG_FEATURE_NON_POSIX_CP 1
-#define ENABLE_FEATURE_NON_POSIX_CP 1
-#define IF_FEATURE_NON_POSIX_CP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_NON_POSIX_CP(...)
-#undef CONFIG_FEATURE_VERBOSE_CP_MESSAGE
-#define ENABLE_FEATURE_VERBOSE_CP_MESSAGE 0
-#define IF_FEATURE_VERBOSE_CP_MESSAGE(...)
-#define IF_NOT_FEATURE_VERBOSE_CP_MESSAGE(...) __VA_ARGS__
-#define CONFIG_FEATURE_COPYBUF_KB 4
-#define ENABLE_FEATURE_COPYBUF_KB 1
-#define IF_FEATURE_COPYBUF_KB(...) __VA_ARGS__
-#define IF_NOT_FEATURE_COPYBUF_KB(...)
-#define CONFIG_FEATURE_SKIP_ROOTFS 1
-#define ENABLE_FEATURE_SKIP_ROOTFS 1
-#define IF_FEATURE_SKIP_ROOTFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SKIP_ROOTFS(...)
-#define CONFIG_MONOTONIC_SYSCALL 1
-#define ENABLE_MONOTONIC_SYSCALL 1
-#define IF_MONOTONIC_SYSCALL(...) __VA_ARGS__
-#define IF_NOT_MONOTONIC_SYSCALL(...)
-#define CONFIG_IOCTL_HEX2STR_ERROR 1
-#define ENABLE_IOCTL_HEX2STR_ERROR 1
-#define IF_IOCTL_HEX2STR_ERROR(...) __VA_ARGS__
-#define IF_NOT_IOCTL_HEX2STR_ERROR(...)
-#undef CONFIG_FEATURE_HWIB
-#define ENABLE_FEATURE_HWIB 0
-#define IF_FEATURE_HWIB(...)
-#define IF_NOT_FEATURE_HWIB(...) __VA_ARGS__
-
-/*
- * Applets
- */
-
-/*
- * Archival Utilities
- */
-#undef CONFIG_FEATURE_SEAMLESS_XZ
-#define ENABLE_FEATURE_SEAMLESS_XZ 0
-#define IF_FEATURE_SEAMLESS_XZ(...)
-#define IF_NOT_FEATURE_SEAMLESS_XZ(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SEAMLESS_LZMA
-#define ENABLE_FEATURE_SEAMLESS_LZMA 0
-#define IF_FEATURE_SEAMLESS_LZMA(...)
-#define IF_NOT_FEATURE_SEAMLESS_LZMA(...) __VA_ARGS__
-#define CONFIG_FEATURE_SEAMLESS_BZ2 1
-#define ENABLE_FEATURE_SEAMLESS_BZ2 1
-#define IF_FEATURE_SEAMLESS_BZ2(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SEAMLESS_BZ2(...)
-#define CONFIG_FEATURE_SEAMLESS_GZ 1
-#define ENABLE_FEATURE_SEAMLESS_GZ 1
-#define IF_FEATURE_SEAMLESS_GZ(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SEAMLESS_GZ(...)
-#undef CONFIG_FEATURE_SEAMLESS_Z
-#define ENABLE_FEATURE_SEAMLESS_Z 0
-#define IF_FEATURE_SEAMLESS_Z(...)
-#define IF_NOT_FEATURE_SEAMLESS_Z(...) __VA_ARGS__
-#undef CONFIG_AR
-#define ENABLE_AR 0
-#define IF_AR(...)
-#define IF_NOT_AR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_AR_LONG_FILENAMES
-#define ENABLE_FEATURE_AR_LONG_FILENAMES 0
-#define IF_FEATURE_AR_LONG_FILENAMES(...)
-#define IF_NOT_FEATURE_AR_LONG_FILENAMES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_AR_CREATE
-#define ENABLE_FEATURE_AR_CREATE 0
-#define IF_FEATURE_AR_CREATE(...)
-#define IF_NOT_FEATURE_AR_CREATE(...) __VA_ARGS__
-#define CONFIG_BUNZIP2 1
-#define ENABLE_BUNZIP2 1
-#define IF_BUNZIP2(...) __VA_ARGS__
-#define IF_NOT_BUNZIP2(...)
-#define CONFIG_BZIP2 1
-#define ENABLE_BZIP2 1
-#define IF_BZIP2(...) __VA_ARGS__
-#define IF_NOT_BZIP2(...)
-#define CONFIG_CPIO 1
-#define ENABLE_CPIO 1
-#define IF_CPIO(...) __VA_ARGS__
-#define IF_NOT_CPIO(...)
-#define CONFIG_FEATURE_CPIO_O 1
-#define ENABLE_FEATURE_CPIO_O 1
-#define IF_FEATURE_CPIO_O(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CPIO_O(...)
-#undef CONFIG_FEATURE_CPIO_P
-#define ENABLE_FEATURE_CPIO_P 0
-#define IF_FEATURE_CPIO_P(...)
-#define IF_NOT_FEATURE_CPIO_P(...) __VA_ARGS__
-#undef CONFIG_DPKG
-#define ENABLE_DPKG 0
-#define IF_DPKG(...)
-#define IF_NOT_DPKG(...) __VA_ARGS__
-#undef CONFIG_DPKG_DEB
-#define ENABLE_DPKG_DEB 0
-#define IF_DPKG_DEB(...)
-#define IF_NOT_DPKG_DEB(...) __VA_ARGS__
-#undef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
-#define ENABLE_FEATURE_DPKG_DEB_EXTRACT_ONLY 0
-#define IF_FEATURE_DPKG_DEB_EXTRACT_ONLY(...)
-#define IF_NOT_FEATURE_DPKG_DEB_EXTRACT_ONLY(...) __VA_ARGS__
-#define CONFIG_GUNZIP 1
-#define ENABLE_GUNZIP 1
-#define IF_GUNZIP(...) __VA_ARGS__
-#define IF_NOT_GUNZIP(...)
-#define CONFIG_GZIP 1
-#define ENABLE_GZIP 1
-#define IF_GZIP(...) __VA_ARGS__
-#define IF_NOT_GZIP(...)
-#define CONFIG_FEATURE_GZIP_LONG_OPTIONS 1
-#define ENABLE_FEATURE_GZIP_LONG_OPTIONS 1
-#define IF_FEATURE_GZIP_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GZIP_LONG_OPTIONS(...)
-#define CONFIG_GZIP_FAST 2
-#define ENABLE_GZIP_FAST 1
-#define IF_GZIP_FAST(...) __VA_ARGS__
-#define IF_NOT_GZIP_FAST(...)
-#define CONFIG_LZOP 1
-#define ENABLE_LZOP 1
-#define IF_LZOP(...) __VA_ARGS__
-#define IF_NOT_LZOP(...)
-#undef CONFIG_LZOP_COMPR_HIGH
-#define ENABLE_LZOP_COMPR_HIGH 0
-#define IF_LZOP_COMPR_HIGH(...)
-#define IF_NOT_LZOP_COMPR_HIGH(...) __VA_ARGS__
-#undef CONFIG_RPM2CPIO
-#define ENABLE_RPM2CPIO 0
-#define IF_RPM2CPIO(...)
-#define IF_NOT_RPM2CPIO(...) __VA_ARGS__
-#undef CONFIG_RPM
-#define ENABLE_RPM 0
-#define IF_RPM(...)
-#define IF_NOT_RPM(...) __VA_ARGS__
-#define CONFIG_TAR 1
-#define ENABLE_TAR 1
-#define IF_TAR(...) __VA_ARGS__
-#define IF_NOT_TAR(...)
-#define CONFIG_FEATURE_TAR_CREATE 1
-#define ENABLE_FEATURE_TAR_CREATE 1
-#define IF_FEATURE_TAR_CREATE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_CREATE(...)
-#undef CONFIG_FEATURE_TAR_AUTODETECT
-#define ENABLE_FEATURE_TAR_AUTODETECT 0
-#define IF_FEATURE_TAR_AUTODETECT(...)
-#define IF_NOT_FEATURE_TAR_AUTODETECT(...) __VA_ARGS__
-#define CONFIG_FEATURE_TAR_FROM 1
-#define ENABLE_FEATURE_TAR_FROM 1
-#define IF_FEATURE_TAR_FROM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_FROM(...)
-#undef CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY
-#define ENABLE_FEATURE_TAR_OLDGNU_COMPATIBILITY 0
-#define IF_FEATURE_TAR_OLDGNU_COMPATIBILITY(...)
-#define IF_NOT_FEATURE_TAR_OLDGNU_COMPATIBILITY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY
-#define ENABLE_FEATURE_TAR_OLDSUN_COMPATIBILITY 0
-#define IF_FEATURE_TAR_OLDSUN_COMPATIBILITY(...)
-#define IF_NOT_FEATURE_TAR_OLDSUN_COMPATIBILITY(...) __VA_ARGS__
-#define CONFIG_FEATURE_TAR_GNU_EXTENSIONS 1
-#define ENABLE_FEATURE_TAR_GNU_EXTENSIONS 1
-#define IF_FEATURE_TAR_GNU_EXTENSIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_GNU_EXTENSIONS(...)
-#define CONFIG_FEATURE_TAR_LONG_OPTIONS 1
-#define ENABLE_FEATURE_TAR_LONG_OPTIONS 1
-#define IF_FEATURE_TAR_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_LONG_OPTIONS(...)
-#undef CONFIG_FEATURE_TAR_TO_COMMAND
-#define ENABLE_FEATURE_TAR_TO_COMMAND 0
-#define IF_FEATURE_TAR_TO_COMMAND(...)
-#define IF_NOT_FEATURE_TAR_TO_COMMAND(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TAR_UNAME_GNAME
-#define ENABLE_FEATURE_TAR_UNAME_GNAME 0
-#define IF_FEATURE_TAR_UNAME_GNAME(...)
-#define IF_NOT_FEATURE_TAR_UNAME_GNAME(...) __VA_ARGS__
-#define CONFIG_FEATURE_TAR_NOPRESERVE_TIME 1
-#define ENABLE_FEATURE_TAR_NOPRESERVE_TIME 1
-#define IF_FEATURE_TAR_NOPRESERVE_TIME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TAR_NOPRESERVE_TIME(...)
-#undef CONFIG_FEATURE_TAR_SELINUX
-#define ENABLE_FEATURE_TAR_SELINUX 0
-#define IF_FEATURE_TAR_SELINUX(...)
-#define IF_NOT_FEATURE_TAR_SELINUX(...) __VA_ARGS__
-#undef CONFIG_UNCOMPRESS
-#define ENABLE_UNCOMPRESS 0
-#define IF_UNCOMPRESS(...)
-#define IF_NOT_UNCOMPRESS(...) __VA_ARGS__
-#define CONFIG_UNLZMA 1
-#define ENABLE_UNLZMA 1
-#define IF_UNLZMA(...) __VA_ARGS__
-#define IF_NOT_UNLZMA(...)
-#undef CONFIG_FEATURE_LZMA_FAST
-#define ENABLE_FEATURE_LZMA_FAST 0
-#define IF_FEATURE_LZMA_FAST(...)
-#define IF_NOT_FEATURE_LZMA_FAST(...) __VA_ARGS__
-#undef CONFIG_LZMA
-#define ENABLE_LZMA 0
-#define IF_LZMA(...)
-#define IF_NOT_LZMA(...) __VA_ARGS__
-#define CONFIG_UNXZ 1
-#define ENABLE_UNXZ 1
-#define IF_UNXZ(...) __VA_ARGS__
-#define IF_NOT_UNXZ(...)
-#undef CONFIG_XZ
-#define ENABLE_XZ 0
-#define IF_XZ(...)
-#define IF_NOT_XZ(...) __VA_ARGS__
-#define CONFIG_UNZIP 1
-#define ENABLE_UNZIP 1
-#define IF_UNZIP(...) __VA_ARGS__
-#define IF_NOT_UNZIP(...)
-
-/*
- * Coreutils
- */
-#define CONFIG_BASENAME 1
-#define ENABLE_BASENAME 1
-#define IF_BASENAME(...) __VA_ARGS__
-#define IF_NOT_BASENAME(...)
-#define CONFIG_CAT 1
-#define ENABLE_CAT 1
-#define IF_CAT(...) __VA_ARGS__
-#define IF_NOT_CAT(...)
-#define CONFIG_DATE 1
-#define ENABLE_DATE 1
-#define IF_DATE(...) __VA_ARGS__
-#define IF_NOT_DATE(...)
-#define CONFIG_FEATURE_DATE_ISOFMT 1
-#define ENABLE_FEATURE_DATE_ISOFMT 1
-#define IF_FEATURE_DATE_ISOFMT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DATE_ISOFMT(...)
-#undef CONFIG_FEATURE_DATE_NANO
-#define ENABLE_FEATURE_DATE_NANO 0
-#define IF_FEATURE_DATE_NANO(...)
-#define IF_NOT_FEATURE_DATE_NANO(...) __VA_ARGS__
-#define CONFIG_FEATURE_DATE_COMPAT 1
-#define ENABLE_FEATURE_DATE_COMPAT 1
-#define IF_FEATURE_DATE_COMPAT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DATE_COMPAT(...)
-#undef CONFIG_HOSTID
-#define ENABLE_HOSTID 0
-#define IF_HOSTID(...)
-#define IF_NOT_HOSTID(...) __VA_ARGS__
-#define CONFIG_ID 1
-#define ENABLE_ID 1
-#define IF_ID(...) __VA_ARGS__
-#define IF_NOT_ID(...)
-#define CONFIG_GROUPS 1
-#define ENABLE_GROUPS 1
-#define IF_GROUPS(...) __VA_ARGS__
-#define IF_NOT_GROUPS(...)
-#define CONFIG_TEST 1
-#define ENABLE_TEST 1
-#define IF_TEST(...) __VA_ARGS__
-#define IF_NOT_TEST(...)
-#undef CONFIG_FEATURE_TEST_64
-#define ENABLE_FEATURE_TEST_64 0
-#define IF_FEATURE_TEST_64(...)
-#define IF_NOT_FEATURE_TEST_64(...) __VA_ARGS__
-#define CONFIG_TOUCH 1
-#define ENABLE_TOUCH 1
-#define IF_TOUCH(...) __VA_ARGS__
-#define IF_NOT_TOUCH(...)
-#undef CONFIG_FEATURE_TOUCH_SUSV3
-#define ENABLE_FEATURE_TOUCH_SUSV3 0
-#define IF_FEATURE_TOUCH_SUSV3(...)
-#define IF_NOT_FEATURE_TOUCH_SUSV3(...) __VA_ARGS__
-#define CONFIG_TR 1
-#define ENABLE_TR 1
-#define IF_TR(...) __VA_ARGS__
-#define IF_NOT_TR(...)
-#define CONFIG_FEATURE_TR_CLASSES 1
-#define ENABLE_FEATURE_TR_CLASSES 1
-#define IF_FEATURE_TR_CLASSES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TR_CLASSES(...)
-#undef CONFIG_FEATURE_TR_EQUIV
-#define ENABLE_FEATURE_TR_EQUIV 0
-#define IF_FEATURE_TR_EQUIV(...)
-#define IF_NOT_FEATURE_TR_EQUIV(...) __VA_ARGS__
-#define CONFIG_BASE64 1
-#define ENABLE_BASE64 1
-#define IF_BASE64(...) __VA_ARGS__
-#define IF_NOT_BASE64(...)
-#undef CONFIG_WHO
-#define ENABLE_WHO 0
-#define IF_WHO(...)
-#define IF_NOT_WHO(...) __VA_ARGS__
-#undef CONFIG_USERS
-#define ENABLE_USERS 0
-#define IF_USERS(...)
-#define IF_NOT_USERS(...) __VA_ARGS__
-#define CONFIG_CAL 1
-#define ENABLE_CAL 1
-#define IF_CAL(...) __VA_ARGS__
-#define IF_NOT_CAL(...)
-#define CONFIG_CATV 1
-#define ENABLE_CATV 1
-#define IF_CATV(...) __VA_ARGS__
-#define IF_NOT_CATV(...)
-#define CONFIG_CHGRP 1
-#define ENABLE_CHGRP 1
-#define IF_CHGRP(...) __VA_ARGS__
-#define IF_NOT_CHGRP(...)
-#define CONFIG_CHMOD 1
-#define ENABLE_CHMOD 1
-#define IF_CHMOD(...) __VA_ARGS__
-#define IF_NOT_CHMOD(...)
-#define CONFIG_CHOWN 1
-#define ENABLE_CHOWN 1
-#define IF_CHOWN(...) __VA_ARGS__
-#define IF_NOT_CHOWN(...)
-#define CONFIG_FEATURE_CHOWN_LONG_OPTIONS 1
-#define ENABLE_FEATURE_CHOWN_LONG_OPTIONS 1
-#define IF_FEATURE_CHOWN_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CHOWN_LONG_OPTIONS(...)
-#define CONFIG_CHROOT 1
-#define ENABLE_CHROOT 1
-#define IF_CHROOT(...) __VA_ARGS__
-#define IF_NOT_CHROOT(...)
-#undef CONFIG_CKSUM
-#define ENABLE_CKSUM 0
-#define IF_CKSUM(...)
-#define IF_NOT_CKSUM(...) __VA_ARGS__
-#undef CONFIG_COMM
-#define ENABLE_COMM 0
-#define IF_COMM(...)
-#define IF_NOT_COMM(...) __VA_ARGS__
-#define CONFIG_CP 1
-#define ENABLE_CP 1
-#define IF_CP(...) __VA_ARGS__
-#define IF_NOT_CP(...)
-#define CONFIG_FEATURE_CP_LONG_OPTIONS 1
-#define ENABLE_FEATURE_CP_LONG_OPTIONS 1
-#define IF_FEATURE_CP_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CP_LONG_OPTIONS(...)
-#define CONFIG_CUT 1
-#define ENABLE_CUT 1
-#define IF_CUT(...) __VA_ARGS__
-#define IF_NOT_CUT(...)
-#define CONFIG_DD 1
-#define ENABLE_DD 1
-#define IF_DD(...) __VA_ARGS__
-#define IF_NOT_DD(...)
-#define CONFIG_FEATURE_DD_SIGNAL_HANDLING 1
-#define ENABLE_FEATURE_DD_SIGNAL_HANDLING 1
-#define IF_FEATURE_DD_SIGNAL_HANDLING(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DD_SIGNAL_HANDLING(...)
-#define CONFIG_FEATURE_DD_THIRD_STATUS_LINE 1
-#define ENABLE_FEATURE_DD_THIRD_STATUS_LINE 1
-#define IF_FEATURE_DD_THIRD_STATUS_LINE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DD_THIRD_STATUS_LINE(...)
-#define CONFIG_FEATURE_DD_IBS_OBS 1
-#define ENABLE_FEATURE_DD_IBS_OBS 1
-#define IF_FEATURE_DD_IBS_OBS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DD_IBS_OBS(...)
-#define CONFIG_DF 1
-#define ENABLE_DF 1
-#define IF_DF(...) __VA_ARGS__
-#define IF_NOT_DF(...)
-#define CONFIG_FEATURE_DF_FANCY 1
-#define ENABLE_FEATURE_DF_FANCY 1
-#define IF_FEATURE_DF_FANCY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DF_FANCY(...)
-#define CONFIG_DIRNAME 1
-#define ENABLE_DIRNAME 1
-#define IF_DIRNAME(...) __VA_ARGS__
-#define IF_NOT_DIRNAME(...)
-#define CONFIG_DOS2UNIX 1
-#define ENABLE_DOS2UNIX 1
-#define IF_DOS2UNIX(...) __VA_ARGS__
-#define IF_NOT_DOS2UNIX(...)
-#define CONFIG_UNIX2DOS 1
-#define ENABLE_UNIX2DOS 1
-#define IF_UNIX2DOS(...) __VA_ARGS__
-#define IF_NOT_UNIX2DOS(...)
-#define CONFIG_DU 1
-#define ENABLE_DU 1
-#define IF_DU(...) __VA_ARGS__
-#define IF_NOT_DU(...)
-#define CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K 1
-#define ENABLE_FEATURE_DU_DEFAULT_BLOCKSIZE_1K 1
-#define IF_FEATURE_DU_DEFAULT_BLOCKSIZE_1K(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DU_DEFAULT_BLOCKSIZE_1K(...)
-#define CONFIG_ECHO 1
-#define ENABLE_ECHO 1
-#define IF_ECHO(...) __VA_ARGS__
-#define IF_NOT_ECHO(...)
-#define CONFIG_FEATURE_FANCY_ECHO 1
-#define ENABLE_FEATURE_FANCY_ECHO 1
-#define IF_FEATURE_FANCY_ECHO(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FANCY_ECHO(...)
-#define CONFIG_ENV 1
-#define ENABLE_ENV 1
-#define IF_ENV(...) __VA_ARGS__
-#define IF_NOT_ENV(...)
-#undef CONFIG_FEATURE_ENV_LONG_OPTIONS
-#define ENABLE_FEATURE_ENV_LONG_OPTIONS 0
-#define IF_FEATURE_ENV_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_ENV_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_EXPAND 1
-#define ENABLE_EXPAND 1
-#define IF_EXPAND(...) __VA_ARGS__
-#define IF_NOT_EXPAND(...)
-#undef CONFIG_FEATURE_EXPAND_LONG_OPTIONS
-#define ENABLE_FEATURE_EXPAND_LONG_OPTIONS 0
-#define IF_FEATURE_EXPAND_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_EXPAND_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_EXPR 1
-#define ENABLE_EXPR 1
-#define IF_EXPR(...) __VA_ARGS__
-#define IF_NOT_EXPR(...)
-#define CONFIG_EXPR_MATH_SUPPORT_64 1
-#define ENABLE_EXPR_MATH_SUPPORT_64 1
-#define IF_EXPR_MATH_SUPPORT_64(...) __VA_ARGS__
-#define IF_NOT_EXPR_MATH_SUPPORT_64(...)
-#define CONFIG_FALSE 1
-#define ENABLE_FALSE 1
-#define IF_FALSE(...) __VA_ARGS__
-#define IF_NOT_FALSE(...)
-#define CONFIG_FOLD 1
-#define ENABLE_FOLD 1
-#define IF_FOLD(...) __VA_ARGS__
-#define IF_NOT_FOLD(...)
-#undef CONFIG_FSYNC
-#define ENABLE_FSYNC 0
-#define IF_FSYNC(...)
-#define IF_NOT_FSYNC(...) __VA_ARGS__
-#define CONFIG_HEAD 1
-#define ENABLE_HEAD 1
-#define IF_HEAD(...) __VA_ARGS__
-#define IF_NOT_HEAD(...)
-#undef CONFIG_FEATURE_FANCY_HEAD
-#define ENABLE_FEATURE_FANCY_HEAD 0
-#define IF_FEATURE_FANCY_HEAD(...)
-#define IF_NOT_FEATURE_FANCY_HEAD(...) __VA_ARGS__
-#define CONFIG_INSTALL 1
-#define ENABLE_INSTALL 1
-#define IF_INSTALL(...) __VA_ARGS__
-#define IF_NOT_INSTALL(...)
-#undef CONFIG_FEATURE_INSTALL_LONG_OPTIONS
-#define ENABLE_FEATURE_INSTALL_LONG_OPTIONS 0
-#define IF_FEATURE_INSTALL_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_INSTALL_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_LN 1
-#define ENABLE_LN 1
-#define IF_LN(...) __VA_ARGS__
-#define IF_NOT_LN(...)
-#undef CONFIG_LOGNAME
-#define ENABLE_LOGNAME 0
-#define IF_LOGNAME(...)
-#define IF_NOT_LOGNAME(...) __VA_ARGS__
-#define CONFIG_LS 1
-#define ENABLE_LS 1
-#define IF_LS(...) __VA_ARGS__
-#define IF_NOT_LS(...)
-#define CONFIG_FEATURE_LS_FILETYPES 1
-#define ENABLE_FEATURE_LS_FILETYPES 1
-#define IF_FEATURE_LS_FILETYPES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_FILETYPES(...)
-#define CONFIG_FEATURE_LS_FOLLOWLINKS 1
-#define ENABLE_FEATURE_LS_FOLLOWLINKS 1
-#define IF_FEATURE_LS_FOLLOWLINKS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_FOLLOWLINKS(...)
-#define CONFIG_FEATURE_LS_RECURSIVE 1
-#define ENABLE_FEATURE_LS_RECURSIVE 1
-#define IF_FEATURE_LS_RECURSIVE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_RECURSIVE(...)
-#define CONFIG_FEATURE_LS_SORTFILES 1
-#define ENABLE_FEATURE_LS_SORTFILES 1
-#define IF_FEATURE_LS_SORTFILES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_SORTFILES(...)
-#define CONFIG_FEATURE_LS_TIMESTAMPS 1
-#define ENABLE_FEATURE_LS_TIMESTAMPS 1
-#define IF_FEATURE_LS_TIMESTAMPS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_TIMESTAMPS(...)
-#define CONFIG_FEATURE_LS_USERNAME 1
-#define ENABLE_FEATURE_LS_USERNAME 1
-#define IF_FEATURE_LS_USERNAME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_USERNAME(...)
-#define CONFIG_FEATURE_LS_COLOR 1
-#define ENABLE_FEATURE_LS_COLOR 1
-#define IF_FEATURE_LS_COLOR(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LS_COLOR(...)
-#undef CONFIG_FEATURE_LS_COLOR_IS_DEFAULT
-#define ENABLE_FEATURE_LS_COLOR_IS_DEFAULT 0
-#define IF_FEATURE_LS_COLOR_IS_DEFAULT(...)
-#define IF_NOT_FEATURE_LS_COLOR_IS_DEFAULT(...) __VA_ARGS__
-#define CONFIG_MD5SUM 1
-#define ENABLE_MD5SUM 1
-#define IF_MD5SUM(...) __VA_ARGS__
-#define IF_NOT_MD5SUM(...)
-#define CONFIG_MKDIR 1
-#define ENABLE_MKDIR 1
-#define IF_MKDIR(...) __VA_ARGS__
-#define IF_NOT_MKDIR(...)
-#undef CONFIG_FEATURE_MKDIR_LONG_OPTIONS
-#define ENABLE_FEATURE_MKDIR_LONG_OPTIONS 0
-#define IF_FEATURE_MKDIR_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_MKDIR_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_MKFIFO 1
-#define ENABLE_MKFIFO 1
-#define IF_MKFIFO(...) __VA_ARGS__
-#define IF_NOT_MKFIFO(...)
-#define CONFIG_MKNOD 1
-#define ENABLE_MKNOD 1
-#define IF_MKNOD(...) __VA_ARGS__
-#define IF_NOT_MKNOD(...)
-#define CONFIG_MV 1
-#define ENABLE_MV 1
-#define IF_MV(...) __VA_ARGS__
-#define IF_NOT_MV(...)
-#undef CONFIG_FEATURE_MV_LONG_OPTIONS
-#define ENABLE_FEATURE_MV_LONG_OPTIONS 0
-#define IF_FEATURE_MV_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_MV_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_NICE 1
-#define ENABLE_NICE 1
-#define IF_NICE(...) __VA_ARGS__
-#define IF_NOT_NICE(...)
-#define CONFIG_NOHUP 1
-#define ENABLE_NOHUP 1
-#define IF_NOHUP(...) __VA_ARGS__
-#define IF_NOT_NOHUP(...)
-#define CONFIG_OD 1
-#define ENABLE_OD 1
-#define IF_OD(...) __VA_ARGS__
-#define IF_NOT_OD(...)
-#define CONFIG_PRINTENV 1
-#define ENABLE_PRINTENV 1
-#define IF_PRINTENV(...) __VA_ARGS__
-#define IF_NOT_PRINTENV(...)
-#define CONFIG_PRINTF 1
-#define ENABLE_PRINTF 1
-#define IF_PRINTF(...) __VA_ARGS__
-#define IF_NOT_PRINTF(...)
-#define CONFIG_PWD 1
-#define ENABLE_PWD 1
-#define IF_PWD(...) __VA_ARGS__
-#define IF_NOT_PWD(...)
-#define CONFIG_READLINK 1
-#define ENABLE_READLINK 1
-#define IF_READLINK(...) __VA_ARGS__
-#define IF_NOT_READLINK(...)
-#define CONFIG_FEATURE_READLINK_FOLLOW 1
-#define ENABLE_FEATURE_READLINK_FOLLOW 1
-#define IF_FEATURE_READLINK_FOLLOW(...) __VA_ARGS__
-#define IF_NOT_FEATURE_READLINK_FOLLOW(...)
-#define CONFIG_REALPATH 1
-#define ENABLE_REALPATH 1
-#define IF_REALPATH(...) __VA_ARGS__
-#define IF_NOT_REALPATH(...)
-#define CONFIG_RM 1
-#define ENABLE_RM 1
-#define IF_RM(...) __VA_ARGS__
-#define IF_NOT_RM(...)
-#define CONFIG_RMDIR 1
-#define ENABLE_RMDIR 1
-#define IF_RMDIR(...) __VA_ARGS__
-#define IF_NOT_RMDIR(...)
-#define CONFIG_FEATURE_RMDIR_LONG_OPTIONS 1
-#define ENABLE_FEATURE_RMDIR_LONG_OPTIONS 1
-#define IF_FEATURE_RMDIR_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_RMDIR_LONG_OPTIONS(...)
-#define CONFIG_SEQ 1
-#define ENABLE_SEQ 1
-#define IF_SEQ(...) __VA_ARGS__
-#define IF_NOT_SEQ(...)
-#define CONFIG_SHA1SUM 1
-#define ENABLE_SHA1SUM 1
-#define IF_SHA1SUM(...) __VA_ARGS__
-#define IF_NOT_SHA1SUM(...)
-#define CONFIG_SHA256SUM 1
-#define ENABLE_SHA256SUM 1
-#define IF_SHA256SUM(...) __VA_ARGS__
-#define IF_NOT_SHA256SUM(...)
-#define CONFIG_SHA512SUM 1
-#define ENABLE_SHA512SUM 1
-#define IF_SHA512SUM(...) __VA_ARGS__
-#define IF_NOT_SHA512SUM(...)
-#undef CONFIG_SHA3SUM
-#define ENABLE_SHA3SUM 0
-#define IF_SHA3SUM(...)
-#define IF_NOT_SHA3SUM(...) __VA_ARGS__
-#define CONFIG_SLEEP 1
-#define ENABLE_SLEEP 1
-#define IF_SLEEP(...) __VA_ARGS__
-#define IF_NOT_SLEEP(...)
-#define CONFIG_FEATURE_FANCY_SLEEP 1
-#define ENABLE_FEATURE_FANCY_SLEEP 1
-#define IF_FEATURE_FANCY_SLEEP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FANCY_SLEEP(...)
-#define CONFIG_FEATURE_FLOAT_SLEEP 1
-#define ENABLE_FEATURE_FLOAT_SLEEP 1
-#define IF_FEATURE_FLOAT_SLEEP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FLOAT_SLEEP(...)
-#define CONFIG_SORT 1
-#define ENABLE_SORT 1
-#define IF_SORT(...) __VA_ARGS__
-#define IF_NOT_SORT(...)
-#undef CONFIG_FEATURE_SORT_BIG
-#define ENABLE_FEATURE_SORT_BIG 0
-#define IF_FEATURE_SORT_BIG(...)
-#define IF_NOT_FEATURE_SORT_BIG(...) __VA_ARGS__
-#define CONFIG_SPLIT 1
-#define ENABLE_SPLIT 1
-#define IF_SPLIT(...) __VA_ARGS__
-#define IF_NOT_SPLIT(...)
-#undef CONFIG_FEATURE_SPLIT_FANCY
-#define ENABLE_FEATURE_SPLIT_FANCY 0
-#define IF_FEATURE_SPLIT_FANCY(...)
-#define IF_NOT_FEATURE_SPLIT_FANCY(...) __VA_ARGS__
-#define CONFIG_STAT 1
-#define ENABLE_STAT 1
-#define IF_STAT(...) __VA_ARGS__
-#define IF_NOT_STAT(...)
-#undef CONFIG_FEATURE_STAT_FORMAT
-#define ENABLE_FEATURE_STAT_FORMAT 0
-#define IF_FEATURE_STAT_FORMAT(...)
-#define IF_NOT_FEATURE_STAT_FORMAT(...) __VA_ARGS__
-#define CONFIG_STTY 1
-#define ENABLE_STTY 1
-#define IF_STTY(...) __VA_ARGS__
-#define IF_NOT_STTY(...)
-#undef CONFIG_SUM
-#define ENABLE_SUM 0
-#define IF_SUM(...)
-#define IF_NOT_SUM(...) __VA_ARGS__
-#define CONFIG_SYNC 1
-#define ENABLE_SYNC 1
-#define IF_SYNC(...) __VA_ARGS__
-#define IF_NOT_SYNC(...)
-#define CONFIG_TAC 1
-#define ENABLE_TAC 1
-#define IF_TAC(...) __VA_ARGS__
-#define IF_NOT_TAC(...)
-#define CONFIG_TAIL 1
-#define ENABLE_TAIL 1
-#define IF_TAIL(...) __VA_ARGS__
-#define IF_NOT_TAIL(...)
-#define CONFIG_FEATURE_FANCY_TAIL 1
-#define ENABLE_FEATURE_FANCY_TAIL 1
-#define IF_FEATURE_FANCY_TAIL(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FANCY_TAIL(...)
-#define CONFIG_TEE 1
-#define ENABLE_TEE 1
-#define IF_TEE(...) __VA_ARGS__
-#define IF_NOT_TEE(...)
-#undef CONFIG_FEATURE_TEE_USE_BLOCK_IO
-#define ENABLE_FEATURE_TEE_USE_BLOCK_IO 0
-#define IF_FEATURE_TEE_USE_BLOCK_IO(...)
-#define IF_NOT_FEATURE_TEE_USE_BLOCK_IO(...) __VA_ARGS__
-#define CONFIG_TRUE 1
-#define ENABLE_TRUE 1
-#define IF_TRUE(...) __VA_ARGS__
-#define IF_NOT_TRUE(...)
-#undef CONFIG_TTY
-#define ENABLE_TTY 0
-#define IF_TTY(...)
-#define IF_NOT_TTY(...) __VA_ARGS__
-#define CONFIG_UNAME 1
-#define ENABLE_UNAME 1
-#define IF_UNAME(...) __VA_ARGS__
-#define IF_NOT_UNAME(...)
-#define CONFIG_UNEXPAND 1
-#define ENABLE_UNEXPAND 1
-#define IF_UNEXPAND(...) __VA_ARGS__
-#define IF_NOT_UNEXPAND(...)
-#define CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS 1
-#define ENABLE_FEATURE_UNEXPAND_LONG_OPTIONS 1
-#define IF_FEATURE_UNEXPAND_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_UNEXPAND_LONG_OPTIONS(...)
-#define CONFIG_UNIQ 1
-#define ENABLE_UNIQ 1
-#define IF_UNIQ(...) __VA_ARGS__
-#define IF_NOT_UNIQ(...)
-#define CONFIG_USLEEP 1
-#define ENABLE_USLEEP 1
-#define IF_USLEEP(...) __VA_ARGS__
-#define IF_NOT_USLEEP(...)
-#define CONFIG_UUDECODE 1
-#define ENABLE_UUDECODE 1
-#define IF_UUDECODE(...) __VA_ARGS__
-#define IF_NOT_UUDECODE(...)
-#define CONFIG_UUENCODE 1
-#define ENABLE_UUENCODE 1
-#define IF_UUENCODE(...) __VA_ARGS__
-#define IF_NOT_UUENCODE(...)
-#define CONFIG_WC 1
-#define ENABLE_WC 1
-#define IF_WC(...) __VA_ARGS__
-#define IF_NOT_WC(...)
-#undef CONFIG_FEATURE_WC_LARGE
-#define ENABLE_FEATURE_WC_LARGE 0
-#define IF_FEATURE_WC_LARGE(...)
-#define IF_NOT_FEATURE_WC_LARGE(...) __VA_ARGS__
-#define CONFIG_WHOAMI 1
-#define ENABLE_WHOAMI 1
-#define IF_WHOAMI(...) __VA_ARGS__
-#define IF_NOT_WHOAMI(...)
-#define CONFIG_YES 1
-#define ENABLE_YES 1
-#define IF_YES(...) __VA_ARGS__
-#define IF_NOT_YES(...)
-
-/*
- * Common options for cp and mv
- */
-#define CONFIG_FEATURE_PRESERVE_HARDLINKS 1
-#define ENABLE_FEATURE_PRESERVE_HARDLINKS 1
-#define IF_FEATURE_PRESERVE_HARDLINKS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PRESERVE_HARDLINKS(...)
-
-/*
- * Common options for ls, more and telnet
- */
-#define CONFIG_FEATURE_AUTOWIDTH 1
-#define ENABLE_FEATURE_AUTOWIDTH 1
-#define IF_FEATURE_AUTOWIDTH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_AUTOWIDTH(...)
-
-/*
- * Common options for df, du, ls
- */
-#define CONFIG_FEATURE_HUMAN_READABLE 1
-#define ENABLE_FEATURE_HUMAN_READABLE 1
-#define IF_FEATURE_HUMAN_READABLE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_HUMAN_READABLE(...)
-
-/*
- * Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
- */
-#define CONFIG_FEATURE_MD5_SHA1_SUM_CHECK 1
-#define ENABLE_FEATURE_MD5_SHA1_SUM_CHECK 1
-#define IF_FEATURE_MD5_SHA1_SUM_CHECK(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MD5_SHA1_SUM_CHECK(...)
-
-/*
- * Console Utilities
- */
-#undef CONFIG_CHVT
-#define ENABLE_CHVT 0
-#define IF_CHVT(...)
-#define IF_NOT_CHVT(...) __VA_ARGS__
-#undef CONFIG_FGCONSOLE
-#define ENABLE_FGCONSOLE 0
-#define IF_FGCONSOLE(...)
-#define IF_NOT_FGCONSOLE(...) __VA_ARGS__
-#define CONFIG_CLEAR 1
-#define ENABLE_CLEAR 1
-#define IF_CLEAR(...) __VA_ARGS__
-#define IF_NOT_CLEAR(...)
-#undef CONFIG_DEALLOCVT
-#define ENABLE_DEALLOCVT 0
-#define IF_DEALLOCVT(...)
-#define IF_NOT_DEALLOCVT(...) __VA_ARGS__
-#undef CONFIG_DUMPKMAP
-#define ENABLE_DUMPKMAP 0
-#define IF_DUMPKMAP(...)
-#define IF_NOT_DUMPKMAP(...) __VA_ARGS__
-#undef CONFIG_KBD_MODE
-#define ENABLE_KBD_MODE 0
-#define IF_KBD_MODE(...)
-#define IF_NOT_KBD_MODE(...) __VA_ARGS__
-#undef CONFIG_LOADFONT
-#define ENABLE_LOADFONT 0
-#define IF_LOADFONT(...)
-#define IF_NOT_LOADFONT(...) __VA_ARGS__
-#undef CONFIG_LOADKMAP
-#define ENABLE_LOADKMAP 0
-#define IF_LOADKMAP(...)
-#define IF_NOT_LOADKMAP(...) __VA_ARGS__
-#undef CONFIG_OPENVT
-#define ENABLE_OPENVT 0
-#define IF_OPENVT(...)
-#define IF_NOT_OPENVT(...) __VA_ARGS__
-#define CONFIG_RESET 1
-#define ENABLE_RESET 1
-#define IF_RESET(...) __VA_ARGS__
-#define IF_NOT_RESET(...)
-#define CONFIG_RESIZE 1
-#define ENABLE_RESIZE 1
-#define IF_RESIZE(...) __VA_ARGS__
-#define IF_NOT_RESIZE(...)
-#undef CONFIG_FEATURE_RESIZE_PRINT
-#define ENABLE_FEATURE_RESIZE_PRINT 0
-#define IF_FEATURE_RESIZE_PRINT(...)
-#define IF_NOT_FEATURE_RESIZE_PRINT(...) __VA_ARGS__
-#define CONFIG_SETCONSOLE 1
-#define ENABLE_SETCONSOLE 1
-#define IF_SETCONSOLE(...) __VA_ARGS__
-#define IF_NOT_SETCONSOLE(...)
-#undef CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
-#define ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS 0
-#define IF_FEATURE_SETCONSOLE_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_SETCONSOLE_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_SETFONT
-#define ENABLE_SETFONT 0
-#define IF_SETFONT(...)
-#define IF_NOT_SETFONT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SETFONT_TEXTUAL_MAP
-#define ENABLE_FEATURE_SETFONT_TEXTUAL_MAP 0
-#define IF_FEATURE_SETFONT_TEXTUAL_MAP(...)
-#define IF_NOT_FEATURE_SETFONT_TEXTUAL_MAP(...) __VA_ARGS__
-#define CONFIG_DEFAULT_SETFONT_DIR ""
-#define ENABLE_DEFAULT_SETFONT_DIR 1
-#define IF_DEFAULT_SETFONT_DIR(...) __VA_ARGS__
-#define IF_NOT_DEFAULT_SETFONT_DIR(...)
-#undef CONFIG_SETKEYCODES
-#define ENABLE_SETKEYCODES 0
-#define IF_SETKEYCODES(...)
-#define IF_NOT_SETKEYCODES(...) __VA_ARGS__
-#undef CONFIG_SETLOGCONS
-#define ENABLE_SETLOGCONS 0
-#define IF_SETLOGCONS(...)
-#define IF_NOT_SETLOGCONS(...) __VA_ARGS__
-#undef CONFIG_SHOWKEY
-#define ENABLE_SHOWKEY 0
-#define IF_SHOWKEY(...)
-#define IF_NOT_SHOWKEY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LOADFONT_PSF2
-#define ENABLE_FEATURE_LOADFONT_PSF2 0
-#define IF_FEATURE_LOADFONT_PSF2(...)
-#define IF_NOT_FEATURE_LOADFONT_PSF2(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LOADFONT_RAW
-#define ENABLE_FEATURE_LOADFONT_RAW 0
-#define IF_FEATURE_LOADFONT_RAW(...)
-#define IF_NOT_FEATURE_LOADFONT_RAW(...) __VA_ARGS__
-
-/*
- * Debian Utilities
- */
-#define CONFIG_MKTEMP 1
-#define ENABLE_MKTEMP 1
-#define IF_MKTEMP(...) __VA_ARGS__
-#define IF_NOT_MKTEMP(...)
-#undef CONFIG_PIPE_PROGRESS
-#define ENABLE_PIPE_PROGRESS 0
-#define IF_PIPE_PROGRESS(...)
-#define IF_NOT_PIPE_PROGRESS(...) __VA_ARGS__
-#define CONFIG_RUN_PARTS 1
-#define ENABLE_RUN_PARTS 1
-#define IF_RUN_PARTS(...) __VA_ARGS__
-#define IF_NOT_RUN_PARTS(...)
-#undef CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS
-#define ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS 0
-#define IF_FEATURE_RUN_PARTS_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_RUN_PARTS_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_FEATURE_RUN_PARTS_FANCY 1
-#define ENABLE_FEATURE_RUN_PARTS_FANCY 1
-#define IF_FEATURE_RUN_PARTS_FANCY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_RUN_PARTS_FANCY(...)
-#undef CONFIG_START_STOP_DAEMON
-#define ENABLE_START_STOP_DAEMON 0
-#define IF_START_STOP_DAEMON(...)
-#define IF_NOT_START_STOP_DAEMON(...) __VA_ARGS__
-#undef CONFIG_FEATURE_START_STOP_DAEMON_FANCY
-#define ENABLE_FEATURE_START_STOP_DAEMON_FANCY 0
-#define IF_FEATURE_START_STOP_DAEMON_FANCY(...)
-#define IF_NOT_FEATURE_START_STOP_DAEMON_FANCY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
-#define ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS 0
-#define IF_FEATURE_START_STOP_DAEMON_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_START_STOP_DAEMON_LONG_OPTIONS(...) __VA_ARGS__
-#define CONFIG_WHICH 1
-#define ENABLE_WHICH 1
-#define IF_WHICH(...) __VA_ARGS__
-#define IF_NOT_WHICH(...)
-
-/*
- * Editors
- */
-#define CONFIG_PATCH 1
-#define ENABLE_PATCH 1
-#define IF_PATCH(...) __VA_ARGS__
-#define IF_NOT_PATCH(...)
-#undef CONFIG_VI
-#define ENABLE_VI 0
-#define IF_VI(...)
-#define IF_NOT_VI(...) __VA_ARGS__
-#define CONFIG_FEATURE_VI_MAX_LEN 0
-#define ENABLE_FEATURE_VI_MAX_LEN 1
-#define IF_FEATURE_VI_MAX_LEN(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VI_MAX_LEN(...)
-#undef CONFIG_FEATURE_VI_8BIT
-#define ENABLE_FEATURE_VI_8BIT 0
-#define IF_FEATURE_VI_8BIT(...)
-#define IF_NOT_FEATURE_VI_8BIT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_COLON
-#define ENABLE_FEATURE_VI_COLON 0
-#define IF_FEATURE_VI_COLON(...)
-#define IF_NOT_FEATURE_VI_COLON(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_YANKMARK
-#define ENABLE_FEATURE_VI_YANKMARK 0
-#define IF_FEATURE_VI_YANKMARK(...)
-#define IF_NOT_FEATURE_VI_YANKMARK(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_SEARCH
-#define ENABLE_FEATURE_VI_SEARCH 0
-#define IF_FEATURE_VI_SEARCH(...)
-#define IF_NOT_FEATURE_VI_SEARCH(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_REGEX_SEARCH
-#define ENABLE_FEATURE_VI_REGEX_SEARCH 0
-#define IF_FEATURE_VI_REGEX_SEARCH(...)
-#define IF_NOT_FEATURE_VI_REGEX_SEARCH(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_USE_SIGNALS
-#define ENABLE_FEATURE_VI_USE_SIGNALS 0
-#define IF_FEATURE_VI_USE_SIGNALS(...)
-#define IF_NOT_FEATURE_VI_USE_SIGNALS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_DOT_CMD
-#define ENABLE_FEATURE_VI_DOT_CMD 0
-#define IF_FEATURE_VI_DOT_CMD(...)
-#define IF_NOT_FEATURE_VI_DOT_CMD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_READONLY
-#define ENABLE_FEATURE_VI_READONLY 0
-#define IF_FEATURE_VI_READONLY(...)
-#define IF_NOT_FEATURE_VI_READONLY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_SETOPTS
-#define ENABLE_FEATURE_VI_SETOPTS 0
-#define IF_FEATURE_VI_SETOPTS(...)
-#define IF_NOT_FEATURE_VI_SETOPTS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_SET
-#define ENABLE_FEATURE_VI_SET 0
-#define IF_FEATURE_VI_SET(...)
-#define IF_NOT_FEATURE_VI_SET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_WIN_RESIZE
-#define ENABLE_FEATURE_VI_WIN_RESIZE 0
-#define IF_FEATURE_VI_WIN_RESIZE(...)
-#define IF_NOT_FEATURE_VI_WIN_RESIZE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VI_ASK_TERMINAL
-#define ENABLE_FEATURE_VI_ASK_TERMINAL 0
-#define IF_FEATURE_VI_ASK_TERMINAL(...)
-#define IF_NOT_FEATURE_VI_ASK_TERMINAL(...) __VA_ARGS__
-#define CONFIG_AWK 1
-#define ENABLE_AWK 1
-#define IF_AWK(...) __VA_ARGS__
-#define IF_NOT_AWK(...)
-#undef CONFIG_FEATURE_AWK_LIBM
-#define ENABLE_FEATURE_AWK_LIBM 0
-#define IF_FEATURE_AWK_LIBM(...)
-#define IF_NOT_FEATURE_AWK_LIBM(...) __VA_ARGS__
-#define CONFIG_CMP 1
-#define ENABLE_CMP 1
-#define IF_CMP(...) __VA_ARGS__
-#define IF_NOT_CMP(...)
-#define CONFIG_DIFF 1
-#define ENABLE_DIFF 1
-#define IF_DIFF(...) __VA_ARGS__
-#define IF_NOT_DIFF(...)
-#define CONFIG_FEATURE_DIFF_LONG_OPTIONS 1
-#define ENABLE_FEATURE_DIFF_LONG_OPTIONS 1
-#define IF_FEATURE_DIFF_LONG_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DIFF_LONG_OPTIONS(...)
-#define CONFIG_FEATURE_DIFF_DIR 1
-#define ENABLE_FEATURE_DIFF_DIR 1
-#define IF_FEATURE_DIFF_DIR(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DIFF_DIR(...)
-#undef CONFIG_ED
-#define ENABLE_ED 0
-#define IF_ED(...)
-#define IF_NOT_ED(...) __VA_ARGS__
-#define CONFIG_SED 1
-#define ENABLE_SED 1
-#define IF_SED(...) __VA_ARGS__
-#define IF_NOT_SED(...)
-#define CONFIG_FEATURE_ALLOW_EXEC 1
-#define ENABLE_FEATURE_ALLOW_EXEC 1
-#define IF_FEATURE_ALLOW_EXEC(...) __VA_ARGS__
-#define IF_NOT_FEATURE_ALLOW_EXEC(...)
-
-/*
- * Finding Utilities
- */
-#define CONFIG_FIND 1
-#define ENABLE_FIND 1
-#define IF_FIND(...) __VA_ARGS__
-#define IF_NOT_FIND(...)
-#define CONFIG_FEATURE_FIND_PRINT0 1
-#define ENABLE_FEATURE_FIND_PRINT0 1
-#define IF_FEATURE_FIND_PRINT0(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PRINT0(...)
-#define CONFIG_FEATURE_FIND_MTIME 1
-#define ENABLE_FEATURE_FIND_MTIME 1
-#define IF_FEATURE_FIND_MTIME(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_MTIME(...)
-#define CONFIG_FEATURE_FIND_MMIN 1
-#define ENABLE_FEATURE_FIND_MMIN 1
-#define IF_FEATURE_FIND_MMIN(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_MMIN(...)
-#define CONFIG_FEATURE_FIND_PERM 1
-#define ENABLE_FEATURE_FIND_PERM 1
-#define IF_FEATURE_FIND_PERM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PERM(...)
-#define CONFIG_FEATURE_FIND_TYPE 1
-#define ENABLE_FEATURE_FIND_TYPE 1
-#define IF_FEATURE_FIND_TYPE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_TYPE(...)
-#define CONFIG_FEATURE_FIND_XDEV 1
-#define ENABLE_FEATURE_FIND_XDEV 1
-#define IF_FEATURE_FIND_XDEV(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_XDEV(...)
-#define CONFIG_FEATURE_FIND_MAXDEPTH 1
-#define ENABLE_FEATURE_FIND_MAXDEPTH 1
-#define IF_FEATURE_FIND_MAXDEPTH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_MAXDEPTH(...)
-#define CONFIG_FEATURE_FIND_NEWER 1
-#define ENABLE_FEATURE_FIND_NEWER 1
-#define IF_FEATURE_FIND_NEWER(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_NEWER(...)
-#undef CONFIG_FEATURE_FIND_INUM
-#define ENABLE_FEATURE_FIND_INUM 0
-#define IF_FEATURE_FIND_INUM(...)
-#define IF_NOT_FEATURE_FIND_INUM(...) __VA_ARGS__
-#define CONFIG_FEATURE_FIND_EXEC 1
-#define ENABLE_FEATURE_FIND_EXEC 1
-#define IF_FEATURE_FIND_EXEC(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_EXEC(...)
-#define CONFIG_FEATURE_FIND_USER 1
-#define ENABLE_FEATURE_FIND_USER 1
-#define IF_FEATURE_FIND_USER(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_USER(...)
-#define CONFIG_FEATURE_FIND_GROUP 1
-#define ENABLE_FEATURE_FIND_GROUP 1
-#define IF_FEATURE_FIND_GROUP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_GROUP(...)
-#define CONFIG_FEATURE_FIND_NOT 1
-#define ENABLE_FEATURE_FIND_NOT 1
-#define IF_FEATURE_FIND_NOT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_NOT(...)
-#define CONFIG_FEATURE_FIND_DEPTH 1
-#define ENABLE_FEATURE_FIND_DEPTH 1
-#define IF_FEATURE_FIND_DEPTH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_DEPTH(...)
-#define CONFIG_FEATURE_FIND_PAREN 1
-#define ENABLE_FEATURE_FIND_PAREN 1
-#define IF_FEATURE_FIND_PAREN(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PAREN(...)
-#define CONFIG_FEATURE_FIND_SIZE 1
-#define ENABLE_FEATURE_FIND_SIZE 1
-#define IF_FEATURE_FIND_SIZE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_SIZE(...)
-#define CONFIG_FEATURE_FIND_PRUNE 1
-#define ENABLE_FEATURE_FIND_PRUNE 1
-#define IF_FEATURE_FIND_PRUNE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PRUNE(...)
-#undef CONFIG_FEATURE_FIND_DELETE
-#define ENABLE_FEATURE_FIND_DELETE 0
-#define IF_FEATURE_FIND_DELETE(...)
-#define IF_NOT_FEATURE_FIND_DELETE(...) __VA_ARGS__
-#define CONFIG_FEATURE_FIND_PATH 1
-#define ENABLE_FEATURE_FIND_PATH 1
-#define IF_FEATURE_FIND_PATH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_PATH(...)
-#define CONFIG_FEATURE_FIND_REGEX 1
-#define ENABLE_FEATURE_FIND_REGEX 1
-#define IF_FEATURE_FIND_REGEX(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FIND_REGEX(...)
-#undef CONFIG_FEATURE_FIND_CONTEXT
-#define ENABLE_FEATURE_FIND_CONTEXT 0
-#define IF_FEATURE_FIND_CONTEXT(...)
-#define IF_NOT_FEATURE_FIND_CONTEXT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FIND_LINKS
-#define ENABLE_FEATURE_FIND_LINKS 0
-#define IF_FEATURE_FIND_LINKS(...)
-#define IF_NOT_FEATURE_FIND_LINKS(...) __VA_ARGS__
-#define CONFIG_GREP 1
-#define ENABLE_GREP 1
-#define IF_GREP(...) __VA_ARGS__
-#define IF_NOT_GREP(...)
-#define CONFIG_FEATURE_GREP_EGREP_ALIAS 1
-#define ENABLE_FEATURE_GREP_EGREP_ALIAS 1
-#define IF_FEATURE_GREP_EGREP_ALIAS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GREP_EGREP_ALIAS(...)
-#define CONFIG_FEATURE_GREP_FGREP_ALIAS 1
-#define ENABLE_FEATURE_GREP_FGREP_ALIAS 1
-#define IF_FEATURE_GREP_FGREP_ALIAS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GREP_FGREP_ALIAS(...)
-#define CONFIG_FEATURE_GREP_CONTEXT 1
-#define ENABLE_FEATURE_GREP_CONTEXT 1
-#define IF_FEATURE_GREP_CONTEXT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_GREP_CONTEXT(...)
-#define CONFIG_XARGS 1
-#define ENABLE_XARGS 1
-#define IF_XARGS(...) __VA_ARGS__
-#define IF_NOT_XARGS(...)
-#define CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION 1
-#define ENABLE_FEATURE_XARGS_SUPPORT_CONFIRMATION 1
-#define IF_FEATURE_XARGS_SUPPORT_CONFIRMATION(...) __VA_ARGS__
-#define IF_NOT_FEATURE_XARGS_SUPPORT_CONFIRMATION(...)
-#define CONFIG_FEATURE_XARGS_SUPPORT_QUOTES 1
-#define ENABLE_FEATURE_XARGS_SUPPORT_QUOTES 1
-#define IF_FEATURE_XARGS_SUPPORT_QUOTES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_XARGS_SUPPORT_QUOTES(...)
-#undef CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT
-#define ENABLE_FEATURE_XARGS_SUPPORT_TERMOPT 0
-#define IF_FEATURE_XARGS_SUPPORT_TERMOPT(...)
-#define IF_NOT_FEATURE_XARGS_SUPPORT_TERMOPT(...) __VA_ARGS__
-#define CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM 1
-#define ENABLE_FEATURE_XARGS_SUPPORT_ZERO_TERM 1
-#define IF_FEATURE_XARGS_SUPPORT_ZERO_TERM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_XARGS_SUPPORT_ZERO_TERM(...)
-
-/*
- * Init Utilities
- */
-#undef CONFIG_BOOTCHARTD
-#define ENABLE_BOOTCHARTD 0
-#define IF_BOOTCHARTD(...)
-#define IF_NOT_BOOTCHARTD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER
-#define ENABLE_FEATURE_BOOTCHARTD_BLOATED_HEADER 0
-#define IF_FEATURE_BOOTCHARTD_BLOATED_HEADER(...)
-#define IF_NOT_FEATURE_BOOTCHARTD_BLOATED_HEADER(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE
-#define ENABLE_FEATURE_BOOTCHARTD_CONFIG_FILE 0
-#define IF_FEATURE_BOOTCHARTD_CONFIG_FILE(...)
-#define IF_NOT_FEATURE_BOOTCHARTD_CONFIG_FILE(...) __VA_ARGS__
-#undef CONFIG_HALT
-#define ENABLE_HALT 0
-#define IF_HALT(...)
-#define IF_NOT_HALT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CALL_TELINIT
-#define ENABLE_FEATURE_CALL_TELINIT 0
-#define IF_FEATURE_CALL_TELINIT(...)
-#define IF_NOT_FEATURE_CALL_TELINIT(...) __VA_ARGS__
-#define CONFIG_TELINIT_PATH ""
-#define ENABLE_TELINIT_PATH 1
-#define IF_TELINIT_PATH(...) __VA_ARGS__
-#define IF_NOT_TELINIT_PATH(...)
-#undef CONFIG_INIT
-#define ENABLE_INIT 0
-#define IF_INIT(...)
-#define IF_NOT_INIT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_USE_INITTAB
-#define ENABLE_FEATURE_USE_INITTAB 0
-#define IF_FEATURE_USE_INITTAB(...)
-#define IF_NOT_FEATURE_USE_INITTAB(...) __VA_ARGS__
-#undef CONFIG_FEATURE_KILL_REMOVED
-#define ENABLE_FEATURE_KILL_REMOVED 0
-#define IF_FEATURE_KILL_REMOVED(...)
-#define IF_NOT_FEATURE_KILL_REMOVED(...) __VA_ARGS__
-#define CONFIG_FEATURE_KILL_DELAY 0
-#define ENABLE_FEATURE_KILL_DELAY 1
-#define IF_FEATURE_KILL_DELAY(...) __VA_ARGS__
-#define IF_NOT_FEATURE_KILL_DELAY(...)
-#undef CONFIG_FEATURE_INIT_SCTTY
-#define ENABLE_FEATURE_INIT_SCTTY 0
-#define IF_FEATURE_INIT_SCTTY(...)
-#define IF_NOT_FEATURE_INIT_SCTTY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INIT_SYSLOG
-#define ENABLE_FEATURE_INIT_SYSLOG 0
-#define IF_FEATURE_INIT_SYSLOG(...)
-#define IF_NOT_FEATURE_INIT_SYSLOG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_EXTRA_QUIET
-#define ENABLE_FEATURE_EXTRA_QUIET 0
-#define IF_FEATURE_EXTRA_QUIET(...)
-#define IF_NOT_FEATURE_EXTRA_QUIET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INIT_COREDUMPS
-#define ENABLE_FEATURE_INIT_COREDUMPS 0
-#define IF_FEATURE_INIT_COREDUMPS(...)
-#define IF_NOT_FEATURE_INIT_COREDUMPS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INITRD
-#define ENABLE_FEATURE_INITRD 0
-#define IF_FEATURE_INITRD(...)
-#define IF_NOT_FEATURE_INITRD(...) __VA_ARGS__
-#define CONFIG_INIT_TERMINAL_TYPE ""
-#define ENABLE_INIT_TERMINAL_TYPE 1
-#define IF_INIT_TERMINAL_TYPE(...) __VA_ARGS__
-#define IF_NOT_INIT_TERMINAL_TYPE(...)
-#undef CONFIG_MESG
-#define ENABLE_MESG 0
-#define IF_MESG(...)
-#define IF_NOT_MESG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP
-#define ENABLE_FEATURE_MESG_ENABLE_ONLY_GROUP 0
-#define IF_FEATURE_MESG_ENABLE_ONLY_GROUP(...)
-#define IF_NOT_FEATURE_MESG_ENABLE_ONLY_GROUP(...) __VA_ARGS__
-
-/*
- * Login/Password Management Utilities
- */
-#undef CONFIG_ADD_SHELL
-#define ENABLE_ADD_SHELL 0
-#define IF_ADD_SHELL(...)
-#define IF_NOT_ADD_SHELL(...) __VA_ARGS__
-#undef CONFIG_REMOVE_SHELL
-#define ENABLE_REMOVE_SHELL 0
-#define IF_REMOVE_SHELL(...)
-#define IF_NOT_REMOVE_SHELL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SHADOWPASSWDS
-#define ENABLE_FEATURE_SHADOWPASSWDS 0
-#define IF_FEATURE_SHADOWPASSWDS(...)
-#define IF_NOT_FEATURE_SHADOWPASSWDS(...) __VA_ARGS__
-#undef CONFIG_USE_BB_PWD_GRP
-#define ENABLE_USE_BB_PWD_GRP 0
-#define IF_USE_BB_PWD_GRP(...)
-#define IF_NOT_USE_BB_PWD_GRP(...) __VA_ARGS__
-#undef CONFIG_USE_BB_SHADOW
-#define ENABLE_USE_BB_SHADOW 0
-#define IF_USE_BB_SHADOW(...)
-#define IF_NOT_USE_BB_SHADOW(...) __VA_ARGS__
-#define CONFIG_USE_BB_CRYPT 1
-#define ENABLE_USE_BB_CRYPT 1
-#define IF_USE_BB_CRYPT(...) __VA_ARGS__
-#define IF_NOT_USE_BB_CRYPT(...)
-#undef CONFIG_USE_BB_CRYPT_SHA
-#define ENABLE_USE_BB_CRYPT_SHA 0
-#define IF_USE_BB_CRYPT_SHA(...)
-#define IF_NOT_USE_BB_CRYPT_SHA(...) __VA_ARGS__
-#undef CONFIG_ADDUSER
-#define ENABLE_ADDUSER 0
-#define IF_ADDUSER(...)
-#define IF_NOT_ADDUSER(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ADDUSER_LONG_OPTIONS
-#define ENABLE_FEATURE_ADDUSER_LONG_OPTIONS 0
-#define IF_FEATURE_ADDUSER_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_ADDUSER_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHECK_NAMES
-#define ENABLE_FEATURE_CHECK_NAMES 0
-#define IF_FEATURE_CHECK_NAMES(...)
-#define IF_NOT_FEATURE_CHECK_NAMES(...) __VA_ARGS__
-#define CONFIG_FIRST_SYSTEM_ID 0
-#define ENABLE_FIRST_SYSTEM_ID 1
-#define IF_FIRST_SYSTEM_ID(...) __VA_ARGS__
-#define IF_NOT_FIRST_SYSTEM_ID(...)
-#define CONFIG_LAST_SYSTEM_ID 0
-#define ENABLE_LAST_SYSTEM_ID 1
-#define IF_LAST_SYSTEM_ID(...) __VA_ARGS__
-#define IF_NOT_LAST_SYSTEM_ID(...)
-#undef CONFIG_ADDGROUP
-#define ENABLE_ADDGROUP 0
-#define IF_ADDGROUP(...)
-#define IF_NOT_ADDGROUP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS
-#define ENABLE_FEATURE_ADDGROUP_LONG_OPTIONS 0
-#define IF_FEATURE_ADDGROUP_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_ADDGROUP_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ADDUSER_TO_GROUP
-#define ENABLE_FEATURE_ADDUSER_TO_GROUP 0
-#define IF_FEATURE_ADDUSER_TO_GROUP(...)
-#define IF_NOT_FEATURE_ADDUSER_TO_GROUP(...) __VA_ARGS__
-#undef CONFIG_DELUSER
-#define ENABLE_DELUSER 0
-#define IF_DELUSER(...)
-#define IF_NOT_DELUSER(...) __VA_ARGS__
-#undef CONFIG_DELGROUP
-#define ENABLE_DELGROUP 0
-#define IF_DELGROUP(...)
-#define IF_NOT_DELGROUP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_DEL_USER_FROM_GROUP
-#define ENABLE_FEATURE_DEL_USER_FROM_GROUP 0
-#define IF_FEATURE_DEL_USER_FROM_GROUP(...)
-#define IF_NOT_FEATURE_DEL_USER_FROM_GROUP(...) __VA_ARGS__
-#undef CONFIG_GETTY
-#define ENABLE_GETTY 0
-#define IF_GETTY(...)
-#define IF_NOT_GETTY(...) __VA_ARGS__
-#undef CONFIG_LOGIN
-#define ENABLE_LOGIN 0
-#define IF_LOGIN(...)
-#define IF_NOT_LOGIN(...) __VA_ARGS__
-#undef CONFIG_LOGIN_SESSION_AS_CHILD
-#define ENABLE_LOGIN_SESSION_AS_CHILD 0
-#define IF_LOGIN_SESSION_AS_CHILD(...)
-#define IF_NOT_LOGIN_SESSION_AS_CHILD(...) __VA_ARGS__
-#undef CONFIG_PAM
-#define ENABLE_PAM 0
-#define IF_PAM(...)
-#define IF_NOT_PAM(...) __VA_ARGS__
-#undef CONFIG_LOGIN_SCRIPTS
-#define ENABLE_LOGIN_SCRIPTS 0
-#define IF_LOGIN_SCRIPTS(...)
-#define IF_NOT_LOGIN_SCRIPTS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_NOLOGIN
-#define ENABLE_FEATURE_NOLOGIN 0
-#define IF_FEATURE_NOLOGIN(...)
-#define IF_NOT_FEATURE_NOLOGIN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SECURETTY
-#define ENABLE_FEATURE_SECURETTY 0
-#define IF_FEATURE_SECURETTY(...)
-#define IF_NOT_FEATURE_SECURETTY(...) __VA_ARGS__
-#undef CONFIG_PASSWD
-#define ENABLE_PASSWD 0
-#define IF_PASSWD(...)
-#define IF_NOT_PASSWD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PASSWD_WEAK_CHECK
-#define ENABLE_FEATURE_PASSWD_WEAK_CHECK 0
-#define IF_FEATURE_PASSWD_WEAK_CHECK(...)
-#define IF_NOT_FEATURE_PASSWD_WEAK_CHECK(...) __VA_ARGS__
-#undef CONFIG_CRYPTPW
-#define ENABLE_CRYPTPW 0
-#define IF_CRYPTPW(...)
-#define IF_NOT_CRYPTPW(...) __VA_ARGS__
-#undef CONFIG_CHPASSWD
-#define ENABLE_CHPASSWD 0
-#define IF_CHPASSWD(...)
-#define IF_NOT_CHPASSWD(...) __VA_ARGS__
-#define CONFIG_FEATURE_DEFAULT_PASSWD_ALGO ""
-#define ENABLE_FEATURE_DEFAULT_PASSWD_ALGO 1
-#define IF_FEATURE_DEFAULT_PASSWD_ALGO(...) __VA_ARGS__
-#define IF_NOT_FEATURE_DEFAULT_PASSWD_ALGO(...)
-#undef CONFIG_SU
-#define ENABLE_SU 0
-#define IF_SU(...)
-#define IF_NOT_SU(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SU_SYSLOG
-#define ENABLE_FEATURE_SU_SYSLOG 0
-#define IF_FEATURE_SU_SYSLOG(...)
-#define IF_NOT_FEATURE_SU_SYSLOG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SU_CHECKS_SHELLS
-#define ENABLE_FEATURE_SU_CHECKS_SHELLS 0
-#define IF_FEATURE_SU_CHECKS_SHELLS(...)
-#define IF_NOT_FEATURE_SU_CHECKS_SHELLS(...) __VA_ARGS__
-#undef CONFIG_SULOGIN
-#define ENABLE_SULOGIN 0
-#define IF_SULOGIN(...)
-#define IF_NOT_SULOGIN(...) __VA_ARGS__
-#undef CONFIG_VLOCK
-#define ENABLE_VLOCK 0
-#define IF_VLOCK(...)
-#define IF_NOT_VLOCK(...) __VA_ARGS__
-
-/*
- * Linux Ext2 FS Progs
- */
-#define CONFIG_CHATTR 1
-#define ENABLE_CHATTR 1
-#define IF_CHATTR(...) __VA_ARGS__
-#define IF_NOT_CHATTR(...)
-#undef CONFIG_FSCK
-#define ENABLE_FSCK 0
-#define IF_FSCK(...)
-#define IF_NOT_FSCK(...) __VA_ARGS__
-#define CONFIG_LSATTR 1
-#define ENABLE_LSATTR 1
-#define IF_LSATTR(...) __VA_ARGS__
-#define IF_NOT_LSATTR(...)
-#define CONFIG_TUNE2FS 1
-#define ENABLE_TUNE2FS 1
-#define IF_TUNE2FS(...) __VA_ARGS__
-#define IF_NOT_TUNE2FS(...)
-
-/*
- * Linux Module Utilities
- */
-#define CONFIG_MODINFO 1
-#define ENABLE_MODINFO 1
-#define IF_MODINFO(...) __VA_ARGS__
-#define IF_NOT_MODINFO(...)
-#define CONFIG_MODPROBE_SMALL 1
-#define ENABLE_MODPROBE_SMALL 1
-#define IF_MODPROBE_SMALL(...) __VA_ARGS__
-#define IF_NOT_MODPROBE_SMALL(...)
-#define CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE 1
-#define ENABLE_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE 1
-#define IF_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE(...)
-#undef CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
-#define ENABLE_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED 0
-#define IF_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED(...)
-#define IF_NOT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED(...) __VA_ARGS__
-#undef CONFIG_INSMOD
-#define ENABLE_INSMOD 0
-#define IF_INSMOD(...)
-#define IF_NOT_INSMOD(...) __VA_ARGS__
-#undef CONFIG_RMMOD
-#define ENABLE_RMMOD 0
-#define IF_RMMOD(...)
-#define IF_NOT_RMMOD(...) __VA_ARGS__
-#undef CONFIG_LSMOD
-#define ENABLE_LSMOD 0
-#define IF_LSMOD(...)
-#define IF_NOT_LSMOD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
-#define ENABLE_FEATURE_LSMOD_PRETTY_2_6_OUTPUT 0
-#define IF_FEATURE_LSMOD_PRETTY_2_6_OUTPUT(...)
-#define IF_NOT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT(...) __VA_ARGS__
-#undef CONFIG_MODPROBE
-#define ENABLE_MODPROBE 0
-#define IF_MODPROBE(...)
-#define IF_NOT_MODPROBE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MODPROBE_BLACKLIST
-#define ENABLE_FEATURE_MODPROBE_BLACKLIST 0
-#define IF_FEATURE_MODPROBE_BLACKLIST(...)
-#define IF_NOT_FEATURE_MODPROBE_BLACKLIST(...) __VA_ARGS__
-#undef CONFIG_DEPMOD
-#define ENABLE_DEPMOD 0
-#define IF_DEPMOD(...)
-#define IF_NOT_DEPMOD(...) __VA_ARGS__
-
-/*
- * Options common to multiple modutils
- */
-#undef CONFIG_FEATURE_2_4_MODULES
-#define ENABLE_FEATURE_2_4_MODULES 0
-#define IF_FEATURE_2_4_MODULES(...)
-#define IF_NOT_FEATURE_2_4_MODULES(...) __VA_ARGS__
-#define CONFIG_FEATURE_INSMOD_TRY_MMAP 1
-#define ENABLE_FEATURE_INSMOD_TRY_MMAP 1
-#define IF_FEATURE_INSMOD_TRY_MMAP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_INSMOD_TRY_MMAP(...)
-#undef CONFIG_FEATURE_INSMOD_VERSION_CHECKING
-#define ENABLE_FEATURE_INSMOD_VERSION_CHECKING 0
-#define IF_FEATURE_INSMOD_VERSION_CHECKING(...)
-#define IF_NOT_FEATURE_INSMOD_VERSION_CHECKING(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
-#define ENABLE_FEATURE_INSMOD_KSYMOOPS_SYMBOLS 0
-#define IF_FEATURE_INSMOD_KSYMOOPS_SYMBOLS(...)
-#define IF_NOT_FEATURE_INSMOD_KSYMOOPS_SYMBOLS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INSMOD_LOADINKMEM
-#define ENABLE_FEATURE_INSMOD_LOADINKMEM 0
-#define IF_FEATURE_INSMOD_LOADINKMEM(...)
-#define IF_NOT_FEATURE_INSMOD_LOADINKMEM(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INSMOD_LOAD_MAP
-#define ENABLE_FEATURE_INSMOD_LOAD_MAP 0
-#define IF_FEATURE_INSMOD_LOAD_MAP(...)
-#define IF_NOT_FEATURE_INSMOD_LOAD_MAP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL
-#define ENABLE_FEATURE_INSMOD_LOAD_MAP_FULL 0
-#define IF_FEATURE_INSMOD_LOAD_MAP_FULL(...)
-#define IF_NOT_FEATURE_INSMOD_LOAD_MAP_FULL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHECK_TAINTED_MODULE
-#define ENABLE_FEATURE_CHECK_TAINTED_MODULE 0
-#define IF_FEATURE_CHECK_TAINTED_MODULE(...)
-#define IF_NOT_FEATURE_CHECK_TAINTED_MODULE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MODUTILS_ALIAS
-#define ENABLE_FEATURE_MODUTILS_ALIAS 0
-#define IF_FEATURE_MODUTILS_ALIAS(...)
-#define IF_NOT_FEATURE_MODUTILS_ALIAS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MODUTILS_SYMBOLS
-#define ENABLE_FEATURE_MODUTILS_SYMBOLS 0
-#define IF_FEATURE_MODUTILS_SYMBOLS(...)
-#define IF_NOT_FEATURE_MODUTILS_SYMBOLS(...) __VA_ARGS__
-#define CONFIG_DEFAULT_DEPMOD_FILE "modules.dep"
-#define ENABLE_DEFAULT_DEPMOD_FILE 1
-#define IF_DEFAULT_DEPMOD_FILE(...) __VA_ARGS__
-#define IF_NOT_DEFAULT_DEPMOD_FILE(...)
-
-/*
- * Linux System Utilities
- */
-#define CONFIG_BLOCKDEV 1
-#define ENABLE_BLOCKDEV 1
-#define IF_BLOCKDEV(...) __VA_ARGS__
-#define IF_NOT_BLOCKDEV(...)
-#undef CONFIG_MDEV
-#define ENABLE_MDEV 0
-#define IF_MDEV(...)
-#define IF_NOT_MDEV(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_CONF
-#define ENABLE_FEATURE_MDEV_CONF 0
-#define IF_FEATURE_MDEV_CONF(...)
-#define IF_NOT_FEATURE_MDEV_CONF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_RENAME
-#define ENABLE_FEATURE_MDEV_RENAME 0
-#define IF_FEATURE_MDEV_RENAME(...)
-#define IF_NOT_FEATURE_MDEV_RENAME(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_RENAME_REGEXP
-#define ENABLE_FEATURE_MDEV_RENAME_REGEXP 0
-#define IF_FEATURE_MDEV_RENAME_REGEXP(...)
-#define IF_NOT_FEATURE_MDEV_RENAME_REGEXP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_EXEC
-#define ENABLE_FEATURE_MDEV_EXEC 0
-#define IF_FEATURE_MDEV_EXEC(...)
-#define IF_NOT_FEATURE_MDEV_EXEC(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MDEV_LOAD_FIRMWARE
-#define ENABLE_FEATURE_MDEV_LOAD_FIRMWARE 0
-#define IF_FEATURE_MDEV_LOAD_FIRMWARE(...)
-#define IF_NOT_FEATURE_MDEV_LOAD_FIRMWARE(...) __VA_ARGS__
-#define CONFIG_REV 1
-#define ENABLE_REV 1
-#define IF_REV(...) __VA_ARGS__
-#define IF_NOT_REV(...)
-#undef CONFIG_ACPID
-#define ENABLE_ACPID 0
-#define IF_ACPID(...)
-#define IF_NOT_ACPID(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ACPID_COMPAT
-#define ENABLE_FEATURE_ACPID_COMPAT 0
-#define IF_FEATURE_ACPID_COMPAT(...)
-#define IF_NOT_FEATURE_ACPID_COMPAT(...) __VA_ARGS__
-#define CONFIG_BLKID 1
-#define ENABLE_BLKID 1
-#define IF_BLKID(...) __VA_ARGS__
-#define IF_NOT_BLKID(...)
-#define CONFIG_FEATURE_BLKID_TYPE 1
-#define ENABLE_FEATURE_BLKID_TYPE 1
-#define IF_FEATURE_BLKID_TYPE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BLKID_TYPE(...)
-#define CONFIG_DMESG 1
-#define ENABLE_DMESG 1
-#define IF_DMESG(...) __VA_ARGS__
-#define IF_NOT_DMESG(...)
-#undef CONFIG_FEATURE_DMESG_PRETTY
-#define ENABLE_FEATURE_DMESG_PRETTY 0
-#define IF_FEATURE_DMESG_PRETTY(...)
-#define IF_NOT_FEATURE_DMESG_PRETTY(...) __VA_ARGS__
-#undef CONFIG_FBSET
-#define ENABLE_FBSET 0
-#define IF_FBSET(...)
-#define IF_NOT_FBSET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FBSET_FANCY
-#define ENABLE_FEATURE_FBSET_FANCY 0
-#define IF_FEATURE_FBSET_FANCY(...)
-#define IF_NOT_FEATURE_FBSET_FANCY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FBSET_READMODE
-#define ENABLE_FEATURE_FBSET_READMODE 0
-#define IF_FEATURE_FBSET_READMODE(...)
-#define IF_NOT_FEATURE_FBSET_READMODE(...) __VA_ARGS__
-#undef CONFIG_FDFLUSH
-#define ENABLE_FDFLUSH 0
-#define IF_FDFLUSH(...)
-#define IF_NOT_FDFLUSH(...) __VA_ARGS__
-#undef CONFIG_FDFORMAT
-#define ENABLE_FDFORMAT 0
-#define IF_FDFORMAT(...)
-#define IF_NOT_FDFORMAT(...) __VA_ARGS__
-#define CONFIG_FDISK 1
-#define ENABLE_FDISK 1
-#define IF_FDISK(...) __VA_ARGS__
-#define IF_NOT_FDISK(...)
-#define CONFIG_FDISK_SUPPORT_LARGE_DISKS 1
-#define ENABLE_FDISK_SUPPORT_LARGE_DISKS 1
-#define IF_FDISK_SUPPORT_LARGE_DISKS(...) __VA_ARGS__
-#define IF_NOT_FDISK_SUPPORT_LARGE_DISKS(...)
-#define CONFIG_FEATURE_FDISK_WRITABLE 1
-#define ENABLE_FEATURE_FDISK_WRITABLE 1
-#define IF_FEATURE_FDISK_WRITABLE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_FDISK_WRITABLE(...)
-#undef CONFIG_FEATURE_AIX_LABEL
-#define ENABLE_FEATURE_AIX_LABEL 0
-#define IF_FEATURE_AIX_LABEL(...)
-#define IF_NOT_FEATURE_AIX_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SGI_LABEL
-#define ENABLE_FEATURE_SGI_LABEL 0
-#define IF_FEATURE_SGI_LABEL(...)
-#define IF_NOT_FEATURE_SGI_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SUN_LABEL
-#define ENABLE_FEATURE_SUN_LABEL 0
-#define IF_FEATURE_SUN_LABEL(...)
-#define IF_NOT_FEATURE_SUN_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_OSF_LABEL
-#define ENABLE_FEATURE_OSF_LABEL 0
-#define IF_FEATURE_OSF_LABEL(...)
-#define IF_NOT_FEATURE_OSF_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_GPT_LABEL
-#define ENABLE_FEATURE_GPT_LABEL 0
-#define IF_FEATURE_GPT_LABEL(...)
-#define IF_NOT_FEATURE_GPT_LABEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FDISK_ADVANCED
-#define ENABLE_FEATURE_FDISK_ADVANCED 0
-#define IF_FEATURE_FDISK_ADVANCED(...)
-#define IF_NOT_FEATURE_FDISK_ADVANCED(...) __VA_ARGS__
-#undef CONFIG_FINDFS
-#define ENABLE_FINDFS 0
-#define IF_FINDFS(...)
-#define IF_NOT_FINDFS(...) __VA_ARGS__
-#undef CONFIG_FLOCK
-#define ENABLE_FLOCK 0
-#define IF_FLOCK(...)
-#define IF_NOT_FLOCK(...) __VA_ARGS__
-#define CONFIG_FREERAMDISK 1
-#define ENABLE_FREERAMDISK 1
-#define IF_FREERAMDISK(...) __VA_ARGS__
-#define IF_NOT_FREERAMDISK(...)
-#undef CONFIG_FSCK_MINIX
-#define ENABLE_FSCK_MINIX 0
-#define IF_FSCK_MINIX(...)
-#define IF_NOT_FSCK_MINIX(...) __VA_ARGS__
-#define CONFIG_FSTRIM 1
-#define ENABLE_FSTRIM 1
-#define IF_FSTRIM(...) __VA_ARGS__
-#define IF_NOT_FSTRIM(...)
-#define CONFIG_MKFS_EXT2 1
-#define ENABLE_MKFS_EXT2 1
-#define IF_MKFS_EXT2(...) __VA_ARGS__
-#define IF_NOT_MKFS_EXT2(...)
-#undef CONFIG_MKFS_MINIX
-#define ENABLE_MKFS_MINIX 0
-#define IF_MKFS_MINIX(...)
-#define IF_NOT_MKFS_MINIX(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MINIX2
-#define ENABLE_FEATURE_MINIX2 0
-#define IF_FEATURE_MINIX2(...)
-#define IF_NOT_FEATURE_MINIX2(...) __VA_ARGS__
-#undef CONFIG_MKFS_REISER
-#define ENABLE_MKFS_REISER 0
-#define IF_MKFS_REISER(...)
-#define IF_NOT_MKFS_REISER(...) __VA_ARGS__
-#define CONFIG_MKFS_VFAT 1
-#define ENABLE_MKFS_VFAT 1
-#define IF_MKFS_VFAT(...) __VA_ARGS__
-#define IF_NOT_MKFS_VFAT(...)
-#define CONFIG_GETOPT 1
-#define ENABLE_GETOPT 1
-#define IF_GETOPT(...) __VA_ARGS__
-#define IF_NOT_GETOPT(...)
-#undef CONFIG_FEATURE_GETOPT_LONG
-#define ENABLE_FEATURE_GETOPT_LONG 0
-#define IF_FEATURE_GETOPT_LONG(...)
-#define IF_NOT_FEATURE_GETOPT_LONG(...) __VA_ARGS__
-#define CONFIG_HEXDUMP 1
-#define ENABLE_HEXDUMP 1
-#define IF_HEXDUMP(...) __VA_ARGS__
-#define IF_NOT_HEXDUMP(...)
-#undef CONFIG_FEATURE_HEXDUMP_REVERSE
-#define ENABLE_FEATURE_HEXDUMP_REVERSE 0
-#define IF_FEATURE_HEXDUMP_REVERSE(...)
-#define IF_NOT_FEATURE_HEXDUMP_REVERSE(...) __VA_ARGS__
-#undef CONFIG_HD
-#define ENABLE_HD 0
-#define IF_HD(...)
-#define IF_NOT_HD(...) __VA_ARGS__
-#undef CONFIG_HWCLOCK
-#define ENABLE_HWCLOCK 0
-#define IF_HWCLOCK(...)
-#define IF_NOT_HWCLOCK(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS
-#define ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS 0
-#define IF_FEATURE_HWCLOCK_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_HWCLOCK_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS
-#define ENABLE_FEATURE_HWCLOCK_ADJTIME_FHS 0
-#define IF_FEATURE_HWCLOCK_ADJTIME_FHS(...)
-#define IF_NOT_FEATURE_HWCLOCK_ADJTIME_FHS(...) __VA_ARGS__
-#undef CONFIG_IPCRM
-#define ENABLE_IPCRM 0
-#define IF_IPCRM(...)
-#define IF_NOT_IPCRM(...) __VA_ARGS__
-#undef CONFIG_IPCS
-#define ENABLE_IPCS 0
-#define IF_IPCS(...)
-#define IF_NOT_IPCS(...) __VA_ARGS__
-#define CONFIG_LOSETUP 1
-#define ENABLE_LOSETUP 1
-#define IF_LOSETUP(...) __VA_ARGS__
-#define IF_NOT_LOSETUP(...)
-#define CONFIG_LSPCI 1
-#define ENABLE_LSPCI 1
-#define IF_LSPCI(...) __VA_ARGS__
-#define IF_NOT_LSPCI(...)
-#define CONFIG_LSUSB 1
-#define ENABLE_LSUSB 1
-#define IF_LSUSB(...) __VA_ARGS__
-#define IF_NOT_LSUSB(...)
-#define CONFIG_MKSWAP 1
-#define ENABLE_MKSWAP 1
-#define IF_MKSWAP(...) __VA_ARGS__
-#define IF_NOT_MKSWAP(...)
-#undef CONFIG_FEATURE_MKSWAP_UUID
-#define ENABLE_FEATURE_MKSWAP_UUID 0
-#define IF_FEATURE_MKSWAP_UUID(...)
-#define IF_NOT_FEATURE_MKSWAP_UUID(...) __VA_ARGS__
-#define CONFIG_MORE 1
-#define ENABLE_MORE 1
-#define IF_MORE(...) __VA_ARGS__
-#define IF_NOT_MORE(...)
-#define CONFIG_MOUNT 1
-#define ENABLE_MOUNT 1
-#define IF_MOUNT(...) __VA_ARGS__
-#define IF_NOT_MOUNT(...)
-#undef CONFIG_FEATURE_MOUNT_FAKE
-#define ENABLE_FEATURE_MOUNT_FAKE 0
-#define IF_FEATURE_MOUNT_FAKE(...)
-#define IF_NOT_FEATURE_MOUNT_FAKE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MOUNT_VERBOSE
-#define ENABLE_FEATURE_MOUNT_VERBOSE 0
-#define IF_FEATURE_MOUNT_VERBOSE(...)
-#define IF_NOT_FEATURE_MOUNT_VERBOSE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MOUNT_HELPERS
-#define ENABLE_FEATURE_MOUNT_HELPERS 0
-#define IF_FEATURE_MOUNT_HELPERS(...)
-#define IF_NOT_FEATURE_MOUNT_HELPERS(...) __VA_ARGS__
-#define CONFIG_FEATURE_MOUNT_LABEL 1
-#define ENABLE_FEATURE_MOUNT_LABEL 1
-#define IF_FEATURE_MOUNT_LABEL(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_LABEL(...)
-#undef CONFIG_FEATURE_MOUNT_NFS
-#define ENABLE_FEATURE_MOUNT_NFS 0
-#define IF_FEATURE_MOUNT_NFS(...)
-#define IF_NOT_FEATURE_MOUNT_NFS(...) __VA_ARGS__
-#define CONFIG_FEATURE_MOUNT_CIFS 1
-#define ENABLE_FEATURE_MOUNT_CIFS 1
-#define IF_FEATURE_MOUNT_CIFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_CIFS(...)
-#define CONFIG_FEATURE_MOUNT_FLAGS 1
-#define ENABLE_FEATURE_MOUNT_FLAGS 1
-#define IF_FEATURE_MOUNT_FLAGS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_FLAGS(...)
-#define CONFIG_FEATURE_MOUNT_FSTAB 1
-#define ENABLE_FEATURE_MOUNT_FSTAB 1
-#define IF_FEATURE_MOUNT_FSTAB(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_FSTAB(...)
-#undef CONFIG_PIVOT_ROOT
-#define ENABLE_PIVOT_ROOT 0
-#define IF_PIVOT_ROOT(...)
-#define IF_NOT_PIVOT_ROOT(...) __VA_ARGS__
-#undef CONFIG_RDATE
-#define ENABLE_RDATE 0
-#define IF_RDATE(...)
-#define IF_NOT_RDATE(...) __VA_ARGS__
-#define CONFIG_RDEV 1
-#define ENABLE_RDEV 1
-#define IF_RDEV(...) __VA_ARGS__
-#define IF_NOT_RDEV(...)
-#undef CONFIG_READPROFILE
-#define ENABLE_READPROFILE 0
-#define IF_READPROFILE(...)
-#define IF_NOT_READPROFILE(...) __VA_ARGS__
-#undef CONFIG_RTCWAKE
-#define ENABLE_RTCWAKE 0
-#define IF_RTCWAKE(...)
-#define IF_NOT_RTCWAKE(...) __VA_ARGS__
-#undef CONFIG_SCRIPT
-#define ENABLE_SCRIPT 0
-#define IF_SCRIPT(...)
-#define IF_NOT_SCRIPT(...) __VA_ARGS__
-#undef CONFIG_SCRIPTREPLAY
-#define ENABLE_SCRIPTREPLAY 0
-#define IF_SCRIPTREPLAY(...)
-#define IF_NOT_SCRIPTREPLAY(...) __VA_ARGS__
-#undef CONFIG_SETARCH
-#define ENABLE_SETARCH 0
-#define IF_SETARCH(...)
-#define IF_NOT_SETARCH(...) __VA_ARGS__
-#define CONFIG_SWAPONOFF 1
-#define ENABLE_SWAPONOFF 1
-#define IF_SWAPONOFF(...) __VA_ARGS__
-#define IF_NOT_SWAPONOFF(...)
-#undef CONFIG_FEATURE_SWAPON_PRI
-#define ENABLE_FEATURE_SWAPON_PRI 0
-#define IF_FEATURE_SWAPON_PRI(...)
-#define IF_NOT_FEATURE_SWAPON_PRI(...) __VA_ARGS__
-#undef CONFIG_SWITCH_ROOT
-#define ENABLE_SWITCH_ROOT 0
-#define IF_SWITCH_ROOT(...)
-#define IF_NOT_SWITCH_ROOT(...) __VA_ARGS__
-#define CONFIG_UMOUNT 1
-#define ENABLE_UMOUNT 1
-#define IF_UMOUNT(...) __VA_ARGS__
-#define IF_NOT_UMOUNT(...)
-#undef CONFIG_FEATURE_UMOUNT_ALL
-#define ENABLE_FEATURE_UMOUNT_ALL 0
-#define IF_FEATURE_UMOUNT_ALL(...)
-#define IF_NOT_FEATURE_UMOUNT_ALL(...) __VA_ARGS__
-
-/*
- * Common options for mount/umount
- */
-#define CONFIG_FEATURE_MOUNT_LOOP 1
-#define ENABLE_FEATURE_MOUNT_LOOP 1
-#define IF_FEATURE_MOUNT_LOOP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MOUNT_LOOP(...)
-#undef CONFIG_FEATURE_MOUNT_LOOP_CREATE
-#define ENABLE_FEATURE_MOUNT_LOOP_CREATE 0
-#define IF_FEATURE_MOUNT_LOOP_CREATE(...)
-#define IF_NOT_FEATURE_MOUNT_LOOP_CREATE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_MTAB_SUPPORT
-#define ENABLE_FEATURE_MTAB_SUPPORT 0
-#define IF_FEATURE_MTAB_SUPPORT(...)
-#define IF_NOT_FEATURE_MTAB_SUPPORT(...) __VA_ARGS__
-#define CONFIG_VOLUMEID 1
-#define ENABLE_VOLUMEID 1
-#define IF_VOLUMEID(...) __VA_ARGS__
-#define IF_NOT_VOLUMEID(...)
-
-/*
- * Filesystem/Volume identification
- */
-#define CONFIG_FEATURE_VOLUMEID_EXT 1
-#define ENABLE_FEATURE_VOLUMEID_EXT 1
-#define IF_FEATURE_VOLUMEID_EXT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_EXT(...)
-#undef CONFIG_FEATURE_VOLUMEID_BTRFS
-#define ENABLE_FEATURE_VOLUMEID_BTRFS 0
-#define IF_FEATURE_VOLUMEID_BTRFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_BTRFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_REISERFS
-#define ENABLE_FEATURE_VOLUMEID_REISERFS 0
-#define IF_FEATURE_VOLUMEID_REISERFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_REISERFS(...) __VA_ARGS__
-#define CONFIG_FEATURE_VOLUMEID_FAT 1
-#define ENABLE_FEATURE_VOLUMEID_FAT 1
-#define IF_FEATURE_VOLUMEID_FAT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_FAT(...)
-#define CONFIG_FEATURE_VOLUMEID_EXFAT 1
-#define ENABLE_FEATURE_VOLUMEID_EXFAT 1
-#define IF_FEATURE_VOLUMEID_EXFAT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_EXFAT(...)
-#undef CONFIG_FEATURE_VOLUMEID_HFS
-#define ENABLE_FEATURE_VOLUMEID_HFS 0
-#define IF_FEATURE_VOLUMEID_HFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_HFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_JFS
-#define ENABLE_FEATURE_VOLUMEID_JFS 0
-#define IF_FEATURE_VOLUMEID_JFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_JFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_XFS
-#define ENABLE_FEATURE_VOLUMEID_XFS 0
-#define IF_FEATURE_VOLUMEID_XFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_XFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_NILFS
-#define ENABLE_FEATURE_VOLUMEID_NILFS 0
-#define IF_FEATURE_VOLUMEID_NILFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_NILFS(...) __VA_ARGS__
-#define CONFIG_FEATURE_VOLUMEID_NTFS 1
-#define ENABLE_FEATURE_VOLUMEID_NTFS 1
-#define IF_FEATURE_VOLUMEID_NTFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_NTFS(...)
-#define CONFIG_FEATURE_VOLUMEID_ISO9660 1
-#define ENABLE_FEATURE_VOLUMEID_ISO9660 1
-#define IF_FEATURE_VOLUMEID_ISO9660(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_ISO9660(...)
-#undef CONFIG_FEATURE_VOLUMEID_UDF
-#define ENABLE_FEATURE_VOLUMEID_UDF 0
-#define IF_FEATURE_VOLUMEID_UDF(...)
-#define IF_NOT_FEATURE_VOLUMEID_UDF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_LUKS
-#define ENABLE_FEATURE_VOLUMEID_LUKS 0
-#define IF_FEATURE_VOLUMEID_LUKS(...)
-#define IF_NOT_FEATURE_VOLUMEID_LUKS(...) __VA_ARGS__
-#define CONFIG_FEATURE_VOLUMEID_LINUXSWAP 1
-#define ENABLE_FEATURE_VOLUMEID_LINUXSWAP 1
-#define IF_FEATURE_VOLUMEID_LINUXSWAP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_LINUXSWAP(...)
-#undef CONFIG_FEATURE_VOLUMEID_CRAMFS
-#define ENABLE_FEATURE_VOLUMEID_CRAMFS 0
-#define IF_FEATURE_VOLUMEID_CRAMFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_CRAMFS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_ROMFS
-#define ENABLE_FEATURE_VOLUMEID_ROMFS 0
-#define IF_FEATURE_VOLUMEID_ROMFS(...)
-#define IF_NOT_FEATURE_VOLUMEID_ROMFS(...) __VA_ARGS__
-#define CONFIG_FEATURE_VOLUMEID_SQUASHFS 1
-#define ENABLE_FEATURE_VOLUMEID_SQUASHFS 1
-#define IF_FEATURE_VOLUMEID_SQUASHFS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_VOLUMEID_SQUASHFS(...)
-#undef CONFIG_FEATURE_VOLUMEID_SYSV
-#define ENABLE_FEATURE_VOLUMEID_SYSV 0
-#define IF_FEATURE_VOLUMEID_SYSV(...)
-#define IF_NOT_FEATURE_VOLUMEID_SYSV(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_OCFS2
-#define ENABLE_FEATURE_VOLUMEID_OCFS2 0
-#define IF_FEATURE_VOLUMEID_OCFS2(...)
-#define IF_NOT_FEATURE_VOLUMEID_OCFS2(...) __VA_ARGS__
-#undef CONFIG_FEATURE_VOLUMEID_LINUXRAID
-#define ENABLE_FEATURE_VOLUMEID_LINUXRAID 0
-#define IF_FEATURE_VOLUMEID_LINUXRAID(...)
-#define IF_NOT_FEATURE_VOLUMEID_LINUXRAID(...) __VA_ARGS__
-
-/*
- * Miscellaneous Utilities
- */
-#undef CONFIG_CONSPY
-#define ENABLE_CONSPY 0
-#define IF_CONSPY(...)
-#define IF_NOT_CONSPY(...) __VA_ARGS__
-#define CONFIG_LESS 1
-#define ENABLE_LESS 1
-#define IF_LESS(...) __VA_ARGS__
-#define IF_NOT_LESS(...)
-#define CONFIG_FEATURE_LESS_MAXLINES 65536
-#define ENABLE_FEATURE_LESS_MAXLINES 1
-#define IF_FEATURE_LESS_MAXLINES(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_MAXLINES(...)
-#undef CONFIG_FEATURE_LESS_BRACKETS
-#define ENABLE_FEATURE_LESS_BRACKETS 0
-#define IF_FEATURE_LESS_BRACKETS(...)
-#define IF_NOT_FEATURE_LESS_BRACKETS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LESS_FLAGS
-#define ENABLE_FEATURE_LESS_FLAGS 0
-#define IF_FEATURE_LESS_FLAGS(...)
-#define IF_NOT_FEATURE_LESS_FLAGS(...) __VA_ARGS__
-#define CONFIG_FEATURE_LESS_MARKS 1
-#define ENABLE_FEATURE_LESS_MARKS 1
-#define IF_FEATURE_LESS_MARKS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_MARKS(...)
-#define CONFIG_FEATURE_LESS_REGEXP 1
-#define ENABLE_FEATURE_LESS_REGEXP 1
-#define IF_FEATURE_LESS_REGEXP(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_REGEXP(...)
-#define CONFIG_FEATURE_LESS_WINCH 1
-#define ENABLE_FEATURE_LESS_WINCH 1
-#define IF_FEATURE_LESS_WINCH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_LESS_WINCH(...)
-#undef CONFIG_FEATURE_LESS_ASK_TERMINAL
-#define ENABLE_FEATURE_LESS_ASK_TERMINAL 0
-#define IF_FEATURE_LESS_ASK_TERMINAL(...)
-#define IF_NOT_FEATURE_LESS_ASK_TERMINAL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LESS_DASHCMD
-#define ENABLE_FEATURE_LESS_DASHCMD 0
-#define IF_FEATURE_LESS_DASHCMD(...)
-#define IF_NOT_FEATURE_LESS_DASHCMD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LESS_LINENUMS
-#define ENABLE_FEATURE_LESS_LINENUMS 0
-#define IF_FEATURE_LESS_LINENUMS(...)
-#define IF_NOT_FEATURE_LESS_LINENUMS(...) __VA_ARGS__
-#define CONFIG_NANDWRITE 1
-#define ENABLE_NANDWRITE 1
-#define IF_NANDWRITE(...) __VA_ARGS__
-#define IF_NOT_NANDWRITE(...)
-#define CONFIG_NANDDUMP 1
-#define ENABLE_NANDDUMP 1
-#define IF_NANDDUMP(...) __VA_ARGS__
-#define IF_NOT_NANDDUMP(...)
-#define CONFIG_SETSERIAL 1
-#define ENABLE_SETSERIAL 1
-#define IF_SETSERIAL(...) __VA_ARGS__
-#define IF_NOT_SETSERIAL(...)
-#undef CONFIG_UBIATTACH
-#define ENABLE_UBIATTACH 0
-#define IF_UBIATTACH(...)
-#define IF_NOT_UBIATTACH(...) __VA_ARGS__
-#undef CONFIG_UBIDETACH
-#define ENABLE_UBIDETACH 0
-#define IF_UBIDETACH(...)
-#define IF_NOT_UBIDETACH(...) __VA_ARGS__
-#undef CONFIG_UBIMKVOL
-#define ENABLE_UBIMKVOL 0
-#define IF_UBIMKVOL(...)
-#define IF_NOT_UBIMKVOL(...) __VA_ARGS__
-#undef CONFIG_UBIRMVOL
-#define ENABLE_UBIRMVOL 0
-#define IF_UBIRMVOL(...)
-#define IF_NOT_UBIRMVOL(...) __VA_ARGS__
-#undef CONFIG_UBIRSVOL
-#define ENABLE_UBIRSVOL 0
-#define IF_UBIRSVOL(...)
-#define IF_NOT_UBIRSVOL(...) __VA_ARGS__
-#undef CONFIG_UBIUPDATEVOL
-#define ENABLE_UBIUPDATEVOL 0
-#define IF_UBIUPDATEVOL(...)
-#define IF_NOT_UBIUPDATEVOL(...) __VA_ARGS__
-#undef CONFIG_ADJTIMEX
-#define ENABLE_ADJTIMEX 0
-#define IF_ADJTIMEX(...)
-#define IF_NOT_ADJTIMEX(...) __VA_ARGS__
-#define CONFIG_BBCONFIG 1
-#define ENABLE_BBCONFIG 1
-#define IF_BBCONFIG(...) __VA_ARGS__
-#define IF_NOT_BBCONFIG(...)
-#define CONFIG_FEATURE_COMPRESS_BBCONFIG 1
-#define ENABLE_FEATURE_COMPRESS_BBCONFIG 1
-#define IF_FEATURE_COMPRESS_BBCONFIG(...) __VA_ARGS__
-#define IF_NOT_FEATURE_COMPRESS_BBCONFIG(...)
-#undef CONFIG_BEEP
-#define ENABLE_BEEP 0
-#define IF_BEEP(...)
-#define IF_NOT_BEEP(...) __VA_ARGS__
-#define CONFIG_FEATURE_BEEP_FREQ 0
-#define ENABLE_FEATURE_BEEP_FREQ 1
-#define IF_FEATURE_BEEP_FREQ(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BEEP_FREQ(...)
-#define CONFIG_FEATURE_BEEP_LENGTH_MS 0
-#define ENABLE_FEATURE_BEEP_LENGTH_MS 1
-#define IF_FEATURE_BEEP_LENGTH_MS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BEEP_LENGTH_MS(...)
-#undef CONFIG_CHAT
-#define ENABLE_CHAT 0
-#define IF_CHAT(...)
-#define IF_NOT_CHAT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_NOFAIL
-#define ENABLE_FEATURE_CHAT_NOFAIL 0
-#define IF_FEATURE_CHAT_NOFAIL(...)
-#define IF_NOT_FEATURE_CHAT_NOFAIL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_TTY_HIFI
-#define ENABLE_FEATURE_CHAT_TTY_HIFI 0
-#define IF_FEATURE_CHAT_TTY_HIFI(...)
-#define IF_NOT_FEATURE_CHAT_TTY_HIFI(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_IMPLICIT_CR
-#define ENABLE_FEATURE_CHAT_IMPLICIT_CR 0
-#define IF_FEATURE_CHAT_IMPLICIT_CR(...)
-#define IF_NOT_FEATURE_CHAT_IMPLICIT_CR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_SWALLOW_OPTS
-#define ENABLE_FEATURE_CHAT_SWALLOW_OPTS 0
-#define IF_FEATURE_CHAT_SWALLOW_OPTS(...)
-#define IF_NOT_FEATURE_CHAT_SWALLOW_OPTS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_SEND_ESCAPES
-#define ENABLE_FEATURE_CHAT_SEND_ESCAPES 0
-#define IF_FEATURE_CHAT_SEND_ESCAPES(...)
-#define IF_NOT_FEATURE_CHAT_SEND_ESCAPES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_VAR_ABORT_LEN
-#define ENABLE_FEATURE_CHAT_VAR_ABORT_LEN 0
-#define IF_FEATURE_CHAT_VAR_ABORT_LEN(...)
-#define IF_NOT_FEATURE_CHAT_VAR_ABORT_LEN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHAT_CLR_ABORT
-#define ENABLE_FEATURE_CHAT_CLR_ABORT 0
-#define IF_FEATURE_CHAT_CLR_ABORT(...)
-#define IF_NOT_FEATURE_CHAT_CLR_ABORT(...) __VA_ARGS__
-#undef CONFIG_CHRT
-#define ENABLE_CHRT 0
-#define IF_CHRT(...)
-#define IF_NOT_CHRT(...) __VA_ARGS__
-#undef CONFIG_CROND
-#define ENABLE_CROND 0
-#define IF_CROND(...)
-#define IF_NOT_CROND(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CROND_D
-#define ENABLE_FEATURE_CROND_D 0
-#define IF_FEATURE_CROND_D(...)
-#define IF_NOT_FEATURE_CROND_D(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CROND_CALL_SENDMAIL
-#define ENABLE_FEATURE_CROND_CALL_SENDMAIL 0
-#define IF_FEATURE_CROND_CALL_SENDMAIL(...)
-#define IF_NOT_FEATURE_CROND_CALL_SENDMAIL(...) __VA_ARGS__
-#define CONFIG_FEATURE_CROND_DIR ""
-#define ENABLE_FEATURE_CROND_DIR 1
-#define IF_FEATURE_CROND_DIR(...) __VA_ARGS__
-#define IF_NOT_FEATURE_CROND_DIR(...)
-#undef CONFIG_CRONTAB
-#define ENABLE_CRONTAB 0
-#define IF_CRONTAB(...)
-#define IF_NOT_CRONTAB(...) __VA_ARGS__
-#define CONFIG_DC 1
-#define ENABLE_DC 1
-#define IF_DC(...) __VA_ARGS__
-#define IF_NOT_DC(...)
-#undef CONFIG_FEATURE_DC_LIBM
-#define ENABLE_FEATURE_DC_LIBM 0
-#define IF_FEATURE_DC_LIBM(...)
-#define IF_NOT_FEATURE_DC_LIBM(...) __VA_ARGS__
-#undef CONFIG_DEVFSD
-#define ENABLE_DEVFSD 0
-#define IF_DEVFSD(...)
-#define IF_NOT_DEVFSD(...) __VA_ARGS__
-#undef CONFIG_DEVFSD_MODLOAD
-#define ENABLE_DEVFSD_MODLOAD 0
-#define IF_DEVFSD_MODLOAD(...)
-#define IF_NOT_DEVFSD_MODLOAD(...) __VA_ARGS__
-#undef CONFIG_DEVFSD_FG_NP
-#define ENABLE_DEVFSD_FG_NP 0
-#define IF_DEVFSD_FG_NP(...)
-#define IF_NOT_DEVFSD_FG_NP(...) __VA_ARGS__
-#undef CONFIG_DEVFSD_VERBOSE
-#define ENABLE_DEVFSD_VERBOSE 0
-#define IF_DEVFSD_VERBOSE(...)
-#define IF_NOT_DEVFSD_VERBOSE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_DEVFS
-#define ENABLE_FEATURE_DEVFS 0
-#define IF_FEATURE_DEVFS(...)
-#define IF_NOT_FEATURE_DEVFS(...) __VA_ARGS__
-#define CONFIG_DEVMEM 1
-#define ENABLE_DEVMEM 1
-#define IF_DEVMEM(...) __VA_ARGS__
-#define IF_NOT_DEVMEM(...)
-#undef CONFIG_EJECT
-#define ENABLE_EJECT 0
-#define IF_EJECT(...)
-#define IF_NOT_EJECT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_EJECT_SCSI
-#define ENABLE_FEATURE_EJECT_SCSI 0
-#define IF_FEATURE_EJECT_SCSI(...)
-#define IF_NOT_FEATURE_EJECT_SCSI(...) __VA_ARGS__
-#undef CONFIG_FBSPLASH
-#define ENABLE_FBSPLASH 0
-#define IF_FBSPLASH(...)
-#define IF_NOT_FBSPLASH(...) __VA_ARGS__
-#undef CONFIG_FLASHCP
-#define ENABLE_FLASHCP 0
-#define IF_FLASHCP(...)
-#define IF_NOT_FLASHCP(...) __VA_ARGS__
-#undef CONFIG_FLASH_LOCK
-#define ENABLE_FLASH_LOCK 0
-#define IF_FLASH_LOCK(...)
-#define IF_NOT_FLASH_LOCK(...) __VA_ARGS__
-#undef CONFIG_FLASH_UNLOCK
-#define ENABLE_FLASH_UNLOCK 0
-#define IF_FLASH_UNLOCK(...)
-#define IF_NOT_FLASH_UNLOCK(...) __VA_ARGS__
-#undef CONFIG_FLASH_ERASEALL
-#define ENABLE_FLASH_ERASEALL 0
-#define IF_FLASH_ERASEALL(...)
-#define IF_NOT_FLASH_ERASEALL(...) __VA_ARGS__
-#undef CONFIG_IONICE
-#define ENABLE_IONICE 0
-#define IF_IONICE(...)
-#define IF_NOT_IONICE(...) __VA_ARGS__
-#undef CONFIG_INOTIFYD
-#define ENABLE_INOTIFYD 0
-#define IF_INOTIFYD(...)
-#define IF_NOT_INOTIFYD(...) __VA_ARGS__
-#undef CONFIG_LAST
-#define ENABLE_LAST 0
-#define IF_LAST(...)
-#define IF_NOT_LAST(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LAST_SMALL
-#define ENABLE_FEATURE_LAST_SMALL 0
-#define IF_FEATURE_LAST_SMALL(...)
-#define IF_NOT_FEATURE_LAST_SMALL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LAST_FANCY
-#define ENABLE_FEATURE_LAST_FANCY 0
-#define IF_FEATURE_LAST_FANCY(...)
-#define IF_NOT_FEATURE_LAST_FANCY(...) __VA_ARGS__
-#undef CONFIG_HDPARM
-#define ENABLE_HDPARM 0
-#define IF_HDPARM(...)
-#define IF_NOT_HDPARM(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_GET_IDENTITY
-#define ENABLE_FEATURE_HDPARM_GET_IDENTITY 0
-#define IF_FEATURE_HDPARM_GET_IDENTITY(...)
-#define IF_NOT_FEATURE_HDPARM_GET_IDENTITY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
-#define ENABLE_FEATURE_HDPARM_HDIO_SCAN_HWIF 0
-#define IF_FEATURE_HDPARM_HDIO_SCAN_HWIF(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_SCAN_HWIF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
-#define ENABLE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF 0
-#define IF_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
-#define ENABLE_FEATURE_HDPARM_HDIO_DRIVE_RESET 0
-#define IF_FEATURE_HDPARM_HDIO_DRIVE_RESET(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_DRIVE_RESET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
-#define ENABLE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF 0
-#define IF_FEATURE_HDPARM_HDIO_TRISTATE_HWIF(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_TRISTATE_HWIF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
-#define ENABLE_FEATURE_HDPARM_HDIO_GETSET_DMA 0
-#define IF_FEATURE_HDPARM_HDIO_GETSET_DMA(...)
-#define IF_NOT_FEATURE_HDPARM_HDIO_GETSET_DMA(...) __VA_ARGS__
-#define CONFIG_MAKEDEVS 1
-#define ENABLE_MAKEDEVS 1
-#define IF_MAKEDEVS(...) __VA_ARGS__
-#define IF_NOT_MAKEDEVS(...)
-#undef CONFIG_FEATURE_MAKEDEVS_LEAF
-#define ENABLE_FEATURE_MAKEDEVS_LEAF 0
-#define IF_FEATURE_MAKEDEVS_LEAF(...)
-#define IF_NOT_FEATURE_MAKEDEVS_LEAF(...) __VA_ARGS__
-#define CONFIG_FEATURE_MAKEDEVS_TABLE 1
-#define ENABLE_FEATURE_MAKEDEVS_TABLE 1
-#define IF_FEATURE_MAKEDEVS_TABLE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MAKEDEVS_TABLE(...)
-#undef CONFIG_MAN
-#define ENABLE_MAN 0
-#define IF_MAN(...)
-#define IF_NOT_MAN(...) __VA_ARGS__
-#undef CONFIG_MICROCOM
-#define ENABLE_MICROCOM 0
-#define IF_MICROCOM(...)
-#define IF_NOT_MICROCOM(...) __VA_ARGS__
-#define CONFIG_MOUNTPOINT 1
-#define ENABLE_MOUNTPOINT 1
-#define IF_MOUNTPOINT(...) __VA_ARGS__
-#define IF_NOT_MOUNTPOINT(...)
-#undef CONFIG_MT
-#define ENABLE_MT 0
-#define IF_MT(...)
-#define IF_NOT_MT(...) __VA_ARGS__
-#undef CONFIG_RAIDAUTORUN
-#define ENABLE_RAIDAUTORUN 0
-#define IF_RAIDAUTORUN(...)
-#define IF_NOT_RAIDAUTORUN(...) __VA_ARGS__
-#undef CONFIG_READAHEAD
-#define ENABLE_READAHEAD 0
-#define IF_READAHEAD(...)
-#define IF_NOT_READAHEAD(...) __VA_ARGS__
-#undef CONFIG_RFKILL
-#define ENABLE_RFKILL 0
-#define IF_RFKILL(...)
-#define IF_NOT_RFKILL(...) __VA_ARGS__
-#undef CONFIG_RUNLEVEL
-#define ENABLE_RUNLEVEL 0
-#define IF_RUNLEVEL(...)
-#define IF_NOT_RUNLEVEL(...) __VA_ARGS__
-#undef CONFIG_RX
-#define ENABLE_RX 0
-#define IF_RX(...)
-#define IF_NOT_RX(...) __VA_ARGS__
-#define CONFIG_SETSID 1
-#define ENABLE_SETSID 1
-#define IF_SETSID(...) __VA_ARGS__
-#define IF_NOT_SETSID(...)
-#define CONFIG_STRINGS 1
-#define ENABLE_STRINGS 1
-#define IF_STRINGS(...) __VA_ARGS__
-#define IF_NOT_STRINGS(...)
-#undef CONFIG_TASKSET
-#define ENABLE_TASKSET 0
-#define IF_TASKSET(...)
-#define IF_NOT_TASKSET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TASKSET_FANCY
-#define ENABLE_FEATURE_TASKSET_FANCY 0
-#define IF_FEATURE_TASKSET_FANCY(...)
-#define IF_NOT_FEATURE_TASKSET_FANCY(...) __VA_ARGS__
-#define CONFIG_TIME 1
-#define ENABLE_TIME 1
-#define IF_TIME(...) __VA_ARGS__
-#define IF_NOT_TIME(...)
-#undef CONFIG_TIMEOUT
-#define ENABLE_TIMEOUT 0
-#define IF_TIMEOUT(...)
-#define IF_NOT_TIMEOUT(...) __VA_ARGS__
-#define CONFIG_TTYSIZE 1
-#define ENABLE_TTYSIZE 1
-#define IF_TTYSIZE(...) __VA_ARGS__
-#define IF_NOT_TTYSIZE(...)
-#undef CONFIG_VOLNAME
-#define ENABLE_VOLNAME 0
-#define IF_VOLNAME(...)
-#define IF_NOT_VOLNAME(...) __VA_ARGS__
-#undef CONFIG_WALL
-#define ENABLE_WALL 0
-#define IF_WALL(...)
-#define IF_NOT_WALL(...) __VA_ARGS__
-#undef CONFIG_WATCHDOG
-#define ENABLE_WATCHDOG 0
-#define IF_WATCHDOG(...)
-#define IF_NOT_WATCHDOG(...) __VA_ARGS__
-
-/*
- * Networking Utilities
- */
-#undef CONFIG_NAMEIF
-#define ENABLE_NAMEIF 0
-#define IF_NAMEIF(...)
-#define IF_NOT_NAMEIF(...) __VA_ARGS__
-#undef CONFIG_FEATURE_NAMEIF_EXTENDED
-#define ENABLE_FEATURE_NAMEIF_EXTENDED 0
-#define IF_FEATURE_NAMEIF_EXTENDED(...)
-#define IF_NOT_FEATURE_NAMEIF_EXTENDED(...) __VA_ARGS__
-#undef CONFIG_NBDCLIENT
-#define ENABLE_NBDCLIENT 0
-#define IF_NBDCLIENT(...)
-#define IF_NOT_NBDCLIENT(...) __VA_ARGS__
-#undef CONFIG_NC
-#define ENABLE_NC 0
-#define IF_NC(...)
-#define IF_NOT_NC(...) __VA_ARGS__
-#undef CONFIG_NC_SERVER
-#define ENABLE_NC_SERVER 0
-#define IF_NC_SERVER(...)
-#define IF_NOT_NC_SERVER(...) __VA_ARGS__
-#undef CONFIG_NC_EXTRA
-#define ENABLE_NC_EXTRA 0
-#define IF_NC_EXTRA(...)
-#define IF_NOT_NC_EXTRA(...) __VA_ARGS__
-#undef CONFIG_NC_110_COMPAT
-#define ENABLE_NC_110_COMPAT 0
-#define IF_NC_110_COMPAT(...)
-#define IF_NOT_NC_110_COMPAT(...) __VA_ARGS__
-#undef CONFIG_PING
-#define ENABLE_PING 0
-#define IF_PING(...)
-#define IF_NOT_PING(...) __VA_ARGS__
-#undef CONFIG_PING6
-#define ENABLE_PING6 0
-#define IF_PING6(...)
-#define IF_NOT_PING6(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FANCY_PING
-#define ENABLE_FEATURE_FANCY_PING 0
-#define IF_FEATURE_FANCY_PING(...)
-#define IF_NOT_FEATURE_FANCY_PING(...) __VA_ARGS__
-#undef CONFIG_WHOIS
-#define ENABLE_WHOIS 0
-#define IF_WHOIS(...)
-#define IF_NOT_WHOIS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IPV6
-#define ENABLE_FEATURE_IPV6 0
-#define IF_FEATURE_IPV6(...)
-#define IF_NOT_FEATURE_IPV6(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UNIX_LOCAL
-#define ENABLE_FEATURE_UNIX_LOCAL 0
-#define IF_FEATURE_UNIX_LOCAL(...)
-#define IF_NOT_FEATURE_UNIX_LOCAL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PREFER_IPV4_ADDRESS
-#define ENABLE_FEATURE_PREFER_IPV4_ADDRESS 0
-#define IF_FEATURE_PREFER_IPV4_ADDRESS(...)
-#define IF_NOT_FEATURE_PREFER_IPV4_ADDRESS(...) __VA_ARGS__
-#undef CONFIG_VERBOSE_RESOLUTION_ERRORS
-#define ENABLE_VERBOSE_RESOLUTION_ERRORS 0
-#define IF_VERBOSE_RESOLUTION_ERRORS(...)
-#define IF_NOT_VERBOSE_RESOLUTION_ERRORS(...) __VA_ARGS__
-#undef CONFIG_ARP
-#define ENABLE_ARP 0
-#define IF_ARP(...)
-#define IF_NOT_ARP(...) __VA_ARGS__
-#undef CONFIG_ARPING
-#define ENABLE_ARPING 0
-#define IF_ARPING(...)
-#define IF_NOT_ARPING(...) __VA_ARGS__
-#undef CONFIG_BRCTL
-#define ENABLE_BRCTL 0
-#define IF_BRCTL(...)
-#define IF_NOT_BRCTL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BRCTL_FANCY
-#define ENABLE_FEATURE_BRCTL_FANCY 0
-#define IF_FEATURE_BRCTL_FANCY(...)
-#define IF_NOT_FEATURE_BRCTL_FANCY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BRCTL_SHOW
-#define ENABLE_FEATURE_BRCTL_SHOW 0
-#define IF_FEATURE_BRCTL_SHOW(...)
-#define IF_NOT_FEATURE_BRCTL_SHOW(...) __VA_ARGS__
-#undef CONFIG_DNSD
-#define ENABLE_DNSD 0
-#define IF_DNSD(...)
-#define IF_NOT_DNSD(...) __VA_ARGS__
-#undef CONFIG_ETHER_WAKE
-#define ENABLE_ETHER_WAKE 0
-#define IF_ETHER_WAKE(...)
-#define IF_NOT_ETHER_WAKE(...) __VA_ARGS__
-#undef CONFIG_FAKEIDENTD
-#define ENABLE_FAKEIDENTD 0
-#define IF_FAKEIDENTD(...)
-#define IF_NOT_FAKEIDENTD(...) __VA_ARGS__
-#undef CONFIG_FTPD
-#define ENABLE_FTPD 0
-#define IF_FTPD(...)
-#define IF_NOT_FTPD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FTP_WRITE
-#define ENABLE_FEATURE_FTP_WRITE 0
-#define IF_FEATURE_FTP_WRITE(...)
-#define IF_NOT_FEATURE_FTP_WRITE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
-#define ENABLE_FEATURE_FTPD_ACCEPT_BROKEN_LIST 0
-#define IF_FEATURE_FTPD_ACCEPT_BROKEN_LIST(...)
-#define IF_NOT_FEATURE_FTPD_ACCEPT_BROKEN_LIST(...) __VA_ARGS__
-#undef CONFIG_FTPGET
-#define ENABLE_FTPGET 0
-#define IF_FTPGET(...)
-#define IF_NOT_FTPGET(...) __VA_ARGS__
-#undef CONFIG_FTPPUT
-#define ENABLE_FTPPUT 0
-#define IF_FTPPUT(...)
-#define IF_NOT_FTPPUT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS
-#define ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS 0
-#define IF_FEATURE_FTPGETPUT_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_FTPGETPUT_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_HOSTNAME
-#define ENABLE_HOSTNAME 0
-#define IF_HOSTNAME(...)
-#define IF_NOT_HOSTNAME(...) __VA_ARGS__
-#undef CONFIG_HTTPD
-#define ENABLE_HTTPD 0
-#define IF_HTTPD(...)
-#define IF_NOT_HTTPD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_RANGES
-#define ENABLE_FEATURE_HTTPD_RANGES 0
-#define IF_FEATURE_HTTPD_RANGES(...)
-#define IF_NOT_FEATURE_HTTPD_RANGES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_USE_SENDFILE
-#define ENABLE_FEATURE_HTTPD_USE_SENDFILE 0
-#define IF_FEATURE_HTTPD_USE_SENDFILE(...)
-#define IF_NOT_FEATURE_HTTPD_USE_SENDFILE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_SETUID
-#define ENABLE_FEATURE_HTTPD_SETUID 0
-#define IF_FEATURE_HTTPD_SETUID(...)
-#define IF_NOT_FEATURE_HTTPD_SETUID(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_BASIC_AUTH
-#define ENABLE_FEATURE_HTTPD_BASIC_AUTH 0
-#define IF_FEATURE_HTTPD_BASIC_AUTH(...)
-#define IF_NOT_FEATURE_HTTPD_BASIC_AUTH(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_AUTH_MD5
-#define ENABLE_FEATURE_HTTPD_AUTH_MD5 0
-#define IF_FEATURE_HTTPD_AUTH_MD5(...)
-#define IF_NOT_FEATURE_HTTPD_AUTH_MD5(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_CGI
-#define ENABLE_FEATURE_HTTPD_CGI 0
-#define IF_FEATURE_HTTPD_CGI(...)
-#define IF_NOT_FEATURE_HTTPD_CGI(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
-#define ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR 0
-#define IF_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR(...)
-#define IF_NOT_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
-#define ENABLE_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV 0
-#define IF_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV(...)
-#define IF_NOT_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_ENCODE_URL_STR
-#define ENABLE_FEATURE_HTTPD_ENCODE_URL_STR 0
-#define IF_FEATURE_HTTPD_ENCODE_URL_STR(...)
-#define IF_NOT_FEATURE_HTTPD_ENCODE_URL_STR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_ERROR_PAGES
-#define ENABLE_FEATURE_HTTPD_ERROR_PAGES 0
-#define IF_FEATURE_HTTPD_ERROR_PAGES(...)
-#define IF_NOT_FEATURE_HTTPD_ERROR_PAGES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_PROXY
-#define ENABLE_FEATURE_HTTPD_PROXY 0
-#define IF_FEATURE_HTTPD_PROXY(...)
-#define IF_NOT_FEATURE_HTTPD_PROXY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_HTTPD_GZIP
-#define ENABLE_FEATURE_HTTPD_GZIP 0
-#define IF_FEATURE_HTTPD_GZIP(...)
-#define IF_NOT_FEATURE_HTTPD_GZIP(...) __VA_ARGS__
-#undef CONFIG_IFCONFIG
-#define ENABLE_IFCONFIG 0
-#define IF_IFCONFIG(...)
-#define IF_NOT_IFCONFIG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFCONFIG_STATUS
-#define ENABLE_FEATURE_IFCONFIG_STATUS 0
-#define IF_FEATURE_IFCONFIG_STATUS(...)
-#define IF_NOT_FEATURE_IFCONFIG_STATUS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFCONFIG_SLIP
-#define ENABLE_FEATURE_IFCONFIG_SLIP 0
-#define IF_FEATURE_IFCONFIG_SLIP(...)
-#define IF_NOT_FEATURE_IFCONFIG_SLIP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
-#define ENABLE_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ 0
-#define IF_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ(...)
-#define IF_NOT_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFCONFIG_HW
-#define ENABLE_FEATURE_IFCONFIG_HW 0
-#define IF_FEATURE_IFCONFIG_HW(...)
-#define IF_NOT_FEATURE_IFCONFIG_HW(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS
-#define ENABLE_FEATURE_IFCONFIG_BROADCAST_PLUS 0
-#define IF_FEATURE_IFCONFIG_BROADCAST_PLUS(...)
-#define IF_NOT_FEATURE_IFCONFIG_BROADCAST_PLUS(...) __VA_ARGS__
-#undef CONFIG_IFENSLAVE
-#define ENABLE_IFENSLAVE 0
-#define IF_IFENSLAVE(...)
-#define IF_NOT_IFENSLAVE(...) __VA_ARGS__
-#undef CONFIG_IFPLUGD
-#define ENABLE_IFPLUGD 0
-#define IF_IFPLUGD(...)
-#define IF_NOT_IFPLUGD(...) __VA_ARGS__
-#undef CONFIG_IFUPDOWN
-#define ENABLE_IFUPDOWN 0
-#define IF_IFUPDOWN(...)
-#define IF_NOT_IFUPDOWN(...) __VA_ARGS__
-#define CONFIG_IFUPDOWN_IFSTATE_PATH ""
-#define ENABLE_IFUPDOWN_IFSTATE_PATH 1
-#define IF_IFUPDOWN_IFSTATE_PATH(...) __VA_ARGS__
-#define IF_NOT_IFUPDOWN_IFSTATE_PATH(...)
-#undef CONFIG_FEATURE_IFUPDOWN_IP
-#define ENABLE_FEATURE_IFUPDOWN_IP 0
-#define IF_FEATURE_IFUPDOWN_IP(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN
-#define ENABLE_FEATURE_IFUPDOWN_IP_BUILTIN 0
-#define IF_FEATURE_IFUPDOWN_IP_BUILTIN(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IP_BUILTIN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
-#define ENABLE_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN 0
-#define IF_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_IPV4
-#define ENABLE_FEATURE_IFUPDOWN_IPV4 0
-#define IF_FEATURE_IFUPDOWN_IPV4(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IPV4(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_IPV6
-#define ENABLE_FEATURE_IFUPDOWN_IPV6 0
-#define IF_FEATURE_IFUPDOWN_IPV6(...)
-#define IF_NOT_FEATURE_IFUPDOWN_IPV6(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_MAPPING
-#define ENABLE_FEATURE_IFUPDOWN_MAPPING 0
-#define IF_FEATURE_IFUPDOWN_MAPPING(...)
-#define IF_NOT_FEATURE_IFUPDOWN_MAPPING(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP
-#define ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP 0
-#define IF_FEATURE_IFUPDOWN_EXTERNAL_DHCP(...)
-#define IF_NOT_FEATURE_IFUPDOWN_EXTERNAL_DHCP(...) __VA_ARGS__
-#undef CONFIG_INETD
-#define ENABLE_INETD 0
-#define IF_INETD(...)
-#define IF_NOT_INETD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO 0
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_ECHO(...)
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_ECHO(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD 0
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD(...)
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_TIME 0
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_TIME(...)
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_TIME(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME 0
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME(...)
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
-#define ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN 0
-#define IF_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN(...)
-#define IF_NOT_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN(...) __VA_ARGS__
-#undef CONFIG_FEATURE_INETD_RPC
-#define ENABLE_FEATURE_INETD_RPC 0
-#define IF_FEATURE_INETD_RPC(...)
-#define IF_NOT_FEATURE_INETD_RPC(...) __VA_ARGS__
-#undef CONFIG_IP
-#define ENABLE_IP 0
-#define IF_IP(...)
-#define IF_NOT_IP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IP_ADDRESS
-#define ENABLE_FEATURE_IP_ADDRESS 0
-#define IF_FEATURE_IP_ADDRESS(...)
-#define IF_NOT_FEATURE_IP_ADDRESS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IP_LINK
-#define ENABLE_FEATURE_IP_LINK 0
-#define IF_FEATURE_IP_LINK(...)
-#define IF_NOT_FEATURE_IP_LINK(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IP_ROUTE
-#define ENABLE_FEATURE_IP_ROUTE 0
-#define IF_FEATURE_IP_ROUTE(...)
-#define IF_NOT_FEATURE_IP_ROUTE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IP_TUNNEL
-#define ENABLE_FEATURE_IP_TUNNEL 0
-#define IF_FEATURE_IP_TUNNEL(...)
-#define IF_NOT_FEATURE_IP_TUNNEL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IP_RULE
-#define ENABLE_FEATURE_IP_RULE 0
-#define IF_FEATURE_IP_RULE(...)
-#define IF_NOT_FEATURE_IP_RULE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IP_SHORT_FORMS
-#define ENABLE_FEATURE_IP_SHORT_FORMS 0
-#define IF_FEATURE_IP_SHORT_FORMS(...)
-#define IF_NOT_FEATURE_IP_SHORT_FORMS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IP_RARE_PROTOCOLS
-#define ENABLE_FEATURE_IP_RARE_PROTOCOLS 0
-#define IF_FEATURE_IP_RARE_PROTOCOLS(...)
-#define IF_NOT_FEATURE_IP_RARE_PROTOCOLS(...) __VA_ARGS__
-#undef CONFIG_IPADDR
-#define ENABLE_IPADDR 0
-#define IF_IPADDR(...)
-#define IF_NOT_IPADDR(...) __VA_ARGS__
-#undef CONFIG_IPLINK
-#define ENABLE_IPLINK 0
-#define IF_IPLINK(...)
-#define IF_NOT_IPLINK(...) __VA_ARGS__
-#undef CONFIG_IPROUTE
-#define ENABLE_IPROUTE 0
-#define IF_IPROUTE(...)
-#define IF_NOT_IPROUTE(...) __VA_ARGS__
-#undef CONFIG_IPTUNNEL
-#define ENABLE_IPTUNNEL 0
-#define IF_IPTUNNEL(...)
-#define IF_NOT_IPTUNNEL(...) __VA_ARGS__
-#undef CONFIG_IPRULE
-#define ENABLE_IPRULE 0
-#define IF_IPRULE(...)
-#define IF_NOT_IPRULE(...) __VA_ARGS__
-#undef CONFIG_IPCALC
-#define ENABLE_IPCALC 0
-#define IF_IPCALC(...)
-#define IF_NOT_IPCALC(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IPCALC_FANCY
-#define ENABLE_FEATURE_IPCALC_FANCY 0
-#define IF_FEATURE_IPCALC_FANCY(...)
-#define IF_NOT_FEATURE_IPCALC_FANCY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_IPCALC_LONG_OPTIONS
-#define ENABLE_FEATURE_IPCALC_LONG_OPTIONS 0
-#define IF_FEATURE_IPCALC_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_IPCALC_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_NETSTAT
-#define ENABLE_NETSTAT 0
-#define IF_NETSTAT(...)
-#define IF_NOT_NETSTAT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_NETSTAT_WIDE
-#define ENABLE_FEATURE_NETSTAT_WIDE 0
-#define IF_FEATURE_NETSTAT_WIDE(...)
-#define IF_NOT_FEATURE_NETSTAT_WIDE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_NETSTAT_PRG
-#define ENABLE_FEATURE_NETSTAT_PRG 0
-#define IF_FEATURE_NETSTAT_PRG(...)
-#define IF_NOT_FEATURE_NETSTAT_PRG(...) __VA_ARGS__
-#undef CONFIG_NSLOOKUP
-#define ENABLE_NSLOOKUP 0
-#define IF_NSLOOKUP(...)
-#define IF_NOT_NSLOOKUP(...) __VA_ARGS__
-#undef CONFIG_NTPD
-#define ENABLE_NTPD 0
-#define IF_NTPD(...)
-#define IF_NOT_NTPD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_NTPD_SERVER
-#define ENABLE_FEATURE_NTPD_SERVER 0
-#define IF_FEATURE_NTPD_SERVER(...)
-#define IF_NOT_FEATURE_NTPD_SERVER(...) __VA_ARGS__
-#undef CONFIG_PSCAN
-#define ENABLE_PSCAN 0
-#define IF_PSCAN(...)
-#define IF_NOT_PSCAN(...) __VA_ARGS__
-#undef CONFIG_ROUTE
-#define ENABLE_ROUTE 0
-#define IF_ROUTE(...)
-#define IF_NOT_ROUTE(...) __VA_ARGS__
-#undef CONFIG_SLATTACH
-#define ENABLE_SLATTACH 0
-#define IF_SLATTACH(...)
-#define IF_NOT_SLATTACH(...) __VA_ARGS__
-#undef CONFIG_TCPSVD
-#define ENABLE_TCPSVD 0
-#define IF_TCPSVD(...)
-#define IF_NOT_TCPSVD(...) __VA_ARGS__
-#undef CONFIG_TELNET
-#define ENABLE_TELNET 0
-#define IF_TELNET(...)
-#define IF_NOT_TELNET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TELNET_TTYPE
-#define ENABLE_FEATURE_TELNET_TTYPE 0
-#define IF_FEATURE_TELNET_TTYPE(...)
-#define IF_NOT_FEATURE_TELNET_TTYPE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TELNET_AUTOLOGIN
-#define ENABLE_FEATURE_TELNET_AUTOLOGIN 0
-#define IF_FEATURE_TELNET_AUTOLOGIN(...)
-#define IF_NOT_FEATURE_TELNET_AUTOLOGIN(...) __VA_ARGS__
-#undef CONFIG_TELNETD
-#define ENABLE_TELNETD 0
-#define IF_TELNETD(...)
-#define IF_NOT_TELNETD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TELNETD_STANDALONE
-#define ENABLE_FEATURE_TELNETD_STANDALONE 0
-#define IF_FEATURE_TELNETD_STANDALONE(...)
-#define IF_NOT_FEATURE_TELNETD_STANDALONE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TELNETD_INETD_WAIT
-#define ENABLE_FEATURE_TELNETD_INETD_WAIT 0
-#define IF_FEATURE_TELNETD_INETD_WAIT(...)
-#define IF_NOT_FEATURE_TELNETD_INETD_WAIT(...) __VA_ARGS__
-#undef CONFIG_TFTP
-#define ENABLE_TFTP 0
-#define IF_TFTP(...)
-#define IF_NOT_TFTP(...) __VA_ARGS__
-#undef CONFIG_TFTPD
-#define ENABLE_TFTPD 0
-#define IF_TFTPD(...)
-#define IF_NOT_TFTPD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TFTP_GET
-#define ENABLE_FEATURE_TFTP_GET 0
-#define IF_FEATURE_TFTP_GET(...)
-#define IF_NOT_FEATURE_TFTP_GET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TFTP_PUT
-#define ENABLE_FEATURE_TFTP_PUT 0
-#define IF_FEATURE_TFTP_PUT(...)
-#define IF_NOT_FEATURE_TFTP_PUT(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TFTP_BLOCKSIZE
-#define ENABLE_FEATURE_TFTP_BLOCKSIZE 0
-#define IF_FEATURE_TFTP_BLOCKSIZE(...)
-#define IF_NOT_FEATURE_TFTP_BLOCKSIZE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TFTP_PROGRESS_BAR
-#define ENABLE_FEATURE_TFTP_PROGRESS_BAR 0
-#define IF_FEATURE_TFTP_PROGRESS_BAR(...)
-#define IF_NOT_FEATURE_TFTP_PROGRESS_BAR(...) __VA_ARGS__
-#undef CONFIG_TFTP_DEBUG
-#define ENABLE_TFTP_DEBUG 0
-#define IF_TFTP_DEBUG(...)
-#define IF_NOT_TFTP_DEBUG(...) __VA_ARGS__
-#undef CONFIG_TRACEROUTE
-#define ENABLE_TRACEROUTE 0
-#define IF_TRACEROUTE(...)
-#define IF_NOT_TRACEROUTE(...) __VA_ARGS__
-#undef CONFIG_TRACEROUTE6
-#define ENABLE_TRACEROUTE6 0
-#define IF_TRACEROUTE6(...)
-#define IF_NOT_TRACEROUTE6(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TRACEROUTE_VERBOSE
-#define ENABLE_FEATURE_TRACEROUTE_VERBOSE 0
-#define IF_FEATURE_TRACEROUTE_VERBOSE(...)
-#define IF_NOT_FEATURE_TRACEROUTE_VERBOSE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE
-#define ENABLE_FEATURE_TRACEROUTE_SOURCE_ROUTE 0
-#define IF_FEATURE_TRACEROUTE_SOURCE_ROUTE(...)
-#define IF_NOT_FEATURE_TRACEROUTE_SOURCE_ROUTE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TRACEROUTE_USE_ICMP
-#define ENABLE_FEATURE_TRACEROUTE_USE_ICMP 0
-#define IF_FEATURE_TRACEROUTE_USE_ICMP(...)
-#define IF_NOT_FEATURE_TRACEROUTE_USE_ICMP(...) __VA_ARGS__
-#undef CONFIG_TUNCTL
-#define ENABLE_TUNCTL 0
-#define IF_TUNCTL(...)
-#define IF_NOT_TUNCTL(...) __VA_ARGS__
-#undef CONFIG_FEATURE_TUNCTL_UG
-#define ENABLE_FEATURE_TUNCTL_UG 0
-#define IF_FEATURE_TUNCTL_UG(...)
-#define IF_NOT_FEATURE_TUNCTL_UG(...) __VA_ARGS__
-#undef CONFIG_UDHCPC6
-#define ENABLE_UDHCPC6 0
-#define IF_UDHCPC6(...)
-#define IF_NOT_UDHCPC6(...) __VA_ARGS__
-#undef CONFIG_UDHCPD
-#define ENABLE_UDHCPD 0
-#define IF_UDHCPD(...)
-#define IF_NOT_UDHCPD(...) __VA_ARGS__
-#undef CONFIG_DHCPRELAY
-#define ENABLE_DHCPRELAY 0
-#define IF_DHCPRELAY(...)
-#define IF_NOT_DHCPRELAY(...) __VA_ARGS__
-#undef CONFIG_DUMPLEASES
-#define ENABLE_DUMPLEASES 0
-#define IF_DUMPLEASES(...)
-#define IF_NOT_DUMPLEASES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY
-#define ENABLE_FEATURE_UDHCPD_WRITE_LEASES_EARLY 0
-#define IF_FEATURE_UDHCPD_WRITE_LEASES_EARLY(...)
-#define IF_NOT_FEATURE_UDHCPD_WRITE_LEASES_EARLY(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC
-#define ENABLE_FEATURE_UDHCPD_BASE_IP_ON_MAC 0
-#define IF_FEATURE_UDHCPD_BASE_IP_ON_MAC(...)
-#define IF_NOT_FEATURE_UDHCPD_BASE_IP_ON_MAC(...) __VA_ARGS__
-#define CONFIG_DHCPD_LEASES_FILE ""
-#define ENABLE_DHCPD_LEASES_FILE 1
-#define IF_DHCPD_LEASES_FILE(...) __VA_ARGS__
-#define IF_NOT_DHCPD_LEASES_FILE(...)
-#undef CONFIG_UDHCPC
-#define ENABLE_UDHCPC 0
-#define IF_UDHCPC(...)
-#define IF_NOT_UDHCPC(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCPC_ARPING
-#define ENABLE_FEATURE_UDHCPC_ARPING 0
-#define IF_FEATURE_UDHCPC_ARPING(...)
-#define IF_NOT_FEATURE_UDHCPC_ARPING(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCP_PORT
-#define ENABLE_FEATURE_UDHCP_PORT 0
-#define IF_FEATURE_UDHCP_PORT(...)
-#define IF_NOT_FEATURE_UDHCP_PORT(...) __VA_ARGS__
-#define CONFIG_UDHCP_DEBUG 0
-#define ENABLE_UDHCP_DEBUG 1
-#define IF_UDHCP_DEBUG(...) __VA_ARGS__
-#define IF_NOT_UDHCP_DEBUG(...)
-#undef CONFIG_FEATURE_UDHCP_RFC3397
-#define ENABLE_FEATURE_UDHCP_RFC3397 0
-#define IF_FEATURE_UDHCP_RFC3397(...)
-#define IF_NOT_FEATURE_UDHCP_RFC3397(...) __VA_ARGS__
-#undef CONFIG_FEATURE_UDHCP_8021Q
-#define ENABLE_FEATURE_UDHCP_8021Q 0
-#define IF_FEATURE_UDHCP_8021Q(...)
-#define IF_NOT_FEATURE_UDHCP_8021Q(...) __VA_ARGS__
-#define CONFIG_UDHCPC_DEFAULT_SCRIPT ""
-#define ENABLE_UDHCPC_DEFAULT_SCRIPT 1
-#define IF_UDHCPC_DEFAULT_SCRIPT(...) __VA_ARGS__
-#define IF_NOT_UDHCPC_DEFAULT_SCRIPT(...)
-#define CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS 0
-#define ENABLE_UDHCPC_SLACK_FOR_BUGGY_SERVERS 1
-#define IF_UDHCPC_SLACK_FOR_BUGGY_SERVERS(...) __VA_ARGS__
-#define IF_NOT_UDHCPC_SLACK_FOR_BUGGY_SERVERS(...)
-#define CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS ""
-#define ENABLE_IFUPDOWN_UDHCPC_CMD_OPTIONS 1
-#define IF_IFUPDOWN_UDHCPC_CMD_OPTIONS(...) __VA_ARGS__
-#define IF_NOT_IFUPDOWN_UDHCPC_CMD_OPTIONS(...)
-#undef CONFIG_UDPSVD
-#define ENABLE_UDPSVD 0
-#define IF_UDPSVD(...)
-#define IF_NOT_UDPSVD(...) __VA_ARGS__
-#undef CONFIG_VCONFIG
-#define ENABLE_VCONFIG 0
-#define IF_VCONFIG(...)
-#define IF_NOT_VCONFIG(...) __VA_ARGS__
-#undef CONFIG_WGET
-#define ENABLE_WGET 0
-#define IF_WGET(...)
-#define IF_NOT_WGET(...) __VA_ARGS__
-#undef CONFIG_FEATURE_WGET_STATUSBAR
-#define ENABLE_FEATURE_WGET_STATUSBAR 0
-#define IF_FEATURE_WGET_STATUSBAR(...)
-#define IF_NOT_FEATURE_WGET_STATUSBAR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_WGET_AUTHENTICATION
-#define ENABLE_FEATURE_WGET_AUTHENTICATION 0
-#define IF_FEATURE_WGET_AUTHENTICATION(...)
-#define IF_NOT_FEATURE_WGET_AUTHENTICATION(...) __VA_ARGS__
-#undef CONFIG_FEATURE_WGET_LONG_OPTIONS
-#define ENABLE_FEATURE_WGET_LONG_OPTIONS 0
-#define IF_FEATURE_WGET_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_WGET_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_WGET_TIMEOUT
-#define ENABLE_FEATURE_WGET_TIMEOUT 0
-#define IF_FEATURE_WGET_TIMEOUT(...)
-#define IF_NOT_FEATURE_WGET_TIMEOUT(...) __VA_ARGS__
-#undef CONFIG_ZCIP
-#define ENABLE_ZCIP 0
-#define IF_ZCIP(...)
-#define IF_NOT_ZCIP(...) __VA_ARGS__
-
-/*
- * Print Utilities
- */
-#undef CONFIG_LPD
-#define ENABLE_LPD 0
-#define IF_LPD(...)
-#define IF_NOT_LPD(...) __VA_ARGS__
-#undef CONFIG_LPR
-#define ENABLE_LPR 0
-#define IF_LPR(...)
-#define IF_NOT_LPR(...) __VA_ARGS__
-#undef CONFIG_LPQ
-#define ENABLE_LPQ 0
-#define IF_LPQ(...)
-#define IF_NOT_LPQ(...) __VA_ARGS__
-
-/*
- * Mail Utilities
- */
-#undef CONFIG_MAKEMIME
-#define ENABLE_MAKEMIME 0
-#define IF_MAKEMIME(...)
-#define IF_NOT_MAKEMIME(...) __VA_ARGS__
-#define CONFIG_FEATURE_MIME_CHARSET ""
-#define ENABLE_FEATURE_MIME_CHARSET 1
-#define IF_FEATURE_MIME_CHARSET(...) __VA_ARGS__
-#define IF_NOT_FEATURE_MIME_CHARSET(...)
-#undef CONFIG_POPMAILDIR
-#define ENABLE_POPMAILDIR 0
-#define IF_POPMAILDIR(...)
-#define IF_NOT_POPMAILDIR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_POPMAILDIR_DELIVERY
-#define ENABLE_FEATURE_POPMAILDIR_DELIVERY 0
-#define IF_FEATURE_POPMAILDIR_DELIVERY(...)
-#define IF_NOT_FEATURE_POPMAILDIR_DELIVERY(...) __VA_ARGS__
-#undef CONFIG_REFORMIME
-#define ENABLE_REFORMIME 0
-#define IF_REFORMIME(...)
-#define IF_NOT_REFORMIME(...) __VA_ARGS__
-#undef CONFIG_FEATURE_REFORMIME_COMPAT
-#define ENABLE_FEATURE_REFORMIME_COMPAT 0
-#define IF_FEATURE_REFORMIME_COMPAT(...)
-#define IF_NOT_FEATURE_REFORMIME_COMPAT(...) __VA_ARGS__
-#undef CONFIG_SENDMAIL
-#define ENABLE_SENDMAIL 0
-#define IF_SENDMAIL(...)
-#define IF_NOT_SENDMAIL(...) __VA_ARGS__
-
-/*
- * Process Utilities
- */
-#undef CONFIG_IOSTAT
-#define ENABLE_IOSTAT 0
-#define IF_IOSTAT(...)
-#define IF_NOT_IOSTAT(...) __VA_ARGS__
-#define CONFIG_LSOF 1
-#define ENABLE_LSOF 1
-#define IF_LSOF(...) __VA_ARGS__
-#define IF_NOT_LSOF(...)
-#undef CONFIG_MPSTAT
-#define ENABLE_MPSTAT 0
-#define IF_MPSTAT(...)
-#define IF_NOT_MPSTAT(...) __VA_ARGS__
-#undef CONFIG_NMETER
-#define ENABLE_NMETER 0
-#define IF_NMETER(...)
-#define IF_NOT_NMETER(...) __VA_ARGS__
-#undef CONFIG_PMAP
-#define ENABLE_PMAP 0
-#define IF_PMAP(...)
-#define IF_NOT_PMAP(...) __VA_ARGS__
-#undef CONFIG_POWERTOP
-#define ENABLE_POWERTOP 0
-#define IF_POWERTOP(...)
-#define IF_NOT_POWERTOP(...) __VA_ARGS__
-#define CONFIG_PSTREE 1
-#define ENABLE_PSTREE 1
-#define IF_PSTREE(...) __VA_ARGS__
-#define IF_NOT_PSTREE(...)
-#undef CONFIG_PWDX
-#define ENABLE_PWDX 0
-#define IF_PWDX(...)
-#define IF_NOT_PWDX(...) __VA_ARGS__
-#undef CONFIG_SMEMCAP
-#define ENABLE_SMEMCAP 0
-#define IF_SMEMCAP(...)
-#define IF_NOT_SMEMCAP(...) __VA_ARGS__
-#define CONFIG_TOP 1
-#define ENABLE_TOP 1
-#define IF_TOP(...) __VA_ARGS__
-#define IF_NOT_TOP(...)
-#define CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE 1
-#define ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE 1
-#define IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOP_CPU_USAGE_PERCENTAGE(...)
-#define CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS 1
-#define ENABLE_FEATURE_TOP_CPU_GLOBAL_PERCENTS 1
-#define IF_FEATURE_TOP_CPU_GLOBAL_PERCENTS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOP_CPU_GLOBAL_PERCENTS(...)
-#undef CONFIG_FEATURE_TOP_SMP_CPU
-#define ENABLE_FEATURE_TOP_SMP_CPU 0
-#define IF_FEATURE_TOP_SMP_CPU(...)
-#define IF_NOT_FEATURE_TOP_SMP_CPU(...) __VA_ARGS__
-#define CONFIG_FEATURE_TOP_DECIMALS 1
-#define ENABLE_FEATURE_TOP_DECIMALS 1
-#define IF_FEATURE_TOP_DECIMALS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOP_DECIMALS(...)
-#undef CONFIG_FEATURE_TOP_SMP_PROCESS
-#define ENABLE_FEATURE_TOP_SMP_PROCESS 0
-#define IF_FEATURE_TOP_SMP_PROCESS(...)
-#define IF_NOT_FEATURE_TOP_SMP_PROCESS(...) __VA_ARGS__
-#define CONFIG_FEATURE_TOPMEM 1
-#define ENABLE_FEATURE_TOPMEM 1
-#define IF_FEATURE_TOPMEM(...) __VA_ARGS__
-#define IF_NOT_FEATURE_TOPMEM(...)
-#define CONFIG_UPTIME 1
-#define ENABLE_UPTIME 1
-#define IF_UPTIME(...) __VA_ARGS__
-#define IF_NOT_UPTIME(...)
-#undef CONFIG_FEATURE_UPTIME_UTMP_SUPPORT
-#define ENABLE_FEATURE_UPTIME_UTMP_SUPPORT 0
-#define IF_FEATURE_UPTIME_UTMP_SUPPORT(...)
-#define IF_NOT_FEATURE_UPTIME_UTMP_SUPPORT(...) __VA_ARGS__
-#define CONFIG_FREE 1
-#define ENABLE_FREE 1
-#define IF_FREE(...) __VA_ARGS__
-#define IF_NOT_FREE(...)
-#define CONFIG_FUSER 1
-#define ENABLE_FUSER 1
-#define IF_FUSER(...) __VA_ARGS__
-#define IF_NOT_FUSER(...)
-#define CONFIG_KILL 1
-#define ENABLE_KILL 1
-#define IF_KILL(...) __VA_ARGS__
-#define IF_NOT_KILL(...)
-#define CONFIG_KILLALL 1
-#define ENABLE_KILLALL 1
-#define IF_KILLALL(...) __VA_ARGS__
-#define IF_NOT_KILLALL(...)
-#define CONFIG_KILLALL5 1
-#define ENABLE_KILLALL5 1
-#define IF_KILLALL5(...) __VA_ARGS__
-#define IF_NOT_KILLALL5(...)
-#define CONFIG_PGREP 1
-#define ENABLE_PGREP 1
-#define IF_PGREP(...) __VA_ARGS__
-#define IF_NOT_PGREP(...)
-#define CONFIG_PIDOF 1
-#define ENABLE_PIDOF 1
-#define IF_PIDOF(...) __VA_ARGS__
-#define IF_NOT_PIDOF(...)
-#define CONFIG_FEATURE_PIDOF_SINGLE 1
-#define ENABLE_FEATURE_PIDOF_SINGLE 1
-#define IF_FEATURE_PIDOF_SINGLE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PIDOF_SINGLE(...)
-#define CONFIG_FEATURE_PIDOF_OMIT 1
-#define ENABLE_FEATURE_PIDOF_OMIT 1
-#define IF_FEATURE_PIDOF_OMIT(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PIDOF_OMIT(...)
-#define CONFIG_PKILL 1
-#define ENABLE_PKILL 1
-#define IF_PKILL(...) __VA_ARGS__
-#define IF_NOT_PKILL(...)
-#define CONFIG_PS 1
-#define ENABLE_PS 1
-#define IF_PS(...) __VA_ARGS__
-#define IF_NOT_PS(...)
-#define CONFIG_FEATURE_PS_WIDE 1
-#define ENABLE_FEATURE_PS_WIDE 1
-#define IF_FEATURE_PS_WIDE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PS_WIDE(...)
-#define CONFIG_FEATURE_PS_LONG 1
-#define ENABLE_FEATURE_PS_LONG 1
-#define IF_FEATURE_PS_LONG(...) __VA_ARGS__
-#define IF_NOT_FEATURE_PS_LONG(...)
-#undef CONFIG_FEATURE_PS_TIME
-#define ENABLE_FEATURE_PS_TIME 0
-#define IF_FEATURE_PS_TIME(...)
-#define IF_NOT_FEATURE_PS_TIME(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS
-#define ENABLE_FEATURE_PS_ADDITIONAL_COLUMNS 0
-#define IF_FEATURE_PS_ADDITIONAL_COLUMNS(...)
-#define IF_NOT_FEATURE_PS_ADDITIONAL_COLUMNS(...) __VA_ARGS__
-#undef CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS
-#define ENABLE_FEATURE_PS_UNUSUAL_SYSTEMS 0
-#define IF_FEATURE_PS_UNUSUAL_SYSTEMS(...)
-#define IF_NOT_FEATURE_PS_UNUSUAL_SYSTEMS(...) __VA_ARGS__
-#define CONFIG_RENICE 1
-#define ENABLE_RENICE 1
-#define IF_RENICE(...) __VA_ARGS__
-#define IF_NOT_RENICE(...)
-#define CONFIG_BB_SYSCTL 1
-#define ENABLE_BB_SYSCTL 1
-#define IF_BB_SYSCTL(...) __VA_ARGS__
-#define IF_NOT_BB_SYSCTL(...)
-#define CONFIG_FEATURE_SHOW_THREADS 1
-#define ENABLE_FEATURE_SHOW_THREADS 1
-#define IF_FEATURE_SHOW_THREADS(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SHOW_THREADS(...)
-#define CONFIG_WATCH 1
-#define ENABLE_WATCH 1
-#define IF_WATCH(...) __VA_ARGS__
-#define IF_NOT_WATCH(...)
-
-/*
- * Runit Utilities
- */
-#undef CONFIG_RUNSV
-#define ENABLE_RUNSV 0
-#define IF_RUNSV(...)
-#define IF_NOT_RUNSV(...) __VA_ARGS__
-#undef CONFIG_RUNSVDIR
-#define ENABLE_RUNSVDIR 0
-#define IF_RUNSVDIR(...)
-#define IF_NOT_RUNSVDIR(...) __VA_ARGS__
-#undef CONFIG_FEATURE_RUNSVDIR_LOG
-#define ENABLE_FEATURE_RUNSVDIR_LOG 0
-#define IF_FEATURE_RUNSVDIR_LOG(...)
-#define IF_NOT_FEATURE_RUNSVDIR_LOG(...) __VA_ARGS__
-#undef CONFIG_SV
-#define ENABLE_SV 0
-#define IF_SV(...)
-#define IF_NOT_SV(...) __VA_ARGS__
-#define CONFIG_SV_DEFAULT_SERVICE_DIR ""
-#define ENABLE_SV_DEFAULT_SERVICE_DIR 1
-#define IF_SV_DEFAULT_SERVICE_DIR(...) __VA_ARGS__
-#define IF_NOT_SV_DEFAULT_SERVICE_DIR(...)
-#undef CONFIG_SVLOGD
-#define ENABLE_SVLOGD 0
-#define IF_SVLOGD(...)
-#define IF_NOT_SVLOGD(...) __VA_ARGS__
-#undef CONFIG_CHPST
-#define ENABLE_CHPST 0
-#define IF_CHPST(...)
-#define IF_NOT_CHPST(...) __VA_ARGS__
-#undef CONFIG_SETUIDGID
-#define ENABLE_SETUIDGID 0
-#define IF_SETUIDGID(...)
-#define IF_NOT_SETUIDGID(...) __VA_ARGS__
-#undef CONFIG_ENVUIDGID
-#define ENABLE_ENVUIDGID 0
-#define IF_ENVUIDGID(...)
-#define IF_NOT_ENVUIDGID(...) __VA_ARGS__
-#undef CONFIG_ENVDIR
-#define ENABLE_ENVDIR 0
-#define IF_ENVDIR(...)
-#define IF_NOT_ENVDIR(...) __VA_ARGS__
-#undef CONFIG_SOFTLIMIT
-#define ENABLE_SOFTLIMIT 0
-#define IF_SOFTLIMIT(...)
-#define IF_NOT_SOFTLIMIT(...) __VA_ARGS__
-#undef CONFIG_CHCON
-#define ENABLE_CHCON 0
-#define IF_CHCON(...)
-#define IF_NOT_CHCON(...) __VA_ARGS__
-#undef CONFIG_FEATURE_CHCON_LONG_OPTIONS
-#define ENABLE_FEATURE_CHCON_LONG_OPTIONS 0
-#define IF_FEATURE_CHCON_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_CHCON_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_GETENFORCE
-#define ENABLE_GETENFORCE 0
-#define IF_GETENFORCE(...)
-#define IF_NOT_GETENFORCE(...) __VA_ARGS__
-#undef CONFIG_GETSEBOOL
-#define ENABLE_GETSEBOOL 0
-#define IF_GETSEBOOL(...)
-#define IF_NOT_GETSEBOOL(...) __VA_ARGS__
-#undef CONFIG_LOAD_POLICY
-#define ENABLE_LOAD_POLICY 0
-#define IF_LOAD_POLICY(...)
-#define IF_NOT_LOAD_POLICY(...) __VA_ARGS__
-#undef CONFIG_MATCHPATHCON
-#define ENABLE_MATCHPATHCON 0
-#define IF_MATCHPATHCON(...)
-#define IF_NOT_MATCHPATHCON(...) __VA_ARGS__
-#undef CONFIG_RESTORECON
-#define ENABLE_RESTORECON 0
-#define IF_RESTORECON(...)
-#define IF_NOT_RESTORECON(...) __VA_ARGS__
-#undef CONFIG_RUNCON
-#define ENABLE_RUNCON 0
-#define IF_RUNCON(...)
-#define IF_NOT_RUNCON(...) __VA_ARGS__
-#undef CONFIG_FEATURE_RUNCON_LONG_OPTIONS
-#define ENABLE_FEATURE_RUNCON_LONG_OPTIONS 0
-#define IF_FEATURE_RUNCON_LONG_OPTIONS(...)
-#define IF_NOT_FEATURE_RUNCON_LONG_OPTIONS(...) __VA_ARGS__
-#undef CONFIG_SELINUXENABLED
-#define ENABLE_SELINUXENABLED 0
-#define IF_SELINUXENABLED(...)
-#define IF_NOT_SELINUXENABLED(...) __VA_ARGS__
-#undef CONFIG_SETENFORCE
-#define ENABLE_SETENFORCE 0
-#define IF_SETENFORCE(...)
-#define IF_NOT_SETENFORCE(...) __VA_ARGS__
-#undef CONFIG_SETFILES
-#define ENABLE_SETFILES 0
-#define IF_SETFILES(...)
-#define IF_NOT_SETFILES(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SETFILES_CHECK_OPTION
-#define ENABLE_FEATURE_SETFILES_CHECK_OPTION 0
-#define IF_FEATURE_SETFILES_CHECK_OPTION(...)
-#define IF_NOT_FEATURE_SETFILES_CHECK_OPTION(...) __VA_ARGS__
-#undef CONFIG_SETSEBOOL
-#define ENABLE_SETSEBOOL 0
-#define IF_SETSEBOOL(...)
-#define IF_NOT_SETSEBOOL(...) __VA_ARGS__
-#undef CONFIG_SESTATUS
-#define ENABLE_SESTATUS 0
-#define IF_SESTATUS(...)
-#define IF_NOT_SESTATUS(...) __VA_ARGS__
-
-/*
- * Shells
- */
-#define CONFIG_ASH 1
-#define ENABLE_ASH 1
-#define IF_ASH(...) __VA_ARGS__
-#define IF_NOT_ASH(...)
-#define CONFIG_ASH_BASH_COMPAT 1
-#define ENABLE_ASH_BASH_COMPAT 1
-#define IF_ASH_BASH_COMPAT(...) __VA_ARGS__
-#define IF_NOT_ASH_BASH_COMPAT(...)
-#undef CONFIG_ASH_IDLE_TIMEOUT
-#define ENABLE_ASH_IDLE_TIMEOUT 0
-#define IF_ASH_IDLE_TIMEOUT(...)
-#define IF_NOT_ASH_IDLE_TIMEOUT(...) __VA_ARGS__
-#define CONFIG_ASH_JOB_CONTROL 1
-#define ENABLE_ASH_JOB_CONTROL 1
-#define IF_ASH_JOB_CONTROL(...) __VA_ARGS__
-#define IF_NOT_ASH_JOB_CONTROL(...)
-#define CONFIG_ASH_ALIAS 1
-#define ENABLE_ASH_ALIAS 1
-#define IF_ASH_ALIAS(...) __VA_ARGS__
-#define IF_NOT_ASH_ALIAS(...)
-#define CONFIG_ASH_GETOPTS 1
-#define ENABLE_ASH_GETOPTS 1
-#define IF_ASH_GETOPTS(...) __VA_ARGS__
-#define IF_NOT_ASH_GETOPTS(...)
-#define CONFIG_ASH_BUILTIN_ECHO 1
-#define ENABLE_ASH_BUILTIN_ECHO 1
-#define IF_ASH_BUILTIN_ECHO(...) __VA_ARGS__
-#define IF_NOT_ASH_BUILTIN_ECHO(...)
-#define CONFIG_ASH_BUILTIN_PRINTF 1
-#define ENABLE_ASH_BUILTIN_PRINTF 1
-#define IF_ASH_BUILTIN_PRINTF(...) __VA_ARGS__
-#define IF_NOT_ASH_BUILTIN_PRINTF(...)
-#define CONFIG_ASH_BUILTIN_TEST 1
-#define ENABLE_ASH_BUILTIN_TEST 1
-#define IF_ASH_BUILTIN_TEST(...) __VA_ARGS__
-#define IF_NOT_ASH_BUILTIN_TEST(...)
-#define CONFIG_ASH_CMDCMD 1
-#define ENABLE_ASH_CMDCMD 1
-#define IF_ASH_CMDCMD(...) __VA_ARGS__
-#define IF_NOT_ASH_CMDCMD(...)
-#undef CONFIG_ASH_MAIL
-#define ENABLE_ASH_MAIL 0
-#define IF_ASH_MAIL(...)
-#define IF_NOT_ASH_MAIL(...) __VA_ARGS__
-#define CONFIG_ASH_OPTIMIZE_FOR_SIZE 1
-#define ENABLE_ASH_OPTIMIZE_FOR_SIZE 1
-#define IF_ASH_OPTIMIZE_FOR_SIZE(...) __VA_ARGS__
-#define IF_NOT_ASH_OPTIMIZE_FOR_SIZE(...)
-#undef CONFIG_ASH_RANDOM_SUPPORT
-#define ENABLE_ASH_RANDOM_SUPPORT 0
-#define IF_ASH_RANDOM_SUPPORT(...)
-#define IF_NOT_ASH_RANDOM_SUPPORT(...) __VA_ARGS__
-#define CONFIG_ASH_EXPAND_PRMT 1
-#define ENABLE_ASH_EXPAND_PRMT 1
-#define IF_ASH_EXPAND_PRMT(...) __VA_ARGS__
-#define IF_NOT_ASH_EXPAND_PRMT(...)
-#undef CONFIG_CTTYHACK
-#define ENABLE_CTTYHACK 0
-#define IF_CTTYHACK(...)
-#define IF_NOT_CTTYHACK(...) __VA_ARGS__
-#undef CONFIG_HUSH
-#define ENABLE_HUSH 0
-#define IF_HUSH(...)
-#define IF_NOT_HUSH(...) __VA_ARGS__
-#undef CONFIG_HUSH_BASH_COMPAT
-#define ENABLE_HUSH_BASH_COMPAT 0
-#define IF_HUSH_BASH_COMPAT(...)
-#define IF_NOT_HUSH_BASH_COMPAT(...) __VA_ARGS__
-#undef CONFIG_HUSH_BRACE_EXPANSION
-#define ENABLE_HUSH_BRACE_EXPANSION 0
-#define IF_HUSH_BRACE_EXPANSION(...)
-#define IF_NOT_HUSH_BRACE_EXPANSION(...) __VA_ARGS__
-#undef CONFIG_HUSH_HELP
-#define ENABLE_HUSH_HELP 0
-#define IF_HUSH_HELP(...)
-#define IF_NOT_HUSH_HELP(...) __VA_ARGS__
-#undef CONFIG_HUSH_INTERACTIVE
-#define ENABLE_HUSH_INTERACTIVE 0
-#define IF_HUSH_INTERACTIVE(...)
-#define IF_NOT_HUSH_INTERACTIVE(...) __VA_ARGS__
-#undef CONFIG_HUSH_SAVEHISTORY
-#define ENABLE_HUSH_SAVEHISTORY 0
-#define IF_HUSH_SAVEHISTORY(...)
-#define IF_NOT_HUSH_SAVEHISTORY(...) __VA_ARGS__
-#undef CONFIG_HUSH_JOB
-#define ENABLE_HUSH_JOB 0
-#define IF_HUSH_JOB(...)
-#define IF_NOT_HUSH_JOB(...) __VA_ARGS__
-#undef CONFIG_HUSH_TICK
-#define ENABLE_HUSH_TICK 0
-#define IF_HUSH_TICK(...)
-#define IF_NOT_HUSH_TICK(...) __VA_ARGS__
-#undef CONFIG_HUSH_IF
-#define ENABLE_HUSH_IF 0
-#define IF_HUSH_IF(...)
-#define IF_NOT_HUSH_IF(...) __VA_ARGS__
-#undef CONFIG_HUSH_LOOPS
-#define ENABLE_HUSH_LOOPS 0
-#define IF_HUSH_LOOPS(...)
-#define IF_NOT_HUSH_LOOPS(...) __VA_ARGS__
-#undef CONFIG_HUSH_CASE
-#define ENABLE_HUSH_CASE 0
-#define IF_HUSH_CASE(...)
-#define IF_NOT_HUSH_CASE(...) __VA_ARGS__
-#undef CONFIG_HUSH_FUNCTIONS
-#define ENABLE_HUSH_FUNCTIONS 0
-#define IF_HUSH_FUNCTIONS(...)
-#define IF_NOT_HUSH_FUNCTIONS(...) __VA_ARGS__
-#undef CONFIG_HUSH_LOCAL
-#define ENABLE_HUSH_LOCAL 0
-#define IF_HUSH_LOCAL(...)
-#define IF_NOT_HUSH_LOCAL(...) __VA_ARGS__
-#undef CONFIG_HUSH_RANDOM_SUPPORT
-#define ENABLE_HUSH_RANDOM_SUPPORT 0
-#define IF_HUSH_RANDOM_SUPPORT(...)
-#define IF_NOT_HUSH_RANDOM_SUPPORT(...) __VA_ARGS__
-#undef CONFIG_HUSH_EXPORT_N
-#define ENABLE_HUSH_EXPORT_N 0
-#define IF_HUSH_EXPORT_N(...)
-#define IF_NOT_HUSH_EXPORT_N(...) __VA_ARGS__
-#undef CONFIG_HUSH_MODE_X
-#define ENABLE_HUSH_MODE_X 0
-#define IF_HUSH_MODE_X(...)
-#define IF_NOT_HUSH_MODE_X(...) __VA_ARGS__
-#undef CONFIG_MSH
-#define ENABLE_MSH 0
-#define IF_MSH(...)
-#define IF_NOT_MSH(...) __VA_ARGS__
-#define CONFIG_FEATURE_SH_IS_ASH 1
-#define ENABLE_FEATURE_SH_IS_ASH 1
-#define IF_FEATURE_SH_IS_ASH(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SH_IS_ASH(...)
-#undef CONFIG_FEATURE_SH_IS_HUSH
-#define ENABLE_FEATURE_SH_IS_HUSH 0
-#define IF_FEATURE_SH_IS_HUSH(...)
-#define IF_NOT_FEATURE_SH_IS_HUSH(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SH_IS_NONE
-#define ENABLE_FEATURE_SH_IS_NONE 0
-#define IF_FEATURE_SH_IS_NONE(...)
-#define IF_NOT_FEATURE_SH_IS_NONE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BASH_IS_ASH
-#define ENABLE_FEATURE_BASH_IS_ASH 0
-#define IF_FEATURE_BASH_IS_ASH(...)
-#define IF_NOT_FEATURE_BASH_IS_ASH(...) __VA_ARGS__
-#undef CONFIG_FEATURE_BASH_IS_HUSH
-#define ENABLE_FEATURE_BASH_IS_HUSH 0
-#define IF_FEATURE_BASH_IS_HUSH(...)
-#define IF_NOT_FEATURE_BASH_IS_HUSH(...) __VA_ARGS__
-#define CONFIG_FEATURE_BASH_IS_NONE 1
-#define ENABLE_FEATURE_BASH_IS_NONE 1
-#define IF_FEATURE_BASH_IS_NONE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_BASH_IS_NONE(...)
-#define CONFIG_SH_MATH_SUPPORT 1
-#define ENABLE_SH_MATH_SUPPORT 1
-#define IF_SH_MATH_SUPPORT(...) __VA_ARGS__
-#define IF_NOT_SH_MATH_SUPPORT(...)
-#define CONFIG_SH_MATH_SUPPORT_64 1
-#define ENABLE_SH_MATH_SUPPORT_64 1
-#define IF_SH_MATH_SUPPORT_64(...) __VA_ARGS__
-#define IF_NOT_SH_MATH_SUPPORT_64(...)
-#define CONFIG_FEATURE_SH_EXTRA_QUIET 1
-#define ENABLE_FEATURE_SH_EXTRA_QUIET 1
-#define IF_FEATURE_SH_EXTRA_QUIET(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SH_EXTRA_QUIET(...)
-#undef CONFIG_FEATURE_SH_STANDALONE
-#define ENABLE_FEATURE_SH_STANDALONE 0
-#define IF_FEATURE_SH_STANDALONE(...)
-#define IF_NOT_FEATURE_SH_STANDALONE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SH_NOFORK
-#define ENABLE_FEATURE_SH_NOFORK 0
-#define IF_FEATURE_SH_NOFORK(...)
-#define IF_NOT_FEATURE_SH_NOFORK(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SH_HISTFILESIZE
-#define ENABLE_FEATURE_SH_HISTFILESIZE 0
-#define IF_FEATURE_SH_HISTFILESIZE(...)
-#define IF_NOT_FEATURE_SH_HISTFILESIZE(...) __VA_ARGS__
-
-/*
- * System Logging Utilities
- */
-#undef CONFIG_SYSLOGD
-#define ENABLE_SYSLOGD 0
-#define IF_SYSLOGD(...)
-#define IF_NOT_SYSLOGD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_ROTATE_LOGFILE
-#define ENABLE_FEATURE_ROTATE_LOGFILE 0
-#define IF_FEATURE_ROTATE_LOGFILE(...)
-#define IF_NOT_FEATURE_ROTATE_LOGFILE(...) __VA_ARGS__
-#undef CONFIG_FEATURE_REMOTE_LOG
-#define ENABLE_FEATURE_REMOTE_LOG 0
-#define IF_FEATURE_REMOTE_LOG(...)
-#define IF_NOT_FEATURE_REMOTE_LOG(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SYSLOGD_DUP
-#define ENABLE_FEATURE_SYSLOGD_DUP 0
-#define IF_FEATURE_SYSLOGD_DUP(...)
-#define IF_NOT_FEATURE_SYSLOGD_DUP(...) __VA_ARGS__
-#undef CONFIG_FEATURE_SYSLOGD_CFG
-#define ENABLE_FEATURE_SYSLOGD_CFG 0
-#define IF_FEATURE_SYSLOGD_CFG(...)
-#define IF_NOT_FEATURE_SYSLOGD_CFG(...) __VA_ARGS__
-#define CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE 0
-#define ENABLE_FEATURE_SYSLOGD_READ_BUFFER_SIZE 1
-#define IF_FEATURE_SYSLOGD_READ_BUFFER_SIZE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_SYSLOGD_READ_BUFFER_SIZE(...)
-#undef CONFIG_FEATURE_IPC_SYSLOG
-#define ENABLE_FEATURE_IPC_SYSLOG 0
-#define IF_FEATURE_IPC_SYSLOG(...)
-#define IF_NOT_FEATURE_IPC_SYSLOG(...) __VA_ARGS__
-#define CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE 0
-#define ENABLE_FEATURE_IPC_SYSLOG_BUFFER_SIZE 1
-#define IF_FEATURE_IPC_SYSLOG_BUFFER_SIZE(...) __VA_ARGS__
-#define IF_NOT_FEATURE_IPC_SYSLOG_BUFFER_SIZE(...)
-#undef CONFIG_LOGREAD
-#define ENABLE_LOGREAD 0
-#define IF_LOGREAD(...)
-#define IF_NOT_LOGREAD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING
-#define ENABLE_FEATURE_LOGREAD_REDUCED_LOCKING 0
-#define IF_FEATURE_LOGREAD_REDUCED_LOCKING(...)
-#define IF_NOT_FEATURE_LOGREAD_REDUCED_LOCKING(...) __VA_ARGS__
-#undef CONFIG_FEATURE_KMSG_SYSLOG
-#define ENABLE_FEATURE_KMSG_SYSLOG 0
-#define IF_FEATURE_KMSG_SYSLOG(...)
-#define IF_NOT_FEATURE_KMSG_SYSLOG(...) __VA_ARGS__
-#undef CONFIG_KLOGD
-#define ENABLE_KLOGD 0
-#define IF_KLOGD(...)
-#define IF_NOT_KLOGD(...) __VA_ARGS__
-#undef CONFIG_FEATURE_KLOGD_KLOGCTL
-#define ENABLE_FEATURE_KLOGD_KLOGCTL 0
-#define IF_FEATURE_KLOGD_KLOGCTL(...)
-#define IF_NOT_FEATURE_KLOGD_KLOGCTL(...) __VA_ARGS__
-#undef CONFIG_LOGGER
-#define ENABLE_LOGGER 0
-#define IF_LOGGER(...)
-#define IF_NOT_LOGGER(...) __VA_ARGS__
diff --git a/include-minimal/bbconfigopts.h b/include-minimal/bbconfigopts.h
deleted file mode 100644
index 859e5b0..0000000
--- a/include-minimal/bbconfigopts.h
+++ /dev/null
@@ -1,898 +0,0 @@
-#ifndef _BBCONFIGOPTS_H
-#define _BBCONFIGOPTS_H
-/*
- * busybox configuration settings.
- *
- * Licensed under GPLv2 or later, see file LICENSE in this source tree.
- *
- * This file is generated automatically by scripts/mkconfigs.
- * Do not edit.
- */
-static const char bbconfig_config[] ALIGN1 =
-"CONFIG_HAVE_DOT_CONFIG=y\n"
-"# CONFIG_DESKTOP is not set\n"
-"# CONFIG_EXTRA_COMPAT is not set\n"
-"# CONFIG_INCLUDE_SUSv2 is not set\n"
-"# CONFIG_USE_PORTABLE_CODE is not set\n"
-"CONFIG_PLATFORM_LINUX=y\n"
-"CONFIG_FEATURE_BUFFERS_USE_MALLOC=y\n"
-"# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set\n"
-"# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set\n"
-"CONFIG_SHOW_USAGE=y\n"
-"CONFIG_FEATURE_VERBOSE_USAGE=y\n"
-"CONFIG_FEATURE_COMPRESS_USAGE=y\n"
-"# CONFIG_FEATURE_INSTALLER is not set\n"
-"CONFIG_INSTALL_NO_USR=y\n"
-"# CONFIG_LOCALE_SUPPORT is not set\n"
-"CONFIG_UNICODE_SUPPORT=y\n"
-"# CONFIG_UNICODE_USING_LOCALE is not set\n"
-"# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set\n"
-"CONFIG_SUBST_WCHAR=63\n"
-"CONFIG_LAST_SUPPORTED_WCHAR=0\n"
-"# CONFIG_UNICODE_COMBINING_WCHARS is not set\n"
-"CONFIG_UNICODE_WIDE_WCHARS=y\n"
-"# CONFIG_UNICODE_BIDI_SUPPORT is not set\n"
-"# CONFIG_UNICODE_NEUTRAL_TABLE is not set\n"
-"CONFIG_UNICODE_PRESERVE_BROKEN=y\n"
-"CONFIG_LONG_OPTS=y\n"
-"# CONFIG_FEATURE_DEVPTS is not set\n"
-"# CONFIG_FEATURE_CLEAN_UP is not set\n"
-"# CONFIG_FEATURE_UTMP is not set\n"
-"# CONFIG_FEATURE_WTMP is not set\n"
-"# CONFIG_FEATURE_PIDFILE is not set\n"
-"CONFIG_PID_FILE_PATH=\"\"\n"
-"CONFIG_FEATURE_SUID=y\n"
-"# CONFIG_FEATURE_SUID_CONFIG is not set\n"
-"# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set\n"
-"# CONFIG_SELINUX is not set\n"
-"# CONFIG_FEATURE_PREFER_APPLETS is not set\n"
-"CONFIG_BUSYBOX_EXEC_PATH=\"/proc/self/exe\"\n"
-"# CONFIG_FEATURE_SYSLOG is not set\n"
-"# CONFIG_FEATURE_HAVE_RPC is not set\n"
-"# CONFIG_STATIC is not set\n"
-"# CONFIG_PIE is not set\n"
-"# CONFIG_NOMMU is not set\n"
-"# CONFIG_BUILD_LIBBUSYBOX is not set\n"
-"# CONFIG_FEATURE_INDIVIDUAL is not set\n"
-"# CONFIG_FEATURE_SHARED_BUSYBOX is not set\n"
-"# CONFIG_LFS is not set\n"
-"CONFIG_CROSS_COMPILER_PREFIX=\"arm-eabi-\"\n"
-"CONFIG_SYSROOT=\"\"\n"
-"CONFIG_EXTRA_CFLAGS=\"-Os\"\n"
-"CONFIG_EXTRA_LDFLAGS=\"\"\n"
-"CONFIG_EXTRA_LDLIBS=\"\"\n"
-"# CONFIG_DEBUG is not set\n"
-"# CONFIG_DEBUG_PESSIMIZE is not set\n"
-"# CONFIG_WERROR is not set\n"
-"CONFIG_NO_DEBUG_LIB=y\n"
-"# CONFIG_DMALLOC is not set\n"
-"# CONFIG_EFENCE is not set\n"
-"CONFIG_INSTALL_APPLET_SYMLINKS=y\n"
-"# CONFIG_INSTALL_APPLET_HARDLINKS is not set\n"
-"# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set\n"
-"# CONFIG_INSTALL_APPLET_DONT is not set\n"
-"# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set\n"
-"# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set\n"
-"# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set\n"
-"CONFIG_PREFIX=\"/system/xbin/bb\"\n"
-"# CONFIG_FEATURE_SYSTEMD is not set\n"
-"# CONFIG_FEATURE_RTMINMAX is not set\n"
-"CONFIG_PASSWORD_MINLEN=6\n"
-"CONFIG_MD5_SMALL=0\n"
-"CONFIG_SHA3_SMALL=1\n"
-"CONFIG_FEATURE_FAST_TOP=y\n"
-"# CONFIG_FEATURE_ETC_NETWORKS is not set\n"
-"CONFIG_FEATURE_USE_TERMIOS=y\n"
-"CONFIG_FEATURE_EDITING=y\n"
-"CONFIG_FEATURE_EDITING_MAX_LEN=1024\n"
-"CONFIG_FEATURE_EDITING_VI=y\n"
-"CONFIG_FEATURE_EDITING_HISTORY=256\n"
-"CONFIG_FEATURE_EDITING_SAVEHISTORY=y\n"
-"CONFIG_FEATURE_EDITING_SAVE_ON_EXIT=y\n"
-"CONFIG_FEATURE_REVERSE_SEARCH=y\n"
-"CONFIG_FEATURE_TAB_COMPLETION=y\n"
-"# CONFIG_FEATURE_USERNAME_COMPLETION is not set\n"
-"CONFIG_FEATURE_EDITING_FANCY_PROMPT=y\n"
-"# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set\n"
-"CONFIG_FEATURE_NON_POSIX_CP=y\n"
-"# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set\n"
-"CONFIG_FEATURE_COPYBUF_KB=4\n"
-"CONFIG_FEATURE_SKIP_ROOTFS=y\n"
-"CONFIG_MONOTONIC_SYSCALL=y\n"
-"CONFIG_IOCTL_HEX2STR_ERROR=y\n"
-"# CONFIG_FEATURE_HWIB is not set\n"
-"# CONFIG_FEATURE_SEAMLESS_XZ is not set\n"
-"# CONFIG_FEATURE_SEAMLESS_LZMA is not set\n"
-"CONFIG_FEATURE_SEAMLESS_BZ2=y\n"
-"CONFIG_FEATURE_SEAMLESS_GZ=y\n"
-"# CONFIG_FEATURE_SEAMLESS_Z is not set\n"
-"# CONFIG_AR is not set\n"
-"# CONFIG_FEATURE_AR_LONG_FILENAMES is not set\n"
-"# CONFIG_FEATURE_AR_CREATE is not set\n"
-"CONFIG_BUNZIP2=y\n"
-"CONFIG_BZIP2=y\n"
-"CONFIG_CPIO=y\n"
-"CONFIG_FEATURE_CPIO_O=y\n"
-"# CONFIG_FEATURE_CPIO_P is not set\n"
-"# CONFIG_DPKG is not set\n"
-"# CONFIG_DPKG_DEB is not set\n"
-"# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set\n"
-"CONFIG_GUNZIP=y\n"
-"CONFIG_GZIP=y\n"
-"CONFIG_FEATURE_GZIP_LONG_OPTIONS=y\n"
-"CONFIG_GZIP_FAST=2\n"
-"CONFIG_LZOP=y\n"
-"# CONFIG_LZOP_COMPR_HIGH is not set\n"
-"# CONFIG_RPM2CPIO is not set\n"
-"# CONFIG_RPM is not set\n"
-"CONFIG_TAR=y\n"
-"CONFIG_FEATURE_TAR_CREATE=y\n"
-"# CONFIG_FEATURE_TAR_AUTODETECT is not set\n"
-"CONFIG_FEATURE_TAR_FROM=y\n"
-"# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set\n"
-"# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set\n"
-"CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y\n"
-"CONFIG_FEATURE_TAR_LONG_OPTIONS=y\n"
-"# CONFIG_FEATURE_TAR_TO_COMMAND is not set\n"
-"# CONFIG_FEATURE_TAR_UNAME_GNAME is not set\n"
-"CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y\n"
-"# CONFIG_FEATURE_TAR_SELINUX is not set\n"
-"# CONFIG_UNCOMPRESS is not set\n"
-"CONFIG_UNLZMA=y\n"
-"# CONFIG_FEATURE_LZMA_FAST is not set\n"
-"# CONFIG_LZMA is not set\n"
-"CONFIG_UNXZ=y\n"
-"# CONFIG_XZ is not set\n"
-"CONFIG_UNZIP=y\n"
-"CONFIG_BASENAME=y\n"
-"CONFIG_CAT=y\n"
-"CONFIG_DATE=y\n"
-"CONFIG_FEATURE_DATE_ISOFMT=y\n"
-"# CONFIG_FEATURE_DATE_NANO is not set\n"
-"CONFIG_FEATURE_DATE_COMPAT=y\n"
-"# CONFIG_HOSTID is not set\n"
-"CONFIG_ID=y\n"
-"CONFIG_GROUPS=y\n"
-"CONFIG_TEST=y\n"
-"# CONFIG_FEATURE_TEST_64 is not set\n"
-"CONFIG_TOUCH=y\n"
-"# CONFIG_FEATURE_TOUCH_SUSV3 is not set\n"
-"CONFIG_TR=y\n"
-"CONFIG_FEATURE_TR_CLASSES=y\n"
-"# CONFIG_FEATURE_TR_EQUIV is not set\n"
-"CONFIG_BASE64=y\n"
-"# CONFIG_WHO is not set\n"
-"# CONFIG_USERS is not set\n"
-"CONFIG_CAL=y\n"
-"CONFIG_CATV=y\n"
-"CONFIG_CHGRP=y\n"
-"CONFIG_CHMOD=y\n"
-"CONFIG_CHOWN=y\n"
-"CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y\n"
-"CONFIG_CHROOT=y\n"
-"# CONFIG_CKSUM is not set\n"
-"# CONFIG_COMM is not set\n"
-"CONFIG_CP=y\n"
-"CONFIG_FEATURE_CP_LONG_OPTIONS=y\n"
-"CONFIG_CUT=y\n"
-"CONFIG_DD=y\n"
-"CONFIG_FEATURE_DD_SIGNAL_HANDLING=y\n"
-"CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y\n"
-"CONFIG_FEATURE_DD_IBS_OBS=y\n"
-"CONFIG_DF=y\n"
-"CONFIG_FEATURE_DF_FANCY=y\n"
-"CONFIG_DIRNAME=y\n"
-"CONFIG_DOS2UNIX=y\n"
-"CONFIG_UNIX2DOS=y\n"
-"CONFIG_DU=y\n"
-"CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y\n"
-"CONFIG_ECHO=y\n"
-"CONFIG_FEATURE_FANCY_ECHO=y\n"
-"CONFIG_ENV=y\n"
-"# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set\n"
-"CONFIG_EXPAND=y\n"
-"# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set\n"
-"CONFIG_EXPR=y\n"
-"CONFIG_EXPR_MATH_SUPPORT_64=y\n"
-"CONFIG_FALSE=y\n"
-"CONFIG_FOLD=y\n"
-"# CONFIG_FSYNC is not set\n"
-"CONFIG_HEAD=y\n"
-"# CONFIG_FEATURE_FANCY_HEAD is not set\n"
-"CONFIG_INSTALL=y\n"
-"# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set\n"
-"CONFIG_LN=y\n"
-"# CONFIG_LOGNAME is not set\n"
-"CONFIG_LS=y\n"
-"CONFIG_FEATURE_LS_FILETYPES=y\n"
-"CONFIG_FEATURE_LS_FOLLOWLINKS=y\n"
-"CONFIG_FEATURE_LS_RECURSIVE=y\n"
-"CONFIG_FEATURE_LS_SORTFILES=y\n"
-"CONFIG_FEATURE_LS_TIMESTAMPS=y\n"
-"CONFIG_FEATURE_LS_USERNAME=y\n"
-"CONFIG_FEATURE_LS_COLOR=y\n"
-"# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set\n"
-"CONFIG_MD5SUM=y\n"
-"CONFIG_MKDIR=y\n"
-"# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set\n"
-"CONFIG_MKFIFO=y\n"
-"CONFIG_MKNOD=y\n"
-"CONFIG_MV=y\n"
-"# CONFIG_FEATURE_MV_LONG_OPTIONS is not set\n"
-"CONFIG_NICE=y\n"
-"CONFIG_NOHUP=y\n"
-"CONFIG_OD=y\n"
-"CONFIG_PRINTENV=y\n"
-"CONFIG_PRINTF=y\n"
-"CONFIG_PWD=y\n"
-"CONFIG_READLINK=y\n"
-"CONFIG_FEATURE_READLINK_FOLLOW=y\n"
-"CONFIG_REALPATH=y\n"
-"CONFIG_RM=y\n"
-"CONFIG_RMDIR=y\n"
-"CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y\n"
-"CONFIG_SEQ=y\n"
-"CONFIG_SHA1SUM=y\n"
-"CONFIG_SHA256SUM=y\n"
-"CONFIG_SHA512SUM=y\n"
-"# CONFIG_SHA3SUM is not set\n"
-"CONFIG_SLEEP=y\n"
-"CONFIG_FEATURE_FANCY_SLEEP=y\n"
-"CONFIG_FEATURE_FLOAT_SLEEP=y\n"
-"CONFIG_SORT=y\n"
-"# CONFIG_FEATURE_SORT_BIG is not set\n"
-"CONFIG_SPLIT=y\n"
-"# CONFIG_FEATURE_SPLIT_FANCY is not set\n"
-"CONFIG_STAT=y\n"
-"# CONFIG_FEATURE_STAT_FORMAT is not set\n"
-"CONFIG_STTY=y\n"
-"# CONFIG_SUM is not set\n"
-"CONFIG_SYNC=y\n"
-"CONFIG_TAC=y\n"
-"CONFIG_TAIL=y\n"
-"CONFIG_FEATURE_FANCY_TAIL=y\n"
-"CONFIG_TEE=y\n"
-"# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set\n"
-"CONFIG_TRUE=y\n"
-"# CONFIG_TTY is not set\n"
-"CONFIG_UNAME=y\n"
-"CONFIG_UNEXPAND=y\n"
-"CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y\n"
-"CONFIG_UNIQ=y\n"
-"CONFIG_USLEEP=y\n"
-"CONFIG_UUDECODE=y\n"
-"CONFIG_UUENCODE=y\n"
-"CONFIG_WC=y\n"
-"# CONFIG_FEATURE_WC_LARGE is not set\n"
-"CONFIG_WHOAMI=y\n"
-"CONFIG_YES=y\n"
-"CONFIG_FEATURE_PRESERVE_HARDLINKS=y\n"
-"CONFIG_FEATURE_AUTOWIDTH=y\n"
-"CONFIG_FEATURE_HUMAN_READABLE=y\n"
-"CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y\n"
-"# CONFIG_CHVT is not set\n"
-"# CONFIG_FGCONSOLE is not set\n"
-"CONFIG_CLEAR=y\n"
-"# CONFIG_DEALLOCVT is not set\n"
-"# CONFIG_DUMPKMAP is not set\n"
-"# CONFIG_KBD_MODE is not set\n"
-"# CONFIG_LOADFONT is not set\n"
-"# CONFIG_LOADKMAP is not set\n"
-"# CONFIG_OPENVT is not set\n"
-"CONFIG_RESET=y\n"
-"CONFIG_RESIZE=y\n"
-"# CONFIG_FEATURE_RESIZE_PRINT is not set\n"
-"CONFIG_SETCONSOLE=y\n"
-"# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set\n"
-"# CONFIG_SETFONT is not set\n"
-"# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set\n"
-"CONFIG_DEFAULT_SETFONT_DIR=\"\"\n"
-"# CONFIG_SETKEYCODES is not set\n"
-"# CONFIG_SETLOGCONS is not set\n"
-"# CONFIG_SHOWKEY is not set\n"
-"# CONFIG_FEATURE_LOADFONT_PSF2 is not set\n"
-"# CONFIG_FEATURE_LOADFONT_RAW is not set\n"
-"CONFIG_MKTEMP=y\n"
-"# CONFIG_PIPE_PROGRESS is not set\n"
-"CONFIG_RUN_PARTS=y\n"
-"# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set\n"
-"CONFIG_FEATURE_RUN_PARTS_FANCY=y\n"
-"# CONFIG_START_STOP_DAEMON is not set\n"
-"# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set\n"
-"# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set\n"
-"CONFIG_WHICH=y\n"
-"CONFIG_PATCH=y\n"
-"# CONFIG_VI is not set\n"
-"CONFIG_FEATURE_VI_MAX_LEN=0\n"
-"# CONFIG_FEATURE_VI_8BIT is not set\n"
-"# CONFIG_FEATURE_VI_COLON is not set\n"
-"# CONFIG_FEATURE_VI_YANKMARK is not set\n"
-"# CONFIG_FEATURE_VI_SEARCH is not set\n"
-"# CONFIG_FEATURE_VI_REGEX_SEARCH is not set\n"
-"# CONFIG_FEATURE_VI_USE_SIGNALS is not set\n"
-"# CONFIG_FEATURE_VI_DOT_CMD is not set\n"
-"# CONFIG_FEATURE_VI_READONLY is not set\n"
-"# CONFIG_FEATURE_VI_SETOPTS is not set\n"
-"# CONFIG_FEATURE_VI_SET is not set\n"
-"# CONFIG_FEATURE_VI_WIN_RESIZE is not set\n"
-"# CONFIG_FEATURE_VI_ASK_TERMINAL is not set\n"
-"CONFIG_AWK=y\n"
-"# CONFIG_FEATURE_AWK_LIBM is not set\n"
-"CONFIG_CMP=y\n"
-"CONFIG_DIFF=y\n"
-"CONFIG_FEATURE_DIFF_LONG_OPTIONS=y\n"
-"CONFIG_FEATURE_DIFF_DIR=y\n"
-"# CONFIG_ED is not set\n"
-"CONFIG_SED=y\n"
-"CONFIG_FEATURE_ALLOW_EXEC=y\n"
-"CONFIG_FIND=y\n"
-"CONFIG_FEATURE_FIND_PRINT0=y\n"
-"CONFIG_FEATURE_FIND_MTIME=y\n"
-"CONFIG_FEATURE_FIND_MMIN=y\n"
-"CONFIG_FEATURE_FIND_PERM=y\n"
-"CONFIG_FEATURE_FIND_TYPE=y\n"
-"CONFIG_FEATURE_FIND_XDEV=y\n"
-"CONFIG_FEATURE_FIND_MAXDEPTH=y\n"
-"CONFIG_FEATURE_FIND_NEWER=y\n"
-"# CONFIG_FEATURE_FIND_INUM is not set\n"
-"CONFIG_FEATURE_FIND_EXEC=y\n"
-"CONFIG_FEATURE_FIND_USER=y\n"
-"CONFIG_FEATURE_FIND_GROUP=y\n"
-"CONFIG_FEATURE_FIND_NOT=y\n"
-"CONFIG_FEATURE_FIND_DEPTH=y\n"
-"CONFIG_FEATURE_FIND_PAREN=y\n"
-"CONFIG_FEATURE_FIND_SIZE=y\n"
-"CONFIG_FEATURE_FIND_PRUNE=y\n"
-"# CONFIG_FEATURE_FIND_DELETE is not set\n"
-"CONFIG_FEATURE_FIND_PATH=y\n"
-"CONFIG_FEATURE_FIND_REGEX=y\n"
-"# CONFIG_FEATURE_FIND_CONTEXT is not set\n"
-"# CONFIG_FEATURE_FIND_LINKS is not set\n"
-"CONFIG_GREP=y\n"
-"CONFIG_FEATURE_GREP_EGREP_ALIAS=y\n"
-"CONFIG_FEATURE_GREP_FGREP_ALIAS=y\n"
-"CONFIG_FEATURE_GREP_CONTEXT=y\n"
-"CONFIG_XARGS=y\n"
-"CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y\n"
-"CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y\n"
-"# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set\n"
-"CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y\n"
-"# CONFIG_BOOTCHARTD is not set\n"
-"# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set\n"
-"# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set\n"
-"# CONFIG_HALT is not set\n"
-"# CONFIG_FEATURE_CALL_TELINIT is not set\n"
-"CONFIG_TELINIT_PATH=\"\"\n"
-"# CONFIG_INIT is not set\n"
-"# CONFIG_FEATURE_USE_INITTAB is not set\n"
-"# CONFIG_FEATURE_KILL_REMOVED is not set\n"
-"CONFIG_FEATURE_KILL_DELAY=0\n"
-"# CONFIG_FEATURE_INIT_SCTTY is not set\n"
-"# CONFIG_FEATURE_INIT_SYSLOG is not set\n"
-"# CONFIG_FEATURE_EXTRA_QUIET is not set\n"
-"# CONFIG_FEATURE_INIT_COREDUMPS is not set\n"
-"# CONFIG_FEATURE_INITRD is not set\n"
-"CONFIG_INIT_TERMINAL_TYPE=\"\"\n"
-"# CONFIG_MESG is not set\n"
-"# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set\n"
-"# CONFIG_ADD_SHELL is not set\n"
-"# CONFIG_REMOVE_SHELL is not set\n"
-"# CONFIG_FEATURE_SHADOWPASSWDS is not set\n"
-"# CONFIG_USE_BB_PWD_GRP is not set\n"
-"# CONFIG_USE_BB_SHADOW is not set\n"
-"CONFIG_USE_BB_CRYPT=y\n"
-"# CONFIG_USE_BB_CRYPT_SHA is not set\n"
-"# CONFIG_ADDUSER is not set\n"
-"# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set\n"
-"# CONFIG_FEATURE_CHECK_NAMES is not set\n"
-"CONFIG_FIRST_SYSTEM_ID=0\n"
-"CONFIG_LAST_SYSTEM_ID=0\n"
-"# CONFIG_ADDGROUP is not set\n"
-"# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set\n"
-"# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set\n"
-"# CONFIG_DELUSER is not set\n"
-"# CONFIG_DELGROUP is not set\n"
-"# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set\n"
-"# CONFIG_GETTY is not set\n"
-"# CONFIG_LOGIN is not set\n"
-"# CONFIG_LOGIN_SESSION_AS_CHILD is not set\n"
-"# CONFIG_PAM is not set\n"
-"# CONFIG_LOGIN_SCRIPTS is not set\n"
-"# CONFIG_FEATURE_NOLOGIN is not set\n"
-"# CONFIG_FEATURE_SECURETTY is not set\n"
-"# CONFIG_PASSWD is not set\n"
-"# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set\n"
-"# CONFIG_CRYPTPW is not set\n"
-"# CONFIG_CHPASSWD is not set\n"
-"CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=\"\"\n"
-"# CONFIG_SU is not set\n"
-"# CONFIG_FEATURE_SU_SYSLOG is not set\n"
-"# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set\n"
-"# CONFIG_SULOGIN is not set\n"
-"# CONFIG_VLOCK is not set\n"
-"CONFIG_CHATTR=y\n"
-"# CONFIG_FSCK is not set\n"
-"CONFIG_LSATTR=y\n"
-"CONFIG_TUNE2FS=y\n"
-"CONFIG_MODINFO=y\n"
-"CONFIG_MODPROBE_SMALL=y\n"
-"CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y\n"
-"# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set\n"
-"# CONFIG_INSMOD is not set\n"
-"# CONFIG_RMMOD is not set\n"
-"# CONFIG_LSMOD is not set\n"
-"# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set\n"
-"# CONFIG_MODPROBE is not set\n"
-"# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set\n"
-"# CONFIG_DEPMOD is not set\n"
-"# CONFIG_FEATURE_2_4_MODULES is not set\n"
-"CONFIG_FEATURE_INSMOD_TRY_MMAP=y\n"
-"# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set\n"
-"# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set\n"
-"# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set\n"
-"# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set\n"
-"# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set\n"
-"# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set\n"
-"# CONFIG_FEATURE_MODUTILS_ALIAS is not set\n"
-"# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set\n"
-"CONFIG_DEFAULT_DEPMOD_FILE=\"modules.dep\"\n"
-"CONFIG_BLOCKDEV=y\n"
-"# CONFIG_MDEV is not set\n"
-"# CONFIG_FEATURE_MDEV_CONF is not set\n"
-"# CONFIG_FEATURE_MDEV_RENAME is not set\n"
-"# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set\n"
-"# CONFIG_FEATURE_MDEV_EXEC is not set\n"
-"# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set\n"
-"CONFIG_REV=y\n"
-"# CONFIG_ACPID is not set\n"
-"# CONFIG_FEATURE_ACPID_COMPAT is not set\n"
-"CONFIG_BLKID=y\n"
-"CONFIG_FEATURE_BLKID_TYPE=y\n"
-"CONFIG_DMESG=y\n"
-"# CONFIG_FEATURE_DMESG_PRETTY is not set\n"
-"# CONFIG_FBSET is not set\n"
-"# CONFIG_FEATURE_FBSET_FANCY is not set\n"
-"# CONFIG_FEATURE_FBSET_READMODE is not set\n"
-"# CONFIG_FDFLUSH is not set\n"
-"# CONFIG_FDFORMAT is not set\n"
-"CONFIG_FDISK=y\n"
-"CONFIG_FDISK_SUPPORT_LARGE_DISKS=y\n"
-"CONFIG_FEATURE_FDISK_WRITABLE=y\n"
-"# CONFIG_FEATURE_AIX_LABEL is not set\n"
-"# CONFIG_FEATURE_SGI_LABEL is not set\n"
-"# CONFIG_FEATURE_SUN_LABEL is not set\n"
-"# CONFIG_FEATURE_OSF_LABEL is not set\n"
-"# CONFIG_FEATURE_GPT_LABEL is not set\n"
-"# CONFIG_FEATURE_FDISK_ADVANCED is not set\n"
-"# CONFIG_FINDFS is not set\n"
-"# CONFIG_FLOCK is not set\n"
-"CONFIG_FREERAMDISK=y\n"
-"# CONFIG_FSCK_MINIX is not set\n"
-"CONFIG_FSTRIM=y\n"
-"CONFIG_MKFS_EXT2=y\n"
-"# CONFIG_MKFS_MINIX is not set\n"
-"# CONFIG_FEATURE_MINIX2 is not set\n"
-"# CONFIG_MKFS_REISER is not set\n"
-"CONFIG_MKFS_VFAT=y\n"
-"CONFIG_GETOPT=y\n"
-"# CONFIG_FEATURE_GETOPT_LONG is not set\n"
-"CONFIG_HEXDUMP=y\n"
-"# CONFIG_FEATURE_HEXDUMP_REVERSE is not set\n"
-"# CONFIG_HD is not set\n"
-"# CONFIG_HWCLOCK is not set\n"
-"# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set\n"
-"# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set\n"
-"# CONFIG_IPCRM is not set\n"
-"# CONFIG_IPCS is not set\n"
-"CONFIG_LOSETUP=y\n"
-"CONFIG_LSPCI=y\n"
-"CONFIG_LSUSB=y\n"
-"CONFIG_MKSWAP=y\n"
-"# CONFIG_FEATURE_MKSWAP_UUID is not set\n"
-"CONFIG_MORE=y\n"
-"CONFIG_MOUNT=y\n"
-"# CONFIG_FEATURE_MOUNT_FAKE is not set\n"
-"# CONFIG_FEATURE_MOUNT_VERBOSE is not set\n"
-"# CONFIG_FEATURE_MOUNT_HELPERS is not set\n"
-"CONFIG_FEATURE_MOUNT_LABEL=y\n"
-"# CONFIG_FEATURE_MOUNT_NFS is not set\n"
-"CONFIG_FEATURE_MOUNT_CIFS=y\n"
-"CONFIG_FEATURE_MOUNT_FLAGS=y\n"
-"CONFIG_FEATURE_MOUNT_FSTAB=y\n"
-"# CONFIG_PIVOT_ROOT is not set\n"
-"# CONFIG_RDATE is not set\n"
-"CONFIG_RDEV=y\n"
-"# CONFIG_READPROFILE is not set\n"
-"# CONFIG_RTCWAKE is not set\n"
-"# CONFIG_SCRIPT is not set\n"
-"# CONFIG_SCRIPTREPLAY is not set\n"
-"# CONFIG_SETARCH is not set\n"
-"CONFIG_SWAPONOFF=y\n"
-"# CONFIG_FEATURE_SWAPON_PRI is not set\n"
-"# CONFIG_SWITCH_ROOT is not set\n"
-"CONFIG_UMOUNT=y\n"
-"# CONFIG_FEATURE_UMOUNT_ALL is not set\n"
-"CONFIG_FEATURE_MOUNT_LOOP=y\n"
-"# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set\n"
-"# CONFIG_FEATURE_MTAB_SUPPORT is not set\n"
-"CONFIG_VOLUMEID=y\n"
-"CONFIG_FEATURE_VOLUMEID_EXT=y\n"
-"# CONFIG_FEATURE_VOLUMEID_BTRFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_REISERFS is not set\n"
-"CONFIG_FEATURE_VOLUMEID_FAT=y\n"
-"CONFIG_FEATURE_VOLUMEID_EXFAT=y\n"
-"# CONFIG_FEATURE_VOLUMEID_HFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_JFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_XFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_NILFS is not set\n"
-"CONFIG_FEATURE_VOLUMEID_NTFS=y\n"
-"CONFIG_FEATURE_VOLUMEID_ISO9660=y\n"
-"# CONFIG_FEATURE_VOLUMEID_UDF is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_LUKS is not set\n"
-"CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y\n"
-"# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_ROMFS is not set\n"
-"CONFIG_FEATURE_VOLUMEID_SQUASHFS=y\n"
-"# CONFIG_FEATURE_VOLUMEID_SYSV is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set\n"
-"# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set\n"
-"# CONFIG_CONSPY is not set\n"
-"CONFIG_LESS=y\n"
-"CONFIG_FEATURE_LESS_MAXLINES=65536\n"
-"# CONFIG_FEATURE_LESS_BRACKETS is not set\n"
-"# CONFIG_FEATURE_LESS_FLAGS is not set\n"
-"CONFIG_FEATURE_LESS_MARKS=y\n"
-"CONFIG_FEATURE_LESS_REGEXP=y\n"
-"CONFIG_FEATURE_LESS_WINCH=y\n"
-"# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set\n"
-"# CONFIG_FEATURE_LESS_DASHCMD is not set\n"
-"# CONFIG_FEATURE_LESS_LINENUMS is not set\n"
-"CONFIG_NANDWRITE=y\n"
-"CONFIG_NANDDUMP=y\n"
-"CONFIG_SETSERIAL=y\n"
-"# CONFIG_UBIATTACH is not set\n"
-"# CONFIG_UBIDETACH is not set\n"
-"# CONFIG_UBIMKVOL is not set\n"
-"# CONFIG_UBIRMVOL is not set\n"
-"# CONFIG_UBIRSVOL is not set\n"
-"# CONFIG_UBIUPDATEVOL is not set\n"
-"# CONFIG_ADJTIMEX is not set\n"
-"CONFIG_BBCONFIG=y\n"
-"CONFIG_FEATURE_COMPRESS_BBCONFIG=y\n"
-"# CONFIG_BEEP is not set\n"
-"CONFIG_FEATURE_BEEP_FREQ=0\n"
-"CONFIG_FEATURE_BEEP_LENGTH_MS=0\n"
-"# CONFIG_CHAT is not set\n"
-"# CONFIG_FEATURE_CHAT_NOFAIL is not set\n"
-"# CONFIG_FEATURE_CHAT_TTY_HIFI is not set\n"
-"# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set\n"
-"# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set\n"
-"# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set\n"
-"# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set\n"
-"# CONFIG_FEATURE_CHAT_CLR_ABORT is not set\n"
-"# CONFIG_CHRT is not set\n"
-"# CONFIG_CROND is not set\n"
-"# CONFIG_FEATURE_CROND_D is not set\n"
-"# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set\n"
-"CONFIG_FEATURE_CROND_DIR=\"\"\n"
-"# CONFIG_CRONTAB is not set\n"
-"CONFIG_DC=y\n"
-"# CONFIG_FEATURE_DC_LIBM is not set\n"
-"# CONFIG_DEVFSD is not set\n"
-"# CONFIG_DEVFSD_MODLOAD is not set\n"
-"# CONFIG_DEVFSD_FG_NP is not set\n"
-"# CONFIG_DEVFSD_VERBOSE is not set\n"
-"# CONFIG_FEATURE_DEVFS is not set\n"
-"CONFIG_DEVMEM=y\n"
-"# CONFIG_EJECT is not set\n"
-"# CONFIG_FEATURE_EJECT_SCSI is not set\n"
-"# CONFIG_FBSPLASH is not set\n"
-"# CONFIG_FLASHCP is not set\n"
-"# CONFIG_FLASH_LOCK is not set\n"
-"# CONFIG_FLASH_UNLOCK is not set\n"
-"# CONFIG_FLASH_ERASEALL is not set\n"
-"# CONFIG_IONICE is not set\n"
-"# CONFIG_INOTIFYD is not set\n"
-"# CONFIG_LAST is not set\n"
-"# CONFIG_FEATURE_LAST_SMALL is not set\n"
-"# CONFIG_FEATURE_LAST_FANCY is not set\n"
-"# CONFIG_HDPARM is not set\n"
-"# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set\n"
-"# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set\n"
-"CONFIG_MAKEDEVS=y\n"
-"# CONFIG_FEATURE_MAKEDEVS_LEAF is not set\n"
-"CONFIG_FEATURE_MAKEDEVS_TABLE=y\n"
-"# CONFIG_MAN is not set\n"
-"# CONFIG_MICROCOM is not set\n"
-"CONFIG_MOUNTPOINT=y\n"
-"# CONFIG_MT is not set\n"
-"# CONFIG_RAIDAUTORUN is not set\n"
-"# CONFIG_READAHEAD is not set\n"
-"# CONFIG_RFKILL is not set\n"
-"# CONFIG_RUNLEVEL is not set\n"
-"# CONFIG_RX is not set\n"
-"CONFIG_SETSID=y\n"
-"CONFIG_STRINGS=y\n"
-"# CONFIG_TASKSET is not set\n"
-"# CONFIG_FEATURE_TASKSET_FANCY is not set\n"
-"CONFIG_TIME=y\n"
-"# CONFIG_TIMEOUT is not set\n"
-"CONFIG_TTYSIZE=y\n"
-"# CONFIG_VOLNAME is not set\n"
-"# CONFIG_WALL is not set\n"
-"# CONFIG_WATCHDOG is not set\n"
-"# CONFIG_NAMEIF is not set\n"
-"# CONFIG_FEATURE_NAMEIF_EXTENDED is not set\n"
-"# CONFIG_NBDCLIENT is not set\n"
-"# CONFIG_NC is not set\n"
-"# CONFIG_NC_SERVER is not set\n"
-"# CONFIG_NC_EXTRA is not set\n"
-"# CONFIG_NC_110_COMPAT is not set\n"
-"# CONFIG_PING is not set\n"
-"# CONFIG_PING6 is not set\n"
-"# CONFIG_FEATURE_FANCY_PING is not set\n"
-"# CONFIG_WHOIS is not set\n"
-"# CONFIG_FEATURE_IPV6 is not set\n"
-"# CONFIG_FEATURE_UNIX_LOCAL is not set\n"
-"# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set\n"
-"# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set\n"
-"# CONFIG_ARP is not set\n"
-"# CONFIG_ARPING is not set\n"
-"# CONFIG_BRCTL is not set\n"
-"# CONFIG_FEATURE_BRCTL_FANCY is not set\n"
-"# CONFIG_FEATURE_BRCTL_SHOW is not set\n"
-"# CONFIG_DNSD is not set\n"
-"# CONFIG_ETHER_WAKE is not set\n"
-"# CONFIG_FAKEIDENTD is not set\n"
-"# CONFIG_FTPD is not set\n"
-"# CONFIG_FEATURE_FTP_WRITE is not set\n"
-"# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set\n"
-"# CONFIG_FTPGET is not set\n"
-"# CONFIG_FTPPUT is not set\n"
-"# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set\n"
-"# CONFIG_HOSTNAME is not set\n"
-"# CONFIG_HTTPD is not set\n"
-"# CONFIG_FEATURE_HTTPD_RANGES is not set\n"
-"# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set\n"
-"# CONFIG_FEATURE_HTTPD_SETUID is not set\n"
-"# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set\n"
-"# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set\n"
-"# CONFIG_FEATURE_HTTPD_CGI is not set\n"
-"# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set\n"
-"# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set\n"
-"# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set\n"
-"# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set\n"
-"# CONFIG_FEATURE_HTTPD_PROXY is not set\n"
-"# CONFIG_FEATURE_HTTPD_GZIP is not set\n"
-"# CONFIG_IFCONFIG is not set\n"
-"# CONFIG_FEATURE_IFCONFIG_STATUS is not set\n"
-"# CONFIG_FEATURE_IFCONFIG_SLIP is not set\n"
-"# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set\n"
-"# CONFIG_FEATURE_IFCONFIG_HW is not set\n"
-"# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set\n"
-"# CONFIG_IFENSLAVE is not set\n"
-"# CONFIG_IFPLUGD is not set\n"
-"# CONFIG_IFUPDOWN is not set\n"
-"CONFIG_IFUPDOWN_IFSTATE_PATH=\"\"\n"
-"# CONFIG_FEATURE_IFUPDOWN_IP is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set\n"
-"# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set\n"
-"# CONFIG_INETD is not set\n"
-"# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set\n"
-"# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set\n"
-"# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set\n"
-"# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set\n"
-"# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set\n"
-"# CONFIG_FEATURE_INETD_RPC is not set\n"
-"# CONFIG_IP is not set\n"
-"# CONFIG_FEATURE_IP_ADDRESS is not set\n"
-"# CONFIG_FEATURE_IP_LINK is not set\n"
-"# CONFIG_FEATURE_IP_ROUTE is not set\n"
-"# CONFIG_FEATURE_IP_TUNNEL is not set\n"
-"# CONFIG_FEATURE_IP_RULE is not set\n"
-"# CONFIG_FEATURE_IP_SHORT_FORMS is not set\n"
-"# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set\n"
-"# CONFIG_IPADDR is not set\n"
-"# CONFIG_IPLINK is not set\n"
-"# CONFIG_IPROUTE is not set\n"
-"# CONFIG_IPTUNNEL is not set\n"
-"# CONFIG_IPRULE is not set\n"
-"# CONFIG_IPCALC is not set\n"
-"# CONFIG_FEATURE_IPCALC_FANCY is not set\n"
-"# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set\n"
-"# CONFIG_NETSTAT is not set\n"
-"# CONFIG_FEATURE_NETSTAT_WIDE is not set\n"
-"# CONFIG_FEATURE_NETSTAT_PRG is not set\n"
-"# CONFIG_NSLOOKUP is not set\n"
-"# CONFIG_NTPD is not set\n"
-"# CONFIG_FEATURE_NTPD_SERVER is not set\n"
-"# CONFIG_PSCAN is not set\n"
-"# CONFIG_ROUTE is not set\n"
-"# CONFIG_SLATTACH is not set\n"
-"# CONFIG_TCPSVD is not set\n"
-"# CONFIG_TELNET is not set\n"
-"# CONFIG_FEATURE_TELNET_TTYPE is not set\n"
-"# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set\n"
-"# CONFIG_TELNETD is not set\n"
-"# CONFIG_FEATURE_TELNETD_STANDALONE is not set\n"
-"# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set\n"
-"# CONFIG_TFTP is not set\n"
-"# CONFIG_TFTPD is not set\n"
-"# CONFIG_FEATURE_TFTP_GET is not set\n"
-"# CONFIG_FEATURE_TFTP_PUT is not set\n"
-"# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set\n"
-"# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set\n"
-"# CONFIG_TFTP_DEBUG is not set\n"
-"# CONFIG_TRACEROUTE is not set\n"
-"# CONFIG_TRACEROUTE6 is not set\n"
-"# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set\n"
-"# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set\n"
-"# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set\n"
-"# CONFIG_TUNCTL is not set\n"
-"# CONFIG_FEATURE_TUNCTL_UG is not set\n"
-"# CONFIG_UDHCPC6 is not set\n"
-"# CONFIG_UDHCPD is not set\n"
-"# CONFIG_DHCPRELAY is not set\n"
-"# CONFIG_DUMPLEASES is not set\n"
-"# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set\n"
-"# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set\n"
-"CONFIG_DHCPD_LEASES_FILE=\"\"\n"
-"# CONFIG_UDHCPC is not set\n"
-"# CONFIG_FEATURE_UDHCPC_ARPING is not set\n"
-"# CONFIG_FEATURE_UDHCP_PORT is not set\n"
-"CONFIG_UDHCP_DEBUG=0\n"
-"# CONFIG_FEATURE_UDHCP_RFC3397 is not set\n"
-"# CONFIG_FEATURE_UDHCP_8021Q is not set\n"
-"CONFIG_UDHCPC_DEFAULT_SCRIPT=\"\"\n"
-"CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0\n"
-"CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=\"\"\n"
-"# CONFIG_UDPSVD is not set\n"
-"# CONFIG_VCONFIG is not set\n"
-"# CONFIG_WGET is not set\n"
-"# CONFIG_FEATURE_WGET_STATUSBAR is not set\n"
-"# CONFIG_FEATURE_WGET_AUTHENTICATION is not set\n"
-"# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set\n"
-"# CONFIG_FEATURE_WGET_TIMEOUT is not set\n"
-"# CONFIG_ZCIP is not set\n"
-"# CONFIG_LPD is not set\n"
-"# CONFIG_LPR is not set\n"
-"# CONFIG_LPQ is not set\n"
-"# CONFIG_MAKEMIME is not set\n"
-"CONFIG_FEATURE_MIME_CHARSET=\"\"\n"
-"# CONFIG_POPMAILDIR is not set\n"
-"# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set\n"
-"# CONFIG_REFORMIME is not set\n"
-"# CONFIG_FEATURE_REFORMIME_COMPAT is not set\n"
-"# CONFIG_SENDMAIL is not set\n"
-"# CONFIG_IOSTAT is not set\n"
-"CONFIG_LSOF=y\n"
-"# CONFIG_MPSTAT is not set\n"
-"# CONFIG_NMETER is not set\n"
-"# CONFIG_PMAP is not set\n"
-"# CONFIG_POWERTOP is not set\n"
-"CONFIG_PSTREE=y\n"
-"# CONFIG_PWDX is not set\n"
-"# CONFIG_SMEMCAP is not set\n"
-"CONFIG_TOP=y\n"
-"CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y\n"
-"CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y\n"
-"# CONFIG_FEATURE_TOP_SMP_CPU is not set\n"
-"CONFIG_FEATURE_TOP_DECIMALS=y\n"
-"# CONFIG_FEATURE_TOP_SMP_PROCESS is not set\n"
-"CONFIG_FEATURE_TOPMEM=y\n"
-"CONFIG_UPTIME=y\n"
-"# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set\n"
-"CONFIG_FREE=y\n"
-"CONFIG_FUSER=y\n"
-"CONFIG_KILL=y\n"
-"CONFIG_KILLALL=y\n"
-"CONFIG_KILLALL5=y\n"
-"CONFIG_PGREP=y\n"
-"CONFIG_PIDOF=y\n"
-"CONFIG_FEATURE_PIDOF_SINGLE=y\n"
-"CONFIG_FEATURE_PIDOF_OMIT=y\n"
-"CONFIG_PKILL=y\n"
-"CONFIG_PS=y\n"
-"CONFIG_FEATURE_PS_WIDE=y\n"
-"CONFIG_FEATURE_PS_LONG=y\n"
-"# CONFIG_FEATURE_PS_TIME is not set\n"
-"# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set\n"
-"# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set\n"
-"CONFIG_RENICE=y\n"
-"CONFIG_BB_SYSCTL=y\n"
-"CONFIG_FEATURE_SHOW_THREADS=y\n"
-"CONFIG_WATCH=y\n"
-"# CONFIG_RUNSV is not set\n"
-"# CONFIG_RUNSVDIR is not set\n"
-"# CONFIG_FEATURE_RUNSVDIR_LOG is not set\n"
-"# CONFIG_SV is not set\n"
-"CONFIG_SV_DEFAULT_SERVICE_DIR=\"\"\n"
-"# CONFIG_SVLOGD is not set\n"
-"# CONFIG_CHPST is not set\n"
-"# CONFIG_SETUIDGID is not set\n"
-"# CONFIG_ENVUIDGID is not set\n"
-"# CONFIG_ENVDIR is not set\n"
-"# CONFIG_SOFTLIMIT is not set\n"
-"# CONFIG_CHCON is not set\n"
-"# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set\n"
-"# CONFIG_GETENFORCE is not set\n"
-"# CONFIG_GETSEBOOL is not set\n"
-"# CONFIG_LOAD_POLICY is not set\n"
-"# CONFIG_MATCHPATHCON is not set\n"
-"# CONFIG_RESTORECON is not set\n"
-"# CONFIG_RUNCON is not set\n"
-"# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set\n"
-"# CONFIG_SELINUXENABLED is not set\n"
-"# CONFIG_SETENFORCE is not set\n"
-"# CONFIG_SETFILES is not set\n"
-"# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set\n"
-"# CONFIG_SETSEBOOL is not set\n"
-"# CONFIG_SESTATUS is not set\n"
-"CONFIG_ASH=y\n"
-"CONFIG_ASH_BASH_COMPAT=y\n"
-"# CONFIG_ASH_IDLE_TIMEOUT is not set\n"
-"CONFIG_ASH_JOB_CONTROL=y\n"
-"CONFIG_ASH_ALIAS=y\n"
-"CONFIG_ASH_GETOPTS=y\n"
-"CONFIG_ASH_BUILTIN_ECHO=y\n"
-"CONFIG_ASH_BUILTIN_PRINTF=y\n"
-"CONFIG_ASH_BUILTIN_TEST=y\n"
-"CONFIG_ASH_CMDCMD=y\n"
-"# CONFIG_ASH_MAIL is not set\n"
-"CONFIG_ASH_OPTIMIZE_FOR_SIZE=y\n"
-"# CONFIG_ASH_RANDOM_SUPPORT is not set\n"
-"CONFIG_ASH_EXPAND_PRMT=y\n"
-"# CONFIG_CTTYHACK is not set\n"
-"# CONFIG_HUSH is not set\n"
-"# CONFIG_HUSH_BASH_COMPAT is not set\n"
-"# CONFIG_HUSH_BRACE_EXPANSION is not set\n"
-"# CONFIG_HUSH_HELP is not set\n"
-"# CONFIG_HUSH_INTERACTIVE is not set\n"
-"# CONFIG_HUSH_SAVEHISTORY is not set\n"
-"# CONFIG_HUSH_JOB is not set\n"
-"# CONFIG_HUSH_TICK is not set\n"
-"# CONFIG_HUSH_IF is not set\n"
-"# CONFIG_HUSH_LOOPS is not set\n"
-"# CONFIG_HUSH_CASE is not set\n"
-"# CONFIG_HUSH_FUNCTIONS is not set\n"
-"# CONFIG_HUSH_LOCAL is not set\n"
-"# CONFIG_HUSH_RANDOM_SUPPORT is not set\n"
-"# CONFIG_HUSH_EXPORT_N is not set\n"
-"# CONFIG_HUSH_MODE_X is not set\n"
-"# CONFIG_MSH is not set\n"
-"CONFIG_FEATURE_SH_IS_ASH=y\n"
-"# CONFIG_FEATURE_SH_IS_HUSH is not set\n"
-"# CONFIG_FEATURE_SH_IS_NONE is not set\n"
-"# CONFIG_FEATURE_BASH_IS_ASH is not set\n"
-"# CONFIG_FEATURE_BASH_IS_HUSH is not set\n"
-"CONFIG_FEATURE_BASH_IS_NONE=y\n"
-"CONFIG_SH_MATH_SUPPORT=y\n"
-"CONFIG_SH_MATH_SUPPORT_64=y\n"
-"CONFIG_FEATURE_SH_EXTRA_QUIET=y\n"
-"# CONFIG_FEATURE_SH_STANDALONE is not set\n"
-"# CONFIG_FEATURE_SH_NOFORK is not set\n"
-"# CONFIG_FEATURE_SH_HISTFILESIZE is not set\n"
-"# CONFIG_SYSLOGD is not set\n"
-"# CONFIG_FEATURE_ROTATE_LOGFILE is not set\n"
-"# CONFIG_FEATURE_REMOTE_LOG is not set\n"
-"# CONFIG_FEATURE_SYSLOGD_DUP is not set\n"
-"# CONFIG_FEATURE_SYSLOGD_CFG is not set\n"
-"CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0\n"
-"# CONFIG_FEATURE_IPC_SYSLOG is not set\n"
-"CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0\n"
-"# CONFIG_LOGREAD is not set\n"
-"# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set\n"
-"# CONFIG_FEATURE_KMSG_SYSLOG is not set\n"
-"# CONFIG_KLOGD is not set\n"
-"# CONFIG_FEATURE_KLOGD_KLOGCTL is not set\n"
-"# CONFIG_LOGGER is not set\n"
-;
-#endif
diff --git a/include-minimal/bbconfigopts_bz2.h b/include-minimal/bbconfigopts_bz2.h
deleted file mode 100644
index d219b78..0000000
--- a/include-minimal/bbconfigopts_bz2.h
+++ /dev/null
@@ -1,338 +0,0 @@
-#ifndef _BBCONFIGOPTS_BZ2_H
-#define _BBCONFIGOPTS_BZ2_H
-/*
- * busybox configuration settings.
- *
- * Licensed under GPLv2 or later, see file LICENSE in this source tree.
- *
- * This file is generated automatically by scripts/mkconfigs.
- * Do not edit.
- */
-static const char bbconfig_config_bz2[] ALIGN1 = {
-0x68,0x31,0x31,0x41,0x59,0x26,0x53,0x59,0x01,0x6f,0x8a,0xe9,0x00,0x0b,0xb7,0xdf,
-0x80,0x00,0x10,0x58,0x03,0xff,0xe2,0x3f,0xff,0xff,0xf0,0xbf,0x27,0xdf,0x60,0x60,
-0x1a,0xdc,0x00,0x3d,0x80,0x12,0x01,0xf3,0xd1,0x42,0xfb,0x7c,0x00,0x27,0xbb,0x37,
-0x83,0x19,0xab,0x00,0xd1,0xe4,0x34,0x03,0xde,0xce,0x80,0x6e,0xc0,0x0d,0x3b,0x6a,
-0x4e,0xc1,0x8e,0xcf,0x46,0xa2,0xe4,0x24,0x2f,0x69,0x77,0x2b,0xa7,0x49,0xcd,0xa1,
-0xb9,0xae,0x5f,0x03,0x53,0xd0,0x20,0x10,0x21,0x94,0x6a,0x6a,0x69,0x0d,0xa4,0xf5,
-0x3d,0x27,0xea,0x4f,0x53,0xd4,0x00,0x68,0x06,0x99,0x02,0x10,0x86,0x49,0xa1,0x53,
-0x7a,0xa0,0x00,0x00,0x00,0x00,0x0d,0x31,0x12,0x4d,0x36,0xa7,0xa8,0xd2,0x87,0xa4,
-0xc8,0x1a,0x00,0x00,0x68,0x1a,0x0d,0x01,0x27,0xaa,0x52,0x51,0x4d,0x19,0x3f,0x54,
-0x03,0x46,0x80,0x01,0xa0,0x00,0x68,0x00,0x09,0x24,0x34,0xa9,0xe8,0x9a,0x68,0xc9,
-0xa1,0xa6,0x8d,0x03,0xd4,0x68,0xd3,0xd4,0xf5,0x34,0x1a,0x30,0xd1,0x3d,0x41,0x21,
-0x20,0x82,0x69,0x90,0x24,0x15,0x3c,0xa6,0x80,0x00,0x00,0x64,0x34,0x1f,0xfb,0xe0,
-0xff,0x76,0xed,0x2e,0x57,0x4d,0xee,0x75,0xdd,0x5c,0xd1,0xa0,0xb6,0x23,0x63,0x58,
-0x92,0x41,0x85,0x32,0x8a,0x8b,0x63,0x6e,0x6b,0x78,0xd7,0x99,0x73,0x5b,0xbe,0x97,
-0x6d,0xd9,0xb2,0x10,0x91,0x58,0xc5,0x10,0x58,0x99,0x25,0x3d,0x74,0xeb,0x92,0x28,
-0xa6,0x62,0xde,0xbb,0x92,0x77,0x6d,0x76,0x6c,0x86,0x8d,0x99,0xa8,0xd5,0xbc,0x6e,
-0x5b,0x45,0x3c,0xed,0x70,0x79,0xdc,0x83,0x54,0x9c,0xb9,0x8d,0xa2,0xb7,0x37,0x28,
-0xe7,0x39,0x72,0xc4,0x1a,0xe4,0x77,0x9d,0xc3,0x41,0x41,0x2c,0x28,0x3c,0x5c,0x45,
-0x30,0x86,0x1b,0x27,0x67,0x32,0xf3,0xb5,0xc9,0x28,0xd1,0x7a,0x7b,0x37,0xc4,0xbd,
-0x36,0x2d,0x94,0xb4,0x04,0xca,0x93,0x3c,0xf7,0xf7,0x92,0x24,0x41,0x0c,0x81,0x90,
-0x4d,0x7b,0xd5,0xd5,0xed,0xe7,0x97,0x8a,0x5e,0xdd,0x7c,0x1e,0x70,0x8c,0x12,0x06,
-0x13,0x04,0x84,0x81,0x7a,0x72,0x11,0xaf,0x7f,0x5c,0x16,0x39,0xb9,0x93,0x04,0xcc,
-0x30,0xc7,0x0a,0x04,0x20,0x31,0x53,0xdd,0x5f,0x9c,0x7b,0x33,0xe7,0xab,0xb6,0x19,
-0xa1,0x0c,0xd3,0xf5,0xa2,0x53,0x99,0x16,0xe0,0x84,0xde,0xba,0x67,0x27,0xf9,0x37,
-0xcd,0x3e,0x6e,0x1e,0xfa,0x02,0xee,0xeb,0xb5,0x34,0xbf,0xd2,0xe9,0x69,0xcd,0x1c,
-0xa5,0x92,0xa2,0xeb,0xf3,0xa6,0x9e,0xa9,0x9a,0xa4,0x1a,0x2c,0x6f,0xfb,0x84,0xe1,
-0x36,0x9f,0xcb,0x6f,0x7d,0xe9,0xb4,0x65,0x94,0x71,0xdf,0xdf,0xb3,0x6c,0x3b,0x8f,
-0xd4,0xdd,0xff,0x36,0xb8,0xfc,0xf2,0x2b,0xdf,0x5b,0xaf,0x8b,0xfa,0x3b,0x29,0x1b,
-0x75,0x71,0xe9,0x7b,0x35,0xcc,0xda,0xbf,0xad,0x07,0x8b,0xe3,0xd7,0x17,0xdd,0x05,
-0x8c,0x98,0xe1,0x6b,0x83,0x5e,0x68,0xd3,0x82,0x20,0x71,0x1f,0x0d,0x96,0x2d,0x49,
-0x6f,0xe6,0xd1,0xc6,0xb0,0x7e,0x1a,0xa3,0x69,0x6a,0x21,0x40,0x88,0x84,0x73,0x4e,
-0x23,0x3f,0x4a,0xc5,0x2d,0x54,0x8b,0x67,0x45,0xb2,0xbe,0x8d,0xe3,0xba,0x78,0x32,
-0xee,0xf0,0xb8,0x4b,0xd6,0xec,0x5d,0x9c,0x26,0x1c,0x8c,0x2a,0x44,0xe1,0x8b,0x51,
-0xe7,0x38,0xbb,0xef,0x3e,0xd7,0xa4,0xd9,0x6c,0xca,0xac,0x2c,0x1e,0x63,0x86,0x83,
-0xce,0x93,0x87,0xaf,0x16,0xe5,0xaf,0x03,0x5b,0x69,0x5b,0xd4,0x4f,0xd6,0x71,0xd9,
-0xaf,0x89,0xaf,0xdd,0x5d,0xb6,0x6d,0x67,0x91,0x4c,0x4e,0x1e,0x90,0x54,0x62,0x35,
-0x4a,0x03,0xeb,0xde,0xea,0xfe,0x0a,0xd0,0x64,0xad,0x6a,0xee,0x27,0x08,0xba,0xdf,
-0x46,0xd3,0xda,0x33,0x6b,0x5b,0x5b,0x52,0x6b,0x31,0x99,0x37,0x59,0xa6,0xd9,0xa7,
-0x19,0x5c,0xe2,0xe6,0xe2,0xae,0x43,0x0d,0xee,0xb0,0xe3,0xc2,0x78,0x0b,0xc9,0xc9,
-0xec,0x44,0xf7,0x69,0xdf,0x6d,0x75,0xbb,0xd7,0x57,0x4e,0x99,0x05,0x01,0xe6,0xf3,
-0xc7,0x33,0x8f,0x53,0xd1,0x01,0xc9,0xe3,0xb2,0xcf,0xae,0xd6,0xd7,0x72,0x30,0xf1,
-0x30,0xb5,0xb6,0x85,0xa3,0xda,0x9c,0x30,0x6c,0xd4,0x27,0x74,0x6a,0x22,0x4d,0x61,
-0x67,0x9c,0x3f,0x23,0x87,0x0a,0xd6,0xf6,0xfc,0x3a,0x7e,0xa6,0x27,0x7e,0x17,0x8c,
-0x19,0x70,0xca,0x4f,0xb9,0x02,0x10,0x1e,0x08,0x10,0x80,0xa5,0x69,0xfa,0x80,0x16,
-0x33,0xb1,0x53,0x7c,0x02,0x2a,0x40,0x84,0x06,0xa8,0xec,0x9e,0xdd,0x92,0xd6,0xcf,
-0x40,0x2d,0x3f,0x3e,0xdc,0xb0,0x90,0xda,0xb4,0x37,0xbf,0x48,0xf5,0xe3,0xf2,0xfe,
-0xfb,0x1e,0x2f,0xf8,0x0f,0x8f,0xca,0x9f,0x13,0xad,0xf4,0x1b,0x7e,0xdf,0x7e,0x3f,
-0x1d,0x07,0x6d,0xa2,0x60,0x1a,0x7d,0x22,0x8f,0x31,0xf5,0x79,0x55,0xeb,0xf9,0x5b,
-0x53,0x8b,0x3e,0x1c,0x84,0xfe,0xf4,0x54,0x23,0xe9,0x6f,0x7d,0xbd,0xc5,0x7a,0x68,
-0x2a,0xec,0x5d,0x11,0x3b,0x86,0xd9,0xbf,0x25,0xdf,0xf8,0x25,0x7d,0xe2,0x7d,0xc4,
-0x5e,0xbf,0x65,0xa4,0xfc,0x45,0x2d,0x7f,0x5f,0xab,0x8a,0x35,0x91,0xe2,0x3a,0xde,
-0x89,0x7a,0xad,0xfd,0xb0,0x37,0xb6,0x21,0xd0,0xae,0xdc,0x37,0x9b,0xa4,0x44,0xd2,
-0x76,0xbb,0xcf,0xd9,0x2d,0x40,0x31,0xf7,0xb6,0xe6,0x65,0xd0,0x41,0x45,0xed,0x85,
-0x25,0xbe,0x3b,0xa6,0xbd,0xb1,0x0c,0xd4,0xa5,0x75,0xfb,0xb4,0xa3,0xf8,0x88,0xd3,
-0x5e,0x46,0x1c,0x76,0x4a,0x88,0x6f,0xaf,0x68,0x68,0xeb,0x34,0x5c,0xd7,0x43,0x4c,
-0xb6,0xf1,0x06,0x60,0xb6,0x68,0x17,0x8b,0xf1,0xaa,0xd9,0xcf,0x5d,0xb9,0xad,0x6e,
-0x82,0x1b,0x6a,0x1f,0xb2,0x7d,0x9b,0x4a,0xd7,0x88,0xdb,0x6e,0x33,0xe9,0xde,0x87,
-0x6d,0x9d,0x57,0x9f,0x46,0x8b,0x92,0x61,0x02,0x2a,0x48,0x90,0x70,0x81,0x38,0x44,
-0x3d,0xf4,0xd3,0x99,0xf3,0x66,0x9d,0x2c,0xba,0x2d,0x51,0xc6,0x99,0x70,0xef,0x38,
-0xb5,0x08,0xa3,0x77,0xd4,0x71,0xe9,0x44,0x37,0xb1,0x13,0xcf,0xc5,0x32,0xfd,0xf3,
-0xd9,0x7e,0xcf,0x4c,0xde,0xbe,0xca,0x31,0x0d,0x4e,0x05,0xe9,0xc4,0xd3,0xcd,0x6d,
-0x57,0x73,0x6e,0x31,0x5a,0x49,0x04,0x8b,0x2d,0x84,0xd7,0x6f,0x51,0xff,0x09,0x0b,
-0xb9,0x91,0x40,0xcc,0xc9,0x62,0x1e,0xb6,0x13,0xa5,0xd9,0x91,0x83,0xa6,0x10,0x70,
-0x30,0x32,0x99,0x40,0xf6,0x4f,0xb2,0xd5,0xe5,0xea,0x17,0xd4,0xf1,0xba,0xc8,0xc7,
-0xe3,0x77,0x67,0x65,0x1e,0xdc,0x73,0xf4,0x50,0xf0,0x83,0x61,0x85,0x56,0x1f,0x78,
-0x1a,0x34,0xee,0xe2,0xa6,0xa0,0x08,0x20,0xd2,0x63,0xb8,0xaa,0xcd,0x6d,0xe1,0xd7,
-0x6f,0x8f,0xbd,0x75,0x20,0x03,0xf1,0xb2,0x38,0xdb,0x8f,0x7d,0x92,0x55,0xa9,0x73,
-0x5e,0xdb,0x12,0xca,0x7e,0x6a,0xb5,0xce,0xcd,0x11,0xf4,0x46,0x64,0xae,0x40,0x75,
-0x39,0x36,0x33,0xbb,0x1b,0xd2,0x96,0x1e,0xba,0xf8,0xa7,0xf1,0x1b,0x9a,0x61,0x2d,
-0xd6,0x05,0x16,0xc1,0xcb,0xb3,0x4d,0xa5,0xe8,0x3b,0x71,0xd9,0xea,0x9e,0x3b,0x33,
-0xd4,0xf5,0x42,0xb1,0x51,0x44,0xe3,0x4e,0x6a,0x52,0x7d,0x83,0x1e,0x81,0xd1,0x65,
-0x1c,0x55,0x02,0x5b,0xb2,0x29,0x4a,0xb4,0x3c,0x39,0x9d,0xc6,0xe4,0xf9,0x23,0x04,
-0x93,0xb5,0xb2,0xc2,0x65,0x6b,0x56,0xe7,0x7f,0x7b,0x20,0x48,0x16,0x43,0x36,0x8c,
-0x6f,0x66,0xa7,0x64,0xb8,0x47,0x67,0xb6,0xa6,0x1b,0xea,0xc7,0x64,0x5d,0x62,0xc5,
-0x30,0xdf,0xf5,0xe3,0xb4,0xfc,0xd4,0xde,0xcf,0x60,0x56,0x68,0xf0,0x7c,0xce,0x2c,
-0xb2,0x28,0x1e,0x8a,0x32,0x4d,0xd9,0xfc,0xce,0xd8,0x49,0xa5,0x72,0xe6,0xe5,0x2b,
-0x1d,0x85,0xf6,0x54,0x06,0x35,0xf0,0x15,0xad,0xa0,0xaf,0xa2,0x8c,0x60,0xb8,0x61,
-0xae,0x94,0x59,0x94,0xeb,0xab,0x7b,0x39,0xd6,0x66,0xb7,0xac,0xf8,0xf9,0xa1,0x8c,
-0xdc,0xdf,0x2a,0x1e,0x68,0x67,0x44,0x2c,0x9d,0x8d,0xf8,0x73,0x94,0x0f,0x87,0x1e,
-0xa5,0x86,0xa9,0x45,0x88,0x28,0x3b,0x1b,0xbf,0x41,0xef,0xb0,0xb2,0x0c,0x31,0x88,
-0x04,0x81,0x18,0x00,0xc2,0x20,0x1b,0x61,0xcf,0x87,0x25,0xb7,0x48,0x2d,0x0c,0x4a,
-0x94,0x91,0x16,0x68,0xb4,0x25,0x85,0x97,0x7d,0xd4,0xe3,0xea,0x59,0xad,0x59,0x8b,
-0xfb,0xb0,0xa3,0x2c,0xb5,0x6d,0xa4,0xa9,0xac,0xc7,0x8a,0xf2,0xfe,0xdf,0x23,0xff,
-0x7a,0xbf,0x6e,0xa0,0x34,0x4b,0xdc,0x75,0xb8,0x64,0x64,0x92,0x25,0x32,0x54,0xc4,
-0x08,0x8c,0x65,0x10,0xa4,0xb1,0x19,0x4b,0x15,0x85,0x09,0x92,0x99,0x92,0x2c,0xd1,
-0x33,0x13,0x25,0x53,0x4a,0x56,0x8b,0x6c,0x58,0xa8,0xb4,0xa5,0x0b,0x24,0xb1,0xa2,
-0x11,0x35,0x14,0x98,0x24,0xc9,0x42,0x5a,0x42,0x8d,0x1a,0x81,0xa5,0x52,0x96,0x35,
-0x14,0x45,0x16,0x98,0x44,0x63,0x52,0x1e,0xbb,0x8d,0x32,0x28,0x26,0x84,0x9b,0x57,
-0x8e,0x52,0x62,0x32,0x62,0xb3,0x26,0x16,0x93,0x23,0x03,0x27,0x2e,0xc9,0xa3,0x4c,
-0x25,0x80,0x8c,0xd3,0x49,0x94,0x4f,0x17,0x02,0x60,0x9a,0x8c,0x62,0x2c,0x88,0x8c,
-0x79,0xd7,0x43,0xba,0xe2,0x90,0x52,0x48,0xc3,0x20,0x2a,0x41,0x0c,0x8d,0x85,0x33,
-0x40,0xd8,0xdb,0x75,0x23,0x73,0xf8,0x8f,0x64,0x0d,0x76,0x84,0x18,0xc4,0x78,0x3f,
-0x65,0x2a,0xbc,0x50,0x63,0x1a,0x3c,0xa5,0xef,0xaa,0x41,0x2b,0x93,0x5d,0x7e,0xa6,
-0xf7,0xaf,0x0e,0xd5,0xa6,0x32,0xa6,0x37,0xc2,0x36,0x69,0x1b,0x46,0x4f,0xc7,0xcf,
-0x93,0x1a,0xbc,0x4c,0x8c,0xa5,0xf0,0xca,0x12,0xe9,0x4c,0x52,0x18,0xb6,0x6b,0xeb,
-0x6a,0xc6,0x8e,0xf5,0xa3,0xae,0x17,0x58,0x5e,0x62,0xab,0xad,0xd5,0x79,0x17,0x58,
-0xc5,0x93,0xdc,0x02,0x07,0x12,0xf3,0xce,0xcf,0x5b,0x04,0x24,0x66,0xb2,0xe1,0x06,
-0x82,0xda,0x6e,0x62,0x88,0xae,0x57,0x61,0xa5,0x96,0xa3,0x66,0xb8,0x63,0x64,0x41,
-0xf7,0xb5,0xe9,0x0a,0xe3,0x3f,0x47,0x6c,0x4b,0x4c,0xfe,0x9b,0xe7,0x09,0x77,0x57,
-0x46,0x05,0xb3,0x34,0x64,0xbe,0xd6,0xe7,0xf1,0xd9,0x3b,0x5e,0xe5,0xfa,0x2b,0x20,
-0x36,0xd8,0x35,0xa6,0x9e,0xd1,0x8f,0x25,0xc3,0x9c,0x23,0x33,0x33,0x1c,0x21,0x96,
-0x40,0x17,0xce,0x6f,0x23,0x6a,0x36,0xae,0x41,0xcd,0x98,0x19,0x29,0x9c,0xb2,0xc1,
-0x98,0x74,0x42,0x74,0x18,0x19,0x66,0x76,0xb6,0x0f,0xe3,0x76,0x83,0xe6,0x38,0xda,
-0x4f,0x6c,0x0e,0xb1,0x22,0x1d,0x3b,0x40,0x57,0xc6,0x56,0xe8,0xb7,0xbe,0xa3,0x55,
-0xef,0x52,0x28,0xa8,0x44,0x08,0x70,0x83,0xb7,0xc6,0x96,0x23,0x35,0x99,0xdb,0x54,
-0xe3,0x59,0xbe,0x26,0x44,0x36,0x1c,0x3e,0x82,0xe4,0xfb,0xf1,0x4e,0x28,0x91,0xe5,
-0x35,0xe1,0x0d,0x13,0xb4,0x3d,0x0d,0xe5,0xb8,0x11,0x11,0xb9,0x60,0xa3,0x0a,0x49,
-0xad,0xa2,0xb6,0xed,0x35,0x7e,0xb2,0xfd,0xf5,0x95,0xd8,0x14,0xbb,0xbc,0x5c,0xdd,
-0x09,0xb1,0x9f,0xb3,0x16,0xbe,0xaa,0x2c,0xfc,0x88,0x8a,0xce,0xef,0xb4,0xce,0x4e,
-0x52,0x9e,0x94,0x09,0x31,0x88,0xe5,0xeb,0x88,0xdf,0x89,0x1a,0x63,0x34,0x5d,0xeb,
-0x3e,0x0b,0xa5,0xea,0x77,0x7c,0x9c,0xe3,0x2f,0x57,0x9c,0xec,0x71,0xa1,0xdb,0xb7,
-0x1b,0xf6,0xed,0xb6,0x85,0xfe,0x93,0x1b,0x41,0xb7,0x9d,0xaf,0x68,0x8b,0x0d,0x7c,
-0x8a,0x97,0xdd,0x02,0x40,0xaf,0x71,0x8b,0xec,0xb0,0x13,0x44,0x0f,0x1f,0xbb,0x87,
-0x9a,0xcf,0x18,0x36,0xeb,0x6c,0xfb,0x50,0x0d,0x16,0xda,0x35,0x0f,0xad,0x01,0x92,
-0xb5,0x4b,0x14,0x90,0xf5,0x39,0xd5,0x89,0x16,0x2c,0x64,0xe9,0xa7,0x89,0x6c,0xad,
-0x0d,0xd4,0xee,0xa8,0x4c,0x20,0xa8,0x0b,0x6f,0x49,0x4c,0x05,0x0c,0x46,0x3b,0x19,
-0x34,0x6b,0xa2,0xdd,0xd3,0x7e,0x5e,0xb0,0x01,0x11,0x09,0x1d,0x71,0xa6,0xa5,0x38,
-0xb4,0xa6,0x79,0x23,0x4d,0xa5,0xcc,0xb0,0x08,0x35,0x02,0xa9,0x20,0xa0,0xe9,0x32,
-0x1f,0xbd,0x8f,0x1b,0x3e,0x39,0x41,0x16,0xad,0x04,0xa0,0x48,0x94,0x59,0x90,0xd9,
-0x87,0xc3,0xe2,0xda,0xa8,0xd8,0x1d,0x34,0xc3,0x33,0xba,0xa4,0xb4,0x82,0xe7,0xbe,
-0x38,0x15,0x3d,0x94,0xf2,0xd5,0x9b,0xf9,0xce,0xf2,0x14,0x00,0xb1,0x15,0x32,0xd8,
-0x85,0x69,0xd5,0x58,0x11,0x20,0x4c,0xaa,0x1d,0x99,0x59,0x40,0xec,0x6f,0x84,0x43,
-0xa2,0x74,0x5b,0x69,0x66,0x15,0x15,0x39,0x2c,0x2a,0x42,0x10,0x4b,0x79,0x74,0xe0,
-0x9b,0x6d,0x39,0x0e,0xcf,0x11,0x2a,0x98,0xca,0x21,0x08,0xc7,0x46,0x97,0x6a,0xd0,
-0x82,0xd9,0xa0,0xb6,0xbd,0xf2,0xcd,0x85,0x07,0x66,0xda,0x30,0xc6,0xd2,0x1d,0x6c,
-0x79,0xd4,0x4b,0x70,0x66,0xdf,0x69,0x4c,0x3c,0xb0,0xec,0xd0,0xb8,0xc5,0x6c,0xec,
-0x2c,0x34,0x07,0x5b,0xcd,0x18,0x95,0x34,0x8b,0xb4,0x91,0xb3,0x08,0xd1,0x66,0x02,
-0xce,0x60,0x21,0xb4,0x8d,0x1a,0x51,0xa2,0x98,0x9b,0x48,0x63,0xd5,0x82,0xa6,0x84,
-0xa9,0x96,0x6a,0xd7,0x85,0xab,0x5a,0x0c,0x5a,0x18,0x7a,0x75,0x00,0xd5,0xea,0xf2,
-0xd6,0xd5,0x04,0x53,0x6c,0x51,0x81,0x1e,0xe9,0xea,0xc0,0xdf,0x62,0x08,0x57,0x68,
-0xc5,0xa2,0x48,0xb5,0xa7,0xbc,0x42,0xcf,0x5a,0x89,0x01,0x4d,0x0d,0xb6,0x1e,0x17,
-0x4e,0x9f,0xdb,0x4f,0x7f,0x8d,0x31,0x55,0x4f,0xd2,0x11,0xf7,0x7d,0xf8,0x4a,0x07,
-0x6d,0xd2,0x89,0x24,0x81,0x54,0xd1,0x41,0x99,0xaf,0xba,0x19,0xe3,0x01,0x3e,0x72,
-0x08,0x01,0x2e,0x3e,0x5f,0x4a,0x8b,0xb8,0x31,0x0a,0xec,0xdc,0xed,0x2f,0xb4,0x4a,
-0x67,0x6c,0xd9,0x69,0x76,0xc2,0xa1,0xd5,0xa8,0x0b,0x91,0x06,0x43,0x9d,0x6d,0xc7,
-0xad,0x7b,0xf1,0x98,0x58,0xd2,0xb7,0xc7,0x93,0x91,0x60,0x0b,0x11,0xb8,0x1b,0x3a,
-0x96,0x0d,0x0d,0x58,0x43,0x7e,0x9f,0x7f,0x5e,0xed,0x93,0xab,0x6b,0x46,0x6c,0xb1,
-0x28,0xa6,0x75,0x26,0x0b,0x55,0x66,0x53,0xb4,0x31,0x51,0x97,0xbb,0x0b,0xb0,0xf9,
-0x96,0x0f,0xe4,0xc6,0xff,0x9f,0xbc,0x06,0xd4,0x6d,0x7d,0x83,0x38,0xd0,0xd7,0x7f,
-0x5c,0x96,0x16,0x7b,0xf6,0xdf,0x23,0xbe,0x27,0xc6,0xa8,0x7c,0x73,0xad,0x2b,0x0c,
-0xc6,0x22,0x8f,0xdf,0x0b,0x67,0xdd,0x12,0xdd,0x34,0x76,0x36,0xbc,0x6d,0x7c,0xf5,
-0x6a,0xfa,0x88,0xd6,0xde,0xcd,0x6f,0x4d,0x55,0xac,0x5a,0xa3,0x55,0x5f,0x4d,0x5c,
-0xd5,0x8a,0xb5,0xec,0xae,0xab,0x2b,0xc5,0xb7,0xa5,0x6a,0xf2,0x6c,0x0a,0x34,0x20,
-0x23,0x49,0xb4,0x88,0x79,0x7e,0x06,0x6d,0x14,0x1d,0x03,0x8d,0x38,0x10,0x71,0x2f,
-0xcb,0x37,0x2c,0x35,0x20,0x04,0x24,0xb3,0x9c,0x80,0x58,0x54,0xd2,0xee,0xd4,0x41,
-0x65,0x0b,0x8c,0x25,0x7a,0xa2,0x5a,0x79,0x6e,0x8b,0x34,0xcb,0xd8,0x65,0x0c,0x6a,
-0xec,0xe2,0xc2,0x5c,0xb1,0x05,0x30,0x2e,0x92,0x0b,0xb6,0xc2,0x9c,0x6d,0x48,0xaf,
-0xbf,0x5e,0xcb,0xfd,0x57,0xb0,0xfc,0x76,0x86,0xc3,0x5b,0xc3,0xca,0xd7,0xe5,0xed,
-0x7b,0x80,0x2a,0xd9,0x5d,0xb2,0x39,0xf1,0x53,0x50,0x79,0xec,0xb5,0xa6,0x81,0x9b,
-0x55,0xad,0x02,0xb2,0xc9,0xb5,0x85,0x80,0x80,0x21,0x90,0x95,0x59,0x38,0xb2,0xc2,
-0xb6,0x50,0x7b,0x5d,0x7a,0xaf,0x4d,0x23,0x9c,0x59,0x70,0xd6,0x39,0x20,0x92,0x49,
-0x0b,0x91,0x53,0x37,0xa0,0x38,0x62,0xf1,0x93,0x94,0xb6,0x30,0x23,0xd7,0x14,0xbd,
-0x0d,0x03,0x19,0xe3,0x89,0xa7,0x30,0xf4,0x18,0x47,0x9b,0x70,0x36,0x24,0x68,0x10,
-0x0f,0x3c,0x9d,0xc6,0x16,0xd7,0x7e,0x22,0x8c,0x39,0xe3,0x5c,0x34,0xda,0xec,0xa2,
-0x36,0x62,0x85,0x24,0x1a,0x1e,0xfc,0x4a,0x18,0xee,0x27,0xaa,0x1b,0xef,0xc9,0x0e,
-0x2c,0xd9,0x38,0x68,0x8c,0x48,0x8c,0x18,0xf6,0xad,0xcb,0x8d,0x69,0x47,0xe7,0xc3,
-0x44,0x02,0xed,0x6e,0x0d,0xa6,0x2a,0x6d,0x9d,0x30,0xeb,0x44,0x1e,0xbc,0xf9,0x75,
-0x79,0x54,0x1e,0x5f,0xb1,0x8a,0xe7,0x06,0xfe,0x35,0x0b,0x25,0xce,0xfb,0x7a,0x9a,
-0x7e,0x6f,0xaf,0xb6,0x9e,0xe8,0x30,0x7a,0xc9,0x3d,0x48,0x1b,0x7c,0xbf,0xcb,0xeb,
-0xa7,0xcd,0x03,0xd0,0xf1,0xde,0x45,0xc3,0x49,0xbf,0xa0,0xf2,0xc5,0xa3,0x5e,0x8f,
-0x2a,0x8e,0x96,0x9d,0x88,0x11,0x30,0xf1,0xaf,0xf4,0x3b,0x64,0xbe,0xe7,0x60,0x3e,
-0x15,0xa7,0x8b,0xa3,0xa5,0xe0,0xf1,0xad,0x30,0xc9,0xbb,0x89,0xe2,0xe1,0xec,0x58,
-0xe2,0xa3,0x63,0x48,0x6c,0x8a,0x16,0x49,0xee,0x4d,0x9c,0x59,0x0c,0x10,0x24,0x98,
-0x26,0xd8,0xe7,0xdf,0xac,0x1c,0xa2,0x52,0x50,0x9e,0x22,0x66,0x03,0xb8,0x0a,0x24,
-0xa4,0x40,0x85,0x06,0x22,0x48,0x0b,0x60,0xde,0xd8,0xe4,0x09,0x16,0x3c,0x50,0x6f,
-0x48,0xab,0x9b,0xc7,0xb2,0xd7,0x7c,0x38,0x49,0x29,0xf4,0x31,0xba,0x7b,0xb1,0xc6,
-0x7b,0xc6,0xc6,0xb0,0xb6,0xc1,0x17,0x3a,0x4e,0x21,0xb3,0x29,0x74,0xc6,0xdb,0x06,
-0x4e,0x35,0x51,0xa5,0x9d,0x7b,0x3b,0x71,0xe7,0x5a,0xad,0x18,0x14,0x06,0xa4,0xf3,
-0xb3,0x38,0xf0,0x94,0x0b,0x85,0xa1,0x0a,0xa9,0xc1,0x70,0xc4,0x8d,0xba,0x49,0xe4,
-0x17,0xd0,0x6d,0xaa,0x92,0xe8,0x81,0x83,0x0e,0x46,0x53,0x45,0x34,0xda,0x33,0x6b,
-0x0b,0x6a,0x11,0x9f,0x5e,0xbd,0x16,0x0f,0x3e,0xa7,0xd6,0x33,0x4c,0xbb,0x78,0xe9,
-0x59,0xb7,0xef,0xc6,0x8e,0x93,0x76,0x38,0x6f,0xa8,0x8a,0xae,0x4a,0x48,0x54,0xd5,
-0x0f,0x40,0xe6,0xf5,0x19,0x36,0xbc,0x77,0x72,0xc3,0x68,0xe9,0x89,0xb2,0x69,0x42,
-0x18,0xb1,0xe2,0xf8,0x12,0x26,0x9d,0xeb,0xe7,0x4b,0x03,0x6b,0x74,0x6e,0xdf,0x2d,
-0xc8,0xc6,0xc8,0xd5,0xe8,0x8e,0xb4,0xdf,0xac,0x53,0xbd,0x7b,0xbe,0xcc,0xec,0x63,
-0x36,0xb5,0x3e,0xf2,0x16,0xfb,0xfb,0x67,0x11,0xbd,0x08,0x1e,0x02,0xa4,0x34,0x9b,
-0x69,0x3c,0x99,0x96,0x65,0x3d,0x86,0x0f,0xa8,0x1b,0x76,0xfc,0x1c,0x7a,0x6e,0xe0,
-0xc6,0x2c,0x9d,0x51,0xc1,0x18,0xc6,0xc6,0x98,0xd9,0xc2,0x10,0xcd,0xfd,0xf7,0xe7,
-0x5c,0xac,0x13,0xa6,0xdd,0x72,0xd5,0x9b,0x1b,0xee,0xed,0xdb,0x89,0x3a,0x61,0x03,
-0xcc,0xce,0x59,0x64,0x87,0x94,0x74,0x58,0xb1,0x79,0xcf,0x1c,0x6c,0xff,0x1d,0xf4,
-0x42,0xbd,0x92,0xe2,0x99,0xb6,0xd5,0x43,0xd5,0xb6,0x22,0x1c,0x1e,0x2d,0x52,0x76,
-0x10,0xc6,0x3b,0x10,0x17,0x6b,0x7d,0x08,0xc6,0x56,0x6b,0x92,0x8c,0x7a,0x43,0xc1,
-0x72,0x68,0xe4,0xb0,0xa0,0x50,0x47,0x60,0x92,0x20,0x52,0xd2,0xd2,0x88,0x60,0xf3,
-0x5a,0x17,0x27,0x33,0x26,0x14,0x73,0x3c,0xd3,0x9d,0xd9,0x48,0x74,0x33,0xda,0x19,
-0x6d,0xb8,0x1c,0x09,0xbe,0xa4,0x2e,0x2a,0x49,0x5d,0x6d,0x0b,0xb0,0xb9,0x09,0x06,
-0xaa,0x9b,0x1d,0x40,0xa1,0xa0,0x6c,0x54,0xae,0x42,0x7b,0x21,0xb3,0x63,0x6c,0x59,
-0x08,0x32,0xe5,0xc4,0x80,0x12,0xb6,0x4b,0x44,0xa9,0xb6,0x65,0x96,0x65,0x34,0xc0,
-0x4c,0x1c,0xb5,0xc0,0xa9,0x6a,0x60,0x9a,0x68,0xbb,0x02,0x16,0x4e,0x5a,0x16,0xe6,
-0xae,0xd0,0x5e,0x45,0x78,0xbb,0xb0,0x17,0xac,0xe8,0x63,0x29,0x5c,0x1a,0x46,0x54,
-0x0b,0x51,0x43,0xaa,0x20,0x41,0x96,0xa1,0x96,0xb5,0x42,0x30,0x1a,0x76,0xa9,0x05,
-0xc1,0x40,0x50,0x5a,0xc3,0x24,0x44,0x39,0x79,0x82,0xb5,0xec,0xa9,0xba,0x50,0xbd,
-0xda,0x8c,0xb5,0x7b,0xa7,0xc4,0xf3,0xae,0xd7,0x2c,0xfc,0x9c,0xf8,0xb4,0x11,0x66,
-0x7f,0x03,0xb2,0x31,0x54,0x2a,0xa8,0x0b,0xd5,0x62,0xbc,0x23,0x7c,0x43,0xd8,0x65,
-0xa0,0x80,0x8e,0xde,0x70,0x6b,0x51,0xd1,0xa2,0x1b,0x12,0x2c,0x3b,0x7c,0xed,0x63,
-0xc7,0xd3,0x1a,0x9c,0xf0,0x6c,0xb3,0x45,0xf4,0xe3,0x85,0xf7,0x6e,0xc8,0x44,0xcb,
-0xd5,0xbd,0x61,0x96,0x01,0x47,0x04,0x3b,0xf7,0xe4,0xa1,0xa2,0xe1,0x8b,0x0e,0xc2,
-0x40,0x09,0x44,0x85,0x6d,0xf3,0xa1,0xc6,0xb7,0x11,0x96,0x00,0xc1,0xf1,0x87,0xb5,
-0x94,0x0b,0x19,0x6f,0x16,0x1c,0xdb,0x49,0xb7,0x03,0x24,0xe4,0x07,0x63,0xb3,0x76,
-0xf9,0x57,0x80,0xb3,0x23,0x2f,0x20,0x33,0x12,0x46,0xad,0x09,0x21,0xb0,0x35,0xb8,
-0xf6,0xcc,0xe2,0x21,0x8b,0x1d,0xbb,0x25,0xcb,0x06,0xc6,0xc5,0xe1,0xd3,0x46,0x81,
-0x8d,0xb3,0x3a,0x3a,0xca,0xbb,0x5c,0xe9,0x9b,0xea,0x77,0x0e,0xad,0x17,0xce,0x89,
-0x6b,0x3d,0xcf,0x3d,0xcc,0x09,0x5c,0x0e,0x7e,0x94,0x41,0xc5,0x8d,0xf4,0xe7,0xbe,
-0xb6,0xab,0x46,0x93,0x6a,0x08,0x35,0x14,0x2f,0x8d,0x50,0x9f,0x08,0x48,0x72,0x1b,
-0xeb,0xbb,0x15,0xce,0xea,0x20,0x74,0x7c,0xec,0xc0,0xf2,0x9a,0xba,0xc2,0x32,0x0c,
-0xd6,0xcf,0xd6,0x95,0x85,0x2e,0x16,0x12,0x78,0xa5,0x35,0x82,0x27,0x56,0xa0,0x45,
-0x10,0xfb,0x0a,0x0c,0x79,0x66,0x20,0x73,0xef,0x16,0x52,0x62,0xef,0x6a,0x37,0xec,
-0x3d,0x57,0xb6,0x40,0x63,0xe4,0x33,0xc2,0x44,0x29,0x89,0xb1,0x3f,0xc8,0x73,0xeb,
-0x76,0x37,0xcc,0xc6,0x70,0x16,0x08,0x04,0x8d,0xf7,0xc9,0x76,0x80,0x08,0xee,0xc6,
-0x78,0x5c,0xbb,0x58,0x00,0xe6,0x47,0xc5,0x64,0xee,0x47,0xa1,0xbd,0x70,0x33,0x60,
-0x6c,0x1b,0x11,0xe5,0x91,0xb2,0x92,0x3a,0x42,0x2f,0xd6,0xaf,0x38,0x0e,0x59,0xb7,
-0x75,0x04,0x72,0x86,0xd8,0x72,0xdb,0xac,0x3b,0xba,0xd9,0x9e,0x2a,0x69,0xa4,0x30,
-0xd6,0x91,0xde,0x78,0xe4,0xd4,0x76,0x60,0xcf,0x2b,0xe1,0x26,0x32,0x7d,0xde,0x5c,
-0x6b,0x9d,0x78,0x0e,0x20,0x04,0xed,0xe6,0xe6,0x72,0x29,0x43,0xee,0x83,0x44,0xa8,
-0x92,0x3a,0x94,0xfc,0x52,0x24,0xdc,0x87,0x4e,0x80,0xb0,0xea,0xe7,0xad,0xbe,0xb4,
-0x2b,0x6d,0xd9,0xc9,0x18,0x3b,0x67,0x16,0x27,0x83,0xb4,0x4c,0xa8,0xb9,0x70,0xe0,
-0xa6,0x15,0xb3,0xb5,0x4d,0xa9,0x98,0x8e,0xe8,0x4b,0xb5,0xa2,0x7a,0x38,0xe4,0x0b,
-0x32,0x21,0x0b,0x71,0x9d,0x6a,0x1a,0xa7,0x7c,0x11,0x63,0x69,0x3c,0xd9,0x2f,0x7f,
-0x25,0x3e,0xca,0xf0,0x78,0xd3,0xe8,0xe4,0x2e,0x2f,0xb3,0x23,0x0b,0xb5,0xa1,0x86,
-0x8c,0x5d,0x58,0x5e,0x4b,0x53,0x65,0x3e,0xee,0x28,0x90,0x00,0x65,0x89,0x08,0x21,
-0x9e,0x6f,0x70,0x1c,0xa2,0x23,0x74,0xa7,0x41,0xaf,0x6c,0xb6,0x6a,0xf1,0xa1,0xad,
-0xce,0x61,0x0a,0x44,0x73,0x6b,0x18,0x15,0x5a,0x99,0xd5,0xc5,0x96,0xa1,0xbf,0x1a,
-0xda,0x5d,0x14,0x79,0xf1,0x3d,0x85,0xa6,0x3a,0x02,0x11,0xec,0x88,0xf8,0xb1,0x62,
-0x0c,0xae,0xcc,0x38,0x6a,0xcd,0xb6,0xce,0xf6,0x22,0xb6,0xcd,0x23,0x18,0x50,0x96,
-0xa5,0x42,0x1b,0x00,0xb1,0x6e,0x23,0x2e,0x82,0x2c,0xd2,0xcc,0x5d,0x11,0xa6,0x9e,
-0xae,0x4c,0xc2,0x19,0x41,0x41,0xc2,0x1e,0x2a,0xa6,0x12,0x32,0x9a,0x21,0x10,0x92,
-0x27,0x8e,0x96,0x0a,0x48,0x2e,0x2f,0x59,0xef,0xeb,0x1a,0x38,0xc8,0xb7,0xe5,0x84,
-0x12,0x32,0x75,0xb7,0xd5,0xf3,0x2d,0x92,0xfd,0xf8,0xc6,0xd9,0xda,0x8d,0x8c,0x74,
-0xf3,0x18,0xda,0x09,0x14,0xa3,0x93,0xdc,0x9a,0x16,0x5e,0xf9,0xf2,0xfa,0x17,0x76,
-0xc7,0xa1,0x83,0x96,0xb1,0xcd,0x69,0x1c,0x50,0x5f,0x13,0x54,0x46,0x19,0x4b,0xd9,
-0x0f,0x18,0xc2,0xad,0x59,0x91,0x01,0x53,0xbd,0x37,0x03,0x5f,0x6a,0x1f,0x7c,0xd6,
-0xdf,0x36,0x28,0x0b,0xb9,0xb3,0x5d,0xd7,0x8e,0x4d,0xde,0x00,0xf0,0x34,0x46,0x8e,
-0xc6,0xcc,0x76,0x8a,0x96,0xe9,0xc5,0x7e,0x28,0x87,0x8b,0xf8,0xb6,0xd5,0x10,0x1b,
-0xeb,0x8c,0x3b,0x6a,0x8b,0xb3,0x46,0x4d,0x22,0x9c,0xbd,0x4c,0x2f,0xad,0xee,0xf9,
-0xc2,0xee,0xbd,0x5a,0x4c,0x68,0xde,0x71,0x8d,0x39,0xce,0xee,0x9d,0x0e,0x36,0xdb,
-0x84,0x72,0x37,0x1c,0xf6,0xf7,0xb1,0xd9,0xdf,0xa2,0xb7,0x36,0xe3,0x73,0x29,0xf8,
-0x95,0x5c,0x94,0xf7,0x2a,0x11,0x3a,0x35,0x6b,0x67,0x91,0x15,0x12,0xea,0x21,0xb2,
-0x17,0xa7,0x29,0x66,0x05,0xba,0x85,0x9e,0x73,0x80,0xbb,0x5a,0x31,0x89,0xa3,0x66,
-0x0b,0x5a,0x6f,0xa7,0x47,0x8d,0x76,0x48,0xa8,0x78,0x6b,0xac,0xeb,0x5a,0xe9,0x0c,
-0xb5,0x83,0x70,0x1c,0x40,0x69,0x3a,0xc9,0x27,0x34,0xf6,0x2f,0x79,0x0d,0x8e,0x5b,
-0x43,0x21,0xb7,0xc9,0x29,0xfb,0x3e,0x1f,0x36,0xe8,0x89,0x48,0x78,0x20,0x71,0xe1,
-0x37,0xf0,0x51,0x5c,0xb3,0x8f,0xd2,0x13,0xec,0x88,0xf2,0xa0,0x57,0xa8,0x90,0x69,
-0xb7,0xb3,0x28,0xf7,0xee,0xc5,0x16,0xb6,0x7e,0xa5,0xdc,0xe0,0x24,0x0f,0x38,0x5b,
-0x51,0x25,0x58,0x1c,0xeb,0x67,0x7d,0x17,0xc8,0x15,0x4b,0xa2,0x18,0x4c,0x4d,0x9a,
-0x58,0xbb,0x85,0x9c,0xf4,0xf3,0xae,0xf5,0x41,0x37,0xd1,0x43,0x1b,0x02,0x2b,0x09,
-0x16,0x33,0x0d,0x34,0x51,0xe7,0xce,0x68,0xd3,0xb5,0x6a,0x4b,0x0c,0x4d,0x97,0x38,
-0xc2,0xd2,0x91,0x72,0x1f,0x38,0x6b,0x62,0xab,0x90,0xc2,0x71,0x4b,0x4e,0x8f,0x55,
-0x08,0xf3,0x76,0xb5,0xa8,0xa0,0xd6,0x75,0xe2,0xd5,0xed,0x33,0x07,0x0f,0x06,0x98,
-0xcd,0x94,0x12,0x75,0x02,0x21,0x34,0x6c,0xd0,0x6c,0x44,0xcd,0x6e,0x5f,0x58,0xd9,
-0x98,0x44,0x08,0xda,0x88,0x05,0xca,0x21,0xdd,0x4c,0xd0,0x61,0x8e,0x8b,0x6f,0x60,
-0xd2,0x32,0xcc,0xea,0x35,0x0d,0x88,0x09,0x36,0x61,0x31,0xd3,0x48,0xc6,0xb0,0x80,
-0xa8,0xac,0x33,0x5c,0x01,0xc0,0x3e,0x88,0x7b,0x90,0xbc,0xed,0x21,0xb3,0x3a,0xd5,
-0x8f,0x50,0xdb,0x1e,0x98,0x7e,0xc2,0x8f,0x46,0xe0,0x30,0x37,0xae,0x09,0x6a,0x17,
-0xb6,0x90,0x6d,0xc5,0x61,0x87,0xc9,0x03,0xc7,0xeb,0x83,0xae,0xa0,0xfd,0xdf,0x95,
-0xa0,0x33,0x09,0xa7,0x86,0xa1,0x1a,0xd4,0xf9,0xbc,0x22,0x08,0xd4,0x23,0xb6,0x3b,
-0x50,0xb3,0x8c,0xbf,0x91,0x0f,0x2c,0x5d,0xef,0x9f,0xb4,0x31,0xb3,0x09,0x63,0x66,
-0x37,0xbd,0xe5,0x01,0x46,0x7a,0x3f,0x54,0x26,0x5b,0xc3,0x35,0xd6,0xa1,0x4f,0x78,
-0x40,0xd6,0x60,0x49,0x20,0x4f,0x8d,0x5b,0x63,0x61,0x75,0x51,0x69,0xb1,0xbd,0x89,
-0xd6,0x53,0x08,0xcf,0x21,0xf4,0x2a,0x6c,0x13,0x88,0x4f,0x74,0x9c,0x12,0xf8,0x83,
-0x08,0x28,0xef,0x02,0x0c,0xf1,0x9c,0x66,0x26,0x8e,0x06,0xad,0x0c,0x62,0xe0,0x69,
-0x66,0xb2,0xc9,0xdc,0x53,0x83,0x19,0x88,0x75,0x22,0x21,0x50,0x9f,0x68,0x7f,0x81,
-0xc3,0xfe,0x2e,0xe2,0x96,0xee,0x73,0xde,0xe9,0x2d,0xab,0xc8,0x14,0xec,0xd6,0xb6,
-0xd3,0xf1,0x50,0xd9,0x5d,0x21,0xe3,0x4d,0x9b,0xf7,0x8e,0xe9,0x3e,0x58,0xbd,0xe4,
-0x48,0xe0,0xc8,0xaf,0x7d,0x2c,0x99,0xa6,0xea,0x50,0x2f,0xd5,0xc6,0x50,0xe2,0xe4,
-0x4a,0x1c,0x3f,0xce,0x85,0xd7,0x7c,0x06,0xf8,0x9f,0x67,0xaf,0x7f,0x9c,0x08,0xd9,
-0x08,0xbe,0x46,0x7d,0x65,0x02,0x40,0xaa,0x4e,0x9d,0x05,0xe5,0x6d,0x6c,0xb0,0x83,
-0x05,0x5a,0x88,0x22,0xeb,0x3c,0xad,0x27,0xb5,0xba,0xdd,0xa0,0xf2,0xb7,0x37,0xd8,
-0xa0,0xb7,0xd6,0x6c,0xb7,0x1b,0x27,0x06,0x1c,0xa9,0x71,0xd9,0xd0,0x80,0x21,0xfd,
-0xd0,0xdc,0xbd,0xe0,0x5b,0x39,0xc6,0x8e,0x90,0xbe,0x85,0x86,0x28,0x2a,0x72,0x4a,
-0x34,0xe6,0xa0,0x10,0xa9,0x08,0x8b,0x48,0xd7,0x47,0x22,0x20,0x55,0x01,0x8e,0x1a,
-0x07,0x62,0x16,0x48,0x63,0x4c,0x76,0x86,0xc6,0xaf,0x51,0x69,0x12,0xc2,0x74,0x65,
-0xb6,0xdc,0xd1,0xe5,0xa0,0xbb,0x52,0x28,0x59,0xe9,0x66,0xd1,0x0f,0x0a,0x40,0xc1,
-0x0a,0x05,0xf9,0x27,0x2f,0x3a,0xd9,0xbd,0x06,0x41,0x95,0x68,0x14,0x64,0x44,0x94,
-0x59,0x88,0x0c,0x10,0x00,0xca,0x46,0x2c,0xcd,0x81,0xa5,0x9e,0x01,0xe6,0x2a,0x4a,
-0xd4,0x2d,0x1a,0x2a,0xca,0x77,0xd0,0x73,0x4d,0x95,0xa6,0x16,0x34,0xf5,0x6c,0xdd,
-0x26,0x8c,0x28,0x46,0x01,0xa4,0xd3,0x57,0x39,0xc5,0x1f,0x19,0xa7,0x63,0xdd,0xa5,
-0x77,0x10,0xda,0xad,0x9c,0xa1,0x22,0xc2,0x53,0xd0,0x79,0xeb,0x32,0x3b,0xdb,0x23,
-0x4b,0x50,0x9d,0xa3,0xe4,0xcc,0x08,0xe8,0x24,0x47,0x33,0x17,0x78,0xae,0x90,0x49,
-0x27,0x2d,0xda,0x86,0x43,0x86,0x63,0xba,0xef,0x3a,0xdf,0x4b,0x14,0x70,0x84,0xe8,
-0x43,0x28,0x87,0x00,0x82,0xd2,0x51,0x85,0xbc,0x43,0x91,0x54,0xee,0x09,0x8c,0xdb,
-0xb1,0x8c,0x1c,0x1a,0x03,0x0c,0x54,0x9c,0x10,0xae,0x5c,0x3f,0x93,0x99,0x80,0x65,
-0x22,0x73,0xd3,0x75,0xab,0xd8,0x89,0xa1,0x08,0x64,0x2e,0x72,0xa8,0xa3,0x14,0xd1,
-0x9f,0x5a,0x0a,0xab,0x75,0x4d,0x7f,0x17,0xd9,0x93,0x4c,0x59,0xfd,0x11,0xd7,0xd9,
-0x8f,0x05,0x8f,0x0a,0x2a,0xa7,0xe6,0x83,0x89,0x62,0x22,0x9f,0xa1,0x32,0xc4,0x59,
-0x24,0x4c,0xb6,0x5e,0x5b,0x49,0x13,0x06,0x24,0x6f,0x41,0x55,0xdd,0x71,0xdc,0xf5,
-0xda,0xae,0x6c,0x77,0x4a,0x66,0x01,0x26,0x94,0x20,0xe5,0x73,0xce,0xe7,0x2c,0x22,
-0x8f,0x97,0x40,0xf6,0x4d,0x6f,0xc5,0x8f,0x99,0x10,0x00,0x3d,0xca,0x35,0x74,0xed,
-0x1b,0xf4,0x62,0x84,0x4f,0x67,0xfa,0xf2,0xaa,0x6b,0x04,0xa1,0xbc,0xf7,0xea,0xfa,
-0xf3,0x60,0x67,0x3d,0x38,0xf2,0xaa,0xd3,0x6d,0xac,0x35,0x91,0xeb,0xa5,0xc4,0x20,
-0x40,0x24,0x90,0x84,0x81,0x55,0x55,0x62,0xa4,0x90,0xa1,0x22,0x4a,0xcc,0x0b,0x33,
-0xed,0x6b,0x12,0xd6,0x31,0xe4,0x85,0xda,0xb1,0x24,0xc7,0x0e,0x88,0x4e,0xbc,0x9f,
-0x8e,0x63,0x1a,0x0a,0x4b,0x7a,0xbb,0xde,0x49,0xa4,0x85,0x1e,0x77,0x0e,0xe4,0xd3,
-0x02,0x83,0x61,0x56,0xd5,0x71,0x53,0x5a,0xb9,0x02,0x58,0x36,0x51,0x2c,0x00,0x4d,
-0x07,0xc5,0xad,0x09,0xd6,0x02,0x8a,0x20,0x21,0x1c,0x1b,0x43,0xb3,0x8d,0x8b,0x12,
-0x21,0xa6,0x26,0xd8,0x36,0x17,0xb5,0xb7,0xbf,0x7b,0x61,0x65,0xab,0x0c,0x63,0x09,
-0xab,0xa1,0xb4,0xa6,0x66,0x85,0x30,0xa6,0x75,0x80,0xb9,0x69,0x09,0x9b,0x67,0xd7,
-0xd5,0xbd,0x3d,0x34,0x18,0xec,0x35,0x5b,0x3d,0x07,0x69,0xbc,0x80,0x21,0xe9,0xa5,
-0x04,0x36,0xc4,0x62,0x7b,0x9a,0x86,0x4e,0x50,0x25,0xf6,0x40,0x55,0xf7,0x2c,0x24,
-0x74,0xc3,0x60,0xe5,0xb0,0x74,0x49,0xe2,0xd5,0xed,0x56,0x84,0x36,0xe0,0xac,0xf1,
-0x7c,0x94,0x94,0xae,0x64,0x40,0x0d,0x75,0x52,0x2b,0x09,0xc1,0x26,0x76,0x95,0x51,
-0x58,0x31,0x1d,0x4c,0x1c,0x10,0x58,0x10,0x74,0x94,0xf6,0x57,0x08,0xb3,0x13,0xe1,
-0xc5,0xba,0x76,0x6c,0x9f,0x78,0x50,0x31,0x0e,0xcc,0x96,0x93,0x89,0x33,0x08,0xc4,
-0xce,0x9d,0xef,0x68,0xe6,0x25,0x9e,0xa2,0xde,0xa3,0xb1,0x08,0xc7,0xb5,0x44,0x50,
-0xf1,0x9b,0xa3,0xdb,0x17,0xad,0xd0,0x00,0x68,0xb3,0x6d,0xf0,0xb1,0xf7,0x31,0xc4,
-0x5f,0x4c,0xb8,0xb4,0x0a,0x3d,0xe5,0x69,0x48,0x72,0x41,0x6e,0x4b,0x0a,0x30,0x63,
-0xb1,0x18,0x74,0x0e,0x50,0x53,0x53,0x0f,0x0e,0x55,0x41,0xb4,0xe2,0x05,0x17,0x61,
-0x28,0x7c,0xfc,0x23,0x2b,0xc0,0xba,0x88,0x19,0x23,0x0f,0xec,0xf4,0x7a,0x4a,0x51,
-0x78,0x2e,0xf3,0xc5,0x7a,0x06,0x0e,0x0a,0x04,0x65,0x14,0xc8,0xdd,0xea,0x64,0x99,
-0x94,0x98,0xba,0x45,0x89,0x20,0xc1,0x1e,0x0d,0x1b,0x85,0x01,0xe4,0x2f,0xca,0x08,
-0x1b,0x14,0x38,0x84,0xdf,0x1b,0xb5,0xde,0xc4,0x50,0x82,0x59,0x10,0x29,0x94,0x12,
-0xac,0xbf,0x79,0x03,0x8c,0xc5,0x6b,0xc2,0xf6,0xa2,0xa1,0x40,0x40,0xc5,0x72,0xc4,
-0x27,0x8a,0x18,0xba,0x37,0xe9,0xb4,0x4e,0x80,0x8b,0xb0,0x8e,0x7b,0xf5,0x53,0x20,
-0xc6,0x6d,0xa8,0xc4,0x80,0xe0,0x8e,0x95,0xd1,0xc4,0xe8,0xf8,0x9d,0xb9,0x91,0xb6,
-0x05,0xf9,0xcc,0x3a,0x8d,0x22,0xc5,0x19,0x0c,0x2e,0x70,0xf3,0xf5,0x32,0x5d,0x92,
-0x5d,0xa4,0x69,0x62,0x24,0x75,0xb2,0x76,0x60,0x49,0x06,0x53,0x20,0x3d,0xe1,0xb0,
-0xe6,0x39,0x6d,0x84,0x4c,0x67,0xd1,0x8b,0x69,0x56,0xc9,0x26,0xd3,0x10,0x4f,0x71,
-0x97,0x0e,0x36,0xac,0xd8,0x54,0x49,0x47,0x85,0xe8,0x31,0x36,0x5b,0x58,0xa2,0x6c,
-0x76,0x71,0xe8,0xc8,0xce,0xcd,0x29,0xbc,0xdb,0x78,0x68,0xee,0x53,0xed,0xce,0xf6,
-0xb5,0xf7,0x61,0x15,0x4b,0x79,0xb1,0x5a,0xc2,0x1c,0x77,0x98,0x96,0x29,0xd6,0x68,
-0xa4,0x26,0x98,0x22,0xbb,0xd0,0x4b,0xcb,0x0d,0x04,0x01,0x01,0xd3,0x3b,0x26,0x46,
-0x36,0x65,0x90,0xa2,0x02,0x19,0x3c,0x8a,0x39,0x75,0x7b,0x7a,0xba,0xff,0x3f,0xee,
-0xcf,0xd9,0x5e,0xbf,0xb7,0x5f,0xf3,0xb2,0x28,0x10,0x80,0xb9,0x0b,0xa6,0x84,0x08,
-0x40,0x5b,0x7e,0xd6,0xe3,0xb1,0xd0,0x21,0x01,0x2d,0x76,0x20,0x42,0x02,0x77,0x70,
-0xee,0xa1,0x02,0x10,0x19,0x5d,0xee,0x20,0x42,0x02,0xd8,0x45,0x02,0x10,0x18,0x90,
-0x21,0x01,0xc9,0x83,0x1b,0xbe,0xd0,0x40,0x81,0xff,0xc5,0xdc,0x91,0x4e,0x14,0x24,
-0x00,0x5b,0xe2,0xba,0x40,
-};
-#endif
diff --git a/include-minimal/copy-current.sh b/include-minimal/copy-current.sh
deleted file mode 100755
index 852945f..0000000
--- a/include-minimal/copy-current.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-# after .config setup, type "make prepare" to generate /include files
-# this step is no more required to build busybox, it is made automatically
-# in Android.mk (busybox_prepare module)
-
-cat ../.config | grep -v CONFIG_CROSS_COMPILER_PREFIX > ../.config-minimal
-
-cp ../include/applets.h ./
-cp ../include/applet_tables.h ./
-cp ../include/autoconf.h ./
-cp ../include/bbconfigopts_bz2.h ./
-cp ../include/bbconfigopts.h ./
-cp ../include/NUM_APPLETS.h ./
-cp ../include/usage_compressed.h ./
diff --git a/include-minimal/usage_compressed.h b/include-minimal/usage_compressed.h
deleted file mode 100644
index 667cfbd..0000000
--- a/include-minimal/usage_compressed.h
+++ /dev/null
@@ -1,2995 +0,0 @@
-#define UNPACKED_USAGE "" \
-"\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x20\x5d\x0a\x0a\x43\x68" \
-"\x65\x63\x6b\x20\x66\x69\x6c\x65\x20\x74\x79\x70\x65\x73\x2c\x20" \
-"\x63\x6f\x6d\x70\x61\x72\x65\x20\x76\x61\x6c\x75\x65\x73\x20\x65" \
-"\x74\x63\x2e\x20\x52\x65\x74\x75\x72\x6e\x20\x61\x20\x30\x2f\x31" \
-"\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x0a\x64\x65\x70\x65\x6e" \
-"\x64\x69\x6e\x67\x20\x6f\x6e\x20\x6c\x6f\x67\x69\x63\x61\x6c\x20" \
-"\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x45\x58\x50\x52\x45\x53\x53" \
-"\x49\x4f\x4e\x00\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x20\x5d" \
-"\x0a\x0a\x43\x68\x65\x63\x6b\x20\x66\x69\x6c\x65\x20\x74\x79\x70" \
-"\x65\x73\x2c\x20\x63\x6f\x6d\x70\x61\x72\x65\x20\x76\x61\x6c\x75" \
-"\x65\x73\x20\x65\x74\x63\x2e\x20\x52\x65\x74\x75\x72\x6e\x20\x61" \
-"\x20\x30\x2f\x31\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x0a\x64" \
-"\x65\x70\x65\x6e\x64\x69\x6e\x67\x20\x6f\x6e\x20\x6c\x6f\x67\x69" \
-"\x63\x61\x6c\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x45\x58\x50" \
-"\x52\x45\x53\x53\x49\x4f\x4e\x00\x5b\x2d\x2f\x2b\x4f\x50\x54\x49" \
-"\x4f\x4e\x53\x5d\x20\x5b\x2d\x2f\x2b\x6f\x20\x4f\x50\x54\x5d\x2e" \
-"\x2e\x2e\x20\x5b\x2d\x63\x20\x27\x53\x43\x52\x49\x50\x54\x27\x20" \
-"\x5b\x41\x52\x47\x30\x20\x5b\x41\x52\x47\x53\x5d\x5d\x20\x2f\x20" \
-"\x46\x49\x4c\x45\x20\x5b\x41\x52\x47\x53\x5d\x5d\x0a\x0a\x55\x6e" \
-"\x69\x78\x20\x73\x68\x65\x6c\x6c\x20\x69\x6e\x74\x65\x72\x70\x72" \
-"\x65\x74\x65\x72\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b" \
-"\x41\x57\x4b\x5f\x50\x52\x4f\x47\x52\x41\x4d\x5d\x20\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x76\x20\x56\x41\x52\x3d" \
-"\x56\x41\x4c\x09\x53\x65\x74\x20\x76\x61\x72\x69\x61\x62\x6c\x65" \
-"\x0a\x09\x2d\x46\x20\x53\x45\x50\x09\x09\x55\x73\x65\x20\x53\x45" \
-"\x50\x20\x61\x73\x20\x66\x69\x65\x6c\x64\x20\x73\x65\x70\x61\x72" \
-"\x61\x74\x6f\x72\x0a\x09\x2d\x66\x20\x46\x49\x4c\x45\x09\x09\x52" \
-"\x65\x61\x64\x20\x70\x72\x6f\x67\x72\x61\x6d\x20\x66\x72\x6f\x6d" \
-"\x20\x46\x49\x4c\x45\x00\x5b\x2d\x64\x5d\x20\x5b\x46\x49\x4c\x45" \
-"\x5d\x0a\x0a\x42\x61\x73\x65\x36\x34\x20\x65\x6e\x63\x6f\x64\x65" \
-"\x20\x6f\x72\x20\x64\x65\x63\x6f\x64\x65\x20\x46\x49\x4c\x45\x20" \
-"\x74\x6f\x20\x73\x74\x61\x6e\x64\x61\x72\x64\x20\x6f\x75\x74\x70" \
-"\x75\x74\x0a\x09\x2d\x64\x09\x44\x65\x63\x6f\x64\x65\x20\x64\x61" \
-"\x74\x61\x00\x46\x49\x4c\x45\x20\x5b\x53\x55\x46\x46\x49\x58\x5d" \
-"\x0a\x0a\x53\x74\x72\x69\x70\x20\x64\x69\x72\x65\x63\x74\x6f\x72" \
-"\x79\x20\x70\x61\x74\x68\x20\x61\x6e\x64\x20\x2e\x53\x55\x46\x46" \
-"\x49\x58\x20\x66\x72\x6f\x6d\x20\x46\x49\x4c\x45\x0a\x00\x0a\x0a" \
-"\x50\x72\x69\x6e\x74\x20\x74\x68\x65\x20\x63\x6f\x6e\x66\x69\x67" \
-"\x20\x66\x69\x6c\x65\x20\x75\x73\x65\x64\x20\x62\x79\x20\x62\x75" \
-"\x73\x79\x62\x6f\x78\x20\x62\x75\x69\x6c\x64\x00\x5b\x42\x4c\x4f" \
-"\x43\x4b\x44\x45\x56\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74" \
-"\x20\x55\x55\x49\x44\x73\x20\x6f\x66\x20\x61\x6c\x6c\x20\x66\x69" \
-"\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x00\x4f\x50\x54\x49\x4f\x4e" \
-"\x20\x42\x4c\x4f\x43\x4b\x44\x45\x56\x0a\x0a\x09\x2d\x2d\x73\x65" \
-"\x74\x72\x6f\x09\x09\x53\x65\x74\x20\x72\x6f\x0a\x09\x2d\x2d\x73" \
-"\x65\x74\x72\x77\x09\x09\x53\x65\x74\x20\x72\x77\x0a\x09\x2d\x2d" \
-"\x67\x65\x74\x72\x6f\x09\x09\x47\x65\x74\x20\x72\x6f\x0a\x09\x2d" \
-"\x2d\x67\x65\x74\x73\x73\x09\x09\x47\x65\x74\x20\x73\x65\x63\x74" \
-"\x6f\x72\x20\x73\x69\x7a\x65\x0a\x09\x2d\x2d\x67\x65\x74\x62\x73" \
-"\x7a\x09\x47\x65\x74\x20\x62\x6c\x6f\x63\x6b\x20\x73\x69\x7a\x65" \
-"\x0a\x09\x2d\x2d\x73\x65\x74\x62\x73\x7a\x20\x42\x59\x54\x45\x53" \
-"\x09\x53\x65\x74\x20\x62\x6c\x6f\x63\x6b\x20\x73\x69\x7a\x65\x0a" \
-"\x09\x2d\x2d\x67\x65\x74\x73\x7a\x09\x09\x47\x65\x74\x20\x64\x65" \
-"\x76\x69\x63\x65\x20\x73\x69\x7a\x65\x20\x69\x6e\x20\x35\x31\x32" \
-"\x2d\x62\x79\x74\x65\x20\x73\x65\x63\x74\x6f\x72\x73\x0a\x09\x2d" \
-"\x2d\x67\x65\x74\x73\x69\x7a\x65\x36\x34\x09\x47\x65\x74\x20\x64" \
-"\x65\x76\x69\x63\x65\x20\x73\x69\x7a\x65\x20\x69\x6e\x20\x62\x79" \
-"\x74\x65\x73\x0a\x09\x2d\x2d\x66\x6c\x75\x73\x68\x62\x75\x66\x73" \
-"\x09\x46\x6c\x75\x73\x68\x20\x62\x75\x66\x66\x65\x72\x73\x0a\x09" \
-"\x2d\x2d\x72\x65\x72\x65\x61\x64\x70\x74\x09\x52\x65\x72\x65\x61" \
-"\x64\x20\x70\x61\x72\x74\x69\x74\x69\x6f\x6e\x20\x74\x61\x62\x6c" \
-"\x65\x00\x5b\x2d\x63\x66\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x20\x46\x49" \
-"\x4c\x45\x73\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x0a\x0a" \
-"\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20\x74\x6f\x20\x73\x74\x64" \
-"\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x00\x46\x49" \
-"\x4c\x45\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x20\x74" \
-"\x6f\x20\x73\x74\x64\x6f\x75\x74\x00\x5b\x4f\x50\x54\x49\x4f\x4e" \
-"\x53\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f" \
-"\x6d\x70\x72\x65\x73\x73\x20\x46\x49\x4c\x45\x73\x20\x28\x6f\x72" \
-"\x20\x73\x74\x64\x69\x6e\x29\x20\x77\x69\x74\x68\x20\x62\x7a\x69" \
-"\x70\x32\x20\x61\x6c\x67\x6f\x72\x69\x74\x68\x6d\x0a\x0a\x09\x2d" \
-"\x31\x2e\x2e\x39\x09\x43\x6f\x6d\x70\x72\x65\x73\x73\x69\x6f\x6e" \
-"\x20\x6c\x65\x76\x65\x6c\x0a\x09\x2d\x64\x09\x44\x65\x63\x6f\x6d" \
-"\x70\x72\x65\x73\x73\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20" \
-"\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46\x6f" \
-"\x72\x63\x65\x00\x5b\x2d\x6a\x79\x5d\x20\x5b\x5b\x4d\x4f\x4e\x54" \
-"\x48\x5d\x20\x59\x45\x41\x52\x5d\x0a\x0a\x44\x69\x73\x70\x6c\x61" \
-"\x79\x20\x61\x20\x63\x61\x6c\x65\x6e\x64\x61\x72\x0a\x0a\x09\x2d" \
-"\x6a\x09\x55\x73\x65\x20\x6a\x75\x6c\x69\x61\x6e\x20\x64\x61\x74" \
-"\x65\x73\x0a\x09\x2d\x79\x09\x44\x69\x73\x70\x6c\x61\x79\x20\x74" \
-"\x68\x65\x20\x65\x6e\x74\x69\x72\x65\x20\x79\x65\x61\x72\x00\x5b" \
-"\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f\x6e\x63\x61\x74" \
-"\x65\x6e\x61\x74\x65\x20\x46\x49\x4c\x45\x73\x20\x61\x6e\x64\x20" \
-"\x70\x72\x69\x6e\x74\x20\x74\x68\x65\x6d\x20\x74\x6f\x20\x73\x74" \
-"\x64\x6f\x75\x74\x00\x5b\x2d\x65\x74\x76\x5d\x20\x5b\x46\x49\x4c" \
-"\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x6e" \
-"\x6f\x6e\x70\x72\x69\x6e\x74\x69\x6e\x67\x20\x63\x68\x61\x72\x61" \
-"\x63\x74\x65\x72\x73\x20\x61\x73\x20\x5e\x78\x20\x6f\x72\x20\x4d" \
-"\x2d\x78\x0a\x0a\x09\x2d\x65\x09\x45\x6e\x64\x20\x65\x61\x63\x68" \
-"\x20\x6c\x69\x6e\x65\x20\x77\x69\x74\x68\x20\x24\x0a\x09\x2d\x74" \
-"\x09\x53\x68\x6f\x77\x20\x74\x61\x62\x73\x20\x61\x73\x20\x5e\x49" \
-"\x0a\x09\x2d\x76\x09\x44\x6f\x6e\x27\x74\x20\x75\x73\x65\x20\x5e" \
-"\x78\x20\x6f\x72\x20\x4d\x2d\x78\x20\x65\x73\x63\x61\x70\x65\x73" \
-"\x00\x5b\x2d\x52\x5d\x20\x5b\x2d\x2b\x3d\x41\x61\x63\x44\x64\x69" \
-"\x6a\x73\x53\x74\x54\x75\x5d\x20\x5b\x2d\x76\x20\x56\x45\x52\x53" \
-"\x49\x4f\x4e\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a" \
-"\x43\x68\x61\x6e\x67\x65\x20\x66\x69\x6c\x65\x20\x61\x74\x74\x72" \
-"\x69\x62\x75\x74\x65\x73\x20\x6f\x6e\x20\x61\x6e\x20\x65\x78\x74" \
-"\x32\x20\x66\x73\x0a\x0a\x4d\x6f\x64\x69\x66\x69\x65\x72\x73\x3a" \
-"\x0a\x09\x2d\x09\x52\x65\x6d\x6f\x76\x65\x20\x61\x74\x74\x72\x69" \
-"\x62\x75\x74\x65\x73\x0a\x09\x2b\x09\x41\x64\x64\x20\x61\x74\x74" \
-"\x72\x69\x62\x75\x74\x65\x73\x0a\x09\x3d\x09\x53\x65\x74\x20\x61" \
-"\x74\x74\x72\x69\x62\x75\x74\x65\x73\x0a\x41\x74\x74\x72\x69\x62" \
-"\x75\x74\x65\x73\x3a\x0a\x09\x41\x09\x44\x6f\x6e\x27\x74\x20\x74" \
-"\x72\x61\x63\x6b\x20\x61\x74\x69\x6d\x65\x0a\x09\x61\x09\x41\x70" \
-"\x70\x65\x6e\x64\x20\x6d\x6f\x64\x65\x20\x6f\x6e\x6c\x79\x0a\x09" \
-"\x63\x09\x45\x6e\x61\x62\x6c\x65\x20\x63\x6f\x6d\x70\x72\x65\x73" \
-"\x73\x0a\x09\x44\x09\x57\x72\x69\x74\x65\x20\x64\x69\x72\x20\x63" \
-"\x6f\x6e\x74\x65\x6e\x74\x73\x20\x73\x79\x6e\x63\x68\x72\x6f\x6e" \
-"\x6f\x75\x73\x6c\x79\x0a\x09\x64\x09\x44\x6f\x6e\x27\x74\x20\x62" \
-"\x61\x63\x6b\x75\x70\x20\x77\x69\x74\x68\x20\x64\x75\x6d\x70\x0a" \
-"\x09\x69\x09\x43\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x6d\x6f\x64" \
-"\x69\x66\x69\x65\x64\x20\x28\x69\x6d\x6d\x75\x74\x61\x62\x6c\x65" \
-"\x29\x0a\x09\x6a\x09\x57\x72\x69\x74\x65\x20\x61\x6c\x6c\x20\x64" \
-"\x61\x74\x61\x20\x74\x6f\x20\x6a\x6f\x75\x72\x6e\x61\x6c\x20\x66" \
-"\x69\x72\x73\x74\x0a\x09\x73\x09\x5a\x65\x72\x6f\x20\x64\x69\x73" \
-"\x6b\x20\x73\x74\x6f\x72\x61\x67\x65\x20\x77\x68\x65\x6e\x20\x64" \
-"\x65\x6c\x65\x74\x65\x64\x0a\x09\x53\x09\x57\x72\x69\x74\x65\x20" \
-"\x66\x69\x6c\x65\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x73\x79" \
-"\x6e\x63\x68\x72\x6f\x6e\x6f\x75\x73\x6c\x79\x0a\x09\x74\x09\x44" \
-"\x69\x73\x61\x62\x6c\x65\x20\x74\x61\x69\x6c\x2d\x6d\x65\x72\x67" \
-"\x69\x6e\x67\x20\x6f\x66\x20\x70\x61\x72\x74\x69\x61\x6c\x20\x62" \
-"\x6c\x6f\x63\x6b\x73\x20\x77\x69\x74\x68\x20\x6f\x74\x68\x65\x72" \
-"\x20\x66\x69\x6c\x65\x73\x0a\x09\x75\x09\x41\x6c\x6c\x6f\x77\x20" \
-"\x66\x69\x6c\x65\x20\x74\x6f\x20\x62\x65\x20\x75\x6e\x64\x65\x6c" \
-"\x65\x74\x65\x64\x0a\x09\x2d\x52\x09\x52\x65\x63\x75\x72\x73\x65" \
-"\x0a\x09\x2d\x76\x09\x53\x65\x74\x20\x74\x68\x65\x20\x66\x69\x6c" \
-"\x65\x27\x73\x20\x76\x65\x72\x73\x69\x6f\x6e\x2f\x67\x65\x6e\x65" \
-"\x72\x61\x74\x69\x6f\x6e\x20\x6e\x75\x6d\x62\x65\x72\x00\x5b\x2d" \
-"\x52\x68\x4c\x48\x50\x5d\x2e\x2e\x2e\x20\x47\x52\x4f\x55\x50\x20" \
-"\x46\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x43\x68\x61\x6e\x67\x65\x20" \
-"\x74\x68\x65\x20\x67\x72\x6f\x75\x70\x20\x6d\x65\x6d\x62\x65\x72" \
-"\x73\x68\x69\x70\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x46\x49\x4c" \
-"\x45\x20\x74\x6f\x20\x47\x52\x4f\x55\x50\x0a\x0a\x09\x2d\x52\x09" \
-"\x52\x65\x63\x75\x72\x73\x65\x0a\x09\x2d\x68\x09\x41\x66\x66\x65" \
-"\x63\x74\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x69\x6e\x73\x74" \
-"\x65\x61\x64\x20\x6f\x66\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x20\x74" \
-"\x61\x72\x67\x65\x74\x73\x0a\x09\x2d\x4c\x09\x54\x72\x61\x76\x65" \
-"\x72\x73\x65\x20\x61\x6c\x6c\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73" \
-"\x20\x74\x6f\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a" \
-"\x09\x2d\x48\x09\x54\x72\x61\x76\x65\x72\x73\x65\x20\x73\x79\x6d" \
-"\x6c\x69\x6e\x6b\x73\x20\x6f\x6e\x20\x63\x6f\x6d\x6d\x61\x6e\x64" \
-"\x20\x6c\x69\x6e\x65\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x50\x09\x44" \
-"\x6f\x6e\x27\x74\x20\x74\x72\x61\x76\x65\x72\x73\x65\x20\x73\x79" \
-"\x6d\x6c\x69\x6e\x6b\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29" \
-"\x00\x5b\x2d\x52\x5d\x20\x4d\x4f\x44\x45\x5b\x2c\x4d\x4f\x44\x45" \
-"\x5d\x2e\x2e\x2e\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x45\x61" \
-"\x63\x68\x20\x4d\x4f\x44\x45\x20\x69\x73\x20\x6f\x6e\x65\x20\x6f" \
-"\x72\x20\x6d\x6f\x72\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x6c\x65" \
-"\x74\x74\x65\x72\x73\x20\x75\x67\x6f\x61\x2c\x20\x6f\x6e\x65\x20" \
-"\x6f\x66\x20\x74\x68\x65\x0a\x73\x79\x6d\x62\x6f\x6c\x73\x20\x2b" \
-"\x2d\x3d\x20\x61\x6e\x64\x20\x6f\x6e\x65\x20\x6f\x72\x20\x6d\x6f" \
-"\x72\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x6c\x65\x74\x74\x65\x72" \
-"\x73\x20\x72\x77\x78\x73\x74\x0a\x0a\x09\x2d\x52\x09\x52\x65\x63" \
-"\x75\x72\x73\x65\x00\x5b\x2d\x52\x68\x4c\x48\x50\x5d\x2e\x2e\x2e" \
-"\x20\x4f\x57\x4e\x45\x52\x5b\x3c\x2e\x7c\x3a\x3e\x5b\x47\x52\x4f" \
-"\x55\x50\x5d\x5d\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x43\x68" \
-"\x61\x6e\x67\x65\x20\x74\x68\x65\x20\x6f\x77\x6e\x65\x72\x20\x61" \
-"\x6e\x64\x2f\x6f\x72\x20\x67\x72\x6f\x75\x70\x20\x6f\x66\x20\x65" \
-"\x61\x63\x68\x20\x46\x49\x4c\x45\x20\x74\x6f\x20\x4f\x57\x4e\x45" \
-"\x52\x20\x61\x6e\x64\x2f\x6f\x72\x20\x47\x52\x4f\x55\x50\x0a\x0a" \
-"\x09\x2d\x52\x09\x52\x65\x63\x75\x72\x73\x65\x0a\x09\x2d\x68\x09" \
-"\x41\x66\x66\x65\x63\x74\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20" \
-"\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x73\x79\x6d\x6c\x69" \
-"\x6e\x6b\x20\x74\x61\x72\x67\x65\x74\x73\x0a\x09\x2d\x4c\x09\x54" \
-"\x72\x61\x76\x65\x72\x73\x65\x20\x61\x6c\x6c\x20\x73\x79\x6d\x6c" \
-"\x69\x6e\x6b\x73\x20\x74\x6f\x20\x64\x69\x72\x65\x63\x74\x6f\x72" \
-"\x69\x65\x73\x0a\x09\x2d\x48\x09\x54\x72\x61\x76\x65\x72\x73\x65" \
-"\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x6f\x6e\x20\x63\x6f\x6d" \
-"\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x20\x6f\x6e\x6c\x79\x0a\x09" \
-"\x2d\x50\x09\x44\x6f\x6e\x27\x74\x20\x74\x72\x61\x76\x65\x72\x73" \
-"\x65\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x28\x64\x65\x66\x61" \
-"\x75\x6c\x74\x29\x00\x4e\x45\x57\x52\x4f\x4f\x54\x20\x5b\x50\x52" \
-"\x4f\x47\x20\x41\x52\x47\x53\x5d\x0a\x0a\x52\x75\x6e\x20\x50\x52" \
-"\x4f\x47\x20\x77\x69\x74\x68\x20\x72\x6f\x6f\x74\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x79\x20\x73\x65\x74\x20\x74\x6f\x20\x4e\x45" \
-"\x57\x52\x4f\x4f\x54\x00\x0a\x0a\x43\x6c\x65\x61\x72\x20\x73\x63" \
-"\x72\x65\x65\x6e\x00\x5b\x2d\x6c\x5d\x20\x5b\x2d\x73\x5d\x20\x46" \
-"\x49\x4c\x45\x31\x20\x5b\x46\x49\x4c\x45\x32\x5d\x0a\x0a\x43\x6f" \
-"\x6d\x70\x61\x72\x65\x20\x46\x49\x4c\x45\x31\x20\x77\x69\x74\x68" \
-"\x20\x46\x49\x4c\x45\x32\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e" \
-"\x29\x0a\x0a\x09\x2d\x6c\x09\x57\x72\x69\x74\x65\x20\x74\x68\x65" \
-"\x20\x62\x79\x74\x65\x20\x6e\x75\x6d\x62\x65\x72\x73\x20\x28\x64" \
-"\x65\x63\x69\x6d\x61\x6c\x29\x20\x61\x6e\x64\x20\x76\x61\x6c\x75" \
-"\x65\x73\x20\x28\x6f\x63\x74\x61\x6c\x29\x0a\x09\x09\x66\x6f\x72" \
-"\x20\x61\x6c\x6c\x20\x64\x69\x66\x66\x65\x72\x69\x6e\x67\x20\x62" \
-"\x79\x74\x65\x73\x0a\x09\x2d\x73\x09\x51\x75\x69\x65\x74\x00\x5b" \
-"\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x53\x4f\x55\x52\x43\x45\x2e" \
-"\x2e\x2e\x20\x44\x45\x53\x54\x0a\x0a\x43\x6f\x70\x79\x20\x53\x4f" \
-"\x55\x52\x43\x45\x28\x73\x29\x20\x74\x6f\x20\x44\x45\x53\x54\x0a" \
-"\x0a\x09\x2d\x61\x09\x53\x61\x6d\x65\x20\x61\x73\x20\x2d\x64\x70" \
-"\x52\x0a\x09\x2d\x52\x2c\x2d\x72\x09\x52\x65\x63\x75\x72\x73\x65" \
-"\x0a\x09\x2d\x64\x2c\x2d\x50\x09\x50\x72\x65\x73\x65\x72\x76\x65" \
-"\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x28\x64\x65\x66\x61\x75" \
-"\x6c\x74\x20\x69\x66\x20\x2d\x52\x29\x0a\x09\x2d\x4c\x09\x46\x6f" \
-"\x6c\x6c\x6f\x77\x20\x61\x6c\x6c\x20\x73\x79\x6d\x6c\x69\x6e\x6b" \
-"\x73\x0a\x09\x2d\x48\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d" \
-"\x6c\x69\x6e\x6b\x73\x20\x6f\x6e\x20\x63\x6f\x6d\x6d\x61\x6e\x64" \
-"\x20\x6c\x69\x6e\x65\x0a\x09\x2d\x70\x09\x50\x72\x65\x73\x65\x72" \
-"\x76\x65\x20\x66\x69\x6c\x65\x20\x61\x74\x74\x72\x69\x62\x75\x74" \
-"\x65\x73\x20\x69\x66\x20\x70\x6f\x73\x73\x69\x62\x6c\x65\x0a\x09" \
-"\x2d\x66\x09\x4f\x76\x65\x72\x77\x72\x69\x74\x65\x0a\x09\x2d\x69" \
-"\x09\x50\x72\x6f\x6d\x70\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x6f" \
-"\x76\x65\x72\x77\x72\x69\x74\x65\x0a\x09\x2d\x6c\x2c\x2d\x73\x09" \
-"\x43\x72\x65\x61\x74\x65\x20\x28\x73\x79\x6d\x29\x6c\x69\x6e\x6b" \
-"\x73\x00\x5b\x2d\x64\x6d\x76\x75\x5d\x20\x5b\x2d\x46\x20\x46\x49" \
-"\x4c\x45\x5d\x20\x5b\x2d\x48\x20\x6e\x65\x77\x63\x5d\x20\x5b\x2d" \
-"\x74\x69\x6f\x5d\x20\x5b\x45\x58\x54\x52\x5f\x46\x49\x4c\x45\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x45\x78\x74\x72\x61\x63\x74\x20\x6f\x72\x20" \
-"\x6c\x69\x73\x74\x20\x66\x69\x6c\x65\x73\x20\x66\x72\x6f\x6d\x20" \
-"\x61\x20\x63\x70\x69\x6f\x20\x61\x72\x63\x68\x69\x76\x65\x2c\x20" \
-"\x6f\x72\x0a\x63\x72\x65\x61\x74\x65\x20\x61\x6e\x20\x61\x72\x63" \
-"\x68\x69\x76\x65\x20\x75\x73\x69\x6e\x67\x20\x66\x69\x6c\x65\x20" \
-"\x6c\x69\x73\x74\x20\x6f\x6e\x20\x73\x74\x64\x69\x6e\x0a\x0a\x4d" \
-"\x61\x69\x6e\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x20\x6d\x6f" \
-"\x64\x65\x3a\x0a\x09\x2d\x74\x09\x4c\x69\x73\x74\x0a\x09\x2d\x69" \
-"\x09\x45\x78\x74\x72\x61\x63\x74\x20\x45\x58\x54\x52\x5f\x46\x49" \
-"\x4c\x45\x73\x20\x28\x6f\x72\x20\x61\x6c\x6c\x29\x0a\x09\x2d\x6f" \
-"\x09\x43\x72\x65\x61\x74\x65\x20\x28\x72\x65\x71\x75\x69\x72\x65" \
-"\x73\x20\x2d\x48\x20\x6e\x65\x77\x63\x29\x0a\x09\x2d\x64\x09\x4d" \
-"\x61\x6b\x65\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x64\x69\x72\x65" \
-"\x63\x74\x6f\x72\x69\x65\x73\x0a\x09\x2d\x6d\x09\x50\x72\x65\x73" \
-"\x65\x72\x76\x65\x20\x6d\x74\x69\x6d\x65\x0a\x09\x2d\x76\x09\x56" \
-"\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x75\x09\x4f\x76\x65\x72\x77" \
-"\x72\x69\x74\x65\x0a\x09\x2d\x46\x20\x46\x49\x4c\x45\x09\x49\x6e" \
-"\x70\x75\x74\x20\x28\x2d\x74\x2c\x2d\x69\x2c\x2d\x70\x29\x20\x6f" \
-"\x72\x20\x6f\x75\x74\x70\x75\x74\x20\x28\x2d\x6f\x29\x20\x66\x69" \
-"\x6c\x65\x0a\x09\x2d\x48\x20\x6e\x65\x77\x63\x09\x41\x72\x63\x68" \
-"\x69\x76\x65\x20\x66\x6f\x72\x6d\x61\x74\x00\x5b\x4f\x50\x54\x49" \
-"\x4f\x4e\x53\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a" \
-"\x50\x72\x69\x6e\x74\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x66" \
-"\x69\x65\x6c\x64\x73\x20\x66\x72\x6f\x6d\x20\x65\x61\x63\x68\x20" \
-"\x69\x6e\x70\x75\x74\x20\x46\x49\x4c\x45\x20\x74\x6f\x20\x73\x74" \
-"\x64\x6f\x75\x74\x0a\x0a\x09\x2d\x62\x20\x4c\x49\x53\x54\x09\x4f" \
-"\x75\x74\x70\x75\x74\x20\x6f\x6e\x6c\x79\x20\x62\x79\x74\x65\x73" \
-"\x20\x66\x72\x6f\x6d\x20\x4c\x49\x53\x54\x0a\x09\x2d\x63\x20\x4c" \
-"\x49\x53\x54\x09\x4f\x75\x74\x70\x75\x74\x20\x6f\x6e\x6c\x79\x20" \
-"\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x66\x72\x6f\x6d\x20" \
-"\x4c\x49\x53\x54\x0a\x09\x2d\x64\x20\x43\x48\x41\x52\x09\x55\x73" \
-"\x65\x20\x43\x48\x41\x52\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f" \
-"\x66\x20\x74\x61\x62\x20\x61\x73\x20\x74\x68\x65\x20\x66\x69\x65" \
-"\x6c\x64\x20\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x0a\x09\x2d\x73" \
-"\x09\x4f\x75\x74\x70\x75\x74\x20\x6f\x6e\x6c\x79\x20\x74\x68\x65" \
-"\x20\x6c\x69\x6e\x65\x73\x20\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e" \
-"\x67\x20\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x0a\x09\x2d\x66\x20" \
-"\x4e\x09\x50\x72\x69\x6e\x74\x20\x6f\x6e\x6c\x79\x20\x74\x68\x65" \
-"\x73\x65\x20\x66\x69\x65\x6c\x64\x73\x0a\x09\x2d\x6e\x09\x49\x67" \
-"\x6e\x6f\x72\x65\x64\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20" \
-"\x5b\x2b\x46\x4d\x54\x5d\x20\x5b\x54\x49\x4d\x45\x5d\x0a\x0a\x44" \
-"\x69\x73\x70\x6c\x61\x79\x20\x74\x69\x6d\x65\x20\x28\x75\x73\x69" \
-"\x6e\x67\x20\x2b\x46\x4d\x54\x29\x2c\x20\x6f\x72\x20\x73\x65\x74" \
-"\x20\x74\x69\x6d\x65\x0a\x0a\x09\x5b\x2d\x73\x2c\x2d\x2d\x73\x65" \
-"\x74\x5d\x20\x54\x49\x4d\x45\x09\x53\x65\x74\x20\x74\x69\x6d\x65" \
-"\x20\x74\x6f\x20\x54\x49\x4d\x45\x0a\x09\x2d\x75\x2c\x2d\x2d\x75" \
-"\x74\x63\x09\x57\x6f\x72\x6b\x20\x69\x6e\x20\x55\x54\x43\x20\x28" \
-"\x64\x6f\x6e\x27\x74\x20\x63\x6f\x6e\x76\x65\x72\x74\x20\x74\x6f" \
-"\x20\x6c\x6f\x63\x61\x6c\x20\x74\x69\x6d\x65\x29\x0a\x09\x2d\x52" \
-"\x2c\x2d\x2d\x72\x66\x63\x2d\x32\x38\x32\x32\x09\x4f\x75\x74\x70" \
-"\x75\x74\x20\x52\x46\x43\x2d\x32\x38\x32\x32\x20\x63\x6f\x6d\x70" \
-"\x6c\x69\x61\x6e\x74\x20\x64\x61\x74\x65\x20\x73\x74\x72\x69\x6e" \
-"\x67\x0a\x09\x2d\x49\x5b\x53\x50\x45\x43\x5d\x09\x4f\x75\x74\x70" \
-"\x75\x74\x20\x49\x53\x4f\x2d\x38\x36\x30\x31\x20\x63\x6f\x6d\x70" \
-"\x6c\x69\x61\x6e\x74\x20\x64\x61\x74\x65\x20\x73\x74\x72\x69\x6e" \
-"\x67\x0a\x09\x09\x09\x53\x50\x45\x43\x3d\x27\x64\x61\x74\x65\x27" \
-"\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x20\x66\x6f\x72\x20\x64" \
-"\x61\x74\x65\x20\x6f\x6e\x6c\x79\x2c\x0a\x09\x09\x09\x27\x68\x6f" \
-"\x75\x72\x73\x27\x2c\x20\x27\x6d\x69\x6e\x75\x74\x65\x73\x27\x2c" \
-"\x20\x6f\x72\x20\x27\x73\x65\x63\x6f\x6e\x64\x73\x27\x20\x66\x6f" \
-"\x72\x20\x64\x61\x74\x65\x20\x61\x6e\x64\x0a\x09\x09\x09\x74\x69" \
-"\x6d\x65\x20\x74\x6f\x20\x74\x68\x65\x20\x69\x6e\x64\x69\x63\x61" \
-"\x74\x65\x64\x20\x70\x72\x65\x63\x69\x73\x69\x6f\x6e\x0a\x09\x2d" \
-"\x72\x2c\x2d\x2d\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x46\x49" \
-"\x4c\x45\x09\x44\x69\x73\x70\x6c\x61\x79\x20\x6c\x61\x73\x74\x20" \
-"\x6d\x6f\x64\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x20\x74\x69\x6d" \
-"\x65\x20\x6f\x66\x20\x46\x49\x4c\x45\x0a\x09\x2d\x64\x2c\x2d\x2d" \
-"\x64\x61\x74\x65\x20\x54\x49\x4d\x45\x09\x44\x69\x73\x70\x6c\x61" \
-"\x79\x20\x54\x49\x4d\x45\x2c\x20\x6e\x6f\x74\x20\x27\x6e\x6f\x77" \
-"\x27\x0a\x09\x2d\x44\x20\x46\x4d\x54\x09\x09\x55\x73\x65\x20\x46" \
-"\x4d\x54\x20\x66\x6f\x72\x20\x2d\x64\x20\x54\x49\x4d\x45\x20\x63" \
-"\x6f\x6e\x76\x65\x72\x73\x69\x6f\x6e\x0a\x0a\x52\x65\x63\x6f\x67" \
-"\x6e\x69\x7a\x65\x64\x20\x54\x49\x4d\x45\x20\x66\x6f\x72\x6d\x61" \
-"\x74\x73\x3a\x0a\x09\x68\x68\x3a\x6d\x6d\x5b\x3a\x73\x73\x5d\x0a" \
-"\x09\x5b\x59\x59\x59\x59\x2e\x5d\x4d\x4d\x2e\x44\x44\x2d\x68\x68" \
-"\x3a\x6d\x6d\x5b\x3a\x73\x73\x5d\x0a\x09\x59\x59\x59\x59\x2d\x4d" \
-"\x4d\x2d\x44\x44\x20\x68\x68\x3a\x6d\x6d\x5b\x3a\x73\x73\x5d\x0a" \
-"\x09\x5b\x5b\x5b\x5b\x5b\x59\x59\x5d\x59\x59\x5d\x4d\x4d\x5d\x44" \
-"\x44\x5d\x68\x68\x5d\x6d\x6d\x5b\x2e\x73\x73\x5d\x0a\x09\x27\x64" \
-"\x61\x74\x65\x20\x54\x49\x4d\x45\x27\x20\x66\x6f\x72\x6d\x20\x61" \
-"\x63\x63\x65\x70\x74\x73\x20\x4d\x4d\x44\x44\x68\x68\x6d\x6d\x5b" \
-"\x5b\x59\x59\x5d\x59\x59\x5d\x5b\x2e\x73\x73\x5d\x20\x69\x6e\x73" \
-"\x74\x65\x61\x64\x00\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x2e" \
-"\x2e\x2e\x0a\x0a\x54\x69\x6e\x79\x20\x52\x50\x4e\x20\x63\x61\x6c" \
-"\x63\x75\x6c\x61\x74\x6f\x72\x2e\x20\x4f\x70\x65\x72\x61\x74\x69" \
-"\x6f\x6e\x73\x3a\x0a\x2b\x2c\x20\x61\x64\x64\x2c\x20\x2d\x2c\x20" \
-"\x73\x75\x62\x2c\x20\x2a\x2c\x20\x6d\x75\x6c\x2c\x20\x2f\x2c\x20" \
-"\x64\x69\x76\x2c\x20\x25\x2c\x20\x6d\x6f\x64\x2c\x20\x61\x6e\x64" \
-"\x2c\x20\x6f\x72\x2c\x20\x6e\x6f\x74\x2c\x20\x78\x6f\x72\x2c\x0a" \
-"\x70\x20\x2d\x20\x70\x72\x69\x6e\x74\x20\x74\x6f\x70\x20\x6f\x66" \
-"\x20\x74\x68\x65\x20\x73\x74\x61\x63\x6b\x20\x28\x77\x69\x74\x68" \
-"\x6f\x75\x74\x20\x70\x6f\x70\x70\x69\x6e\x67\x29\x2c\x0a\x66\x20" \
-"\x2d\x20\x70\x72\x69\x6e\x74\x20\x65\x6e\x74\x69\x72\x65\x20\x73" \
-"\x74\x61\x63\x6b\x2c\x0a\x6f\x20\x2d\x20\x70\x6f\x70\x20\x74\x68" \
-"\x65\x20\x76\x61\x6c\x75\x65\x20\x61\x6e\x64\x20\x73\x65\x74\x20" \
-"\x6f\x75\x74\x70\x75\x74\x20\x72\x61\x64\x69\x78\x20\x28\x6d\x75" \
-"\x73\x74\x20\x62\x65\x20\x31\x30\x2c\x20\x31\x36\x2c\x20\x38\x20" \
-"\x6f\x72\x20\x32\x29\x2e\x0a\x45\x78\x61\x6d\x70\x6c\x65\x73\x3a" \
-"\x20\x27\x64\x63\x20\x32\x20\x32\x20\x61\x64\x64\x20\x70\x27\x20" \
-"\x2d\x3e\x20\x34\x2c\x20\x27\x64\x63\x20\x38\x20\x38\x20\x6d\x75" \
-"\x6c\x20\x32\x20\x32\x20\x2b\x20\x2f\x20\x70\x27\x20\x2d\x3e\x20" \
-"\x31\x36\x00\x5b\x69\x66\x3d\x46\x49\x4c\x45\x5d\x20\x5b\x6f\x66" \
-"\x3d\x46\x49\x4c\x45\x5d\x20\x5b\x69\x62\x73\x3d\x4e\x5d\x20\x5b" \
-"\x6f\x62\x73\x3d\x4e\x5d\x20\x5b\x62\x73\x3d\x4e\x5d\x20\x5b\x63" \
-"\x6f\x75\x6e\x74\x3d\x4e\x5d\x20\x5b\x73\x6b\x69\x70\x3d\x4e\x5d" \
-"\x0a\x09\x5b\x73\x65\x65\x6b\x3d\x4e\x5d\x20\x5b\x63\x6f\x6e\x76" \
-"\x3d\x6e\x6f\x74\x72\x75\x6e\x63\x7c\x6e\x6f\x65\x72\x72\x6f\x72" \
-"\x7c\x73\x79\x6e\x63\x7c\x66\x73\x79\x6e\x63\x5d\x0a\x0a\x43\x6f" \
-"\x70\x79\x20\x61\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x63" \
-"\x6f\x6e\x76\x65\x72\x74\x69\x6e\x67\x20\x61\x6e\x64\x20\x66\x6f" \
-"\x72\x6d\x61\x74\x74\x69\x6e\x67\x0a\x0a\x09\x69\x66\x3d\x46\x49" \
-"\x4c\x45\x09\x09\x52\x65\x61\x64\x20\x66\x72\x6f\x6d\x20\x46\x49" \
-"\x4c\x45\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x73\x74" \
-"\x64\x69\x6e\x0a\x09\x6f\x66\x3d\x46\x49\x4c\x45\x09\x09\x57\x72" \
-"\x69\x74\x65\x20\x74\x6f\x20\x46\x49\x4c\x45\x20\x69\x6e\x73\x74" \
-"\x65\x61\x64\x20\x6f\x66\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x62" \
-"\x73\x3d\x4e\x09\x09\x52\x65\x61\x64\x20\x61\x6e\x64\x20\x77\x72" \
-"\x69\x74\x65\x20\x4e\x20\x62\x79\x74\x65\x73\x20\x61\x74\x20\x61" \
-"\x20\x74\x69\x6d\x65\x0a\x09\x69\x62\x73\x3d\x4e\x09\x09\x52\x65" \
-"\x61\x64\x20\x4e\x20\x62\x79\x74\x65\x73\x20\x61\x74\x20\x61\x20" \
-"\x74\x69\x6d\x65\x0a\x09\x6f\x62\x73\x3d\x4e\x09\x09\x57\x72\x69" \
-"\x74\x65\x20\x4e\x20\x62\x79\x74\x65\x73\x20\x61\x74\x20\x61\x20" \
-"\x74\x69\x6d\x65\x0a\x09\x63\x6f\x75\x6e\x74\x3d\x4e\x09\x09\x43" \
-"\x6f\x70\x79\x20\x6f\x6e\x6c\x79\x20\x4e\x20\x69\x6e\x70\x75\x74" \
-"\x20\x62\x6c\x6f\x63\x6b\x73\x0a\x09\x73\x6b\x69\x70\x3d\x4e\x09" \
-"\x09\x53\x6b\x69\x70\x20\x4e\x20\x69\x6e\x70\x75\x74\x20\x62\x6c" \
-"\x6f\x63\x6b\x73\x0a\x09\x73\x65\x65\x6b\x3d\x4e\x09\x09\x53\x6b" \
-"\x69\x70\x20\x4e\x20\x6f\x75\x74\x70\x75\x74\x20\x62\x6c\x6f\x63" \
-"\x6b\x73\x0a\x09\x63\x6f\x6e\x76\x3d\x6e\x6f\x74\x72\x75\x6e\x63" \
-"\x09\x44\x6f\x6e\x27\x74\x20\x74\x72\x75\x6e\x63\x61\x74\x65\x20" \
-"\x6f\x75\x74\x70\x75\x74\x20\x66\x69\x6c\x65\x0a\x09\x63\x6f\x6e" \
-"\x76\x3d\x6e\x6f\x65\x72\x72\x6f\x72\x09\x43\x6f\x6e\x74\x69\x6e" \
-"\x75\x65\x20\x61\x66\x74\x65\x72\x20\x72\x65\x61\x64\x20\x65\x72" \
-"\x72\x6f\x72\x73\x0a\x09\x63\x6f\x6e\x76\x3d\x73\x79\x6e\x63\x09" \
-"\x50\x61\x64\x20\x62\x6c\x6f\x63\x6b\x73\x20\x77\x69\x74\x68\x20" \
-"\x7a\x65\x72\x6f\x73\x0a\x09\x63\x6f\x6e\x76\x3d\x66\x73\x79\x6e" \
-"\x63\x09\x50\x68\x79\x73\x69\x63\x61\x6c\x6c\x79\x20\x77\x72\x69" \
-"\x74\x65\x20\x64\x61\x74\x61\x20\x6f\x75\x74\x20\x62\x65\x66\x6f" \
-"\x72\x65\x20\x66\x69\x6e\x69\x73\x68\x69\x6e\x67\x0a\x0a\x4e\x75" \
-"\x6d\x62\x65\x72\x73\x20\x6d\x61\x79\x20\x62\x65\x20\x73\x75\x66" \
-"\x66\x69\x78\x65\x64\x20\x62\x79\x20\x63\x20\x28\x78\x31\x29\x2c" \
-"\x20\x77\x20\x28\x78\x32\x29\x2c\x20\x62\x20\x28\x78\x35\x31\x32" \
-"\x29\x2c\x20\x6b\x44\x20\x28\x78\x31\x30\x30\x30\x29\x2c\x20\x6b" \
-"\x20\x28\x78\x31\x30\x32\x34\x29\x2c\x0a\x4d\x44\x20\x28\x78\x31" \
-"\x30\x30\x30\x30\x30\x30\x29\x2c\x20\x4d\x20\x28\x78\x31\x30\x34" \
-"\x38\x35\x37\x36\x29\x2c\x20\x47\x44\x20\x28\x78\x31\x30\x30\x30" \
-"\x30\x30\x30\x30\x30\x30\x29\x20\x6f\x72\x20\x47\x20\x28\x78\x31" \
-"\x30\x37\x33\x37\x34\x31\x38\x32\x34\x29\x00\x5b\x2d\x71\x66\x77" \
-"\x72\x73\x76\x5d\x20\x4d\x4f\x44\x55\x4c\x45\x20\x5b\x73\x79\x6d" \
-"\x62\x6f\x6c\x3d\x76\x61\x6c\x75\x65\x5d\x2e\x2e\x2e\x0a\x0a\x09" \
-"\x2d\x72\x09\x52\x65\x6d\x6f\x76\x65\x20\x4d\x4f\x44\x55\x4c\x45" \
-"\x20\x28\x73\x74\x61\x63\x6b\x73\x29\x20\x6f\x72\x20\x64\x6f\x20" \
-"\x61\x75\x74\x6f\x63\x6c\x65\x61\x6e\x0a\x09\x2d\x71\x09\x51\x75" \
-"\x69\x65\x74\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x0a" \
-"\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x0a\x09\x2d\x77\x09\x57\x61" \
-"\x69\x74\x20\x66\x6f\x72\x20\x75\x6e\x6c\x6f\x61\x64\x0a\x09\x2d" \
-"\x73\x09\x52\x65\x70\x6f\x72\x74\x20\x76\x69\x61\x20\x73\x79\x73" \
-"\x6c\x6f\x67\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x73" \
-"\x74\x64\x65\x72\x72\x00\x41\x44\x44\x52\x45\x53\x53\x20\x5b\x57" \
-"\x49\x44\x54\x48\x20\x5b\x56\x41\x4c\x55\x45\x5d\x5d\x0a\x0a\x52" \
-"\x65\x61\x64\x2f\x77\x72\x69\x74\x65\x20\x66\x72\x6f\x6d\x20\x70" \
-"\x68\x79\x73\x69\x63\x61\x6c\x20\x61\x64\x64\x72\x65\x73\x73\x0a" \
-"\x0a\x09\x41\x44\x44\x52\x45\x53\x53\x09\x41\x64\x64\x72\x65\x73" \
-"\x73\x20\x74\x6f\x20\x61\x63\x74\x20\x75\x70\x6f\x6e\x0a\x09\x57" \
-"\x49\x44\x54\x48\x09\x57\x69\x64\x74\x68\x20\x28\x38\x2f\x31\x36" \
-"\x2f\x2e\x2e\x2e\x29\x0a\x09\x56\x41\x4c\x55\x45\x09\x44\x61\x74" \
-"\x61\x20\x74\x6f\x20\x62\x65\x20\x77\x72\x69\x74\x74\x65\x6e\x00" \
-"\x5b\x2d\x50\x6b\x6d\x68\x61\x69\x5d\x20\x5b\x2d\x42\x20\x53\x49" \
-"\x5a\x45\x5d\x20\x5b\x46\x49\x4c\x45\x53\x59\x53\x54\x45\x4d\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x66\x69\x6c\x65\x73" \
-"\x79\x73\x74\x65\x6d\x20\x75\x73\x61\x67\x65\x20\x73\x74\x61\x74" \
-"\x69\x73\x74\x69\x63\x73\x0a\x0a\x09\x2d\x50\x09\x50\x4f\x53\x49" \
-"\x58\x20\x6f\x75\x74\x70\x75\x74\x20\x66\x6f\x72\x6d\x61\x74\x0a" \
-"\x09\x2d\x6b\x09\x31\x30\x32\x34\x2d\x62\x79\x74\x65\x20\x62\x6c" \
-"\x6f\x63\x6b\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09" \
-"\x2d\x6d\x09\x31\x4d\x2d\x62\x79\x74\x65\x20\x62\x6c\x6f\x63\x6b" \
-"\x73\x0a\x09\x2d\x68\x09\x48\x75\x6d\x61\x6e\x20\x72\x65\x61\x64" \
-"\x61\x62\x6c\x65\x20\x28\x65\x2e\x67\x2e\x20\x31\x4b\x20\x32\x34" \
-"\x33\x4d\x20\x32\x47\x29\x0a\x09\x2d\x61\x09\x53\x68\x6f\x77\x20" \
-"\x61\x6c\x6c\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x0a" \
-"\x09\x2d\x69\x09\x49\x6e\x6f\x64\x65\x73\x0a\x09\x2d\x42\x20\x53" \
-"\x49\x5a\x45\x09\x42\x6c\x6f\x63\x6b\x73\x69\x7a\x65\x00\x5b\x2d" \
-"\x61\x62\x42\x64\x69\x4e\x71\x72\x54\x73\x74\x77\x5d\x20\x5b\x2d" \
-"\x4c\x20\x4c\x41\x42\x45\x4c\x5d\x20\x5b\x2d\x53\x20\x46\x49\x4c" \
-"\x45\x5d\x20\x5b\x2d\x55\x20\x4c\x49\x4e\x45\x53\x5d\x20\x46\x49" \
-"\x4c\x45\x31\x20\x46\x49\x4c\x45\x32\x0a\x0a\x43\x6f\x6d\x70\x61" \
-"\x72\x65\x20\x66\x69\x6c\x65\x73\x20\x6c\x69\x6e\x65\x20\x62\x79" \
-"\x20\x6c\x69\x6e\x65\x20\x61\x6e\x64\x20\x6f\x75\x74\x70\x75\x74" \
-"\x20\x74\x68\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x63\x65\x73" \
-"\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x74\x68\x65\x6d\x2e\x0a\x54" \
-"\x68\x69\x73\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69" \
-"\x6f\x6e\x20\x73\x75\x70\x70\x6f\x72\x74\x73\x20\x75\x6e\x69\x66" \
-"\x69\x65\x64\x20\x64\x69\x66\x66\x73\x20\x6f\x6e\x6c\x79\x2e\x0a" \
-"\x0a\x09\x2d\x61\x09\x54\x72\x65\x61\x74\x20\x61\x6c\x6c\x20\x66" \
-"\x69\x6c\x65\x73\x20\x61\x73\x20\x74\x65\x78\x74\x0a\x09\x2d\x62" \
-"\x09\x49\x67\x6e\x6f\x72\x65\x20\x63\x68\x61\x6e\x67\x65\x73\x20" \
-"\x69\x6e\x20\x74\x68\x65\x20\x61\x6d\x6f\x75\x6e\x74\x20\x6f\x66" \
-"\x20\x77\x68\x69\x74\x65\x73\x70\x61\x63\x65\x0a\x09\x2d\x42\x09" \
-"\x49\x67\x6e\x6f\x72\x65\x20\x63\x68\x61\x6e\x67\x65\x73\x20\x77" \
-"\x68\x6f\x73\x65\x20\x6c\x69\x6e\x65\x73\x20\x61\x72\x65\x20\x61" \
-"\x6c\x6c\x20\x62\x6c\x61\x6e\x6b\x0a\x09\x2d\x64\x09\x54\x72\x79" \
-"\x20\x68\x61\x72\x64\x20\x74\x6f\x20\x66\x69\x6e\x64\x20\x61\x20" \
-"\x73\x6d\x61\x6c\x6c\x65\x72\x20\x73\x65\x74\x20\x6f\x66\x20\x63" \
-"\x68\x61\x6e\x67\x65\x73\x0a\x09\x2d\x69\x09\x49\x67\x6e\x6f\x72" \
-"\x65\x20\x63\x61\x73\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x63" \
-"\x65\x73\x0a\x09\x2d\x4c\x09\x55\x73\x65\x20\x4c\x41\x42\x45\x4c" \
-"\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x74\x68\x65\x20" \
-"\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x69\x6e\x20\x74\x68\x65\x20" \
-"\x75\x6e\x69\x66\x69\x65\x64\x20\x68\x65\x61\x64\x65\x72\x0a\x09" \
-"\x2d\x4e\x09\x54\x72\x65\x61\x74\x20\x61\x62\x73\x65\x6e\x74\x20" \
-"\x66\x69\x6c\x65\x73\x20\x61\x73\x20\x65\x6d\x70\x74\x79\x0a\x09" \
-"\x2d\x71\x09\x4f\x75\x74\x70\x75\x74\x20\x6f\x6e\x6c\x79\x20\x77" \
-"\x68\x65\x74\x68\x65\x72\x20\x66\x69\x6c\x65\x73\x20\x64\x69\x66" \
-"\x66\x65\x72\x0a\x09\x2d\x72\x09\x52\x65\x63\x75\x72\x73\x65\x0a" \
-"\x09\x2d\x53\x09\x53\x74\x61\x72\x74\x20\x77\x69\x74\x68\x20\x46" \
-"\x49\x4c\x45\x20\x77\x68\x65\x6e\x20\x63\x6f\x6d\x70\x61\x72\x69" \
-"\x6e\x67\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x09" \
-"\x2d\x54\x09\x4d\x61\x6b\x65\x20\x74\x61\x62\x73\x20\x6c\x69\x6e" \
-"\x65\x20\x75\x70\x20\x62\x79\x20\x70\x72\x65\x66\x69\x78\x69\x6e" \
-"\x67\x20\x61\x20\x74\x61\x62\x20\x77\x68\x65\x6e\x20\x6e\x65\x63" \
-"\x65\x73\x73\x61\x72\x79\x0a\x09\x2d\x73\x09\x52\x65\x70\x6f\x72" \
-"\x74\x20\x77\x68\x65\x6e\x20\x74\x77\x6f\x20\x66\x69\x6c\x65\x73" \
-"\x20\x61\x72\x65\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x0a\x09\x2d" \
-"\x74\x09\x45\x78\x70\x61\x6e\x64\x20\x74\x61\x62\x73\x20\x74\x6f" \
-"\x20\x73\x70\x61\x63\x65\x73\x20\x69\x6e\x20\x6f\x75\x74\x70\x75" \
-"\x74\x0a\x09\x2d\x55\x09\x4f\x75\x74\x70\x75\x74\x20\x4c\x49\x4e" \
-"\x45\x53\x20\x6c\x69\x6e\x65\x73\x20\x6f\x66\x20\x63\x6f\x6e\x74" \
-"\x65\x78\x74\x0a\x09\x2d\x77\x09\x49\x67\x6e\x6f\x72\x65\x20\x61" \
-"\x6c\x6c\x20\x77\x68\x69\x74\x65\x73\x70\x61\x63\x65\x00\x46\x49" \
-"\x4c\x45\x4e\x41\x4d\x45\x0a\x0a\x53\x74\x72\x69\x70\x20\x6e\x6f" \
-"\x6e\x2d\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x73\x75\x66\x66" \
-"\x69\x78\x20\x66\x72\x6f\x6d\x20\x46\x49\x4c\x45\x4e\x41\x4d\x45" \
-"\x00\x5b\x2d\x63\x5d\x20\x5b\x2d\x6e\x20\x4c\x45\x56\x45\x4c\x5d" \
-"\x20\x5b\x2d\x72\x5d\x20\x5b\x2d\x73\x20\x53\x49\x5a\x45\x5d\x20" \
-"\x5b\x2d\x43\x5d\x0a\x0a\x50\x72\x69\x6e\x74\x20\x6f\x72\x20\x63" \
-"\x6f\x6e\x74\x72\x6f\x6c\x20\x74\x68\x65\x20\x6b\x65\x72\x6e\x65" \
-"\x6c\x20\x72\x69\x6e\x67\x20\x62\x75\x66\x66\x65\x72\x0a\x0a\x09" \
-"\x2d\x63\x09\x09\x43\x6c\x65\x61\x72\x20\x72\x69\x6e\x67\x20\x62" \
-"\x75\x66\x66\x65\x72\x20\x61\x66\x74\x65\x72\x20\x70\x72\x69\x6e" \
-"\x74\x69\x6e\x67\x0a\x09\x2d\x6e\x20\x4c\x45\x56\x45\x4c\x09\x53" \
-"\x65\x74\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x20\x6c\x6f\x67\x67\x69" \
-"\x6e\x67\x20\x6c\x65\x76\x65\x6c\x0a\x09\x2d\x72\x09\x09\x53\x68" \
-"\x6f\x77\x20\x6c\x65\x76\x65\x6c\x20\x70\x72\x65\x66\x69\x78\x0a" \
-"\x09\x2d\x73\x20\x53\x49\x5a\x45\x09\x09\x42\x75\x66\x66\x65\x72" \
-"\x20\x73\x69\x7a\x65\x0a\x09\x2d\x43\x09\x09\x43\x6f\x6c\x6f\x72" \
-"\x65\x64\x20\x6f\x75\x74\x70\x75\x74\x00\x5b\x2d\x75\x64\x5d\x20" \
-"\x5b\x46\x49\x4c\x45\x5d\x0a\x0a\x43\x6f\x6e\x76\x65\x72\x74\x20" \
-"\x46\x49\x4c\x45\x20\x69\x6e\x2d\x70\x6c\x61\x63\x65\x20\x66\x72" \
-"\x6f\x6d\x20\x44\x4f\x53\x20\x74\x6f\x20\x55\x6e\x69\x78\x20\x66" \
-"\x6f\x72\x6d\x61\x74\x2e\x0a\x57\x68\x65\x6e\x20\x6e\x6f\x20\x66" \
-"\x69\x6c\x65\x20\x69\x73\x20\x67\x69\x76\x65\x6e\x2c\x20\x75\x73" \
-"\x65\x20\x73\x74\x64\x69\x6e\x2f\x73\x74\x64\x6f\x75\x74\x2e\x0a" \
-"\x0a\x09\x2d\x75\x09\x64\x6f\x73\x32\x75\x6e\x69\x78\x0a\x09\x2d" \
-"\x64\x09\x75\x6e\x69\x78\x32\x64\x6f\x73\x00\x5b\x2d\x61\x48\x4c" \
-"\x64\x63\x6c\x73\x78\x68\x6d\x6b\x5d\x20\x5b\x46\x49\x4c\x45\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x53\x75\x6d\x6d\x61\x72\x69\x7a\x65\x20\x64" \
-"\x69\x73\x6b\x20\x73\x70\x61\x63\x65\x20\x75\x73\x65\x64\x20\x66" \
-"\x6f\x72\x20\x65\x61\x63\x68\x20\x46\x49\x4c\x45\x20\x61\x6e\x64" \
-"\x2f\x6f\x72\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x0a\x0a\x09" \
-"\x2d\x61\x09\x53\x68\x6f\x77\x20\x66\x69\x6c\x65\x20\x73\x69\x7a" \
-"\x65\x73\x20\x74\x6f\x6f\x0a\x09\x2d\x4c\x09\x46\x6f\x6c\x6c\x6f" \
-"\x77\x20\x61\x6c\x6c\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x0a\x09" \
-"\x2d\x48\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d\x6c\x69\x6e" \
-"\x6b\x73\x20\x6f\x6e\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69" \
-"\x6e\x65\x0a\x09\x2d\x64\x20\x4e\x09\x4c\x69\x6d\x69\x74\x20\x6f" \
-"\x75\x74\x70\x75\x74\x20\x74\x6f\x20\x64\x69\x72\x65\x63\x74\x6f" \
-"\x72\x69\x65\x73\x20\x28\x61\x6e\x64\x20\x66\x69\x6c\x65\x73\x20" \
-"\x77\x69\x74\x68\x20\x2d\x61\x29\x20\x6f\x66\x20\x64\x65\x70\x74" \
-"\x68\x20\x3c\x20\x4e\x0a\x09\x2d\x63\x09\x53\x68\x6f\x77\x20\x67" \
-"\x72\x61\x6e\x64\x20\x74\x6f\x74\x61\x6c\x0a\x09\x2d\x6c\x09\x43" \
-"\x6f\x75\x6e\x74\x20\x73\x69\x7a\x65\x73\x20\x6d\x61\x6e\x79\x20" \
-"\x74\x69\x6d\x65\x73\x20\x69\x66\x20\x68\x61\x72\x64\x20\x6c\x69" \
-"\x6e\x6b\x65\x64\x0a\x09\x2d\x73\x09\x44\x69\x73\x70\x6c\x61\x79" \
-"\x20\x6f\x6e\x6c\x79\x20\x61\x20\x74\x6f\x74\x61\x6c\x20\x66\x6f" \
-"\x72\x20\x65\x61\x63\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x0a" \
-"\x09\x2d\x78\x09\x53\x6b\x69\x70\x20\x64\x69\x72\x65\x63\x74\x6f" \
-"\x72\x69\x65\x73\x20\x6f\x6e\x20\x64\x69\x66\x66\x65\x72\x65\x6e" \
-"\x74\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x0a\x09\x2d" \
-"\x68\x09\x53\x69\x7a\x65\x73\x20\x69\x6e\x20\x68\x75\x6d\x61\x6e" \
-"\x20\x72\x65\x61\x64\x61\x62\x6c\x65\x20\x66\x6f\x72\x6d\x61\x74" \
-"\x20\x28\x65\x2e\x67\x2e\x2c\x20\x31\x4b\x20\x32\x34\x33\x4d\x20" \
-"\x32\x47\x29\x0a\x09\x2d\x6d\x09\x53\x69\x7a\x65\x73\x20\x69\x6e" \
-"\x20\x6d\x65\x67\x61\x62\x79\x74\x65\x73\x0a\x09\x2d\x6b\x09\x53" \
-"\x69\x7a\x65\x73\x20\x69\x6e\x20\x6b\x69\x6c\x6f\x62\x79\x74\x65" \
-"\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x00\x5b\x2d\x6e\x65" \
-"\x45\x5d\x20\x5b\x41\x52\x47\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69" \
-"\x6e\x74\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64" \
-"\x20\x41\x52\x47\x73\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a" \
-"\x0a\x09\x2d\x6e\x09\x53\x75\x70\x70\x72\x65\x73\x73\x20\x74\x72" \
-"\x61\x69\x6c\x69\x6e\x67\x20\x6e\x65\x77\x6c\x69\x6e\x65\x0a\x09" \
-"\x2d\x65\x09\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x20\x62\x61\x63" \
-"\x6b\x73\x6c\x61\x73\x68\x20\x65\x73\x63\x61\x70\x65\x73\x20\x28" \
-"\x69\x2e\x65\x2e\x2c\x20\x5c\x74\x3d\x74\x61\x62\x29\x0a\x09\x2d" \
-"\x45\x09\x44\x6f\x6e\x27\x74\x20\x69\x6e\x74\x65\x72\x70\x72\x65" \
-"\x74\x20\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x20\x65\x73\x63\x61" \
-"\x70\x65\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x00\x08\x00" \
-"\x5b\x2d\x69\x75\x5d\x20\x5b\x2d\x5d\x20\x5b\x6e\x61\x6d\x65\x3d" \
-"\x76\x61\x6c\x75\x65\x5d\x2e\x2e\x2e\x20\x5b\x50\x52\x4f\x47\x20" \
-"\x41\x52\x47\x53\x5d\x0a\x0a\x50\x72\x69\x6e\x74\x20\x74\x68\x65" \
-"\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x65\x6e\x76\x69\x72\x6f\x6e" \
-"\x6d\x65\x6e\x74\x20\x6f\x72\x20\x72\x75\x6e\x20\x50\x52\x4f\x47" \
-"\x20\x61\x66\x74\x65\x72\x20\x73\x65\x74\x74\x69\x6e\x67\x20\x75" \
-"\x70\x0a\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20" \
-"\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x0a\x0a\x09\x2d\x2c" \
-"\x20\x2d\x69\x09\x53\x74\x61\x72\x74\x20\x77\x69\x74\x68\x20\x61" \
-"\x6e\x20\x65\x6d\x70\x74\x79\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d" \
-"\x65\x6e\x74\x0a\x09\x2d\x75\x09\x52\x65\x6d\x6f\x76\x65\x20\x76" \
-"\x61\x72\x69\x61\x62\x6c\x65\x20\x66\x72\x6f\x6d\x20\x74\x68\x65" \
-"\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x00\x5b\x2d\x69" \
-"\x5d\x20\x5b\x2d\x74\x20\x4e\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e" \
-"\x2e\x2e\x0a\x0a\x43\x6f\x6e\x76\x65\x72\x74\x20\x74\x61\x62\x73" \
-"\x20\x74\x6f\x20\x73\x70\x61\x63\x65\x73\x2c\x20\x77\x72\x69\x74" \
-"\x69\x6e\x67\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x0a\x09" \
-"\x2d\x69\x09\x44\x6f\x6e\x27\x74\x20\x63\x6f\x6e\x76\x65\x72\x74" \
-"\x20\x74\x61\x62\x73\x20\x61\x66\x74\x65\x72\x20\x6e\x6f\x6e\x20" \
-"\x62\x6c\x61\x6e\x6b\x73\x0a\x09\x2d\x74\x09\x54\x61\x62\x73\x74" \
-"\x6f\x70\x73\x20\x65\x76\x65\x72\x79\x20\x4e\x20\x63\x68\x61\x72" \
-"\x73\x00\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x0a\x0a\x50\x72" \
-"\x69\x6e\x74\x20\x74\x68\x65\x20\x76\x61\x6c\x75\x65\x20\x6f\x66" \
-"\x20\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x20\x74\x6f\x20\x73" \
-"\x74\x64\x6f\x75\x74\x0a\x0a\x45\x58\x50\x52\x45\x53\x53\x49\x4f" \
-"\x4e\x20\x6d\x61\x79\x20\x62\x65\x3a\x0a\x09\x41\x52\x47\x31\x20" \
-"\x7c\x20\x41\x52\x47\x32\x09\x41\x52\x47\x31\x20\x69\x66\x20\x69" \
-"\x74\x20\x69\x73\x20\x6e\x65\x69\x74\x68\x65\x72\x20\x6e\x75\x6c" \
-"\x6c\x20\x6e\x6f\x72\x20\x30\x2c\x20\x6f\x74\x68\x65\x72\x77\x69" \
-"\x73\x65\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x26\x20" \
-"\x41\x52\x47\x32\x09\x41\x52\x47\x31\x20\x69\x66\x20\x6e\x65\x69" \
-"\x74\x68\x65\x72\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x69\x73" \
-"\x20\x6e\x75\x6c\x6c\x20\x6f\x72\x20\x30\x2c\x20\x6f\x74\x68\x65" \
-"\x72\x77\x69\x73\x65\x20\x30\x0a\x09\x41\x52\x47\x31\x20\x3c\x20" \
-"\x41\x52\x47\x32\x09\x31\x20\x69\x66\x20\x41\x52\x47\x31\x20\x69" \
-"\x73\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x41\x52\x47\x32" \
-"\x2c\x20\x65\x6c\x73\x65\x20\x30\x2e\x20\x53\x69\x6d\x69\x6c\x61" \
-"\x72\x6c\x79\x3a\x0a\x09\x41\x52\x47\x31\x20\x3c\x3d\x20\x41\x52" \
-"\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x3d\x20\x41\x52\x47\x32\x0a" \
-"\x09\x41\x52\x47\x31\x20\x21\x3d\x20\x41\x52\x47\x32\x0a\x09\x41" \
-"\x52\x47\x31\x20\x3e\x3d\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47" \
-"\x31\x20\x3e\x20\x41\x52\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x2b" \
-"\x20\x41\x52\x47\x32\x09\x53\x75\x6d\x20\x6f\x66\x20\x41\x52\x47" \
-"\x31\x20\x61\x6e\x64\x20\x41\x52\x47\x32\x2e\x20\x53\x69\x6d\x69" \
-"\x6c\x61\x72\x6c\x79\x3a\x0a\x09\x41\x52\x47\x31\x20\x2d\x20\x41" \
-"\x52\x47\x32\x0a\x09\x41\x52\x47\x31\x20\x2a\x20\x41\x52\x47\x32" \
-"\x0a\x09\x41\x52\x47\x31\x20\x2f\x20\x41\x52\x47\x32\x0a\x09\x41" \
-"\x52\x47\x31\x20\x25\x20\x41\x52\x47\x32\x0a\x09\x53\x54\x52\x49" \
-"\x4e\x47\x20\x3a\x20\x52\x45\x47\x45\x58\x50\x09\x09\x41\x6e\x63" \
-"\x68\x6f\x72\x65\x64\x20\x70\x61\x74\x74\x65\x72\x6e\x20\x6d\x61" \
-"\x74\x63\x68\x20\x6f\x66\x20\x52\x45\x47\x45\x58\x50\x20\x69\x6e" \
-"\x20\x53\x54\x52\x49\x4e\x47\x0a\x09\x6d\x61\x74\x63\x68\x20\x53" \
-"\x54\x52\x49\x4e\x47\x20\x52\x45\x47\x45\x58\x50\x09\x53\x61\x6d" \
-"\x65\x20\x61\x73\x20\x53\x54\x52\x49\x4e\x47\x20\x3a\x20\x52\x45" \
-"\x47\x45\x58\x50\x0a\x09\x73\x75\x62\x73\x74\x72\x20\x53\x54\x52" \
-"\x49\x4e\x47\x20\x50\x4f\x53\x20\x4c\x45\x4e\x47\x54\x48\x20\x53" \
-"\x75\x62\x73\x74\x72\x69\x6e\x67\x20\x6f\x66\x20\x53\x54\x52\x49" \
-"\x4e\x47\x2c\x20\x50\x4f\x53\x20\x63\x6f\x75\x6e\x74\x65\x64\x20" \
-"\x66\x72\x6f\x6d\x20\x31\x0a\x09\x69\x6e\x64\x65\x78\x20\x53\x54" \
-"\x52\x49\x4e\x47\x20\x43\x48\x41\x52\x53\x09\x49\x6e\x64\x65\x78" \
-"\x20\x69\x6e\x20\x53\x54\x52\x49\x4e\x47\x20\x77\x68\x65\x72\x65" \
-"\x20\x61\x6e\x79\x20\x43\x48\x41\x52\x53\x20\x69\x73\x20\x66\x6f" \
-"\x75\x6e\x64\x2c\x20\x6f\x72\x20\x30\x0a\x09\x6c\x65\x6e\x67\x74" \
-"\x68\x20\x53\x54\x52\x49\x4e\x47\x09\x09\x4c\x65\x6e\x67\x74\x68" \
-"\x20\x6f\x66\x20\x53\x54\x52\x49\x4e\x47\x0a\x09\x71\x75\x6f\x74" \
-"\x65\x20\x54\x4f\x4b\x45\x4e\x09\x09\x49\x6e\x74\x65\x72\x70\x72" \
-"\x65\x74\x20\x54\x4f\x4b\x45\x4e\x20\x61\x73\x20\x61\x20\x73\x74" \
-"\x72\x69\x6e\x67\x2c\x20\x65\x76\x65\x6e\x20\x69\x66\x0a\x09\x09" \
-"\x09\x09\x69\x74\x20\x69\x73\x20\x61\x20\x6b\x65\x79\x77\x6f\x72" \
-"\x64\x20\x6c\x69\x6b\x65\x20\x27\x6d\x61\x74\x63\x68\x27\x20\x6f" \
-"\x72\x20\x61\x6e\x0a\x09\x09\x09\x09\x6f\x70\x65\x72\x61\x74\x6f" \
-"\x72\x20\x6c\x69\x6b\x65\x20\x27\x2f\x27\x0a\x09\x28\x45\x58\x50" \
-"\x52\x45\x53\x53\x49\x4f\x4e\x29\x09\x09\x56\x61\x6c\x75\x65\x20" \
-"\x6f\x66\x20\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x0a\x0a\x42" \
-"\x65\x77\x61\x72\x65\x20\x74\x68\x61\x74\x20\x6d\x61\x6e\x79\x20" \
-"\x6f\x70\x65\x72\x61\x74\x6f\x72\x73\x20\x6e\x65\x65\x64\x20\x74" \
-"\x6f\x20\x62\x65\x20\x65\x73\x63\x61\x70\x65\x64\x20\x6f\x72\x20" \
-"\x71\x75\x6f\x74\x65\x64\x20\x66\x6f\x72\x20\x73\x68\x65\x6c\x6c" \
-"\x73\x2e\x0a\x43\x6f\x6d\x70\x61\x72\x69\x73\x6f\x6e\x73\x20\x61" \
-"\x72\x65\x20\x61\x72\x69\x74\x68\x6d\x65\x74\x69\x63\x20\x69\x66" \
-"\x20\x62\x6f\x74\x68\x20\x41\x52\x47\x73\x20\x61\x72\x65\x20\x6e" \
-"\x75\x6d\x62\x65\x72\x73\x2c\x20\x65\x6c\x73\x65\x0a\x6c\x65\x78" \
-"\x69\x63\x6f\x67\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x20\x50\x61" \
-"\x74\x74\x65\x72\x6e\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x72\x65" \
-"\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x73\x74\x72\x69\x6e\x67\x20" \
-"\x6d\x61\x74\x63\x68\x65\x64\x20\x62\x65\x74\x77\x65\x65\x6e\x0a" \
-"\x5c\x28\x20\x61\x6e\x64\x20\x5c\x29\x20\x6f\x72\x20\x6e\x75\x6c" \
-"\x6c\x3b\x20\x69\x66\x20\x5c\x28\x20\x61\x6e\x64\x20\x5c\x29\x20" \
-"\x61\x72\x65\x20\x6e\x6f\x74\x20\x75\x73\x65\x64\x2c\x20\x74\x68" \
-"\x65\x79\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x6e\x75" \
-"\x6d\x62\x65\x72\x0a\x6f\x66\x20\x63\x68\x61\x72\x61\x63\x74\x65" \
-"\x72\x73\x20\x6d\x61\x74\x63\x68\x65\x64\x20\x6f\x72\x20\x30\x2e" \
-"\x00\x0a\x0a\x52\x65\x74\x75\x72\x6e\x20\x61\x6e\x20\x65\x78\x69" \
-"\x74\x20\x63\x6f\x64\x65\x20\x6f\x66\x20\x46\x41\x4c\x53\x45\x20" \
-"\x28\x31\x29\x00\x5b\x2d\x75\x6c\x5d\x20\x5b\x2d\x43\x20\x43\x59" \
-"\x4c\x49\x4e\x44\x45\x52\x53\x5d\x20\x5b\x2d\x48\x20\x48\x45\x41" \
-"\x44\x53\x5d\x20\x5b\x2d\x53\x20\x53\x45\x43\x54\x4f\x52\x53\x5d" \
-"\x20\x5b\x2d\x62\x20\x53\x53\x5a\x5d\x20\x44\x49\x53\x4b\x0a\x0a" \
-"\x43\x68\x61\x6e\x67\x65\x20\x70\x61\x72\x74\x69\x74\x69\x6f\x6e" \
-"\x20\x74\x61\x62\x6c\x65\x0a\x0a\x09\x2d\x75\x09\x09\x53\x74\x61" \
-"\x72\x74\x20\x61\x6e\x64\x20\x45\x6e\x64\x20\x61\x72\x65\x20\x69" \
-"\x6e\x20\x73\x65\x63\x74\x6f\x72\x73\x20\x28\x69\x6e\x73\x74\x65" \
-"\x61\x64\x20\x6f\x66\x20\x63\x79\x6c\x69\x6e\x64\x65\x72\x73\x29" \
-"\x0a\x09\x2d\x6c\x09\x09\x53\x68\x6f\x77\x20\x70\x61\x72\x74\x69" \
-"\x74\x69\x6f\x6e\x20\x74\x61\x62\x6c\x65\x20\x66\x6f\x72\x20\x65" \
-"\x61\x63\x68\x20\x44\x49\x53\x4b\x2c\x20\x74\x68\x65\x6e\x20\x65" \
-"\x78\x69\x74\x0a\x09\x2d\x62\x20\x32\x30\x34\x38\x09\x09\x28\x66" \
-"\x6f\x72\x20\x63\x65\x72\x74\x61\x69\x6e\x20\x4d\x4f\x20\x64\x69" \
-"\x73\x6b\x73\x29\x20\x75\x73\x65\x20\x32\x30\x34\x38\x2d\x62\x79" \
-"\x74\x65\x20\x73\x65\x63\x74\x6f\x72\x73\x0a\x09\x2d\x43\x20\x43" \
-"\x59\x4c\x49\x4e\x44\x45\x52\x53\x09\x53\x65\x74\x20\x6e\x75\x6d" \
-"\x62\x65\x72\x20\x6f\x66\x20\x63\x79\x6c\x69\x6e\x64\x65\x72\x73" \
-"\x2f\x68\x65\x61\x64\x73\x2f\x73\x65\x63\x74\x6f\x72\x73\x0a\x09" \
-"\x2d\x48\x20\x48\x45\x41\x44\x53\x0a\x09\x2d\x53\x20\x53\x45\x43" \
-"\x54\x4f\x52\x53\x00\x08\x00\x5b\x50\x41\x54\x48\x5d\x2e\x2e\x2e" \
-"\x20\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x41\x43\x54\x49" \
-"\x4f\x4e\x53\x5d\x0a\x0a\x53\x65\x61\x72\x63\x68\x20\x66\x6f\x72" \
-"\x20\x66\x69\x6c\x65\x73\x20\x61\x6e\x64\x20\x70\x65\x72\x66\x6f" \
-"\x72\x6d\x20\x61\x63\x74\x69\x6f\x6e\x73\x20\x6f\x6e\x20\x74\x68" \
-"\x65\x6d\x2e\x0a\x46\x69\x72\x73\x74\x20\x66\x61\x69\x6c\x65\x64" \
-"\x20\x61\x63\x74\x69\x6f\x6e\x20\x73\x74\x6f\x70\x73\x20\x70\x72" \
-"\x6f\x63\x65\x73\x73\x69\x6e\x67\x20\x6f\x66\x20\x63\x75\x72\x72" \
-"\x65\x6e\x74\x20\x66\x69\x6c\x65\x2e\x0a\x44\x65\x66\x61\x75\x6c" \
-"\x74\x73\x3a\x20\x50\x41\x54\x48\x20\x69\x73\x20\x63\x75\x72\x72" \
-"\x65\x6e\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x2c\x20\x61" \
-"\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x27\x2d\x70\x72\x69\x6e\x74" \
-"\x27\x0a\x0a\x09\x2d\x66\x6f\x6c\x6c\x6f\x77\x09\x09\x46\x6f\x6c" \
-"\x6c\x6f\x77\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x0a\x09\x2d\x78" \
-"\x64\x65\x76\x09\x09\x44\x6f\x6e\x27\x74\x20\x64\x65\x73\x63\x65" \
-"\x6e\x64\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x6f" \
-"\x6e\x20\x6f\x74\x68\x65\x72\x20\x66\x69\x6c\x65\x73\x79\x73\x74" \
-"\x65\x6d\x73\x0a\x09\x2d\x6d\x61\x78\x64\x65\x70\x74\x68\x20\x4e" \
-"\x09\x44\x65\x73\x63\x65\x6e\x64\x20\x61\x74\x20\x6d\x6f\x73\x74" \
-"\x20\x4e\x20\x6c\x65\x76\x65\x6c\x73\x2e\x20\x2d\x6d\x61\x78\x64" \
-"\x65\x70\x74\x68\x20\x30\x20\x61\x70\x70\x6c\x69\x65\x73\x0a\x09" \
-"\x09\x09\x61\x63\x74\x69\x6f\x6e\x73\x20\x74\x6f\x20\x63\x6f\x6d" \
-"\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x20\x61\x72\x67\x75\x6d\x65" \
-"\x6e\x74\x73\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x6d\x69\x6e\x64\x65" \
-"\x70\x74\x68\x20\x4e\x09\x44\x6f\x6e\x27\x74\x20\x61\x63\x74\x20" \
-"\x6f\x6e\x20\x66\x69\x72\x73\x74\x20\x4e\x20\x6c\x65\x76\x65\x6c" \
-"\x73\x0a\x09\x2d\x64\x65\x70\x74\x68\x09\x09\x41\x63\x74\x20\x6f" \
-"\x6e\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x2a\x61\x66\x74" \
-"\x65\x72\x2a\x20\x74\x72\x61\x76\x65\x72\x73\x69\x6e\x67\x20\x69" \
-"\x74\x0a\x0a\x41\x63\x74\x69\x6f\x6e\x73\x3a\x0a\x09\x28\x20\x41" \
-"\x43\x54\x49\x4f\x4e\x53\x20\x29\x09\x47\x72\x6f\x75\x70\x20\x61" \
-"\x63\x74\x69\x6f\x6e\x73\x20\x66\x6f\x72\x20\x2d\x6f\x20\x2f\x20" \
-"\x2d\x61\x0a\x09\x21\x20\x41\x43\x54\x09\x09\x49\x6e\x76\x65\x72" \
-"\x74\x20\x41\x43\x54\x27\x73\x20\x73\x75\x63\x63\x65\x73\x73\x2f" \
-"\x66\x61\x69\x6c\x75\x72\x65\x0a\x09\x41\x43\x54\x31\x20\x5b\x2d" \
-"\x61\x5d\x20\x41\x43\x54\x32\x09\x49\x66\x20\x41\x43\x54\x31\x20" \
-"\x66\x61\x69\x6c\x73\x2c\x20\x73\x74\x6f\x70\x2c\x20\x65\x6c\x73" \
-"\x65\x20\x64\x6f\x20\x41\x43\x54\x32\x0a\x09\x41\x43\x54\x31\x20" \
-"\x2d\x6f\x20\x41\x43\x54\x32\x09\x49\x66\x20\x41\x43\x54\x31\x20" \
-"\x73\x75\x63\x63\x65\x65\x64\x73\x2c\x20\x73\x74\x6f\x70\x2c\x20" \
-"\x65\x6c\x73\x65\x20\x64\x6f\x20\x41\x43\x54\x32\x0a\x09\x09\x09" \
-"\x4e\x6f\x74\x65\x3a\x20\x2d\x61\x20\x68\x61\x73\x20\x68\x69\x67" \
-"\x68\x65\x72\x20\x70\x72\x69\x6f\x72\x69\x74\x79\x20\x74\x68\x61" \
-"\x6e\x20\x2d\x6f\x0a\x09\x2d\x6e\x61\x6d\x65\x20\x50\x41\x54\x54" \
-"\x45\x52\x4e\x09\x4d\x61\x74\x63\x68\x20\x66\x69\x6c\x65\x20\x6e" \
-"\x61\x6d\x65\x20\x28\x77\x2f\x6f\x20\x64\x69\x72\x65\x63\x74\x6f" \
-"\x72\x79\x20\x6e\x61\x6d\x65\x29\x20\x74\x6f\x20\x50\x41\x54\x54" \
-"\x45\x52\x4e\x0a\x09\x2d\x69\x6e\x61\x6d\x65\x20\x50\x41\x54\x54" \
-"\x45\x52\x4e\x09\x43\x61\x73\x65\x20\x69\x6e\x73\x65\x6e\x73\x69" \
-"\x74\x69\x76\x65\x20\x2d\x6e\x61\x6d\x65\x0a\x09\x2d\x70\x61\x74" \
-"\x68\x20\x50\x41\x54\x54\x45\x52\x4e\x09\x4d\x61\x74\x63\x68\x20" \
-"\x70\x61\x74\x68\x20\x74\x6f\x20\x50\x41\x54\x54\x45\x52\x4e\x0a" \
-"\x09\x2d\x69\x70\x61\x74\x68\x20\x50\x41\x54\x54\x45\x52\x4e\x09" \
-"\x43\x61\x73\x65\x20\x69\x6e\x73\x65\x6e\x73\x69\x74\x69\x76\x65" \
-"\x20\x2d\x70\x61\x74\x68\x0a\x09\x2d\x72\x65\x67\x65\x78\x20\x50" \
-"\x41\x54\x54\x45\x52\x4e\x09\x4d\x61\x74\x63\x68\x20\x70\x61\x74" \
-"\x68\x20\x74\x6f\x20\x72\x65\x67\x65\x78\x20\x50\x41\x54\x54\x45" \
-"\x52\x4e\x0a\x09\x2d\x74\x79\x70\x65\x20\x58\x09\x09\x46\x69\x6c" \
-"\x65\x20\x74\x79\x70\x65\x20\x69\x73\x20\x58\x20\x28\x6f\x6e\x65" \
-"\x20\x6f\x66\x3a\x20\x66\x2c\x64\x2c\x6c\x2c\x62\x2c\x63\x2c\x2e" \
-"\x2e\x2e\x29\x0a\x09\x2d\x70\x65\x72\x6d\x20\x4d\x41\x53\x4b\x09" \
-"\x41\x74\x20\x6c\x65\x61\x73\x74\x20\x6f\x6e\x65\x20\x6d\x61\x73" \
-"\x6b\x20\x62\x69\x74\x20\x28\x2b\x4d\x41\x53\x4b\x29\x2c\x20\x61" \
-"\x6c\x6c\x20\x62\x69\x74\x73\x20\x28\x2d\x4d\x41\x53\x4b\x29\x2c" \
-"\x0a\x09\x09\x09\x6f\x72\x20\x65\x78\x61\x63\x74\x6c\x79\x20\x4d" \
-"\x41\x53\x4b\x20\x62\x69\x74\x73\x20\x61\x72\x65\x20\x73\x65\x74" \
-"\x20\x69\x6e\x20\x66\x69\x6c\x65\x27\x73\x20\x6d\x6f\x64\x65\x0a" \
-"\x09\x2d\x6d\x74\x69\x6d\x65\x20\x44\x41\x59\x53\x09\x6d\x74\x69" \
-"\x6d\x65\x20\x69\x73\x20\x67\x72\x65\x61\x74\x65\x72\x20\x74\x68" \
-"\x61\x6e\x20\x28\x2b\x4e\x29\x2c\x20\x6c\x65\x73\x73\x20\x74\x68" \
-"\x61\x6e\x20\x28\x2d\x4e\x29\x2c\x0a\x09\x09\x09\x6f\x72\x20\x65" \
-"\x78\x61\x63\x74\x6c\x79\x20\x4e\x20\x64\x61\x79\x73\x20\x69\x6e" \
-"\x20\x74\x68\x65\x20\x70\x61\x73\x74\x0a\x09\x2d\x6d\x6d\x69\x6e" \
-"\x20\x4d\x49\x4e\x53\x09\x6d\x74\x69\x6d\x65\x20\x69\x73\x20\x67" \
-"\x72\x65\x61\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x28\x2b\x4e\x29" \
-"\x2c\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x28\x2d\x4e\x29" \
-"\x2c\x0a\x09\x09\x09\x6f\x72\x20\x65\x78\x61\x63\x74\x6c\x79\x20" \
-"\x4e\x20\x6d\x69\x6e\x75\x74\x65\x73\x20\x69\x6e\x20\x74\x68\x65" \
-"\x20\x70\x61\x73\x74\x0a\x09\x2d\x6e\x65\x77\x65\x72\x20\x46\x49" \
-"\x4c\x45\x09\x6d\x74\x69\x6d\x65\x20\x69\x73\x20\x6d\x6f\x72\x65" \
-"\x20\x72\x65\x63\x65\x6e\x74\x20\x74\x68\x61\x6e\x20\x46\x49\x4c" \
-"\x45\x27\x73\x0a\x09\x2d\x75\x73\x65\x72\x20\x4e\x41\x4d\x45\x2f" \
-"\x49\x44\x09\x46\x69\x6c\x65\x20\x69\x73\x20\x6f\x77\x6e\x65\x64" \
-"\x20\x62\x79\x20\x67\x69\x76\x65\x6e\x20\x75\x73\x65\x72\x0a\x09" \
-"\x2d\x67\x72\x6f\x75\x70\x20\x4e\x41\x4d\x45\x2f\x49\x44\x09\x46" \
-"\x69\x6c\x65\x20\x69\x73\x20\x6f\x77\x6e\x65\x64\x20\x62\x79\x20" \
-"\x67\x69\x76\x65\x6e\x20\x67\x72\x6f\x75\x70\x0a\x09\x2d\x73\x69" \
-"\x7a\x65\x20\x4e\x5b\x62\x63\x6b\x5d\x09\x46\x69\x6c\x65\x20\x73" \
-"\x69\x7a\x65\x20\x69\x73\x20\x4e\x20\x28\x63\x3a\x62\x79\x74\x65" \
-"\x73\x2c\x6b\x3a\x6b\x62\x79\x74\x65\x73\x2c\x62\x3a\x35\x31\x32" \
-"\x20\x62\x79\x74\x65\x73\x28\x64\x65\x66\x2e\x29\x29\x0a\x09\x09" \
-"\x09\x2b\x2f\x2d\x4e\x3a\x20\x66\x69\x6c\x65\x20\x73\x69\x7a\x65" \
-"\x20\x69\x73\x20\x62\x69\x67\x67\x65\x72\x2f\x73\x6d\x61\x6c\x6c" \
-"\x65\x72\x20\x74\x68\x61\x6e\x20\x4e\x0a\x09\x2d\x70\x72\x75\x6e" \
-"\x65\x09\x09\x49\x66\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x66\x69" \
-"\x6c\x65\x20\x69\x73\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x2c" \
-"\x20\x64\x6f\x6e\x27\x74\x20\x64\x65\x73\x63\x65\x6e\x64\x20\x69" \
-"\x6e\x74\x6f\x20\x69\x74\x0a\x49\x66\x20\x6e\x6f\x6e\x65\x20\x6f" \
-"\x66\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20" \
-"\x61\x63\x74\x69\x6f\x6e\x73\x20\x69\x73\x20\x73\x70\x65\x63\x69" \
-"\x66\x69\x65\x64\x2c\x20\x2d\x70\x72\x69\x6e\x74\x20\x69\x73\x20" \
-"\x61\x73\x73\x75\x6d\x65\x64\x0a\x09\x2d\x70\x72\x69\x6e\x74\x09" \
-"\x09\x50\x72\x69\x6e\x74\x20\x66\x69\x6c\x65\x20\x6e\x61\x6d\x65" \
-"\x0a\x09\x2d\x70\x72\x69\x6e\x74\x30\x09\x09\x50\x72\x69\x6e\x74" \
-"\x20\x66\x69\x6c\x65\x20\x6e\x61\x6d\x65\x2c\x20\x4e\x55\x4c\x20" \
-"\x74\x65\x72\x6d\x69\x6e\x61\x74\x65\x64\x0a\x09\x2d\x65\x78\x65" \
-"\x63\x20\x43\x4d\x44\x20\x41\x52\x47\x20\x3b\x09\x52\x75\x6e\x20" \
-"\x43\x4d\x44\x20\x77\x69\x74\x68\x20\x61\x6c\x6c\x20\x69\x6e\x73" \
-"\x74\x61\x6e\x63\x65\x73\x20\x6f\x66\x20\x7b\x7d\x20\x72\x65\x70" \
-"\x6c\x61\x63\x65\x64\x20\x62\x79\x0a\x09\x09\x09\x66\x69\x6c\x65" \
-"\x20\x6e\x61\x6d\x65\x2e\x20\x46\x61\x69\x6c\x73\x20\x69\x66\x20" \
-"\x43\x4d\x44\x20\x65\x78\x69\x74\x73\x20\x77\x69\x74\x68\x20\x6e" \
-"\x6f\x6e\x7a\x65\x72\x6f\x00\x5b\x2d\x62\x73\x5d\x20\x5b\x2d\x77" \
-"\x20\x57\x49\x44\x54\x48\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x57\x72\x61\x70\x20\x69\x6e\x70\x75\x74\x20\x6c\x69" \
-"\x6e\x65\x73\x20\x69\x6e\x20\x65\x61\x63\x68\x20\x46\x49\x4c\x45" \
-"\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x2c\x20\x77\x72\x69" \
-"\x74\x69\x6e\x67\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x0a" \
-"\x09\x2d\x62\x09\x43\x6f\x75\x6e\x74\x20\x62\x79\x74\x65\x73\x20" \
-"\x72\x61\x74\x68\x65\x72\x20\x74\x68\x61\x6e\x20\x63\x6f\x6c\x75" \
-"\x6d\x6e\x73\x0a\x09\x2d\x73\x09\x42\x72\x65\x61\x6b\x20\x61\x74" \
-"\x20\x73\x70\x61\x63\x65\x73\x0a\x09\x2d\x77\x09\x55\x73\x65\x20" \
-"\x57\x49\x44\x54\x48\x20\x63\x6f\x6c\x75\x6d\x6e\x73\x20\x69\x6e" \
-"\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x38\x30\x00\x0a\x0a\x44\x69" \
-"\x73\x70\x6c\x61\x79\x20\x74\x68\x65\x20\x61\x6d\x6f\x75\x6e\x74" \
-"\x20\x6f\x66\x20\x66\x72\x65\x65\x20\x61\x6e\x64\x20\x75\x73\x65" \
-"\x64\x20\x73\x79\x73\x74\x65\x6d\x20\x6d\x65\x6d\x6f\x72\x79\x00" \
-"\x44\x45\x56\x49\x43\x45\x0a\x0a\x46\x72\x65\x65\x20\x61\x6c\x6c" \
-"\x20\x6d\x65\x6d\x6f\x72\x79\x20\x75\x73\x65\x64\x20\x62\x79\x20" \
-"\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x72\x61" \
-"\x6d\x64\x69\x73\x6b\x00\x5b\x4f\x70\x74\x69\x6f\x6e\x73\x5d\x20" \
-"\x3c\x6d\x6f\x75\x6e\x74\x70\x6f\x69\x6e\x74\x3e\x0a\x0a\x4f\x70" \
-"\x74\x69\x6f\x6e\x73\x3a\x0a\x09\x2d\x6f\x2c\x2d\x2d\x6f\x66\x66" \
-"\x73\x65\x74\x3d\x6f\x66\x66\x73\x65\x74\x09\x6f\x66\x66\x73\x65" \
-"\x74\x20\x69\x6e\x20\x62\x79\x74\x65\x73\x20\x74\x6f\x20\x64\x69" \
-"\x73\x63\x61\x72\x64\x20\x66\x72\x6f\x6d\x0a\x09\x2d\x6c\x2c\x2d" \
-"\x2d\x6c\x65\x6e\x67\x74\x68\x3d\x6c\x65\x6e\x67\x74\x68\x09\x6c" \
-"\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x62\x79\x74\x65\x73\x20\x74" \
-"\x6f\x20\x64\x69\x73\x63\x61\x72\x64\x20\x66\x72\x6f\x6d\x20\x74" \
-"\x68\x65\x20\x6f\x66\x66\x73\x65\x74\x0a\x09\x2d\x6d\x2c\x2d\x2d" \
-"\x6d\x69\x6e\x69\x6d\x75\x6d\x3d\x6d\x69\x6e\x69\x6d\x75\x6d\x09" \
-"\x6d\x69\x6e\x69\x6d\x75\x6d\x20\x65\x78\x74\x65\x6e\x74\x20\x6c" \
-"\x65\x6e\x67\x74\x68\x20\x74\x6f\x20\x64\x69\x73\x63\x61\x72\x64" \
-"\x0a\x09\x2d\x76\x2c\x2d\x2d\x76\x65\x72\x62\x6f\x73\x65\x09\x09" \
-"\x70\x72\x69\x6e\x74\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20" \
-"\x64\x69\x73\x63\x61\x72\x64\x65\x64\x20\x62\x79\x74\x65\x73\x00" \
-"\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x46\x49\x4c\x45\x20\x6f" \
-"\x72\x20\x50\x4f\x52\x54\x2f\x50\x52\x4f\x54\x4f\x0a\x0a\x46\x69" \
-"\x6e\x64\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x20\x77\x68\x69" \
-"\x63\x68\x20\x75\x73\x65\x20\x46\x49\x4c\x45\x73\x20\x6f\x72\x20" \
-"\x50\x4f\x52\x54\x73\x0a\x0a\x09\x2d\x6d\x09\x46\x69\x6e\x64\x20" \
-"\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x20\x77\x68\x69\x63\x68\x20" \
-"\x75\x73\x65\x20\x73\x61\x6d\x65\x20\x66\x73\x20\x61\x73\x20\x46" \
-"\x49\x4c\x45\x73\x0a\x09\x2d\x34\x2c\x2d\x36\x09\x53\x65\x61\x72" \
-"\x63\x68\x20\x6f\x6e\x6c\x79\x20\x49\x50\x76\x34\x2f\x49\x50\x76" \
-"\x36\x20\x73\x70\x61\x63\x65\x0a\x09\x2d\x73\x09\x44\x6f\x6e\x27" \
-"\x74\x20\x64\x69\x73\x70\x6c\x61\x79\x20\x50\x49\x44\x73\x0a\x09" \
-"\x2d\x6b\x09\x4b\x69\x6c\x6c\x20\x66\x6f\x75\x6e\x64\x20\x70\x72" \
-"\x6f\x63\x65\x73\x73\x65\x73\x0a\x09\x2d\x53\x49\x47\x4e\x41\x4c" \
-"\x09\x53\x69\x67\x6e\x61\x6c\x20\x74\x6f\x20\x73\x65\x6e\x64\x20" \
-"\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x4b\x49\x4c\x4c\x29\x00" \
-"\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x2d\x2d\x5d\x20\x4f" \
-"\x50\x54\x53\x54\x52\x49\x4e\x47\x20\x50\x41\x52\x41\x4d\x53\x0a" \
-"\x0a\x09\x2d\x61\x2c\x2d\x2d\x61\x6c\x74\x65\x72\x6e\x61\x74\x69" \
-"\x76\x65\x09\x09\x41\x6c\x6c\x6f\x77\x20\x6c\x6f\x6e\x67\x20\x6f" \
-"\x70\x74\x69\x6f\x6e\x73\x20\x73\x74\x61\x72\x74\x69\x6e\x67\x20" \
-"\x77\x69\x74\x68\x20\x73\x69\x6e\x67\x6c\x65\x20\x2d\x0a\x09\x2d" \
-"\x6c\x2c\x2d\x2d\x6c\x6f\x6e\x67\x6f\x70\x74\x69\x6f\x6e\x73\x3d" \
-"\x4c\x4f\x50\x54\x5b\x2c\x2e\x2e\x2e\x5d\x09\x4c\x6f\x6e\x67\x20" \
-"\x6f\x70\x74\x69\x6f\x6e\x73\x20\x74\x6f\x20\x62\x65\x20\x72\x65" \
-"\x63\x6f\x67\x6e\x69\x7a\x65\x64\x0a\x09\x2d\x6e\x2c\x2d\x2d\x6e" \
-"\x61\x6d\x65\x3d\x50\x52\x4f\x47\x4e\x41\x4d\x45\x09\x09\x54\x68" \
-"\x65\x20\x6e\x61\x6d\x65\x20\x75\x6e\x64\x65\x72\x20\x77\x68\x69" \
-"\x63\x68\x20\x65\x72\x72\x6f\x72\x73\x20\x61\x72\x65\x20\x72\x65" \
-"\x70\x6f\x72\x74\x65\x64\x0a\x09\x2d\x6f\x2c\x2d\x2d\x6f\x70\x74" \
-"\x69\x6f\x6e\x73\x3d\x4f\x50\x54\x53\x54\x52\x49\x4e\x47\x09\x09" \
-"\x53\x68\x6f\x72\x74\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x74\x6f" \
-"\x20\x62\x65\x20\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\x0a\x09" \
-"\x2d\x71\x2c\x2d\x2d\x71\x75\x69\x65\x74\x09\x09\x09\x44\x69\x73" \
-"\x61\x62\x6c\x65\x20\x65\x72\x72\x6f\x72\x20\x72\x65\x70\x6f\x72" \
-"\x74\x69\x6e\x67\x20\x62\x79\x20\x67\x65\x74\x6f\x70\x74\x28\x33" \
-"\x29\x0a\x09\x2d\x51\x2c\x2d\x2d\x71\x75\x69\x65\x74\x2d\x6f\x75" \
-"\x74\x70\x75\x74\x09\x09\x4e\x6f\x20\x6e\x6f\x72\x6d\x61\x6c\x20" \
-"\x6f\x75\x74\x70\x75\x74\x0a\x09\x2d\x73\x2c\x2d\x2d\x73\x68\x65" \
-"\x6c\x6c\x3d\x53\x48\x45\x4c\x4c\x09\x09\x53\x65\x74\x20\x73\x68" \
-"\x65\x6c\x6c\x20\x71\x75\x6f\x74\x69\x6e\x67\x20\x63\x6f\x6e\x76" \
-"\x65\x6e\x74\x69\x6f\x6e\x73\x0a\x09\x2d\x54\x2c\x2d\x2d\x74\x65" \
-"\x73\x74\x09\x09\x09\x54\x65\x73\x74\x20\x66\x6f\x72\x20\x67\x65" \
-"\x74\x6f\x70\x74\x28\x31\x29\x20\x76\x65\x72\x73\x69\x6f\x6e\x0a" \
-"\x09\x2d\x75\x2c\x2d\x2d\x75\x6e\x71\x75\x6f\x74\x65\x64\x09\x09" \
-"\x09\x44\x6f\x6e\x27\x74\x20\x71\x75\x6f\x74\x65\x20\x74\x68\x65" \
-"\x20\x6f\x75\x74\x70\x75\x74\x0a\x0a\x45\x78\x61\x6d\x70\x6c\x65" \
-"\x3a\x0a\x0a\x4f\x3d\x60\x67\x65\x74\x6f\x70\x74\x20\x2d\x6c\x20" \
-"\x62\x62\x3a\x20\x2d\x2d\x20\x61\x62\x3a\x63\x3a\x3a\x20\x22\x24" \
-"\x40\x22\x60\x20\x7c\x7c\x20\x65\x78\x69\x74\x20\x31\x0a\x65\x76" \
-"\x61\x6c\x20\x73\x65\x74\x20\x2d\x2d\x20\x22\x24\x4f\x22\x0a\x77" \
-"\x68\x69\x6c\x65\x20\x74\x72\x75\x65\x3b\x20\x64\x6f\x0a\x09\x63" \
-"\x61\x73\x65\x20\x22\x24\x31\x22\x20\x69\x6e\x0a\x09\x2d\x61\x29" \
-"\x09\x65\x63\x68\x6f\x20\x41\x3b\x20\x73\x68\x69\x66\x74\x3b\x3b" \
-"\x0a\x09\x2d\x62\x7c\x2d\x2d\x62\x62\x29\x20\x65\x63\x68\x6f\x20" \
-"\x22\x42\x3a\x27\x24\x32\x27\x22\x3b\x20\x73\x68\x69\x66\x74\x20" \
-"\x32\x3b\x3b\x0a\x09\x2d\x63\x29\x09\x63\x61\x73\x65\x20\x22\x24" \
-"\x32\x22\x20\x69\x6e\x0a\x09\x09\x22\x22\x29\x09\x65\x63\x68\x6f" \
-"\x20\x43\x3b\x20\x73\x68\x69\x66\x74\x20\x32\x3b\x3b\x0a\x09\x09" \
-"\x2a\x29\x09\x65\x63\x68\x6f\x20\x22\x43\x3a\x27\x24\x32\x27\x22" \
-"\x3b\x20\x73\x68\x69\x66\x74\x20\x32\x3b\x3b\x0a\x09\x09\x65\x73" \
-"\x61\x63\x3b\x3b\x0a\x09\x2d\x2d\x29\x09\x73\x68\x69\x66\x74\x3b" \
-"\x20\x62\x72\x65\x61\x6b\x3b\x3b\x0a\x09\x2a\x29\x09\x65\x63\x68" \
-"\x6f\x20\x45\x72\x72\x6f\x72\x3b\x20\x65\x78\x69\x74\x20\x31\x3b" \
-"\x3b\x0a\x09\x65\x73\x61\x63\x0a\x64\x6f\x6e\x65\x00\x5b\x2d\x48" \
-"\x68\x6e\x6c\x4c\x6f\x71\x76\x73\x72\x69\x77\x46\x45\x5d\x20\x5b" \
-"\x2d\x6d\x20\x4e\x5d\x20\x5b\x2d\x41\x2f\x42\x2f\x43\x20\x4e\x5d" \
-"\x20\x50\x41\x54\x54\x45\x52\x4e\x2f\x2d\x65\x20\x50\x41\x54\x54" \
-"\x45\x52\x4e\x2e\x2e\x2e\x2f\x2d\x66\x20\x46\x49\x4c\x45\x20\x5b" \
-"\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x53\x65\x61\x72\x63\x68" \
-"\x20\x66\x6f\x72\x20\x50\x41\x54\x54\x45\x52\x4e\x20\x69\x6e\x20" \
-"\x46\x49\x4c\x45\x73\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29" \
-"\x0a\x0a\x09\x2d\x48\x09\x41\x64\x64\x20\x27\x66\x69\x6c\x65\x6e" \
-"\x61\x6d\x65\x3a\x27\x20\x70\x72\x65\x66\x69\x78\x0a\x09\x2d\x68" \
-"\x09\x44\x6f\x20\x6e\x6f\x74\x20\x61\x64\x64\x20\x27\x66\x69\x6c" \
-"\x65\x6e\x61\x6d\x65\x3a\x27\x20\x70\x72\x65\x66\x69\x78\x0a\x09" \
-"\x2d\x6e\x09\x41\x64\x64\x20\x27\x6c\x69\x6e\x65\x5f\x6e\x6f\x3a" \
-"\x27\x20\x70\x72\x65\x66\x69\x78\x0a\x09\x2d\x6c\x09\x53\x68\x6f" \
-"\x77\x20\x6f\x6e\x6c\x79\x20\x6e\x61\x6d\x65\x73\x20\x6f\x66\x20" \
-"\x66\x69\x6c\x65\x73\x20\x74\x68\x61\x74\x20\x6d\x61\x74\x63\x68" \
-"\x0a\x09\x2d\x4c\x09\x53\x68\x6f\x77\x20\x6f\x6e\x6c\x79\x20\x6e" \
-"\x61\x6d\x65\x73\x20\x6f\x66\x20\x66\x69\x6c\x65\x73\x20\x74\x68" \
-"\x61\x74\x20\x64\x6f\x6e\x27\x74\x20\x6d\x61\x74\x63\x68\x0a\x09" \
-"\x2d\x63\x09\x53\x68\x6f\x77\x20\x6f\x6e\x6c\x79\x20\x63\x6f\x75" \
-"\x6e\x74\x20\x6f\x66\x20\x6d\x61\x74\x63\x68\x69\x6e\x67\x20\x6c" \
-"\x69\x6e\x65\x73\x0a\x09\x2d\x6f\x09\x53\x68\x6f\x77\x20\x6f\x6e" \
-"\x6c\x79\x20\x74\x68\x65\x20\x6d\x61\x74\x63\x68\x69\x6e\x67\x20" \
-"\x70\x61\x72\x74\x20\x6f\x66\x20\x6c\x69\x6e\x65\x0a\x09\x2d\x71" \
-"\x09\x51\x75\x69\x65\x74\x2e\x20\x52\x65\x74\x75\x72\x6e\x20\x30" \
-"\x20\x69\x66\x20\x50\x41\x54\x54\x45\x52\x4e\x20\x69\x73\x20\x66" \
-"\x6f\x75\x6e\x64\x2c\x20\x31\x20\x6f\x74\x68\x65\x72\x77\x69\x73" \
-"\x65\x0a\x09\x2d\x76\x09\x53\x65\x6c\x65\x63\x74\x20\x6e\x6f\x6e" \
-"\x2d\x6d\x61\x74\x63\x68\x69\x6e\x67\x20\x6c\x69\x6e\x65\x73\x0a" \
-"\x09\x2d\x73\x09\x53\x75\x70\x70\x72\x65\x73\x73\x20\x6f\x70\x65" \
-"\x6e\x20\x61\x6e\x64\x20\x72\x65\x61\x64\x20\x65\x72\x72\x6f\x72" \
-"\x73\x0a\x09\x2d\x72\x09\x52\x65\x63\x75\x72\x73\x65\x0a\x09\x2d" \
-"\x69\x09\x49\x67\x6e\x6f\x72\x65\x20\x63\x61\x73\x65\x0a\x09\x2d" \
-"\x77\x09\x4d\x61\x74\x63\x68\x20\x77\x68\x6f\x6c\x65\x20\x77\x6f" \
-"\x72\x64\x73\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x78\x09\x4d\x61\x74" \
-"\x63\x68\x20\x77\x68\x6f\x6c\x65\x20\x6c\x69\x6e\x65\x73\x20\x6f" \
-"\x6e\x6c\x79\x0a\x09\x2d\x46\x09\x50\x41\x54\x54\x45\x52\x4e\x20" \
-"\x69\x73\x20\x61\x20\x6c\x69\x74\x65\x72\x61\x6c\x20\x28\x6e\x6f" \
-"\x74\x20\x72\x65\x67\x65\x78\x70\x29\x0a\x09\x2d\x45\x09\x50\x41" \
-"\x54\x54\x45\x52\x4e\x20\x69\x73\x20\x61\x6e\x20\x65\x78\x74\x65" \
-"\x6e\x64\x65\x64\x20\x72\x65\x67\x65\x78\x70\x0a\x09\x2d\x6d\x20" \
-"\x4e\x09\x4d\x61\x74\x63\x68\x20\x75\x70\x20\x74\x6f\x20\x4e\x20" \
-"\x74\x69\x6d\x65\x73\x20\x70\x65\x72\x20\x66\x69\x6c\x65\x0a\x09" \
-"\x2d\x41\x20\x4e\x09\x50\x72\x69\x6e\x74\x20\x4e\x20\x6c\x69\x6e" \
-"\x65\x73\x20\x6f\x66\x20\x74\x72\x61\x69\x6c\x69\x6e\x67\x20\x63" \
-"\x6f\x6e\x74\x65\x78\x74\x0a\x09\x2d\x42\x20\x4e\x09\x50\x72\x69" \
-"\x6e\x74\x20\x4e\x20\x6c\x69\x6e\x65\x73\x20\x6f\x66\x20\x6c\x65" \
-"\x61\x64\x69\x6e\x67\x20\x63\x6f\x6e\x74\x65\x78\x74\x0a\x09\x2d" \
-"\x43\x20\x4e\x09\x53\x61\x6d\x65\x20\x61\x73\x20\x27\x2d\x41\x20" \
-"\x4e\x20\x2d\x42\x20\x4e\x27\x0a\x09\x2d\x65\x20\x50\x54\x52\x4e" \
-"\x09\x50\x61\x74\x74\x65\x72\x6e\x20\x74\x6f\x20\x6d\x61\x74\x63" \
-"\x68\x0a\x09\x2d\x66\x20\x46\x49\x4c\x45\x09\x52\x65\x61\x64\x20" \
-"\x70\x61\x74\x74\x65\x72\x6e\x20\x66\x72\x6f\x6d\x20\x66\x69\x6c" \
-"\x65\x00\x5b\x55\x53\x45\x52\x5d\x0a\x0a\x50\x72\x69\x6e\x74\x20" \
-"\x74\x68\x65\x20\x67\x72\x6f\x75\x70\x20\x6d\x65\x6d\x62\x65\x72" \
-"\x73\x68\x69\x70\x73\x20\x6f\x66\x20\x55\x53\x45\x52\x20\x6f\x72" \
-"\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74" \
-"\x20\x70\x72\x6f\x63\x65\x73\x73\x00\x5b\x2d\x63\x66\x74\x5d\x20" \
-"\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65\x63\x6f\x6d" \
-"\x70\x72\x65\x73\x73\x20\x46\x49\x4c\x45\x73\x20\x28\x6f\x72\x20" \
-"\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d\x63\x09\x57\x72\x69\x74" \
-"\x65\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09" \
-"\x46\x6f\x72\x63\x65\x0a\x09\x2d\x74\x09\x54\x65\x73\x74\x20\x66" \
-"\x69\x6c\x65\x20\x69\x6e\x74\x65\x67\x72\x69\x74\x79\x00\x5b\x2d" \
-"\x63\x66\x64\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a" \
-"\x43\x6f\x6d\x70\x72\x65\x73\x73\x20\x46\x49\x4c\x45\x73\x20\x28" \
-"\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x0a\x0a\x09\x2d\x64\x09\x44" \
-"\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x0a\x09\x2d\x63\x09\x57\x72" \
-"\x69\x74\x65\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d" \
-"\x66\x09\x46\x6f\x72\x63\x65\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53" \
-"\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69" \
-"\x6e\x74\x20\x66\x69\x72\x73\x74\x20\x31\x30\x20\x6c\x69\x6e\x65" \
-"\x73\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x46\x49\x4c\x45\x20\x28" \
-"\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x74\x6f\x20\x73\x74\x64" \
-"\x6f\x75\x74\x2e\x0a\x57\x69\x74\x68\x20\x6d\x6f\x72\x65\x20\x74" \
-"\x68\x61\x6e\x20\x6f\x6e\x65\x20\x46\x49\x4c\x45\x2c\x20\x70\x72" \
-"\x65\x63\x65\x64\x65\x20\x65\x61\x63\x68\x20\x77\x69\x74\x68\x20" \
-"\x61\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x68\x65\x61\x64\x65" \
-"\x72\x2e\x0a\x0a\x09\x2d\x6e\x20\x4e\x5b\x6b\x62\x6d\x5d\x09\x50" \
-"\x72\x69\x6e\x74\x20\x66\x69\x72\x73\x74\x20\x4e\x20\x6c\x69\x6e" \
-"\x65\x73\x0a\x0a\x4e\x20\x6d\x61\x79\x20\x62\x65\x20\x73\x75\x66" \
-"\x66\x69\x78\x65\x64\x20\x62\x79\x20\x6b\x20\x28\x78\x31\x30\x32" \
-"\x34\x29\x2c\x20\x62\x20\x28\x78\x35\x31\x32\x29\x2c\x20\x6f\x72" \
-"\x20\x6d\x20\x28\x78\x31\x30\x32\x34\x5e\x32\x29\x2e\x00\x5b\x2d" \
-"\x62\x63\x43\x64\x65\x66\x6e\x6f\x73\x76\x78\x5d\x20\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20" \
-"\x46\x49\x4c\x45\x73\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29" \
-"\x20\x69\x6e\x20\x61\x20\x75\x73\x65\x72\x20\x73\x70\x65\x63\x69" \
-"\x66\x69\x65\x64\x20\x66\x6f\x72\x6d\x61\x74\x0a\x0a\x09\x2d\x62" \
-"\x09\x09\x4f\x6e\x65\x2d\x62\x79\x74\x65\x20\x6f\x63\x74\x61\x6c" \
-"\x20\x64\x69\x73\x70\x6c\x61\x79\x0a\x09\x2d\x63\x09\x09\x4f\x6e" \
-"\x65\x2d\x62\x79\x74\x65\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72" \
-"\x20\x64\x69\x73\x70\x6c\x61\x79\x0a\x09\x2d\x43\x09\x09\x43\x61" \
-"\x6e\x6f\x6e\x69\x63\x61\x6c\x20\x68\x65\x78\x2b\x41\x53\x43\x49" \
-"\x49\x2c\x20\x31\x36\x20\x62\x79\x74\x65\x73\x20\x70\x65\x72\x20" \
-"\x6c\x69\x6e\x65\x0a\x09\x2d\x64\x09\x09\x54\x77\x6f\x2d\x62\x79" \
-"\x74\x65\x20\x64\x65\x63\x69\x6d\x61\x6c\x20\x64\x69\x73\x70\x6c" \
-"\x61\x79\x0a\x09\x2d\x65\x20\x46\x4f\x52\x4d\x41\x54\x5f\x53\x54" \
-"\x52\x49\x4e\x47\x0a\x09\x2d\x66\x20\x46\x4f\x52\x4d\x41\x54\x5f" \
-"\x46\x49\x4c\x45\x0a\x09\x2d\x6e\x20\x4c\x45\x4e\x47\x54\x48\x09" \
-"\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x20\x6f\x6e\x6c\x79\x20\x4c" \
-"\x45\x4e\x47\x54\x48\x20\x62\x79\x74\x65\x73\x20\x6f\x66\x20\x69" \
-"\x6e\x70\x75\x74\x0a\x09\x2d\x6f\x09\x09\x54\x77\x6f\x2d\x62\x79" \
-"\x74\x65\x20\x6f\x63\x74\x61\x6c\x20\x64\x69\x73\x70\x6c\x61\x79" \
-"\x0a\x09\x2d\x73\x20\x4f\x46\x46\x53\x45\x54\x09\x53\x6b\x69\x70" \
-"\x20\x4f\x46\x46\x53\x45\x54\x20\x62\x79\x74\x65\x73\x0a\x09\x2d" \
-"\x76\x09\x09\x44\x69\x73\x70\x6c\x61\x79\x20\x61\x6c\x6c\x20\x69" \
-"\x6e\x70\x75\x74\x20\x64\x61\x74\x61\x0a\x09\x2d\x78\x09\x09\x54" \
-"\x77\x6f\x2d\x62\x79\x74\x65\x20\x68\x65\x78\x61\x64\x65\x63\x69" \
-"\x6d\x61\x6c\x20\x64\x69\x73\x70\x6c\x61\x79\x00\x5b\x4f\x50\x54" \
-"\x49\x4f\x4e\x53\x5d\x20\x5b\x55\x53\x45\x52\x5d\x0a\x0a\x50\x72" \
-"\x69\x6e\x74\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x20" \
-"\x61\x62\x6f\x75\x74\x20\x55\x53\x45\x52\x20\x6f\x72\x20\x74\x68" \
-"\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x75\x73\x65\x72\x0a\x0a" \
-"\x09\x2d\x75\x09\x55\x73\x65\x72\x20\x49\x44\x0a\x09\x2d\x67\x09" \
-"\x47\x72\x6f\x75\x70\x20\x49\x44\x0a\x09\x2d\x47\x09\x53\x75\x70" \
-"\x70\x6c\x65\x6d\x65\x6e\x74\x61\x72\x79\x20\x67\x72\x6f\x75\x70" \
-"\x20\x49\x44\x73\x0a\x09\x2d\x6e\x09\x50\x72\x69\x6e\x74\x20\x6e" \
-"\x61\x6d\x65\x73\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20" \
-"\x6e\x75\x6d\x62\x65\x72\x73\x0a\x09\x2d\x72\x09\x50\x72\x69\x6e" \
-"\x74\x20\x72\x65\x61\x6c\x20\x49\x44\x20\x69\x6e\x73\x74\x65\x61" \
-"\x64\x20\x6f\x66\x20\x65\x66\x66\x65\x63\x74\x69\x76\x65\x20\x49" \
-"\x44\x00\x5b\x2d\x71\x66\x77\x72\x73\x76\x5d\x20\x4d\x4f\x44\x55" \
-"\x4c\x45\x20\x5b\x73\x79\x6d\x62\x6f\x6c\x3d\x76\x61\x6c\x75\x65" \
-"\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x72\x09\x52\x65\x6d\x6f\x76\x65" \
-"\x20\x4d\x4f\x44\x55\x4c\x45\x20\x28\x73\x74\x61\x63\x6b\x73\x29" \
-"\x20\x6f\x72\x20\x64\x6f\x20\x61\x75\x74\x6f\x63\x6c\x65\x61\x6e" \
-"\x0a\x09\x2d\x71\x09\x51\x75\x69\x65\x74\x0a\x09\x2d\x76\x09\x56" \
-"\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65" \
-"\x0a\x09\x2d\x77\x09\x57\x61\x69\x74\x20\x66\x6f\x72\x20\x75\x6e" \
-"\x6c\x6f\x61\x64\x0a\x09\x2d\x73\x09\x52\x65\x70\x6f\x72\x74\x20" \
-"\x76\x69\x61\x20\x73\x79\x73\x6c\x6f\x67\x20\x69\x6e\x73\x74\x65" \
-"\x61\x64\x20\x6f\x66\x20\x73\x74\x64\x65\x72\x72\x00\x5b\x2d\x63" \
-"\x64\x44\x73\x70\x5d\x20\x5b\x2d\x6f\x20\x55\x53\x45\x52\x5d\x20" \
-"\x5b\x2d\x67\x20\x47\x52\x50\x5d\x20\x5b\x2d\x6d\x20\x4d\x4f\x44" \
-"\x45\x5d\x20\x5b\x53\x4f\x55\x52\x43\x45\x5d\x2e\x2e\x2e\x20\x44" \
-"\x45\x53\x54\x0a\x0a\x43\x6f\x70\x79\x20\x66\x69\x6c\x65\x73\x20" \
-"\x61\x6e\x64\x20\x73\x65\x74\x20\x61\x74\x74\x72\x69\x62\x75\x74" \
-"\x65\x73\x0a\x0a\x09\x2d\x63\x09\x4a\x75\x73\x74\x20\x63\x6f\x70" \
-"\x79\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x64\x09" \
-"\x43\x72\x65\x61\x74\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69" \
-"\x65\x73\x0a\x09\x2d\x44\x09\x43\x72\x65\x61\x74\x65\x20\x6c\x65" \
-"\x61\x64\x69\x6e\x67\x20\x74\x61\x72\x67\x65\x74\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x09\x2d\x73\x09\x53\x74\x72" \
-"\x69\x70\x20\x73\x79\x6d\x62\x6f\x6c\x20\x74\x61\x62\x6c\x65\x0a" \
-"\x09\x2d\x70\x09\x50\x72\x65\x73\x65\x72\x76\x65\x20\x64\x61\x74" \
-"\x65\x0a\x09\x2d\x6f\x20\x55\x53\x45\x52\x09\x53\x65\x74\x20\x6f" \
-"\x77\x6e\x65\x72\x73\x68\x69\x70\x0a\x09\x2d\x67\x20\x47\x52\x50" \
-"\x09\x53\x65\x74\x20\x67\x72\x6f\x75\x70\x20\x6f\x77\x6e\x65\x72" \
-"\x73\x68\x69\x70\x0a\x09\x2d\x6d\x20\x4d\x4f\x44\x45\x09\x53\x65" \
-"\x74\x20\x70\x65\x72\x6d\x69\x73\x73\x69\x6f\x6e\x73\x00\x5b\x2d" \
-"\x6c\x5d\x20\x5b\x2d\x53\x49\x47\x5d\x20\x50\x49\x44\x2e\x2e\x2e" \
-"\x0a\x0a\x53\x65\x6e\x64\x20\x61\x20\x73\x69\x67\x6e\x61\x6c\x20" \
-"\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x54\x45\x52\x4d\x29\x20" \
-"\x74\x6f\x20\x67\x69\x76\x65\x6e\x20\x50\x49\x44\x73\x0a\x0a\x09" \
-"\x2d\x6c\x09\x4c\x69\x73\x74\x20\x61\x6c\x6c\x20\x73\x69\x67\x6e" \
-"\x61\x6c\x20\x6e\x61\x6d\x65\x73\x20\x61\x6e\x64\x20\x6e\x75\x6d" \
-"\x62\x65\x72\x73\x00\x5b\x2d\x6c\x5d\x20\x5b\x2d\x71\x5d\x20\x5b" \
-"\x2d\x53\x49\x47\x5d\x20\x50\x52\x4f\x43\x45\x53\x53\x5f\x4e\x41" \
-"\x4d\x45\x2e\x2e\x2e\x0a\x0a\x53\x65\x6e\x64\x20\x61\x20\x73\x69" \
-"\x67\x6e\x61\x6c\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x54" \
-"\x45\x52\x4d\x29\x20\x74\x6f\x20\x67\x69\x76\x65\x6e\x20\x70\x72" \
-"\x6f\x63\x65\x73\x73\x65\x73\x0a\x0a\x09\x2d\x6c\x09\x4c\x69\x73" \
-"\x74\x20\x61\x6c\x6c\x20\x73\x69\x67\x6e\x61\x6c\x20\x6e\x61\x6d" \
-"\x65\x73\x20\x61\x6e\x64\x20\x6e\x75\x6d\x62\x65\x72\x73\x0a\x09" \
-"\x2d\x71\x09\x44\x6f\x6e\x27\x74\x20\x63\x6f\x6d\x70\x6c\x61\x69" \
-"\x6e\x20\x69\x66\x20\x6e\x6f\x20\x70\x72\x6f\x63\x65\x73\x73\x65" \
-"\x73\x20\x77\x65\x72\x65\x20\x6b\x69\x6c\x6c\x65\x64\x00\x5b\x2d" \
-"\x6c\x5d\x20\x5b\x2d\x53\x49\x47\x5d\x20\x5b\x2d\x6f\x20\x50\x49" \
-"\x44\x5d\x2e\x2e\x2e\x0a\x0a\x53\x65\x6e\x64\x20\x61\x20\x73\x69" \
-"\x67\x6e\x61\x6c\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x54" \
-"\x45\x52\x4d\x29\x20\x74\x6f\x20\x61\x6c\x6c\x20\x70\x72\x6f\x63" \
-"\x65\x73\x73\x65\x73\x20\x6f\x75\x74\x73\x69\x64\x65\x20\x63\x75" \
-"\x72\x72\x65\x6e\x74\x20\x73\x65\x73\x73\x69\x6f\x6e\x0a\x0a\x09" \
-"\x2d\x6c\x09\x4c\x69\x73\x74\x20\x61\x6c\x6c\x20\x73\x69\x67\x6e" \
-"\x61\x6c\x20\x6e\x61\x6d\x65\x73\x20\x61\x6e\x64\x20\x6e\x75\x6d" \
-"\x62\x65\x72\x73\x0a\x09\x2d\x6f\x20\x50\x49\x44\x09\x44\x6f\x6e" \
-"\x27\x74\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x69\x73\x20\x50" \
-"\x49\x44\x00\x5b\x2d\x45\x4e\x68\x7e\x49\x3f\x5d\x20\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x56\x69\x65\x77\x20\x46\x49\x4c" \
-"\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x6f\x6e\x65" \
-"\x20\x73\x63\x72\x65\x65\x6e\x66\x75\x6c\x20\x61\x74\x20\x61\x20" \
-"\x74\x69\x6d\x65\x0a\x0a\x09\x2d\x45\x09\x51\x75\x69\x74\x20\x6f" \
-"\x6e\x63\x65\x20\x74\x68\x65\x20\x65\x6e\x64\x20\x6f\x66\x20\x61" \
-"\x20\x66\x69\x6c\x65\x20\x69\x73\x20\x72\x65\x61\x63\x68\x65\x64" \
-"\x0a\x09\x2d\x4e\x09\x50\x72\x65\x66\x69\x78\x20\x6c\x69\x6e\x65" \
-"\x20\x6e\x75\x6d\x62\x65\x72\x20\x74\x6f\x20\x65\x61\x63\x68\x20" \
-"\x6c\x69\x6e\x65\x0a\x09\x2d\x49\x09\x49\x67\x6e\x6f\x72\x65\x20" \
-"\x63\x61\x73\x65\x20\x69\x6e\x20\x61\x6c\x6c\x20\x73\x65\x61\x72" \
-"\x63\x68\x65\x73\x0a\x09\x2d\x7e\x09\x53\x75\x70\x70\x72\x65\x73" \
-"\x73\x20\x7e\x73\x20\x64\x69\x73\x70\x6c\x61\x79\x65\x64\x20\x70" \
-"\x61\x73\x74\x20\x45\x4f\x46\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53" \
-"\x5d\x20\x54\x41\x52\x47\x45\x54\x2e\x2e\x2e\x20\x4c\x49\x4e\x4b" \
-"\x7c\x44\x49\x52\x0a\x0a\x43\x72\x65\x61\x74\x65\x20\x61\x20\x6c" \
-"\x69\x6e\x6b\x20\x4c\x49\x4e\x4b\x20\x6f\x72\x20\x44\x49\x52\x2f" \
-"\x54\x41\x52\x47\x45\x54\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x70" \
-"\x65\x63\x69\x66\x69\x65\x64\x20\x54\x41\x52\x47\x45\x54\x28\x73" \
-"\x29\x0a\x0a\x09\x2d\x73\x09\x4d\x61\x6b\x65\x20\x73\x79\x6d\x6c" \
-"\x69\x6e\x6b\x73\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20" \
-"\x68\x61\x72\x64\x6c\x69\x6e\x6b\x73\x0a\x09\x2d\x66\x09\x52\x65" \
-"\x6d\x6f\x76\x65\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x64\x65" \
-"\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x73\x0a\x09\x2d\x6e\x09\x44" \
-"\x6f\x6e\x27\x74\x20\x64\x65\x72\x65\x66\x65\x72\x65\x6e\x63\x65" \
-"\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x2d\x20\x74\x72\x65\x61" \
-"\x74\x20\x6c\x69\x6b\x65\x20\x6e\x6f\x72\x6d\x61\x6c\x20\x66\x69" \
-"\x6c\x65\x0a\x09\x2d\x62\x09\x4d\x61\x6b\x65\x20\x61\x20\x62\x61" \
-"\x63\x6b\x75\x70\x20\x6f\x66\x20\x74\x68\x65\x20\x74\x61\x72\x67" \
-"\x65\x74\x20\x28\x69\x66\x20\x65\x78\x69\x73\x74\x73\x29\x20\x62" \
-"\x65\x66\x6f\x72\x65\x20\x6c\x69\x6e\x6b\x20\x6f\x70\x65\x72\x61" \
-"\x74\x69\x6f\x6e\x0a\x09\x2d\x53\x20\x73\x75\x66\x09\x55\x73\x65" \
-"\x20\x73\x75\x66\x66\x69\x78\x20\x69\x6e\x73\x74\x65\x61\x64\x20" \
-"\x6f\x66\x20\x7e\x20\x77\x68\x65\x6e\x20\x6d\x61\x6b\x69\x6e\x67" \
-"\x20\x62\x61\x63\x6b\x75\x70\x20\x66\x69\x6c\x65\x73\x0a\x09\x2d" \
-"\x54\x09\x32\x6e\x64\x20\x61\x72\x67\x20\x6d\x75\x73\x74\x20\x62" \
-"\x65\x20\x61\x20\x44\x49\x52\x0a\x09\x2d\x76\x09\x56\x65\x72\x62" \
-"\x6f\x73\x65\x00\x5b\x2d\x72\x5d\x20\x5b\x2d\x6f\x20\x4f\x46\x53" \
-"\x5d\x20\x4c\x4f\x4f\x50\x44\x45\x56\x20\x46\x49\x4c\x45\x20\x2d" \
-"\x20\x61\x73\x73\x6f\x63\x69\x61\x74\x65\x20\x6c\x6f\x6f\x70\x20" \
-"\x64\x65\x76\x69\x63\x65\x73\x0a\x09\x6c\x6f\x73\x65\x74\x75\x70" \
-"\x20\x2d\x64\x20\x4c\x4f\x4f\x50\x44\x45\x56\x20\x2d\x20\x64\x69" \
-"\x73\x61\x73\x73\x6f\x63\x69\x61\x74\x65\x0a\x09\x6c\x6f\x73\x65" \
-"\x74\x75\x70\x20\x5b\x2d\x66\x5d\x20\x2d\x20\x73\x68\x6f\x77\x0a" \
-"\x0a\x09\x2d\x6f\x20\x4f\x46\x53\x09\x53\x74\x61\x72\x74\x20\x4f" \
-"\x46\x53\x20\x62\x79\x74\x65\x73\x20\x69\x6e\x74\x6f\x20\x46\x49" \
-"\x4c\x45\x0a\x09\x2d\x72\x09\x52\x65\x61\x64\x2d\x6f\x6e\x6c\x79" \
-"\x0a\x09\x2d\x66\x09\x53\x68\x6f\x77\x20\x66\x69\x72\x73\x74\x20" \
-"\x66\x72\x65\x65\x20\x6c\x6f\x6f\x70\x20\x64\x65\x76\x69\x63\x65" \
-"\x00\x5b\x2d\x31\x41\x61\x43\x78\x64\x4c\x48\x52\x46\x70\x6c\x69" \
-"\x6e\x73\x65\x68\x72\x53\x58\x76\x63\x74\x75\x5d\x20\x5b\x2d\x77" \
-"\x20\x57\x49\x44\x54\x48\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x4c\x69\x73\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72" \
-"\x79\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x0a\x0a\x09\x2d\x31\x09" \
-"\x4f\x6e\x65\x20\x63\x6f\x6c\x75\x6d\x6e\x20\x6f\x75\x74\x70\x75" \
-"\x74\x0a\x09\x2d\x61\x09\x49\x6e\x63\x6c\x75\x64\x65\x20\x65\x6e" \
-"\x74\x72\x69\x65\x73\x20\x77\x68\x69\x63\x68\x20\x73\x74\x61\x72" \
-"\x74\x20\x77\x69\x74\x68\x20\x2e\x0a\x09\x2d\x41\x09\x4c\x69\x6b" \
-"\x65\x20\x2d\x61\x2c\x20\x62\x75\x74\x20\x65\x78\x63\x6c\x75\x64" \
-"\x65\x20\x2e\x20\x61\x6e\x64\x20\x2e\x2e\x0a\x09\x2d\x43\x09\x4c" \
-"\x69\x73\x74\x20\x62\x79\x20\x63\x6f\x6c\x75\x6d\x6e\x73\x0a\x09" \
-"\x2d\x78\x09\x4c\x69\x73\x74\x20\x62\x79\x20\x6c\x69\x6e\x65\x73" \
-"\x0a\x09\x2d\x64\x09\x4c\x69\x73\x74\x20\x64\x69\x72\x65\x63\x74" \
-"\x6f\x72\x79\x20\x65\x6e\x74\x72\x69\x65\x73\x20\x69\x6e\x73\x74" \
-"\x65\x61\x64\x20\x6f\x66\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x0a" \
-"\x09\x2d\x4c\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d\x6c\x69" \
-"\x6e\x6b\x73\x0a\x09\x2d\x48\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73" \
-"\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x6f\x6e\x20\x63\x6f\x6d\x6d\x61" \
-"\x6e\x64\x20\x6c\x69\x6e\x65\x0a\x09\x2d\x52\x09\x52\x65\x63\x75" \
-"\x72\x73\x65\x0a\x09\x2d\x70\x09\x41\x70\x70\x65\x6e\x64\x20\x2f" \
-"\x20\x74\x6f\x20\x64\x69\x72\x20\x65\x6e\x74\x72\x69\x65\x73\x0a" \
-"\x09\x2d\x46\x09\x41\x70\x70\x65\x6e\x64\x20\x69\x6e\x64\x69\x63" \
-"\x61\x74\x6f\x72\x20\x28\x6f\x6e\x65\x20\x6f\x66\x20\x2a\x2f\x3d" \
-"\x40\x7c\x29\x20\x74\x6f\x20\x65\x6e\x74\x72\x69\x65\x73\x0a\x09" \
-"\x2d\x6c\x09\x4c\x6f\x6e\x67\x20\x6c\x69\x73\x74\x69\x6e\x67\x20" \
-"\x66\x6f\x72\x6d\x61\x74\x0a\x09\x2d\x69\x09\x4c\x69\x73\x74\x20" \
-"\x69\x6e\x6f\x64\x65\x20\x6e\x75\x6d\x62\x65\x72\x73\x0a\x09\x2d" \
-"\x6e\x09\x4c\x69\x73\x74\x20\x6e\x75\x6d\x65\x72\x69\x63\x20\x55" \
-"\x49\x44\x73\x20\x61\x6e\x64\x20\x47\x49\x44\x73\x20\x69\x6e\x73" \
-"\x74\x65\x61\x64\x20\x6f\x66\x20\x6e\x61\x6d\x65\x73\x0a\x09\x2d" \
-"\x73\x09\x4c\x69\x73\x74\x20\x61\x6c\x6c\x6f\x63\x61\x74\x65\x64" \
-"\x20\x62\x6c\x6f\x63\x6b\x73\x0a\x09\x2d\x65\x09\x4c\x69\x73\x74" \
-"\x20\x66\x75\x6c\x6c\x20\x64\x61\x74\x65\x20\x61\x6e\x64\x20\x74" \
-"\x69\x6d\x65\x0a\x09\x2d\x68\x09\x4c\x69\x73\x74\x20\x73\x69\x7a" \
-"\x65\x73\x20\x69\x6e\x20\x68\x75\x6d\x61\x6e\x20\x72\x65\x61\x64" \
-"\x61\x62\x6c\x65\x20\x66\x6f\x72\x6d\x61\x74\x20\x28\x31\x4b\x20" \
-"\x32\x34\x33\x4d\x20\x32\x47\x29\x0a\x09\x2d\x72\x09\x53\x6f\x72" \
-"\x74\x20\x69\x6e\x20\x72\x65\x76\x65\x72\x73\x65\x20\x6f\x72\x64" \
-"\x65\x72\x0a\x09\x2d\x53\x09\x53\x6f\x72\x74\x20\x62\x79\x20\x73" \
-"\x69\x7a\x65\x0a\x09\x2d\x58\x09\x53\x6f\x72\x74\x20\x62\x79\x20" \
-"\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x0a\x09\x2d\x76\x09\x53\x6f" \
-"\x72\x74\x20\x62\x79\x20\x76\x65\x72\x73\x69\x6f\x6e\x0a\x09\x2d" \
-"\x63\x09\x57\x69\x74\x68\x20\x2d\x6c\x3a\x20\x73\x6f\x72\x74\x20" \
-"\x62\x79\x20\x63\x74\x69\x6d\x65\x0a\x09\x2d\x74\x09\x57\x69\x74" \
-"\x68\x20\x2d\x6c\x3a\x20\x73\x6f\x72\x74\x20\x62\x79\x20\x6d\x74" \
-"\x69\x6d\x65\x0a\x09\x2d\x75\x09\x57\x69\x74\x68\x20\x2d\x6c\x3a" \
-"\x20\x73\x6f\x72\x74\x20\x62\x79\x20\x61\x74\x69\x6d\x65\x0a\x09" \
-"\x2d\x77\x20\x4e\x09\x41\x73\x73\x75\x6d\x65\x20\x74\x68\x65\x20" \
-"\x74\x65\x72\x6d\x69\x6e\x61\x6c\x20\x69\x73\x20\x4e\x20\x63\x6f" \
-"\x6c\x75\x6d\x6e\x73\x20\x77\x69\x64\x65\x0a\x09\x2d\x2d\x63\x6f" \
-"\x6c\x6f\x72\x5b\x3d\x7b\x61\x6c\x77\x61\x79\x73\x2c\x6e\x65\x76" \
-"\x65\x72\x2c\x61\x75\x74\x6f\x7d\x5d\x09\x43\x6f\x6e\x74\x72\x6f" \
-"\x6c\x20\x63\x6f\x6c\x6f\x72\x69\x6e\x67\x00\x5b\x2d\x52\x61\x64" \
-"\x6c\x76\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x4c" \
-"\x69\x73\x74\x20\x66\x69\x6c\x65\x20\x61\x74\x74\x72\x69\x62\x75" \
-"\x74\x65\x73\x20\x6f\x6e\x20\x61\x6e\x20\x65\x78\x74\x32\x20\x66" \
-"\x73\x0a\x0a\x09\x2d\x52\x09\x52\x65\x63\x75\x72\x73\x65\x0a\x09" \
-"\x2d\x61\x09\x44\x6f\x6e\x27\x74\x20\x68\x69\x64\x65\x20\x65\x6e" \
-"\x74\x72\x69\x65\x73\x20\x73\x74\x61\x72\x74\x69\x6e\x67\x20\x77" \
-"\x69\x74\x68\x20\x2e\x0a\x09\x2d\x64\x09\x4c\x69\x73\x74\x20\x64" \
-"\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x65\x6e\x74\x72\x69\x65\x73" \
-"\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x63\x6f\x6e\x74" \
-"\x65\x6e\x74\x73\x0a\x09\x2d\x6c\x09\x4c\x69\x73\x74\x20\x6c\x6f" \
-"\x6e\x67\x20\x66\x6c\x61\x67\x20\x6e\x61\x6d\x65\x73\x0a\x09\x2d" \
-"\x76\x09\x4c\x69\x73\x74\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x27" \
-"\x73\x20\x76\x65\x72\x73\x69\x6f\x6e\x2f\x67\x65\x6e\x65\x72\x61" \
-"\x74\x69\x6f\x6e\x20\x6e\x75\x6d\x62\x65\x72\x00\x5b\x2d\x71\x66" \
-"\x77\x72\x73\x76\x5d\x20\x4d\x4f\x44\x55\x4c\x45\x20\x5b\x73\x79" \
-"\x6d\x62\x6f\x6c\x3d\x76\x61\x6c\x75\x65\x5d\x2e\x2e\x2e\x0a\x0a" \
-"\x09\x2d\x72\x09\x52\x65\x6d\x6f\x76\x65\x20\x4d\x4f\x44\x55\x4c" \
-"\x45\x20\x28\x73\x74\x61\x63\x6b\x73\x29\x20\x6f\x72\x20\x64\x6f" \
-"\x20\x61\x75\x74\x6f\x63\x6c\x65\x61\x6e\x0a\x09\x2d\x71\x09\x51" \
-"\x75\x69\x65\x74\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65" \
-"\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x0a\x09\x2d\x77\x09\x57" \
-"\x61\x69\x74\x20\x66\x6f\x72\x20\x75\x6e\x6c\x6f\x61\x64\x0a\x09" \
-"\x2d\x73\x09\x52\x65\x70\x6f\x72\x74\x20\x76\x69\x61\x20\x73\x79" \
-"\x73\x6c\x6f\x67\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20" \
-"\x73\x74\x64\x65\x72\x72\x00\x0a\x0a\x53\x68\x6f\x77\x20\x61\x6c" \
-"\x6c\x20\x6f\x70\x65\x6e\x20\x66\x69\x6c\x65\x73\x00\x5b\x2d\x6d" \
-"\x6b\x5d\x0a\x0a\x4c\x69\x73\x74\x20\x61\x6c\x6c\x20\x50\x43\x49" \
-"\x20\x64\x65\x76\x69\x63\x65\x73\x0a\x0a\x09\x2d\x6d\x09\x50\x61" \
-"\x72\x73\x61\x62\x6c\x65\x20\x6f\x75\x74\x70\x75\x74\x0a\x09\x2d" \
-"\x6b\x09\x53\x68\x6f\x77\x20\x64\x72\x69\x76\x65\x72\x00\x08\x00" \
-"\x46\x49\x4c\x45\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73" \
-"\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x00\x5b\x2d\x63\x66\x76" \
-"\x64\x31\x32\x33\x34\x35\x36\x37\x38\x39\x43\x46\x5d\x20\x5b\x46" \
-"\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x31\x2e\x2e\x39\x09" \
-"\x43\x6f\x6d\x70\x72\x65\x73\x73\x69\x6f\x6e\x20\x6c\x65\x76\x65" \
-"\x6c\x0a\x09\x2d\x64\x09\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73" \
-"\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20\x74\x6f\x20\x73\x74" \
-"\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x0a\x09" \
-"\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x46\x09\x44" \
-"\x6f\x6e\x27\x74\x20\x73\x74\x6f\x72\x65\x20\x6f\x72\x20\x76\x65" \
-"\x72\x69\x66\x79\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x0a\x09\x2d" \
-"\x43\x09\x41\x6c\x73\x6f\x20\x77\x72\x69\x74\x65\x20\x63\x68\x65" \
-"\x63\x6b\x73\x75\x6d\x20\x6f\x66\x20\x63\x6f\x6d\x70\x72\x65\x73" \
-"\x73\x65\x64\x20\x62\x6c\x6f\x63\x6b\x00\x5b\x2d\x76\x43\x46\x5d" \
-"\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x76\x09" \
-"\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x46\x09\x44\x6f\x6e\x27" \
-"\x74\x20\x73\x74\x6f\x72\x65\x20\x6f\x72\x20\x76\x65\x72\x69\x66" \
-"\x79\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x00\x5b\x2d\x64\x20\x64" \
-"\x65\x76\x69\x63\x65\x5f\x74\x61\x62\x6c\x65\x5d\x20\x72\x6f\x6f" \
-"\x74\x64\x69\x72\x0a\x0a\x43\x72\x65\x61\x74\x65\x20\x61\x20\x72" \
-"\x61\x6e\x67\x65\x20\x6f\x66\x20\x73\x70\x65\x63\x69\x61\x6c\x20" \
-"\x66\x69\x6c\x65\x73\x20\x61\x73\x20\x73\x70\x65\x63\x69\x66\x69" \
-"\x65\x64\x20\x69\x6e\x20\x61\x20\x64\x65\x76\x69\x63\x65\x20\x74" \
-"\x61\x62\x6c\x65\x2e\x0a\x44\x65\x76\x69\x63\x65\x20\x74\x61\x62" \
-"\x6c\x65\x20\x65\x6e\x74\x72\x69\x65\x73\x20\x74\x61\x6b\x65\x20" \
-"\x74\x68\x65\x20\x66\x6f\x72\x6d\x20\x6f\x66\x3a\x0a\x3c\x6e\x61" \
-"\x6d\x65\x3e\x20\x3c\x74\x79\x70\x65\x3e\x20\x3c\x6d\x6f\x64\x65" \
-"\x3e\x20\x3c\x75\x69\x64\x3e\x20\x3c\x67\x69\x64\x3e\x20\x3c\x6d" \
-"\x61\x6a\x6f\x72\x3e\x20\x3c\x6d\x69\x6e\x6f\x72\x3e\x20\x3c\x73" \
-"\x74\x61\x72\x74\x3e\x20\x3c\x69\x6e\x63\x3e\x20\x3c\x63\x6f\x75" \
-"\x6e\x74\x3e\x0a\x57\x68\x65\x72\x65\x20\x6e\x61\x6d\x65\x20\x69" \
-"\x73\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x6e\x61\x6d\x65\x2c" \
-"\x20\x74\x79\x70\x65\x20\x63\x61\x6e\x20\x62\x65\x20\x6f\x6e\x65" \
-"\x20\x6f\x66\x3a\x0a\x09\x66\x09\x52\x65\x67\x75\x6c\x61\x72\x20" \
-"\x66\x69\x6c\x65\x0a\x09\x64\x09\x44\x69\x72\x65\x63\x74\x6f\x72" \
-"\x79\x0a\x09\x63\x09\x43\x68\x61\x72\x61\x63\x74\x65\x72\x20\x64" \
-"\x65\x76\x69\x63\x65\x0a\x09\x62\x09\x42\x6c\x6f\x63\x6b\x20\x64" \
-"\x65\x76\x69\x63\x65\x0a\x09\x70\x09\x46\x69\x66\x6f\x20\x28\x6e" \
-"\x61\x6d\x65\x64\x20\x70\x69\x70\x65\x29\x0a\x75\x69\x64\x20\x69" \
-"\x73\x20\x74\x68\x65\x20\x75\x73\x65\x72\x20\x69\x64\x20\x66\x6f" \
-"\x72\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x66\x69\x6c" \
-"\x65\x2c\x20\x67\x69\x64\x20\x69\x73\x20\x74\x68\x65\x20\x67\x72" \
-"\x6f\x75\x70\x20\x69\x64\x20\x66\x6f\x72\x20\x74\x68\x65\x0a\x74" \
-"\x61\x72\x67\x65\x74\x20\x66\x69\x6c\x65\x2e\x20\x54\x68\x65\x20" \
-"\x72\x65\x73\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x65\x6e\x74\x72" \
-"\x69\x65\x73\x20\x28\x6d\x61\x6a\x6f\x72\x2c\x20\x6d\x69\x6e\x6f" \
-"\x72\x2c\x20\x65\x74\x63\x29\x20\x61\x70\x70\x6c\x79\x20\x74\x6f" \
-"\x0a\x74\x6f\x20\x64\x65\x76\x69\x63\x65\x20\x73\x70\x65\x63\x69" \
-"\x61\x6c\x20\x66\x69\x6c\x65\x73\x2e\x20\x41\x20\x27\x2d\x27\x20" \
-"\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x20" \
-"\x62\x6c\x61\x6e\x6b\x20\x65\x6e\x74\x72\x69\x65\x73\x2e\x00\x5b" \
-"\x2d\x63\x5b\x73\x77\x5d\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x6f\x72\x20\x63\x68\x65\x63" \
-"\x6b\x20\x4d\x44\x35\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x73\x0a" \
-"\x0a\x09\x2d\x63\x09\x43\x68\x65\x63\x6b\x20\x73\x75\x6d\x73\x20" \
-"\x61\x67\x61\x69\x6e\x73\x74\x20\x6c\x69\x73\x74\x20\x69\x6e\x20" \
-"\x46\x49\x4c\x45\x73\x0a\x09\x2d\x73\x09\x44\x6f\x6e\x27\x74\x20" \
-"\x6f\x75\x74\x70\x75\x74\x20\x61\x6e\x79\x74\x68\x69\x6e\x67\x2c" \
-"\x20\x73\x74\x61\x74\x75\x73\x20\x63\x6f\x64\x65\x20\x73\x68\x6f" \
-"\x77\x73\x20\x73\x75\x63\x63\x65\x73\x73\x0a\x09\x2d\x77\x09\x57" \
-"\x61\x72\x6e\x20\x61\x62\x6f\x75\x74\x20\x69\x6d\x70\x72\x6f\x70" \
-"\x65\x72\x6c\x79\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x64\x20\x63" \
-"\x68\x65\x63\x6b\x73\x75\x6d\x20\x6c\x69\x6e\x65\x73\x00\x5b\x4f" \
-"\x50\x54\x49\x4f\x4e\x53\x5d\x20\x44\x49\x52\x45\x43\x54\x4f\x52" \
-"\x59\x2e\x2e\x2e\x0a\x0a\x43\x72\x65\x61\x74\x65\x20\x44\x49\x52" \
-"\x45\x43\x54\x4f\x52\x59\x0a\x0a\x09\x2d\x6d\x20\x4d\x4f\x44\x45" \
-"\x09\x4d\x6f\x64\x65\x0a\x09\x2d\x70\x09\x4e\x6f\x20\x65\x72\x72" \
-"\x6f\x72\x20\x69\x66\x20\x65\x78\x69\x73\x74\x73\x3b\x20\x6d\x61" \
-"\x6b\x65\x20\x70\x61\x72\x65\x6e\x74\x20\x64\x69\x72\x65\x63\x74" \
-"\x6f\x72\x69\x65\x73\x20\x61\x73\x20\x6e\x65\x65\x64\x65\x64\x00" \
-"\x5b\x2d\x76\x5d\x20\x5b\x2d\x6e\x20\x4c\x41\x42\x45\x4c\x5d\x20" \
-"\x42\x4c\x4f\x43\x4b\x44\x45\x56\x20\x5b\x4b\x42\x59\x54\x45\x53" \
-"\x5d\x0a\x0a\x4d\x61\x6b\x65\x20\x61\x20\x46\x41\x54\x33\x32\x20" \
-"\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x0a\x0a\x09\x2d\x76\x09" \
-"\x56\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x6e\x20\x4c\x42\x4c\x09" \
-"\x56\x6f\x6c\x75\x6d\x65\x20\x6c\x61\x62\x65\x6c\x00\x5b\x2d\x46" \
-"\x6e\x5d\x20\x5b\x2d\x62\x20\x42\x4c\x4b\x5f\x53\x49\x5a\x45\x5d" \
-"\x20\x5b\x2d\x69\x20\x49\x4e\x4f\x44\x45\x5f\x52\x41\x54\x49\x4f" \
-"\x5d\x20\x5b\x2d\x49\x20\x49\x4e\x4f\x44\x45\x5f\x53\x49\x5a\x45" \
-"\x5d\x20\x5b\x2d\x6d\x20\x52\x45\x53\x45\x52\x56\x45\x44\x5f\x50" \
-"\x45\x52\x43\x45\x4e\x54\x5d\x20\x5b\x2d\x4c\x20\x4c\x41\x42\x45" \
-"\x4c\x5d\x20\x42\x4c\x4f\x43\x4b\x44\x45\x56\x20\x5b\x4b\x42\x59" \
-"\x54\x45\x53\x5d\x0a\x0a\x09\x2d\x62\x20\x42\x4c\x4b\x5f\x53\x49" \
-"\x5a\x45\x09\x42\x6c\x6f\x63\x6b\x20\x73\x69\x7a\x65\x2c\x20\x62" \
-"\x79\x74\x65\x73\x0a\x09\x2d\x46\x09\x09\x46\x6f\x72\x63\x65\x0a" \
-"\x09\x2d\x69\x20\x52\x41\x54\x49\x4f\x09\x4d\x61\x78\x20\x6e\x75" \
-"\x6d\x62\x65\x72\x20\x6f\x66\x20\x66\x69\x6c\x65\x73\x20\x69\x73" \
-"\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x5f\x73\x69\x7a\x65" \
-"\x20\x2f\x20\x52\x41\x54\x49\x4f\x0a\x09\x2d\x49\x20\x42\x59\x54" \
-"\x45\x53\x09\x49\x6e\x6f\x64\x65\x20\x73\x69\x7a\x65\x20\x28\x6d" \
-"\x69\x6e\x20\x31\x32\x38\x29\x0a\x09\x2d\x4c\x20\x4c\x42\x4c\x09" \
-"\x09\x56\x6f\x6c\x75\x6d\x65\x20\x6c\x61\x62\x65\x6c\x0a\x09\x2d" \
-"\x6d\x20\x50\x45\x52\x43\x45\x4e\x54\x09\x50\x65\x72\x63\x65\x6e" \
-"\x74\x20\x6f\x66\x20\x62\x6c\x6f\x63\x6b\x73\x20\x74\x6f\x20\x72" \
-"\x65\x73\x65\x72\x76\x65\x20\x66\x6f\x72\x20\x61\x64\x6d\x69\x6e" \
-"\x0a\x09\x2d\x6e\x09\x09\x44\x72\x79\x20\x72\x75\x6e\x00\x5b\x2d" \
-"\x6d\x20\x4d\x4f\x44\x45\x5d\x20\x4e\x41\x4d\x45\x0a\x0a\x43\x72" \
-"\x65\x61\x74\x65\x20\x6e\x61\x6d\x65\x64\x20\x70\x69\x70\x65\x0a" \
-"\x0a\x09\x2d\x6d\x20\x4d\x4f\x44\x45\x09\x4d\x6f\x64\x65\x20\x28" \
-"\x64\x65\x66\x61\x75\x6c\x74\x20\x61\x3d\x72\x77\x29\x00\x5b\x2d" \
-"\x46\x6e\x5d\x20\x5b\x2d\x62\x20\x42\x4c\x4b\x5f\x53\x49\x5a\x45" \
-"\x5d\x20\x5b\x2d\x69\x20\x49\x4e\x4f\x44\x45\x5f\x52\x41\x54\x49" \
-"\x4f\x5d\x20\x5b\x2d\x49\x20\x49\x4e\x4f\x44\x45\x5f\x53\x49\x5a" \
-"\x45\x5d\x20\x5b\x2d\x6d\x20\x52\x45\x53\x45\x52\x56\x45\x44\x5f" \
-"\x50\x45\x52\x43\x45\x4e\x54\x5d\x20\x5b\x2d\x4c\x20\x4c\x41\x42" \
-"\x45\x4c\x5d\x20\x42\x4c\x4f\x43\x4b\x44\x45\x56\x20\x5b\x4b\x42" \
-"\x59\x54\x45\x53\x5d\x0a\x0a\x09\x2d\x62\x20\x42\x4c\x4b\x5f\x53" \
-"\x49\x5a\x45\x09\x42\x6c\x6f\x63\x6b\x20\x73\x69\x7a\x65\x2c\x20" \
-"\x62\x79\x74\x65\x73\x0a\x09\x2d\x46\x09\x09\x46\x6f\x72\x63\x65" \
-"\x0a\x09\x2d\x69\x20\x52\x41\x54\x49\x4f\x09\x4d\x61\x78\x20\x6e" \
-"\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x66\x69\x6c\x65\x73\x20\x69" \
-"\x73\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x5f\x73\x69\x7a" \
-"\x65\x20\x2f\x20\x52\x41\x54\x49\x4f\x0a\x09\x2d\x49\x20\x42\x59" \
-"\x54\x45\x53\x09\x49\x6e\x6f\x64\x65\x20\x73\x69\x7a\x65\x20\x28" \
-"\x6d\x69\x6e\x20\x31\x32\x38\x29\x0a\x09\x2d\x4c\x20\x4c\x42\x4c" \
-"\x09\x09\x56\x6f\x6c\x75\x6d\x65\x20\x6c\x61\x62\x65\x6c\x0a\x09" \
-"\x2d\x6d\x20\x50\x45\x52\x43\x45\x4e\x54\x09\x50\x65\x72\x63\x65" \
-"\x6e\x74\x20\x6f\x66\x20\x62\x6c\x6f\x63\x6b\x73\x20\x74\x6f\x20" \
-"\x72\x65\x73\x65\x72\x76\x65\x20\x66\x6f\x72\x20\x61\x64\x6d\x69" \
-"\x6e\x0a\x09\x2d\x6e\x09\x09\x44\x72\x79\x20\x72\x75\x6e\x00\x5b" \
-"\x2d\x76\x5d\x20\x5b\x2d\x6e\x20\x4c\x41\x42\x45\x4c\x5d\x20\x42" \
-"\x4c\x4f\x43\x4b\x44\x45\x56\x20\x5b\x4b\x42\x59\x54\x45\x53\x5d" \
-"\x0a\x0a\x4d\x61\x6b\x65\x20\x61\x20\x46\x41\x54\x33\x32\x20\x66" \
-"\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x0a\x0a\x09\x2d\x76\x09\x56" \
-"\x65\x72\x62\x6f\x73\x65\x0a\x09\x2d\x6e\x20\x4c\x42\x4c\x09\x56" \
-"\x6f\x6c\x75\x6d\x65\x20\x6c\x61\x62\x65\x6c\x00\x5b\x2d\x6d\x20" \
-"\x4d\x4f\x44\x45\x5d\x20\x4e\x41\x4d\x45\x20\x54\x59\x50\x45\x20" \
-"\x4d\x41\x4a\x4f\x52\x20\x4d\x49\x4e\x4f\x52\x0a\x0a\x43\x72\x65" \
-"\x61\x74\x65\x20\x61\x20\x73\x70\x65\x63\x69\x61\x6c\x20\x66\x69" \
-"\x6c\x65\x20\x28\x62\x6c\x6f\x63\x6b\x2c\x20\x63\x68\x61\x72\x61" \
-"\x63\x74\x65\x72\x2c\x20\x6f\x72\x20\x70\x69\x70\x65\x29\x0a\x0a" \
-"\x09\x2d\x6d\x20\x4d\x4f\x44\x45\x09\x43\x72\x65\x61\x74\x69\x6f" \
-"\x6e\x20\x6d\x6f\x64\x65\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20" \
-"\x61\x3d\x72\x77\x29\x0a\x54\x59\x50\x45\x3a\x0a\x09\x62\x09\x42" \
-"\x6c\x6f\x63\x6b\x20\x64\x65\x76\x69\x63\x65\x0a\x09\x63\x20\x6f" \
-"\x72\x20\x75\x09\x43\x68\x61\x72\x61\x63\x74\x65\x72\x20\x64\x65" \
-"\x76\x69\x63\x65\x0a\x09\x70\x09\x4e\x61\x6d\x65\x64\x20\x70\x69" \
-"\x70\x65\x20\x28\x4d\x41\x4a\x4f\x52\x20\x61\x6e\x64\x20\x4d\x49" \
-"\x4e\x4f\x52\x20\x61\x72\x65\x20\x69\x67\x6e\x6f\x72\x65\x64\x29" \
-"\x00\x5b\x2d\x4c\x20\x4c\x42\x4c\x5d\x20\x42\x4c\x4f\x43\x4b\x44" \
-"\x45\x56\x20\x5b\x4b\x42\x59\x54\x45\x53\x5d\x0a\x0a\x50\x72\x65" \
-"\x70\x61\x72\x65\x20\x42\x4c\x4f\x43\x4b\x44\x45\x56\x20\x74\x6f" \
-"\x20\x62\x65\x20\x75\x73\x65\x64\x20\x61\x73\x20\x73\x77\x61\x70" \
-"\x20\x70\x61\x72\x74\x69\x74\x69\x6f\x6e\x0a\x0a\x09\x2d\x4c\x20" \
-"\x4c\x42\x4c\x09\x4c\x61\x62\x65\x6c\x00\x5b\x2d\x64\x74\x5d\x20" \
-"\x5b\x2d\x70\x20\x44\x49\x52\x5d\x20\x5b\x54\x45\x4d\x50\x4c\x41" \
-"\x54\x45\x5d\x0a\x0a\x43\x72\x65\x61\x74\x65\x20\x61\x20\x74\x65" \
-"\x6d\x70\x6f\x72\x61\x72\x79\x20\x66\x69\x6c\x65\x20\x77\x69\x74" \
-"\x68\x20\x6e\x61\x6d\x65\x20\x62\x61\x73\x65\x64\x20\x6f\x6e\x20" \
-"\x54\x45\x4d\x50\x4c\x41\x54\x45\x20\x61\x6e\x64\x20\x70\x72\x69" \
-"\x6e\x74\x20\x69\x74\x73\x20\x6e\x61\x6d\x65\x2e\x0a\x54\x45\x4d" \
-"\x50\x4c\x41\x54\x45\x20\x6d\x75\x73\x74\x20\x65\x6e\x64\x20\x77" \
-"\x69\x74\x68\x20\x58\x58\x58\x58\x58\x58\x20\x28\x65\x2e\x67\x2e" \
-"\x20\x5b\x2f\x64\x69\x72\x2f\x5d\x6e\x61\x6d\x65\x58\x58\x58\x58" \
-"\x58\x58\x29\x2e\x0a\x57\x69\x74\x68\x6f\x75\x74\x20\x54\x45\x4d" \
-"\x50\x4c\x41\x54\x45\x2c\x20\x2d\x74\x20\x74\x6d\x70\x2e\x58\x58" \
-"\x58\x58\x58\x58\x20\x69\x73\x20\x61\x73\x73\x75\x6d\x65\x64\x2e" \
-"\x0a\x0a\x09\x2d\x64\x09\x4d\x61\x6b\x65\x20\x64\x69\x72\x65\x63" \
-"\x74\x6f\x72\x79\x2c\x20\x6e\x6f\x74\x20\x66\x69\x6c\x65\x0a\x09" \
-"\x2d\x71\x09\x46\x61\x69\x6c\x20\x73\x69\x6c\x65\x6e\x74\x6c\x79" \
-"\x20\x6f\x6e\x20\x65\x72\x72\x6f\x72\x73\x0a\x09\x2d\x74\x09\x50" \
-"\x72\x65\x70\x65\x6e\x64\x20\x62\x61\x73\x65\x20\x64\x69\x72\x65" \
-"\x63\x74\x6f\x72\x79\x20\x6e\x61\x6d\x65\x20\x74\x6f\x20\x54\x45" \
-"\x4d\x50\x4c\x41\x54\x45\x0a\x09\x2d\x70\x20\x44\x49\x52\x09\x55" \
-"\x73\x65\x20\x44\x49\x52\x20\x61\x73\x20\x61\x20\x62\x61\x73\x65" \
-"\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x28\x69\x6d\x70\x6c" \
-"\x69\x65\x73\x20\x2d\x74\x29\x0a\x09\x2d\x75\x09\x44\x6f\x20\x6e" \
-"\x6f\x74\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6e\x79\x74\x68\x69" \
-"\x6e\x67\x3b\x20\x70\x72\x69\x6e\x74\x20\x61\x20\x6e\x61\x6d\x65" \
-"\x0a\x0a\x42\x61\x73\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79" \
-"\x20\x69\x73\x3a\x20\x2d\x70\x20\x44\x49\x52\x2c\x20\x65\x6c\x73" \
-"\x65\x20\x24\x54\x4d\x50\x44\x49\x52\x2c\x20\x65\x6c\x73\x65\x20" \
-"\x2f\x74\x6d\x70\x00\x5b\x2d\x61\x64\x6c\x70\x30\x5d\x20\x5b\x2d" \
-"\x46\x20\x6b\x65\x79\x77\x6f\x72\x64\x5d\x20\x4d\x4f\x44\x55\x4c" \
-"\x45\x0a\x0a\x09\x2d\x61\x09\x09\x53\x68\x6f\x72\x74\x63\x75\x74" \
-"\x20\x66\x6f\x72\x20\x27\x2d\x46\x20\x61\x75\x74\x68\x6f\x72\x27" \
-"\x0a\x09\x2d\x64\x09\x09\x53\x68\x6f\x72\x74\x63\x75\x74\x20\x66" \
-"\x6f\x72\x20\x27\x2d\x46\x20\x64\x65\x73\x63\x72\x69\x70\x74\x69" \
-"\x6f\x6e\x27\x0a\x09\x2d\x6c\x09\x09\x53\x68\x6f\x72\x74\x63\x75" \
-"\x74\x20\x66\x6f\x72\x20\x27\x2d\x46\x20\x6c\x69\x63\x65\x6e\x73" \
-"\x65\x27\x0a\x09\x2d\x70\x09\x09\x53\x68\x6f\x72\x74\x63\x75\x74" \
-"\x20\x66\x6f\x72\x20\x27\x2d\x46\x20\x70\x61\x72\x6d\x27\x0a\x09" \
-"\x2d\x46\x20\x6b\x65\x79\x77\x6f\x72\x64\x09\x4b\x65\x79\x77\x6f" \
-"\x72\x64\x20\x74\x6f\x20\x6c\x6f\x6f\x6b\x20\x66\x6f\x72\x0a\x09" \
-"\x2d\x30\x09\x09\x53\x65\x70\x61\x72\x61\x74\x65\x20\x6f\x75\x74" \
-"\x70\x75\x74\x20\x77\x69\x74\x68\x20\x4e\x55\x4c\x73\x00\x5b\x2d" \
-"\x71\x66\x77\x72\x73\x76\x5d\x20\x4d\x4f\x44\x55\x4c\x45\x20\x5b" \
-"\x73\x79\x6d\x62\x6f\x6c\x3d\x76\x61\x6c\x75\x65\x5d\x2e\x2e\x2e" \
-"\x0a\x0a\x09\x2d\x72\x09\x52\x65\x6d\x6f\x76\x65\x20\x4d\x4f\x44" \
-"\x55\x4c\x45\x20\x28\x73\x74\x61\x63\x6b\x73\x29\x20\x6f\x72\x20" \
-"\x64\x6f\x20\x61\x75\x74\x6f\x63\x6c\x65\x61\x6e\x0a\x09\x2d\x71" \
-"\x09\x51\x75\x69\x65\x74\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f" \
-"\x73\x65\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x0a\x09\x2d\x77" \
-"\x09\x57\x61\x69\x74\x20\x66\x6f\x72\x20\x75\x6e\x6c\x6f\x61\x64" \
-"\x0a\x09\x2d\x73\x09\x52\x65\x70\x6f\x72\x74\x20\x76\x69\x61\x20" \
-"\x73\x79\x73\x6c\x6f\x67\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f" \
-"\x66\x20\x73\x74\x64\x65\x72\x72\x00\x5b\x46\x49\x4c\x45\x5d\x2e" \
-"\x2e\x2e\x0a\x0a\x56\x69\x65\x77\x20\x46\x49\x4c\x45\x20\x28\x6f" \
-"\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x6f\x6e\x65\x20\x73\x63\x72" \
-"\x65\x65\x6e\x66\x75\x6c\x20\x61\x74\x20\x61\x20\x74\x69\x6d\x65" \
-"\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x2d\x6f\x20\x4f" \
-"\x50\x54\x53\x5d\x20\x44\x45\x56\x49\x43\x45\x20\x4e\x4f\x44\x45" \
-"\x0a\x0a\x4d\x6f\x75\x6e\x74\x20\x61\x20\x66\x69\x6c\x65\x73\x79" \
-"\x73\x74\x65\x6d\x2e\x20\x46\x69\x6c\x65\x73\x79\x73\x74\x65\x6d" \
-"\x20\x61\x75\x74\x6f\x64\x65\x74\x65\x63\x74\x69\x6f\x6e\x20\x72" \
-"\x65\x71\x75\x69\x72\x65\x73\x20\x2f\x70\x72\x6f\x63\x2e\x0a\x0a" \
-"\x09\x2d\x61\x09\x09\x4d\x6f\x75\x6e\x74\x20\x61\x6c\x6c\x20\x66" \
-"\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x20\x69\x6e\x20\x66\x73" \
-"\x74\x61\x62\x0a\x09\x2d\x72\x09\x09\x52\x65\x61\x64\x2d\x6f\x6e" \
-"\x6c\x79\x20\x6d\x6f\x75\x6e\x74\x0a\x09\x2d\x77\x09\x09\x52\x65" \
-"\x61\x64\x2d\x77\x72\x69\x74\x65\x20\x6d\x6f\x75\x6e\x74\x20\x28" \
-"\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x74\x20\x46\x53\x54" \
-"\x59\x50\x45\x5b\x2c\x2e\x2e\x2e\x5d\x09\x46\x69\x6c\x65\x73\x79" \
-"\x73\x74\x65\x6d\x20\x74\x79\x70\x65\x28\x73\x29\x0a\x09\x2d\x4f" \
-"\x20\x4f\x50\x54\x09\x09\x4d\x6f\x75\x6e\x74\x20\x6f\x6e\x6c\x79" \
-"\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x73\x20\x77\x69\x74" \
-"\x68\x20\x6f\x70\x74\x69\x6f\x6e\x20\x4f\x50\x54\x20\x28\x2d\x61" \
-"\x20\x6f\x6e\x6c\x79\x29\x0a\x2d\x6f\x20\x4f\x50\x54\x3a\x0a\x09" \
-"\x6c\x6f\x6f\x70\x09\x09\x49\x67\x6e\x6f\x72\x65\x64\x20\x28\x6c" \
-"\x6f\x6f\x70\x20\x64\x65\x76\x69\x63\x65\x73\x20\x61\x72\x65\x20" \
-"\x61\x75\x74\x6f\x64\x65\x74\x65\x63\x74\x65\x64\x29\x0a\x09\x5b" \
-"\x61\x5d\x73\x79\x6e\x63\x09\x09\x57\x72\x69\x74\x65\x73\x20\x61" \
-"\x72\x65\x20\x5b\x61\x5d\x73\x79\x6e\x63\x68\x72\x6f\x6e\x6f\x75" \
-"\x73\x0a\x09\x5b\x6e\x6f\x5d\x61\x74\x69\x6d\x65\x09\x44\x69\x73" \
-"\x61\x62\x6c\x65\x2f\x65\x6e\x61\x62\x6c\x65\x20\x75\x70\x64\x61" \
-"\x74\x65\x73\x20\x74\x6f\x20\x69\x6e\x6f\x64\x65\x20\x61\x63\x63" \
-"\x65\x73\x73\x20\x74\x69\x6d\x65\x73\x0a\x09\x5b\x6e\x6f\x5d\x64" \
-"\x69\x72\x61\x74\x69\x6d\x65\x09\x44\x69\x73\x61\x62\x6c\x65\x2f" \
-"\x65\x6e\x61\x62\x6c\x65\x20\x61\x74\x69\x6d\x65\x20\x75\x70\x64" \
-"\x61\x74\x65\x73\x20\x74\x6f\x20\x64\x69\x72\x65\x63\x74\x6f\x72" \
-"\x69\x65\x73\x0a\x09\x5b\x6e\x6f\x5d\x72\x65\x6c\x61\x74\x69\x6d" \
-"\x65\x09\x44\x69\x73\x61\x62\x6c\x65\x2f\x65\x6e\x61\x62\x6c\x65" \
-"\x20\x61\x74\x69\x6d\x65\x20\x75\x70\x64\x61\x74\x65\x73\x20\x72" \
-"\x65\x6c\x61\x74\x69\x76\x65\x20\x74\x6f\x20\x6d\x6f\x64\x69\x66" \
-"\x69\x63\x61\x74\x69\x6f\x6e\x20\x74\x69\x6d\x65\x0a\x09\x5b\x6e" \
-"\x6f\x5d\x64\x65\x76\x09\x09\x28\x44\x69\x73\x29\x61\x6c\x6c\x6f" \
-"\x77\x20\x75\x73\x65\x20\x6f\x66\x20\x73\x70\x65\x63\x69\x61\x6c" \
-"\x20\x64\x65\x76\x69\x63\x65\x20\x66\x69\x6c\x65\x73\x0a\x09\x5b" \
-"\x6e\x6f\x5d\x65\x78\x65\x63\x09\x28\x44\x69\x73\x29\x61\x6c\x6c" \
-"\x6f\x77\x20\x75\x73\x65\x20\x6f\x66\x20\x65\x78\x65\x63\x75\x74" \
-"\x61\x62\x6c\x65\x20\x66\x69\x6c\x65\x73\x0a\x09\x5b\x6e\x6f\x5d" \
-"\x73\x75\x69\x64\x09\x28\x44\x69\x73\x29\x61\x6c\x6c\x6f\x77\x20" \
-"\x73\x65\x74\x2d\x75\x73\x65\x72\x2d\x69\x64\x2d\x72\x6f\x6f\x74" \
-"\x20\x70\x72\x6f\x67\x72\x61\x6d\x73\x0a\x09\x5b\x72\x5d\x73\x68" \
-"\x61\x72\x65\x64\x09\x43\x6f\x6e\x76\x65\x72\x74\x20\x5b\x72\x65" \
-"\x63\x75\x72\x73\x69\x76\x65\x6c\x79\x5d\x20\x74\x6f\x20\x61\x20" \
-"\x73\x68\x61\x72\x65\x64\x20\x73\x75\x62\x74\x72\x65\x65\x0a\x09" \
-"\x5b\x72\x5d\x73\x6c\x61\x76\x65\x09\x43\x6f\x6e\x76\x65\x72\x74" \
-"\x20\x5b\x72\x65\x63\x75\x72\x73\x69\x76\x65\x6c\x79\x5d\x20\x74" \
-"\x6f\x20\x61\x20\x73\x6c\x61\x76\x65\x20\x73\x75\x62\x74\x72\x65" \
-"\x65\x0a\x09\x5b\x72\x5d\x70\x72\x69\x76\x61\x74\x65\x09\x43\x6f" \
-"\x6e\x76\x65\x72\x74\x20\x5b\x72\x65\x63\x75\x72\x73\x69\x76\x65" \
-"\x6c\x79\x5d\x20\x74\x6f\x20\x61\x20\x70\x72\x69\x76\x61\x74\x65" \
-"\x20\x73\x75\x62\x74\x72\x65\x65\x0a\x09\x5b\x75\x6e\x5d\x62\x69" \
-"\x6e\x64\x61\x62\x6c\x65\x09\x4d\x61\x6b\x65\x20\x6d\x6f\x75\x6e" \
-"\x74\x20\x70\x6f\x69\x6e\x74\x20\x5b\x75\x6e\x5d\x61\x62\x6c\x65" \
-"\x20\x74\x6f\x20\x62\x65\x20\x62\x69\x6e\x64\x20\x6d\x6f\x75\x6e" \
-"\x74\x65\x64\x0a\x09\x5b\x72\x5d\x62\x69\x6e\x64\x09\x09\x42\x69" \
-"\x6e\x64\x20\x61\x20\x66\x69\x6c\x65\x20\x6f\x72\x20\x64\x69\x72" \
-"\x65\x63\x74\x6f\x72\x79\x20\x5b\x72\x65\x63\x75\x72\x73\x69\x76" \
-"\x65\x6c\x79\x5d\x20\x74\x6f\x20\x61\x6e\x6f\x74\x68\x65\x72\x20" \
-"\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x0a\x09\x6d\x6f\x76\x65\x09\x09" \
-"\x52\x65\x6c\x6f\x63\x61\x74\x65\x20\x61\x6e\x20\x65\x78\x69\x73" \
-"\x74\x69\x6e\x67\x20\x6d\x6f\x75\x6e\x74\x20\x70\x6f\x69\x6e\x74" \
-"\x0a\x09\x72\x65\x6d\x6f\x75\x6e\x74\x09\x09\x52\x65\x6d\x6f\x75" \
-"\x6e\x74\x20\x61\x20\x6d\x6f\x75\x6e\x74\x65\x64\x20\x66\x69\x6c" \
-"\x65\x73\x79\x73\x74\x65\x6d\x2c\x20\x63\x68\x61\x6e\x67\x69\x6e" \
-"\x67\x20\x66\x6c\x61\x67\x73\x0a\x09\x72\x6f\x2f\x72\x77\x09\x09" \
-"\x53\x61\x6d\x65\x20\x61\x73\x20\x2d\x72\x2f\x2d\x77\x0a\x0a\x54" \
-"\x68\x65\x72\x65\x20\x61\x72\x65\x20\x66\x69\x6c\x65\x73\x79\x73" \
-"\x74\x65\x6d\x2d\x73\x70\x65\x63\x69\x66\x69\x63\x20\x2d\x6f\x20" \
-"\x66\x6c\x61\x67\x73\x2e\x00\x5b\x2d\x71\x5d\x20\x3c\x5b\x2d\x64" \
-"\x6e\x5d\x20\x44\x49\x52\x20\x7c\x20\x2d\x78\x20\x44\x45\x56\x49" \
-"\x43\x45\x3e\x0a\x0a\x43\x68\x65\x63\x6b\x20\x69\x66\x20\x74\x68" \
-"\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x61" \
-"\x20\x6d\x6f\x75\x6e\x74\x70\x6f\x69\x6e\x74\x0a\x0a\x09\x2d\x71" \
-"\x09\x51\x75\x69\x65\x74\x0a\x09\x2d\x64\x09\x50\x72\x69\x6e\x74" \
-"\x20\x6d\x61\x6a\x6f\x72\x2f\x6d\x69\x6e\x6f\x72\x20\x64\x65\x76" \
-"\x69\x63\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x74\x68" \
-"\x65\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x0a\x09\x2d\x6e" \
-"\x09\x50\x72\x69\x6e\x74\x20\x64\x65\x76\x69\x63\x65\x20\x6e\x61" \
-"\x6d\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x73\x79" \
-"\x73\x74\x65\x6d\x0a\x09\x2d\x78\x09\x50\x72\x69\x6e\x74\x20\x6d" \
-"\x61\x6a\x6f\x72\x2f\x6d\x69\x6e\x6f\x72\x20\x64\x65\x76\x69\x63" \
-"\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x74\x68\x65\x20" \
-"\x62\x6c\x6f\x63\x6b\x64\x65\x76\x69\x63\x65\x00\x5b\x2d\x66\x69" \
-"\x6e\x5d\x20\x53\x4f\x55\x52\x43\x45\x20\x44\x45\x53\x54\x0a\x6f" \
-"\x72\x3a\x20\x6d\x76\x20\x5b\x2d\x66\x69\x6e\x5d\x20\x53\x4f\x55" \
-"\x52\x43\x45\x2e\x2e\x2e\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59" \
-"\x0a\x0a\x52\x65\x6e\x61\x6d\x65\x20\x53\x4f\x55\x52\x43\x45\x20" \
-"\x74\x6f\x20\x44\x45\x53\x54\x2c\x20\x6f\x72\x20\x6d\x6f\x76\x65" \
-"\x20\x53\x4f\x55\x52\x43\x45\x28\x73\x29\x20\x74\x6f\x20\x44\x49" \
-"\x52\x45\x43\x54\x4f\x52\x59\x0a\x0a\x09\x2d\x66\x09\x44\x6f\x6e" \
-"\x27\x74\x20\x70\x72\x6f\x6d\x70\x74\x20\x62\x65\x66\x6f\x72\x65" \
-"\x20\x6f\x76\x65\x72\x77\x72\x69\x74\x69\x6e\x67\x0a\x09\x2d\x69" \
-"\x09\x49\x6e\x74\x65\x72\x61\x63\x74\x69\x76\x65\x2c\x20\x70\x72" \
-"\x6f\x6d\x70\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x6f\x76\x65\x72" \
-"\x77\x72\x69\x74\x65\x0a\x09\x2d\x6e\x09\x44\x6f\x6e\x27\x74\x20" \
-"\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x20\x61\x6e\x20\x65\x78\x69" \
-"\x73\x74\x69\x6e\x67\x20\x66\x69\x6c\x65\x00\x5b\x2d\x6f\x5d\x20" \
-"\x5b\x2d\x62\x5d\x20\x5b\x2d\x73\x20\x41\x44\x44\x52\x5d\x20\x5b" \
-"\x2d\x66\x20\x46\x49\x4c\x45\x5d\x20\x4d\x54\x44\x5f\x44\x45\x56" \
-"\x49\x43\x45\x0a\x0a\x44\x75\x6d\x70\x20\x74\x68\x65\x20\x73\x70" \
-"\x65\x63\x69\x66\x69\x65\x64\x20\x4d\x54\x44\x20\x64\x65\x76\x69" \
-"\x63\x65\x0a\x0a\x09\x2d\x6f\x09\x44\x75\x6d\x70\x20\x6f\x6f\x62" \
-"\x20\x64\x61\x74\x61\x0a\x09\x2d\x62\x09\x4f\x6d\x69\x74\x20\x62" \
-"\x61\x64\x20\x62\x6c\x6f\x63\x6b\x20\x66\x72\x6f\x6d\x20\x74\x68" \
-"\x65\x20\x64\x75\x6d\x70\x0a\x09\x2d\x73\x20\x41\x44\x44\x52\x09" \
-"\x53\x74\x61\x72\x74\x20\x61\x64\x64\x72\x65\x73\x73\x0a\x09\x2d" \
-"\x6c\x20\x4c\x45\x4e\x09\x4c\x65\x6e\x67\x74\x68\x0a\x09\x2d\x66" \
-"\x20\x46\x49\x4c\x45\x09\x44\x75\x6d\x70\x20\x74\x6f\x20\x66\x69" \
-"\x6c\x65\x20\x28\x27\x2d\x27\x20\x66\x6f\x72\x20\x73\x74\x64\x6f" \
-"\x75\x74\x29\x00\x5b\x2d\x70\x5d\x20\x5b\x2d\x73\x20\x41\x44\x44" \
-"\x52\x5d\x20\x4d\x54\x44\x5f\x44\x45\x56\x49\x43\x45\x20\x5b\x46" \
-"\x49\x4c\x45\x5d\x0a\x0a\x57\x72\x69\x74\x65\x20\x74\x6f\x20\x74" \
-"\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x4d\x54\x44" \
-"\x20\x64\x65\x76\x69\x63\x65\x0a\x0a\x09\x2d\x70\x09\x50\x61\x64" \
-"\x20\x74\x6f\x20\x70\x61\x67\x65\x20\x73\x69\x7a\x65\x0a\x09\x2d" \
-"\x73\x20\x41\x44\x44\x52\x09\x53\x74\x61\x72\x74\x20\x61\x64\x64" \
-"\x72\x65\x73\x73\x00\x5b\x2d\x6e\x20\x41\x44\x4a\x55\x53\x54\x5d" \
-"\x20\x5b\x50\x52\x4f\x47\x20\x41\x52\x47\x53\x5d\x0a\x0a\x43\x68" \
-"\x61\x6e\x67\x65\x20\x73\x63\x68\x65\x64\x75\x6c\x69\x6e\x67\x20" \
-"\x70\x72\x69\x6f\x72\x69\x74\x79\x2c\x20\x72\x75\x6e\x20\x50\x52" \
-"\x4f\x47\x0a\x0a\x09\x2d\x6e\x20\x41\x44\x4a\x55\x53\x54\x09\x41" \
-"\x64\x6a\x75\x73\x74\x20\x70\x72\x69\x6f\x72\x69\x74\x79\x20\x62" \
-"\x79\x20\x41\x44\x4a\x55\x53\x54\x00\x50\x52\x4f\x47\x20\x41\x52" \
-"\x47\x53\x0a\x0a\x52\x75\x6e\x20\x50\x52\x4f\x47\x20\x69\x6d\x6d" \
-"\x75\x6e\x65\x20\x74\x6f\x20\x68\x61\x6e\x67\x75\x70\x73\x2c\x20" \
-"\x77\x69\x74\x68\x20\x6f\x75\x74\x70\x75\x74\x20\x74\x6f\x20\x61" \
-"\x20\x6e\x6f\x6e\x2d\x74\x74\x79\x00\x5b\x2d\x61\x42\x62\x63\x44" \
-"\x64\x65\x46\x66\x48\x68\x49\x69\x4c\x6c\x4f\x6f\x76\x58\x78\x5d" \
-"\x20\x5b\x46\x49\x4c\x45\x5d\x0a\x0a\x50\x72\x69\x6e\x74\x20\x46" \
-"\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x75" \
-"\x6e\x61\x6d\x62\x69\x67\x75\x6f\x75\x73\x6c\x79\x2c\x20\x61\x73" \
-"\x20\x6f\x63\x74\x61\x6c\x20\x62\x79\x74\x65\x73\x20\x62\x79\x20" \
-"\x64\x65\x66\x61\x75\x6c\x74\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53" \
-"\x5d\x20\x5b\x4f\x52\x49\x47\x46\x49\x4c\x45\x20\x5b\x50\x41\x54" \
-"\x43\x48\x46\x49\x4c\x45\x5d\x5d\x0a\x0a\x09\x2d\x70\x2c\x2d\x2d" \
-"\x73\x74\x72\x69\x70\x20\x4e\x09\x09\x53\x74\x72\x69\x70\x20\x4e" \
-"\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x63\x6f\x6d\x70\x6f\x6e\x65" \
-"\x6e\x74\x73\x20\x66\x72\x6f\x6d\x20\x66\x69\x6c\x65\x20\x6e\x61" \
-"\x6d\x65\x73\x0a\x09\x2d\x69\x2c\x2d\x2d\x69\x6e\x70\x75\x74\x20" \
-"\x44\x49\x46\x46\x09\x09\x52\x65\x61\x64\x20\x44\x49\x46\x46\x20" \
-"\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x73\x74\x64\x69\x6e" \
-"\x0a\x09\x2d\x52\x2c\x2d\x2d\x72\x65\x76\x65\x72\x73\x65\x09\x09" \
-"\x52\x65\x76\x65\x72\x73\x65\x20\x70\x61\x74\x63\x68\x0a\x09\x2d" \
-"\x4e\x2c\x2d\x2d\x66\x6f\x72\x77\x61\x72\x64\x09\x09\x49\x67\x6e" \
-"\x6f\x72\x65\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x61\x70\x70\x6c" \
-"\x69\x65\x64\x20\x70\x61\x74\x63\x68\x65\x73\x0a\x09\x2d\x45\x2c" \
-"\x2d\x2d\x72\x65\x6d\x6f\x76\x65\x2d\x65\x6d\x70\x74\x79\x2d\x66" \
-"\x69\x6c\x65\x73\x09\x52\x65\x6d\x6f\x76\x65\x20\x6f\x75\x74\x70" \
-"\x75\x74\x20\x66\x69\x6c\x65\x73\x20\x69\x66\x20\x74\x68\x65\x79" \
-"\x20\x62\x65\x63\x6f\x6d\x65\x20\x65\x6d\x70\x74\x79\x00\x5b\x2d" \
-"\x66\x6c\x6e\x6f\x76\x78\x5d\x20\x5b\x2d\x73\x20\x53\x49\x44\x7c" \
-"\x2d\x50\x20\x50\x50\x49\x44\x7c\x50\x41\x54\x54\x45\x52\x4e\x5d" \
-"\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x70\x72\x6f\x63\x65\x73" \
-"\x73\x28\x65\x73\x29\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x62" \
-"\x79\x20\x72\x65\x67\x65\x78\x20\x50\x41\x54\x54\x45\x52\x4e\x0a" \
-"\x0a\x09\x2d\x6c\x09\x53\x68\x6f\x77\x20\x63\x6f\x6d\x6d\x61\x6e" \
-"\x64\x20\x6e\x61\x6d\x65\x20\x74\x6f\x6f\x0a\x09\x2d\x66\x09\x4d" \
-"\x61\x74\x63\x68\x20\x61\x67\x61\x69\x6e\x73\x74\x20\x65\x6e\x74" \
-"\x69\x72\x65\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65" \
-"\x0a\x09\x2d\x6e\x09\x53\x68\x6f\x77\x20\x74\x68\x65\x20\x6e\x65" \
-"\x77\x65\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x6f\x6e\x6c" \
-"\x79\x0a\x09\x2d\x6f\x09\x53\x68\x6f\x77\x20\x74\x68\x65\x20\x6f" \
-"\x6c\x64\x65\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x6f\x6e" \
-"\x6c\x79\x0a\x09\x2d\x76\x09\x4e\x65\x67\x61\x74\x65\x20\x74\x68" \
-"\x65\x20\x6d\x61\x74\x63\x68\x0a\x09\x2d\x78\x09\x4d\x61\x74\x63" \
-"\x68\x20\x77\x68\x6f\x6c\x65\x20\x6e\x61\x6d\x65\x20\x28\x6e\x6f" \
-"\x74\x20\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x29\x0a\x09\x2d\x73" \
-"\x09\x4d\x61\x74\x63\x68\x20\x73\x65\x73\x73\x69\x6f\x6e\x20\x49" \
-"\x44\x20\x28\x30\x20\x66\x6f\x72\x20\x63\x75\x72\x72\x65\x6e\x74" \
-"\x29\x0a\x09\x2d\x50\x09\x4d\x61\x74\x63\x68\x20\x70\x61\x72\x65" \
-"\x6e\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x49\x44\x00\x5b\x4f" \
-"\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x4e\x41\x4d\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x4c\x69\x73\x74\x20\x50\x49\x44\x73\x20\x6f\x66\x20" \
-"\x61\x6c\x6c\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x20\x77\x69" \
-"\x74\x68\x20\x6e\x61\x6d\x65\x73\x20\x74\x68\x61\x74\x20\x6d\x61" \
-"\x74\x63\x68\x20\x4e\x41\x4d\x45\x73\x0a\x0a\x09\x2d\x73\x09\x53" \
-"\x68\x6f\x77\x20\x6f\x6e\x6c\x79\x20\x6f\x6e\x65\x20\x50\x49\x44" \
-"\x0a\x09\x2d\x6f\x20\x50\x49\x44\x09\x4f\x6d\x69\x74\x20\x67\x69" \
-"\x76\x65\x6e\x20\x70\x69\x64\x0a\x09\x09\x55\x73\x65\x20\x25\x50" \
-"\x50\x49\x44\x20\x74\x6f\x20\x6f\x6d\x69\x74\x20\x70\x69\x64\x20" \
-"\x6f\x66\x20\x70\x69\x64\x6f\x66\x27\x73\x20\x70\x61\x72\x65\x6e" \
-"\x74\x00\x5b\x2d\x6c\x7c\x2d\x53\x49\x47\x4e\x41\x4c\x5d\x20\x5b" \
-"\x2d\x66\x6e\x6f\x76\x78\x5d\x20\x5b\x2d\x73\x20\x53\x49\x44\x7c" \
-"\x2d\x50\x20\x50\x50\x49\x44\x7c\x50\x41\x54\x54\x45\x52\x4e\x5d" \
-"\x0a\x0a\x53\x65\x6e\x64\x20\x61\x20\x73\x69\x67\x6e\x61\x6c\x20" \
-"\x74\x6f\x20\x70\x72\x6f\x63\x65\x73\x73\x28\x65\x73\x29\x20\x73" \
-"\x65\x6c\x65\x63\x74\x65\x64\x20\x62\x79\x20\x72\x65\x67\x65\x78" \
-"\x20\x50\x41\x54\x54\x45\x52\x4e\x0a\x0a\x09\x2d\x6c\x09\x4c\x69" \
-"\x73\x74\x20\x61\x6c\x6c\x20\x73\x69\x67\x6e\x61\x6c\x73\x0a\x09" \
-"\x2d\x66\x09\x4d\x61\x74\x63\x68\x20\x61\x67\x61\x69\x6e\x73\x74" \
-"\x20\x65\x6e\x74\x69\x72\x65\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20" \
-"\x6c\x69\x6e\x65\x0a\x09\x2d\x6e\x09\x53\x69\x67\x6e\x61\x6c\x20" \
-"\x74\x68\x65\x20\x6e\x65\x77\x65\x73\x74\x20\x70\x72\x6f\x63\x65" \
-"\x73\x73\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x6f\x09\x53\x69\x67\x6e" \
-"\x61\x6c\x20\x74\x68\x65\x20\x6f\x6c\x64\x65\x73\x74\x20\x70\x72" \
-"\x6f\x63\x65\x73\x73\x20\x6f\x6e\x6c\x79\x0a\x09\x2d\x76\x09\x4e" \
-"\x65\x67\x61\x74\x65\x20\x74\x68\x65\x20\x6d\x61\x74\x63\x68\x0a" \
-"\x09\x2d\x78\x09\x4d\x61\x74\x63\x68\x20\x77\x68\x6f\x6c\x65\x20" \
-"\x6e\x61\x6d\x65\x20\x28\x6e\x6f\x74\x20\x73\x75\x62\x73\x74\x72" \
-"\x69\x6e\x67\x29\x0a\x09\x2d\x73\x09\x4d\x61\x74\x63\x68\x20\x73" \
-"\x65\x73\x73\x69\x6f\x6e\x20\x49\x44\x20\x28\x30\x20\x66\x6f\x72" \
-"\x20\x63\x75\x72\x72\x65\x6e\x74\x29\x0a\x09\x2d\x50\x09\x4d\x61" \
-"\x74\x63\x68\x20\x70\x61\x72\x65\x6e\x74\x20\x70\x72\x6f\x63\x65" \
-"\x73\x73\x20\x49\x44\x00\x5b\x56\x41\x52\x49\x41\x42\x4c\x45\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x65\x6e\x76\x69\x72" \
-"\x6f\x6e\x6d\x65\x6e\x74\x20\x56\x41\x52\x49\x41\x42\x4c\x45\x73" \
-"\x2e\x0a\x49\x66\x20\x6e\x6f\x20\x56\x41\x52\x49\x41\x42\x4c\x45" \
-"\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x2c\x20\x70\x72\x69\x6e" \
-"\x74\x20\x61\x6c\x6c\x2e\x00\x46\x4f\x52\x4d\x41\x54\x20\x5b\x41" \
-"\x52\x47\x5d\x2e\x2e\x2e\x0a\x0a\x46\x6f\x72\x6d\x61\x74\x20\x61" \
-"\x6e\x64\x20\x70\x72\x69\x6e\x74\x20\x41\x52\x47\x28\x73\x29\x20" \
-"\x61\x63\x63\x6f\x72\x64\x69\x6e\x67\x20\x74\x6f\x20\x46\x4f\x52" \
-"\x4d\x41\x54\x20\x28\x61\x2d\x6c\x61\x20\x43\x20\x70\x72\x69\x6e" \
-"\x74\x66\x29\x00\x0a\x0a\x53\x68\x6f\x77\x20\x6c\x69\x73\x74\x20" \
-"\x6f\x66\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x0a\x0a\x09\x77" \
-"\x09\x57\x69\x64\x65\x20\x6f\x75\x74\x70\x75\x74\x0a\x09\x6c\x09" \
-"\x4c\x6f\x6e\x67\x20\x6f\x75\x74\x70\x75\x74\x0a\x09\x54\x09\x53" \
-"\x68\x6f\x77\x20\x74\x68\x72\x65\x61\x64\x73\x00\x5b\x2d\x70\x5d" \
-"\x20\x5b\x50\x49\x44\x7c\x55\x53\x45\x52\x5d\x0a\x0a\x44\x69\x73" \
-"\x70\x6c\x61\x79\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x74\x72\x65" \
-"\x65\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x6c\x79\x20\x73\x74" \
-"\x61\x72\x74\x20\x66\x72\x6f\x6d\x20\x55\x53\x45\x52\x20\x6f\x72" \
-"\x20\x50\x49\x44\x0a\x0a\x09\x2d\x70\x09\x53\x68\x6f\x77\x20\x70" \
-"\x69\x64\x73\x00\x0a\x0a\x50\x72\x69\x6e\x74\x20\x74\x68\x65\x20" \
-"\x66\x75\x6c\x6c\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x6f\x66" \
-"\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x77\x6f\x72" \
-"\x6b\x69\x6e\x67\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x00\x0a" \
-"\x0a\x50\x72\x69\x6e\x74\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63" \
-"\x65\x20\x6e\x6f\x64\x65\x20\x61\x73\x73\x6f\x63\x69\x61\x74\x65" \
-"\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x73" \
-"\x79\x73\x74\x65\x6d\x20\x6d\x6f\x75\x6e\x74\x65\x64\x20\x61\x74" \
-"\x20\x27\x2f\x27\x00\x5b\x2d\x66\x6e\x76\x5d\x20\x46\x49\x4c\x45" \
-"\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x74\x68\x65\x20\x76\x61" \
-"\x6c\x75\x65\x20\x6f\x66\x20\x61\x20\x73\x79\x6d\x6c\x69\x6e\x6b" \
-"\x0a\x0a\x09\x2d\x66\x09\x43\x61\x6e\x6f\x6e\x69\x63\x61\x6c\x69" \
-"\x7a\x65\x20\x62\x79\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20" \
-"\x61\x6c\x6c\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x0a\x09\x2d\x6e" \
-"\x09\x44\x6f\x6e\x27\x74\x20\x61\x64\x64\x20\x6e\x65\x77\x6c\x69" \
-"\x6e\x65\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x00\x46" \
-"\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x52\x65\x74\x75\x72\x6e\x20\x74" \
-"\x68\x65\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x20\x70\x61\x74\x68" \
-"\x6e\x61\x6d\x65\x73\x20\x6f\x66\x20\x67\x69\x76\x65\x6e\x20\x46" \
-"\x49\x4c\x45\x00\x7b\x7b\x2d\x6e\x20\x49\x4e\x43\x52\x45\x4d\x45" \
-"\x4e\x54\x7d\x20\x7c\x20\x50\x52\x49\x4f\x52\x49\x54\x59\x7d\x20" \
-"\x5b\x5b\x2d\x70\x20\x7c\x20\x2d\x67\x20\x7c\x20\x2d\x75\x5d\x20" \
-"\x49\x44\x2e\x2e\x2e\x5d\x0a\x0a\x43\x68\x61\x6e\x67\x65\x20\x73" \
-"\x63\x68\x65\x64\x75\x6c\x69\x6e\x67\x20\x70\x72\x69\x6f\x72\x69" \
-"\x74\x79\x20\x66\x6f\x72\x20\x61\x20\x72\x75\x6e\x6e\x69\x6e\x67" \
-"\x20\x70\x72\x6f\x63\x65\x73\x73\x0a\x0a\x09\x2d\x6e\x09\x41\x64" \
-"\x6a\x75\x73\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x6e\x69\x63" \
-"\x65\x20\x76\x61\x6c\x75\x65\x20\x28\x73\x6d\x61\x6c\x6c\x65\x72" \
-"\x20\x69\x73\x20\x66\x61\x73\x74\x65\x72\x29\x0a\x09\x2d\x70\x09" \
-"\x50\x72\x6f\x63\x65\x73\x73\x20\x69\x64\x28\x73\x29\x20\x28\x64" \
-"\x65\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x67\x09\x50\x72\x6f\x63" \
-"\x65\x73\x73\x20\x67\x72\x6f\x75\x70\x20\x69\x64\x28\x73\x29\x0a" \
-"\x09\x2d\x75\x09\x50\x72\x6f\x63\x65\x73\x73\x20\x75\x73\x65\x72" \
-"\x20\x6e\x61\x6d\x65\x28\x73\x29\x20\x61\x6e\x64\x2f\x6f\x72\x20" \
-"\x69\x64\x28\x73\x29\x00\x0a\x0a\x52\x65\x73\x65\x74\x20\x74\x68" \
-"\x65\x20\x73\x63\x72\x65\x65\x6e\x00\x0a\x0a\x52\x65\x73\x69\x7a" \
-"\x65\x20\x74\x68\x65\x20\x73\x63\x72\x65\x65\x6e\x00\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x52\x65\x76\x65\x72\x73\x65\x20" \
-"\x6c\x69\x6e\x65\x73\x20\x6f\x66\x20\x46\x49\x4c\x45\x00\x5b\x2d" \
-"\x69\x72\x66\x5d\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x52\x65" \
-"\x6d\x6f\x76\x65\x20\x28\x75\x6e\x6c\x69\x6e\x6b\x29\x20\x46\x49" \
-"\x4c\x45\x73\x0a\x0a\x09\x2d\x69\x09\x41\x6c\x77\x61\x79\x73\x20" \
-"\x70\x72\x6f\x6d\x70\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x72\x65" \
-"\x6d\x6f\x76\x69\x6e\x67\x0a\x09\x2d\x66\x09\x4e\x65\x76\x65\x72" \
-"\x20\x70\x72\x6f\x6d\x70\x74\x0a\x09\x2d\x52\x2c\x2d\x72\x09\x52" \
-"\x65\x63\x75\x72\x73\x65\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d" \
-"\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59\x2e\x2e\x2e\x0a\x0a\x52" \
-"\x65\x6d\x6f\x76\x65\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59\x20" \
-"\x69\x66\x20\x69\x74\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x0a\x0a" \
-"\x09\x2d\x70\x7c\x2d\x2d\x70\x61\x72\x65\x6e\x74\x73\x09\x49\x6e" \
-"\x63\x6c\x75\x64\x65\x20\x70\x61\x72\x65\x6e\x74\x73\x0a\x09\x2d" \
-"\x2d\x69\x67\x6e\x6f\x72\x65\x2d\x66\x61\x69\x6c\x2d\x6f\x6e\x2d" \
-"\x6e\x6f\x6e\x2d\x65\x6d\x70\x74\x79\x00\x5b\x2d\x71\x66\x77\x72" \
-"\x73\x76\x5d\x20\x4d\x4f\x44\x55\x4c\x45\x20\x5b\x73\x79\x6d\x62" \
-"\x6f\x6c\x3d\x76\x61\x6c\x75\x65\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d" \
-"\x72\x09\x52\x65\x6d\x6f\x76\x65\x20\x4d\x4f\x44\x55\x4c\x45\x20" \
-"\x28\x73\x74\x61\x63\x6b\x73\x29\x20\x6f\x72\x20\x64\x6f\x20\x61" \
-"\x75\x74\x6f\x63\x6c\x65\x61\x6e\x0a\x09\x2d\x71\x09\x51\x75\x69" \
-"\x65\x74\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x0a\x09" \
-"\x2d\x66\x09\x46\x6f\x72\x63\x65\x0a\x09\x2d\x77\x09\x57\x61\x69" \
-"\x74\x20\x66\x6f\x72\x20\x75\x6e\x6c\x6f\x61\x64\x0a\x09\x2d\x73" \
-"\x09\x52\x65\x70\x6f\x72\x74\x20\x76\x69\x61\x20\x73\x79\x73\x6c" \
-"\x6f\x67\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x73\x74" \
-"\x64\x65\x72\x72\x00\x5b\x2d\x74\x6c\x5d\x20\x5b\x2d\x61\x20\x41" \
-"\x52\x47\x5d\x2e\x2e\x2e\x20\x5b\x2d\x75\x20\x4d\x41\x53\x4b\x5d" \
-"\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59\x0a\x0a\x52\x75\x6e\x20" \
-"\x61\x20\x62\x75\x6e\x63\x68\x20\x6f\x66\x20\x73\x63\x72\x69\x70" \
-"\x74\x73\x20\x69\x6e\x20\x44\x49\x52\x45\x43\x54\x4f\x52\x59\x0a" \
-"\x0a\x09\x2d\x74\x09\x44\x72\x79\x20\x72\x75\x6e\x0a\x09\x2d\x6c" \
-"\x09\x50\x72\x69\x6e\x74\x20\x6e\x61\x6d\x65\x73\x20\x6f\x66\x20" \
-"\x6d\x61\x74\x63\x68\x69\x6e\x67\x20\x66\x69\x6c\x65\x73\x20\x65" \
-"\x76\x65\x6e\x20\x69\x66\x20\x74\x68\x65\x79\x20\x61\x72\x65\x20" \
-"\x6e\x6f\x74\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x0a\x09" \
-"\x2d\x61\x20\x41\x52\x47\x09\x50\x61\x73\x73\x20\x41\x52\x47\x20" \
-"\x61\x73\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x74\x6f\x20\x70" \
-"\x72\x6f\x67\x72\x61\x6d\x73\x0a\x09\x2d\x75\x20\x4d\x41\x53\x4b" \
-"\x09\x53\x65\x74\x20\x75\x6d\x61\x73\x6b\x20\x74\x6f\x20\x4d\x41" \
-"\x53\x4b\x20\x62\x65\x66\x6f\x72\x65\x20\x72\x75\x6e\x6e\x69\x6e" \
-"\x67\x20\x70\x72\x6f\x67\x72\x61\x6d\x73\x00\x5b\x2d\x69\x6e\x72" \
-"\x5d\x20\x5b\x2d\x66\x20\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x20\x5b" \
-"\x2d\x65\x20\x43\x4d\x44\x5d\x2e\x2e\x2e\x20\x5b\x46\x49\x4c\x45" \
-"\x5d\x2e\x2e\x2e\x0a\x6f\x72\x3a\x20\x73\x65\x64\x20\x5b\x2d\x69" \
-"\x6e\x72\x5d\x20\x43\x4d\x44\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x09\x2d\x65\x20\x43\x4d\x44\x09\x41\x64\x64\x20\x43" \
-"\x4d\x44\x20\x74\x6f\x20\x73\x65\x64\x20\x63\x6f\x6d\x6d\x61\x6e" \
-"\x64\x73\x20\x74\x6f\x20\x62\x65\x20\x65\x78\x65\x63\x75\x74\x65" \
-"\x64\x0a\x09\x2d\x66\x20\x46\x49\x4c\x45\x09\x41\x64\x64\x20\x46" \
-"\x49\x4c\x45\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x74\x6f\x20" \
-"\x73\x65\x64\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x73\x20\x74\x6f\x20" \
-"\x62\x65\x20\x65\x78\x65\x63\x75\x74\x65\x64\x0a\x09\x2d\x69\x5b" \
-"\x53\x46\x58\x5d\x09\x45\x64\x69\x74\x20\x66\x69\x6c\x65\x73\x20" \
-"\x69\x6e\x2d\x70\x6c\x61\x63\x65\x20\x28\x6f\x74\x68\x65\x72\x77" \
-"\x69\x73\x65\x20\x73\x65\x6e\x64\x73\x20\x74\x6f\x20\x73\x74\x64" \
-"\x6f\x75\x74\x29\x0a\x09\x09\x4f\x70\x74\x69\x6f\x6e\x61\x6c\x6c" \
-"\x79\x20\x62\x61\x63\x6b\x20\x66\x69\x6c\x65\x73\x20\x75\x70\x2c" \
-"\x20\x61\x70\x70\x65\x6e\x64\x69\x6e\x67\x20\x53\x46\x58\x0a\x09" \
-"\x2d\x6e\x09\x53\x75\x70\x70\x72\x65\x73\x73\x20\x61\x75\x74\x6f" \
-"\x6d\x61\x74\x69\x63\x20\x70\x72\x69\x6e\x74\x69\x6e\x67\x20\x6f" \
-"\x66\x20\x70\x61\x74\x74\x65\x72\x6e\x20\x73\x70\x61\x63\x65\x0a" \
-"\x09\x2d\x72\x09\x55\x73\x65\x20\x65\x78\x74\x65\x6e\x64\x65\x64" \
-"\x20\x72\x65\x67\x65\x78\x20\x73\x79\x6e\x74\x61\x78\x0a\x0a\x49" \
-"\x66\x20\x6e\x6f\x20\x2d\x65\x20\x6f\x72\x20\x2d\x66\x2c\x20\x74" \
-"\x68\x65\x20\x66\x69\x72\x73\x74\x20\x6e\x6f\x6e\x2d\x6f\x70\x74" \
-"\x69\x6f\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x69\x73\x20" \
-"\x74\x68\x65\x20\x73\x65\x64\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20" \
-"\x73\x74\x72\x69\x6e\x67\x2e\x0a\x52\x65\x6d\x61\x69\x6e\x69\x6e" \
-"\x67\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x61\x72\x65\x20" \
-"\x69\x6e\x70\x75\x74\x20\x66\x69\x6c\x65\x73\x20\x28\x73\x74\x64" \
-"\x69\x6e\x20\x69\x66\x20\x6e\x6f\x6e\x65\x29\x2e\x00\x5b\x2d\x77" \
-"\x5d\x20\x5b\x2d\x73\x20\x53\x45\x50\x5d\x20\x5b\x46\x49\x52\x53" \
-"\x54\x20\x5b\x49\x4e\x43\x5d\x5d\x20\x4c\x41\x53\x54\x0a\x0a\x50" \
-"\x72\x69\x6e\x74\x20\x6e\x75\x6d\x62\x65\x72\x73\x20\x66\x72\x6f" \
-"\x6d\x20\x46\x49\x52\x53\x54\x20\x74\x6f\x20\x4c\x41\x53\x54\x2c" \
-"\x20\x69\x6e\x20\x73\x74\x65\x70\x73\x20\x6f\x66\x20\x49\x4e\x43" \
-"\x2e\x0a\x46\x49\x52\x53\x54\x2c\x20\x49\x4e\x43\x20\x64\x65\x66" \
-"\x61\x75\x6c\x74\x20\x74\x6f\x20\x31\x2e\x0a\x0a\x09\x2d\x77\x09" \
-"\x50\x61\x64\x20\x74\x6f\x20\x6c\x61\x73\x74\x20\x77\x69\x74\x68" \
-"\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x7a\x65\x72\x6f\x73\x0a\x09" \
-"\x2d\x73\x20\x53\x45\x50\x09\x53\x74\x72\x69\x6e\x67\x20\x73\x65" \
-"\x70\x61\x72\x61\x74\x6f\x72\x00\x5b\x2d\x72\x5d\x20\x5b\x44\x45" \
-"\x56\x49\x43\x45\x5d\x0a\x0a\x52\x65\x64\x69\x72\x65\x63\x74\x20" \
-"\x73\x79\x73\x74\x65\x6d\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x20\x6f" \
-"\x75\x74\x70\x75\x74\x20\x74\x6f\x20\x44\x45\x56\x49\x43\x45\x20" \
-"\x28\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x2f\x64\x65\x76\x2f\x74" \
-"\x74\x79\x29\x0a\x0a\x09\x2d\x72\x09\x52\x65\x73\x65\x74\x20\x6f" \
-"\x75\x74\x70\x75\x74\x20\x74\x6f\x20\x2f\x64\x65\x76\x2f\x63\x6f" \
-"\x6e\x73\x6f\x6c\x65\x00\x5b\x2d\x67\x61\x62\x47\x76\x7a\x56\x5d" \
-"\x20\x44\x45\x56\x49\x43\x45\x20\x5b\x50\x41\x52\x41\x4d\x45\x54" \
-"\x45\x52\x20\x5b\x41\x52\x47\x5d\x5d\x2e\x2e\x2e\x0a\x0a\x52\x65" \
-"\x71\x75\x65\x73\x74\x20\x6f\x72\x20\x73\x65\x74\x20\x4c\x69\x6e" \
-"\x75\x78\x20\x73\x65\x72\x69\x61\x6c\x20\x70\x6f\x72\x74\x20\x69" \
-"\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x0a\x09\x2d\x67\x09" \
-"\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x20\x70\x61\x72\x61\x6d\x65" \
-"\x74\x65\x72\x73\x20\x61\x73\x20\x6c\x69\x73\x74\x20\x6f\x66\x20" \
-"\x64\x65\x76\x69\x63\x65\x73\x20\x66\x6f\x72\x20\x72\x65\x70\x6f" \
-"\x72\x74\x69\x6e\x67\x0a\x09\x2d\x61\x09\x50\x72\x69\x6e\x74\x20" \
-"\x61\x6c\x6c\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x20\x69\x6e" \
-"\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x09\x2d\x62\x09\x50\x72" \
-"\x69\x6e\x74\x20\x73\x75\x6d\x6d\x61\x72\x79\x20\x69\x6e\x66\x6f" \
-"\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x09\x2d\x47\x09\x50\x72\x69\x6e" \
-"\x74\x20\x69\x6e\x20\x66\x6f\x72\x6d\x20\x77\x68\x69\x63\x68\x20" \
-"\x63\x61\x6e\x20\x62\x65\x20\x66\x65\x64\x20\x62\x61\x63\x6b\x0a" \
-"\x09\x09\x74\x6f\x20\x73\x65\x74\x73\x65\x72\x69\x61\x6c\x20\x61" \
-"\x73\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x20\x70" \
-"\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x0a\x09\x2d\x7a\x09\x5a\x65" \
-"\x72\x6f\x20\x6f\x75\x74\x20\x73\x65\x72\x69\x61\x6c\x20\x66\x6c" \
-"\x61\x67\x73\x20\x62\x65\x66\x6f\x72\x65\x20\x73\x65\x74\x74\x69" \
-"\x6e\x67\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65\x0a\x0a" \
-"\x50\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x3a\x20\x28\x2a\x20\x3d" \
-"\x20\x74\x61\x6b\x65\x73\x20\x61\x6e\x20\x61\x72\x67\x75\x6d\x65" \
-"\x6e\x74\x2c\x20\x5e\x20\x3d\x20\x63\x61\x6e\x20\x62\x65\x20\x74" \
-"\x75\x72\x6e\x65\x64\x20\x6f\x66\x66\x20\x62\x79\x20\x70\x72\x65" \
-"\x63\x65\x64\x69\x6e\x67\x20\x5e\x29\x0a\x09\x2a\x70\x6f\x72\x74" \
-"\x2c\x20\x2a\x69\x72\x71\x2c\x20\x2a\x64\x69\x76\x69\x73\x6f\x72" \
-"\x2c\x20\x2a\x75\x61\x72\x74\x2c\x20\x2a\x62\x61\x75\x6e\x64\x5f" \
-"\x62\x61\x73\x65\x2c\x20\x2a\x63\x6c\x6f\x73\x65\x5f\x64\x65\x6c" \
-"\x61\x79\x2c\x20\x2a\x63\x6c\x6f\x73\x69\x6e\x67\x5f\x77\x61\x69" \
-"\x74\x2c\x0a\x09\x5e\x66\x6f\x75\x72\x70\x6f\x72\x74\x2c\x20\x5e" \
-"\x61\x75\x74\x6f\x5f\x69\x72\x71\x2c\x20\x5e\x73\x6b\x69\x70\x5f" \
-"\x74\x65\x73\x74\x2c\x20\x5e\x73\x61\x6b\x2c\x20\x5e\x73\x65\x73" \
-"\x73\x69\x6f\x6e\x5f\x6c\x6f\x63\x6b\x6f\x75\x74\x2c\x20\x5e\x70" \
-"\x67\x72\x70\x5f\x6c\x6f\x63\x6b\x6f\x75\x74\x2c\x0a\x09\x5e\x63" \
-"\x61\x6c\x6c\x6f\x75\x74\x5f\x6e\x6f\x68\x75\x70\x2c\x20\x5e\x73" \
-"\x70\x6c\x69\x74\x5f\x74\x65\x72\x6d\x69\x6f\x73\x2c\x20\x5e\x68" \
-"\x75\x70\x5f\x6e\x6f\x74\x69\x66\x79\x2c\x20\x5e\x6c\x6f\x77\x5f" \
-"\x6c\x61\x74\x65\x6e\x63\x79\x2c\x20\x61\x75\x74\x6f\x63\x6f\x6e" \
-"\x66\x69\x67\x2c\x0a\x09\x73\x70\x64\x5f\x6e\x6f\x72\x6d\x61\x6c" \
-"\x2c\x20\x73\x70\x64\x5f\x68\x69\x2c\x20\x73\x70\x64\x5f\x76\x68" \
-"\x69\x2c\x20\x73\x70\x64\x5f\x73\x68\x69\x2c\x20\x73\x70\x64\x5f" \
-"\x77\x61\x72\x70\x2c\x20\x73\x70\x64\x5f\x63\x75\x73\x74\x0a\x0a" \
-"\x55\x41\x52\x54\x20\x74\x79\x70\x65\x73\x3a\x0a\x09\x75\x6e\x6b" \
-"\x6e\x6f\x77\x6e\x2c\x20\x38\x32\x35\x30\x2c\x20\x31\x36\x34\x35" \
-"\x30\x2c\x20\x31\x36\x35\x35\x30\x2c\x20\x31\x36\x35\x35\x30\x41" \
-"\x2c\x20\x43\x69\x72\x72\x75\x73\x2c\x20\x31\x36\x36\x35\x30\x2c" \
-"\x20\x31\x36\x36\x35\x30\x56\x32\x2c\x20\x31\x36\x37\x35\x30\x2c" \
-"\x0a\x09\x31\x36\x39\x35\x30\x2c\x20\x31\x36\x39\x35\x34\x2c\x20" \
-"\x31\x36\x36\x35\x34\x2c\x20\x31\x36\x38\x35\x30\x2c\x20\x52\x53" \
-"\x41\x2c\x20\x4e\x53\x31\x36\x35\x35\x30\x41\x2c\x20\x58\x53\x43" \
-"\x41\x4c\x45\x2c\x20\x52\x4d\x39\x30\x30\x30\x2c\x20\x4f\x43\x54" \
-"\x45\x4f\x4e\x2c\x20\x41\x52\x37\x2c\x0a\x09\x55\x36\x5f\x31\x36" \
-"\x35\x35\x30\x41\x00\x50\x52\x4f\x47\x20\x41\x52\x47\x53\x0a\x0a" \
-"\x52\x75\x6e\x20\x50\x52\x4f\x47\x20\x69\x6e\x20\x61\x20\x6e\x65" \
-"\x77\x20\x73\x65\x73\x73\x69\x6f\x6e\x2e\x20\x50\x52\x4f\x47\x20" \
-"\x77\x69\x6c\x6c\x20\x68\x61\x76\x65\x20\x6e\x6f\x20\x63\x6f\x6e" \
-"\x74\x72\x6f\x6c\x6c\x69\x6e\x67\x20\x74\x65\x72\x6d\x69\x6e\x61" \
-"\x6c\x0a\x61\x6e\x64\x20\x77\x69\x6c\x6c\x20\x6e\x6f\x74\x20\x62" \
-"\x65\x20\x61\x66\x66\x65\x63\x74\x65\x64\x20\x62\x79\x20\x6b\x65" \
-"\x79\x62\x6f\x61\x72\x64\x20\x73\x69\x67\x6e\x61\x6c\x73\x20\x28" \
-"\x43\x74\x72\x6c\x2d\x43\x20\x65\x74\x63\x29\x2e\x0a\x53\x65\x65" \
-"\x20\x73\x65\x74\x73\x69\x64\x28\x32\x29\x20\x66\x6f\x72\x20\x64" \
-"\x65\x74\x61\x69\x6c\x73\x2e\x00\x5b\x2d\x2f\x2b\x4f\x50\x54\x49" \
-"\x4f\x4e\x53\x5d\x20\x5b\x2d\x2f\x2b\x6f\x20\x4f\x50\x54\x5d\x2e" \
-"\x2e\x2e\x20\x5b\x2d\x63\x20\x27\x53\x43\x52\x49\x50\x54\x27\x20" \
-"\x5b\x41\x52\x47\x30\x20\x5b\x41\x52\x47\x53\x5d\x5d\x20\x2f\x20" \
-"\x46\x49\x4c\x45\x20\x5b\x41\x52\x47\x53\x5d\x5d\x0a\x0a\x55\x6e" \
-"\x69\x78\x20\x73\x68\x65\x6c\x6c\x20\x69\x6e\x74\x65\x72\x70\x72" \
-"\x65\x74\x65\x72\x00\x5b\x2d\x63\x5b\x73\x77\x5d\x5d\x20\x5b\x46" \
-"\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x6f" \
-"\x72\x20\x63\x68\x65\x63\x6b\x20\x53\x48\x41\x31\x20\x63\x68\x65" \
-"\x63\x6b\x73\x75\x6d\x73\x0a\x0a\x09\x2d\x63\x09\x43\x68\x65\x63" \
-"\x6b\x20\x73\x75\x6d\x73\x20\x61\x67\x61\x69\x6e\x73\x74\x20\x6c" \
-"\x69\x73\x74\x20\x69\x6e\x20\x46\x49\x4c\x45\x73\x0a\x09\x2d\x73" \
-"\x09\x44\x6f\x6e\x27\x74\x20\x6f\x75\x74\x70\x75\x74\x20\x61\x6e" \
-"\x79\x74\x68\x69\x6e\x67\x2c\x20\x73\x74\x61\x74\x75\x73\x20\x63" \
-"\x6f\x64\x65\x20\x73\x68\x6f\x77\x73\x20\x73\x75\x63\x63\x65\x73" \
-"\x73\x0a\x09\x2d\x77\x09\x57\x61\x72\x6e\x20\x61\x62\x6f\x75\x74" \
-"\x20\x69\x6d\x70\x72\x6f\x70\x65\x72\x6c\x79\x20\x66\x6f\x72\x6d" \
-"\x61\x74\x74\x65\x64\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x20\x6c" \
-"\x69\x6e\x65\x73\x00\x5b\x2d\x63\x5b\x73\x77\x5d\x5d\x20\x5b\x46" \
-"\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x6f" \
-"\x72\x20\x63\x68\x65\x63\x6b\x20\x53\x48\x41\x32\x35\x36\x20\x63" \
-"\x68\x65\x63\x6b\x73\x75\x6d\x73\x0a\x0a\x09\x2d\x63\x09\x43\x68" \
-"\x65\x63\x6b\x20\x73\x75\x6d\x73\x20\x61\x67\x61\x69\x6e\x73\x74" \
-"\x20\x6c\x69\x73\x74\x20\x69\x6e\x20\x46\x49\x4c\x45\x73\x0a\x09" \
-"\x2d\x73\x09\x44\x6f\x6e\x27\x74\x20\x6f\x75\x74\x70\x75\x74\x20" \
-"\x61\x6e\x79\x74\x68\x69\x6e\x67\x2c\x20\x73\x74\x61\x74\x75\x73" \
-"\x20\x63\x6f\x64\x65\x20\x73\x68\x6f\x77\x73\x20\x73\x75\x63\x63" \
-"\x65\x73\x73\x0a\x09\x2d\x77\x09\x57\x61\x72\x6e\x20\x61\x62\x6f" \
-"\x75\x74\x20\x69\x6d\x70\x72\x6f\x70\x65\x72\x6c\x79\x20\x66\x6f" \
-"\x72\x6d\x61\x74\x74\x65\x64\x20\x63\x68\x65\x63\x6b\x73\x75\x6d" \
-"\x20\x6c\x69\x6e\x65\x73\x00\x5b\x2d\x63\x5b\x73\x77\x5d\x5d\x20" \
-"\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74" \
-"\x20\x6f\x72\x20\x63\x68\x65\x63\x6b\x20\x53\x48\x41\x35\x31\x32" \
-"\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x73\x0a\x0a\x09\x2d\x63\x09" \
-"\x43\x68\x65\x63\x6b\x20\x73\x75\x6d\x73\x20\x61\x67\x61\x69\x6e" \
-"\x73\x74\x20\x6c\x69\x73\x74\x20\x69\x6e\x20\x46\x49\x4c\x45\x73" \
-"\x0a\x09\x2d\x73\x09\x44\x6f\x6e\x27\x74\x20\x6f\x75\x74\x70\x75" \
-"\x74\x20\x61\x6e\x79\x74\x68\x69\x6e\x67\x2c\x20\x73\x74\x61\x74" \
-"\x75\x73\x20\x63\x6f\x64\x65\x20\x73\x68\x6f\x77\x73\x20\x73\x75" \
-"\x63\x63\x65\x73\x73\x0a\x09\x2d\x77\x09\x57\x61\x72\x6e\x20\x61" \
-"\x62\x6f\x75\x74\x20\x69\x6d\x70\x72\x6f\x70\x65\x72\x6c\x79\x20" \
-"\x66\x6f\x72\x6d\x61\x74\x74\x65\x64\x20\x63\x68\x65\x63\x6b\x73" \
-"\x75\x6d\x20\x6c\x69\x6e\x65\x73\x00\x5b\x4e\x5d\x2e\x2e\x2e\x0a" \
-"\x0a\x50\x61\x75\x73\x65\x20\x66\x6f\x72\x20\x61\x20\x74\x69\x6d" \
-"\x65\x20\x65\x71\x75\x61\x6c\x20\x74\x6f\x20\x74\x68\x65\x20\x74" \
-"\x6f\x74\x61\x6c\x20\x6f\x66\x20\x74\x68\x65\x20\x61\x72\x67\x73" \
-"\x20\x67\x69\x76\x65\x6e\x2c\x20\x77\x68\x65\x72\x65\x20\x65\x61" \
-"\x63\x68\x20\x61\x72\x67\x20\x63\x61\x6e\x0a\x68\x61\x76\x65\x20" \
-"\x61\x6e\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x73\x75\x66\x66" \
-"\x69\x78\x20\x6f\x66\x20\x28\x73\x29\x65\x63\x6f\x6e\x64\x73\x2c" \
-"\x20\x28\x6d\x29\x69\x6e\x75\x74\x65\x73\x2c\x20\x28\x68\x29\x6f" \
-"\x75\x72\x73\x2c\x20\x6f\x72\x20\x28\x64\x29\x61\x79\x73\x00\x5b" \
-"\x2d\x6e\x72\x75\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a" \
-"\x0a\x53\x6f\x72\x74\x20\x6c\x69\x6e\x65\x73\x20\x6f\x66\x20\x74" \
-"\x65\x78\x74\x0a\x0a\x09\x2d\x6e\x09\x53\x6f\x72\x74\x20\x6e\x75" \
-"\x6d\x62\x65\x72\x73\x0a\x09\x2d\x72\x09\x52\x65\x76\x65\x72\x73" \
-"\x65\x20\x73\x6f\x72\x74\x20\x6f\x72\x64\x65\x72\x0a\x09\x2d\x75" \
-"\x09\x53\x75\x70\x70\x72\x65\x73\x73\x20\x64\x75\x70\x6c\x69\x63" \
-"\x61\x74\x65\x20\x6c\x69\x6e\x65\x73\x00\x5b\x4f\x50\x54\x49\x4f" \
-"\x4e\x53\x5d\x20\x5b\x49\x4e\x50\x55\x54\x20\x5b\x50\x52\x45\x46" \
-"\x49\x58\x5d\x5d\x0a\x0a\x09\x2d\x62\x20\x4e\x5b\x6b\x7c\x6d\x5d" \
-"\x09\x53\x70\x6c\x69\x74\x20\x62\x79\x20\x4e\x20\x28\x6b\x69\x6c" \
-"\x6f\x7c\x6d\x65\x67\x61\x29\x62\x79\x74\x65\x73\x0a\x09\x2d\x6c" \
-"\x20\x4e\x09\x09\x53\x70\x6c\x69\x74\x20\x62\x79\x20\x4e\x20\x6c" \
-"\x69\x6e\x65\x73\x0a\x09\x2d\x61\x20\x4e\x09\x09\x55\x73\x65\x20" \
-"\x4e\x20\x6c\x65\x74\x74\x65\x72\x73\x20\x61\x73\x20\x73\x75\x66" \
-"\x66\x69\x78\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x46\x49" \
-"\x4c\x45\x2e\x2e\x2e\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x66" \
-"\x69\x6c\x65\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x20\x6f\x72" \
-"\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x20\x73\x74\x61\x74" \
-"\x75\x73\x0a\x0a\x09\x2d\x66\x09\x44\x69\x73\x70\x6c\x61\x79\x20" \
-"\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x20\x73\x74\x61\x74\x75" \
-"\x73\x0a\x09\x2d\x4c\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x6c\x69\x6e" \
-"\x6b\x73\x0a\x09\x2d\x74\x09\x44\x69\x73\x70\x6c\x61\x79\x20\x69" \
-"\x6e\x66\x6f\x20\x69\x6e\x20\x74\x65\x72\x73\x65\x20\x66\x6f\x72" \
-"\x6d\x00\x5b\x2d\x61\x66\x6f\x5d\x20\x5b\x2d\x6e\x20\x4c\x45\x4e" \
-"\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x69\x73" \
-"\x70\x6c\x61\x79\x20\x70\x72\x69\x6e\x74\x61\x62\x6c\x65\x20\x73" \
-"\x74\x72\x69\x6e\x67\x73\x20\x69\x6e\x20\x61\x20\x62\x69\x6e\x61" \
-"\x72\x79\x20\x66\x69\x6c\x65\x0a\x0a\x09\x2d\x61\x09\x53\x63\x61" \
-"\x6e\x20\x77\x68\x6f\x6c\x65\x20\x66\x69\x6c\x65\x20\x28\x64\x65" \
-"\x66\x61\x75\x6c\x74\x29\x0a\x09\x2d\x66\x09\x50\x72\x65\x63\x65" \
-"\x64\x65\x20\x73\x74\x72\x69\x6e\x67\x73\x20\x77\x69\x74\x68\x20" \
-"\x66\x69\x6c\x65\x6e\x61\x6d\x65\x73\x0a\x09\x2d\x6e\x20\x4c\x45" \
-"\x4e\x09\x41\x74\x20\x6c\x65\x61\x73\x74\x20\x4c\x45\x4e\x20\x63" \
-"\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x66\x6f\x72\x6d\x20\x61" \
-"\x20\x73\x74\x72\x69\x6e\x67\x20\x28\x64\x65\x66\x61\x75\x6c\x74" \
-"\x20\x34\x29\x0a\x09\x2d\x6f\x09\x50\x72\x65\x63\x65\x64\x65\x20" \
-"\x73\x74\x72\x69\x6e\x67\x73\x20\x77\x69\x74\x68\x20\x64\x65\x63" \
-"\x69\x6d\x61\x6c\x20\x6f\x66\x66\x73\x65\x74\x73\x00\x5b\x2d\x61" \
-"\x7c\x67\x5d\x20\x5b\x2d\x46\x20\x44\x45\x56\x49\x43\x45\x5d\x20" \
-"\x5b\x53\x45\x54\x54\x49\x4e\x47\x5d\x2e\x2e\x2e\x0a\x0a\x57\x69" \
-"\x74\x68\x6f\x75\x74\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c" \
-"\x20\x70\x72\x69\x6e\x74\x73\x20\x62\x61\x75\x64\x20\x72\x61\x74" \
-"\x65\x2c\x20\x6c\x69\x6e\x65\x20\x64\x69\x73\x63\x69\x70\x6c\x69" \
-"\x6e\x65\x2c\x0a\x61\x6e\x64\x20\x64\x65\x76\x69\x61\x74\x69\x6f" \
-"\x6e\x73\x20\x66\x72\x6f\x6d\x20\x73\x74\x74\x79\x20\x73\x61\x6e" \
-"\x65\x0a\x0a\x09\x2d\x46\x20\x44\x45\x56\x49\x43\x45\x09\x4f\x70" \
-"\x65\x6e\x20\x64\x65\x76\x69\x63\x65\x20\x69\x6e\x73\x74\x65\x61" \
-"\x64\x20\x6f\x66\x20\x73\x74\x64\x69\x6e\x0a\x09\x2d\x61\x09\x09" \
-"\x50\x72\x69\x6e\x74\x20\x61\x6c\x6c\x20\x63\x75\x72\x72\x65\x6e" \
-"\x74\x20\x73\x65\x74\x74\x69\x6e\x67\x73\x20\x69\x6e\x20\x68\x75" \
-"\x6d\x61\x6e\x2d\x72\x65\x61\x64\x61\x62\x6c\x65\x20\x66\x6f\x72" \
-"\x6d\x0a\x09\x2d\x67\x09\x09\x50\x72\x69\x6e\x74\x20\x69\x6e\x20" \
-"\x73\x74\x74\x79\x2d\x72\x65\x61\x64\x61\x62\x6c\x65\x20\x66\x6f" \
-"\x72\x6d\x0a\x09\x5b\x53\x45\x54\x54\x49\x4e\x47\x5d\x09\x53\x65" \
-"\x65\x20\x6d\x61\x6e\x70\x61\x67\x65\x00\x5b\x2d\x61\x5d\x20\x5b" \
-"\x44\x45\x56\x49\x43\x45\x5d\x0a\x0a\x53\x74\x6f\x70\x20\x73\x77" \
-"\x61\x70\x70\x69\x6e\x67\x20\x6f\x6e\x20\x44\x45\x56\x49\x43\x45" \
-"\x0a\x0a\x09\x2d\x61\x09\x53\x74\x6f\x70\x20\x73\x77\x61\x70\x70" \
-"\x69\x6e\x67\x20\x6f\x6e\x20\x61\x6c\x6c\x20\x73\x77\x61\x70\x20" \
-"\x64\x65\x76\x69\x63\x65\x73\x00\x5b\x2d\x61\x5d\x20\x5b\x44\x45" \
-"\x56\x49\x43\x45\x5d\x0a\x0a\x53\x74\x61\x72\x74\x20\x73\x77\x61" \
-"\x70\x70\x69\x6e\x67\x20\x6f\x6e\x20\x44\x45\x56\x49\x43\x45\x0a" \
-"\x0a\x09\x2d\x61\x09\x53\x74\x61\x72\x74\x20\x73\x77\x61\x70\x70" \
-"\x69\x6e\x67\x20\x6f\x6e\x20\x61\x6c\x6c\x20\x73\x77\x61\x70\x20" \
-"\x64\x65\x76\x69\x63\x65\x73\x00\x0a\x0a\x57\x72\x69\x74\x65\x20" \
-"\x61\x6c\x6c\x20\x62\x75\x66\x66\x65\x72\x65\x64\x20\x62\x6c\x6f" \
-"\x63\x6b\x73\x20\x74\x6f\x20\x64\x69\x73\x6b\x00\x5b\x4f\x50\x54" \
-"\x49\x4f\x4e\x53\x5d\x20\x5b\x4b\x45\x59\x5b\x3d\x56\x41\x4c\x55" \
-"\x45\x5d\x5d\x2e\x2e\x2e\x0a\x0a\x53\x68\x6f\x77\x2f\x73\x65\x74" \
-"\x20\x6b\x65\x72\x6e\x65\x6c\x20\x70\x61\x72\x61\x6d\x65\x74\x65" \
-"\x72\x73\x0a\x0a\x09\x2d\x65\x09\x44\x6f\x6e\x27\x74\x20\x77\x61" \
-"\x72\x6e\x20\x61\x62\x6f\x75\x74\x20\x75\x6e\x6b\x6e\x6f\x77\x6e" \
-"\x20\x6b\x65\x79\x73\x0a\x09\x2d\x6e\x09\x44\x6f\x6e\x27\x74\x20" \
-"\x73\x68\x6f\x77\x20\x6b\x65\x79\x20\x6e\x61\x6d\x65\x73\x0a\x09" \
-"\x2d\x61\x09\x53\x68\x6f\x77\x20\x61\x6c\x6c\x20\x76\x61\x6c\x75" \
-"\x65\x73\x0a\x09\x2d\x77\x09\x53\x65\x74\x20\x76\x61\x6c\x75\x65" \
-"\x73\x0a\x09\x2d\x70\x20\x46\x49\x4c\x45\x09\x53\x65\x74\x20\x76" \
-"\x61\x6c\x75\x65\x73\x20\x66\x72\x6f\x6d\x20\x46\x49\x4c\x45\x20" \
-"\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x2f\x65\x74\x63\x2f\x73\x79" \
-"\x73\x63\x74\x6c\x2e\x63\x6f\x6e\x66\x29\x0a\x09\x2d\x71\x20\x20" \
-"\x20\x20\x20\x20\x53\x65\x74\x20\x76\x61\x6c\x75\x65\x73\x20\x73" \
-"\x69\x6c\x65\x6e\x74\x6c\x79\x00\x5b\x46\x49\x4c\x45\x5d\x2e\x2e" \
-"\x2e\x0a\x0a\x43\x6f\x6e\x63\x61\x74\x65\x6e\x61\x74\x65\x20\x46" \
-"\x49\x4c\x45\x73\x20\x61\x6e\x64\x20\x70\x72\x69\x6e\x74\x20\x74" \
-"\x68\x65\x6d\x20\x69\x6e\x20\x72\x65\x76\x65\x72\x73\x65\x00\x5b" \
-"\x4f\x50\x54\x49\x4f\x4e\x53\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e" \
-"\x2e\x2e\x0a\x0a\x50\x72\x69\x6e\x74\x20\x6c\x61\x73\x74\x20\x31" \
-"\x30\x20\x6c\x69\x6e\x65\x73\x20\x6f\x66\x20\x65\x61\x63\x68\x20" \
-"\x46\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x20" \
-"\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x2e\x0a\x57\x69\x74\x68\x20" \
-"\x6d\x6f\x72\x65\x20\x74\x68\x61\x6e\x20\x6f\x6e\x65\x20\x46\x49" \
-"\x4c\x45\x2c\x20\x70\x72\x65\x63\x65\x64\x65\x20\x65\x61\x63\x68" \
-"\x20\x77\x69\x74\x68\x20\x61\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65" \
-"\x20\x68\x65\x61\x64\x65\x72\x2e\x0a\x0a\x09\x2d\x66\x09\x09\x50" \
-"\x72\x69\x6e\x74\x20\x64\x61\x74\x61\x20\x61\x73\x20\x66\x69\x6c" \
-"\x65\x20\x67\x72\x6f\x77\x73\x0a\x09\x2d\x73\x20\x53\x45\x43\x4f" \
-"\x4e\x44\x53\x09\x57\x61\x69\x74\x20\x53\x45\x43\x4f\x4e\x44\x53" \
-"\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x72\x65\x61\x64\x73\x20\x77" \
-"\x69\x74\x68\x20\x2d\x66\x0a\x09\x2d\x6e\x20\x4e\x5b\x6b\x62\x6d" \
-"\x5d\x09\x50\x72\x69\x6e\x74\x20\x6c\x61\x73\x74\x20\x4e\x20\x6c" \
-"\x69\x6e\x65\x73\x0a\x09\x2d\x63\x20\x4e\x5b\x6b\x62\x6d\x5d\x09" \
-"\x50\x72\x69\x6e\x74\x20\x6c\x61\x73\x74\x20\x4e\x20\x62\x79\x74" \
-"\x65\x73\x0a\x09\x2d\x71\x09\x09\x4e\x65\x76\x65\x72\x20\x70\x72" \
-"\x69\x6e\x74\x20\x68\x65\x61\x64\x65\x72\x73\x0a\x09\x2d\x76\x09" \
-"\x09\x41\x6c\x77\x61\x79\x73\x20\x70\x72\x69\x6e\x74\x20\x68\x65" \
-"\x61\x64\x65\x72\x73\x0a\x0a\x4e\x20\x6d\x61\x79\x20\x62\x65\x20" \
-"\x73\x75\x66\x66\x69\x78\x65\x64\x20\x62\x79\x20\x6b\x20\x28\x78" \
-"\x31\x30\x32\x34\x29\x2c\x20\x62\x20\x28\x78\x35\x31\x32\x29\x2c" \
-"\x20\x6f\x72\x20\x6d\x20\x28\x78\x31\x30\x32\x34\x5e\x32\x29\x2e" \
-"\x0a\x49\x66\x20\x4e\x20\x73\x74\x61\x72\x74\x73\x20\x77\x69\x74" \
-"\x68\x20\x61\x20\x27\x2b\x27\x2c\x20\x6f\x75\x74\x70\x75\x74\x20" \
-"\x62\x65\x67\x69\x6e\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20" \
-"\x4e\x74\x68\x20\x69\x74\x65\x6d\x20\x66\x72\x6f\x6d\x20\x74\x68" \
-"\x65\x20\x73\x74\x61\x72\x74\x0a\x6f\x66\x20\x65\x61\x63\x68\x20" \
-"\x66\x69\x6c\x65\x2c\x20\x6e\x6f\x74\x20\x66\x72\x6f\x6d\x20\x74" \
-"\x68\x65\x20\x65\x6e\x64\x2e\x00\x2d\x5b\x63\x78\x74\x7a\x6a\x68" \
-"\x6d\x76\x4f\x5d\x20\x5b\x2d\x58\x20\x46\x49\x4c\x45\x5d\x20\x5b" \
-"\x2d\x54\x20\x46\x49\x4c\x45\x5d\x20\x5b\x2d\x66\x20\x54\x41\x52" \
-"\x46\x49\x4c\x45\x5d\x20\x5b\x2d\x43\x20\x44\x49\x52\x5d\x20\x5b" \
-"\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x72\x65\x61\x74\x65" \
-"\x2c\x20\x65\x78\x74\x72\x61\x63\x74\x2c\x20\x6f\x72\x20\x6c\x69" \
-"\x73\x74\x20\x66\x69\x6c\x65\x73\x20\x66\x72\x6f\x6d\x20\x61\x20" \
-"\x74\x61\x72\x20\x66\x69\x6c\x65\x0a\x0a\x4f\x70\x65\x72\x61\x74" \
-"\x69\x6f\x6e\x3a\x0a\x09\x63\x09\x43\x72\x65\x61\x74\x65\x0a\x09" \
-"\x78\x09\x45\x78\x74\x72\x61\x63\x74\x0a\x09\x74\x09\x4c\x69\x73" \
-"\x74\x0a\x09\x66\x09\x4e\x61\x6d\x65\x20\x6f\x66\x20\x54\x41\x52" \
-"\x46\x49\x4c\x45\x20\x28\x27\x2d\x27\x20\x66\x6f\x72\x20\x73\x74" \
-"\x64\x69\x6e\x2f\x6f\x75\x74\x29\x0a\x09\x43\x09\x43\x68\x61\x6e" \
-"\x67\x65\x20\x74\x6f\x20\x44\x49\x52\x20\x62\x65\x66\x6f\x72\x65" \
-"\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x0a\x09\x76\x09\x56\x65" \
-"\x72\x62\x6f\x73\x65\x0a\x09\x7a\x09\x28\x44\x65\x29\x63\x6f\x6d" \
-"\x70\x72\x65\x73\x73\x20\x75\x73\x69\x6e\x67\x20\x67\x7a\x69\x70" \
-"\x0a\x09\x6a\x09\x28\x44\x65\x29\x63\x6f\x6d\x70\x72\x65\x73\x73" \
-"\x20\x75\x73\x69\x6e\x67\x20\x62\x7a\x69\x70\x32\x0a\x09\x4f\x09" \
-"\x45\x78\x74\x72\x61\x63\x74\x20\x74\x6f\x20\x73\x74\x64\x6f\x75" \
-"\x74\x0a\x09\x68\x09\x46\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d\x6c" \
-"\x69\x6e\x6b\x73\x0a\x09\x6d\x09\x44\x6f\x6e\x27\x74\x20\x72\x65" \
-"\x73\x74\x6f\x72\x65\x20\x6d\x74\x69\x6d\x65\x0a\x09\x65\x78\x63" \
-"\x6c\x75\x64\x65\x09\x46\x69\x6c\x65\x20\x74\x6f\x20\x65\x78\x63" \
-"\x6c\x75\x64\x65\x0a\x09\x58\x09\x46\x69\x6c\x65\x20\x77\x69\x74" \
-"\x68\x20\x6e\x61\x6d\x65\x73\x20\x74\x6f\x20\x65\x78\x63\x6c\x75" \
-"\x64\x65\x0a\x09\x54\x09\x46\x69\x6c\x65\x20\x77\x69\x74\x68\x20" \
-"\x6e\x61\x6d\x65\x73\x20\x74\x6f\x20\x69\x6e\x63\x6c\x75\x64\x65" \
-"\x00\x5b\x2d\x61\x69\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e" \
-"\x0a\x0a\x43\x6f\x70\x79\x20\x73\x74\x64\x69\x6e\x20\x74\x6f\x20" \
-"\x65\x61\x63\x68\x20\x46\x49\x4c\x45\x2c\x20\x61\x6e\x64\x20\x61" \
-"\x6c\x73\x6f\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x0a\x09" \
-"\x2d\x61\x09\x41\x70\x70\x65\x6e\x64\x20\x74\x6f\x20\x74\x68\x65" \
-"\x20\x67\x69\x76\x65\x6e\x20\x46\x49\x4c\x45\x73\x2c\x20\x64\x6f" \
-"\x6e\x27\x74\x20\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x0a\x09\x2d" \
-"\x69\x09\x49\x67\x6e\x6f\x72\x65\x20\x69\x6e\x74\x65\x72\x72\x75" \
-"\x70\x74\x20\x73\x69\x67\x6e\x61\x6c\x73\x20\x28\x53\x49\x47\x49" \
-"\x4e\x54\x29\x00\x45\x58\x50\x52\x45\x53\x53\x49\x4f\x4e\x20\x5d" \
-"\x0a\x0a\x43\x68\x65\x63\x6b\x20\x66\x69\x6c\x65\x20\x74\x79\x70" \
-"\x65\x73\x2c\x20\x63\x6f\x6d\x70\x61\x72\x65\x20\x76\x61\x6c\x75" \
-"\x65\x73\x20\x65\x74\x63\x2e\x20\x52\x65\x74\x75\x72\x6e\x20\x61" \
-"\x20\x30\x2f\x31\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x0a\x64" \
-"\x65\x70\x65\x6e\x64\x69\x6e\x67\x20\x6f\x6e\x20\x6c\x6f\x67\x69" \
-"\x63\x61\x6c\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x45\x58\x50" \
-"\x52\x45\x53\x53\x49\x4f\x4e\x00\x5b\x2d\x76\x5d\x20\x50\x52\x4f" \
-"\x47\x20\x41\x52\x47\x53\x0a\x0a\x52\x75\x6e\x20\x50\x52\x4f\x47" \
-"\x2c\x20\x64\x69\x73\x70\x6c\x61\x79\x20\x72\x65\x73\x6f\x75\x72" \
-"\x63\x65\x20\x75\x73\x61\x67\x65\x20\x77\x68\x65\x6e\x20\x69\x74" \
-"\x20\x65\x78\x69\x74\x73\x0a\x0a\x09\x2d\x76\x09\x56\x65\x72\x62" \
-"\x6f\x73\x65\x00\x5b\x2d\x62\x5d\x20\x5b\x2d\x6e\x43\x4f\x55\x4e" \
-"\x54\x5d\x20\x5b\x2d\x64\x53\x45\x43\x4f\x4e\x44\x53\x5d\x20\x5b" \
-"\x2d\x6d\x5d\x0a\x0a\x50\x72\x6f\x76\x69\x64\x65\x20\x61\x20\x76" \
-"\x69\x65\x77\x20\x6f\x66\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x61" \
-"\x63\x74\x69\x76\x69\x74\x79\x20\x69\x6e\x20\x72\x65\x61\x6c\x20" \
-"\x74\x69\x6d\x65\x2e\x0a\x52\x65\x61\x64\x20\x74\x68\x65\x20\x73" \
-"\x74\x61\x74\x75\x73\x20\x6f\x66\x20\x61\x6c\x6c\x20\x70\x72\x6f" \
-"\x63\x65\x73\x73\x65\x73\x20\x66\x72\x6f\x6d\x20\x2f\x70\x72\x6f" \
-"\x63\x20\x65\x61\x63\x68\x20\x53\x45\x43\x4f\x4e\x44\x53\x0a\x61" \
-"\x6e\x64\x20\x64\x69\x73\x70\x6c\x61\x79\x20\x61\x20\x73\x63\x72" \
-"\x65\x65\x6e\x66\x75\x6c\x20\x6f\x66\x20\x74\x68\x65\x6d\x2e\x0a" \
-"\x4b\x65\x79\x73\x3a\x0a\x09\x4e\x2f\x4d\x2f\x50\x2f\x54\x3a\x20" \
-"\x73\x68\x6f\x77\x20\x43\x50\x55\x20\x75\x73\x61\x67\x65\x2c\x20" \
-"\x73\x6f\x72\x74\x20\x62\x79\x20\x70\x69\x64\x2f\x6d\x65\x6d\x2f" \
-"\x63\x70\x75\x2f\x74\x69\x6d\x65\x0a\x09\x53\x3a\x20\x73\x68\x6f" \
-"\x77\x20\x6d\x65\x6d\x6f\x72\x79\x0a\x09\x52\x3a\x20\x72\x65\x76" \
-"\x65\x72\x73\x65\x20\x73\x6f\x72\x74\x0a\x09\x48\x3a\x20\x74\x6f" \
-"\x67\x67\x6c\x65\x20\x74\x68\x72\x65\x61\x64\x73\x0a\x09\x51\x2c" \
-"\x5e\x43\x3a\x20\x65\x78\x69\x74\x0a\x0a\x4f\x70\x74\x69\x6f\x6e" \
-"\x73\x3a\x0a\x09\x2d\x62\x09\x42\x61\x74\x63\x68\x20\x6d\x6f\x64" \
-"\x65\x0a\x09\x2d\x6e\x20\x4e\x09\x45\x78\x69\x74\x20\x61\x66\x74" \
-"\x65\x72\x20\x4e\x20\x69\x74\x65\x72\x61\x74\x69\x6f\x6e\x73\x0a" \
-"\x09\x2d\x64\x20\x4e\x09\x44\x65\x6c\x61\x79\x20\x62\x65\x74\x77" \
-"\x65\x65\x6e\x20\x75\x70\x64\x61\x74\x65\x73\x0a\x09\x2d\x6d\x09" \
-"\x53\x61\x6d\x65\x20\x61\x73\x20\x27\x73\x27\x20\x6b\x65\x79\x00" \
-"\x5b\x2d\x63\x5d\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x0a\x0a\x55\x70" \
-"\x64\x61\x74\x65\x20\x74\x68\x65\x20\x6c\x61\x73\x74\x2d\x6d\x6f" \
-"\x64\x69\x66\x69\x65\x64\x20\x64\x61\x74\x65\x20\x6f\x6e\x20\x74" \
-"\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x46\x49\x4c\x45\x5b\x73\x5d" \
-"\x0a\x0a\x09\x2d\x63\x09\x44\x6f\x6e\x27\x74\x20\x63\x72\x65\x61" \
-"\x74\x65\x20\x66\x69\x6c\x65\x73\x00\x5b\x2d\x63\x64\x73\x5d\x20" \
-"\x53\x54\x52\x49\x4e\x47\x31\x20\x5b\x53\x54\x52\x49\x4e\x47\x32" \
-"\x5d\x0a\x0a\x54\x72\x61\x6e\x73\x6c\x61\x74\x65\x2c\x20\x73\x71" \
-"\x75\x65\x65\x7a\x65\x2c\x20\x6f\x72\x20\x64\x65\x6c\x65\x74\x65" \
-"\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x66\x72\x6f\x6d" \
-"\x20\x73\x74\x64\x69\x6e\x2c\x20\x77\x72\x69\x74\x69\x6e\x67\x20" \
-"\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x0a\x09\x2d\x63\x09\x54" \
-"\x61\x6b\x65\x20\x63\x6f\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x20\x6f" \
-"\x66\x20\x53\x54\x52\x49\x4e\x47\x31\x0a\x09\x2d\x64\x09\x44\x65" \
-"\x6c\x65\x74\x65\x20\x69\x6e\x70\x75\x74\x20\x63\x68\x61\x72\x61" \
-"\x63\x74\x65\x72\x73\x20\x63\x6f\x64\x65\x64\x20\x53\x54\x52\x49" \
-"\x4e\x47\x31\x0a\x09\x2d\x73\x09\x53\x71\x75\x65\x65\x7a\x65\x20" \
-"\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x6f\x75\x74\x70\x75\x74\x20" \
-"\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x6f\x66\x20\x53\x54" \
-"\x52\x49\x4e\x47\x32\x20\x69\x6e\x74\x6f\x20\x6f\x6e\x65\x20\x63" \
-"\x68\x61\x72\x61\x63\x74\x65\x72\x00\x0a\x0a\x52\x65\x74\x75\x72" \
-"\x6e\x20\x61\x6e\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x6f" \
-"\x66\x20\x54\x52\x55\x45\x20\x28\x30\x29\x00\x5b\x77\x5d\x20\x5b" \
-"\x68\x5d\x0a\x0a\x50\x72\x69\x6e\x74\x20\x64\x69\x6d\x65\x6e\x73" \
-"\x69\x6f\x6e\x28\x73\x29\x20\x6f\x66\x20\x73\x74\x64\x69\x6e\x27" \
-"\x73\x20\x74\x65\x72\x6d\x69\x6e\x61\x6c\x2c\x20\x6f\x6e\x20\x65" \
-"\x72\x72\x6f\x72\x20\x72\x65\x74\x75\x72\x6e\x20\x38\x30\x78\x32" \
-"\x35\x00\x5b\x2d\x63\x20\x4d\x41\x58\x5f\x4d\x4f\x55\x4e\x54\x5f" \
-"\x43\x4f\x55\x4e\x54\x5d\x20\x5b\x2d\x69\x20\x44\x41\x59\x53\x5d" \
-"\x20\x5b\x2d\x43\x20\x4d\x4f\x55\x4e\x54\x5f\x43\x4f\x55\x4e\x54" \
-"\x5d\x20\x5b\x2d\x4c\x20\x4c\x41\x42\x45\x4c\x5d\x20\x42\x4c\x4f" \
-"\x43\x4b\x44\x45\x56\x0a\x0a\x41\x64\x6a\x75\x73\x74\x20\x66\x69" \
-"\x6c\x65\x73\x79\x73\x74\x65\x6d\x20\x6f\x70\x74\x69\x6f\x6e\x73" \
-"\x20\x6f\x6e\x20\x65\x78\x74\x5b\x32\x33\x5d\x20\x66\x69\x6c\x65" \
-"\x73\x79\x73\x74\x65\x6d\x73\x00\x5b\x4f\x50\x54\x49\x4f\x4e\x53" \
-"\x5d\x20\x46\x49\x4c\x45\x53\x59\x53\x54\x45\x4d\x7c\x44\x49\x52" \
-"\x45\x43\x54\x4f\x52\x59\x0a\x0a\x55\x6e\x6d\x6f\x75\x6e\x74\x20" \
-"\x66\x69\x6c\x65\x20\x73\x79\x73\x74\x65\x6d\x73\x0a\x0a\x09\x2d" \
-"\x72\x09\x54\x72\x79\x20\x74\x6f\x20\x72\x65\x6d\x6f\x75\x6e\x74" \
-"\x20\x64\x65\x76\x69\x63\x65\x73\x20\x61\x73\x20\x72\x65\x61\x64" \
-"\x2d\x6f\x6e\x6c\x79\x20\x69\x66\x20\x6d\x6f\x75\x6e\x74\x20\x69" \
-"\x73\x20\x62\x75\x73\x79\x0a\x09\x2d\x6c\x09\x4c\x61\x7a\x79\x20" \
-"\x75\x6d\x6f\x75\x6e\x74\x20\x28\x64\x65\x74\x61\x63\x68\x20\x66" \
-"\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x29\x0a\x09\x2d\x66\x09\x46" \
-"\x6f\x72\x63\x65\x20\x75\x6d\x6f\x75\x6e\x74\x20\x28\x69\x2e\x65" \
-"\x2e\x2c\x20\x75\x6e\x72\x65\x61\x63\x68\x61\x62\x6c\x65\x20\x4e" \
-"\x46\x53\x20\x73\x65\x72\x76\x65\x72\x29\x0a\x09\x2d\x64\x09\x46" \
-"\x72\x65\x65\x20\x6c\x6f\x6f\x70\x20\x64\x65\x76\x69\x63\x65\x20" \
-"\x65\x76\x65\x6e\x20\x69\x66\x20\x69\x74\x20\x68\x61\x73\x20\x62" \
-"\x65\x65\x6e\x20\x75\x73\x65\x64\x00\x5b\x2d\x61\x6d\x6e\x72\x73" \
-"\x70\x76\x5d\x0a\x0a\x50\x72\x69\x6e\x74\x20\x73\x79\x73\x74\x65" \
-"\x6d\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x0a\x09" \
-"\x2d\x61\x09\x50\x72\x69\x6e\x74\x20\x61\x6c\x6c\x0a\x09\x2d\x6d" \
-"\x09\x54\x68\x65\x20\x6d\x61\x63\x68\x69\x6e\x65\x20\x28\x68\x61" \
-"\x72\x64\x77\x61\x72\x65\x29\x20\x74\x79\x70\x65\x0a\x09\x2d\x6e" \
-"\x09\x48\x6f\x73\x74\x6e\x61\x6d\x65\x0a\x09\x2d\x72\x09\x4f\x53" \
-"\x20\x72\x65\x6c\x65\x61\x73\x65\x0a\x09\x2d\x73\x09\x4f\x53\x20" \
-"\x6e\x61\x6d\x65\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x09" \
-"\x2d\x70\x09\x50\x72\x6f\x63\x65\x73\x73\x6f\x72\x20\x74\x79\x70" \
-"\x65\x0a\x09\x2d\x76\x09\x4f\x53\x20\x76\x65\x72\x73\x69\x6f\x6e" \
-"\x00\x5b\x2d\x66\x61\x5d\x5b\x2d\x74\x20\x4e\x5d\x20\x5b\x46\x49" \
-"\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f\x6e\x76\x65\x72\x74\x20" \
-"\x73\x70\x61\x63\x65\x73\x20\x74\x6f\x20\x74\x61\x62\x73\x2c\x20" \
-"\x77\x72\x69\x74\x69\x6e\x67\x20\x74\x6f\x20\x73\x74\x64\x6f\x75" \
-"\x74\x0a\x0a\x09\x2d\x61\x2c\x2d\x2d\x61\x6c\x6c\x09\x43\x6f\x6e" \
-"\x76\x65\x72\x74\x20\x61\x6c\x6c\x20\x62\x6c\x61\x6e\x6b\x73\x0a" \
-"\x09\x2d\x66\x2c\x2d\x2d\x66\x69\x72\x73\x74\x2d\x6f\x6e\x6c\x79" \
-"\x09\x43\x6f\x6e\x76\x65\x72\x74\x20\x6f\x6e\x6c\x79\x20\x6c\x65" \
-"\x61\x64\x69\x6e\x67\x20\x62\x6c\x61\x6e\x6b\x73\x0a\x09\x2d\x74" \
-"\x2c\x2d\x2d\x74\x61\x62\x73\x3d\x4e\x09\x54\x61\x62\x73\x74\x6f" \
-"\x70\x73\x20\x65\x76\x65\x72\x79\x20\x4e\x20\x63\x68\x61\x72\x73" \
-"\x00\x5b\x2d\x63\x64\x75\x5d\x5b\x2d\x66\x2c\x73\x2c\x77\x20\x4e" \
-"\x5d\x20\x5b\x49\x4e\x50\x55\x54\x20\x5b\x4f\x55\x54\x50\x55\x54" \
-"\x5d\x5d\x0a\x0a\x44\x69\x73\x63\x61\x72\x64\x20\x64\x75\x70\x6c" \
-"\x69\x63\x61\x74\x65\x20\x6c\x69\x6e\x65\x73\x0a\x0a\x09\x2d\x63" \
-"\x09\x50\x72\x65\x66\x69\x78\x20\x6c\x69\x6e\x65\x73\x20\x62\x79" \
-"\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x6f" \
-"\x63\x63\x75\x72\x72\x65\x6e\x63\x65\x73\x0a\x09\x2d\x64\x09\x4f" \
-"\x6e\x6c\x79\x20\x70\x72\x69\x6e\x74\x20\x64\x75\x70\x6c\x69\x63" \
-"\x61\x74\x65\x20\x6c\x69\x6e\x65\x73\x0a\x09\x2d\x75\x09\x4f\x6e" \
-"\x6c\x79\x20\x70\x72\x69\x6e\x74\x20\x75\x6e\x69\x71\x75\x65\x20" \
-"\x6c\x69\x6e\x65\x73\x0a\x09\x2d\x66\x20\x4e\x09\x53\x6b\x69\x70" \
-"\x20\x66\x69\x72\x73\x74\x20\x4e\x20\x66\x69\x65\x6c\x64\x73\x0a" \
-"\x09\x2d\x73\x20\x4e\x09\x53\x6b\x69\x70\x20\x66\x69\x72\x73\x74" \
-"\x20\x4e\x20\x63\x68\x61\x72\x73\x20\x28\x61\x66\x74\x65\x72\x20" \
-"\x61\x6e\x79\x20\x73\x6b\x69\x70\x70\x65\x64\x20\x66\x69\x65\x6c" \
-"\x64\x73\x29\x0a\x09\x2d\x77\x20\x4e\x09\x43\x6f\x6d\x70\x61\x72" \
-"\x65\x20\x4e\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x69" \
-"\x6e\x20\x6c\x69\x6e\x65\x00\x5b\x2d\x75\x64\x5d\x20\x5b\x46\x49" \
-"\x4c\x45\x5d\x0a\x0a\x43\x6f\x6e\x76\x65\x72\x74\x20\x46\x49\x4c" \
-"\x45\x20\x69\x6e\x2d\x70\x6c\x61\x63\x65\x20\x66\x72\x6f\x6d\x20" \
-"\x55\x6e\x69\x78\x20\x74\x6f\x20\x44\x4f\x53\x20\x66\x6f\x72\x6d" \
-"\x61\x74\x2e\x0a\x57\x68\x65\x6e\x20\x6e\x6f\x20\x66\x69\x6c\x65" \
-"\x20\x69\x73\x20\x67\x69\x76\x65\x6e\x2c\x20\x75\x73\x65\x20\x73" \
-"\x74\x64\x69\x6e\x2f\x73\x74\x64\x6f\x75\x74\x2e\x0a\x0a\x09\x2d" \
-"\x75\x09\x64\x6f\x73\x32\x75\x6e\x69\x78\x0a\x09\x2d\x64\x09\x75" \
-"\x6e\x69\x78\x32\x64\x6f\x73\x00\x5b\x2d\x63\x66\x5d\x20\x5b\x46" \
-"\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72" \
-"\x65\x73\x73\x20\x46\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64" \
-"\x69\x6e\x29\x0a\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20\x74" \
-"\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46\x6f\x72" \
-"\x63\x65\x00\x5b\x2d\x63\x66\x76\x43\x46\x5d\x20\x5b\x46\x49\x4c" \
-"\x45\x5d\x2e\x2e\x2e\x0a\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65" \
-"\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46" \
-"\x6f\x72\x63\x65\x0a\x09\x2d\x76\x09\x56\x65\x72\x62\x6f\x73\x65" \
-"\x0a\x09\x2d\x46\x09\x44\x6f\x6e\x27\x74\x20\x73\x74\x6f\x72\x65" \
-"\x20\x6f\x72\x20\x76\x65\x72\x69\x66\x79\x20\x63\x68\x65\x63\x6b" \
-"\x73\x75\x6d\x00\x5b\x2d\x63\x66\x5d\x20\x5b\x46\x49\x4c\x45\x5d" \
-"\x2e\x2e\x2e\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x20" \
-"\x46\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29\x0a" \
-"\x0a\x09\x2d\x63\x09\x57\x72\x69\x74\x65\x20\x74\x6f\x20\x73\x74" \
-"\x64\x6f\x75\x74\x0a\x09\x2d\x66\x09\x46\x6f\x72\x63\x65\x00\x5b" \
-"\x2d\x6c\x6e\x6f\x70\x71\x5d\x20\x46\x49\x4c\x45\x5b\x2e\x7a\x69" \
-"\x70\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x20\x5b\x2d\x78" \
-"\x20\x46\x49\x4c\x45\x2e\x2e\x2e\x5d\x20\x5b\x2d\x64\x20\x44\x49" \
-"\x52\x5d\x0a\x0a\x45\x78\x74\x72\x61\x63\x74\x20\x46\x49\x4c\x45" \
-"\x73\x20\x66\x72\x6f\x6d\x20\x5a\x49\x50\x20\x61\x72\x63\x68\x69" \
-"\x76\x65\x0a\x0a\x09\x2d\x6c\x09\x4c\x69\x73\x74\x20\x63\x6f\x6e" \
-"\x74\x65\x6e\x74\x73\x20\x28\x77\x69\x74\x68\x20\x2d\x71\x20\x66" \
-"\x6f\x72\x20\x73\x68\x6f\x72\x74\x20\x66\x6f\x72\x6d\x29\x0a\x09" \
-"\x2d\x6e\x09\x4e\x65\x76\x65\x72\x20\x6f\x76\x65\x72\x77\x72\x69" \
-"\x74\x65\x20\x66\x69\x6c\x65\x73\x20\x28\x64\x65\x66\x61\x75\x6c" \
-"\x74\x3a\x20\x61\x73\x6b\x29\x0a\x09\x2d\x6f\x09\x4f\x76\x65\x72" \
-"\x77\x72\x69\x74\x65\x0a\x09\x2d\x70\x09\x50\x72\x69\x6e\x74\x20" \
-"\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x0a\x09\x2d\x71\x09\x51\x75" \
-"\x69\x65\x74\x0a\x09\x2d\x78\x20\x46\x49\x4c\x45\x09\x45\x78\x63" \
-"\x6c\x75\x64\x65\x20\x46\x49\x4c\x45\x73\x0a\x09\x2d\x64\x20\x44" \
-"\x49\x52\x09\x45\x78\x74\x72\x61\x63\x74\x20\x69\x6e\x74\x6f\x20" \
-"\x44\x49\x52\x00\x0a\x0a\x44\x69\x73\x70\x6c\x61\x79\x20\x74\x68" \
-"\x65\x20\x74\x69\x6d\x65\x20\x73\x69\x6e\x63\x65\x20\x74\x68\x65" \
-"\x20\x6c\x61\x73\x74\x20\x62\x6f\x6f\x74\x00\x4e\x0a\x0a\x50\x61" \
-"\x75\x73\x65\x20\x66\x6f\x72\x20\x4e\x20\x6d\x69\x63\x72\x6f\x73" \
-"\x65\x63\x6f\x6e\x64\x73\x00\x5b\x2d\x6f\x20\x4f\x55\x54\x46\x49" \
-"\x4c\x45\x5d\x20\x5b\x49\x4e\x46\x49\x4c\x45\x5d\x0a\x0a\x55\x75" \
-"\x64\x65\x63\x6f\x64\x65\x20\x61\x20\x66\x69\x6c\x65\x0a\x46\x69" \
-"\x6e\x64\x73\x20\x4f\x55\x54\x46\x49\x4c\x45\x20\x69\x6e\x20\x75" \
-"\x75\x65\x6e\x63\x6f\x64\x65\x64\x20\x73\x6f\x75\x72\x63\x65\x20" \
-"\x75\x6e\x6c\x65\x73\x73\x20\x2d\x6f\x20\x69\x73\x20\x67\x69\x76" \
-"\x65\x6e\x00\x5b\x2d\x6d\x5d\x20\x5b\x46\x49\x4c\x45\x5d\x20\x53" \
-"\x54\x4f\x52\x45\x44\x5f\x46\x49\x4c\x45\x4e\x41\x4d\x45\x0a\x0a" \
-"\x55\x75\x65\x6e\x63\x6f\x64\x65\x20\x46\x49\x4c\x45\x20\x28\x6f" \
-"\x72\x20\x73\x74\x64\x69\x6e\x29\x20\x74\x6f\x20\x73\x74\x64\x6f" \
-"\x75\x74\x0a\x0a\x09\x2d\x6d\x09\x55\x73\x65\x20\x62\x61\x73\x65" \
-"\x36\x34\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x70\x65\x72\x20" \
-"\x52\x46\x43\x31\x35\x32\x31\x00\x5b\x2d\x6e\x20\x53\x45\x43\x5d" \
-"\x20\x5b\x2d\x74\x5d\x20\x50\x52\x4f\x47\x20\x41\x52\x47\x53\x0a" \
-"\x0a\x52\x75\x6e\x20\x50\x52\x4f\x47\x20\x70\x65\x72\x69\x6f\x64" \
-"\x69\x63\x61\x6c\x6c\x79\x0a\x0a\x09\x2d\x6e\x09\x4c\x6f\x6f\x70" \
-"\x20\x70\x65\x72\x69\x6f\x64\x20\x69\x6e\x20\x73\x65\x63\x6f\x6e" \
-"\x64\x73\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x32\x29\x0a\x09" \
-"\x2d\x74\x09\x44\x6f\x6e\x27\x74\x20\x70\x72\x69\x6e\x74\x20\x68" \
-"\x65\x61\x64\x65\x72\x00\x5b\x2d\x63\x6d\x6c\x77\x4c\x5d\x20\x5b" \
-"\x46\x49\x4c\x45\x5d\x2e\x2e\x2e\x0a\x0a\x43\x6f\x75\x6e\x74\x20" \
-"\x6c\x69\x6e\x65\x73\x2c\x20\x77\x6f\x72\x64\x73\x2c\x20\x61\x6e" \
-"\x64\x20\x62\x79\x74\x65\x73\x20\x66\x6f\x72\x20\x65\x61\x63\x68" \
-"\x20\x46\x49\x4c\x45\x20\x28\x6f\x72\x20\x73\x74\x64\x69\x6e\x29" \
-"\x0a\x0a\x09\x2d\x63\x09\x43\x6f\x75\x6e\x74\x20\x62\x79\x74\x65" \
-"\x73\x0a\x09\x2d\x6d\x09\x43\x6f\x75\x6e\x74\x20\x63\x68\x61\x72" \
-"\x61\x63\x74\x65\x72\x73\x0a\x09\x2d\x6c\x09\x43\x6f\x75\x6e\x74" \
-"\x20\x6e\x65\x77\x6c\x69\x6e\x65\x73\x0a\x09\x2d\x77\x09\x43\x6f" \
-"\x75\x6e\x74\x20\x77\x6f\x72\x64\x73\x0a\x09\x2d\x4c\x09\x50\x72" \
-"\x69\x6e\x74\x20\x6c\x6f\x6e\x67\x65\x73\x74\x20\x6c\x69\x6e\x65" \
-"\x20\x6c\x65\x6e\x67\x74\x68\x00\x5b\x43\x4f\x4d\x4d\x41\x4e\x44" \
-"\x5d\x2e\x2e\x2e\x0a\x0a\x4c\x6f\x63\x61\x74\x65\x20\x61\x20\x43" \
-"\x4f\x4d\x4d\x41\x4e\x44\x00\x0a\x0a\x50\x72\x69\x6e\x74\x20\x74" \
-"\x68\x65\x20\x75\x73\x65\x72\x20\x6e\x61\x6d\x65\x20\x61\x73\x73" \
-"\x6f\x63\x69\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65" \
-"\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x65\x66\x66\x65\x63\x74\x69" \
-"\x76\x65\x20\x75\x73\x65\x72\x20\x69\x64\x00\x5b\x4f\x50\x54\x49" \
-"\x4f\x4e\x53\x5d\x20\x5b\x50\x52\x4f\x47\x20\x41\x52\x47\x53\x5d" \
-"\x0a\x0a\x52\x75\x6e\x20\x50\x52\x4f\x47\x20\x6f\x6e\x20\x65\x76" \
-"\x65\x72\x79\x20\x69\x74\x65\x6d\x20\x67\x69\x76\x65\x6e\x20\x62" \
-"\x79\x20\x73\x74\x64\x69\x6e\x0a\x0a\x09\x2d\x70\x09\x41\x73\x6b" \
-"\x20\x75\x73\x65\x72\x20\x77\x68\x65\x74\x68\x65\x72\x20\x74\x6f" \
-"\x20\x72\x75\x6e\x20\x65\x61\x63\x68\x20\x63\x6f\x6d\x6d\x61\x6e" \
-"\x64\x0a\x09\x2d\x72\x09\x44\x6f\x6e\x27\x74\x20\x72\x75\x6e\x20" \
-"\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x69\x66\x20\x69\x6e\x70\x75\x74" \
-"\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x0a\x09\x2d\x30\x09\x49\x6e" \
-"\x70\x75\x74\x20\x69\x73\x20\x73\x65\x70\x61\x72\x61\x74\x65\x64" \
-"\x20\x62\x79\x20\x4e\x55\x4c\x20\x63\x68\x61\x72\x61\x63\x74\x65" \
-"\x72\x73\x0a\x09\x2d\x74\x09\x50\x72\x69\x6e\x74\x20\x74\x68\x65" \
-"\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6f\x6e\x20\x73\x74\x64\x65" \
-"\x72\x72\x20\x62\x65\x66\x6f\x72\x65\x20\x65\x78\x65\x63\x75\x74" \
-"\x69\x6f\x6e\x0a\x09\x2d\x65\x5b\x53\x54\x52\x5d\x09\x53\x54\x52" \
-"\x20\x73\x74\x6f\x70\x73\x20\x69\x6e\x70\x75\x74\x20\x70\x72\x6f" \
-"\x63\x65\x73\x73\x69\x6e\x67\x0a\x09\x2d\x6e\x20\x4e\x09\x50\x61" \
-"\x73\x73\x20\x6e\x6f\x20\x6d\x6f\x72\x65\x20\x74\x68\x61\x6e\x20" \
-"\x4e\x20\x61\x72\x67\x73\x20\x74\x6f\x20\x50\x52\x4f\x47\x0a\x09" \
-"\x2d\x73\x20\x4e\x09\x50\x61\x73\x73\x20\x63\x6f\x6d\x6d\x61\x6e" \
-"\x64\x20\x6c\x69\x6e\x65\x20\x6f\x66\x20\x6e\x6f\x20\x6d\x6f\x72" \
-"\x65\x20\x74\x68\x61\x6e\x20\x4e\x20\x62\x79\x74\x65\x73\x00\x46" \
-"\x49\x4c\x45\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65\x73\x73\x20" \
-"\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x00\x5b\x53\x54\x52\x49\x4e" \
-"\x47\x5d\x0a\x0a\x52\x65\x70\x65\x61\x74\x65\x64\x6c\x79\x20\x6f" \
-"\x75\x74\x70\x75\x74\x20\x61\x20\x6c\x69\x6e\x65\x20\x77\x69\x74" \
-"\x68\x20\x53\x54\x52\x49\x4e\x47\x2c\x20\x6f\x72\x20\x27\x79\x27" \
-"\x00\x46\x49\x4c\x45\x0a\x0a\x44\x65\x63\x6f\x6d\x70\x72\x65\x73" \
-"\x73\x20\x74\x6f\x20\x73\x74\x64\x6f\x75\x74\x00" \
-
-#define PACKED_USAGE \
-0x68,0x31,0x31,0x41,0x59,0x26,0x53,0x59,0x9b,0x0d,0xf8,0x5c,0x00,0x14,0x57,0x5f, \
-0x80,0x72,0x70,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x60, \
-0x3c,0x0d,0xb1,0xf4,0x00,0xbd,0xc0,0x1a,0x16,0x1d,0xde,0xd9,0x24,0x51,0xef,0xae, \
-0x01,0xc8,0x00,0xf6,0x62,0x80,0x00,0x0a,0x0b,0x90,0x0f,0x80,0x0d,0xf6,0xe7,0x76, \
-0xde,0xc3,0x8e,0xbd,0xa5,0x23,0x4c,0xb1,0x6a,0xb6,0x2c,0x33,0x2c,0x2b,0xd1,0xd3, \
-0x9a,0xdd,0xe1,0xa7,0x67,0xbb,0xed,0xd4,0xa6,0xd8,0xf5,0x06,0xd8,0x76,0xd0,0xfb, \
-0x90,0x50,0x37,0xac,0xcf,0x75,0x7b,0xdc,0xc7,0x62,0x8b,0xc1,0x66,0xc7,0xd6,0x9d, \
-0x7a,0x6b,0xb5,0x64,0x53,0x36,0xd9,0xad,0xb6,0xda,0x75,0x89,0x52,0x15,0x2b,0xb3, \
-0x29,0x51,0xd8,0xee,0x68,0xa4,0x8a,0xa3,0xed,0x28,0x52,0xc8,0xed,0xec,0xe6,0xf4, \
-0x1b,0x3d,0xeb,0x92,0x59,0xb4,0x2d,0x35,0xb0,0xde,0x37,0xc1,0xa1,0x04,0xd0,0x00, \
-0x11,0xa3,0x44,0xc4,0xc0,0x4d,0x1a,0x4c,0x98,0x8d,0x02,0x34,0xc2,0x36,0x84,0xda, \
-0xa6,0xc0,0x4c,0xa7,0x94,0x34,0x1a,0x68,0x10,0x10,0x42,0x64,0x04,0xca,0x61,0xa0, \
-0x99,0x26,0x41,0xa6,0x49,0x91,0xa0,0xf5,0x03,0x4d,0x0d,0x1e,0xa0,0xd0,0x01,0xa0, \
-0x69,0x88,0x42,0x4a,0x79,0x12,0x7a,0x4c,0x0d,0x4d,0xa8,0x7a,0x9a,0x0d,0x00,0x0d, \
-0x00,0x00,0x00,0x00,0x0d,0x00,0x01,0x26,0x94,0x22,0x08,0x68,0x26,0x9a,0x34,0x26, \
-0xa7,0x94,0xc9,0x91,0x8a,0x7a,0x99,0x01,0xb5,0x0f,0x50,0x00,0x68,0x00,0x1a,0x00, \
-0x01,0x12,0x82,0x13,0x26,0x81,0x53,0xda,0x26,0xa9,0xf9,0x35,0x4d,0x36,0x69,0x23, \
-0x27,0xa4,0xf4,0xd1,0xea,0x9a,0x69,0x88,0x3d,0x40,0x68,0x01,0xa0,0x19,0x00,0xd0, \
-0x48,0x88,0x40,0x20,0x04,0xd0,0x98,0x99,0x35,0x4f,0x46,0x0d,0x08,0x1a,0xa7,0x8d, \
-0x11,0xa6,0xa9,0xfa,0x28,0x62,0x34,0x19,0x01,0x93,0xd4,0x6d,0x4f,0x9c,0xdd,0x7e, \
-0x0b,0x7c,0x11,0x7e,0x3e,0xbc,0xae,0xf9,0x62,0x84,0x29,0x9f,0xb2,0xcd,0x6f,0x2f, \
-0xfb,0xf1,0x3d,0xfc,0xdd,0x5f,0xb9,0xef,0x6a,0x08,0x9f,0x73,0x28,0xe8,0x64,0x2f, \
-0x4d,0xf2,0x72,0x8e,0x73,0xd7,0xdd,0xd1,0xae,0x8c,0x84,0x3b,0xbf,0xa2,0xe4,0x95, \
-0xbf,0xbb,0xe5,0xad,0x50,0xd7,0xb0,0xdc,0x6b,0x34,0xd7,0x25,0x55,0xd7,0x15,0x71, \
-0x63,0x3d,0x35,0x37,0x8e,0x9c,0xbd,0x4d,0x5a,0x56,0xc5,0xc7,0xd1,0xc5,0x44,0xaa, \
-0xeb,0xab,0x72,0xd6,0x26,0x05,0xd6,0x7f,0xd7,0x9e,0x99,0xc2,0xfe,0xdc,0x5e,0x0e, \
-0x05,0xcf,0xfd,0x1c,0xff,0x15,0xb4,0x6b,0xcc,0x40,0x6d,0x8e,0x45,0x3d,0x0a,0xe7, \
-0x5b,0xcd,0xe8,0x83,0x48,0xab,0xb7,0xdc,0x38,0x4f,0x62,0x69,0x26,0x82,0xce,0x04, \
-0x53,0x20,0x43,0x22,0x57,0xfb,0xeb,0x52,0xaf,0xcc,0xcf,0x63,0xa4,0xf3,0xfd,0x0f, \
-0x13,0xef,0x03,0xb8,0x4f,0xf8,0xb8,0x7e,0x74,0x62,0x96,0x4d,0x31,0x6c,0xfe,0x38, \
-0x93,0xf1,0x7e,0x6a,0x7e,0xd7,0xde,0xfb,0xb6,0xee,0x3a,0x63,0x16,0x8d,0x36,0x52, \
-0xe3,0x91,0x4f,0xd6,0x9d,0xb4,0xc9,0x5f,0x15,0x91,0x24,0x85,0xf9,0x38,0xa5,0x7b, \
-0x6c,0x75,0x5f,0x7b,0x83,0x44,0xc1,0x4f,0xdb,0x0b,0x8c,0xcc,0xaa,0x34,0x06,0x66, \
-0x7f,0x9c,0x5a,0xad,0x5a,0xb1,0xa6,0xc0,0x10,0x07,0xeb,0xec,0x8f,0x86,0xb8,0x40, \
-0x50,0x75,0xff,0x0f,0x47,0xb7,0x57,0xe9,0xf2,0xa6,0x1e,0xa3,0x9e,0x1e,0xa7,0xfd, \
-0x1f,0x67,0x0f,0x00,0xa5,0x57,0xc7,0xbf,0x53,0xc6,0x26,0x2d,0x8a,0xaa,0x14,0xd6, \
-0xe1,0x1c,0x32,0x18,0x0c,0x0b,0xf5,0x0c,0xff,0x7e,0x0c,0x47,0xa3,0xba,0xe7,0xe7, \
-0xc6,0xc1,0xad,0x7a,0x69,0x83,0x1d,0x75,0x9a,0x80,0x9c,0xcc,0xe2,0xdb,0x29,0x31, \
-0x55,0xad,0x4f,0xcd,0x86,0xb8,0x31,0x43,0xba,0xd9,0xd7,0x1c,0x17,0x44,0x80,0x2e, \
-0x39,0x1b,0x5d,0xf6,0x53,0x88,0xbb,0xfb,0x04,0x7b,0xec,0x80,0x45,0x7e,0x5b,0x9e, \
-0x6a,0xab,0x6f,0x15,0x5e,0x0f,0x95,0xee,0x1a,0x04,0x50,0xc9,0xdc,0xd0,0xbb,0xd6, \
-0xf1,0x80,0xdc,0x7b,0x0a,0xe2,0x0a,0x06,0x40,0x63,0xdc,0xae,0xc3,0x1c,0xdc,0xba, \
-0x32,0xc1,0xc8,0x1b,0xa8,0xed,0x1f,0x0d,0xbf,0x05,0x39,0x9a,0xe9,0xde,0x4c,0xcd, \
-0xdd,0x46,0xe1,0xb2,0x85,0x67,0xb3,0x9a,0xde,0x4d,0x2d,0xda,0x9a,0x82,0xc0,0x9b, \
-0x97,0x5a,0xa0,0x12,0x4a,0xaa,0xb0,0x6d,0x56,0x63,0x5d,0xae,0x0e,0x87,0x87,0x30, \
-0x97,0x88,0x18,0x58,0x39,0x0b,0x1e,0xc1,0x84,0x56,0x32,0xbf,0xae,0x81,0x33,0x16, \
-0xb4,0x0c,0x87,0x8d,0xe9,0xf6,0x78,0x5e,0x14,0xef,0x8d,0x56,0x7d,0x35,0x58,0x23, \
-0xe3,0x74,0xfb,0xf9,0x61,0xb7,0x86,0xfd,0x9c,0x9d,0x37,0x14,0x81,0xb0,0x42,0xb5, \
-0x66,0x70,0x74,0x0c,0x1b,0x45,0x42,0xe3,0x15,0xc6,0x88,0x34,0x70,0x5f,0x6e,0x57, \
-0xf1,0xe2,0x96,0x5d,0x47,0x7c,0xf3,0xe5,0xba,0xe0,0x06,0x15,0x50,0x02,0x1c,0x26, \
-0x3b,0x88,0x0c,0xcc,0x19,0x8b,0x54,0x14,0x43,0xd6,0xa7,0x42,0x60,0xa3,0x63,0x4f, \
-0xb6,0x00,0xab,0x12,0x7c,0x16,0xb3,0x02,0x78,0x9e,0xd0,0xcf,0xeb,0x7e,0x27,0x25, \
-0x35,0x34,0x9e,0x4e,0xf7,0x0a,0x39,0x84,0x22,0x17,0x72,0x25,0xec,0xcc,0x36,0xb6, \
-0xf7,0x0b,0x31,0x5b,0x91,0x79,0xd1,0x1d,0xba,0x3b,0xef,0x87,0xb3,0xe0,0x1d,0x37, \
-0xac,0xc7,0x1e,0x17,0xe7,0x6d,0xa1,0x56,0x2b,0x32,0x61,0x5b,0x75,0xea,0x83,0x32, \
-0xd3,0xfc,0xcc,0x2d,0xa2,0xe4,0x82,0xc3,0xb4,0x77,0x03,0x65,0xd9,0x5b,0x4a,0x03, \
-0xa8,0x1b,0x8c,0x65,0x81,0xbe,0x0c,0xb4,0x3e,0xf5,0xa0,0x00,0xf9,0x04,0xf3,0xc4, \
-0x46,0xbb,0xb6,0xed,0x77,0x65,0xe5,0x7f,0x85,0x2a,0x03,0xc4,0xe5,0xfd,0x90,0x08, \
-0x96,0x07,0xc9,0xa5,0x91,0x01,0x12,0xc4,0x48,0x7c,0x58,0x78,0x3c,0x8f,0x9a,0x9d, \
-0x9b,0x4a,0x2c,0x37,0x61,0x47,0xd2,0x30,0xd7,0xa3,0xcf,0xfa,0xb7,0xf7,0x7d,0x7d, \
-0xbf,0x6e,0x92,0xf4,0xf9,0x55,0x95,0x7d,0xde,0x3e,0xcf,0xbf,0xee,0x99,0xc3,0xee, \
-0xff,0x95,0xcf,0x8a,0xfc,0x59,0x41,0x86,0xf5,0x6e,0xc9,0x1f,0x74,0x8e,0xb6,0x86, \
-0xed,0x87,0x83,0xa6,0x82,0xac,0x05,0x12,0xac,0xa2,0x38,0xf9,0x3c,0x84,0x81,0xf6, \
-0x0e,0x9a,0xde,0x13,0xc0,0xa2,0x8a,0x74,0xde,0x1f,0x40,0x44,0x12,0x05,0xe7,0x2f, \
-0xaf,0x9d,0xa7,0xd1,0x38,0x02,0x5e,0xce,0x42,0xb2,0xe8,0x45,0xa5,0x40,0x85,0x96, \
-0x4e,0x66,0x91,0xd7,0x0c,0xe0,0x74,0x3a,0x90,0x07,0xb7,0x75,0x92,0x2e,0x49,0x07, \
-0xe8,0x34,0xe7,0x8d,0x31,0xeb,0xa9,0xfb,0x1e,0xbd,0x90,0xcd,0x3e,0x1f,0x80,0x65, \
-0xc5,0xfd,0x25,0x6a,0x15,0x57,0x86,0x9b,0x76,0x38,0x18,0x00,0x51,0x06,0x7b,0x6d, \
-0xd1,0xdd,0xaf,0xd9,0x6e,0xa1,0xf1,0x68,0x18,0xf4,0x7a,0x16,0xdf,0x4c,0xe0,0x72, \
-0xaa,0x99,0x1b,0x33,0x13,0xab,0x32,0x36,0x9d,0xa2,0x61,0xc9,0xe3,0x85,0xec,0xe1, \
-0x28,0x18,0x72,0x5c,0x96,0x1b,0xfe,0x3d,0x2c,0xf0,0x08,0x5b,0x30,0x1b,0x85,0x19, \
-0x8c,0x2d,0x30,0x31,0x59,0x0e,0x49,0x0b,0x6c,0x33,0x87,0xfa,0x88,0x50,0xdd,0x38, \
-0x31,0x7f,0x3e,0x3d,0x7a,0x0c,0x41,0x16,0xd4,0x32,0xf3,0xbf,0x8d,0xba,0x9a,0x49, \
-0x29,0x50,0xba,0x55,0x5d,0xe5,0x79,0xbc,0x06,0xbb,0x71,0x41,0x97,0xad,0x7e,0xbe, \
-0xa5,0x7b,0x63,0xad,0x6e,0x10,0xd5,0x62,0xfd,0xb1,0x57,0x54,0x11,0x21,0xa8,0xf0, \
-0x83,0x33,0xe8,0x71,0x3d,0x9d,0xcd,0x24,0x76,0xef,0x0d,0x8b,0x57,0x93,0x8f,0xd6, \
-0x58,0x42,0xf2,0x96,0x67,0x5a,0xeb,0x0e,0x44,0x6f,0xc1,0x53,0xf2,0x7a,0x8b,0x2a, \
-0xbb,0x7a,0x22,0x1e,0x08,0x82,0x3a,0xa3,0x7d,0x2f,0x75,0xa4,0x90,0x86,0x0f,0x3f, \
-0x09,0xc7,0x89,0xd9,0x79,0x40,0xfa,0x1f,0x2f,0x7d,0xf0,0xa8,0x18,0xfe,0x85,0x54, \
-0x39,0x9a,0xb3,0xb6,0x34,0xb3,0x99,0xbd,0x77,0x7f,0x86,0x74,0x51,0x18,0x82,0x05, \
-0xd5,0x4b,0x9a,0x83,0x93,0x7c,0xb1,0x6f,0x2a,0x29,0x04,0x37,0xb5,0x66,0x49,0xed, \
-0x6d,0x3c,0x1b,0x49,0xe1,0x4b,0xd4,0xf8,0x70,0x62,0x42,0xcb,0x92,0x35,0xfc,0x7a, \
-0xbb,0xd6,0xba,0x58,0x47,0xfb,0x4f,0x2f,0x7c,0x0d,0x6b,0x14,0x38,0x13,0xde,0xf1, \
-0xee,0xae,0x90,0x26,0x7e,0x04,0x74,0x04,0xf8,0xe0,0x0c,0xb2,0x87,0x60,0x24,0x96, \
-0xf4,0xa8,0xf8,0x37,0xf4,0x7b,0x76,0x6a,0xdd,0x58,0xfa,0xf6,0x38,0x61,0x2b,0x58, \
-0x7d,0xa0,0x75,0xe6,0x3e,0x57,0x5f,0x7e,0xf5,0xad,0x10,0x62,0xe4,0xe2,0xba,0x54, \
-0xa3,0xe2,0x32,0x29,0xe8,0x8b,0xfa,0x29,0x96,0xcb,0xbe,0x52,0x40,0xd7,0xf9,0x7e, \
-0xd1,0xe3,0x40,0x81,0x9d,0x50,0xe1,0x7d,0x1a,0xdd,0x3a,0xe8,0x84,0x2d,0x58,0x9b, \
-0x98,0xaf,0x5e,0x5c,0x5f,0xb1,0xcf,0xb2,0xe5,0x9e,0x54,0xee,0xd2,0x77,0xfb,0xfb, \
-0xf9,0x76,0xde,0xfe,0x5c,0x45,0x62,0xf6,0xa1,0x57,0xb1,0x46,0xdc,0xe0,0xea,0x72, \
-0x78,0xdb,0xa0,0x4f,0x71,0x85,0x73,0x8c,0x31,0xc9,0x4b,0x3b,0x2f,0x9b,0x8e,0xa4, \
-0xdb,0x17,0x54,0x36,0xc7,0x5f,0xa9,0xf7,0x9d,0xc8,0x06,0xc8,0x48,0x88,0x02,0x8b, \
-0xd2,0xd1,0x5e,0x4d,0x87,0xde,0x60,0x42,0xb1,0x42,0x0b,0x08,0xef,0x6b,0x20,0x9d, \
-0xcc,0xa1,0xd3,0x5d,0x3e,0x9f,0x2e,0x53,0x9f,0x43,0x5e,0x5a,0x32,0x2a,0xe1,0x5b, \
-0x06,0x8d,0x52,0xfb,0x7d,0x25,0xe3,0x8d,0xe1,0x57,0x3b,0x87,0x1a,0xd9,0x0a,0x27, \
-0x27,0x96,0xfd,0x00,0x1d,0x0d,0xa8,0x44,0xfe,0xf2,0x5a,0x44,0xd0,0x78,0x45,0x23, \
-0xa0,0x92,0x3a,0x30,0xf8,0x0a,0x05,0xda,0x6a,0x64,0x85,0xf9,0xae,0xd4,0x3e,0x98, \
-0x0a,0x83,0xe0,0xbd,0x8c,0xb7,0xf8,0xad,0x37,0xe5,0x8b,0xbf,0x76,0xfe,0x77,0xc8, \
-0xe9,0x8c,0x6e,0x7c,0x1d,0xbb,0x1e,0x1f,0x5b,0x73,0x13,0xc7,0xdc,0x43,0x81,0x20, \
-0x8e,0xd9,0x42,0x09,0xa1,0xdc,0x28,0x82,0x90,0x03,0xe5,0xc1,0x7c,0x90,0xb7,0x8f, \
-0xaf,0x73,0x8f,0xa8,0xb6,0x70,0xd5,0x25,0xe4,0x05,0x32,0xe4,0xc5,0x32,0xa7,0xe6, \
-0xb2,0x0d,0x9c,0x6f,0xc3,0x76,0x7c,0x83,0x1b,0x1d,0xef,0x8f,0x66,0xd8,0xf4,0x53, \
-0x48,0x6f,0xdd,0xa6,0x8e,0x9f,0x45,0xbd,0xd4,0xe5,0xe5,0x8d,0x26,0xf6,0x75,0x38, \
-0x0c,0x1f,0xd6,0x34,0xb7,0x20,0xe3,0xf5,0x45,0xa6,0xfb,0x79,0x66,0xa3,0x5c,0xec, \
-0xa8,0xdf,0x3a,0x4d,0x2f,0x75,0x11,0x41,0xf5,0x42,0x20,0x7e,0x2b,0xdf,0xe7,0xd4, \
-0xb1,0x9f,0x2b,0xfd,0x68,0xe9,0xeb,0x43,0x8c,0xdb,0xfa,0xb3,0xde,0xeb,0xec,0x2b, \
-0x6a,0x3b,0x5f,0x04,0x66,0x49,0xf9,0xf8,0xa0,0xaa,0xbf,0xea,0x58,0xc3,0xeb,0x2f, \
-0x8e,0x00,0x34,0xcc,0x26,0xc3,0xb5,0x90,0x40,0x3e,0x99,0x7e,0x59,0xbb,0x34,0x62, \
-0xe8,0xbf,0x79,0x85,0xf2,0x9f,0x4d,0xc0,0x0a,0x2e,0x56,0x50,0x35,0xe0,0x05,0x1f, \
-0x94,0x7a,0x1d,0x73,0x99,0x06,0x14,0xcc,0xfd,0xf6,0xc8,0xc7,0xf9,0x7a,0x06,0x35, \
-0xfa,0xe3,0xcc,0x39,0x53,0xdb,0x00,0x5d,0x07,0xe5,0x7f,0x4e,0xb0,0x7e,0xad,0xb2, \
-0xf5,0x7f,0x93,0x3d,0xf3,0x2c,0x45,0x76,0xab,0x76,0xd7,0xe9,0xcf,0x24,0x06,0xae, \
-0xda,0x08,0x5c,0x91,0x83,0xb6,0xcb,0x9d,0xa8,0xd6,0xd1,0xb4,0xf3,0x1d,0x43,0x0c, \
-0x36,0x3f,0x8b,0xd4,0x2e,0xdc,0x20,0x5b,0x18,0x81,0x68,0x5d,0xcb,0x0f,0xe4,0x81, \
-0xd4,0x47,0x12,0x1f,0xe3,0x30,0x2c,0x3a,0x2a,0x7a,0xba,0x7a,0xd7,0x54,0x2f,0x01, \
-0xd6,0x6a,0x2c,0x66,0xb1,0x39,0xae,0x2e,0x35,0x52,0xfa,0x36,0x81,0x7f,0x1d,0x88, \
-0xf2,0xfb,0xc3,0xd4,0x1d,0x18,0xb9,0xe9,0x07,0x55,0x8b,0x8a,0x46,0x65,0x1a,0x05, \
-0x33,0xf7,0xa3,0xec,0x27,0x81,0xc3,0x42,0x12,0x81,0x9c,0x6f,0x25,0xf7,0xd0,0x95, \
-0xfc,0xf8,0x6b,0xe2,0xd7,0x80,0x5b,0x23,0xaa,0xb0,0x6b,0x6f,0x65,0x12,0xa4,0x11, \
-0xfa,0x62,0x9b,0x01,0xbe,0x06,0x69,0x50,0x8e,0xc2,0x06,0x43,0x6b,0xc1,0x05,0x97, \
-0x6d,0xda,0x18,0xf8,0x81,0x20,0x85,0x5e,0xef,0xd7,0x24,0x6c,0x5f,0xb6,0x5b,0xaa, \
-0x58,0x76,0xf0,0x18,0x30,0x1a,0x55,0x76,0x5e,0xc5,0x87,0x0e,0x40,0x75,0x7b,0xf5, \
-0xe9,0xc8,0x3c,0xef,0x16,0xec,0xed,0xb9,0x87,0xd6,0xf9,0xe0,0xa6,0xa9,0x85,0x6f, \
-0x3f,0x44,0xb2,0x34,0xff,0x78,0x52,0x73,0x26,0x98,0xb8,0x6f,0xcb,0x0c,0xe6,0x7b, \
-0x9a,0x0c,0xab,0xbc,0xc8,0x2e,0xa0,0x44,0xe0,0xc7,0x9a,0xab,0x24,0x99,0x82,0x4a, \
-0x38,0xc7,0x7d,0xf7,0xdc,0x80,0xc8,0x50,0x62,0x14,0xd2,0x37,0x8a,0xa1,0x3a,0x27, \
-0x12,0xcb,0x2c,0xc7,0x00,0x13,0xd4,0xdd,0x02,0x5e,0x46,0x4c,0x7b,0x74,0x12,0x16, \
-0x43,0x3a,0x99,0x19,0xa0,0xc6,0x71,0x41,0x3b,0xb0,0x4e,0xc6,0x31,0x0f,0x2b,0xc9, \
-0x38,0xda,0x81,0x6b,0xb5,0xea,0x6c,0x29,0x18,0xc6,0x85,0x6b,0x76,0xbf,0xc3,0x2f, \
-0x0b,0xf9,0xd6,0xd3,0x9c,0x45,0x3f,0xe1,0x13,0x18,0x78,0x0f,0x7f,0x56,0xed,0x98, \
-0x30,0x03,0xe0,0xc3,0x50,0xc6,0xd7,0xa3,0x18,0x47,0x28,0xa3,0x68,0xc2,0x7a,0x8e, \
-0x47,0xe8,0x3d,0xdb,0x7b,0x71,0x33,0x89,0x78,0xfa,0x20,0x8d,0x20,0x65,0x0c,0x23, \
-0xef,0x23,0x25,0xcd,0x08,0x87,0x2e,0x19,0x6a,0x42,0xea,0xf0,0xfe,0xb3,0xc1,0x81, \
-0xc9,0x75,0xc5,0xc8,0x9e,0xad,0xa7,0x2f,0xb9,0x3f,0x47,0x4c,0x00,0x6f,0xdb,0xe0, \
-0x8a,0x81,0x94,0x67,0xb9,0x5e,0xf7,0x8a,0x0c,0x54,0xca,0xa9,0x34,0xf0,0x0f,0xe5, \
-0x46,0xa8,0x04,0xbd,0xeb,0x7c,0xb3,0xdd,0x05,0xad,0x77,0x71,0xf9,0xd8,0x22,0xb4, \
-0x9f,0xad,0xb3,0xae,0x9e,0x39,0xae,0xb4,0x1f,0x75,0x14,0x7d,0x1b,0x0c,0xb4,0xb3, \
-0x7c,0x38,0x87,0x02,0xb2,0x95,0x95,0x24,0xd1,0x78,0xfa,0x97,0x95,0xa5,0xe3,0x73, \
-0xc6,0x80,0x10,0xe3,0x69,0x0a,0x6d,0x01,0x78,0x10,0xc7,0x4b,0xa8,0xa8,0x0c,0xa3, \
-0xc1,0xfb,0xeb,0x1e,0x5f,0xa4,0x6e,0x34,0x74,0xfc,0xf7,0x5a,0x77,0x28,0xc9,0x74, \
-0xec,0xda,0xd8,0xa6,0xd1,0xc6,0x8d,0x70,0x16,0x9c,0xbd,0x54,0xfa,0x74,0xb6,0x80, \
-0x57,0x3a,0x35,0xaa,0xa0,0x71,0x79,0xf0,0x6d,0x6f,0x27,0x84,0xec,0x50,0x39,0x23, \
-0x15,0xec,0xed,0x7d,0xbf,0x22,0x8e,0x25,0x35,0x3f,0x3f,0xc3,0xcb,0x21,0xc4,0x59, \
-0x50,0xaf,0xcb,0xa8,0xc2,0x36,0xc1,0x53,0xe8,0xe8,0x83,0x2d,0xf3,0x5e,0xee,0x95, \
-0xbd,0x87,0x2d,0x94,0x17,0xb0,0xad,0x61,0x2e,0x07,0x52,0x95,0x16,0x45,0x50,0xa4, \
-0x88,0xe7,0x1d,0x7d,0x14,0x0f,0xba,0x17,0x1e,0x6d,0x53,0xa6,0x9c,0x75,0xb1,0xc9, \
-0xd7,0x6c,0x0c,0x8a,0xa9,0x54,0x2b,0xe9,0x12,0xae,0xdf,0xae,0x44,0x77,0xfe,0x0d, \
-0x35,0xdb,0xab,0x0b,0x80,0xa4,0x82,0x1c,0xe6,0xee,0x81,0x59,0x33,0xe6,0xe1,0xb5, \
-0xa3,0x34,0xfa,0x1a,0x2e,0x21,0xed,0xf0,0x54,0xda,0x99,0xab,0x67,0x6b,0xf0,0xcb, \
-0xae,0x2a,0x5f,0x8a,0x85,0xae,0x6c,0xe6,0x56,0x3e,0x82,0x83,0x07,0x17,0x5b,0x92, \
-0x08,0x5a,0x8f,0x2d,0x09,0xc0,0x30,0xa7,0x01,0xba,0xa6,0x97,0xe2,0xf9,0x0b,0x08, \
-0x56,0xf5,0x30,0x55,0x1d,0x2b,0x26,0x03,0xc6,0xe4,0x07,0xb5,0x72,0x95,0x44,0xc8, \
-0x97,0x34,0xb4,0xaa,0x93,0x66,0x48,0x56,0x26,0x5d,0x4d,0xd6,0xe1,0x2f,0xb3,0x3c, \
-0x8d,0xcd,0x7b,0x7b,0x58,0x36,0x30,0x30,0x1d,0x47,0x32,0x32,0x1c,0x2f,0x9c,0x05, \
-0x83,0x0b,0xc9,0x5c,0x71,0xe7,0x3a,0x46,0x3e,0xc5,0x9d,0xed,0x9b,0xa7,0xb1,0xe6, \
-0x3c,0x57,0xd4,0x0f,0xd2,0x1b,0x6b,0xdb,0x59,0x0a,0x39,0xf2,0xbd,0x53,0xf4,0x18, \
-0xd7,0xaa,0xc2,0xf8,0xac,0xbd,0xc9,0x1a,0x86,0x50,0x6d,0x0f,0x99,0xaa,0xca,0x32, \
-0x52,0x8c,0x2c,0xfe,0xe8,0x4c,0x32,0x93,0xf6,0xe6,0xc5,0x2b,0x9f,0x0b,0x9f,0x3b, \
-0x0a,0x20,0x69,0x3e,0x2f,0xd7,0x48,0xad,0x06,0x46,0xca,0xa3,0x4f,0xc9,0x67,0x88, \
-0xf4,0x4d,0x24,0x7c,0x22,0xda,0x04,0x7c,0x25,0xbe,0xf0,0xd0,0x4a,0x1c,0x5d,0x7b, \
-0xc1,0x4e,0xd2,0xb9,0x90,0xd0,0x6a,0xe4,0xec,0xde,0xf5,0x19,0xf0,0xd1,0x16,0x15, \
-0x29,0x94,0xb0,0xb8,0xd6,0x40,0x80,0xa0,0xfc,0x7f,0x37,0x3f,0x62,0x38,0xa7,0x8a, \
-0xa5,0x4f,0x0e,0x7a,0xde,0x95,0xd6,0xa0,0x9f,0x9b,0x90,0xf4,0x5b,0x87,0x5f,0x75, \
-0xc3,0x68,0x7c,0xba,0xa3,0x10,0x64,0x8c,0xa8,0x81,0x37,0x6e,0x86,0x71,0x1b,0x77, \
-0xc1,0xed,0x4a,0xc6,0x39,0x58,0x52,0xe4,0x40,0x6d,0x1d,0x63,0xc5,0x46,0xc6,0x8b, \
-0x5d,0x5a,0xa1,0xee,0xc0,0x76,0x0a,0x11,0x9e,0x34,0x71,0xec,0x06,0x6f,0x65,0xd2, \
-0x91,0xaf,0x11,0x6f,0xc5,0x45,0xa9,0xb6,0xb5,0x68,0xd8,0x6e,0xbc,0x23,0x80,0x9a, \
-0x35,0x77,0xa0,0x1f,0x1d,0x23,0x79,0x54,0xdf,0xea,0x1f,0x5f,0x58,0x7a,0x46,0x6b, \
-0x77,0x7f,0xd5,0x50,0xbc,0x4c,0x20,0xaa,0x4c,0x2f,0x07,0x5d,0xd6,0x58,0x7c,0xde, \
-0xff,0x86,0xe0,0x46,0xb8,0x1d,0xb6,0x76,0x36,0xef,0xfd,0x2e,0xf8,0x54,0x99,0x50, \
-0x34,0x2a,0x47,0x37,0x69,0xaf,0x78,0x6a,0x42,0xf0,0xd3,0xca,0xfa,0x40,0xec,0xbc, \
-0xd5,0x96,0x53,0xb4,0x8b,0xb5,0x18,0x8b,0xd1,0x79,0x56,0xf4,0x31,0xe1,0xc5,0x76, \
-0xa8,0x50,0xcb,0xf3,0x36,0x32,0x99,0xf0,0x20,0xb3,0x3f,0xcc,0xde,0x1e,0x9f,0x3a, \
-0xbe,0x6b,0xfd,0xb5,0xdc,0xb0,0x8e,0xb4,0xb8,0x7a,0x0b,0x78,0x1f,0x40,0x96,0xc0, \
-0xed,0x7a,0x3c,0xba,0xad,0xfa,0xe7,0xd0,0xd5,0x10,0x40,0x1b,0xfb,0x0f,0x15,0xca, \
-0xfa,0xf8,0x89,0xe6,0x44,0x36,0xd7,0x04,0x73,0xc1,0x87,0x87,0x86,0x60,0xdc,0x26, \
-0xbc,0x11,0x28,0x2f,0x42,0x8a,0xe3,0x2c,0x64,0x38,0xdb,0x30,0x58,0xe8,0xe7,0xbc, \
-0xc9,0x61,0x08,0x8d,0xa7,0x87,0x0b,0x1a,0x6d,0x9e,0xb3,0x4f,0x5a,0xd3,0x99,0x10, \
-0x64,0x84,0x37,0x55,0xf6,0x81,0x90,0xde,0x14,0x21,0x23,0xc9,0x2a,0x8e,0x2a,0x9d, \
-0x2d,0xf2,0xb5,0x91,0xb9,0xaf,0xe1,0x80,0x5d,0xbd,0xfe,0xe8,0xbf,0x6f,0xb8,0xcb, \
-0x10,0x28,0x86,0x2c,0xab,0x7c,0xb0,0xcc,0x85,0x39,0x1b,0x4b,0x8b,0x0d,0x74,0x71, \
-0x9e,0x5b,0xde,0x98,0x67,0x20,0x67,0x45,0xce,0x95,0xec,0x70,0x1e,0xbb,0xf8,0x81, \
-0xbe,0xa2,0xeb,0xb8,0x21,0x8d,0x8d,0xcf,0x3f,0x70,0x87,0x2e,0xb6,0x5c,0xf1,0xdc, \
-0x40,0x1a,0xb4,0x62,0x9c,0xa8,0xfc,0x52,0xb4,0x30,0xe9,0x00,0xb0,0xf7,0x4b,0x35, \
-0x95,0x44,0xa8,0x57,0xb4,0x2f,0x21,0x0d,0x91,0xcc,0xc6,0x41,0x4c,0x78,0x59,0x61, \
-0x9b,0xac,0x75,0x07,0x2c,0xb1,0xce,0x1e,0x58,0x78,0x32,0xc6,0xcd,0x3a,0x41,0x2d, \
-0x22,0x17,0x98,0x3b,0x24,0x47,0x5b,0xb9,0x4e,0xbe,0x84,0xfe,0xaa,0x2f,0x95,0x76, \
-0x51,0xb9,0x0a,0x75,0xc7,0x24,0xde,0x01,0xb2,0x71,0xa8,0xa1,0xcf,0x82,0x5c,0x5f, \
-0x36,0x14,0x0f,0x51,0x56,0x0d,0x9e,0x92,0x2f,0x03,0x39,0xd2,0xbd,0x5c,0x4b,0x16, \
-0x60,0x4d,0xf0,0x72,0x1f,0x03,0xb8,0x28,0x1a,0x92,0x32,0xec,0x49,0x5a,0x30,0x83, \
-0x1c,0xd4,0x23,0x93,0x91,0xbd,0x59,0xc1,0x95,0x54,0x61,0x06,0x60,0x3c,0xad,0xfd, \
-0x72,0xb0,0x38,0x08,0xb3,0x87,0x10,0x5c,0x85,0x25,0x5c,0xbd,0x02,0xf6,0x45,0xe4, \
-0x38,0x02,0xc4,0x0a,0xb6,0xf6,0x5a,0x43,0x30,0x17,0x11,0x32,0x66,0x30,0x54,0xc1, \
-0x1b,0xe4,0x39,0x12,0x00,0xa6,0xfc,0x3d,0x8e,0xf0,0x8b,0x2d,0x56,0x5e,0x22,0x96, \
-0x6b,0x4d,0x29,0xa8,0x2c,0x08,0x43,0xb4,0xd4,0x11,0xb9,0x05,0x09,0x23,0x94,0x4e, \
-0xe7,0x6f,0x37,0xd6,0xd7,0x5d,0x38,0x6e,0x32,0xc0,0x50,0xdb,0x6e,0xdf,0xb3,0x87, \
-0x31,0xec,0xef,0xe1,0xe8,0xca,0x0c,0xe4,0xd4,0x25,0x1d,0xd1,0xc1,0x70,0x70,0xe1, \
-0x63,0xe7,0x94,0x62,0xfc,0x38,0x7a,0xa0,0x74,0xec,0xbc,0x03,0x5e,0x3c,0x94,0x77, \
-0x74,0xc8,0x17,0xf2,0x84,0xf8,0xbd,0x8b,0x6a,0xab,0xc9,0x54,0x1b,0x2b,0x02,0xdd, \
-0xdf,0xc1,0x4d,0xa3,0x59,0xa3,0x58,0x1f,0x66,0xde,0x58,0xbc,0x78,0x90,0xa4,0xf0, \
-0xa8,0x66,0x13,0x4b,0x06,0xaf,0x96,0x3c,0x7a,0x97,0x16,0xcd,0x47,0x03,0x03,0xf1, \
-0x9d,0xe7,0x98,0xac,0xf7,0xa4,0x33,0x7b,0x21,0xab,0x5b,0x6d,0x44,0x78,0x1f,0x86, \
-0x3b,0xeb,0x5e,0x2e,0x7b,0x99,0x48,0xd4,0x81,0x5e,0xb3,0x8e,0x11,0xb0,0x87,0x0b, \
-0x3a,0xb5,0x61,0xef,0x85,0x92,0xd4,0x5a,0x60,0xc0,0x30,0xb7,0x02,0x0f,0x34,0xb6, \
-0x45,0x04,0x4f,0xb2,0x27,0xf3,0x9b,0x0b,0x38,0xb3,0xd6,0x1a,0xb2,0x3d,0xb9,0x89, \
-0x1d,0xbf,0x2a,0xa6,0xd1,0x18,0xdb,0x2d,0x95,0x14,0x29,0x25,0x23,0x86,0x34,0xac, \
-0x05,0xd1,0x6e,0x3d,0x22,0x15,0xb1,0xc7,0x8c,0x7a,0xf9,0x2f,0x11,0xdb,0xa6,0xf4, \
-0xba,0xa9,0xe1,0x19,0x80,0xf5,0xe1,0x80,0xad,0xd8,0x01,0xec,0xe0,0xe6,0x80,0x51, \
-0x32,0x8e,0xab,0x96,0xdd,0xa3,0x5b,0x7b,0x41,0xd9,0xd1,0x18,0x50,0x2b,0x58,0x2d, \
-0xd3,0x9a,0xe3,0xab,0xed,0xb5,0xb8,0x13,0x44,0x1d,0x2e,0x6c,0x13,0x3b,0x29,0xf3, \
-0x96,0x14,0x3a,0xed,0x23,0xd6,0xfe,0x22,0x80,0x2d,0xd0,0x6c,0x52,0xaa,0x57,0x08, \
-0x00,0x93,0x02,0xe1,0x11,0xc8,0x40,0xc5,0x26,0x83,0xcd,0x76,0xd9,0x2a,0x36,0x27, \
-0x82,0xa6,0x26,0xb2,0x1e,0x0f,0x9e,0xc8,0x3b,0x4e,0xcf,0xcc,0xa5,0x32,0x05,0xdc, \
-0x4b,0xfa,0x89,0x1a,0x70,0x1d,0xd2,0x84,0x59,0x04,0x85,0x45,0x0c,0x28,0x3b,0xa8, \
-0x82,0x46,0xb3,0x57,0xbd,0x4b,0x93,0x36,0x5a,0x37,0x16,0xbf,0xe6,0xb3,0x78,0x1d, \
-0x43,0x33,0x47,0xd1,0x85,0xd3,0xa0,0x51,0xc0,0xe5,0xa8,0x09,0x0c,0x48,0x86,0xec, \
-0xa5,0x0b,0x89,0xa0,0x83,0x21,0xd4,0x1e,0x90,0x68,0xcb,0x51,0x01,0x92,0x9d,0x16, \
-0x8f,0x6d,0xa8,0xee,0xdc,0x58,0x48,0xba,0x83,0xc5,0xea,0xd8,0x77,0x81,0x00,0xd4, \
-0xd9,0x7a,0xae,0x2d,0x7b,0xf2,0xb3,0x6b,0x79,0xa4,0x5e,0xf7,0x30,0x43,0xd4,0xe8, \
-0xec,0x17,0x3a,0x5f,0x86,0x95,0x50,0x2d,0x65,0x68,0x7a,0x0c,0x4f,0x63,0xa9,0x1e, \
-0x38,0x11,0xe5,0x5e,0x4a,0xd9,0xcf,0x7a,0x87,0x2d,0xd6,0x44,0xf8,0xb5,0xb9,0x09, \
-0x6d,0x46,0x50,0xb0,0x13,0xc3,0x4a,0xb5,0x99,0x3a,0x04,0x2a,0xad,0x85,0x4f,0xc9, \
-0x0a,0xc3,0x38,0xbb,0xd8,0xd6,0x3e,0xa6,0xe9,0x18,0xe7,0x61,0x9a,0x2c,0x91,0xc0, \
-0x8e,0xf2,0x2e,0x00,0xb0,0xef,0xe8,0x24,0x8d,0xa7,0xb0,0xa8,0x3a,0xd4,0x75,0xe3, \
-0xd3,0x0f,0x89,0xe2,0xcd,0xe1,0x0a,0x3f,0x9b,0xd6,0xd0,0xe7,0x9e,0x79,0x78,0xbf, \
-0x22,0x9b,0x3d,0x6b,0xce,0x2a,0x43,0x97,0x06,0x10,0x57,0x8b,0x74,0x9c,0x32,0x53, \
-0x0b,0xf7,0x5e,0x91,0xe4,0x16,0xe2,0xb4,0x19,0x23,0x8d,0x1c,0xb2,0x63,0x8f,0x8a, \
-0xb1,0x85,0x1c,0xd0,0x89,0x5a,0x32,0x32,0x1d,0xd3,0xc6,0xfa,0xd8,0x4a,0x0c,0x65, \
-0x5b,0xb2,0xc3,0xef,0xfd,0x11,0xf2,0xa5,0xf3,0xd4,0x6e,0x9b,0x76,0xf0,0xe4,0x03, \
-0x8b,0x71,0xd5,0x86,0x7a,0x1f,0x32,0xf1,0x14,0x1e,0x31,0xd5,0x31,0xe4,0x5d,0x94, \
-0x82,0x9c,0x31,0x86,0xb8,0x33,0x32,0xaf,0xe5,0xc5,0xc0,0x82,0x69,0x9d,0xb0,0xde, \
-0xdd,0xbe,0x1f,0xba,0x75,0xfb,0xff,0x67,0xf0,0x7d,0xb5,0x5a,0xc0,0xeb,0xe6,0x08, \
-0x3e,0xe6,0xa0,0xa0,0x61,0x08,0x51,0xb4,0x67,0xc7,0x8f,0x6e,0x3b,0xd8,0x4e,0xf0, \
-0xd4,0x29,0xd6,0x33,0xa2,0x61,0xda,0x56,0x03,0x13,0xb0,0xfe,0xff,0xd4,0x94,0x8e, \
-0x8f,0x8c,0x04,0x30,0xc7,0x4e,0xbd,0x36,0x49,0x52,0x01,0x03,0xb7,0xff,0x88,0x00, \
-0xda,0xfd,0x11,0x05,0x04,0xd0,0x68,0xd0,0x93,0x22,0x04,0x22,0x97,0x3b,0xdf,0x8c, \
-0xe1,0x91,0x64,0x25,0x86,0x19,0x61,0x3d,0x18,0xc2,0xfe,0x3d,0xbf,0x5f,0xe5,0xd3, \
-0x97,0xcb,0x9b,0x7e,0x54,0xbb,0x8a,0x2e,0x3e,0xdd,0xf9,0x78,0xbc,0x42,0xf3,0xc3, \
-0xed,0x86,0xe5,0x68,0x9f,0x4a,0x83,0xc6,0xc5,0x47,0xdd,0xb5,0xcd,0xf4,0xe3,0x77, \
-0x28,0xd6,0xc1,0x08,0x36,0xe3,0x93,0x30,0x00,0xf8,0x9a,0x79,0x54,0xa9,0x0e,0x53, \
-0x9f,0x42,0x5e,0xe6,0x8e,0x48,0xb1,0xb5,0x07,0xd9,0x08,0x31,0xd8,0x14,0x04,0x7e, \
-0xff,0x49,0x87,0x12,0x8d,0x7a,0x52,0xaf,0x2e,0x81,0x86,0xff,0x8f,0xcc,0xca,0x18, \
-0x35,0xa3,0xc0,0xc6,0xd8,0x61,0x54,0x66,0x2f,0x41,0x21,0x5d,0x63,0x42,0xb2,0x0e, \
-0xe6,0xfe,0x2e,0x1e,0x40,0x80,0x03,0x33,0x31,0xcf,0xf0,0x45,0x6e,0xfd,0x15,0xf5, \
-0x71,0x74,0x81,0xaf,0x79,0x5b,0xf7,0xce,0x38,0x17,0x49,0xec,0x9f,0xd9,0xc1,0x4d, \
-0x83,0x64,0x0f,0xc7,0xd8,0xa7,0xf0,0x56,0x7d,0x3b,0x93,0xd7,0x48,0x11,0x1c,0x99, \
-0x0d,0x35,0x6a,0xe1,0xd3,0xee,0xbd,0xa8,0xd2,0xa7,0x72,0xcc,0x8b,0x82,0x91,0x25, \
-0x68,0x2d,0xb3,0x72,0xfa,0xe3,0x85,0xd5,0xb5,0xa1,0x85,0xaa,0x51,0xaa,0x17,0x14, \
-0xd9,0x1c,0xa1,0xd0,0x2f,0xc2,0x2e,0xc9,0x08,0xb2,0x40,0x11,0x7e,0xfe,0xf5,0x11, \
-0x31,0x98,0xe8,0x50,0xcb,0x3c,0xd5,0x2e,0xf4,0x62,0x48,0x11,0x98,0x03,0xf1,0x85, \
-0x3e,0xfc,0x67,0x3c,0x9d,0xa4,0xaa,0x00,0x68,0xcb,0xd3,0xcb,0x03,0x71,0x64,0x13, \
-0x1b,0x89,0x11,0x29,0xac,0x3c,0xfe,0x48,0xe4,0x18,0x9f,0xe8,0x19,0x3f,0x37,0xec, \
-0xc6,0x25,0x16,0x4d,0x83,0xde,0x35,0xe9,0xa5,0x93,0xbe,0x27,0xe6,0xdc,0x52,0xca, \
-0xb9,0x36,0xd8,0x90,0x9a,0x1e,0xfe,0x4c,0x66,0x66,0x45,0x94,0x92,0x15,0xac,0x8d, \
-0x3c,0xc3,0xa5,0x48,0x0c,0xcc,0x11,0xc9,0x50,0xac,0x63,0x26,0x02,0xc1,0xec,0xfe, \
-0x7c,0x67,0xf7,0xfe,0xbe,0x06,0x4e,0x5c,0x29,0x86,0xb0,0x63,0xd2,0xd3,0xf5,0xd0, \
-0xa8,0x0a,0xba,0x1b,0x44,0xb0,0x17,0x54,0xb1,0x12,0x08,0x31,0xfd,0x2f,0xcf,0x82, \
-0x8f,0xd8,0x93,0x9f,0x61,0xb6,0x24,0xdd,0x0b,0x04,0x55,0x31,0x65,0x14,0x57,0x7e, \
-0x97,0x00,0x1a,0x6b,0x78,0x5a,0x26,0x20,0x64,0x4a,0x41,0x11,0x95,0x39,0x7a,0xfe, \
-0x7f,0x80,0xbf,0x67,0xdd,0xc2,0x48,0x6e,0x2a,0x30,0x0e,0x14,0x21,0x78,0xd1,0xb4, \
-0x4c,0x5f,0x97,0x06,0x5c,0x41,0x7a,0x38,0x73,0xc7,0x58,0x21,0x32,0x86,0xb0,0x58, \
-0xe2,0xd9,0x9f,0xaa,0x9b,0xaa,0x66,0xb0,0xba,0x71,0x0c,0x49,0xfc,0x69,0x0c,0xe6, \
-0x59,0xdc,0xdf,0x6e,0xd8,0x70,0x54,0x54,0x90,0xd3,0x19,0x43,0xf0,0xe6,0xae,0x61, \
-0x18,0xa8,0x8a,0x73,0xd6,0x3c,0x5d,0x6a,0xfc,0x12,0x42,0xff,0xf2,0x50,0x55,0x05, \
-0x76,0xba,0xc5,0xde,0xd0,0x33,0x1b,0xf9,0x52,0x8a,0xe0,0xf1,0xc1,0x8d,0xb8,0xf1, \
-0xf7,0xce,0x39,0xc6,0xc1,0x38,0x6f,0x5e,0xbb,0x4d,0x67,0x06,0xd1,0xbe,0xba,0x01, \
-0x5d,0x49,0xa2,0x93,0x65,0x42,0x67,0x33,0x6e,0xdd,0xb4,0x87,0x1b,0xbb,0x02,0x6c, \
-0x30,0x62,0x8b,0x98,0x5f,0xc5,0x68,0x4c,0x1c,0x0b,0xd5,0x8c,0x89,0xc7,0x30,0x95, \
-0x35,0x66,0x71,0xce,0xd2,0x13,0x0a,0x16,0x80,0x78,0x26,0x27,0x2b,0x27,0xab,0x7b, \
-0x9c,0x50,0xfd,0x1d,0x74,0xfb,0xdf,0x5a,0x3b,0xfc,0x9b,0xf0,0xdd,0x17,0x3e,0x81, \
-0xa3,0x58,0xcf,0x9b,0x10,0x96,0x1d,0x46,0x3e,0x8e,0x31,0x48,0xa7,0xc6,0x91,0x37, \
-0x84,0xdd,0x6b,0x38,0x0c,0x30,0xa3,0xb3,0x9e,0xfd,0x9b,0x9e,0xee,0x3b,0x32,0x4d, \
-0x23,0xc6,0x1d,0xf5,0xb1,0x6b,0x0a,0x27,0xeb,0x53,0xed,0x10,0x0f,0x9a,0x0d,0x11, \
-0x48,0x0d,0xb5,0x9f,0x0b,0x67,0xe4,0xb6,0x0a,0xa7,0xe8,0xb0,0x3d,0xfe,0xed,0x53, \
-0x6d,0xb8,0x7a,0x86,0x4f,0x6f,0x3f,0xc7,0x80,0x35,0xd7,0xbc,0x4c,0x59,0x0b,0xe2, \
-0xe0,0x06,0x71,0xc2,0x02,0x6e,0x9e,0x1c,0x5d,0x78,0x0b,0x6f,0x57,0x5f,0xc6,0xc1, \
-0xbe,0x0b,0x2e,0xf8,0x74,0x47,0xd3,0xaa,0x81,0x65,0xe2,0x4d,0x7a,0xc1,0xf1,0x38, \
-0x79,0x90,0x05,0xb0,0x73,0xb5,0x8d,0x60,0xdb,0xde,0x7a,0x27,0xef,0x5f,0x1b,0xb1, \
-0x06,0x8f,0x00,0x3e,0x60,0x7a,0x42,0x37,0xe2,0xa3,0x20,0x86,0xb4,0xa0,0x53,0xfe, \
-0x6c,0xf3,0xb1,0x7c,0x06,0x58,0x3d,0x59,0xd3,0x2c,0x8c,0x46,0x2e,0xb6,0x2e,0xe8, \
-0x70,0x77,0xe9,0xed,0x55,0xfb,0x2a,0xae,0x9c,0x6b,0xf4,0x71,0x3f,0x16,0x1a,0x11, \
-0xa0,0xe5,0x03,0x78,0xf4,0x58,0xf0,0x8e,0xd8,0x7d,0x33,0xe6,0x89,0x94,0xf6,0x66, \
-0x70,0xd2,0xda,0xbb,0xce,0x48,0x80,0xc8,0x0a,0x8e,0x70,0xf0,0x0a,0xac,0x37,0xd4, \
-0x2d,0x0f,0x54,0x4f,0x43,0x53,0x8b,0xb1,0x67,0xf0,0x79,0x66,0xb1,0x65,0xa1,0x7a, \
-0x12,0xd0,0x18,0x4c,0xc2,0x7a,0xac,0x70,0x2c,0x2d,0xd8,0xdc,0x70,0xf4,0x1a,0xf8, \
-0x9c,0x3f,0xdb,0xd0,0xa3,0xb1,0x3c,0x9a,0x7b,0x8d,0x27,0xba,0xe8,0x56,0xe7,0xbd, \
-0x4a,0xfb,0x6a,0xb7,0xb5,0x3e,0x6e,0x6c,0x8d,0xfb,0x3a,0x72,0x4d,0xba,0x56,0x50, \
-0x5e,0xf7,0x8d,0xce,0x37,0xd1,0x84,0x7b,0xd1,0x6c,0x84,0x01,0x25,0x3f,0xc7,0xe3, \
-0xc7,0x94,0xc9,0x8a,0x52,0x90,0x25,0x6a,0x0a,0x10,0x23,0x19,0x2c,0x9d,0xc1,0xc8, \
-0xc1,0x35,0xf0,0x27,0x3f,0x18,0x44,0xbb,0x6f,0x89,0x57,0x1b,0x0d,0x58,0x50,0x79, \
-0x96,0x99,0xc1,0xce,0x10,0x0d,0x8f,0x73,0x72,0x61,0x38,0x76,0x77,0xcb,0xe9,0x17, \
-0x31,0xc1,0xd1,0x2f,0x37,0x98,0xd3,0xd5,0xeb,0x2e,0x32,0xa7,0xe4,0x45,0x54,0x33, \
-0xcb,0x5f,0xed,0x2f,0x68,0xe3,0xd0,0x24,0x9a,0x15,0x68,0x90,0x4a,0x64,0x07,0xa0, \
-0xcb,0x94,0xff,0x4f,0xef,0xef,0xb1,0x62,0x5e,0xbf,0xd7,0x30,0x15,0x4a,0x63,0xae, \
-0x84,0x08,0x68,0x61,0x47,0x7e,0xf6,0x6a,0x3b,0x3b,0xb8,0xbf,0x44,0x27,0xfb,0x02, \
-0x23,0x88,0x3e,0xed,0xab,0x14,0x8c,0x3e,0x45,0x1e,0x47,0x8c,0xc5,0x83,0x6f,0xbb, \
-0xc9,0xf0,0xef,0xf0,0x44,0xf1,0x85,0x6e,0x34,0xdc,0x4b,0xf8,0x11,0x3e,0x48,0x62, \
-0x45,0xe3,0x0a,0x7c,0xb4,0x4e,0x47,0x81,0xf8,0x7d,0x3e,0x4f,0xef,0x56,0xa2,0x77, \
-0x42,0x17,0x35,0x32,0xbf,0xe6,0x3d,0xf2,0xa1,0xa9,0xa8,0x34,0x84,0x90,0x02,0xac, \
-0x02,0xa3,0x24,0x2e,0xe0,0x7d,0xfd,0x7c,0xd9,0xaf,0x12,0x1b,0x8d,0xb5,0x48,0x6a, \
-0x30,0x42,0xc6,0x93,0xd4,0x79,0xfa,0xb8,0x79,0xe2,0xc8,0x21,0x3a,0x53,0xda,0xf4, \
-0x7a,0x17,0x54,0x8f,0x40,0x3b,0x6b,0x47,0xf8,0x26,0x46,0x1e,0x9f,0xb2,0x64,0x0c, \
-0x93,0x7c,0xda,0x33,0xe9,0x8c,0x38,0x4b,0xfd,0xb5,0xd3,0xa3,0xbb,0xb4,0x5c,0xda, \
-0x68,0x6c,0x3d,0x90,0x11,0xfa,0xfa,0xcc,0x43,0x77,0x66,0x59,0x21,0x60,0x3a,0x73, \
-0x0f,0xcb,0xf1,0x4b,0x70,0xc4,0xeb,0x13,0x28,0x62,0xa5,0xc9,0xca,0x61,0xd0,0x9e, \
-0xdf,0x48,0xd2,0x20,0x86,0xcd,0x55,0x04,0x44,0x46,0x0c,0x15,0x8a,0x46,0x08,0x8f, \
-0xef,0x7a,0xf6,0xf4,0x07,0x76,0x30,0x16,0x62,0xf8,0xd3,0xf9,0x3a,0xbe,0x03,0xef, \
-0xb1,0x04,0x41,0x19,0x95,0xfd,0x36,0x0b,0xfb,0xeb,0xb8,0x5a,0x17,0x23,0xce,0x73, \
-0x12,0x59,0xe9,0xfc,0x34,0xa9,0xeb,0x8e,0x77,0x81,0x49,0xfb,0x48,0x6e,0x92,0xa0, \
-0x73,0x89,0xd0,0x9c,0xb0,0x8b,0xd2,0x1b,0xc8,0x5b,0xd5,0xae,0xd3,0xd5,0x3d,0x1e, \
-0xa3,0xc8,0xa1,0xea,0x80,0xc7,0x6b,0x88,0xc3,0x02,0xab,0x15,0x05,0xa6,0x84,0x17, \
-0xa5,0xf0,0x89,0x72,0x8c,0x3c,0x57,0xf5,0x64,0x32,0x15,0xfe,0xaa,0x53,0xa5,0xaa, \
-0x1e,0xd9,0x26,0x69,0x08,0xd4,0xe1,0xd1,0x6c,0x29,0x9c,0x18,0xdb,0xe4,0xba,0x40, \
-0x1f,0x17,0x58,0x2a,0xb2,0x6e,0x98,0x18,0x6f,0x8a,0x65,0x86,0x5a,0x62,0x98,0x4e, \
-0x09,0x2b,0x91,0xa2,0x4d,0xb1,0xf4,0x9f,0xd5,0x8e,0x24,0xf9,0x60,0x5b,0x7e,0xb1, \
-0x83,0xfb,0x9b,0x22,0x89,0xc9,0x2e,0xbc,0x46,0xd2,0xc4,0x32,0x8c,0xfa,0xad,0x92, \
-0x1f,0x38,0x5a,0x04,0xa1,0x1a,0xf3,0x74,0x2a,0xc2,0x8a,0x33,0x00,0xca,0xa8,0xc4, \
-0xaa,0x2b,0x63,0xbd,0x67,0x05,0x84,0x58,0x69,0x2a,0x95,0x0c,0x83,0xb8,0x39,0x47, \
-0x39,0xed,0x9d,0xbb,0x30,0xc5,0x1a,0x69,0x1a,0x93,0x54,0x19,0xc9,0x83,0x3d,0x4c, \
-0xfa,0x9c,0xd6,0xb0,0x81,0x59,0x88,0x26,0x61,0x73,0x20,0x35,0xf5,0x1a,0xc9,0x75, \
-0xc6,0x23,0x62,0xc9,0x24,0x9d,0xdd,0x46,0xd8,0x0c,0x81,0x8b,0xd2,0x7e,0x9e,0xd3, \
-0x69,0x89,0x77,0xdc,0x92,0x08,0xf4,0x3e,0x40,0xef,0x69,0x2e,0x73,0x07,0x06,0x90, \
-0x43,0x4b,0xa1,0xc5,0xa6,0x53,0x0e,0x97,0x0e,0xe8,0x0b,0x5e,0x50,0x48,0xb3,0x40, \
-0x51,0xf6,0x42,0x52,0xd2,0x25,0xed,0xd8,0x77,0xc9,0xf0,0x1e,0x6c,0xd4,0x69,0x62, \
-0x67,0xb0,0xe6,0xb8,0xd3,0xaa,0x00,0xaf,0x35,0x1f,0x48,0xc0,0x97,0xbd,0xbc,0x8c, \
-0x64,0xbc,0x51,0xda,0x99,0xc0,0x14,0x1a,0x85,0x4b,0xfb,0x73,0x18,0x70,0x22,0x11, \
-0x64,0x05,0x1c,0xd9,0xd8,0x1e,0x9c,0x33,0x45,0x9d,0xa9,0xa0,0x9b,0x43,0x52,0x08, \
-0x66,0x09,0x33,0xe1,0x88,0x71,0x63,0x63,0x43,0x54,0xd6,0xb5,0x86,0x04,0x47,0xaf, \
-0xa9,0x5c,0x1f,0x3b,0xef,0x1f,0xc1,0x86,0x3a,0xfc,0xfa,0xbe,0x51,0x7d,0x8d,0xcc, \
-0xf4,0x92,0x84,0x23,0x09,0xf4,0xa5,0x0a,0x4f,0x5f,0xd7,0x94,0xe4,0x47,0xc8,0x6c, \
-0xa8,0xed,0xed,0x45,0x43,0xbf,0xd6,0x03,0x37,0xc5,0xcc,0x26,0x4a,0x16,0x92,0xa5, \
-0x83,0xca,0x5c,0x9a,0xdc,0x33,0x49,0x16,0x08,0xcc,0x68,0x77,0xd0,0xc7,0x86,0xa0, \
-0x9b,0x58,0x95,0xd0,0x2f,0x6c,0xa1,0x04,0xe8,0xe9,0x3b,0xa4,0x60,0x9f,0x1c,0x17, \
-0xec,0x98,0xa8,0xb2,0xfb,0x53,0x3b,0x5a,0xdc,0x8e,0x08,0x3b,0x88,0xd7,0x4e,0x7b, \
-0x03,0x4c,0x4c,0x27,0xd6,0x6b,0x06,0xfb,0xf5,0xc3,0x6a,0x46,0x07,0x9e,0x5d,0x73, \
-0x81,0xe7,0x04,0x9e,0xe2,0x06,0x58,0x03,0x04,0x8c,0x10,0x37,0x49,0xc1,0x80,0x51, \
-0x34,0xc1,0x8c,0x69,0x08,0x96,0x84,0x0f,0x79,0xed,0xf6,0x95,0x02,0x81,0x8d,0xa1, \
-0x04,0x9e,0xbb,0xc3,0x50,0xcb,0x5f,0xa7,0xa1,0xf4,0xa1,0xba,0x77,0x08,0x0a,0x29, \
-0x3f,0xae,0xd0,0xfd,0x9e,0x9a,0xfe,0x79,0xee,0x9f,0x1f,0x6e,0x4b,0xef,0xce,0x3d, \
-0xf4,0x20,0x39,0xf9,0x45,0x41,0xf7,0x68,0xd1,0x16,0x8d,0xc7,0x14,0xc1,0x83,0x5b, \
-0xdc,0x32,0xab,0x0f,0xab,0xce,0x4c,0x31,0x1f,0xbe,0x29,0xf5,0xa7,0xbb,0xe6,0xcd, \
-0x36,0x77,0xb7,0x09,0x4a,0xeb,0xb9,0xea,0x01,0x84,0x2b,0xb5,0xed,0xa4,0x0c,0x99, \
-0x29,0xc4,0xa2,0x56,0xc6,0x3d,0x29,0x33,0x6e,0x05,0x9a,0xfc,0x6e,0x22,0x0e,0xcc, \
-0x3e,0x16,0xc9,0xa4,0x62,0x43,0x89,0xab,0x05,0x77,0x3d,0x05,0xae,0x8e,0x58,0xfa, \
-0x0e,0x0e,0xf4,0x7b,0x53,0xb9,0xf4,0x07,0x6a,0x72,0x0b,0xf3,0x18,0x33,0xd2,0xd6, \
-0x40,0xe1,0x18,0x56,0x06,0xd5,0x81,0x30,0x62,0xfb,0x30,0x20,0xe4,0x0e,0xee,0xc2, \
-0x9a,0x4c,0xb9,0x87,0x2e,0xc5,0xb4,0x7c,0x77,0xe3,0x5c,0xc3,0x9f,0x1e,0x8f,0x8b, \
-0xd9,0xc7,0x77,0x99,0x0c,0xf0,0x0f,0x66,0x0c,0x08,0xa6,0xb5,0x4b,0x82,0x66,0x76, \
-0x99,0x82,0xab,0x80,0x62,0x15,0x9d,0xe5,0x8d,0xa5,0xeb,0x7e,0xd4,0x1c,0xc6,0x85, \
-0xbe,0x85,0xcc,0xd3,0xfa,0x8f,0x55,0xb2,0xeb,0x09,0x3a,0xc6,0x81,0x9e,0xae,0x43, \
-0x71,0xa8,0xd7,0xb5,0x6d,0x20,0x38,0x25,0xa8,0xcd,0x99,0x9f,0x7e,0x29,0x78,0xbe, \
-0x55,0x88,0x2d,0x02,0x3f,0xd3,0xa3,0xa4,0x51,0x94,0xc7,0x5a,0xa1,0x95,0x29,0xe8, \
-0xbf,0x16,0xdb,0x48,0xc0,0x6b,0xe4,0x3d,0xa6,0xcf,0x59,0xb4,0xa1,0xde,0x4c,0x23, \
-0x83,0x43,0x30,0xb2,0x36,0x50,0x31,0xff,0xbc,0x15,0xd0,0x14,0x07,0x68,0xc9,0x06, \
-0x07,0x66,0x5a,0xf5,0x1b,0x46,0x22,0x69,0x27,0x97,0xb0,0xf3,0xec,0xf4,0x7e,0x13, \
-0xcb,0xba,0x7a,0x90,0xe4,0xd1,0x9e,0xa4,0x2b,0x05,0x16,0x08,0x88,0xc4,0x64,0x56, \
-0x0a,0xaa,0x02,0x47,0xa8,0xc6,0x24,0x29,0x49,0xbf,0xb0,0xfb,0xf9,0xfe,0x04,0xe8, \
-0x69,0x5a,0x5a,0xae,0xb5,0xc6,0x10,0x25,0xb2,0x8f,0x7e,0x81,0xc8,0xd4,0x76,0x04, \
-0xc5,0x0c,0xfa,0xf0,0x0e,0x50,0xdc,0x54,0x1a,0x19,0x9c,0x22,0xab,0x86,0xe0,0x4b, \
-0xe2,0x57,0x37,0x1a,0x05,0x12,0xf1,0x1b,0xa2,0x77,0x93,0x54,0xc2,0x61,0x96,0x12, \
-0xd7,0x9c,0x73,0x94,0xe1,0x82,0xc0,0x6e,0x2e,0x53,0xa7,0x52,0xdc,0x1a,0x33,0xd0, \
-0x9d,0xcc,0x44,0x82,0x8a,0x8d,0x03,0x18,0x9b,0x19,0x80,0x30,0x82,0x47,0x09,0x6e, \
-0xf3,0x3b,0xd3,0xaf,0x9d,0xe3,0x77,0x67,0x29,0xec,0xd8,0x11,0x36,0xd8,0xcc,0xa9, \
-0x85,0x0c,0x72,0x82,0x6d,0x05,0xd9,0x5b,0xcd,0xb7,0xfe,0xa7,0xa3,0x6a,0xf2,0x69, \
-0x74,0x86,0x83,0x0d,0x0e,0xd2,0x8d,0xae,0xd6,0x7a,0xf6,0x23,0x70,0x2d,0x5b,0x6b, \
-0xd8,0x31,0x83,0xd6,0x74,0xb0,0x6d,0xc0,0xb1,0xdc,0xf5,0x09,0x4b,0xd4,0x54,0x21, \
-0x59,0xe0,0xa2,0x3a,0x0b,0x5e,0xfa,0x71,0x82,0x59,0x2d,0x06,0x2b,0x66,0x5f,0x8c, \
-0xff,0x1c,0x4d,0x6c,0xe9,0x69,0xae,0x78,0xb0,0x97,0x83,0x16,0x9a,0xfa,0x57,0x10, \
-0x9b,0x87,0x0e,0xc2,0x7b,0x04,0x54,0x10,0x0f,0xce,0xc9,0x59,0x16,0x41,0x67,0x68, \
-0xc2,0x56,0x1f,0xc9,0x84,0x34,0xda,0x63,0x97,0x0c,0x5c,0x6d,0xe7,0xee,0xee,0xe9, \
-0xa5,0xa2,0x0c,0xc9,0xdb,0x29,0x5b,0x9d,0x9c,0xf4,0x18,0xdb,0x07,0x5e,0x15,0x18, \
-0x6c,0x4c,0xa5,0xde,0x92,0x00,0xb8,0xaf,0xaf,0x50,0x48,0xcb,0xdc,0x02,0x03,0x0d, \
-0x4f,0x5e,0x45,0xb0,0xe9,0xd0,0x20,0x38,0x81,0x7e,0x27,0x0e,0x2d,0xb7,0x3b,0x60, \
-0x8b,0x92,0xca,0xf2,0x43,0x5e,0x43,0x01,0x41,0xec,0xdf,0x71,0xaa,0xc9,0x19,0xc2, \
-0x11,0x75,0x23,0xbc,0x95,0x78,0x83,0x59,0x5d,0x96,0xf3,0x5b,0x5a,0x27,0x74,0x98, \
-0xd0,0xc0,0xe4,0x96,0x18,0x04,0x01,0xc7,0xab,0xf6,0x95,0x77,0x33,0x19,0xbb,0xbe, \
-0xf6,0x68,0x63,0x9e,0x07,0x24,0x87,0xbc,0x02,0x81,0xf4,0xf4,0x11,0xec,0x5a,0x11, \
-0x55,0x10,0x66,0x36,0x68,0x86,0x1d,0x02,0x7e,0x3f,0x25,0xb6,0x53,0x02,0x93,0x81, \
-0x81,0x48,0x2f,0xfa,0x98,0x20,0x64,0x44,0xc2,0xef,0x3d,0x0c,0x0b,0x89,0x64,0xd0, \
-0xc1,0xb6,0xda,0x13,0x7c,0xd5,0xa3,0x87,0x7c,0xc7,0x49,0x70,0x04,0xb2,0xc2,0x8f, \
-0x0f,0xe1,0x75,0x8c,0xba,0x3c,0xbb,0xcd,0xa8,0x30,0xed,0x3c,0xea,0xeb,0x87,0xf7, \
-0x01,0x70,0x6c,0xdf,0xf5,0xff,0xac,0x46,0xea,0x86,0x1a,0x84,0x67,0x96,0x05,0xf3, \
-0x75,0x9c,0x1e,0xf1,0x8a,0x45,0x88,0x8a,0x46,0x44,0x82,0x28,0x0c,0x54,0x44,0x80, \
-0xaa,0x7e,0x66,0xac,0xe4,0xd1,0x55,0x58,0xa8,0x46,0x0c,0x41,0x51,0x14,0x5d,0xac, \
-0xa9,0x15,0x1c,0x65,0xa3,0x59,0x19,0x02,0x12,0x7c,0xb5,0xc6,0xbe,0x4b,0x3c,0x75, \
-0xf2,0xdd,0x4c,0x88,0x09,0x08,0x89,0x22,0xb0,0xfc,0xc9,0x0e,0x6e,0x24,0x16,0x41, \
-0x14,0x52,0x73,0x7f,0x55,0xed,0x73,0xe5,0x42,0xab,0xad,0x8a,0x73,0x89,0x27,0xd0, \
-0xd7,0x5b,0x2d,0x21,0x14,0x13,0x18,0x30,0xd7,0x11,0xfb,0x03,0x14,0x56,0x3b,0x1a, \
-0xfe,0x9d,0xbf,0xcf,0xb8,0xec,0xd4,0xb8,0xfc,0x97,0xf0,0x01,0xb7,0x80,0xee,0x63, \
-0xc2,0xcf,0xa2,0x7f,0x3b,0x8e,0x26,0x70,0x2c,0xcb,0xa5,0x51,0xbf,0x4b,0xeb,0xea, \
-0x86,0xd6,0xd4,0xda,0x12,0xec,0x37,0xd2,0x42,0x87,0x9d,0x07,0xda,0x8f,0x4f,0x28, \
-0x2e,0x08,0x7c,0xff,0xc7,0xa1,0x43,0xd1,0x4a,0x42,0x71,0x5e,0x48,0x8e,0x3f,0x9b, \
-0x55,0x5f,0x85,0xf2,0x13,0xa8,0xc6,0x4a,0xec,0x1a,0x9b,0x3b,0xe6,0xf4,0x6a,0x67, \
-0x91,0x20,0x32,0x7f,0x4f,0x95,0xcb,0x3f,0xe6,0x6e,0xea,0xd7,0xcc,0x39,0x0b,0xf7, \
-0xb9,0x8f,0xd8,0x6f,0x07,0x9f,0x54,0xe1,0xbd,0xba,0x61,0x9b,0x1c,0x11,0x29,0x6a, \
-0x1d,0x46,0x4e,0xb0,0x3f,0x87,0xd7,0x03,0x2d,0xf3,0xdb,0x34,0x8a,0x7a,0xaf,0x98, \
-0x7d,0xb7,0xf5,0x45,0x58,0xba,0x49,0xcd,0xd9,0xc4,0xeb,0xe0,0x28,0xb5,0x77,0x8b, \
-0xc9,0x91,0x90,0x20,0x96,0xac,0x19,0xca,0xf4,0x36,0xbd,0x99,0x1f,0x19,0xc0,0x3a, \
-0xb8,0xbf,0xc6,0xdd,0x8e,0xa8,0x1c,0x02,0xf8,0x11,0x62,0x55,0x2b,0xde,0xd2,0xc6, \
-0xdd,0x4a,0x43,0xf6,0x62,0xe8,0x78,0x06,0x28,0x43,0x04,0x7a,0x1a,0xfd,0x2e,0xf7, \
-0x4f,0x99,0xa5,0x5e,0x30,0x5a,0x20,0x25,0x86,0xd3,0x59,0x12,0xeb,0xbb,0x1b,0xfd, \
-0x3f,0x7a,0xe8,0xf0,0x8e,0x57,0xe1,0x3a,0xc0,0x8f,0x4d,0x80,0x4a,0xcd,0x9a,0x34, \
-0xa2,0x15,0x1d,0xcf,0x33,0x16,0x60,0xe5,0x1c,0xe3,0xe6,0x3d,0x88,0x3b,0xe0,0xc8, \
-0x0f,0x95,0x02,0x10,0x67,0x94,0x55,0x52,0x87,0x4c,0xe0,0xc0,0x30,0xdd,0xc3,0x09, \
-0xcb,0x5e,0x7a,0xd9,0xb1,0xab,0x3e,0x40,0xb5,0xad,0x7d,0x07,0xfd,0x79,0x99,0xb0, \
-0xab,0x30,0x44,0x82,0xb0,0x53,0xf4,0xa8,0x5c,0x52,0x4a,0xc0,0x6d,0x92,0x7e,0x38, \
-0x30,0x28,0xcc,0x1c,0x5e,0x89,0xf9,0xb2,0x5f,0xe0,0x43,0xea,0xfd,0xe5,0xe1,0x5a, \
-0x5f,0x8f,0xd8,0xd5,0x75,0xe7,0x0a,0x3c,0x38,0x29,0xf7,0xb2,0x81,0x5b,0x52,0x8f, \
-0xdb,0x69,0x25,0x3c,0x84,0xd2,0x67,0x33,0x2a,0x1a,0xe8,0xb8,0x86,0x09,0xb6,0x1c, \
-0x90,0x74,0xb4,0x60,0xd2,0xe7,0xf2,0x9f,0x18,0x81,0x34,0x40,0x5e,0xc6,0xc0,0x22, \
-0x78,0xa9,0x4f,0x07,0x1e,0xb4,0x8e,0x1f,0x62,0x88,0xb0,0x82,0x5d,0x6f,0x40,0x70, \
-0xea,0xf6,0x2e,0x58,0x65,0x67,0x64,0x03,0xeb,0x32,0x02,0x98,0x50,0xf9,0x85,0x95, \
-0xae,0xea,0x9f,0x17,0x51,0xb8,0x2d,0x16,0x66,0xf7,0x2d,0x6a,0xbe,0x0b,0xda,0x0b, \
-0x85,0x60,0x51,0x21,0xbc,0x58,0x4e,0x24,0x8c,0x84,0x79,0x40,0xdf,0x7e,0xa7,0x30, \
-0xa3,0x68,0x92,0xa2,0xcb,0x96,0x02,0x91,0x3c,0x72,0x05,0x5a,0x1e,0x6b,0x8c,0x62, \
-0x65,0x5e,0x73,0xd6,0xa2,0x21,0x56,0x57,0xe7,0x65,0xc9,0x5a,0x32,0xfb,0x13,0xc2, \
-0x00,0x7d,0x1a,0xe1,0x23,0xc2,0x01,0xed,0xa3,0x21,0x87,0xc9,0x88,0x1b,0x40,0x50, \
-0x2f,0xc0,0xed,0x25,0x46,0xc4,0x67,0xd4,0x22,0x48,0x51,0xba,0x40,0x81,0xf0,0x6d, \
-0x38,0xd6,0x90,0x4f,0x51,0xdd,0x4a,0x83,0x19,0x04,0x9e,0x3a,0x67,0x0b,0xc1,0xc2, \
-0xe6,0xfd,0x98,0x45,0x3b,0x13,0xc1,0x5d,0x6a,0xe6,0x4c,0xb6,0xd1,0xd4,0x51,0xe8, \
-0x11,0x32,0x0d,0x6a,0xfa,0x70,0xce,0x4c,0x92,0x5a,0x97,0x83,0x09,0x0b,0x95,0xf8, \
-0x85,0xb0,0xf1,0x89,0x65,0xca,0xc0,0xda,0x0b,0x38,0x51,0x24,0x0a,0x4c,0x04,0xc4, \
-0x73,0x24,0x8d,0x33,0x27,0xb4,0x32,0x32,0x75,0xd8,0x37,0x89,0xdb,0x29,0x08,0x13, \
-0x97,0x57,0x1a,0xe9,0xb5,0x4d,0x90,0x24,0x43,0x8e,0xf0,0xf2,0xfe,0x79,0x4e,0x65, \
-0x25,0x9b,0x4b,0xcb,0xb5,0xad,0x21,0x1a,0x8a,0xbc,0x60,0x1b,0x3c,0x2e,0x0a,0xb1, \
-0xa2,0x84,0x67,0x0d,0x49,0x27,0x14,0x7b,0xdc,0x5e,0xc5,0xde,0xb4,0x88,0x48,0x6a, \
-0x5a,0x39,0x57,0x9e,0x21,0xc0,0x93,0x74,0xa1,0xc1,0x01,0x0a,0x91,0x24,0xf0,0x82, \
-0xcf,0x38,0x35,0x3c,0x79,0xc3,0x39,0x14,0x85,0x21,0x70,0x36,0x11,0x67,0x6a,0x7d, \
-0xbe,0x20,0x25,0x9c,0xa5,0x19,0x51,0xd3,0x90,0x86,0x9a,0x52,0xd5,0xd9,0x52,0xf2, \
-0x93,0x14,0xcc,0xe8,0x92,0x99,0xae,0x4b,0xcf,0xa1,0x46,0x5c,0xb7,0xf2,0x88,0x7b, \
-0xd3,0x3e,0x92,0x68,0xac,0x38,0x19,0x14,0x48,0x68,0x62,0x0f,0xdd,0xbf,0xad,0x7b, \
-0xbc,0x17,0xb0,0x68,0xfb,0x74,0x50,0x04,0x77,0xb3,0x77,0x9f,0x6c,0x39,0x55,0x2c, \
-0x23,0xfc,0x1a,0xf6,0xcc,0x3e,0xef,0x84,0x88,0x0b,0x23,0x6a,0x48,0x84,0x37,0xda, \
-0xdb,0x02,0x43,0xb1,0x82,0x50,0x1e,0x96,0x0b,0xf7,0xaf,0xca,0xe4,0xa7,0xa5,0x00, \
-0xec,0x2a,0x44,0x0a,0xed,0xdb,0xa5,0xe5,0x4d,0x28,0x1b,0x83,0xa4,0x6a,0xf0,0xea, \
-0x70,0xd8,0x04,0x00,0xda,0x0a,0x0c,0x36,0xf5,0x50,0xe2,0xc2,0x76,0x7f,0x95,0x36, \
-0x9f,0x0f,0x8f,0x9f,0x4c,0xc1,0x73,0x6c,0x0d,0x1a,0x98,0x19,0x32,0xec,0xfa,0xcc, \
-0x28,0xa7,0x37,0x83,0x9c,0x70,0x3a,0x7c,0xf7,0x48,0x69,0xcb,0x4d,0x5d,0x64,0x62, \
-0x12,0xcc,0x72,0x38,0xa1,0xd0,0x7d,0xe9,0x43,0xea,0xf9,0xe0,0x5e,0xd1,0x36,0x35, \
-0x38,0xdb,0x4b,0x67,0xa7,0x9a,0x0a,0xe3,0x9c,0xf5,0xe3,0x55,0x65,0x44,0x40,0xa4, \
-0xbb,0x52,0x88,0x15,0x13,0x13,0x18,0x1f,0x08,0x7c,0xbc,0xe6,0x74,0x67,0x3c,0xb2, \
-0x6e,0x6f,0x42,0xb6,0xa7,0x1d,0x02,0x41,0x41,0xda,0x84,0xe3,0x27,0x79,0x34,0x41, \
-0x58,0x9b,0xad,0xa7,0x11,0x94,0xe1,0x8a,0x4c,0xa8,0x86,0x45,0xe2,0x10,0x1a,0x72, \
-0x1d,0x38,0x42,0x87,0x18,0x6e,0x08,0x71,0x06,0x49,0xb3,0x76,0x28,0x34,0xb2,0xda, \
-0x82,0x16,0xf6,0xa4,0x96,0x0a,0x60,0x18,0xd1,0x3b,0x8e,0x9c,0x7d,0xb4,0x86,0xbb, \
-0x5a,0x64,0xd0,0xa4,0x48,0x51,0xd6,0xd6,0x1a,0xc1,0x18,0xc8,0x07,0x59,0x10,0x1f, \
-0x94,0x63,0xf8,0xc2,0x4b,0x7a,0xec,0x70,0x2d,0xee,0x27,0xfd,0xf2,0x57,0xca,0x0d, \
-0xe0,0x68,0x6e,0x0c,0xfe,0xe8,0x21,0x35,0x98,0x58,0x59,0x26,0xcd,0x61,0x9a,0x53, \
-0x66,0x59,0x00,0xfa,0xbe,0x8e,0xcd,0xe1,0x32,0x49,0xf3,0xfa,0xc2,0xc3,0xa7,0xa3, \
-0x42,0x71,0xcc,0xe0,0xf5,0xb9,0xf5,0xf8,0x99,0xcd,0x27,0x80,0xe5,0x81,0xad,0x6a, \
-0x05,0x77,0x86,0xa9,0xe5,0x33,0x44,0x1d,0xb1,0xaa,0x67,0x0d,0x72,0x53,0x34,0xa9, \
-0x80,0x17,0x09,0x47,0x36,0xa6,0x11,0x61,0x2a,0x07,0x0b,0xac,0x53,0x66,0xe8,0x4a, \
-0x86,0xe3,0x73,0x73,0x6e,0x1e,0xea,0x68,0xcd,0x20,0xb3,0x83,0x36,0x59,0x32,0x88, \
-0x8b,0x0c,0x18,0xa5,0x53,0x20,0x96,0x40,0x31,0x09,0x75,0xda,0x1a,0x42,0xda,0x20, \
-0xd1,0x4d,0x92,0xc4,0x31,0xdc,0x10,0x76,0xdf,0x14,0xc1,0x90,0x62,0x77,0xde,0xaf, \
-0x75,0xac,0xc0,0x4e,0xe9,0x37,0x75,0x5f,0x9b,0xd4,0x77,0xe1,0xec,0x13,0xc5,0x0c, \
-0xef,0x93,0x6f,0xed,0xa4,0xd5,0x6b,0x1a,0x7e,0x2f,0x5e,0xe8,0x24,0x78,0x9d,0x7d, \
-0xd2,0x8c,0x14,0x5a,0x8b,0xda,0x44,0xca,0x22,0x20,0x52,0x33,0xca,0xd8,0x1c,0x1d, \
-0xad,0x6d,0x7a,0x88,0xb5,0x98,0x9b,0x10,0x7b,0xfa,0xa6,0xad,0x79,0x96,0xdd,0xf2, \
-0xe9,0x99,0x89,0x10,0x53,0xac,0x50,0x49,0x95,0x17,0x48,0xf3,0x72,0x7b,0x30,0xed, \
-0x28,0x7d,0x2d,0x02,0xbc,0xf6,0xdd,0x04,0x8a,0x11,0xbe,0x33,0x42,0x54,0xdd,0xa0, \
-0x42,0xb4,0x6a,0x75,0xb1,0x8e,0x77,0xca,0x05,0xad,0x88,0xf6,0xb0,0x5f,0x27,0xe9, \
-0xc3,0x9a,0xca,0x0b,0xd9,0x79,0x60,0x39,0xef,0x85,0xc7,0xf9,0x9e,0x06,0xc4,0x92, \
-0xba,0xff,0x00,0xbb,0x0d,0xf4,0xcf,0x99,0x12,0x44,0xc2,0x97,0x2e,0x74,0xa7,0x9f, \
-0x0b,0x95,0xc5,0x50,0x4c,0xbf,0xb0,0x8a,0xaf,0xe1,0xfe,0xbc,0xb6,0x64,0x12,0x0a, \
-0xc9,0xe6,0xea,0xfe,0xc8,0x2c,0x36,0x59,0x4d,0x85,0x48,0xa2,0xd9,0x16,0x96,0x63, \
-0x32,0x34,0x1c,0x96,0x18,0x44,0xc0,0x44,0x64,0xd0,0xb0,0x70,0x79,0xf0,0x28,0x4c, \
-0xa5,0x89,0x9c,0x06,0xd6,0x05,0xe5,0xb2,0xce,0x50,0xa9,0x12,0xd4,0x05,0xbc,0xe8, \
-0x1e,0x28,0x32,0x34,0x89,0x1b,0x16,0x16,0x1e,0x6b,0xa1,0xb6,0x03,0x40,0x32,0x6c, \
-0x8b,0xf4,0x82,0x07,0x88,0x7a,0x18,0x06,0x48,0xb6,0x81,0x85,0xb1,0xea,0x39,0x71, \
-0x4b,0xb0,0xb5,0x46,0x13,0xe2,0x46,0xc7,0x71,0x65,0xbd,0x73,0x61,0xa0,0xaa,0xc0, \
-0x91,0x5a,0x29,0x40,0xc2,0x1b,0x38,0xdb,0x02,0xb7,0x32,0xd6,0xb2,0x36,0xd7,0x56, \
-0xd3,0x54,0xd1,0x80,0x38,0x2f,0xb5,0x20,0x6f,0x50,0xc2,0x81,0xd2,0xe7,0x4a,0x2d, \
-0x25,0x4c,0xc2,0xe4,0x25,0xf6,0x16,0x28,0xf7,0x8c,0x56,0xc3,0x6b,0xb6,0xb5,0x40, \
-0xd0,0x85,0x43,0xeb,0x75,0x25,0x32,0x41,0x9c,0x96,0xc9,0x50,0xaa,0x44,0xd6,0xec, \
-0x1e,0xd5,0x19,0x60,0x16,0xe5,0x59,0xb3,0xb9,0x13,0x9a,0xb5,0x16,0x5f,0x86,0x90, \
-0x01,0xac,0x2d,0x5d,0x08,0x22,0x82,0x82,0x14,0x86,0x65,0x12,0x25,0x6d,0x02,0x12, \
-0x0f,0x1b,0xb2,0x54,0xdd,0xdc,0xd8,0xc4,0xbc,0x70,0x2e,0x33,0x06,0x0d,0xe6,0xd8, \
-0x08,0x70,0xd7,0x06,0x17,0x19,0x18,0x66,0xb5,0x23,0x71,0x10,0xb4,0x54,0xd9,0xed, \
-0xad,0x73,0x60,0x17,0x5a,0xb2,0x50,0xa8,0x97,0xa4,0x87,0x0c,0x2d,0xbd,0x60,0x86, \
-0xd1,0x03,0xea,0x0a,0xea,0xe7,0x75,0x80,0x68,0x08,0xb2,0x57,0x56,0x16,0x68,0xe0, \
-0xda,0xc0,0x74,0xbb,0x3d,0x56,0x9a,0xaa,0xca,0x3d,0x35,0xa6,0x5c,0x5a,0x94,0xc0, \
-0x21,0xc9,0x78,0x0a,0x2a,0x24,0x2b,0xc6,0xe6,0xa0,0x69,0x55,0x1b,0x0c,0xa5,0x02, \
-0xd5,0x12,0x86,0x4b,0x8b,0x05,0x9a,0x0d,0x1e,0x32,0x8c,0xa2,0xda,0x28,0xa3,0x06, \
-0x5a,0xa5,0xd0,0x56,0x22,0xea,0xc0,0x2b,0xef,0x9a,0xd6,0x25,0xc3,0xa6,0xb8,0x70, \
-0x03,0x93,0x31,0x92,0x05,0xd5,0xdd,0xa8,0xc2,0x1a,0x14,0xad,0x24,0x15,0x54,0xba, \
-0x35,0x85,0x45,0x10,0x52,0x33,0x77,0x4e,0x18,0x0a,0xa1,0x62,0x9e,0x40,0xd1,0xf4, \
-0x15,0xa9,0x3b,0xe5,0xce,0x62,0x6a,0x1e,0xf5,0x0e,0x87,0xe7,0x1d,0xc8,0xa9,0x6c, \
-0x0e,0x3b,0x3e,0x2a,0x3a,0x89,0xb1,0xdb,0x47,0x1c,0x2e,0xb0,0xb0,0xb6,0xfe,0x49, \
-0x06,0xb3,0x2f,0xbd,0x40,0xe0,0x48,0x88,0x06,0xd3,0x47,0x11,0x60,0x28,0x0a,0x44, \
-0xa2,0x7b,0xb0,0xf7,0x1c,0xe8,0xd8,0x43,0x7c,0x7b,0xc8,0x3b,0x74,0xed,0x0b,0xab, \
-0xc4,0x2f,0xa0,0x0d,0x0e,0x99,0x34,0xdf,0x29,0x19,0xaf,0x2d,0x3d,0x85,0xce,0x16, \
-0xd2,0x0a,0xd1,0x21,0x83,0x48,0x2f,0x10,0xc3,0x5a,0x26,0xd8,0xd2,0x87,0x0a,0x07, \
-0x43,0xd1,0x7c,0x18,0x78,0xc9,0x4a,0x18,0xb5,0x8c,0xe6,0xec,0xd5,0xe8,0xad,0x9e, \
-0xa0,0x43,0x23,0x61,0x40,0x54,0xc2,0x2f,0x12,0xc0,0xb1,0x22,0x5a,0xd1,0x6e,0x92, \
-0xbb,0x25,0x5a,0xc8,0xf5,0xf4,0x40,0x63,0x01,0xe7,0x20,0x49,0xe1,0x2d,0x81,0x54, \
-0x4e,0xb0,0x74,0x31,0xd8,0x55,0xf4,0x07,0x4d,0x1e,0xb3,0x72,0x8f,0x55,0x4e,0xb2, \
-0x2d,0x6e,0x26,0xf3,0xc0,0xb2,0xd7,0x7f,0x0d,0x35,0x38,0x17,0x7b,0x88,0x4a,0xc9, \
-0x89,0xb7,0x4e,0x43,0x5e,0x3b,0x1b,0x5e,0x07,0x24,0xd3,0x61,0xbc,0x60,0x6a,0x05, \
-0xa0,0xc8,0x91,0x9d,0x13,0x54,0xf2,0x8c,0xe7,0x85,0x90,0x4c,0xef,0xed,0x41,0xa0, \
-0x76,0xaf,0x14,0x43,0xd2,0xf2,0x2a,0xd0,0xa8,0x64,0x90,0xc8,0x0f,0xa1,0x61,0x92, \
-0x57,0x18,0xa3,0x86,0x4d,0xce,0xbc,0xb6,0x07,0x28,0x6d,0xba,0xb6,0x5f,0x62,0x42, \
-0xdf,0x78,0xeb,0x9a,0x3e,0xa5,0x67,0x0d,0xfb,0xb7,0x1e,0xa4,0x12,0x56,0x98,0xb7, \
-0x23,0x61,0x6d,0x06,0x74,0xe6,0x1b,0x8d,0x05,0x0b,0x05,0x78,0xb8,0x4e,0x88,0xd3, \
-0x05,0x6d,0x6f,0x7a,0x70,0x26,0xae,0x94,0x65,0x75,0x6a,0x65,0x6e,0x4e,0xe8,0x88, \
-0x0e,0x7b,0x09,0xa7,0x3d,0x65,0x47,0xbc,0xae,0x13,0xde,0x98,0x95,0x14,0x38,0xdb, \
-0x62,0x56,0x62,0x36,0x0d,0xa5,0x67,0x36,0x83,0xab,0x2f,0x7a,0x4a,0x16,0x61,0xc9, \
-0xc5,0x92,0xe0,0xa9,0x4f,0xb1,0x28,0x50,0x27,0xd6,0x2c,0x9a,0x1d,0xb6,0xdb,0x25, \
-0x05,0xb9,0x6a,0x87,0x08,0xee,0x93,0xaa,0x0a,0x4f,0x79,0xef,0xfe,0x41,0x31,0x27, \
-0x12,0x7d,0x5e,0x32,0x38,0xf4,0x71,0xb6,0x0e,0x91,0xb6,0x0a,0x0b,0x2d,0x7e,0x4c, \
-0x73,0x05,0x81,0xe8,0x34,0x59,0x03,0xc9,0xe9,0x27,0x78,0x50,0x98,0xdb,0xa5,0xdc, \
-0xf2,0x13,0x2d,0xe3,0x83,0x92,0xcb,0x0a,0x2f,0x56,0xfa,0x39,0x8a,0x3d,0x47,0x8a, \
-0x20,0x95,0x3d,0x86,0xcc,0xc8,0x4d,0x4d,0xce,0x8d,0x67,0x06,0x8c,0xe3,0x52,0x53, \
-0xad,0xca,0xd3,0xd3,0xe9,0x33,0xd2,0xda,0x24,0x63,0x3b,0x31,0x84,0x84,0xc2,0x32, \
-0x1e,0x60,0xb9,0xda,0x5c,0x8c,0x25,0x7c,0x80,0x63,0x7d,0x56,0x86,0x1b,0x8b,0xc0, \
-0x13,0x12,0x91,0x18,0x62,0xc3,0xd5,0x4c,0x6f,0xda,0xc6,0x85,0x54,0x10,0x73,0xa9, \
-0xcd,0xb3,0x19,0x8b,0x1e,0x23,0xd4,0xb3,0xc2,0x4b,0xee,0x8a,0xc7,0x89,0xc4,0x3c, \
-0xfb,0x96,0xcd,0xc2,0xe6,0x9e,0x06,0x50,0x86,0x0d,0xbc,0x19,0x2c,0x44,0x8d,0x96, \
-0x91,0x18,0x82,0xc8,0x76,0x4a,0x25,0xcf,0xe5,0x3b,0x75,0xe1,0xe6,0x73,0x36,0x73, \
-0xc4,0x09,0xda,0x72,0x54,0x9c,0x29,0x97,0xdd,0x47,0xf7,0x54,0xcc,0xb9,0x8b,0x94, \
-0xb5,0xca,0x29,0x81,0x58,0x6a,0xa9,0xb9,0xb5,0xed,0x87,0xc3,0x89,0xa1,0x38,0x9e, \
-0x41,0xdc,0x3c,0x03,0x84,0x44,0x66,0xa5,0x87,0x76,0xc9,0x13,0xc3,0xac,0x30,0x0f, \
-0x5d,0xc2,0xcd,0x78,0xae,0x9b,0xcc,0x1b,0x6e,0x8a,0xe4,0x83,0xa1,0xa0,0xd8,0xad, \
-0xef,0x68,0x35,0x05,0x07,0xb3,0x78,0xfa,0xec,0xfb,0x3b,0x6c,0x3b,0x10,0x0d,0x8f, \
-0x4c,0x28,0x1f,0x27,0x01,0x53,0xee,0x45,0xf9,0xce,0x01,0x0e,0x4c,0x53,0xd9,0xd2, \
-0xfd,0xf3,0xc7,0x17,0xf3,0x0d,0x19,0x32,0x0a,0x0a,0x63,0x18,0x26,0x12,0xb2,0x3f, \
-0x2d,0x93,0x2c,0x26,0x04,0x8a,0x20,0x82,0xb4,0xb6,0xb6,0x0b,0x24,0x14,0x82,0x30, \
-0xeb,0xef,0xd8,0xec,0x79,0xea,0x59,0x8f,0xf2,0xa7,0x47,0x7a,0x82,0xe3,0xb1,0xde, \
-0x90,0xab,0x5c,0xd1,0x46,0x8a,0x0d,0x18,0x7c,0x0f,0x7d,0x0c,0xb6,0x03,0x06,0x04, \
-0xba,0x44,0x0c,0x46,0x6a,0x50,0x57,0x8c,0x54,0xf0,0x23,0xba,0x00,0x30,0x82,0x4d, \
-0x36,0x04,0x21,0x02,0x54,0x2a,0x52,0x18,0xe3,0x9d,0x6e,0xae,0x53,0xcd,0x00,0x71, \
-0x12,0x26,0xe8,0xa6,0x29,0x07,0x08,0xfc,0x30,0x57,0x58,0xe8,0x33,0xef,0x7e,0xdd, \
-0x53,0x8e,0xe5,0xcd,0xc0,0xa9,0xf2,0xa5,0xc2,0xda,0x04,0x06,0x10,0x5d,0xb0,0x1a, \
-0xc4,0xe2,0x91,0x6b,0x95,0x10,0x0b,0xc6,0xf0,0x7d,0xf6,0x67,0x37,0xde,0x60,0x30, \
-0x95,0x48,0x46,0x3d,0x07,0x6d,0x43,0x60,0x61,0xff,0x37,0x14,0xa9,0x1c,0x97,0x4d, \
-0xa4,0x8d,0xfe,0x4c,0xb6,0x65,0x8d,0xd1,0xb5,0xb1,0x17,0x17,0xea,0x01,0x0c,0x7b, \
-0xeb,0xdd,0x50,0xb9,0xb2,0xf6,0x64,0xd2,0xf7,0x6b,0x33,0xbc,0x6c,0x86,0x05,0xa4, \
-0x0c,0x66,0xde,0x62,0xf5,0xd2,0xcb,0xe3,0x15,0x46,0x11,0x01,0x55,0x16,0x2a,0xc1, \
-0x18,0x9f,0x45,0xa3,0x1a,0x25,0x41,0x18,0xc8,0xa2,0x31,0x05,0x15,0x23,0x01,0x7c, \
-0xfe,0x13,0x1f,0xc7,0xf3,0x9f,0x76,0x76,0xfa,0x76,0x84,0xf9,0x16,0xa1,0xb6,0x50, \
-0x80,0xd1,0xd9,0x99,0x56,0xa5,0xc3,0xcb,0x4b,0x55,0x01,0xf4,0x46,0x45,0x24,0x41, \
-0xa8,0xbc,0xd6,0x0b,0xc0,0x68,0x0b,0x22,0xa8,0xf8,0x0d,0xaf,0xd0,0x70,0x2f,0x33, \
-0x23,0x07,0x49,0x0b,0x27,0x26,0x04,0x2d,0xbb,0xa7,0xd7,0xee,0xfa,0xff,0x3d,0x3c, \
-0xd8,0xa2,0xe9,0x43,0x8c,0xa5,0x86,0x48,0x80,0x7a,0x50,0xa0,0x49,0xf8,0x71,0xff, \
-0x59,0xe9,0xaa,0x2c,0x89,0x8b,0xfe,0xc4,0x53,0xdb,0x55,0x42,0x80,0x36,0x36,0x09, \
-0x87,0x74,0x96,0x59,0xae,0xff,0x6e,0xbf,0xec,0xfb,0x3a,0x3a,0x1a,0x4b,0x6a,0x67, \
-0x60,0xd5,0xce,0xad,0x26,0x76,0x90,0xd2,0x53,0x4c,0x02,0x0d,0x44,0x80,0x2e,0x98, \
-0xb3,0xb4,0x01,0xbc,0xdc,0x19,0xab,0x31,0x4c,0x92,0x2e,0x22,0x47,0x03,0x84,0x11, \
-0x57,0x46,0x95,0x91,0xd9,0xe9,0xc7,0x9f,0xab,0xa2,0x0d,0x26,0x74,0xa2,0xdf,0x34, \
-0xaf,0x66,0x57,0x65,0xe3,0x70,0xf6,0x24,0x6a,0x62,0x1e,0xd5,0x24,0x43,0x35,0x3e, \
-0x13,0x66,0xab,0xe2,0x82,0xf3,0xe7,0xcc,0x7a,0x63,0x02,0x74,0xd0,0x90,0x29,0xe9, \
-0xe0,0x9b,0x5e,0x7a,0xcf,0xba,0x9b,0xc5,0xe7,0x18,0xda,0xe8,0xd5,0x5c,0x77,0x9f, \
-0x83,0xeb,0x0e,0xa3,0x96,0x60,0x2d,0x63,0x40,0xd8,0x3d,0x1c,0x09,0x8d,0x2a,0xb4, \
-0xb3,0x1a,0x00,0x96,0x0d,0x89,0x49,0xf7,0x75,0x1f,0x72,0x90,0xde,0x1b,0x80,0x0d, \
-0x4d,0x6e,0x35,0xf4,0x3b,0xbc,0x95,0x0f,0x18,0xee,0x3d,0xe5,0x89,0x64,0x79,0x58, \
-0x03,0x8b,0x2b,0x09,0x56,0x40,0x62,0xb5,0x14,0x5c,0x38,0x46,0x7f,0x0d,0xf7,0xd7, \
-0xe5,0x7c,0x70,0x1d,0xfa,0x8e,0x9b,0x8a,0xca,0x47,0x26,0x90,0x89,0x17,0x35,0x9f, \
-0x53,0x33,0x65,0xa5,0xf1,0x0e,0x6e,0xa8,0xbe,0x4e,0xad,0x60,0x49,0xc2,0x7b,0x8a, \
-0xb3,0x4e,0xdd,0xeb,0x99,0xb0,0x98,0xb9,0xca,0xaa,0x9e,0x60,0x33,0x18,0x37,0x18, \
-0x17,0xcc,0xbb,0x24,0xe4,0xb3,0xb0,0x37,0x79,0x15,0x66,0xc5,0xc8,0xdf,0x80,0x92, \
-0xd8,0x50,0x1f,0x26,0x81,0x9a,0x52,0x4b,0x09,0xa3,0xa1,0x88,0x2f,0xf1,0x1a,0x1b, \
-0x04,0x93,0x70,0x86,0x0c,0x1e,0x38,0x1f,0x3e,0xaf,0x5e,0xca,0xd8,0xe9,0x62,0xb1, \
-0x82,0x08,0x23,0x08,0x82,0xb1,0x64,0x0a,0x1b,0xf6,0x9f,0x6e,0x3d,0x0b,0x14,0x72, \
-0xe4,0x91,0xbd,0xb7,0x85,0xdd,0xb4,0xba,0xe3,0x8f,0x14,0x58,0x1a,0x17,0xb9,0xa0, \
-0x3b,0xcc,0x7a,0x91,0xf9,0xf9,0x7c,0x3a,0xc5,0xdb,0x1e,0xa7,0x74,0x54,0x90,0x5d, \
-0x19,0x13,0x42,0x40,0xf1,0x86,0xee,0x35,0x4e,0x1a,0xd1,0x30,0x90,0x90,0x48,0xc1, \
-0xf4,0x79,0x00,0x7b,0x45,0x06,0x31,0x3c,0x3e,0x43,0x08,0x75,0x2f,0xde,0xa7,0xc8, \
-0xef,0xa2,0xc3,0x5c,0x35,0x0d,0x63,0xf6,0x43,0xaa,0xa5,0xb1,0xd5,0x16,0xe5,0x8a, \
-0xd2,0xbc,0x4e,0x2f,0xd7,0x62,0x84,0x20,0xbe,0x72,0xc5,0x4a,0xd1,0x37,0x07,0xb8, \
-0xec,0xe8,0x71,0xba,0x0e,0xf4,0xf3,0xee,0xa7,0x0e,0xa6,0x28,0x8f,0x10,0xf8,0xc2, \
-0x67,0x59,0xbe,0x5e,0x42,0x19,0xb6,0x0a,0x18,0x58,0x16,0xca,0xc0,0x14,0x4f,0xd2, \
-0x99,0xe3,0x93,0xf3,0xf1,0x0d,0x9f,0x6b,0xcd,0x5b,0xae,0xf2,0x02,0x31,0x1d,0x54, \
-0x40,0x5c,0xea,0xc9,0x61,0xe2,0xcc,0xe6,0x02,0x83,0x08,0x21,0x38,0xab,0xfd,0x23, \
-0x99,0x7d,0x3a,0x4f,0x5a,0xfe,0x33,0xa9,0x5c,0x93,0x61,0xc7,0x72,0xb0,0x3e,0x8b, \
-0xd5,0xde,0x4e,0xb0,0xfb,0x37,0x38,0x88,0x28,0xb0,0x54,0x62,0xc8,0x24,0x30,0x90, \
-0x39,0xf5,0xce,0xd3,0xd0,0x90,0xf4,0x21,0x83,0x9e,0x6c,0xb0,0xf9,0x1c,0x99,0xa6, \
-0x0b,0x86,0x61,0x7c,0x2c,0xaa,0x45,0x56,0x31,0x14,0x15,0x88,0xe5,0xa3,0xa5,0xa0, \
-0xb5,0x0e,0xdb,0x64,0xd1,0x64,0x20,0x6d,0xd5,0x96,0x5b,0xf5,0xdc,0x5a,0xbd,0x16, \
-0x52,0x5e,0x8d,0x5e,0x7c,0x6a,0x59,0xad,0xe1,0x87,0xd0,0x1d,0x20,0xfb,0x51,0x75, \
-0x0f,0x03,0x69,0x1f,0x9b,0xb8,0xd6,0x0d,0xe4,0x30,0xc9,0x17,0xa6,0xf8,0x3b,0x04, \
-0x38,0xdc,0x15,0x55,0x44,0x14,0x8f,0xb5,0x96,0x2a,0x61,0x92,0xac,0x95,0x54,0x49, \
-0x76,0xc6,0x26,0x17,0x2d,0x91,0x61,0x86,0x58,0xc9,0x1b,0x4c,0xc7,0x9a,0x77,0x99, \
-0x54,0x81,0xcb,0x1c,0x58,0xb9,0xdf,0xe3,0xe9,0x29,0xc6,0xe6,0x2c,0x45,0xc7,0xa2, \
-0xed,0x40,0x76,0x05,0x10,0xf8,0x33,0xe3,0x8a,0x5a,0x31,0xb9,0xf8,0x0a,0x27,0x96, \
-0x04,0x88,0xdb,0xdf,0xa0,0x35,0x8a,0xec,0x2e,0x32,0xf3,0xd0,0x66,0x71,0xee,0x95, \
-0xe0,0xe5,0x80,0x63,0x02,0x1a,0x7a,0x24,0x5e,0xdb,0x0c,0x06,0x68,0x39,0x98,0xac, \
-0xc2,0x01,0x6e,0x31,0x3c,0x51,0x9f,0x72,0xda,0x44,0x4c,0xd0,0xee,0xf3,0xeb,0x86, \
-0xfc,0x76,0xec,0xbe,0x5f,0x60,0xc4,0x87,0x61,0x14,0xa7,0x62,0x59,0x73,0x9d,0x51, \
-0xf2,0x6e,0x7b,0x2c,0x4c,0xc0,0x3c,0x21,0xaf,0x3e,0x3b,0xe3,0x95,0x9b,0xd9,0x6d, \
-0xba,0xfd,0xe2,0x14,0xb2,0x00,0x81,0x22,0xe4,0x17,0x7b,0xb8,0x4e,0x3c,0xb0,0x2e, \
-0xee,0xe4,0x0b,0x79,0xaa,0x09,0x1b,0x70,0xc3,0xbc,0x1a,0x25,0xde,0xca,0x35,0xcd, \
-0xc3,0x2c,0xec,0x6c,0x0e,0x31,0xb4,0x83,0x7b,0x4a,0x09,0xd5,0x52,0x3e,0x98,0x39, \
-0x14,0x90,0xce,0xd0,0x94,0x2a,0x99,0x2e,0xc9,0xd9,0x80,0xc0,0x22,0x66,0xe5,0x19, \
-0x19,0x45,0xf4,0xfb,0xb1,0xbb,0x15,0xb7,0x23,0xa5,0x7c,0xea,0x54,0xc9,0xdf,0x07, \
-0xd4,0xce,0x66,0x4d,0xb7,0xb5,0x64,0x19,0x20,0x2a,0x98,0xe2,0x88,0x20,0x78,0x4f, \
-0xab,0x13,0x49,0xbe,0xea,0x54,0xaa,0x60,0x89,0xb4,0xe1,0xc1,0x66,0xd4,0x81,0x11, \
-0x81,0x24,0x84,0x38,0x5a,0x0c,0x74,0x16,0xc6,0xda,0x22,0x2b,0x14,0x0a,0xc7,0xa6, \
-0xff,0x6b,0x0d,0x78,0x1a,0x46,0x61,0x10,0x40,0xd6,0x2e,0xf4,0x55,0xa6,0xd0,0xda, \
-0x5b,0xfe,0xab,0xe8,0x74,0x1c,0x0d,0xdb,0x03,0x1f,0x46,0xf8,0xd6,0x61,0xc5,0xf0, \
-0xb8,0xfd,0x46,0xde,0x88,0x65,0xbf,0x9a,0xa7,0x77,0xc5,0xe7,0x6d,0x8a,0x07,0x33, \
-0x1c,0x8a,0x73,0x81,0xa8,0xee,0x8d,0xe2,0xf4,0xb2,0x43,0x25,0x3c,0xb1,0xb0,0x93, \
-0x6e,0xfd,0x49,0x84,0x9e,0xed,0xe0,0xf2,0x81,0xbb,0xca,0xd2,0xba,0x64,0x0a,0x0c, \
-0x28,0x12,0xc1,0x95,0x08,0x60,0xcb,0x2c,0x6f,0x50,0xae,0x5c,0x79,0x49,0x0f,0x4e, \
-0x8b,0xcc,0x9e,0x2d,0xbc,0x41,0x19,0x63,0xa5,0x46,0x6a,0x98,0x86,0x21,0x58,0x23, \
-0xac,0x13,0xd1,0x98,0xec,0x63,0x6d,0x8d,0x6d,0x96,0xc1,0xc1,0xa2,0x18,0x13,0x31, \
-0x31,0x9d,0x01,0x8d,0x19,0x76,0x8e,0x59,0x8c,0x42,0xd2,0x89,0xad,0xaa,0x0d,0xc9, \
-0x8d,0x66,0x04,0xb2,0x10,0x99,0x97,0x04,0x49,0x01,0x19,0x6d,0x51,0x66,0x08,0x20, \
-0xb3,0xda,0x6c,0x13,0x0e,0x43,0x63,0x11,0x34,0x61,0xb7,0x9e,0x4c,0xc7,0x19,0x43, \
-0x54,0xaa,0x83,0x5b,0x68,0xb7,0x09,0x71,0x80,0xb9,0xa4,0x34,0x20,0x68,0x0b,0x51, \
-0x45,0xf4,0x44,0x2a,0xc0,0x42,0x73,0x84,0x9d,0xe6,0x25,0x6e,0x3f,0x57,0x5f,0x52, \
-0xca,0x21,0x55,0xa2,0x20,0x85,0x6c,0x35,0x6d,0x68,0xb4,0xdf,0x23,0x4d,0xb1,0x0c, \
-0x8f,0x6e,0xfe,0x55,0xde,0xcb,0x30,0x37,0xb0,0xbe,0x46,0x69,0xcf,0x36,0x4b,0x8d, \
-0x45,0x47,0x48,0x5b,0xa9,0xe8,0xb2,0xaf,0xde,0x59,0x13,0x5a,0x58,0xa3,0x1b,0x14, \
-0x40,0x38,0xdd,0xfa,0xe4,0xc0,0xb8,0x65,0x12,0x0e,0x68,0x54,0x0d,0x60,0xa4,0xc2, \
-0x0b,0x81,0xa8,0x5c,0x63,0x09,0x8c,0x2c,0xdd,0x30,0x1c,0x4b,0xa3,0x18,0x98,0xd2, \
-0x43,0x2e,0x23,0x1f,0x6d,0x2a,0xa8,0x22,0x29,0x98,0x50,0xe4,0xdd,0x1a,0x74,0x1a, \
-0xa0,0x19,0x69,0xc0,0x65,0x41,0x2f,0x2b,0x05,0xcd,0x16,0x54,0x15,0x93,0x01,0x10, \
-0xc8,0xa4,0x8c,0x61,0x27,0x29,0x0a,0xda,0x86,0x00,0xc6,0x0c,0xf2,0x35,0x0f,0x61, \
-0x6a,0x7f,0x68,0x27,0x35,0x75,0x06,0xd1,0x23,0x44,0x31,0x8c,0x03,0x7c,0xa5,0x78, \
-0x85,0xa8,0x60,0xae,0x92,0xd8,0x01,0xec,0xe6,0x2c,0x25,0xed,0x5e,0x1e,0x36,0xa9, \
-0xb1,0xa2,0xf1,0x9f,0x43,0xbc,0x35,0x82,0x82,0xde,0xa8,0x5b,0x58,0x75,0x26,0x5f, \
-0x5c,0x8d,0x8b,0x1b,0xfe,0x5f,0xc0,0x6f,0xae,0xae,0x88,0x0a,0x77,0x23,0xf1,0xed, \
-0xd0,0x51,0x8b,0x23,0x9b,0x27,0xa6,0xc4,0x37,0xc4,0xc1,0x24,0xc0,0xed,0x56,0xad, \
-0x8c,0x2b,0x44,0x15,0x8e,0x46,0xb8,0x15,0x11,0x2d,0x2a,0xc0,0xb4,0xa0,0xdb,0x06, \
-0xd1,0x94,0x29,0x2d,0x19,0x44,0xb4,0xac,0x82,0xc6,0xb5,0x8d,0x15,0xce,0x0f,0x6e, \
-0x43,0x39,0x93,0x81,0x58,0xcb,0x10,0x75,0x25,0x0c,0x96,0x06,0x23,0x26,0x11,0x3d, \
-0x60,0x26,0x12,0x8c,0xd9,0x66,0x0a,0xa8,0xbe,0xac,0x09,0xea,0x59,0x00,0xc8,0x23, \
-0xc3,0xbf,0xa8,0xc7,0xdd,0xca,0xda,0x35,0x76,0x2e,0x24,0x50,0x30,0x1f,0xe2,0x36, \
-0x31,0x88,0xe9,0x93,0x9e,0xd0,0xa4,0x30,0x93,0xe8,0x43,0x26,0xbf,0x26,0xa8,0x79, \
-0xe2,0xf6,0xb3,0x64,0x34,0xa8,0x57,0xef,0x24,0xb9,0x94,0x62,0x48,0xf6,0x16,0x57, \
-0xaa,0xd6,0x6f,0xca,0x45,0x77,0x67,0x52,0x3d,0xbb,0xbd,0x7d,0xf4,0xc8,0x7f,0x53, \
-0x5d,0x32,0x90,0xb5,0x84,0x80,0xb1,0x15,0x17,0x7e,0x9d,0x8b,0xf9,0x79,0x27,0x10, \
-0xb6,0x0d,0x4a,0xc2,0x94,0xa5,0xdc,0xd6,0x43,0x5a,0xd1,0xb9,0x24,0xf3,0x49,0x14, \
-0x84,0x9e,0xa6,0x74,0xe9,0x7e,0x2e,0x38,0xc6,0xa1,0x68,0xd6,0x2b,0x60,0x3c,0xbd, \
-0xe1,0xbe,0x9c,0x1b,0x45,0xe6,0xff,0x30,0xd8,0xdd,0x3a,0x3c,0x90,0x33,0x1f,0xad, \
-0xdf,0xf9,0x85,0x13,0x2c,0x41,0x77,0x57,0x38,0x81,0x8b,0x02,0x44,0x61,0x16,0x16, \
-0x4e,0xa4,0x35,0x8b,0x72,0x31,0x41,0xec,0xa1,0x2c,0x62,0x0a,0x8c,0x11,0x9e,0xd8, \
-0x78,0xb1,0x62,0x82,0xc0,0x2e,0x67,0x7a,0x50,0x38,0x1b,0x71,0x0d,0xec,0x3d,0x6e, \
-0xcd,0x42,0xf1,0xd4,0xf0,0xf3,0x51,0x32,0x72,0xda,0x2c,0x91,0x54,0x46,0x60,0x4e, \
-0x41,0xa9,0x80,0x5e,0x25,0x98,0xd0,0x30,0x1b,0x65,0x35,0x17,0x60,0x2c,0x76,0x62, \
-0xb8,0x22,0xcd,0x9a,0x32,0xe4,0x7e,0x2e,0xa1,0x4c,0x2a,0x95,0x35,0x31,0x79,0xa3, \
-0x3d,0x11,0x9d,0xb0,0xe1,0x17,0xc0,0x35,0x11,0x0d,0x98,0x30,0xf7,0xa6,0x06,0x30, \
-0xef,0xb4,0x60,0x82,0x39,0x33,0x82,0x60,0x3d,0x51,0xa3,0x83,0x7d,0xf3,0x21,0x9c, \
-0x10,0xa0,0x9b,0x90,0x10,0x12,0xf7,0xc4,0x21,0xae,0x7f,0x85,0x31,0xfe,0x15,0xbe, \
-0x0e,0xc3,0x18,0xaf,0x2a,0xef,0xeb,0x00,0xf3,0x86,0x06,0xf8,0x57,0x25,0xa8,0x6e, \
-0xef,0x39,0x10,0x9a,0x86,0x98,0x4a,0xc3,0x5c,0x55,0x22,0x79,0x75,0x07,0xcf,0x0c, \
-0x10,0x5c,0x98,0xb3,0x70,0x9c,0x27,0x48,0xaf,0x74,0xfb,0x51,0x3a,0x9e,0xd4,0xb8, \
-0xc0,0x14,0x10,0xdb,0x5d,0x83,0x24,0x59,0xbf,0xb8,0x4d,0x20,0xec,0x40,0x5f,0xb2, \
-0xad,0x61,0x7f,0xf0,0xd5,0xda,0xd0,0xda,0x6d,0x19,0x28,0xf5,0x1f,0xb9,0x99,0x72, \
-0x2c,0xd7,0x54,0x51,0x9b,0x16,0x30,0xf9,0x97,0xdf,0x2c,0x47,0xd6,0xe1,0x30,0x62, \
-0x58,0xa7,0x6c,0x87,0xa0,0xf3,0xdf,0xc3,0xed,0xe5,0x39,0xf8,0xc0,0x99,0xe8,0xf4, \
-0xa1,0x6d,0xc1,0xf2,0x7d,0x45,0x0f,0x2d,0x7c,0x50,0x93,0xf1,0xf6,0x92,0x52,0x76, \
-0xde,0xa3,0x6e,0x60,0x88,0x28,0x2a,0x80,0xc8,0x82,0x5b,0x65,0x35,0x0d,0x64,0x39, \
-0xeb,0xcb,0x7f,0x2e,0x53,0xe2,0x20,0x7b,0x0f,0x8e,0xbb,0x9c,0x5f,0x8b,0xa0,0x43, \
-0x00,0x93,0x18,0x1d,0xb0,0x43,0x0c,0x82,0x19,0x08,0x16,0x6c,0xcb,0x89,0x95,0x28, \
-0xd7,0x01,0x94,0xc5,0x0e,0x13,0x6c,0xef,0x0d,0xbd,0x15,0x97,0x6b,0xe6,0x88,0x36, \
-0xe5,0x93,0x5e,0xc4,0x64,0x28,0x0c,0x1c,0x0c,0x14,0x5c,0xe1,0x2b,0x85,0xf1,0xc0, \
-0x3c,0x8b,0x0c,0x18,0xef,0xaa,0x4b,0xbf,0x66,0xce,0x4e,0x6a,0xc1,0xac,0x54,0xaa, \
-0x0c,0x84,0xc3,0x28,0xb2,0xbc,0x3e,0xf8,0x91,0x5e,0x8e,0xc8,0x0b,0x2c,0x35,0x64, \
-0x90,0xb3,0x82,0xe6,0x1a,0x28,0x22,0x7c,0x7c,0x4b,0x57,0x0e,0x6d,0xdf,0x7c,0x8d, \
-0xe0,0x3f,0x7b,0x9d,0x1c,0x6d,0xa7,0xc0,0x1b,0xd3,0x96,0x74,0x60,0xd2,0xe8,0x66, \
-0x26,0x2c,0x09,0x09,0x1d,0x8b,0xbe,0xc0,0x2f,0x9a,0x14,0x67,0x92,0x4f,0xd7,0x7d, \
-0xe3,0x24,0x9b,0x86,0xb8,0xce,0xce,0xcb,0xd5,0xe7,0xb6,0x10,0xc5,0x35,0x04,0xd3, \
-0xea,0x60,0x88,0xe3,0x1a,0x93,0xd3,0xe0,0x4e,0xb6,0x0c,0x48,0x31,0x55,0x18,0x82, \
-0xc9,0xe8,0xe0,0x4e,0x71,0x2d,0x83,0x36,0xb1,0x7a,0x72,0xcb,0x95,0xf3,0x51,0x9b, \
-0xf6,0xe6,0xcc,0xa8,0x64,0x31,0xb2,0x23,0x83,0x9b,0x8a,0x31,0x03,0x81,0x49,0x97, \
-0x96,0x2b,0x00,0x51,0x45,0x50,0x7a,0xe8,0x56,0x33,0x6a,0x4c,0xa0,0x60,0x41,0x60, \
-0x56,0x5d,0x0d,0x55,0x88,0x8a,0xa2,0xc1,0x05,0x91,0x54,0x15,0x95,0x5a,0xac,0x46, \
-0x40,0x41,0x04,0x48,0x22,0xc6,0x0e,0xc8,0x5b,0x9a,0x61,0x87,0xbf,0xfd,0x91,0x89, \
-0x65,0xf1,0x0c,0x40,0xc1,0x25,0x7e,0x57,0x50,0x9f,0x6d,0x2a,0x10,0x11,0xfc,0x3d, \
-0xd3,0x75,0x6a,0xde,0x97,0x01,0x23,0x2e,0x38,0x08,0xd8,0x06,0xc0,0x1e,0x45,0x35, \
-0x0f,0x63,0x32,0x82,0x82,0x2c,0x58,0xe5,0x85,0x32,0x52,0xc3,0x73,0x17,0x02,0xc6, \
-0xa3,0x65,0x90,0x55,0xc2,0x16,0x15,0xbd,0x7c,0x66,0x93,0xac,0x48,0xd6,0x47,0x87, \
-0xe5,0xfb,0xa4,0xd4,0x6a,0xf5,0x81,0xd4,0x36,0xd6,0xd1,0xf5,0x1f,0x98,0xee,0x6c, \
-0xda,0x92,0x5c,0x43,0x6e,0xe7,0xb1,0x90,0xf2,0x5e,0x1e,0xb1,0xc6,0x82,0xdf,0x76, \
-0x41,0x98,0xe7,0x31,0x78,0x33,0xad,0xcb,0xb2,0xeb,0x7a,0x10,0x88,0x64,0x0c,0x4c, \
-0xbc,0xc8,0x7d,0x6e,0xdd,0xa6,0x4c,0x08,0xfc,0x79,0xc5,0x58,0x0b,0x21,0x46,0x44, \
-0x34,0x9a,0xbc,0x78,0x00,0xa1,0x19,0xd6,0x03,0xdb,0x58,0xa0,0xa8,0x88,0x59,0x6c, \
-0xd8,0xc6,0x70,0x43,0x73,0x88,0x2c,0x58,0x89,0x18,0xc4,0x40,0x50,0x82,0x29,0x0c, \
-0x88,0x62,0x1d,0x86,0xbe,0xc2,0x7b,0x94,0x62,0x34,0xc1,0x61,0x32,0x2e,0x32,0x17, \
-0x1a,0x77,0x5a,0x86,0x18,0x84,0x92,0xa1,0xa2,0x18,0x0a,0x05,0xd8,0x89,0x42,0x50, \
-0x62,0xab,0x32,0x75,0x94,0xef,0xe3,0x27,0x60,0xc1,0x61,0x14,0x35,0x3c,0x42,0x4b, \
-0x86,0x77,0x43,0xcc,0xaf,0xdc,0xe8,0x1c,0x04,0x62,0x6f,0xdb,0xfb,0x31,0xb1,0x62, \
-0xf5,0xbd,0x76,0x4b,0x31,0x8a,0x04,0x98,0x7c,0xd8,0xa6,0xa5,0xee,0x51,0x82,0xac, \
-0x52,0xb4,0x64,0x16,0x69,0x16,0x62,0x94,0x40,0x64,0x82,0x1e,0xfd,0x10,0xf1,0x86, \
-0xdb,0x6d,0x16,0x22,0xd0,0x14,0x1b,0x46,0x8c,0xa4,0xa0,0x8d,0xb0,0xad,0x69,0x17, \
-0x5d,0xfd,0x24,0x67,0x4a,0x74,0x37,0x93,0xf0,0x6b,0x3f,0xaa,0x71,0xd4,0x26,0x29, \
-0xc5,0x86,0x04,0x2c,0xf9,0x15,0x0c,0x53,0xeb,0x42,0x1c,0xa0,0xed,0x7b,0x9f,0x71, \
-0x73,0x72,0x8e,0xdd,0xdf,0x4c,0xed,0x13,0x1f,0x2b,0x0f,0xc8,0xe9,0x43,0x1d,0xc0, \
-0x0f,0x0c,0xaa,0x2a,0x31,0x1d,0x90,0xb1,0xa3,0xe7,0x30,0xd1,0xa2,0x64,0x73,0xae, \
-0x6c,0xa0,0x6a,0x66,0x49,0xab,0xe7,0xd3,0x83,0x74,0x66,0x90,0xcf,0x13,0x8b,0x2d, \
-0x88,0x11,0x35,0xdf,0x15,0xb5,0x02,0x90,0x40,0x8c,0x00,0xc0,0x47,0x67,0x1b,0x50, \
-0x11,0x17,0xfc,0xce,0xc8,0x32,0x05,0xe5,0x9c,0x87,0xb6,0xcc,0x05,0x6d,0x4a,0x3a, \
-0xf7,0x90,0xbb,0x78,0xf5,0x54,0x07,0x14,0xb6,0xdb,0xbf,0x43,0xad,0x22,0xec,0xf6, \
-0x36,0x3d,0x7e,0x06,0xdc,0x4a,0xd5,0xed,0xd7,0x2c,0x6d,0x92,0xcc,0x52,0x76,0xb5, \
-0x66,0xec,0x5c,0x1d,0x01,0x2a,0x58,0xad,0x26,0x23,0xc6,0x21,0x24,0x29,0x42,0x86, \
-0x3d,0xba,0x01,0x58,0xd9,0x40,0xc8,0x29,0xd4,0x71,0xe5,0xb2,0xb6,0x37,0xc4,0x39, \
-0x28,0x4d,0xc1,0x4c,0xd2,0x9d,0x4f,0x00,0x8e,0x40,0x52,0x92,0xf0,0x4f,0xed,0x75, \
-0x72,0xe0,0x79,0x05,0x60,0x46,0x8e,0x28,0xc1,0x42,0x93,0xaa,0x8e,0x39,0x79,0x94, \
-0xc9,0x17,0xb1,0xea,0xb2,0x3d,0x65,0xb8,0x90,0xa6,0xc5,0x3b,0x88,0xd3,0x0a,0x39, \
-0xf5,0x2a,0x82,0x8d,0x75,0xe3,0xaa,0xd8,0x76,0xc6,0x8d,0x0d,0xb1,0x59,0xc4,0x1c, \
-0x72,0x2e,0x11,0x32,0x80,0xe4,0x9a,0xad,0xee,0x07,0x0e,0xa5,0xe5,0x12,0x35,0x51, \
-0xbe,0x85,0x5f,0x65,0x1b,0x32,0xb2,0xae,0x7b,0x82,0xfa,0x9a,0x15,0x99,0xc9,0x4a, \
-0x8b,0x82,0x77,0x3d,0x46,0x0b,0x59,0x72,0x6d,0x33,0x0d,0xc5,0x83,0x95,0xd6,0x24, \
-0xd2,0xd3,0x29,0x90,0xa8,0x2c,0x66,0x2e,0x19,0x7a,0xb1,0x26,0xb4,0xad,0xaa,0x1c, \
-0x7a,0xc3,0x18,0x20,0x58,0xd1,0x04,0x85,0x0b,0xa2,0x2b,0x47,0x3e,0xf5,0x64,0xea, \
-0xb0,0xb3,0xf5,0xf3,0x9e,0x27,0xb4,0x11,0xd3,0xf7,0xe5,0xba,0x97,0x05,0xb8,0x67, \
-0x1a,0x0e,0x4c,0x44,0x5f,0x55,0x62,0xfc,0x1c,0x3e,0xa8,0x8f,0xed,0xc4,0x3e,0x99, \
-0xd9,0x9d,0xab,0x7e,0x0c,0x31,0x37,0x2f,0x8f,0x82,0xb5,0x6a,0x0d,0x0d,0x49,0x0c, \
-0x50,0xf5,0x6b,0xbd,0x8d,0x30,0x63,0x06,0x23,0xe7,0x76,0xc6,0x30,0x77,0x51,0xfc, \
-0x8e,0x9e,0x77,0x05,0x60,0xec,0x5d,0x06,0x8b,0xc7,0x46,0xb5,0x33,0xbe,0x32,0x23, \
-0xbd,0x29,0x9a,0x1d,0x36,0x9b,0x72,0x5f,0x5b,0x3e,0x67,0x82,0xf5,0xa5,0x89,0xb2, \
-0x7d,0xff,0x0e,0x3a,0x82,0x6d,0x85,0x53,0x36,0x07,0x19,0x35,0x89,0xe2,0x81,0x86, \
-0xee,0xe2,0x13,0x7a,0x32,0xa3,0x53,0xc4,0x1c,0x23,0x61,0x86,0xb3,0xd5,0x49,0x6a, \
-0xcf,0xe6,0xd6,0xd7,0xc3,0x80,0x42,0x0d,0x5c,0x8d,0x84,0x89,0x4e,0x01,0x58,0xce, \
-0x92,0x5c,0xf7,0xd6,0x18,0x43,0x81,0x90,0x40,0x76,0xd4,0x0c,0x8c,0xe0,0x36,0x33, \
-0x26,0xb0,0x35,0xb1,0xf9,0x3d,0x7c,0xb8,0x5a,0xd9,0x1a,0x6e,0xa6,0xe4,0x6e,0x5d, \
-0xd5,0xe7,0xd6,0x74,0x06,0x4f,0x8b,0x4a,0xcc,0x17,0x97,0x92,0x14,0x43,0x84,0x5e, \
-0x88,0x25,0xd4,0x78,0x74,0xd7,0xd5,0x89,0xd3,0x01,0xe6,0x90,0x58,0xb2,0x43,0xf8, \
-0xbf,0x7a,0x36,0x43,0xcd,0x81,0xcb,0x41,0x7d,0x74,0xb8,0xa3,0xcb,0xf5,0xbd,0x39, \
-0xc3,0x19,0xbd,0x55,0x11,0x21,0xa8,0x40,0xc1,0xe4,0x12,0xf0,0x44,0xa6,0xc4,0x29, \
-0x01,0x54,0xa8,0x92,0xd5,0x10,0x18,0x68,0xcf,0x6e,0xe3,0xa9,0x32,0xa0,0x7a,0xa0, \
-0xa5,0x60,0x83,0xe2,0x21,0x65,0x4e,0xb0,0x5a,0x65,0x9e,0x70,0x36,0xd8,0xf1,0x11, \
-0xb4,0x69,0x02,0x31,0x39,0xdc,0xa1,0xed,0x4e,0xa8,0xa1,0xd9,0xda,0x07,0x63,0x5a, \
-0x04,0x4e,0x49,0xa7,0x8c,0x2a,0xbd,0x9c,0x4d,0xf3,0x44,0x7d,0xf0,0x92,0x31,0xf2, \
-0xe8,0x22,0x4f,0xd1,0xf4,0x34,0x70,0x43,0x4d,0x00,0xd9,0xd9,0xc4,0xcf,0x53,0x39, \
-0x8e,0xaf,0xa3,0x64,0x4e,0xf8,0xa9,0xc3,0xa1,0x0d,0x9e,0xa6,0x16,0xeb,0x26,0xc4, \
-0x74,0xc5,0x18,0x17,0xe2,0x44,0xc9,0x0b,0x09,0x43,0xb1,0x5d,0x49,0x14,0x44,0xaf, \
-0x29,0x26,0x30,0x60,0x60,0xce,0x50,0x34,0x71,0x7b,0xdd,0x07,0x60,0x9d,0x0d,0xb7, \
-0xde,0x81,0x5d,0x28,0x37,0xa5,0xa7,0x2c,0xe1,0xdb,0x45,0x83,0x75,0x44,0x90,0xe2, \
-0x5a,0x2c,0x64,0xc8,0x84,0x21,0x48,0xc2,0x0b,0x03,0xe7,0xa1,0x91,0x9b,0xd1,0x66, \
-0xcb,0x00,0x96,0xf3,0x03,0x40,0x63,0x16,0x32,0x2b,0x78,0x06,0xc1,0x89,0xa1,0x94, \
-0x41,0x20,0x6a,0x24,0x4c,0x0c,0xdd,0xa0,0x72,0x95,0x5c,0x38,0x34,0x08,0x26,0x62, \
-0x94,0xe9,0x09,0x83,0x17,0x58,0x94,0xd0,0x90,0x30,0x4b,0x4c,0x2a,0x4c,0x06,0x02, \
-0x70,0x32,0xda,0xb5,0x36,0x6e,0x33,0xb6,0x40,0xb0,0x2c,0x56,0x49,0x2e,0xfa,0x19, \
-0x91,0x84,0x12,0x23,0x06,0x3b,0x20,0xee,0xcd,0x6a,0x5c,0x03,0x12,0x34,0x59,0x60, \
-0x69,0xe5,0xd9,0x66,0x1a,0x4c,0xa0,0x64,0x2d,0x1a,0xc8,0xab,0x48,0xa5,0x02,0xcd, \
-0x3c,0x81,0x63,0x08,0x28,0x54,0x31,0x36,0xe0,0x80,0xf7,0x48,0x52,0xdd,0x8d,0x93, \
-0x46,0x44,0x99,0xda,0x98,0xe1,0x55,0x79,0x49,0x31,0x51,0x03,0x46,0x18,0x5f,0x24, \
-0x34,0x33,0x4a,0x68,0xe5,0x96,0x81,0x43,0x60,0x21,0x61,0xde,0xcf,0x00,0x4a,0x07, \
-0x29,0x26,0xd0,0x98,0x16,0x02,0x03,0x05,0x09,0x76,0x50,0x73,0x41,0x05,0xa9,0x8c, \
-0x54,0x30,0xc0,0x81,0x90,0x42,0xd7,0x61,0x80,0x9b,0x06,0x0f,0xff,0x6a,0x33,0xf6, \
-0xd3,0x13,0xef,0xad,0xf6,0xca,0x26,0x9d,0x07,0x71,0x83,0x17,0xae,0xdf,0x9d,0x27, \
-0x3e,0x7b,0xc9,0x8b,0xd9,0xbe,0x0e,0xee,0xf8,0x8e,0xc6,0x03,0xda,0x97,0xb8,0x14, \
-0x51,0x0d,0x88,0x04,0xc8,0xd2,0x0e,0xa8,0x06,0x61,0x75,0x03,0x38,0xab,0x5d,0xc9, \
-0x24,0x58,0x42,0xb1,0x28,0x2a,0x1f,0x09,0xb6,0x0a,0xe1,0x52,0xe3,0x10,0xc3,0x88, \
-0x86,0xf4,0xb3,0x0c,0xd5,0x21,0x42,0xed,0x22,0x2c,0x43,0x9b,0x17,0x4d,0xe5,0x0c, \
-0xd7,0x50,0x39,0xb9,0xd1,0x4b,0x8b,0xc5,0x80,0xc4,0xb3,0x60,0x5d,0x55,0xbc,0x2c, \
-0x95,0x2e,0xc0,0xbc,0xdc,0x4a,0x61,0x71,0x58,0x9b,0x54,0xc0,0x36,0xe2,0x8e,0x35, \
-0x02,0xc6,0x23,0x74,0x84,0x99,0x16,0xd6,0x74,0x49,0xd4,0xc6,0xcb,0xc9,0x25,0x11, \
-0x13,0x02,0x36,0xa8,0xe0,0xef,0xe7,0xc8,0xdd,0x5f,0xa7,0xc9,0x38,0xef,0xe9,0x40, \
-0xc9,0xdf,0x4a,0x39,0x35,0x64,0xac,0x3f,0x2a,0x06,0x04,0x0c,0x56,0xde,0x00,0x48, \
-0x7a,0x51,0x22,0x6e,0xd4,0xc8,0xb4,0xc8,0x50,0x35,0x21,0xd4,0xae,0xa8,0x52,0x71, \
-0xba,0xbc,0x2f,0xac,0xa7,0xbb,0xc8,0x9e,0xda,0x43,0x96,0x86,0xda,0x6b,0xb2,0x48, \
-0x45,0xd8,0x63,0xbb,0x89,0x24,0x65,0x50,0x8a,0x85,0x6a,0x39,0xe3,0x7a,0xd4,0xcb, \
-0x33,0x7b,0x7a,0xa0,0x11,0xc4,0x4c,0x2c,0xda,0x99,0x5c,0x2c,0x44,0xac,0xf4,0xe4, \
-0x31,0xc4,0x1d,0x8d,0xaa,0x1c,0x35,0x63,0xd3,0x5d,0xb0,0x6b,0x19,0x15,0x79,0x44, \
-0x4a,0x45,0x91,0x4d,0xf0,0x10,0xd5,0x09,0x23,0xd6,0x60,0x3c,0x9d,0x03,0x39,0x54, \
-0xa2,0xb4,0x8a,0x17,0x70,0xc8,0x80,0x85,0xeb,0xd6,0xb0,0x7b,0x99,0xc8,0x0c,0x10, \
-0xba,0x31,0x60,0x30,0xf9,0x64,0x51,0x5b,0x83,0x72,0x4a,0x63,0x36,0x8f,0x83,0x86, \
-0x44,0x40,0x6f,0x23,0x09,0xd7,0xc2,0x6e,0x3a,0x33,0x21,0xb3,0x0a,0x0a,0x32,0x7b, \
-0xfc,0x76,0xf1,0x7c,0x36,0x09,0xd9,0xbc,0x97,0x28,0x63,0xbb,0x8f,0x64,0x15,0x2a, \
-0xdc,0x44,0x98,0x35,0xe9,0x61,0xc2,0x78,0xcc,0x09,0x59,0xfa,0xaf,0xfa,0x30,0xdf, \
-0xd9,0xf7,0xfe,0x3a,0xce,0x96,0x91,0xb7,0x23,0x90,0x1e,0x4f,0x9b,0xbd,0x8b,0x16, \
-0x28,0x29,0xce,0x40,0x9b,0xfa,0xcf,0xc1,0x90,0x93,0xdf,0x1d,0x9d,0x1f,0xd2,0xe6, \
-0x93,0x76,0x82,0x3b,0xbc,0x53,0xd7,0xe1,0xd9,0xf1,0xe4,0x58,0xde,0xb8,0x08,0x57, \
-0xbd,0x44,0x36,0xc3,0x8b,0x8f,0xdf,0xf8,0x2d,0xd7,0x24,0x1e,0x97,0xc4,0x2e,0x5a, \
-0x80,0x9c,0x26,0x88,0xb1,0x99,0xf5,0xaa,0x01,0xd2,0xbf,0x9b,0x1a,0x4c,0xf7,0x96, \
-0x83,0x93,0xfa,0x16,0xda,0x13,0xb6,0x17,0xec,0x78,0x90,0xdf,0xc5,0xa2,0xa7,0x38, \
-0xe1,0x00,0x3c,0xe1,0xe1,0x71,0xf0,0xb1,0x6f,0xe4,0xb0,0x5b,0x7c,0xaa,0x87,0x84, \
-0x7c,0x7c,0x18,0x70,0xe7,0xc0,0xf1,0xe4,0x42,0xc9,0xd8,0x2c,0x20,0xb4,0xa4,0x1b, \
-0x64,0x3c,0x88,0xae,0xe8,0x33,0x13,0x7d,0x5c,0x5c,0xb9,0x1f,0xcf,0xb6,0x90,0xe6, \
-0x5e,0x7c,0xe8,0x82,0x02,0x28,0x8b,0x01,0x01,0x18,0x23,0x25,0x66,0xc0,0xe0,0x19, \
-0x14,0x58,0x2a,0x42,0x9a,0xe5,0xcb,0x06,0xd0,0xf3,0x44,0x7a,0xb0,0xc8,0x6f,0x21, \
-0xfb,0x91,0x90,0x41,0x03,0x3b,0x7a,0xf0,0x1b,0x12,0x39,0xb5,0x97,0xd3,0x14,0x3f, \
-0x32,0xc8,0xef,0xa5,0xb0,0xd7,0x5e,0x84,0x55,0x71,0xdb,0xaf,0x2d,0x49,0x7c,0x44, \
-0xc4,0x76,0x1f,0xd1,0xd9,0x7a,0xf7,0xb5,0x15,0x25,0x7c,0x96,0x61,0xc6,0x1b,0x89, \
-0x84,0x78,0x12,0xc8,0x31,0x27,0x5b,0x5b,0x4d,0xbb,0x1a,0x18,0x91,0x22,0x51,0xc2, \
-0x11,0x1e,0x59,0x48,0x48,0xdd,0xf4,0xdd,0x28,0x8b,0x5a,0x4b,0xa6,0x07,0x6e,0xea, \
-0x1b,0x7e,0x71,0x9e,0x83,0x49,0x71,0x89,0x9c,0x63,0x22,0x4f,0x9b,0x25,0x01,0x2d, \
-0x26,0xc4,0xaa,0x75,0xc6,0x7c,0x38,0xdd,0xe1,0xa0,0x5b,0x6c,0x25,0x86,0x3d,0xda, \
-0x57,0x15,0x45,0x88,0x3a,0x31,0xa4,0xbd,0x4d,0x23,0x02,0xf0,0x85,0xa3,0x00,0x1d, \
-0x55,0x12,0xb7,0x92,0xfb,0x02,0xc1,0x70,0x9b,0x63,0xfa,0xb5,0xc4,0xa3,0xa5,0x17, \
-0xa2,0x76,0xd7,0x7b,0x14,0x09,0xf4,0xc4,0x2c,0xd1,0x68,0x92,0x5a,0xa0,0xff,0x13, \
-0xdf,0x05,0x1b,0xd6,0x0b,0xfe,0x92,0x42,0xfa,0xce,0xd7,0x50,0xfc,0x86,0x0f,0xe5, \
-0x89,0x95,0x12,0xbe,0x7a,0xed,0x60,0x6c,0xc9,0xdc,0x97,0xee,0xa1,0x29,0x1f,0x9b, \
-0xbc,0xf2,0xc3,0x3d,0x7c,0xde,0x7f,0x83,0x39,0xcc,0x47,0xa9,0x98,0xdf,0x2e,0x10, \
-0x30,0x4b,0xed,0x31,0x7c,0xf7,0x70,0xe4,0x20,0x89,0x73,0x4a,0x8a,0x34,0x7b,0x3b, \
-0x62,0x66,0x03,0x2f,0x32,0x8f,0x5a,0x16,0x5a,0x08,0x4a,0x54,0x72,0xaa,0x69,0x00, \
-0xa2,0x82,0x72,0xc0,0x98,0x52,0x81,0x2c,0x61,0x89,0x22,0xd6,0x9d,0x5c,0x21,0x30, \
-0x81,0xb9,0x8c,0x19,0xbb,0x58,0x9a,0xc0,0xa1,0x41,0x04,0x6d,0x57,0xc8,0x69,0x8f, \
-0x5b,0x08,0x63,0x6b,0x7c,0x20,0xaa,0x95,0xea,0x61,0x9e,0xad,0xd8,0x5e,0x48,0x08, \
-0xb9,0x22,0x6a,0xc1,0xcf,0xb8,0x68,0x03,0x34,0x20,0xd4,0x85,0x80,0xac,0x47,0x41, \
-0xde,0xb0,0x10,0x0c,0x32,0x33,0x01,0xb1,0x04,0x05,0xb9,0xf1,0xe3,0x8e,0x3f,0x66, \
-0xef,0x4b,0xe0,0xbc,0x9f,0xf5,0xfc,0x1d,0x22,0xc8,0xbd,0x7f,0xc2,0xca,0xfc,0x9d, \
-0x3a,0xd5,0x74,0x9f,0xea,0x8d,0xcd,0xc2,0xcc,0x47,0xff,0xc5,0xdc,0x91,0x4e,0x14, \
-0x24,0x26,0xc3,0x7e,0x17,0x00, \
-
diff --git a/include/.gitignore b/include/.gitignore
index 9d9b6c4..50cf6de 100644
--- a/include/.gitignore
+++ b/include/.gitignore
@@ -1,10 +1 @@
 /config
-
-/applets.h
-/applet_tables.h
-/autoconf.h
-/bbconfigopts_bz2.h
-/bbconfigopts.h
-/NUM_APPLETS.h
-/usage_compressed.h
-/usage.h
diff --git a/include/android.h b/include/android.h
index 4463635..651f7df 100644
--- a/include/android.h
+++ b/include/android.h
@@ -15,6 +15,11 @@
 # include <math.h>
 #endif
 
+/* lutimes doesnt exists in libc */
+#if ENABLE_FEATURE_TOUCH_NODEREF
+# define lutimes utimes
+#endif
+
 #define killpg_busybox(P, S) kill(-(P), S)
 
 #define setmntent fopen
@@ -25,12 +30,10 @@
 
 /* defined in bionic/mktemp.c */
 char *mkdtemp(char *);
-
-/* defined in bionic/stubs.c */
-char *ttyname(int);
+char *bb_mktemp(char *);
 
 /* SYSCALLS */
-int    stime(time_t *);
+int    stime(const time_t *);
 int    swapon(const char *, int);
 int    swapoff(const char *);
 int    getsid(pid_t);
@@ -40,12 +43,31 @@
 #define SYS_ioprio_get __NR_ioprio_get
 #endif
 
+/* XXX These need to be obtained from kernel headers. See b/9336527 */
+#define SWAP_FLAG_PREFER        0x8000
+#define SWAP_FLAG_PRIO_MASK     0x7fff
+#define SWAP_FLAG_PRIO_SHIFT    0
+#define SWAP_FLAG_DISCARD       0x10000
+
 /* local definition in libbb/xfuncs_printf.c */
 int fdprintf(int fd, const char *format, ...);
 
-/* local definitions in libbb/android.c */
-int ttyname_r(int, char *, size_t);
+/* local definitions in android/libc/pty.c */
+#include <fcntl.h>
+#ifndef SPLICE_F_GIFT
+/* if this constant is not defined,
+   ttyname is not in bionic */
+char* bb_ttyname(int);
+int   bb_ttyname_r(int, char *, size_t);
+#define ttyname(n)       bb_ttyname(n)
+#define ttyname_r(n,s,z) bb_ttyname_r(n,s,z)
+#else
+/* should be available in android M ? */
+extern char* ttyname(int);
+extern int   ttyname_r(int, char *, size_t);
+#endif
 
+/* local definitions in android/android.c */
 char *getusershell(void);
 void setusershell(void);
 void endusershell(void);
@@ -54,14 +76,21 @@
 struct __sFILE;
 int addmntent(struct __sFILE *, const struct mntent *);
 struct mntent *getmntent_r(struct __sFILE *fp, struct mntent *mnt, char *buf, int buflen);
-const char *hasmntopt(const struct mntent *, const char *);
+char *hasmntopt(const struct mntent *, const char *);
 
 #define MNTOPT_NOAUTO "noauto"
 
 /* bionic's vfork is rather broken; for now a terrible bandaid: */
 #define vfork fork
 
+#if !defined(BIONIC_L) && !defined(BLOATCHECK)
 #define _SOCKLEN_T_DECLARED
 typedef int socklen_t;
+#endif
+
+/* wait3 was removed in android L */
+#ifdef BIONIC_L
+#define wait3(status, options, rusage) wait4(-1, status, options, rusage)
+#endif
 
 #endif
diff --git a/include/applets.src.h b/include/applets.src.h
index 29ab167..7dbd4c7 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
@@ -52,6 +52,12 @@
 # define APPLET_NOEXEC(name,main,l,s,name2)  LINK l name
 # define APPLET_NOFORK(name,main,l,s,name2)  LINK l name
 
+#elif defined(MAKE_SUID)
+# define APPLET(name,l,s)                    SUID s l name
+# define APPLET_ODDNAME(name,main,l,s,name2) SUID s l name
+# define APPLET_NOEXEC(name,main,l,s,name2)  SUID s l name
+# define APPLET_NOFORK(name,main,l,s,name2)  SUID s l name
+
 #else
   static struct bb_applet applets[] = { /*    name, main, location, need_suid */
 # define APPLET(name,l,s)                    { #name, #name, l, s },
@@ -73,16 +79,13 @@
 IF_ADDGROUP(APPLET(addgroup, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_ADDUSER(APPLET(adduser, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_ADJTIMEX(APPLET(adjtimex, BB_DIR_SBIN, BB_SUID_DROP))
-IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
 IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_AWK(APPLET_NOEXEC(awk, awk, BB_DIR_USR_BIN, BB_SUID_DROP, awk))
 IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename))
 IF_BBCONFIG(APPLET(bbconfig, BB_DIR_BIN, BB_SUID_DROP))
 IF_BEEP(APPLET(beep, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP))
 IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
 IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP))
@@ -99,10 +102,8 @@
 IF_CHVT(APPLET(chvt, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_CKSUM(APPLET_NOEXEC(cksum, cksum, BB_DIR_USR_BIN, BB_SUID_DROP, cksum))
 IF_CLEAR(APPLET(clear, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_CMP(APPLET(cmp, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_COMM(APPLET(comm, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_CP(APPLET_NOEXEC(cp, cp, BB_DIR_BIN, BB_SUID_DROP, cp))
-IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP))
 IF_CROND(APPLET(crond, BB_DIR_USR_SBIN, BB_SUID_DROP))
 /* Needs to be run by root or be suid root - needs to change /var/spool/cron* files: */
 IF_CRONTAB(APPLET(crontab, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
@@ -117,21 +118,17 @@
 IF_DEVMEM(APPLET(devmem, BB_DIR_SBIN, BB_SUID_DROP))
 IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP))
 IF_DHCPRELAY(APPLET(dhcprelay, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_DIFF(APPLET(diff, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname))
 IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP))
 IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_HOSTNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname))
 IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix))
-IF_DPKG(APPLET(dpkg, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_DPKG_DEB(APPLET_ODDNAME(dpkg-deb, dpkg_deb, BB_DIR_USR_BIN, BB_SUID_DROP, dpkg_deb))
 IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP))
 IF_DUMPLEASES(APPLET(dumpleases, BB_DIR_USR_BIN, BB_SUID_DROP))
 //IF_E2FSCK(APPLET(e2fsck, BB_DIR_SBIN, BB_SUID_DROP))
 //IF_E2LABEL(APPLET_ODDNAME(e2label, tune2fs, BB_DIR_SBIN, BB_SUID_DROP, e2label))
 IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo))
-IF_ED(APPLET(ed, BB_DIR_BIN, BB_SUID_DROP))
 IF_EJECT(APPLET(eject, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env))
 IF_ENVDIR(APPLET_ODDNAME(envdir, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, envdir))
@@ -170,8 +167,6 @@
 IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP))
 IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_GETTY(APPLET(getty, BB_DIR_SBIN, BB_SUID_DROP))
-IF_GUNZIP(APPLET(gunzip, BB_DIR_BIN, BB_SUID_DROP))
-IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP))
 IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd))
 IF_HDPARM(APPLET(hdparm, BB_DIR_SBIN, BB_SUID_DROP))
 IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head))
@@ -230,13 +225,9 @@
 IF_LSATTR(APPLET(lsattr, BB_DIR_BIN, BB_SUID_DROP))
 IF_LSPCI(APPLET(lspci, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_LSUSB(APPLET(lsusb, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UNLZMA(APPLET_ODDNAME(lzcat, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzcat))
-IF_LZMA(APPLET_ODDNAME(lzma, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzma))
-IF_LZOP(APPLET(lzop, BB_DIR_BIN, BB_SUID_DROP))
-IF_LZOP(APPLET_ODDNAME(lzopcat, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, lzopcat))
 IF_MAKEDEVS(APPLET(makedevs, BB_DIR_SBIN, BB_SUID_DROP))
 IF_MAKEMIME(APPLET(makemime, BB_DIR_BIN, BB_SUID_DROP))
-IF_MAN(APPLET(man, BB_DIR_SBIN, BB_SUID_DROP))
+IF_MAN(APPLET(man, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_MATCHPATHCON(APPLET(matchpathcon, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_MD5SUM(APPLET_NOEXEC(md5sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, md5sum))
 IF_MICROCOM(APPLET(microcom, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -297,12 +288,9 @@
 IF_RESET(APPLET(reset, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_RESIZE(APPLET(resize, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_RESTORECON(APPLET_ODDNAME(restorecon, setfiles, BB_DIR_SBIN, BB_SUID_DROP, restorecon))
-IF_RFKILL(APPLET(rfkill, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm))
 IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir))
 IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
-IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
-IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, BB_DIR_BIN, BB_SUID_DROP, run_parts))
 IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -312,7 +300,6 @@
 IF_RX(APPLET(rx, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_SCRIPT(APPLET(script, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_SCRIPTREPLAY(APPLET(scriptreplay, BB_DIR_BIN, BB_SUID_DROP))
-IF_SED(APPLET(sed, BB_DIR_BIN, BB_SUID_DROP))
 IF_SELINUXENABLED(APPLET(selinuxenabled, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_SENDMAIL(APPLET(sendmail, BB_DIR_USR_SBIN, BB_SUID_DROP))
 IF_SEQ(APPLET_NOFORK(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq))
@@ -356,7 +343,6 @@
 IF_SYSLOGD(APPLET(syslogd, BB_DIR_SBIN, BB_SUID_DROP))
 IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac))
 IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TAR(APPLET(tar, BB_DIR_BIN, BB_SUID_DROP))
 IF_TASKSET(APPLET(taskset, BB_DIR_USR_BIN, BB_SUID_DROP))
 /* IF_TC(APPLET(tc, BB_DIR_SBIN, BB_SUID_DROP)) */
 IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd))
@@ -385,14 +371,9 @@
 IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd))
 IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP))
 IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP))
-IF_UNCOMPRESS(APPLET(uncompress, BB_DIR_BIN, BB_SUID_DROP))
 IF_UNEXPAND(APPLET_ODDNAME(unexpand, expand, BB_DIR_USR_BIN, BB_SUID_DROP, unexpand))
 IF_UNIQ(APPLET(uniq, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix2dos))
-IF_UNXZ(APPLET(unxz, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_UNLZMA(APPLET(unlzma, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_LZOP(APPLET_ODDNAME(unlzop, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, unlzop))
-IF_UNZIP(APPLET(unzip, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_UPTIME(APPLET(uptime, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep))
 IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -401,21 +382,17 @@
 /* Needs to be run by root or be suid root - needs to change uid and gid: */
 IF_VLOCK(APPLET(vlock, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
 IF_VOLNAME(APPLET(volname, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs to be run by root or be suid root - needs to write to /dev/TTY: */
-IF_WALL(APPLET(wall, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
 IF_WATCH(APPLET(watch, BB_DIR_BIN, BB_SUID_DROP))
 IF_WATCHDOG(APPLET(watchdog, BB_DIR_SBIN, BB_SUID_DROP))
 IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_WHICH(APPLET(which, BB_DIR_USR_BIN, BB_SUID_DROP))
 IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami))
-IF_UNXZ(APPLET_ODDNAME(xzcat, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xzcat))
-IF_XZ(APPLET_ODDNAME(xz, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xz))
 IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
-IF_GUNZIP(APPLET_ODDNAME(zcat, gunzip, BB_DIR_BIN, BB_SUID_DROP, zcat))
 IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
 
-#if !defined(PROTOTYPES) && !defined(NAME_MAIN_CNAME) && !defined(MAKE_USAGE)
+#if !defined(PROTOTYPES) && !defined(NAME_MAIN_CNAME) && !defined(MAKE_USAGE) \
+	&& !defined(MAKE_LINKS) && !defined(MAKE_SUID)
 };
 #endif
 
diff --git a/include/bb_archive.h b/include/bb_archive.h
index a7a2a11..fc976f2 100644
--- a/include/bb_archive.h
+++ b/include/bb_archive.h
@@ -122,6 +122,12 @@
 #define ARCHIVE_NUMERIC_OWNER       (1 << 7)
 #define ARCHIVE_O_TRUNC             (1 << 8)
 #define ARCHIVE_REMEMBER_NAMES      (1 << 9)
+#if ENABLE_RPM
+#define ARCHIVE_REPLACE_VIA_RENAME  (1 << 10)
+#endif
+#if ENABLE_FEATURE_TAR_SELINUX
+#define ARCHIVE_STORE_SELINUX		(1 << 15)
+#endif
 
 
 /* POSIX tar Header Block, from POSIX 1003.1-1990  */
@@ -143,7 +149,7 @@
 	/* Normally it's defined as magic[6] followed by
 	 * version[2], but we put them together to save code.
 	 */
-	char magic[8];            /* 257-264 */
+	char magic[8];            /* 257-264 (magic 6 + version 2) */
 	char uname[32];           /* 265-296 */
 	char gname[32];           /* 297-328 */
 	char devmajor[8];         /* 329-336 */
diff --git a/include/bb_e2fs_defs.h b/include/bb_e2fs_defs.h
index b400f8c..3f5e3c4 100644
--- a/include/bb_e2fs_defs.h
+++ b/include/bb_e2fs_defs.h
@@ -442,7 +442,7 @@
 	uint32_t	s_reserved[162];	/* Padding to the end of the block */
 };
 struct BUG_ext2_super_block {
-        char bug[sizeof(struct ext2_super_block) == 1024 ? 1 : -1];
+	char bug[sizeof(struct ext2_super_block) == 1024 ? 1 : -1];
 };
 
 /*
diff --git a/include/libbb.h b/include/libbb.h
index 18d3e29..2884506 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -45,12 +45,12 @@
 #include <stdarg.h>
 #include <stddef.h>
 #include <string.h>
-/* There are two incompatible basename's, let not use them! */
+/* There are two incompatible basename's, let's not use them! */
 /* See the dirname/basename man page for details */
 #include <libgen.h> /* dirname,basename */
 #undef basename
 #define basename dont_use_basename
-#include <sys/poll.h>
+#include <poll.h>
 #include <sys/ioctl.h>
 #include <sys/mman.h>
 #include <sys/socket.h>
@@ -74,11 +74,6 @@
 #  include <shadow.h>
 # endif
 #endif
-#if defined(ANDROID) || defined(__ANDROID__)
-//see android.h
-//# define endpwent() ((void)0)
-//# define endgrent() ((void)0)
-#endif
 #ifdef HAVE_MNTENT_H
 # include <mntent.h>
 #endif
@@ -94,9 +89,14 @@
 #if ENABLE_SELINUX
 # include <selinux/selinux.h>
 # include <selinux/context.h>
+#ifdef __BIONIC__
+# include "android/selinux/android_selinux.h"
+# include <sepol/policydb/flask.h>
+#else
 # include <selinux/flask.h>
 # include <selinux/av_permissions.h>
 #endif
+#endif
 #if ENABLE_FEATURE_UTMP
 # include <utmp.h>
 #endif
@@ -271,7 +271,7 @@
 	char BUG_off_t_size_is_misdetected[sizeof(off_t) == sizeof(uoff_t) ? 1 : -1];
 };
 
-#ifdef __BIONIC__
+#if defined(__BIONIC__) && !defined(__LP64__)
 /* bionic uses stat64 which has long long file sizes, whereas off_t is only long bits */
 typedef long long filesize_t;
 #define FILESIZE_FMT "ll"
@@ -410,6 +410,7 @@
 const char *bb_basename(const char *name) FAST_FUNC;
 /* NB: can violate const-ness (similarly to strchr) */
 char *last_char_is(const char *s, int c) FAST_FUNC;
+const char* endofname(const char *name) FAST_FUNC;
 
 void ndelay_on(int fd) FAST_FUNC;
 void ndelay_off(int fd) FAST_FUNC;
@@ -484,6 +485,8 @@
 
 void xsetgid(gid_t gid) FAST_FUNC;
 void xsetuid(uid_t uid) FAST_FUNC;
+void xsetegid(gid_t egid) FAST_FUNC;
+void xseteuid(uid_t euid) FAST_FUNC;
 void xchdir(const char *path) FAST_FUNC;
 void xchroot(const char *path) FAST_FUNC;
 void xsetenv(const char *key, const char *value) FAST_FUNC;
@@ -492,11 +495,12 @@
 void xunlink(const char *pathname) FAST_FUNC;
 void xstat(const char *pathname, struct stat *buf) FAST_FUNC;
 void xfstat(int fd, struct stat *buf, const char *errmsg) FAST_FUNC;
+int open3_or_warn(const char *pathname, int flags, int mode) FAST_FUNC;
+int open_or_warn(const char *pathname, int flags) FAST_FUNC;
+int xopen3(const char *pathname, int flags, int mode) FAST_FUNC;
 int xopen(const char *pathname, int flags) FAST_FUNC;
 int xopen_nonblocking(const char *pathname) FAST_FUNC;
-int xopen3(const char *pathname, int flags, int mode) FAST_FUNC;
-int open_or_warn(const char *pathname, int flags) FAST_FUNC;
-int open3_or_warn(const char *pathname, int flags, int mode) FAST_FUNC;
+int xopen_as_uid_gid(const char *pathname, int flags, uid_t u, gid_t g) FAST_FUNC;
 int open_or_warn_stdin(const char *pathname) FAST_FUNC;
 int xopen_stdin(const char *pathname) FAST_FUNC;
 void xrename(const char *oldpath, const char *newpath) FAST_FUNC;
@@ -506,9 +510,9 @@
 off_t fdlength(int fd) FAST_FUNC;
 
 uoff_t FAST_FUNC get_volume_size_in_bytes(int fd,
-                const char *override,
-                unsigned override_units,
-                int extend);
+		const char *override,
+		unsigned override_units,
+		int extend);
 
 void xpipe(int filedes[2]) FAST_FUNC;
 /* In this form code with pipes is much more readable */
@@ -546,7 +550,8 @@
 
 void parse_datestr(const char *date_str, struct tm *ptm) FAST_FUNC;
 time_t validate_tm_time(const char *date_str, struct tm *ptm) FAST_FUNC;
-
+char *strftime_HHMMSS(char *buf, unsigned len, time_t *tp) FAST_FUNC;
+char *strftime_YYYYMMDDHHMMSS(char *buf, unsigned len, time_t *tp) FAST_FUNC;
 
 int xsocket(int domain, int type, int protocol) FAST_FUNC;
 void xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) FAST_FUNC;
@@ -700,6 +705,13 @@
  * else it is printed as-is (except for ch = 0x9b) */
 enum { PRINTABLE_META = 0x100 };
 void fputc_printable(int ch, FILE *file) FAST_FUNC;
+/* Return a string that is the printable representation of character ch.
+ * Buffer must hold at least four characters. */
+enum {
+	VISIBLE_ENDLINE   = 1 << 0,
+	VISIBLE_SHOW_TABS = 1 << 1,
+};
+void visible(unsigned ch, char *buf, int flags) FAST_FUNC;
 
 /* dmalloc will redefine these to it's own implementation. It is safe
  * to have the prototypes here unconditionally.  */
@@ -748,12 +760,12 @@
 
 #if SEAMLESS_COMPRESSION
 /* Autodetects gzip/bzip2 formats. fd may be in the middle of the file! */
-extern int setup_unzip_on_fd(int fd, int fail_if_not_detected) FAST_FUNC;
+extern int setup_unzip_on_fd(int fd, int fail_if_not_compressed) FAST_FUNC;
 /* Autodetects .gz etc */
-extern int open_zipped(const char *fname) FAST_FUNC;
+extern int open_zipped(const char *fname, int fail_if_not_compressed) FAST_FUNC;
 #else
 # define setup_unzip_on_fd(...) (0)
-# define open_zipped(fname)     open((fname), O_RDONLY);
+# define open_zipped(fname, fail_if_not_compressed)  open((fname), O_RDONLY);
 #endif
 extern void *xmalloc_open_zipped_read_close(const char *fname, size_t *maxsz_p) FAST_FUNC RETURNS_MALLOC;
 
@@ -830,8 +842,8 @@
 char *utoa_to_buf(unsigned n, char *buf, unsigned buflen) FAST_FUNC;
 char *itoa_to_buf(int n, char *buf, unsigned buflen) FAST_FUNC;
 /* Intelligent formatters of bignums */
-void smart_ulltoa4(unsigned long long ul, char buf[4], const char *scale) FAST_FUNC;
-void smart_ulltoa5(unsigned long long ul, char buf[5], const char *scale) FAST_FUNC;
+char *smart_ulltoa4(unsigned long long ul, char buf[4], const char *scale) FAST_FUNC;
+char *smart_ulltoa5(unsigned long long ul, char buf[5], const char *scale) FAST_FUNC;
 /* If block_size == 0, display size without fractional part,
  * else display (size * block_size) with one decimal digit.
  * If display_unit == 0, show value no bigger than 1024 with suffix (K,M,G...),
@@ -854,6 +866,9 @@
 	char suffix[4];
 	unsigned mult;
 };
+extern const struct suffix_mult bkm_suffixes[];
+#define km_suffixes (bkm_suffixes + 1)
+
 #include "xatonum.h"
 /* Specialized: */
 
@@ -888,6 +903,8 @@
 void xget_uidgid(struct bb_uidgid_t*, const char*) FAST_FUNC;
 /* chown-like handling of "user[:[group]" */
 void parse_chown_usergroup_or_die(struct bb_uidgid_t *u, char *user_group) FAST_FUNC;
+struct passwd* safegetpwnam(const char *name) FAST_FUNC;
+struct passwd* safegetpwuid(uid_t uid) FAST_FUNC;
 struct passwd* xgetpwnam(const char *name) FAST_FUNC;
 struct group* xgetgrnam(const char *name) FAST_FUNC;
 struct passwd* xgetpwuid(uid_t uid) FAST_FUNC;
@@ -1131,9 +1148,6 @@
 
 
 /* Networking */
-int create_icmp_socket(void) FAST_FUNC;
-int create_icmp6_socket(void) FAST_FUNC;
-/* interface.c */
 /* This structure defines protocol families and their handlers. */
 struct aftype {
 	const char *name;
@@ -1162,6 +1176,7 @@
 };
 extern smallint interface_opt_a;
 int display_interfaces(char *ifname) FAST_FUNC;
+int in_ether(const char *bufp, struct sockaddr *sap) FAST_FUNC;
 #if ENABLE_FEATURE_HWIB
 int in_ib(const char *bufp, struct sockaddr *sap) FAST_FUNC;
 #else
@@ -1311,8 +1326,10 @@
 #define SETUP_ENV_CLEARENV  (1 << 1)
 #define SETUP_ENV_TO_TMP    (1 << 2)
 #define SETUP_ENV_NO_CHDIR  (1 << 4)
-extern void setup_environment(const char *shell, int flags, const struct passwd *pw) FAST_FUNC;
-extern int correct_password(const struct passwd *pw) FAST_FUNC;
+void setup_environment(const char *shell, int flags, const struct passwd *pw) FAST_FUNC;
+void nuke_str(char *str) FAST_FUNC;
+int ask_and_check_password_extended(const struct passwd *pw, int timeout, const char *prompt) FAST_FUNC;
+int ask_and_check_password(const struct passwd *pw) FAST_FUNC;
 /* Returns a malloced string */
 #if !ENABLE_USE_BB_CRYPT
 #define pw_encrypt(clear, salt, cleanup) pw_encrypt(clear, salt)
@@ -1458,7 +1475,7 @@
 /* It's NOT just ENABLEd or disabled. It's a number: */
 # if defined CONFIG_FEATURE_EDITING_HISTORY && CONFIG_FEATURE_EDITING_HISTORY > 0
 #  define MAX_HISTORY (CONFIG_FEATURE_EDITING_HISTORY + 0)
-unsigned size_from_HISTFILESIZE(const char *hp);
+unsigned size_from_HISTFILESIZE(const char *hp) FAST_FUNC;
 # else
 #  define MAX_HISTORY 0
 # endif
@@ -1500,6 +1517,7 @@
  * >0 length of input string, including terminating '\n'
  */
 int read_line_input(line_input_t *st, const char *prompt, char *command, int maxsize, int timeout) FAST_FUNC;
+void show_history(const line_input_t *st) FAST_FUNC;
 # if ENABLE_FEATURE_EDITING_SAVE_ON_EXIT
 void save_history(line_input_t *st);
 # endif
@@ -1761,7 +1779,11 @@
  * but I want to save a few bytes here */
 extern const char bb_PATH_root_path[] ALIGN1; /* "PATH=/sbin:/usr/sbin:/bin:/usr/bin" */
 #define bb_default_root_path (bb_PATH_root_path + sizeof("PATH"))
+#ifdef __BIONIC__
+#define bb_default_path      (bb_PATH_root_path + sizeof("PATH=/sbin"))
+#else
 #define bb_default_path      (bb_PATH_root_path + sizeof("PATH=/sbin:/usr/sbin"))
+#endif
 
 extern const int const_int_0;
 extern const int const_int_1;
@@ -1783,6 +1805,11 @@
 	(*(struct globals**)&ptr_to_globals) = (void*)(x); \
 	barrier(); \
 } while (0)
+#define FREE_PTR_TO_GLOBALS() do { \
+	if (ENABLE_FEATURE_CLEAN_UP) { \
+		free(ptr_to_globals); \
+	} \
+} while (0)
 
 /* You can change LIBBB_DEFAULT_LOGIN_SHELL, but don't use it,
  * use bb_default_login_shell and following defines.
@@ -1832,21 +1859,37 @@
 # define VC_4 "/dev/ttyv3"
 # define VC_5 "/dev/ttyv4"
 # define VC_FORMAT "/dev/ttyv%d"
-# define LOOP_FORMAT "/dev/loop%d"
-# define LOOP_NAMESIZE (sizeof("/dev/loop") + sizeof(int)*3 + 1)
-# define LOOP_NAME "/dev/loop"
-# define FB_0 "/dev/fb0"
-
-#else //__GNU__
-/*Linux 2.6, normal names */
+#elif defined(__GNU__)
 # define CURRENT_VC CURRENT_TTY
-# define VC_1 "/dev/tty0"
-# define VC_2 "/dev/tty1"
-# define VC_3 "/dev/tty2"
-# define VC_4 "/dev/tty3"
-# define VC_5 "/dev/tty4"
+# define VC_1 "/dev/tty1"
+# define VC_2 "/dev/tty2"
+# define VC_3 "/dev/tty3"
+# define VC_4 "/dev/tty4"
+# define VC_5 "/dev/tty5"
 # define VC_FORMAT "/dev/tty%d"
-# define LOOP_FORMAT "/dev/loop%d"
+#elif ENABLE_FEATURE_DEVFS
+/*Linux, obsolete devfs names */
+# define CURRENT_VC "/dev/vc/0"
+# define VC_1 "/dev/vc/1"
+# define VC_2 "/dev/vc/2"
+# define VC_3 "/dev/vc/3"
+# define VC_4 "/dev/vc/4"
+# define VC_5 "/dev/vc/5"
+# define VC_FORMAT "/dev/vc/%d"
+# define LOOP_FORMAT "/dev/loop/%u"
+# define LOOP_NAMESIZE (sizeof("/dev/loop/") + sizeof(int)*3 + 1)
+# define LOOP_NAME "/dev/loop/"
+# define FB_0 "/dev/fb/0"
+#else
+/*Linux, normal names */
+# define CURRENT_VC "/dev/tty0"
+# define VC_1 "/dev/tty1"
+# define VC_2 "/dev/tty2"
+# define VC_3 "/dev/tty3"
+# define VC_4 "/dev/tty4"
+# define VC_5 "/dev/tty5"
+# define VC_FORMAT "/dev/tty%d"
+# define LOOP_FORMAT "/dev/loop%u"
 # define LOOP_NAMESIZE (sizeof("/dev/loop") + sizeof(int)*3 + 1)
 # define LOOP_NAME "/dev/loop"
 # define FB_0 "/dev/fb0"
diff --git a/include/liblzo_interface.h b/include/liblzo_interface.h
index 9a84c0b..b7f1b63 100644
--- a/include/liblzo_interface.h
+++ b/include/liblzo_interface.h
@@ -30,7 +30,7 @@
 /*
 static void die_at(int line)
 {
-        bb_error_msg_and_die("internal error at %d", line);
+	bb_error_msg_and_die("internal error at %d", line);
 }
 #define assert(v) if (!(v)) die_at(__LINE__)
 */
diff --git a/include/platform.h b/include/platform.h
index 8a5cde4..b5aa683 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -214,6 +214,7 @@
 typedef long     bb__aliased_long     FIX_ALIASING;
 typedef uint16_t bb__aliased_uint16_t FIX_ALIASING;
 typedef uint32_t bb__aliased_uint32_t FIX_ALIASING;
+typedef uint64_t bb__aliased_uint64_t FIX_ALIASING;
 
 /* NB: unaligned parameter should be a pointer, aligned one -
  * a lvalue. This makes it more likely to not swap them by mistake
@@ -269,6 +270,12 @@
 
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
 
+#ifdef __UCLIBC__
+# define UCLIBC_VERSION KERNEL_VERSION(__UCLIBC_MAJOR__, __UCLIBC_MINOR__, __UCLIBC_SUBLEVEL__)
+#else
+# define UCLIBC_VERSION 0
+#endif
+
 
 /* ---- Miscellaneous --------------------------------------- */
 
@@ -311,8 +318,9 @@
  * for a mmu-less system.
  */
 #if ENABLE_NOMMU || \
-    (defined __UCLIBC__ && __UCLIBC_MAJOR__ >= 0 && __UCLIBC_MINOR__ >= 9 && \
-    __UCLIBC_SUBLEVEL__ > 28 && !defined __ARCH_USE_MMU__)
+    (defined __UCLIBC__ && \
+     UCLIBC_VERSION > KERNEL_VERSION(0, 9, 28) && \
+     !defined __ARCH_USE_MMU__)
 # define BB_MMU 0
 # define USE_FOR_NOMMU(...) __VA_ARGS__
 # define USE_FOR_MMU(...)
@@ -345,7 +353,7 @@
 #endif
 
 #if defined(ANDROID) || defined(__ANDROID__)
-# define BB_ADDITIONAL_PATH ":/system/sbin:/system/bin:/system/xbin"
+# define BB_ADDITIONAL_PATH ":/vendor/bin:/system/sbin:/system/bin:/system/xbin"
 # define SYS_ioprio_set __NR_ioprio_set
 # define SYS_ioprio_get __NR_ioprio_get
 #endif
@@ -379,13 +387,8 @@
 #define HAVE_NET_ETHERNET_H 1
 #define HAVE_SYS_STATFS_H 1
 
-#if defined(__UCLIBC_MAJOR__)
-# if __UCLIBC_MAJOR__ == 0 \
-  && (   __UCLIBC_MINOR__ < 9 \
-     || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 32) \
-     )
-#  undef HAVE_STRVERSCMP
-# endif
+#if defined(__UCLIBC__) && UCLIBC_VERSION < KERNEL_VERSION(0, 9, 32)
+# undef HAVE_STRVERSCMP
 #endif
 
 #if defined(__dietlibc__)
@@ -437,7 +440,7 @@
 # undef HAVE_UNLOCKED_LINE_OPS
 #endif
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__APPLE__)
 # undef HAVE_STRCHRNUL
 #endif
 
@@ -451,12 +454,13 @@
 
 #if defined(ANDROID) || defined(__ANDROID__)
 # undef HAVE_DPRINTF
-# undef HAVE_FDPRINTF
-# undef HAVE_STPCPY
 # undef HAVE_STRCHRNUL
 # undef HAVE_STRVERSCMP
 # undef HAVE_UNLOCKED_LINE_OPS
 # undef HAVE_NET_ETHERNET_H
+# ifndef BIONIC_L
+#  undef HAVE_STPCPY
+# endif
 #endif
 
 /*
diff --git a/include/volume_id.h b/include/volume_id.h
index a83da89..1f95d3c 100644
--- a/include/volume_id.h
+++ b/include/volume_id.h
@@ -18,6 +18,7 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+char *get_fstype_from_devname(const char *device);
 char *get_devname_from_label(const char *spec);
 char *get_devname_from_uuid(const char *spec);
 void display_uuid_cache(int scan_devices);
diff --git a/include/xregex.h b/include/xregex.h
index 5e5e6a2..62f438c 100644
--- a/include/xregex.h
+++ b/include/xregex.h
@@ -11,7 +11,19 @@
 #ifndef BB_REGEX_H
 #define BB_REGEX_H 1
 
+#if defined(ANDROID) && !defined(RECOVERY_VERSION)
+
+#include <bb_regex.h>
+#define regcomp bb_regcomp
+#define re_compile_pattern bb_re_compile_pattern
+#define re_search bb_re_search
+#define regexec bb_regexec
+#define regfree bb_regfree
+#define regerror bb_regerror
+
+#else
 #include <regex.h>
+#endif
 
 PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
 
diff --git a/init/bootchartd.c b/init/bootchartd.c
index 9fd6233..c7388c9 100644
--- a/init/bootchartd.c
+++ b/init/bootchartd.c
@@ -60,6 +60,12 @@
 # endif
 #endif
 
+#if !ENABLE_TAR && !ENABLE_WERROR
+# warning Note: bootchartd requires tar command, but you did not select it.
+#elif !ENABLE_FEATURE_SEAMLESS_GZ && !ENABLE_WERROR
+# warning Note: bootchartd requires tar -z support, but you did not select it.
+#endif
+
 #define BC_VERSION_STR "0.8"
 
 /* For debugging, set to 0:
diff --git a/init/init.c b/init/init.c
index b84bdcc..d29328c 100644
--- a/init/init.c
+++ b/init/init.c
@@ -9,11 +9,6 @@
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
-//applet:IF_INIT(APPLET(init, BB_DIR_SBIN, BB_SUID_DROP))
-//applet:IF_FEATURE_INITRD(APPLET_ODDNAME(linuxrc, init, BB_DIR_ROOT, BB_SUID_DROP, linuxrc))
-
-//kbuild:lib-$(CONFIG_INIT) += init.o
-
 //config:config INIT
 //config:	bool "init"
 //config:	default y
@@ -108,6 +103,11 @@
 //config:	  Note that on Linux, init attempts to detect serial terminal and
 //config:	  sets TERM to "vt102" if one is found.
 
+//applet:IF_INIT(APPLET(init, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_FEATURE_INITRD(APPLET_ODDNAME(linuxrc, init, BB_DIR_ROOT, BB_SUID_DROP, linuxrc))
+
+//kbuild:lib-$(CONFIG_INIT) += init.o
+
 #define DEBUG_SEGV_HANDLER 0
 
 #include "libbb.h"
@@ -140,12 +140,11 @@
  * not fully functional init by switching it on! */
 #define DEBUG_INIT 0
 
-#define COMMAND_SIZE      256
 #define CONSOLE_NAME_SIZE 32
 
 /* Default sysinit script. */
 #ifndef INIT_SCRIPT
-#define INIT_SCRIPT  "/etc/init.d/rcS"
+# define INIT_SCRIPT  "/etc/init.d/rcS"
 #endif
 
 /* Each type of actions can appear many times. They will be
@@ -195,7 +194,7 @@
 	pid_t pid;
 	uint8_t action_type;
 	char terminal[CONSOLE_NAME_SIZE];
-	char command[COMMAND_SIZE];
+	char command[1];
 };
 
 static struct init_action *init_action_list = NULL;
@@ -223,8 +222,8 @@
 	msg[0] = '\r';
 	va_start(arguments, fmt);
 	l = 1 + vsnprintf(msg + 1, sizeof(msg) - 2, fmt, arguments);
-	if (l > sizeof(msg) - 1)
-		l = sizeof(msg) - 1;
+	if (l > sizeof(msg) - 2)
+		l = sizeof(msg) - 2;
 	va_end(arguments);
 
 #if ENABLE_FEATURE_INIT_SYSLOG
@@ -398,7 +397,7 @@
 }
 
 /* Wrapper around exec:
- * Takes string (max COMMAND_SIZE chars).
+ * Takes string.
  * If chars like '>' detected, execs '[-]/bin/sh -c "exec ......."'.
  * Otherwise splits words on whitespace, deals with leading dash,
  * and uses plain exec().
@@ -406,10 +405,15 @@
  */
 static void init_exec(const char *command)
 {
-	char *cmd[COMMAND_SIZE / 2];
-	char buf[COMMAND_SIZE + 6];  /* COMMAND_SIZE+strlen("exec ")+1 */
-	int dash = (command[0] == '-' /* maybe? && command[1] == '/' */);
+	/* +8 allows to write VLA sizes below more efficiently: */
+	unsigned command_size = strlen(command) + 8;
+	/* strlen(command) + strlen("exec ")+1: */
+	char buf[command_size];
+	/* strlen(command) / 2 + 4: */
+	char *cmd[command_size / 2];
+	int dash;
 
+	dash = (command[0] == '-' /* maybe? && command[1] == '/' */);
 	command += dash;
 
 	/* See if any special /bin/sh requiring characters are present */
@@ -626,21 +630,21 @@
 		nextp = &a->next;
 	}
 
-	a = xzalloc(sizeof(*a));
+	a = xzalloc(sizeof(*a) + strlen(command));
 
 	/* Append to the end of the list */
  append:
 	*nextp = a;
 	a->action_type = action_type;
-	safe_strncpy(a->command, command, sizeof(a->command));
+	strcpy(a->command, command);
 	safe_strncpy(a->terminal, cons, sizeof(a->terminal));
-	dbg_message(L_LOG | L_CONSOLE, "command='%s' action=%d tty='%s'\n",
+	dbg_message(L_LOG | L_CONSOLE, "command='%s' action=%x tty='%s'\n",
 		a->command, a->action_type, a->terminal);
 }
 
 /* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
  * then parse_inittab() simply adds in some default
- * actions(i.e., runs INIT_SCRIPT and then starts a pair
+ * actions (i.e., runs INIT_SCRIPT and then starts a pair
  * of "askfirst" shells).  If CONFIG_FEATURE_USE_INITTAB
  * _is_ defined, but /etc/inittab is missing, this
  * results in the same set of default behaviors.
@@ -655,23 +659,22 @@
 #endif
 	{
 		/* No inittab file - set up some default behavior */
-		/* Reboot on Ctrl-Alt-Del */
-		new_init_action(CTRLALTDEL, "reboot", "");
-		/* Umount all filesystems on halt/reboot */
-		new_init_action(SHUTDOWN, "umount -a -r", "");
-		/* Swapoff on halt/reboot */
-		if (ENABLE_SWAPONOFF)
-			new_init_action(SHUTDOWN, "swapoff -a", "");
-		/* Prepare to restart init when a QUIT is received */
-		new_init_action(RESTART, "init", "");
+		/* Sysinit */
+		new_init_action(SYSINIT, INIT_SCRIPT, "");
 		/* Askfirst shell on tty1-4 */
 		new_init_action(ASKFIRST, bb_default_login_shell, "");
 //TODO: VC_1 instead of ""? "" is console -> ctty problems -> angry users
 		new_init_action(ASKFIRST, bb_default_login_shell, VC_2);
 		new_init_action(ASKFIRST, bb_default_login_shell, VC_3);
 		new_init_action(ASKFIRST, bb_default_login_shell, VC_4);
-		/* sysinit */
-		new_init_action(SYSINIT, INIT_SCRIPT, "");
+		/* Reboot on Ctrl-Alt-Del */
+		new_init_action(CTRLALTDEL, "reboot", "");
+		/* Umount all filesystems on halt/reboot */
+		new_init_action(SHUTDOWN, "umount -a -r", "");
+		/* Swapoff on halt/reboot */
+		new_init_action(SHUTDOWN, "swapoff -a", "");
+		/* Restart init when a QUIT is received */
+		new_init_action(RESTART, "init", "");
 		return;
 	}
 
@@ -786,7 +789,7 @@
  * and only one will be remembered and acted upon.
  */
 
-/* The SIGUSR[12]/SIGTERM handler */
+/* The SIGPWR/SIGUSR[12]/SIGTERM handler */
 static void halt_reboot_pwoff(int sig) NORETURN;
 static void halt_reboot_pwoff(int sig)
 {
@@ -931,10 +934,17 @@
 
 	/* Remove stale entries and SYSINIT entries.
 	 * We never rerun SYSINIT entries anyway,
-	 * removing them too saves a few bytes */
+	 * removing them too saves a few bytes
+	 */
 	nextp = &init_action_list;
 	while ((a = *nextp) != NULL) {
-		if ((a->action_type & ~SYSINIT) == 0) {
+		/*
+		 * Why pid == 0 check?
+		 * Process can be removed from inittab and added *later*.
+		 * If we delete its entry but process still runs,
+		 * duplicate is spawned when the entry is re-added.
+		 */
+		if ((a->action_type & ~SYSINIT) == 0 && a->pid == 0) {
 			*nextp = a->next;
 			free(a);
 		} else {
@@ -1058,10 +1068,13 @@
 	message(L_CONSOLE | L_LOG, "init started: %s", bb_banner);
 #endif
 
+#if 0
+/* It's 2013, does anyone really still depend on this? */
+/* If you do, consider adding swapon to sysinot actions then! */
 /* struct sysinfo is linux-specific */
-#ifdef __linux__
+# ifdef __linux__
 	/* Make sure there is enough memory to do something useful. */
-	if (ENABLE_SWAPONOFF) {
+	/*if (ENABLE_SWAPONOFF) - WRONG: we may have non-bbox swapon*/ {
 		struct sysinfo info;
 
 		if (sysinfo(&info) == 0
@@ -1075,6 +1088,7 @@
 			run_actions(SYSINIT);   /* wait and removing */
 		}
 	}
+# endif
 #endif
 
 	/* Check if we are supposed to be in single user mode */
@@ -1089,8 +1103,8 @@
 
 		/* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
 		 * then parse_inittab() simply adds in some default
-		 * actions(i.e., INIT_SCRIPT and a pair
-		 * of "askfirst" shells */
+		 * actions (i.e., INIT_SCRIPT and a pair
+		 * of "askfirst" shells) */
 		parse_inittab();
 	}
 
@@ -1114,13 +1128,14 @@
 	strncpy(argv[0], "init", strlen(argv[0]));
 	/* Wipe argv[1]-argv[N] so they don't clutter the ps listing */
 	while (*++argv)
-		memset(*argv, 0, strlen(*argv));
+		nuke_str(*argv);
 
 	/* Set up signal handlers */
 	if (!DEBUG_INIT) {
 		struct sigaction sa;
 
 		bb_signals(0
+			+ (1 << SIGPWR)  /* halt */
 			+ (1 << SIGUSR1) /* halt */
 			+ (1 << SIGTERM) /* reboot */
 			+ (1 << SIGUSR2) /* poweroff */
@@ -1216,7 +1231,14 @@
 //usage:#define init_trivial_usage
 //usage:       ""
 //usage:#define init_full_usage "\n\n"
-//usage:       "Init is the parent of all processes"
+//usage:       "Init is the first process started during boot. It never exits."
+//usage:	IF_FEATURE_USE_INITTAB(
+//usage:   "\n""It (re)spawns children according to /etc/inittab."
+//usage:	)
+//usage:	IF_NOT_FEATURE_USE_INITTAB(
+//usage:   "\n""This version of init doesn't use /etc/inittab,"
+//usage:   "\n""has fixed set of processed to run."
+//usage:	)
 //usage:
 //usage:#define init_notes_usage
 //usage:	"This version of init is designed to be run only by the kernel.\n"
@@ -1234,9 +1256,6 @@
 //usage:	"	::shutdown:/sbin/swapoff -a\n"
 //usage:	"	::shutdown:/bin/umount -a -r\n"
 //usage:	"	::restart:/sbin/init\n"
-//usage:	"\n"
-//usage:	"if it detects that /dev/console is _not_ a serial console, it will also run:\n"
-//usage:	"\n"
 //usage:	"	tty2::askfirst:/bin/sh\n"
 //usage:	"	tty3::askfirst:/bin/sh\n"
 //usage:	"	tty4::askfirst:/bin/sh\n"
@@ -1252,11 +1271,7 @@
 //usage:	"		the specified process to run on. The contents of this field are\n"
 //usage:	"		appended to \"/dev/\" and used as-is. There is no need for this field to\n"
 //usage:	"		be unique, although if it isn't you may have strange results. If this\n"
-//usage:	"		field is left blank, the controlling tty is set to the console. Also\n"
-//usage:	"		note that if BusyBox detects that a serial console is in use, then only\n"
-//usage:	"		entries whose controlling tty is either the serial console or /dev/null\n"
-//usage:	"		will be run. BusyBox init does nothing with utmp. We don't need no\n"
-//usage:	"		stinkin' utmp.\n"
+//usage:	"		field is left blank, then the init's stdin/out will be used.\n"
 //usage:	"\n"
 //usage:	"	<runlevels>:\n"
 //usage:	"\n"
diff --git a/libbb/Kbuild.src b/libbb/Kbuild.src
index 61eec26..a6468f1 100644
--- a/libbb/Kbuild.src
+++ b/libbb/Kbuild.src
@@ -27,8 +27,6 @@
 lib-y += copy_file.o
 lib-y += copyfd.o
 lib-y += crc32.o
-lib-y += create_icmp6_socket.o
-lib-y += create_icmp_socket.o
 lib-y += default_error_retval.o
 lib-y += device_open.o
 lib-y += dump.o
@@ -146,7 +144,7 @@
 lib-$(CONFIG_PASSWD) += pw_encrypt.o update_passwd.o obscure.o
 lib-$(CONFIG_CHPASSWD) += pw_encrypt.o update_passwd.o
 lib-$(CONFIG_CRYPTPW) += pw_encrypt.o
-lib-$(CONFIG_SULOGIN) += pw_encrypt.o
+lib-$(CONFIG_SULOGIN) += pw_encrypt.o correct_password.o
 lib-$(CONFIG_VLOCK) += pw_encrypt.o correct_password.o
 lib-$(CONFIG_SU) += pw_encrypt.o correct_password.o
 lib-$(CONFIG_LOGIN) += pw_encrypt.o correct_password.o
diff --git a/libbb/appletlib.c b/libbb/appletlib.c
index fc1847a..5e4f4a9 100644
--- a/libbb/appletlib.c
+++ b/libbb/appletlib.c
@@ -29,7 +29,7 @@
 #include "busybox.h"
 
 #if !(defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) \
-        || defined(__APPLE__) \
+    || defined(__APPLE__) \
     )
 # include <malloc.h> /* for mallopt */
 #endif
@@ -750,7 +750,7 @@
 //TODO: just compare applet_no with APPLET_NO_test
 		if (!ENABLE_TEST || strcmp(applet_name, "test") != 0) {
 			/* If you want "foo --help" to return 0: */
-			/*xfunc_error_retval = 0;*/
+			xfunc_error_retval = 0;
 			bb_show_usage();
 		}
 	}
diff --git a/libbb/bb_askpass.c b/libbb/bb_askpass.c
index fe2b506..77c1bcd 100644
--- a/libbb/bb_askpass.c
+++ b/libbb/bb_askpass.c
@@ -65,7 +65,9 @@
 	i = 0;
 	while (1) {
 		int r = read(fd, &ret[i], 1);
-		if (r < 0) {
+		if ((i == 0 && r == 0) /* EOF (^D) with no password */
+		 || r < 0
+		) {
 			/* read is interrupted by timeout or ^C */
 			ret = NULL;
 			break;
diff --git a/libbb/bb_pwd.c b/libbb/bb_pwd.c
index 4829b72..d5e651c 100644
--- a/libbb/bb_pwd.c
+++ b/libbb/bb_pwd.c
@@ -15,9 +15,31 @@
  * pointers to static data (getpwuid)
  */
 
-struct passwd* FAST_FUNC xgetpwnam(const char *name)
+struct passwd* FAST_FUNC safegetpwnam(const char *name)
 {
 	struct passwd *pw = getpwnam(name);
+#ifdef __BIONIC__
+	if (pw && !pw->pw_passwd) {
+		pw->pw_passwd = "";
+	}
+#endif
+	return pw;
+}
+
+struct passwd* FAST_FUNC safegetpwuid(uid_t uid)
+{
+	struct passwd *pw = getpwuid(uid);
+#ifdef __BIONIC__
+	if (pw && !pw->pw_passwd) {
+		pw->pw_passwd = "";
+	}
+#endif
+	return pw;
+}
+
+struct passwd* FAST_FUNC xgetpwnam(const char *name)
+{
+	struct passwd *pw = safegetpwnam(name);
 	if (!pw)
 		bb_error_msg_and_die("unknown user %s", name);
 	return pw;
@@ -31,10 +53,9 @@
 	return gr;
 }
 
-
 struct passwd* FAST_FUNC xgetpwuid(uid_t uid)
 {
-	struct passwd *pw = getpwuid(uid);
+	struct passwd *pw = safegetpwuid(uid);
 	if (!pw)
 		bb_error_msg_and_die("unknown uid %u", (unsigned)uid);
 	return pw;
@@ -110,3 +131,51 @@
 		return xname2id(s);
 	return r;
 }
+
+/* Experimental "mallocing" API.
+ * The goal is nice: "we want to support a case when "guests" group is very large"
+ * but the code is butt-ugly.
+ */
+#if 0
+static char *find_latest(char last, char *cp)
+{
+	if (!cp)
+		return last;
+	cp += strlen(cp) + 1;
+	if (last < cp)
+		last = cp;
+	return last;
+}
+
+struct group* FAST_FUNC xmalloc_getgrnam(const char *name)
+{
+	struct {
+		struct group gr;
+		// May still be not enough!
+		char buf[64*1024 - sizeof(struct group) - 16];
+	} *s;
+	struct group *grp;
+	int r;
+	char *last;
+	char **gr_mem;
+
+	s = xmalloc(sizeof(*s));
+	r = getgrnam_r(name, &s->gr, s->buf, sizeof(s->buf), &grp);
+	if (!grp) {
+		free(s);
+		return grp;
+	}
+	last = find_latest(s->buf, grp->gr_name);
+	last = find_latest(last, grp->gr_passwd);
+	gr_mem = grp->gr_mem;
+	while (*gr_mem)
+		last = find_latest(last, *gr_mem++);
+	gr_mem++; /* points past NULL */
+	if (last < (char*)gr_mem)
+		last = (char*)gr_mem;
+//FIXME: what if we get not only truncated, but also moved here?
+// grp->gr_name pointer and friends are invalid now!!!
+	s = xrealloc(s, last - (char*)s);
+	return grp;
+}
+#endif
diff --git a/libbb/correct_password.c b/libbb/correct_password.c
index 7cabd33..acadf39 100644
--- a/libbb/correct_password.c
+++ b/libbb/correct_password.c
@@ -31,12 +31,15 @@
 #include "libbb.h"
 
 /* Ask the user for a password.
+ * Return 1 without asking if PW has an empty password.
+ * Return -1 on EOF, error while reading input, or timeout.
  * Return 1 if the user gives the correct password for entry PW,
- * 0 if not.  Return 1 without asking if PW has an empty password.
+ * 0 if not.
  *
- * NULL pw means "just fake it for login with bad username" */
-
-int FAST_FUNC correct_password(const struct passwd *pw)
+ * NULL pw means "just fake it for login with bad username"
+ */
+int FAST_FUNC ask_and_check_password_extended(const struct passwd *pw,
+		int timeout, const char *prompt)
 {
 	char *unencrypted, *encrypted;
 	const char *correct;
@@ -65,13 +68,19 @@
 		return 1;
 
  fake_it:
-	unencrypted = bb_ask_stdin("Password: ");
+	unencrypted = bb_ask(STDIN_FILENO, timeout, prompt);
 	if (!unencrypted) {
-		return 0;
+		/* EOF (such as ^D) or error (such as ^C) or timeout */
+		return -1;
 	}
 	encrypted = pw_encrypt(unencrypted, correct, 1);
 	r = (strcmp(encrypted, correct) == 0);
 	free(encrypted);
-	memset(unencrypted, 0, strlen(unencrypted));
+	nuke_str(unencrypted);
 	return r;
 }
+
+int FAST_FUNC ask_and_check_password(const struct passwd *pw)
+{
+	return ask_and_check_password_extended(pw, 0, "Password: ");
+}
diff --git a/libbb/create_icmp6_socket.c b/libbb/create_icmp6_socket.c
deleted file mode 100644
index bdee7a0..0000000
--- a/libbb/create_icmp6_socket.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Utility routines.
- *
- * create raw socket for icmp (IPv6 version) protocol
- * and drop root privileges if running setuid
- *
- * Licensed under GPLv2, see file LICENSE in this source tree.
- */
-
-#include "libbb.h"
-
-#if ENABLE_FEATURE_IPV6
-int FAST_FUNC create_icmp6_socket(void)
-{
-	int sock;
-#if 0
-	struct protoent *proto;
-	proto = getprotobyname("ipv6-icmp");
-	/* if getprotobyname failed, just silently force
-	 * proto->p_proto to have the correct value for "ipv6-icmp" */
-	sock = socket(AF_INET6, SOCK_RAW,
-			(proto ? proto->p_proto : IPPROTO_ICMPV6));
-#else
-	sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
-#endif
-	if (sock < 0) {
-		if (errno == EPERM)
-			bb_error_msg_and_die("%s", bb_msg_perm_denied_are_you_root);
-		bb_perror_msg_and_die("%s", bb_msg_can_not_create_raw_socket);
-	}
-
-	/* drop root privs if running setuid */
-	xsetuid(getuid());
-
-	return sock;
-}
-#endif
diff --git a/libbb/create_icmp_socket.c b/libbb/create_icmp_socket.c
deleted file mode 100644
index 65eea3b..0000000
--- a/libbb/create_icmp_socket.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Utility routines.
- *
- * create raw socket for icmp protocol
- * and drop root privileges if running setuid
- *
- * Licensed under GPLv2, see file LICENSE in this source tree.
- */
-
-#include "libbb.h"
-
-int FAST_FUNC create_icmp_socket(void)
-{
-	int sock;
-#if 0
-	struct protoent *proto;
-	proto = getprotobyname("icmp");
-	/* if getprotobyname failed, just silently force
-	 * proto->p_proto to have the correct value for "icmp" */
-	sock = socket(AF_INET, SOCK_RAW,
-			(proto ? proto->p_proto : 1)); /* 1 == ICMP */
-#else
-	sock = socket(AF_INET, SOCK_RAW, 1); /* 1 == ICMP */
-#endif
-	if (sock < 0) {
-		if (errno == EPERM)
-			bb_error_msg_and_die("%s", bb_msg_perm_denied_are_you_root);
-		bb_perror_msg_and_die("%s", bb_msg_can_not_create_raw_socket);
-	}
-
-	/* drop root privs if running setuid */
-	xsetuid(getuid());
-
-	return sock;
-}
diff --git a/libbb/dump.c b/libbb/dump.c
index 91efe41..b465c5d 100644
--- a/libbb/dump.c
+++ b/libbb/dump.c
@@ -333,7 +333,7 @@
 			return;
 		}
 	}
-	if (fseek(stdin, dumper->pub.dump_skip, SEEK_SET)) {
+	if (fseeko(stdin, dumper->pub.dump_skip, SEEK_SET)) {
 		bb_simple_perror_msg_and_die(fname);
 	}
 	dumper->address += dumper->pub.dump_skip;
diff --git a/libbb/endofname.c b/libbb/endofname.c
new file mode 100644
index 0000000..305f093
--- /dev/null
+++ b/libbb/endofname.c
@@ -0,0 +1,26 @@
+/*
+ * Utility routines.
+ *
+ * Copyright (C) 2013 Denys Vlasenko
+ *
+ * Licensed under GPLv2, see file LICENSE in this source tree.
+ */
+
+//kbuild:lib-y += endofname.o
+
+#include "libbb.h"
+
+#define is_name(c)      ((c) == '_' || isalpha((unsigned char)(c)))
+#define is_in_name(c)   ((c) == '_' || isalnum((unsigned char)(c)))
+
+const char* FAST_FUNC
+endofname(const char *name)
+{
+	if (!is_name(*name))
+		return name;
+	while (*++name) {
+		if (!is_in_name(*name))
+			break;
+	}
+	return name;
+}
diff --git a/libbb/fclose_nonstdin.c b/libbb/fclose_nonstdin.c
index 5ce9d5b..1b14413 100644
--- a/libbb/fclose_nonstdin.c
+++ b/libbb/fclose_nonstdin.c
@@ -18,7 +18,8 @@
 {
 	/* Some more paranoid applets want ferror() check too */
 	int r = ferror(f); /* NB: does NOT set errno! */
-	if (r) errno = EIO; /* so we'll help it */
+	if (r)
+		errno = EIO; /* so we'll help it */
 	if (f != stdin)
 		return (r | fclose(f)); /* fclose does set errno on error */
 	return r;
diff --git a/libbb/hash_md5_sha.c b/libbb/hash_md5_sha.c
index b4d955e..3f743ac 100644
--- a/libbb/hash_md5_sha.c
+++ b/libbb/hash_md5_sha.c
@@ -84,7 +84,7 @@
 			if (swap_needed)
 				t = bb_bswap_64(t);
 			/* wbuffer is suitably aligned for this */
-			*(uint64_t *) (&ctx->wbuffer[64 - 8]) = t;
+			*(bb__aliased_uint64_t *) (&ctx->wbuffer[64 - 8]) = t;
 		}
 		ctx->process_block(ctx);
 		if (remaining >= 8)
@@ -883,10 +883,10 @@
 			uint64_t t;
 			t = ctx->total64[0] << 3;
 			t = SWAP_BE64(t);
-			*(uint64_t *) (&ctx->wbuffer[128 - 8]) = t;
+			*(bb__aliased_uint64_t *) (&ctx->wbuffer[128 - 8]) = t;
 			t = (ctx->total64[1] << 3) | (ctx->total64[0] >> 61);
 			t = SWAP_BE64(t);
-			*(uint64_t *) (&ctx->wbuffer[128 - 16]) = t;
+			*(bb__aliased_uint64_t *) (&ctx->wbuffer[128 - 16]) = t;
 		}
 		sha512_process_block128(ctx);
 		if (remaining >= 16)
diff --git a/libbb/human_readable.c b/libbb/human_readable.c
index 8b22b0c..0b2eb77 100644
--- a/libbb/human_readable.c
+++ b/libbb/human_readable.c
@@ -94,7 +94,7 @@
 
 /* Convert unsigned long long value into compact 5-char representation.
  * String is not terminated (buf[5] is untouched) */
-void FAST_FUNC smart_ulltoa5(unsigned long long ul, char buf[5], const char *scale)
+char* FAST_FUNC smart_ulltoa5(unsigned long long ul, char buf[5], const char *scale)
 {
 	const char *fmt;
 	char c;
@@ -145,12 +145,13 @@
 		buf[3] = "0123456789"[v];
 		buf[4] = scale[idx]; /* typically scale = " kmgt..." */
 	}
+	return buf + 5;
 }
 
 /* Convert unsigned long long value into compact 4-char
  * representation. Examples: "1234", "1.2k", " 27M", "123T"
  * String is not terminated (buf[4] is untouched) */
-void FAST_FUNC smart_ulltoa4(unsigned long long ul, char buf[4], const char *scale)
+char* FAST_FUNC smart_ulltoa4(unsigned long long ul, char buf[4], const char *scale)
 {
 	const char *fmt;
 	char c;
@@ -194,4 +195,5 @@
 		buf[2] = "0123456789"[v];
 		buf[3] = scale[idx]; /* typically scale = " kmgt..." */
 	}
+	return buf + 4;
 }
diff --git a/libbb/in_ether.c b/libbb/in_ether.c
new file mode 100644
index 0000000..1de383b
--- /dev/null
+++ b/libbb/in_ether.c
@@ -0,0 +1,59 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Utility routines.
+ */
+
+//kbuild:lib-$(CONFIG_ARP) += in_ether.o
+//kbuild:lib-$(CONFIG_IFCONFIG) += in_ether.o
+//kbuild:lib-$(CONFIG_IFENSLAVE) += in_ether.o
+
+#include "libbb.h"
+#include <net/if_arp.h>
+#include <net/ethernet.h>
+
+/* Convert Ethernet address from "XX[:]XX[:]XX[:]XX[:]XX[:]XX" to sockaddr.
+ * Return nonzero on error.
+ */
+int FAST_FUNC in_ether(const char *bufp, struct sockaddr *sap)
+{
+	char *ptr;
+	int i, j;
+	unsigned char val;
+	unsigned char c;
+
+	sap->sa_family = ARPHRD_ETHER;
+	ptr = (char *) sap->sa_data;
+
+	i = ETH_ALEN;
+	goto first;
+	do {
+		/* We might get a semicolon here */
+		if (*bufp == ':')
+			bufp++;
+ first:
+		j = val = 0;
+		do {
+			c = *bufp;
+			if (((unsigned char)(c - '0')) <= 9) {
+				c -= '0';
+			} else if ((unsigned char)((c|0x20) - 'a') <= 5) {
+				c = (unsigned char)((c|0x20) - 'a') + 10;
+			} else {
+				if (j && (c == ':' || c == '\0'))
+					/* One-digit byte: __:X:__ */
+					break;
+				return -1;
+			}
+			++bufp;
+			val <<= 4;
+			val += c;
+			j ^= 1;
+		} while (j);
+
+		*ptr++ = val;
+
+	} while (--i);
+
+	/* Error if we aren't at end of string */
+	return *bufp;
+}
diff --git a/libbb/inet_common.c b/libbb/inet_common.c
index 0f4fca1..b3e0802 100644
--- a/libbb/inet_common.c
+++ b/libbb/inet_common.c
@@ -175,8 +175,7 @@
 		return -1;
 	}
 	memcpy(sin6, ai->ai_addr, sizeof(*sin6));
-	if (ai)
-		freeaddrinfo(ai);
+	freeaddrinfo(ai);
 	return 0;
 }
 
diff --git a/libbb/inode_hash.c b/libbb/inode_hash.c
index 715535e..377ecbc 100644
--- a/libbb/inode_hash.c
+++ b/libbb/inode_hash.c
@@ -71,7 +71,7 @@
 /* Clear statbuf hash table */
 void FAST_FUNC reset_ino_dev_hashtable(void)
 {
-	int i;
+	unsigned i;
 	ino_dev_hashtable_bucket_t *bucket;
 
 	for (i = 0; ino_dev_hashtable && i < HASH_SIZE; i++) {
diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index 0da625f..f897e96 100644
--- a/libbb/lineedit.c
+++ b/libbb/lineedit.c
@@ -38,6 +38,14 @@
  * and the \] escape to signal the end of such a sequence. Example:
  *
  * PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
+ *
+ * Unicode in PS1 is not fully supported: prompt length calulation is wrong,
+ * resulting in line wrap problems with long (multi-line) input.
+ *
+ * Multi-line PS1 (e.g. PS1="\n[\w]\n$ ") has problems with history
+ * browsing: up/down arrows result in scrolling.
+ * It stems from simplistic "cmdedit_y = cmdedit_prmt_len / cmdedit_termw"
+ * calculation of how many lines the prompt takes.
  */
 #include "libbb.h"
 #include "unicode.h"
@@ -133,9 +141,6 @@
 	CHAR_T *command_ps;
 
 	const char *cmdedit_prompt;
-#if ENABLE_FEATURE_EDITING_FANCY_PROMPT
-	int num_ok_lines; /* = 1; */
-#endif
 
 #if ENABLE_USERNAME_OR_HOMEDIR
 	char *user_buf;
@@ -172,7 +177,6 @@
 #define command_len      (S.command_len     )
 #define command_ps       (S.command_ps      )
 #define cmdedit_prompt   (S.cmdedit_prompt  )
-#define num_ok_lines     (S.num_ok_lines    )
 #define user_buf         (S.user_buf        )
 #define home_pwd_buf     (S.home_pwd_buf    )
 #define matches          (S.matches         )
@@ -185,8 +189,8 @@
 	(*(struct lineedit_statics**)&lineedit_ptr_to_statics) = xzalloc(sizeof(S)); \
 	barrier(); \
 	cmdedit_termw = 80; \
-	IF_FEATURE_EDITING_FANCY_PROMPT(num_ok_lines = 1;) \
 	IF_USERNAME_OR_HOMEDIR(home_pwd_buf = (char*)null_str;) \
+	IF_FEATURE_EDITING_VI(delptr = delbuf;) \
 } while (0)
 
 static void deinit_S(void)
@@ -1251,14 +1255,16 @@
 {
 	line_input_t *n = xzalloc(sizeof(*n));
 	n->flags = flags;
+#if MAX_HISTORY > 0
 	n->max_history = MAX_HISTORY;
+#endif
 	return n;
 }
 
 
 #if MAX_HISTORY > 0
 
-unsigned size_from_HISTFILESIZE(const char *hp)
+unsigned FAST_FUNC size_from_HISTFILESIZE(const char *hp)
 {
 	int size = MAX_HISTORY;
 	if (hp) {
@@ -1313,6 +1319,17 @@
 	return 0;
 }
 
+/* Lists command history. Used by shell 'history' builtins */
+void FAST_FUNC show_history(const line_input_t *st)
+{
+	unsigned i;
+
+	if (!st)
+		return;
+	for (i = 0; i < st->cnt_history; i++)
+		printf("%4d %s\n", i, st->history[i]);
+}
+
 # if ENABLE_FEATURE_EDITING_SAVEHISTORY
 /* We try to ensure that concurrent additions to the history
  * do not overwrite each other.
@@ -1532,7 +1549,6 @@
 # if ENABLE_FEATURE_EDITING_SAVEHISTORY && !ENABLE_FEATURE_EDITING_SAVE_ON_EXIT
 	save_history(str);
 # endif
-	IF_FEATURE_EDITING_FANCY_PROMPT(num_ok_lines++;)
 }
 
 #else /* MAX_HISTORY == 0 */
@@ -1754,43 +1770,84 @@
 #define ask_terminal() ((void)0)
 #endif
 
+/* Called just once at read_line_input() init time */
 #if !ENABLE_FEATURE_EDITING_FANCY_PROMPT
 static void parse_and_put_prompt(const char *prmt_ptr)
 {
+	const char *p;
 	cmdedit_prompt = prmt_ptr;
-	cmdedit_prmt_len = strlen(prmt_ptr);
+	p = strrchr(prmt_ptr, '\n');
+	cmdedit_prmt_len = unicode_strwidth(p ? p+1 : prmt_ptr);
 	put_prompt();
 }
 #else
 static void parse_and_put_prompt(const char *prmt_ptr)
 {
-	int prmt_len = 0;
-	size_t cur_prmt_len = 0;
-	char flg_not_length = '[';
+	int prmt_size = 0;
 	char *prmt_mem_ptr = xzalloc(1);
-	char *cwd_buf = xrealloc_getcwd_or_warn(NULL);
+# if ENABLE_USERNAME_OR_HOMEDIR
+	char *cwd_buf = NULL;
+# endif
+	char flg_not_length = '[';
 	char cbuf[2];
-	char c;
-	char *pbuf;
 
-	cmdedit_prmt_len = 0;
-
-	if (!cwd_buf) {
-		cwd_buf = (char *)bb_msg_unknown;
-	}
+	/*cmdedit_prmt_len = 0; - already is */
 
 	cbuf[1] = '\0'; /* never changes */
 
 	while (*prmt_ptr) {
+		char timebuf[sizeof("HH:MM:SS")];
 		char *free_me = NULL;
+		char *pbuf;
+		char c;
 
 		pbuf = cbuf;
 		c = *prmt_ptr++;
 		if (c == '\\') {
-			const char *cp = prmt_ptr;
+			const char *cp;
 			int l;
-
-			c = bb_process_escape_sequence(&prmt_ptr);
+/*
+ * Supported via bb_process_escape_sequence:
+ * \a	ASCII bell character (07)
+ * \e	ASCII escape character (033)
+ * \n	newline
+ * \r	carriage return
+ * \\	backslash
+ * \nnn	char with octal code nnn
+ * Supported:
+ * \$	if the effective UID is 0, a #, otherwise a $
+ * \w	current working directory, with $HOME abbreviated with a tilde
+ *	Note: we do not support $PROMPT_DIRTRIM=n feature
+ * \W	basename of the current working directory, with $HOME abbreviated with a tilde
+ * \h	hostname up to the first '.'
+ * \H	hostname
+ * \u	username
+ * \[	begin a sequence of non-printing characters
+ * \]	end a sequence of non-printing characters
+ * \T	current time in 12-hour HH:MM:SS format
+ * \@	current time in 12-hour am/pm format
+ * \A	current time in 24-hour HH:MM format
+ * \t	current time in 24-hour HH:MM:SS format
+ *	(all of the above work as \A)
+ * Not supported:
+ * \!	history number of this command
+ * \#	command number of this command
+ * \j	number of jobs currently managed by the shell
+ * \l	basename of the shell's terminal device name
+ * \s	name of the shell, the basename of $0 (the portion following the final slash)
+ * \V	release of bash, version + patch level (e.g., 2.00.0)
+ * \d	date in "Weekday Month Date" format (e.g., "Tue May 26")
+ * \D{format}
+ *	format is passed to strftime(3).
+ *	An empty format results in a locale-specific time representation.
+ *	The braces are required.
+ * Mishandled by bb_process_escape_sequence:
+ * \v	version of bash (e.g., 2.00)
+ */
+			cp = prmt_ptr;
+			c = *cp;
+			if (c != 't') /* don't treat \t as tab */
+				c = bb_process_escape_sequence(&prmt_ptr);
 			if (prmt_ptr == cp) {
 				if (*cp == '\0')
 					break;
@@ -1802,39 +1859,54 @@
 					pbuf = user_buf ? user_buf : (char*)"";
 					break;
 # endif
+				case 'H':
 				case 'h':
 					pbuf = free_me = safe_gethostname();
-					*strchrnul(pbuf, '.') = '\0';
+					if (c == 'h')
+						strchrnul(pbuf, '.')[0] = '\0';
 					break;
 				case '$':
 					c = (geteuid() == 0 ? '#' : '$');
 					break;
+				case 'T': /* 12-hour HH:MM:SS format */
+				case '@': /* 12-hour am/pm format */
+				case 'A': /* 24-hour HH:MM format */
+				case 't': /* 24-hour HH:MM:SS format */
+					/* We show all of them as 24-hour HH:MM */
+					strftime_HHMMSS(timebuf, sizeof(timebuf), NULL)[-3] = '\0';
+					pbuf = timebuf;
+					break;
 # if ENABLE_USERNAME_OR_HOMEDIR
-				case 'w':
-					/* /home/user[/something] -> ~[/something] */
-					pbuf = cwd_buf;
-					l = strlen(home_pwd_buf);
-					if (l != 0
-					 && strncmp(home_pwd_buf, cwd_buf, l) == 0
-					 && (cwd_buf[l]=='/' || cwd_buf[l]=='\0')
-					 && strlen(cwd_buf + l) < PATH_MAX
-					) {
-						pbuf = free_me = xasprintf("~%s", cwd_buf + l);
+				case 'w': /* current dir */
+				case 'W': /* basename of cur dir */
+					if (!cwd_buf) {
+						cwd_buf = xrealloc_getcwd_or_warn(NULL);
+						if (!cwd_buf)
+							cwd_buf = (char *)bb_msg_unknown;
+						else {
+							/* /home/user[/something] -> ~[/something] */
+							l = strlen(home_pwd_buf);
+							if (l != 0
+							 && strncmp(home_pwd_buf, cwd_buf, l) == 0
+							 && (cwd_buf[l] == '/' || cwd_buf[l] == '\0')
+							) {
+								cwd_buf[0] = '~';
+								overlapping_strcpy(cwd_buf + 1, cwd_buf + l);
+							}
+						}
 					}
+					pbuf = cwd_buf;
+					if (c == 'w')
+						break;
+					cp = strrchr(pbuf, '/');
+					if (cp)
+						pbuf = (char*)cp + 1;
 					break;
 # endif
-				case 'W':
-					pbuf = cwd_buf;
-					cp = strrchr(pbuf, '/');
-					if (cp != NULL && cp != pbuf)
-						pbuf += (cp-pbuf) + 1;
-					break;
-				case '!':
-					pbuf = free_me = xasprintf("%d", num_ok_lines);
-					break;
-				case 'e': case 'E':     /* \e \E = \033 */
-					c = '\033';
-					break;
+// bb_process_escape_sequence does this now:
+//				case 'e': case 'E':     /* \e \E = \033 */
+//					c = '\033';
+//					break;
 				case 'x': case 'X': {
 					char buf2[4];
 					for (l = 0; l < 3;) {
@@ -1856,7 +1928,8 @@
 				}
 				case '[': case ']':
 					if (c == flg_not_length) {
-						flg_not_length = (flg_not_length == '[' ? ']' : '[');
+						/* Toggle '['/']' hex 5b/5d */
+						flg_not_length ^= 6;
 						continue;
 					}
 					break;
@@ -1864,16 +1937,29 @@
 			} /* if */
 		} /* if */
 		cbuf[0] = c;
-		cur_prmt_len = strlen(pbuf);
-		prmt_len += cur_prmt_len;
-		if (flg_not_length != ']')
-			cmdedit_prmt_len += cur_prmt_len;
-		prmt_mem_ptr = strcat(xrealloc(prmt_mem_ptr, prmt_len+1), pbuf);
+		{
+			int n = strlen(pbuf);
+			prmt_size += n;
+			if (c == '\n')
+				cmdedit_prmt_len = 0;
+			else if (flg_not_length != ']') {
+#if 0 /*ENABLE_UNICODE_SUPPORT*/
+/* Won't work, pbuf is one BYTE string here instead of an one Unicode char string. */
+/* FIXME */
+				cmdedit_prmt_len += unicode_strwidth(pbuf);
+#else
+				cmdedit_prmt_len += n;
+#endif
+			}
+		}
+		prmt_mem_ptr = strcat(xrealloc(prmt_mem_ptr, prmt_size+1), pbuf);
 		free(free_me);
 	} /* while */
 
+# if ENABLE_USERNAME_OR_HOMEDIR
 	if (cwd_buf != (char *)bb_msg_unknown)
 		free(cwd_buf);
+# endif
 	cmdedit_prompt = prmt_mem_ptr;
 	put_prompt();
 }
@@ -1935,7 +2021,15 @@
 			S.sent_ESC_br6n = 0;
 			if (cursor == 0) { /* otherwise it may be bogus */
 				int col = ((ic >> 32) & 0x7fff) - 1;
-				if (col > (int) cmdedit_prmt_len) {
+				/*
+				 * Is col > cmdedit_prmt_len?
+				 * If yes (terminal says cursor is farther to the right
+				 * of where we think it should be),
+				 * the prompt wasn't printed starting at col 1,
+				 * there was additional text before it.
+				 */
+				if ((int)(col - cmdedit_prmt_len) > 0) {
+					/* Fix our understanding of current x position */
 					cmdedit_x += (col - cmdedit_prmt_len);
 					while (cmdedit_x >= cmdedit_termw) {
 						cmdedit_x -= cmdedit_termw;
@@ -2026,6 +2120,7 @@
 	char read_key_buffer[KEYCODE_BUFFER_SIZE];
 	const char *matched_history_line;
 	const char *saved_prompt;
+	unsigned saved_prmt_len;
 	int32_t ic;
 
 	matched_history_line = NULL;
@@ -2034,6 +2129,7 @@
 
 	/* Save and replace the prompt */
 	saved_prompt = cmdedit_prompt;
+	saved_prmt_len = cmdedit_prmt_len;
 	goto set_prompt;
 
 	while (1) {
@@ -2109,7 +2205,7 @@
 					free((char*)cmdedit_prompt);
  set_prompt:
 					cmdedit_prompt = xasprintf("(reverse-i-search)'%s': ", match_buf);
-					cmdedit_prmt_len = strlen(cmdedit_prompt);
+					cmdedit_prmt_len = unicode_strwidth(cmdedit_prompt);
 					goto do_redraw;
 				}
 			}
@@ -2131,7 +2227,7 @@
 
 	free((char*)cmdedit_prompt);
 	cmdedit_prompt = saved_prompt;
-	cmdedit_prmt_len = strlen(cmdedit_prompt);
+	cmdedit_prmt_len = saved_prmt_len;
 	redraw(cmdedit_y, command_len - cursor);
 
 	return ic;
@@ -2699,8 +2795,9 @@
 	free(command_ps);
 #endif
 
-	if (command_len > 0)
+	if (command_len > 0) {
 		remember_in_history(command);
+	}
 
 	if (break_out > 0) {
 		command[command_len++] = '\n';
diff --git a/libbb/login.c b/libbb/login.c
index 8a82c6a..8f080b7 100644
--- a/libbb/login.c
+++ b/libbb/login.c
@@ -16,7 +16,6 @@
 #define LOGIN " login: "
 
 static const char fmtstr_d[] ALIGN1 = "%A, %d %B %Y";
-static const char fmtstr_t[] ALIGN1 = "%H:%M:%S";
 
 void FAST_FUNC print_login_issue(const char *issue_file, const char *tty)
 {
@@ -73,7 +72,7 @@
 				strftime(buf, sizeof(buf), fmtstr_d, localtime(&t));
 				break;
 			case 't':
-				strftime(buf, sizeof(buf), fmtstr_t, localtime(&t));
+				strftime_HHMMSS(buf, sizeof(buf), &t);
 				break;
 			case 'l':
 				outbuf = tty;
diff --git a/libbb/messages.c b/libbb/messages.c
index fad82c9..1ce84cf 100644
--- a/libbb/messages.c
+++ b/libbb/messages.c
@@ -40,7 +40,11 @@
 /* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin,
  * but I want to save a few bytes here. Check libbb.h before changing! */
 const char bb_PATH_root_path[] ALIGN1 =
+#ifdef __BIONIC__
+	"PATH=/sbin" BB_ADDITIONAL_PATH; /* platform.h */
+#else
 	"PATH=/sbin:/usr/sbin:/bin:/usr/bin" BB_ADDITIONAL_PATH;
+#endif
 
 
 const int const_int_1 = 1;
diff --git a/libbb/nuke_str.c b/libbb/nuke_str.c
new file mode 100644
index 0000000..56b808b
--- /dev/null
+++ b/libbb/nuke_str.c
@@ -0,0 +1,21 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Utility routines.
+ *
+ * Copyright (C) 2008 Denys Vlasenko
+ *
+ * Licensed under GPLv2, see file LICENSE in this source tree.
+ */
+
+//kbuild:lib-y += nuke_str.o
+
+#include "libbb.h"
+
+void FAST_FUNC nuke_str(char *str)
+{
+        if (str) {
+		while (*str)
+			*str++ = 0;
+		/* or: memset(str, 0, strlen(str)); - not as small as above */
+	}
+}
diff --git a/libbb/platform.c b/libbb/platform.c
index 2bf34f5..5fcd448 100644
--- a/libbb/platform.c
+++ b/libbb/platform.c
@@ -28,14 +28,16 @@
 	r = vsnprintf(buf, 128, format, p);
 	va_end(p);
 
+	/* Note: can't use xstrdup/xmalloc, they call vasprintf (us) on failure! */
+
 	if (r < 128) {
 		va_end(p2);
-		*string_ptr = xstrdup(buf);
-		return r;
+		*string_ptr = strdup(buf);
+		return (*string_ptr ? r : -1);
 	}
 
-	*string_ptr = xmalloc(r+1);
-	r = vsnprintf(*string_ptr, r+1, format, p2);
+	*string_ptr = malloc(r+1);
+	r = (*string_ptr ? vsnprintf(*string_ptr, r+1, format, p2) : -1);
 	va_end(p2);
 
 	return r;
@@ -84,6 +86,9 @@
 #endif
 
 #ifndef HAVE_MKDTEMP
+#ifdef __BIONIC__
+#define mktemp(s) bb_mktemp(s)
+#endif
 /* This is now actually part of POSIX.1, but was only added in 2008 */
 char* FAST_FUNC mkdtemp(char *template)
 {
diff --git a/libbb/printable.c b/libbb/printable.c
index f6ada49..9a42343 100644
--- a/libbb/printable.c
+++ b/libbb/printable.c
@@ -32,3 +32,27 @@
 	}
 	fputc(ch, file);
 }
+
+void FAST_FUNC visible(unsigned ch, char *buf, int flags)
+{
+	if (ch == '\t' && !(flags & VISIBLE_SHOW_TABS)) {
+		goto raw;
+	}
+	if (ch == '\n') {
+		if (flags & VISIBLE_ENDLINE)
+			*buf++ = '$';
+	} else {
+		if (ch >= 128) {
+			ch -= 128;
+			*buf++ = 'M';
+			*buf++ = '-';
+		}
+		if (ch < 32 || ch == 127) {
+			*buf++ = '^';
+			ch ^= 0x40;
+		}
+	}
+ raw:
+	*buf++ = ch;
+	*buf = '\0';
+}
diff --git a/libbb/pw_encrypt_des.c b/libbb/pw_encrypt_des.c
index c8e02dd..35326a5 100644
--- a/libbb/pw_encrypt_des.c
+++ b/libbb/pw_encrypt_des.c
@@ -598,7 +598,7 @@
 	 * l_in, r_in, l_out, and r_out are in pseudo-"big-endian" format.
 	 */
 	uint32_t l, r, *kl, *kr;
-	uint32_t f = f; /* silence gcc */
+	static uint32_t f; /* silence gcc */
 	uint32_t r48l, r48r;
 	int round;
 
diff --git a/libbb/pw_encrypt_md5.c b/libbb/pw_encrypt_md5.c
index 889e09c..1e52eca 100644
--- a/libbb/pw_encrypt_md5.c
+++ b/libbb/pw_encrypt_md5.c
@@ -86,7 +86,7 @@
 
 	/* Get the length of the salt including "$1$" */
 	sl = 3;
-	while (salt[sl] && salt[sl] != '$' && sl < (3 + 8))
+	while (sl < (3 + 8) && salt[sl] && salt[sl] != '$')
 		sl++;
 
 	/* Hash. the password first, since that is what is most unknown */
diff --git a/libbb/pw_encrypt_sha.c b/libbb/pw_encrypt_sha.c
index 8aeaaca..e48b341 100644
--- a/libbb/pw_encrypt_sha.c
+++ b/libbb/pw_encrypt_sha.c
@@ -21,7 +21,7 @@
 	void (*sha_begin)(void *ctx) FAST_FUNC;
 	void (*sha_hash)(void *ctx, const void *buffer, size_t len) FAST_FUNC;
 	void (*sha_end)(void *ctx, void *resbuf) FAST_FUNC;
-	int _32or64;
+	unsigned _32or64;
 
 	char *result, *resptr;
 
@@ -152,7 +152,7 @@
 	/* Start computation of S byte sequence.  */
 	/* For every character in the password add the entire password.  */
 	sha_begin(&alt_ctx);
-	for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
+	for (cnt = 0; cnt < 16U + alt_result[0]; ++cnt)
 		sha_hash(&alt_ctx, salt_data, salt_len);
 	sha_end(&alt_ctx, temp_result);
 
diff --git a/libbb/rtc.c b/libbb/rtc.c
index 97455e8..c31f848 100644
--- a/libbb/rtc.c
+++ b/libbb/rtc.c
@@ -61,7 +61,7 @@
 
 time_t FAST_FUNC rtc_tm2time(struct tm *ptm, int utc)
 {
-	char *oldtz = oldtz; /* for compiler */
+	char *oldtz = NULL;
 	time_t t;
 
 	if (utc) {
diff --git a/libbb/run_shell.c b/libbb/run_shell.c
index 4d92c3c..9494f27 100644
--- a/libbb/run_shell.c
+++ b/libbb/run_shell.c
@@ -34,16 +34,18 @@
 #endif
 
 #if ENABLE_SELINUX
-static security_context_t current_sid;
+static security_context_t current_sid = NULL;
 
 void FAST_FUNC renew_current_security_context(void)
 {
-	freecon(current_sid);  /* Release old context  */
+	if (current_sid)
+		freecon(current_sid);  /* Release old context  */
 	getcon(&current_sid);  /* update */
 }
 void FAST_FUNC set_current_security_context(security_context_t sid)
 {
-	freecon(current_sid);  /* Release old context  */
+	if (current_sid)
+		freecon(current_sid);  /* Release old context  */
 	current_sid = sid;
 }
 
@@ -82,6 +84,7 @@
 	args[argno] = NULL;
 
 #if ENABLE_SELINUX
+	renew_current_security_context();
 	if (current_sid)
 		setexeccon(current_sid);
 	if (ENABLE_FEATURE_CLEAN_UP)
diff --git a/libbb/time.c b/libbb/time.c
index 3778a2d..5a64bcb 100644
--- a/libbb/time.c
+++ b/libbb/time.c
@@ -23,14 +23,16 @@
 		if (sscanf(date_str, "%u:%u%c",
 					&ptm->tm_hour,
 					&ptm->tm_min,
-					&end) >= 2) {
+					&end) >= 2
+		) {
 			/* no adjustments needed */
 		} else
 		/* mm.dd-HH:MM */
 		if (sscanf(date_str, "%u.%u-%u:%u%c",
 					&ptm->tm_mon, &ptm->tm_mday,
 					&ptm->tm_hour, &ptm->tm_min,
-					&end) >= 4) {
+					&end) >= 4
+		) {
 			/* Adjust month from 1-12 to 0-11 */
 			ptm->tm_mon -= 1;
 		} else
@@ -38,15 +40,13 @@
 		if (sscanf(date_str, "%u.%u.%u-%u:%u%c", &ptm->tm_year,
 					&ptm->tm_mon, &ptm->tm_mday,
 					&ptm->tm_hour, &ptm->tm_min,
-					&end) >= 5) {
-			ptm->tm_year -= 1900; /* Adjust years */
-			ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */
-		} else
+					&end) >= 5
 		/* yyyy-mm-dd HH:MM */
-		if (sscanf(date_str, "%u-%u-%u %u:%u%c", &ptm->tm_year,
+		 || sscanf(date_str, "%u-%u-%u %u:%u%c", &ptm->tm_year,
 					&ptm->tm_mon, &ptm->tm_mday,
 					&ptm->tm_hour, &ptm->tm_min,
-					&end) >= 5) {
+					&end) >= 5
+		) {
 			ptm->tm_year -= 1900; /* Adjust years */
 			ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */
 		} else
@@ -58,7 +58,6 @@
 			return; /* don't fall through to end == ":" check */
 		} else
 #endif
-//TODO: coreutils 6.9 also accepts "yyyy-mm-dd HH" (no minutes)
 		{
 			bb_error_msg_and_die(bb_msg_invalid_date, date_str);
 		}
@@ -68,7 +67,29 @@
 				end = '\0';
 			/* else end != NUL and we error out */
 		}
-	} else if (date_str[0] == '@') {
+	} else
+	if (strchr(date_str, '-')
+	    /* Why strchr('-') check?
+	     * sscanf below will trash ptm->tm_year, this breaks
+	     * if parse_str is "10101010" (iow, "MMddhhmm" form)
+	     * because we destroy year. Do these sscanf
+	     * only if we saw a dash in parse_str.
+	     */
+		/* yyyy-mm-dd HH */
+	 && (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
+				&ptm->tm_mon, &ptm->tm_mday,
+				&ptm->tm_hour,
+				&end) >= 4
+		/* yyyy-mm-dd */
+	     || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
+				&ptm->tm_mon, &ptm->tm_mday,
+				&end) >= 3
+	    )
+	) {
+		ptm->tm_year -= 1900; /* Adjust years */
+		ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */
+	} else
+	if (date_str[0] == '@') {
 		time_t t = bb_strtol(date_str + 1, NULL, 10);
 		if (!errno) {
 			struct tm *lt = localtime(&t);
@@ -187,6 +208,27 @@
 	return t;
 }
 
+static char* strftime_fmt(char *buf, unsigned len, time_t *tp, const char *fmt)
+{
+	time_t t;
+	if (!tp) {
+		tp = &t;
+		time(tp);
+	}
+	/* Returns pointer to NUL */
+	return buf + strftime(buf, len, fmt, localtime(tp));
+}
+
+char* FAST_FUNC strftime_HHMMSS(char *buf, unsigned len, time_t *tp)
+{
+	return strftime_fmt(buf, len, tp, "%H:%M:%S");
+}
+
+char* FAST_FUNC strftime_YYYYMMDDHHMMSS(char *buf, unsigned len, time_t *tp)
+{
+	return strftime_fmt(buf, len, tp, "%Y-%m-%d %H:%M:%S");
+}
+
 #if ENABLE_MONOTONIC_SYSCALL
 
 #include <sys/syscall.h>
diff --git a/libbb/unicode.c b/libbb/unicode.c
index 96eb646..6bdb666 100644
--- a/libbb/unicode.c
+++ b/libbb/unicode.c
@@ -34,19 +34,37 @@
 	static const char unicode_0x394[] = { 0xce, 0x94, 0 };
 	size_t width;
 
+	/* We pass "" instead of "C" because some libc's have
+	 * non-ASCII default locale for setlocale("") call
+	 * (this allows users of such libc to have Unicoded
+	 * system without having to mess with env).
+	 *
+	 * We set LC_CTYPE because (a) we may be called with $LC_CTYPE
+	 * value in LANG, not with $LC_ALL, (b) internationalized
+	 * LC_NUMERIC and LC_TIME are more PITA than benefit
+	 * (for one, some utilities have hard time with comma
+	 * used as a fractional separator).
+	 */
 //TODO: avoid repeated calls by caching last string?
-	setlocale(LC_ALL, (LANG && LANG[0]) ? LANG : "C");
+	setlocale(LC_CTYPE, LANG ? LANG : "");
 
 	/* In unicode, this is a one character string */
-// can use unicode_strlen(string) too, but otherwise unicode_strlen() is unused
-	width = mbstowcs(NULL, unicode_0x394, INT_MAX);
+	width = unicode_strlen(unicode_0x394);
 	unicode_status = (width == 1 ? UNICODE_ON : UNICODE_OFF);
 }
 
 void FAST_FUNC init_unicode(VOID)
 {
-	if (unicode_status == UNICODE_UNKNOWN)
-		reinit_unicode(getenv("LANG"));
+	/* Some people set only $LC_CTYPE, not $LC_ALL, because they want
+	 * only Unicode to be activated on their system, not the whole
+	 * shebang of wrong decimal points, strange date formats and so on.
+	 */
+	if (unicode_status == UNICODE_UNKNOWN) {
+		char *s = getenv("LC_ALL");
+		if (!s) s = getenv("LC_CTYPE");
+		if (!s) s = getenv("LANG");
+		reinit_unicode(s);
+	}
 }
 
 #else
@@ -64,8 +82,12 @@
 
 void FAST_FUNC init_unicode(VOID)
 {
-	if (unicode_status == UNICODE_UNKNOWN)
-		reinit_unicode(getenv("LANG"));
+	if (unicode_status == UNICODE_UNKNOWN) {
+		char *s = getenv("LC_ALL");
+		if (!s) s = getenv("LC_CTYPE");
+		if (!s) s = getenv("LANG");
+		reinit_unicode(s);
+	}
 }
 # endif
 
@@ -971,7 +993,6 @@
 
 /* The rest is mostly same for libc and for "homegrown" support */
 
-#if 0 // UNUSED
 size_t FAST_FUNC unicode_strlen(const char *string)
 {
 	size_t width = mbstowcs(NULL, string, INT_MAX);
@@ -979,7 +1000,6 @@
 		return strlen(string);
 	return width;
 }
-#endif
 
 size_t FAST_FUNC unicode_strwidth(const char *string)
 {
diff --git a/libbb/update_passwd.c b/libbb/update_passwd.c
index a30af6f..b2d0464 100644
--- a/libbb/update_passwd.c
+++ b/libbb/update_passwd.c
@@ -30,7 +30,7 @@
 	if (!seuser)
 		bb_error_msg_and_die("invalid context '%s'", context);
 	if (strcmp(seuser, username) != 0) {
-		if (checkPasswdAccess(PASSWD__PASSWD) != 0)
+		if (selinux_check_passwd_access(PASSWD__PASSWD) != 0)
 			bb_error_msg_and_die("SELinux: access denied");
 	}
 	if (ENABLE_FEATURE_CLEAN_UP)
diff --git a/libbb/xatonum.c b/libbb/xatonum.c
index 62bbe53..6f4e023 100644
--- a/libbb/xatonum.c
+++ b/libbb/xatonum.c
@@ -68,3 +68,10 @@
 {
 	return xatou_range(numstr, 0, 0xffff);
 }
+
+const struct suffix_mult bkm_suffixes[] = {
+	{ "b", 512 },
+	{ "k", 1024 },
+	{ "m", 1024*1024 },
+	{ "", 0 }
+};
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c
index 29c963f..7fb34e1 100644
--- a/libbb/xfuncs_printf.c
+++ b/libbb/xfuncs_printf.c
@@ -140,15 +140,6 @@
 	return xopen3(pathname, flags, 0666);
 }
 
-/* Die if we can't open an existing file readonly with O_NONBLOCK
- * and return the fd.
- * Note that for ioctl O_RDONLY is sufficient.
- */
-int FAST_FUNC xopen_nonblocking(const char *pathname)
-{
-	return xopen(pathname, O_RDONLY | O_NONBLOCK);
-}
-
 // Warn if we can't open a file and return a fd.
 int FAST_FUNC open3_or_warn(const char *pathname, int flags, int mode)
 {
@@ -167,6 +158,32 @@
 	return open3_or_warn(pathname, flags, 0666);
 }
 
+/* Die if we can't open an existing file readonly with O_NONBLOCK
+ * and return the fd.
+ * Note that for ioctl O_RDONLY is sufficient.
+ */
+int FAST_FUNC xopen_nonblocking(const char *pathname)
+{
+	return xopen(pathname, O_RDONLY | O_NONBLOCK);
+}
+
+int FAST_FUNC xopen_as_uid_gid(const char *pathname, int flags, uid_t u, gid_t g)
+{
+	int fd;
+	uid_t old_euid = geteuid();
+	gid_t old_egid = getegid();
+
+	xsetegid(g);
+	xseteuid(u);
+
+	fd = xopen(pathname, flags);
+
+	xseteuid(old_euid);
+	xsetegid(old_egid);
+
+	return fd;
+}
+
 void FAST_FUNC xunlink(const char *pathname)
 {
 	if (unlink(pathname))
@@ -305,6 +322,11 @@
 
 void FAST_FUNC xsetenv(const char *key, const char *value)
 {
+#ifdef __BIONIC__
+	/* on login, can be NULL, and should not be for bionic */
+	if (environ == NULL)
+		bb_error_msg_and_die("environment is not initialized");
+#endif
 	if (setenv(key, value, 1))
 		bb_error_msg_and_die("%s", bb_msg_memory_exhausted);
 }
@@ -351,6 +373,16 @@
 	if (setuid(uid)) bb_perror_msg_and_die("setuid");
 }
 
+void FAST_FUNC xsetegid(gid_t egid)
+{
+	if (setegid(egid)) bb_perror_msg_and_die("setegid");
+}
+
+void FAST_FUNC xseteuid(uid_t euid)
+{
+	if (seteuid(euid)) bb_perror_msg_and_die("seteuid");
+}
+
 // Die if we can't chdir to a new path.
 void FAST_FUNC xchdir(const char *path)
 {
@@ -541,13 +573,11 @@
 
 char* FAST_FUNC xmalloc_ttyname(int fd)
 {
-	char *buf = xzalloc(128);
-	int r = ttyname_r(fd, buf, 127);
-	if (r) {
-		free(buf);
-		buf = NULL;
-	}
-	return buf;
+	char buf[128];
+	int r = ttyname_r(fd, buf, sizeof(buf) - 1);
+	if (r)
+		return NULL;
+	return xstrdup(buf);
 }
 
 void FAST_FUNC generate_uuid(uint8_t *buf)
diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c
index ec95af2..bb63da0 100644
--- a/libbb/xreadlink.c
+++ b/libbb/xreadlink.c
@@ -8,6 +8,12 @@
 
 #include "libbb.h"
 
+/* some systems (eg Hurd) does not have MAXSYMLINKS definition,
+ * set it to some reasonable value if it isn't defined */
+#ifndef MAXSYMLINKS
+# define MAXSYMLINKS 20
+#endif
+
 /*
  * NOTE: This function returns a malloced char* that you will have to free
  * yourself.
@@ -102,7 +108,8 @@
 
 char* FAST_FUNC xmalloc_realpath(const char *path)
 {
-#if defined(__GLIBC__) && !defined(__UCLIBC__)
+#if defined(__GLIBC__) || \
+    (defined(__UCLIBC__) && UCLIBC_VERSION >= KERNEL_VERSION(0, 9, 31))
 	/* glibc provides a non-standard extension */
 	/* new: POSIX.1-2008 specifies this behavior as well */
 	return realpath(path, NULL);
diff --git a/loginutils/adduser.c b/loginutils/adduser.c
index 5dd2de1..79b9501 100644
--- a/loginutils/adduser.c
+++ b/loginutils/adduser.c
@@ -162,9 +162,9 @@
 	pw.pw_shell = (char *)get_shell_name();
 	pw.pw_dir = NULL;
 
-	/* at most two non-option args */
+	/* at least one and at most two non-option args */
 	/* disable interactive passwd for system accounts */
-	opt_complementary = "?2:SD:u+";
+	opt_complementary = "-1:?2:SD:u+";
 	if (sizeof(pw.pw_uid) == sizeof(int)) {
 		opts = getopt32(argv, "h:g:s:G:DSHu:", &pw.pw_dir, &pw.pw_gecos, &pw.pw_shell, &usegroup, &pw.pw_uid);
 	} else {
diff --git a/loginutils/cryptpw.c b/loginutils/cryptpw.c
index a36f920..29f0fbe 100644
--- a/loginutils/cryptpw.c
+++ b/loginutils/cryptpw.c
@@ -92,6 +92,7 @@
 {
 	char salt[MAX_PW_SALT_LEN];
 	char *salt_ptr;
+	char *password;
 	const char *opt_m, *opt_S;
 	int fd;
 
@@ -123,15 +124,19 @@
 
 	xmove_fd(fd, STDIN_FILENO);
 
-	puts(pw_encrypt(
-		argv[0] ? argv[0] : (
-			/* Only mkpasswd, and only from tty, prompts.
-			 * Otherwise it is a plain read. */
-			(isatty(STDIN_FILENO) && applet_name[0] == 'm')
+	password = argv[0];
+	if (!password) {
+		/* Only mkpasswd, and only from tty, prompts.
+		 * Otherwise it is a plain read. */
+		password = (isatty(STDIN_FILENO) && applet_name[0] == 'm')
 			? bb_ask_stdin("Password: ")
 			: xmalloc_fgetline(stdin)
-		),
-		salt, 1));
+		;
+		/* may still be NULL on EOF/error */
+	}
+
+	if (password)
+		puts(pw_encrypt(password, salt, 1));
 
 	return EXIT_SUCCESS;
 }
diff --git a/loginutils/getty.c b/loginutils/getty.c
index e5d13be..6fd4ff2 100644
--- a/loginutils/getty.c
+++ b/loginutils/getty.c
@@ -54,7 +54,12 @@
  * and for line editing at the same time.
  */
 #undef  _PATH_LOGIN
+#ifdef __BIONIC__
+#define cfsetspeed(t,s) cfsetispeed(t,s)
+#define _PATH_LOGIN "/system/xbin/login"
+#else
 #define _PATH_LOGIN "/bin/login"
+#endif
 
 /* Displayed before the login prompt.
  * If ISSUE is not defined, getty will never display the contents of the
@@ -94,7 +99,7 @@
 //usage:#define getty_trivial_usage
 //usage:       "[OPTIONS] BAUD_RATE[,BAUD_RATE]... TTY [TERMTYPE]"
 //usage:#define getty_full_usage "\n\n"
-//usage:       "Open TTY, prompt for login name, then invoke /bin/login\n"
+//usage:       "Open TTY, prompt for login name, then invoke /system/xbin/login\n"
 //usage:     "\n	-h		Enable hardware RTS/CTS flow control"
 //usage:     "\n	-L		Set CLOCAL (ignore Carrier Detect state)"
 //usage:     "\n	-m		Get baud rate from modem's CONNECT status message"
@@ -102,7 +107,7 @@
 //usage:     "\n	-w		Wait for CR or LF before sending /etc/issue"
 //usage:     "\n	-i		Don't display /etc/issue"
 //usage:     "\n	-f ISSUE_FILE	Display ISSUE_FILE instead of /etc/issue"
-//usage:     "\n	-l LOGIN	Invoke LOGIN instead of /bin/login"
+//usage:     "\n	-l LOGIN	Invoke LOGIN instead of /system/xbin/login"
 //usage:     "\n	-t SEC		Terminate after SEC if no login name is read"
 //usage:     "\n	-I INITSTR	Send INITSTR before anything else"
 //usage:     "\n	-H HOST		Log HOST into the utmp file as the hostname"
@@ -499,7 +504,7 @@
 			default:
 				if ((unsigned char)c < ' ') {
 					/* ignore garbage characters */
-				} else if ((int)(bp - G.line_buf) < sizeof(G.line_buf) - 1) {
+				} else if ((int)(bp - G.line_buf) < (int)sizeof(G.line_buf) - 1) {
 					/* echo and store the character */
 					full_write(STDOUT_FILENO, &c, 1);
 					*bp++ = c;
@@ -695,6 +700,6 @@
 	/* We use PATH because we trust that root doesn't set "bad" PATH,
 	 * and getty is not suid-root applet */
 	/* With -n, logname == NULL, and login will ask for username instead */
-	BB_EXECLP(G.login, G.login, "--", logname, NULL);
+	BB_EXECLP(G.login, G.login, "--", logname, (char *)0);
 	bb_error_msg_and_die("can't execute '%s'", G.login);
 }
diff --git a/loginutils/login.c b/loginutils/login.c
index 6ec8dc4..862104c 100644
--- a/loginutils/login.c
+++ b/loginutils/login.c
@@ -17,9 +17,11 @@
 
 #if ENABLE_SELINUX
 # include <selinux/selinux.h>  /* for is_selinux_enabled()  */
+#ifndef __BIONIC__
 # include <selinux/get_context_list.h> /* for get_default_context() */
 # include <selinux/flask.h> /* for security class definitions  */
 #endif
+#endif
 
 #if ENABLE_PAM
 /* PAM may include <locale.h>. We may need to undefine bbox's stub define: */
@@ -118,7 +120,8 @@
 		bb_perror_msg_and_die("security_change_sid(%s) failed", full_tty);
 	}
 	if (setfilecon(full_tty, new_tty_sid) != 0) {
-		bb_perror_msg_and_die("chsid(%s, %s) failed", full_tty, new_tty_sid);
+		if (strcmp(old_tty_sid, new_tty_sid))
+			bb_perror_msg_and_die("chsid(%s, %s) failed", full_tty, new_tty_sid);
 	}
 }
 #endif
@@ -397,7 +400,7 @@
 					pam_strerror(pamh, pamret), pamret);
 		safe_strncpy(username, "UNKNOWN", sizeof(username));
 #else /* not PAM */
-		pw = getpwnam(username);
+		pw = safegetpwnam(username);
 		if (!pw) {
 			strcpy(username, "UNKNOWN");
 			goto fake_it;
@@ -420,7 +423,7 @@
 		 * Note that reads (in no-echo mode) trash tty attributes.
 		 * If we get interrupted by SIGALRM, we need to restore attrs.
 		 */
-		if (correct_password(pw))
+		if (ask_and_check_password(pw) > 0)
 			break;
 #endif /* ENABLE_PAM */
  auth_failed:
diff --git a/loginutils/passwd.c b/loginutils/passwd.c
index a7006f0..1509089 100644
--- a/loginutils/passwd.c
+++ b/loginutils/passwd.c
@@ -17,11 +17,6 @@
 #include <syslog.h>
 #include <sys/resource.h> /* setrlimit */
 
-static void nuke_str(char *str)
-{
-	if (str) memset(str, 0, strlen(str));
-}
-
 static char* new_password(const struct passwd *pw, uid_t myuid, const char *algo)
 {
 	char salt[MAX_PW_SALT_LEN];
diff --git a/loginutils/su.c b/loginutils/su.c
index 2ec05e1..c51f26f 100644
--- a/loginutils/su.c
+++ b/loginutils/su.c
@@ -93,7 +93,7 @@
 
 	pw = xgetpwnam(opt_username);
 
-	if (cur_uid == 0 || correct_password(pw)) {
+	if (cur_uid == 0 || ask_and_check_password(pw) > 0) {
 		if (ENABLE_FEATURE_SU_SYSLOG)
 			syslog(LOG_NOTICE, "%c %s %s:%s",
 				'+', tty, old_user, opt_username);
diff --git a/loginutils/sulogin.c b/loginutils/sulogin.c
index bd2b09e..c8e5fc9 100644
--- a/loginutils/sulogin.c
+++ b/loginutils/sulogin.c
@@ -14,24 +14,12 @@
 #include "libbb.h"
 #include <syslog.h>
 
-//static void catchalarm(int UNUSED_PARAM junk)
-//{
-//	exit(EXIT_FAILURE);
-//}
-
-
 int sulogin_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int sulogin_main(int argc UNUSED_PARAM, char **argv)
 {
-	char *cp;
 	int timeout = 0;
 	struct passwd *pwd;
 	const char *shell;
-#if ENABLE_FEATURE_SHADOWPASSWDS
-	/* Using _r function to avoid pulling in static buffers */
-	char buffer[256];
-	struct spwd spw;
-#endif
 
 	logmode = LOGMODE_BOTH;
 	openlog(applet_name, 0, LOG_AUTH);
@@ -57,48 +45,29 @@
 	/* Clear dangerous stuff, set PATH */
 	sanitize_env_if_suid();
 
-	pwd = getpwuid(0);
+	pwd = safegetpwuid(0);
 	if (!pwd) {
 		goto auth_error;
 	}
 
-#if ENABLE_FEATURE_SHADOWPASSWDS
-	{
-		/* getspnam_r may return 0 yet set result to NULL.
-		 * At least glibc 2.4 does this. Be extra paranoid here. */
-		struct spwd *result = NULL;
-		int r = getspnam_r(pwd->pw_name, &spw, buffer, sizeof(buffer), &result);
-		if (r || !result) {
-			goto auth_error;
-		}
-		pwd->pw_passwd = result->sp_pwdp;
-	}
-#endif
-
 	while (1) {
-		char *encrypted;
 		int r;
 
-		/* cp points to a static buffer that is zeroed every time */
-		cp = bb_ask(STDIN_FILENO, timeout,
-				"Give root password for system maintenance\n"
-				"(or type Control-D for normal startup):");
-
-		if (!cp || !*cp) {
+		r = ask_and_check_password_extended(pwd, timeout,
+			"Give root password for system maintenance\n"
+			"(or type Control-D for normal startup):"
+		);
+		if (r < 0) {
+			/* ^D, ^C, timeout, or read error */
 			bb_info_msg("Normal startup");
 			return 0;
 		}
-		encrypted = pw_encrypt(cp, pwd->pw_passwd, 1);
-		r = strcmp(encrypted, pwd->pw_passwd);
-		free(encrypted);
-		if (r == 0) {
+		if (r > 0) {
 			break;
 		}
 		bb_do_delay(LOGIN_FAIL_DELAY);
 		bb_info_msg("Login incorrect");
 	}
-	memset(cp, 0, strlen(cp));
-//	signal(SIGALRM, SIG_DFL);
 
 	bb_info_msg("System Maintenance Mode");
 
diff --git a/loginutils/vlock.c b/loginutils/vlock.c
index 75af939..44b14e6 100644
--- a/loginutils/vlock.c
+++ b/loginutils/vlock.c
@@ -104,7 +104,7 @@
 				/* "s" if -a, else "": */ "s" + !option_mask32,
 				pw->pw_name
 		);
-		if (correct_password(pw)) {
+		if (ask_and_check_password(pw) > 0) {
 			break;
 		}
 		bb_do_delay(LOGIN_FAIL_DELAY);
diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c
index c426e9d..b5aa1d1 100644
--- a/mailutils/sendmail.c
+++ b/mailutils/sendmail.c
@@ -92,25 +92,73 @@
 // strip argument of bad chars
 static char *sane_address(char *str)
 {
-	char *s = str;
-	char *p = s;
+	char *s;
+
+	trim(str);
+	s = str;
 	while (*s) {
-		if (isalnum(*s) || '_' == *s || '-' == *s || '.' == *s || '@' == *s) {
-			*p++ = *s;
+		if (!isalnum(*s) && !strchr("_-.@", *s)) {
+			bb_error_msg("bad address '%s'", str);
+			/* returning "": */
+			str[0] = '\0';
+			return str;
 		}
 		s++;
 	}
-	*p = '\0';
 	return str;
 }
 
+// check for an address inside angle brackets, if not found fall back to normal
+static char *angle_address(char *str)
+{
+	char *s, *e;
+
+	trim(str);
+	e = last_char_is(str, '>');
+	if (e) {
+		s = strrchr(str, '<');
+		if (s) {
+			*e = '\0';
+			str = s + 1;
+		}
+	}
+	return sane_address(str);
+}
+
 static void rcptto(const char *s)
 {
+	if (!*s)
+		return;
 	// N.B. we don't die if recipient is rejected, for the other recipients may be accepted
 	if (250 != smtp_checkp("RCPT TO:<%s>", s, -1))
 		bb_error_msg("Bad recipient: <%s>", s);
 }
 
+// send to a list of comma separated addresses
+static void rcptto_list(const char *list)
+{
+	char *str = xstrdup(list);
+	char *s = str;
+	char prev = 0;
+	int in_quote = 0;
+
+	while (*s) {
+		char ch = *s++;
+
+		if (ch == '"' && prev != '\\') {
+			in_quote = !in_quote;
+		} else if (!in_quote && ch == ',') {
+			s[-1] = '\0';
+			rcptto(angle_address(str));
+			str = s;
+		}
+		prev = ch;
+	}
+	if (prev != ',')
+		rcptto(angle_address(str));
+	free(str);
+}
+
 int sendmail_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int sendmail_main(int argc UNUSED_PARAM, char **argv)
 {
@@ -121,6 +169,13 @@
 	char *host = sane_address(safe_gethostname());
 	unsigned nheaders = 0;
 	int code;
+	enum {
+		HDR_OTHER = 0,
+		HDR_TOCC,
+		HDR_BCC,
+	} last_hdr = 0;
+	int check_hdr;
+	int has_to = 0;
 
 	enum {
 	//--- standard options
@@ -282,23 +337,36 @@
 
 		// analyze headers
 		// To: or Cc: headers add recipients
+		check_hdr = (0 == strncasecmp("To:", s, 3));
+		has_to |= check_hdr;
 		if (opts & OPT_t) {
-			if (0 == strncasecmp("To:", s, 3) || 0 == strncasecmp("Bcc:" + 1, s, 3)) {
-				rcptto(sane_address(s+3));
+			if (check_hdr || 0 == strncasecmp("Bcc:" + 1, s, 3)) {
+				rcptto_list(s+3);
+				last_hdr = HDR_TOCC;
 				goto addheader;
 			}
 			// Bcc: header adds blind copy (hidden) recipient
 			if (0 == strncasecmp("Bcc:", s, 4)) {
-				rcptto(sane_address(s+4));
+				rcptto_list(s+4);
 				free(s);
+				last_hdr = HDR_BCC;
 				continue; // N.B. Bcc: vanishes from headers!
 			}
 		}
-		if (strchr(s, ':') || (list && isspace(s[0]))) {
+		check_hdr = (list && isspace(s[0]));
+		if (strchr(s, ':') || check_hdr) {
 			// other headers go verbatim
 			// N.B. RFC2822 2.2.3 "Long Header Fields" allows for headers to occupy several lines.
 			// Continuation is denoted by prefixing additional lines with whitespace(s).
 			// Thanks (stefan.seyfried at googlemail.com) for pointing this out.
+			if (check_hdr && last_hdr != HDR_OTHER) {
+				rcptto_list(s+1);
+				if (last_hdr == HDR_BCC)
+					continue;
+					// N.B. Bcc: vanishes from headers!
+			} else {
+				last_hdr = HDR_OTHER;
+			}
  addheader:
 			// N.B. we allow MAX_HEADERS generic headers at most to prevent attacks
 			if (MAX_HEADERS && ++nheaders >= MAX_HEADERS)
@@ -309,12 +377,27 @@
 			// so stop "analyze headers" mode
  reenter:
 			// put recipients specified on cmdline
+			check_hdr = 1;
 			while (*argv) {
 				char *t = sane_address(*argv);
 				rcptto(t);
 				//if (MAX_HEADERS && ++nheaders >= MAX_HEADERS)
 				//	goto bail;
-				llist_add_to_end(&list, xasprintf("To: %s", t));
+				if (!has_to) {
+					const char *hdr;
+
+					if (check_hdr && argv[1])
+						hdr = "To: %s,";
+					else if (check_hdr)
+						hdr = "To: %s";
+					else if (argv[1])
+						hdr = "To: %s," + 3;
+					else
+						hdr = "To: %s" + 3;
+					llist_add_to_end(&list,
+							xasprintf(hdr, t));
+					check_hdr = 0;
+				}
 				argv++;
 			}
 			// enter "put message" mode
diff --git a/miscutils/Config.src b/miscutils/Config.src
index b9fc196..1da9800 100644
--- a/miscutils/Config.src
+++ b/miscutils/Config.src
@@ -503,18 +503,6 @@
 	  As readahead(2) blocks until each file has been read, it is best to
 	  run this applet as a background job.
 
-config RFKILL
-	bool "rfkill"
-	default n  # doesn't build on Ubuntu 9.04
-	select PLATFORM_LINUX
-	help
-	  Enable/disable wireless devices.
-
-	  rfkill list : list all wireless devices
-	  rfkill list bluetooth : list all bluetooth devices
-	  rfkill list 1 : list device corresponding to the given index
-	  rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
-
 config RUNLEVEL
 	bool "runlevel"
 	default y
@@ -591,13 +579,6 @@
 	help
 	  Prints a CD-ROM volume name.
 
-config WALL
-	bool "wall"
-	default y
-	depends on FEATURE_UTMP
-	help
-	  Write a message to all users that are logged in.
-
 config WATCHDOG
 	bool "watchdog"
 	default y
diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src
index 8c49864..9e164f1 100644
--- a/miscutils/Kbuild.src
+++ b/miscutils/Kbuild.src
@@ -36,7 +36,6 @@
 lib-$(CONFIG_MT)          += mt.o
 lib-$(CONFIG_RAIDAUTORUN) += raidautorun.o
 lib-$(CONFIG_READAHEAD)   += readahead.o
-lib-$(CONFIG_RFKILL)      += rfkill.o
 lib-$(CONFIG_RUNLEVEL)    += runlevel.o
 lib-$(CONFIG_RX)          += rx.o
 lib-$(CONFIG_SETSID)      += setsid.o
@@ -46,5 +45,4 @@
 lib-$(CONFIG_TIMEOUT)     += timeout.o
 lib-$(CONFIG_TTYSIZE)     += ttysize.o
 lib-$(CONFIG_VOLNAME)     += volname.o
-lib-$(CONFIG_WALL)        += wall.o
 lib-$(CONFIG_WATCHDOG)    += watchdog.o
diff --git a/miscutils/chat.c b/miscutils/chat.c
index ce994f8..bd2abc2 100644
--- a/miscutils/chat.c
+++ b/miscutils/chat.c
@@ -296,7 +296,7 @@
 						full_write(record_fd, buf+buf_len, 1);
 					}
 					// dump device input if ECHO ON
-					if (echo > 0) {
+					if (echo) {
 //						if (buf[buf_len] < ' ') {
 //							full_write(STDERR_FILENO, "^", 1);
 //							buf[buf_len] += '@';
diff --git a/miscutils/chrt.c b/miscutils/chrt.c
index 91b5397..f2f559f 100644
--- a/miscutils/chrt.c
+++ b/miscutils/chrt.c
@@ -23,9 +23,6 @@
 
 #include <sched.h>
 #include "libbb.h"
-#ifndef _POSIX_PRIORITY_SCHEDULING
-#warning your system may be foobared
-#endif
 
 static const struct {
 	int policy;
diff --git a/miscutils/crond.c b/miscutils/crond.c
index c9f4552..2545618 100644
--- a/miscutils/crond.c
+++ b/miscutils/crond.c
@@ -36,7 +36,11 @@
 #endif
 
 
+#ifdef __BIONIC__
+#define TMPDIR          "/data/local/tmp"
+#else
 #define TMPDIR          CONFIG_FEATURE_CROND_DIR
+#endif
 #define CRONTABS        CONFIG_FEATURE_CROND_DIR "/crontabs"
 #ifndef SENDMAIL
 # define SENDMAIL       "sendmail"
@@ -693,7 +697,7 @@
 	struct passwd *pas;
 	pid_t pid;
 
-	pas = getpwnam(user);
+	pas = safegetpwnam(user);
 	if (!pas) {
 		crondlog(WARN9 "can't get uid for %s", user);
 		goto err;
diff --git a/miscutils/crontab.c b/miscutils/crontab.c
index 49d1da7..94659bd 100644
--- a/miscutils/crontab.c
+++ b/miscutils/crontab.c
@@ -55,28 +55,6 @@
 	bb_perror_msg_and_die("can't execute '%s'", ptr);
 }
 
-static int open_as_user(const struct passwd *pas, const char *file)
-{
-	pid_t pid;
-	char c;
-
-	pid = xvfork();
-	if (pid) { /* PARENT */
-		if (wait4pid(pid) == 0) {
-			/* exitcode 0: child says it can read */
-			return open(file, O_RDONLY);
-		}
-		return -1;
-	}
-
-	/* CHILD */
-	/* initgroups, setgid, setuid */
-	change_identity(pas);
-	/* We just try to read one byte. If it works, file is readable
-	 * under this user. We signal that by exiting with 0. */
-	_exit(safe_read(xopen(file, O_RDONLY), &c, 1) < 0);
-}
-
 int crontab_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int crontab_main(int argc UNUSED_PARAM, char **argv)
 {
@@ -137,10 +115,7 @@
 		if (!argv[0])
 			bb_show_usage();
 		if (NOT_LONE_DASH(argv[0])) {
-			src_fd = open_as_user(pas, argv[0]);
-			if (src_fd < 0)
-				bb_error_msg_and_die("user %s cannot read %s",
-						pas->pw_name, argv[0]);
+			src_fd = xopen_as_uid_gid(argv[0], O_RDONLY, pas->pw_uid, pas->pw_gid);
 		}
 	}
 
diff --git a/miscutils/devfsd.c b/miscutils/devfsd.c
index 24c953b..96ffe07 100644
--- a/miscutils/devfsd.c
+++ b/miscutils/devfsd.c
@@ -1083,21 +1083,23 @@
 {
 	struct passwd *pw_ent;
 	struct group *grp_ent;
-	static const char *msg;
+	const char *msg;
 
-	if (ENABLE_DEVFSD_VERBOSE)
-		msg = "user";
-
-	if (isdigit(string[0]) ||((string[0] == '-') && isdigit(string[1])))
+	if (isdigit(string[0]) || ((string[0] == '-') && isdigit(string[1])))
 		return atoi(string);
 
 	if (flag == UID && (pw_ent = getpwnam(string)) != NULL)
 		return pw_ent->pw_uid;
 
-	if (flag == GID && (grp_ent = getgrnam(string)) != NULL)
-		return grp_ent->gr_gid;
-	else if (ENABLE_DEVFSD_VERBOSE)
-		msg = "group";
+	if (ENABLE_DEVFSD_VERBOSE)
+		msg = "user";
+
+	if (flag == GID) {
+		if ((grp_ent = getgrnam(string)) != NULL)
+			return grp_ent->gr_gid;
+		if (ENABLE_DEVFSD_VERBOSE)
+			msg = "group";
+	}
 
 	if (ENABLE_DEVFSD_VERBOSE)
 		msg_logger(LOG_ERR, "unknown %s: %s, defaulting to %cid=0",  msg, string, msg[0]);
diff --git a/miscutils/fbsplash.c b/miscutils/fbsplash.c
index 9639672..383b829 100644
--- a/miscutils/fbsplash.c
+++ b/miscutils/fbsplash.c
@@ -353,7 +353,7 @@
 	if (LONE_DASH(G.image_filename)) {
 		theme_file = stdin;
 	} else {
-		int fd = open_zipped(G.image_filename);
+		int fd = open_zipped(G.image_filename, /*fail_if_not_compressed:*/ 0);
 		if (fd < 0)
 			bb_simple_perror_msg_and_die(G.image_filename);
 		theme_file = xfdopen_for_read(fd);
diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_eraseall.c
index 0598371..bf9b739 100644
--- a/miscutils/flash_eraseall.c
+++ b/miscutils/flash_eraseall.c
@@ -11,10 +11,11 @@
  */
 
 //usage:#define flash_eraseall_trivial_usage
-//usage:       "[-jq] MTD_DEVICE"
+//usage:       "[-jNq] MTD_DEVICE"
 //usage:#define flash_eraseall_full_usage "\n\n"
 //usage:       "Erase an MTD device\n"
 //usage:     "\n	-j	Format the device for jffs2"
+//usage:     "\n	-N	Don't skip bad blocks"
 //usage:     "\n	-q	Don't display progress messages"
 
 #include "libbb.h"
@@ -22,9 +23,9 @@
 #include <linux/jffs2.h>
 
 #define OPTION_J  (1 << 0)
-#define OPTION_Q  (1 << 1)
-#define IS_NAND   (1 << 2)
-#define BBTEST    (1 << 3)
+#define OPTION_N  (1 << 1)
+#define OPTION_Q  (1 << 2)
+#define IS_NAND   (1 << 3)
 
 /* mtd/jffs2-user.h used to have this atrocity:
 extern int target_endian;
@@ -71,7 +72,7 @@
 	char *mtd_name;
 
 	opt_complementary = "=1";
-	flags = BBTEST | getopt32(argv, "jq");
+	flags = getopt32(argv, "jNq");
 
 	mtd_name = argv[optind];
 	fd = xopen(mtd_name, O_RDWR);
@@ -139,7 +140,7 @@
 
 	for (erase.start = 0; erase.start < meminfo.size;
 	     erase.start += meminfo.erasesize) {
-		if (flags & BBTEST) {
+		if (!(flags & OPTION_N)) {
 			int ret;
 			loff_t offset = erase.start;
 
@@ -154,7 +155,7 @@
 				 * types e.g. NOR
 				 */
 				if (errno == EOPNOTSUPP) {
-					flags &= ~BBTEST;
+					flags |= OPTION_N;
 					if (flags & IS_NAND)
 						bb_error_msg_and_die("bad block check not available");
 				} else {
diff --git a/miscutils/flashcp.c b/miscutils/flashcp.c
index 1704479..a834a7f 100644
--- a/miscutils/flashcp.c
+++ b/miscutils/flashcp.c
@@ -16,6 +16,7 @@
 #include "libbb.h"
 #include <mtd/mtd-user.h>
 
+/* If 1, simulates "flashing" by writing to existing regular file */
 #define MTD_DEBUG 0
 
 #define OPT_v (1 << 0)
@@ -32,7 +33,7 @@
 	if (total)
 		percent = (unsigned) (percent / total);
 	printf("\r%s: %"OFF_FMT"u/%"OFF_FMT"u (%u%%) ",
-		(mode == 0) ? "Erasing block" : ((mode == 1) ? "Writing kb" : "Verifying kb"),
+		(mode < 0) ? "Erasing block" : ((mode == 0) ? "Writing kb" : "Verifying kb"),
 		count, total, (unsigned)percent);
 	fflush_all();
 }
@@ -97,8 +98,7 @@
 #endif
 	e.start = 0;
 	for (i = 1; i <= erase_count; i++) {
-		progress(0, i, erase_count);
-		errno = 0;
+		progress(-1, i, erase_count);
 #if !MTD_DEBUG
 		if (ioctl(fd_d, MEMERASE, &e) < 0) {
 			bb_perror_msg_and_die("erase error at 0x%llx on %s",
@@ -113,7 +113,7 @@
 
 	/* doing this outer loop gives significantly smaller code
 	 * than doing two separate loops for writing and verifying */
-	for (i = 1; i <= 2; i++) {
+	for (i = 0; i <= 1; i++) {
 		uoff_t done;
 		unsigned count;
 
@@ -122,25 +122,29 @@
 		done = 0;
 		count = BUFSIZE;
 		while (1) {
-			uoff_t rem = statb.st_size - done;
+			uoff_t rem;
+
+			progress(i, done / 1024, (uoff_t)statb.st_size / 1024);
+			rem = statb.st_size - done;
 			if (rem == 0)
 				break;
 			if (rem < BUFSIZE)
 				count = rem;
-			progress(i, done / 1024, (uoff_t)statb.st_size / 1024);
 			xread(fd_f, buf, count);
-			if (i == 1) {
+			if (i == 0) {
 				int ret;
+				if (count < BUFSIZE)
+					memset((char*)buf + count, 0, BUFSIZE - count);
 				errno = 0;
-				ret = full_write(fd_d, buf, count);
-				if (ret != (int) count) {
+				ret = full_write(fd_d, buf, BUFSIZE);
+				if (ret != BUFSIZE) {
 					bb_perror_msg_and_die("write error at 0x%"OFF_FMT"x on %s, "
 						"write returned %d",
 						done, devicename, ret);
 				}
-			} else { /* i == 2 */
+			} else { /* i == 1 */
 				xread(fd_d, buf2, count);
-				if (memcmp(buf, buf2, count)) {
+				if (memcmp(buf, buf2, count) != 0) {
 					bb_error_msg_and_die("verification mismatch at 0x%"OFF_FMT"x", done);
 				}
 			}
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c
index 69726ae..f0e9c9d 100644
--- a/miscutils/hdparm.c
+++ b/miscutils/hdparm.c
@@ -465,14 +465,14 @@
 static void print_flag_on_off(int get_arg, const char *s, unsigned long arg)
 {
 	if (get_arg) {
-		printf(" setting %s to %ld", s, arg);
+		printf(" setting %s to %lu", s, arg);
 		on_off(arg);
 	}
 }
 
 static void print_value_on_off(const char *str, unsigned long argp)
 {
-	printf(" %s\t= %2ld", str, argp);
+	printf(" %s\t= %2lu", str, argp);
 	on_off(argp != 0);
 }
 
@@ -1509,7 +1509,7 @@
 	else if (value == BUSSTATE_TRISTATE)
 		printf(" (tristate)\n");
 	else
-		printf(" (unknown: %d)\n", value);
+		printf(" (unknown: %u)\n", value);
 }
 #endif
 
@@ -1589,7 +1589,7 @@
 static void print_flag(int flag, const char *s, unsigned long value)
 {
 	if (flag)
-		printf(" setting %s to %ld\n", s, value);
+		printf(" setting %s to %lu\n", s, value);
 }
 
 static void process_dev(char *devname)
diff --git a/miscutils/less.c b/miscutils/less.c
index 622969f..3f4d50f 100644
--- a/miscutils/less.c
+++ b/miscutils/less.c
@@ -502,7 +502,7 @@
 		}
 		if (!(option_mask32 & FLAG_S)
 		  ? (max_fline > cur_fline + max_displayed_line)
-		  : (max_fline >= cur_fline
+		  : (max_fline >= (unsigned) cur_fline
 		     && max_lineno > LINENO(flines[cur_fline]) + max_displayed_line)
 		) {
 #if !ENABLE_FEATURE_LESS_REGEXP
@@ -926,7 +926,7 @@
 //TODO: reuse code for determining this
 	if (!(option_mask32 & FLAG_S)
 	   ? !(max_fline > cur_fline + max_displayed_line)
-	   : !(max_fline >= cur_fline
+	   : !(max_fline >= (unsigned) cur_fline
 	       && max_lineno > LINENO(flines[cur_fline]) + max_displayed_line)
 	) {
 		if (eof_error > 0) /* did NOT reach eof yet */
@@ -1608,6 +1608,9 @@
 int less_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int less_main(int argc, char **argv)
 {
+	char *tty_name;
+	int tty_fd;
+
 	INIT_G();
 
 	/* TODO: -x: do not interpret backspace, -xx: tab also */
@@ -1637,10 +1640,28 @@
 	if (option_mask32 & FLAG_TILDE)
 		empty_line_marker = "";
 
-	kbd_fd = open(CURRENT_TTY, O_RDONLY);
-	if (kbd_fd < 0)
-		return bb_cat(argv);
-	ndelay_on(kbd_fd);
+	/* Some versions of less can survive w/o controlling tty,
+	 * try to do the same. This also allows to specify an alternative
+	 * tty via "less 1<>TTY".
+	 * We don't try to use STDOUT_FILENO directly,
+	 * since we want to set this fd to non-blocking mode,
+	 * and not bother with restoring it on exit.
+	 */
+	tty_name = xmalloc_ttyname(STDOUT_FILENO);
+	if (tty_name) {
+		tty_fd = open(tty_name, O_RDONLY);
+		free(tty_name);
+		if (tty_fd < 0)
+			goto try_ctty;
+	} else {
+		/* Try controlling tty */
+ try_ctty:
+		tty_fd = open(CURRENT_TTY, O_RDONLY);
+		if (tty_fd < 0)
+			return bb_cat(argv);
+	}
+	ndelay_on(tty_fd);
+	kbd_fd = tty_fd; /* save in a global */
 
 	tcgetattr(kbd_fd, &term_orig);
 	term_less = term_orig;
diff --git a/miscutils/man.c b/miscutils/man.c
index e380fda..9d58ef4 100644
--- a/miscutils/man.c
+++ b/miscutils/man.c
@@ -102,7 +102,7 @@
 
  ordinary_manpage:
 	close(STDIN_FILENO);
-	open_zipped(man_filename); /* guaranteed to use fd 0 (STDIN_FILENO) */
+	open_zipped(man_filename, /*fail_if_not_compressed:*/ 0); /* guaranteed to use fd 0 (STDIN_FILENO) */
 	/* "2>&1" is added so that nroff errors are shown in pager too.
 	 * Otherwise it may show just empty screen */
 	cmd = xasprintf(
@@ -162,7 +162,7 @@
 	opt = getopt32(argv, "+aw");
 	argv += optind;
 
-	sec_list = xstrdup("1:2:3:4:5:6:7:8:9");
+	sec_list = xstrdup("0p:1:1p:2:3:3p:4:5:6:7:8:9");
 	/* Last valid man_path_list[] is [0x10] */
 	count_mp = 0;
 	man_path_list = xzalloc(0x11 * sizeof(man_path_list[0]));
diff --git a/miscutils/nandwrite.c b/miscutils/nandwrite.c
index 5dc1373..d5ae1e7 100644
--- a/miscutils/nandwrite.c
+++ b/miscutils/nandwrite.c
@@ -23,7 +23,7 @@
 //config:	  Dump the content of raw NAND chip
 
 //applet:IF_NANDWRITE(APPLET(nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP))
-//applet:IF_NANDWRITE(APPLET_ODDNAME(nanddump, nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP, nanddump))
+//applet:IF_NANDDUMP(APPLET_ODDNAME(nanddump, nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP, nanddump))
 
 //kbuild:lib-$(CONFIG_NANDWRITE) += nandwrite.o
 //kbuild:lib-$(CONFIG_NANDDUMP) += nandwrite.o
@@ -31,14 +31,14 @@
 //usage:#define nandwrite_trivial_usage
 //usage:	"[-p] [-s ADDR] MTD_DEVICE [FILE]"
 //usage:#define nandwrite_full_usage "\n\n"
-//usage:	"Write to the specified MTD device\n"
+//usage:	"Write to MTD_DEVICE\n"
 //usage:     "\n	-p	Pad to page size"
 //usage:     "\n	-s ADDR	Start address"
 
 //usage:#define nanddump_trivial_usage
-//usage:	"[-o] [-b] [-s ADDR] [-f FILE] MTD_DEVICE"
+//usage:	"[-o] [-b] [-s ADDR] [-l LEN] [-f FILE] MTD_DEVICE"
 //usage:#define nanddump_full_usage "\n\n"
-//usage:	"Dump the specified MTD device\n"
+//usage:	"Dump MTD_DEVICE\n"
 //usage:     "\n	-o	Dump oob data"
 //usage:     "\n	-b	Omit bad block from the dump"
 //usage:     "\n	-s ADDR	Start address"
diff --git a/miscutils/rfkill.c b/miscutils/rfkill.c
index 4671973..7411b6f 100644
--- a/miscutils/rfkill.c
+++ b/miscutils/rfkill.c
@@ -7,6 +7,23 @@
 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
 */
 
+//config:config RFKILL
+//config:	bool "rfkill"
+//config:	default n # doesn't build on Ubuntu 9.04
+//config:	select PLATFORM_LINUX
+//config:	help
+//config:	  Enable/disable wireless devices.
+//config:
+//config:	  rfkill list : list all wireless devices
+//config:	  rfkill list bluetooth : list all bluetooth devices
+//config:	  rfkill list 1 : list device corresponding to the given index
+//config:	  rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
+//config:
+
+//applet:IF_RFKILL(APPLET(rfkill, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_RFKILL) += rfkill.o
+
 //usage:#define rfkill_trivial_usage
 //usage:       "COMMAND [INDEX|TYPE]"
 //usage:#define rfkill_full_usage "\n\n"
diff --git a/miscutils/setserial.c b/miscutils/setserial.c
index 2a034e3..dfed330 100644
--- a/miscutils/setserial.c
+++ b/miscutils/setserial.c
@@ -223,7 +223,7 @@
 //usage:	"	-v	Verbose\n"
 //usage:	"\n"
 //usage:	"Parameters: (* = takes an argument, ^ = can be turned off by preceding ^)\n"
-//usage:	"	*port, *irq, *divisor, *uart, *baund_base, *close_delay, *closing_wait,\n"
+//usage:	"	*port, *irq, *divisor, *uart, *baud_base, *close_delay, *closing_wait,\n"
 //usage:	"	^fourport, ^auto_irq, ^skip_test, ^sak, ^session_lockout, ^pgrp_lockout,\n"
 //usage:	"	^callout_nohup, ^split_termios, ^hup_notify, ^low_latency, autoconfig,\n"
 //usage:	"	spd_normal, spd_hi, spd_vhi, spd_shi, spd_warp, spd_cust\n"
@@ -311,7 +311,7 @@
 	"irq\0"
 	"divisor\0"
 	"uart\0"
-	"baund_base\0"
+	"baud_base\0"
 	"close_delay\0"
 	"closing_wait\0"
 
diff --git a/miscutils/setsid.c b/miscutils/setsid.c
index ad2c8a4..637081b 100644
--- a/miscutils/setsid.c
+++ b/miscutils/setsid.c
@@ -31,7 +31,17 @@
 
 	/* setsid() is allowed only when we are not a process group leader.
 	 * Otherwise our PID serves as PGID of some existing process group
-	 * and cannot be used as PGID of a new process group. */
+	 * and cannot be used as PGID of a new process group.
+	 *
+	 * Example: setsid() below fails when run alone in interactive shell:
+	 *  $ setsid PROG
+	 * because shell's child (setsid) is put in a new process group.
+	 * But doesn't fail if shell is not interactive
+	 * (and therefore doesn't create process groups for pipes),
+	 * or if setsid is not the first process in the process group:
+	 *  $ true | setsid PROG
+	 * or if setsid is executed in backquotes (`setsid PROG`)...
+	 */
 	if (setsid() < 0) {
 		pid_t pid = fork_or_rexec(argv);
 		if (pid != 0) {
@@ -43,7 +53,7 @@
 			 * However, the code is larger and upstream
 			 * does not do such trick.
 			 */
-			exit(EXIT_SUCCESS);
+			return EXIT_SUCCESS;
 		}
 
 		/* child */
diff --git a/miscutils/time.c b/miscutils/time.c
index b0852a0..19b0b44 100644
--- a/miscutils/time.c
+++ b/miscutils/time.c
@@ -71,7 +71,7 @@
 
 	/* Ignore signals, but don't ignore the children.  When wait3
 	 * returns the child process, set the time the command finished. */
-	while ((caught = wait4(-1, &resp->waitstatus, 0, &resp->ru)) != pid) {
+	while ((caught = wait3(&resp->waitstatus, 0, &resp->ru)) != pid) {
 		if (caught == -1 && errno != EINTR) {
 			bb_perror_msg("wait");
 			return;
diff --git a/miscutils/ubi_tools.c b/miscutils/ubi_tools.c
index dd99a44..b713935 100644
--- a/miscutils/ubi_tools.c
+++ b/miscutils/ubi_tools.c
@@ -66,14 +66,6 @@
 #endif
 #include <mtd/ubi-user.h>
 
-#define OPTION_M  (1 << 0)
-#define OPTION_D  (1 << 1)
-#define OPTION_n  (1 << 2)
-#define OPTION_N  (1 << 3)
-#define OPTION_s  (1 << 4)
-#define OPTION_a  (1 << 5)
-#define OPTION_t  (1 << 6)
-
 #define do_attach (ENABLE_UBIATTACH && applet_name[3] == 'a')
 #define do_detach (ENABLE_UBIDETACH && applet_name[3] == 'd')
 #define do_mkvol  (ENABLE_UBIMKVOL  && applet_name[3] == 'm')
@@ -81,191 +73,250 @@
 #define do_rsvol  (ENABLE_UBIRSVOL  && applet_name[4] == 's')
 #define do_update (ENABLE_UBIUPDATEVOL && applet_name[3] == 'u')
 
-//usage:#define ubiattach_trivial_usage
-//usage:       "-m MTD_NUM [-d UBI_NUM] UBI_CTRL_DEV"
-//usage:#define ubiattach_full_usage "\n\n"
-//usage:       "Attach MTD device to UBI\n"
-//usage:     "\n	-m MTD_NUM	MTD device number to attach"
-//usage:     "\n	-d UBI_NUM	UBI device number to assign"
-//usage:
-//usage:#define ubidetach_trivial_usage
-//usage:       "-d UBI_NUM UBI_CTRL_DEV"
-//usage:#define ubidetach_full_usage "\n\n"
-//usage:       "Detach MTD device from UBI\n"
-//usage:     "\n	-d UBI_NUM	UBI device number"
-//usage:
-//usage:#define ubimkvol_trivial_usage
-//usage:       "UBI_DEVICE -N NAME -s SIZE"
-//usage:#define ubimkvol_full_usage "\n\n"
-//usage:       "Create UBI volume\n"
-//usage:     "\n	-a ALIGNMENT	Volume alignment (default 1)"
-//usage:     "\n	-n VOLID	Volume ID, if not specified, it"
-//usage:     "\n			will be assigned automatically"
-//usage:     "\n	-N NAME		Volume name"
-//usage:     "\n	-s SIZE		Size in bytes"
-//usage:     "\n	-t TYPE		Volume type (static|dynamic)"
-//usage:
-//usage:#define ubirmvol_trivial_usage
-//usage:       "UBI_DEVICE -n VOLID"
-//usage:#define ubirmvol_full_usage "\n\n"
-//usage:       "Remove UBI volume\n"
-//usage:     "\n	-n VOLID	Volume ID"
-//usage:
-//usage:#define ubirsvol_trivial_usage
-//usage:       "UBI_DEVICE -n VOLID -s SIZE"
-//usage:#define ubirsvol_full_usage "\n\n"
-//usage:       "Resize UBI volume\n"
-//usage:     "\n	-n VOLID	Volume ID to resize"
-//usage:     "\n	-s SIZE		Size in bytes"
-//usage:
-//usage:#define ubiupdatevol_trivial_usage
-//usage:       "UBI_DEVICE [IMG_FILE]"
-//usage:#define ubiupdatevol_full_usage "\n\n"
-//usage:       "Update UBI volume\n"
-//usage:     "\n	-t	Truncate UBI volume"
-//usage:     "\n	-s SIZE	Bytes in input (if reading stdin)"
+static unsigned get_num_from_file(const char *path, unsigned max, const char *errmsg)
+{
+	char buf[sizeof(long long)*3];
+	unsigned long long num;
 
+	if (open_read_close(path, buf, sizeof(buf)) < 0)
+		bb_perror_msg_and_die(errmsg, path);
+	/* It can be \n terminated, xatoull won't work well */
+	if (sscanf(buf, "%llu", &num) != 1 || num > max)
+		bb_error_msg_and_die(errmsg, path);
+	return num;
+}
+
+/* To prevent malloc(1G) accidents */
+#define MAX_SANE_ERASEBLOCK (16*1024*1024)
 
 int ubi_tools_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int ubi_tools_main(int argc UNUSED_PARAM, char **argv)
 {
+	static const struct suffix_mult size_suffixes[] = {
+		{ "KiB", 1024 },
+		{ "MiB", 1024*1024 },
+		{ "GiB", 1024*1024*1024 },
+		{ "", 0 }
+	};
+
 	unsigned opts;
 	char *ubi_ctrl;
-	//struct stat st;
 	int fd;
 	int mtd_num;
 	int dev_num = UBI_DEV_NUM_AUTO;
 	int vol_id = UBI_VOL_NUM_AUTO;
-	char *vol_name = NULL;
-	int size_bytes;
+	char *vol_name;
+	unsigned long long size_bytes = size_bytes; /* for compiler */
+	char *size_bytes_str;
 	int alignment = 1;
-	char *type = NULL;
+	char *type;
+	union {
+		struct ubi_attach_req attach_req;
+		struct ubi_mkvol_req  mkvol_req;
+		struct ubi_rsvol_req  rsvol_req;
+	} req_structs;
+#define attach_req req_structs.attach_req
+#define mkvol_req  req_structs.mkvol_req
+#define rsvol_req  req_structs.rsvol_req
+	char path[sizeof("/sys/class/ubi/ubi%d_%d/usable_eb_size")
+				+ 2 * sizeof(int)*3 + /*just in case:*/ 16];
+#define path_sys_class_ubi_ubi (path + sizeof("/sys/class/ubi/ubi")-1)
 
-	opt_complementary = "-1:m+:d+:n+:s+:a+";
-	opts = getopt32(argv, "m:d:n:N:s:a:t::",
-			&mtd_num, &dev_num, &vol_id,
-			&vol_name, &size_bytes, &alignment, &type
-	);
-	ubi_ctrl = argv[optind];
+	strcpy(path, "/sys/class/ubi/ubi");
+	memset(&req_structs, 0, sizeof(req_structs));
+
+	if (do_mkvol) {
+		opt_complementary = "-1:d+:n+:a+";
+		opts = getopt32(argv, "md:n:N:s:a:t:",
+				&dev_num, &vol_id,
+				&vol_name, &size_bytes_str, &alignment, &type
+			);
+	} else {
+		opt_complementary = "-1:m+:d+:n+:a+";
+		opts = getopt32(argv, "m:d:n:N:s:a:t:",
+				&mtd_num, &dev_num, &vol_id,
+				&vol_name, &size_bytes_str, &alignment, &type
+		);
+	}
+#define OPTION_m  (1 << 0)
+#define OPTION_d  (1 << 1)
+#define OPTION_n  (1 << 2)
+#define OPTION_N  (1 << 3)
+#define OPTION_s  (1 << 4)
+#define OPTION_a  (1 << 5)
+#define OPTION_t  (1 << 6)
+
+	if (opts & OPTION_s)
+		size_bytes = xatoull_sfx(size_bytes_str, size_suffixes);
+	argv += optind;
+	ubi_ctrl = *argv++;
 
 	fd = xopen(ubi_ctrl, O_RDWR);
 	//xfstat(fd, &st, ubi_ctrl);
 	//if (!S_ISCHR(st.st_mode))
 	//	bb_error_msg_and_die("%s: not a char device", ubi_ctrl);
 
+//usage:#define ubiattach_trivial_usage
+//usage:       "-m MTD_NUM [-d UBI_NUM] UBI_CTRL_DEV"
+//usage:#define ubiattach_full_usage "\n\n"
+//usage:       "Attach MTD device to UBI\n"
+//usage:     "\n	-m MTD_NUM	MTD device number to attach"
+//usage:     "\n	-d UBI_NUM	UBI device number to assign"
 	if (do_attach) {
-		struct ubi_attach_req req;
-		if (!(opts & OPTION_M))
+		if (!(opts & OPTION_m))
 			bb_error_msg_and_die("%s device not specified", "MTD");
 
-		memset(&req, 0, sizeof(req));
-		req.mtd_num = mtd_num;
-		req.ubi_num = dev_num;
+		attach_req.mtd_num = mtd_num;
+		attach_req.ubi_num = dev_num;
 
-		xioctl(fd, UBI_IOCATT, &req);
+		xioctl(fd, UBI_IOCATT, &attach_req);
 	} else
+
+//usage:#define ubidetach_trivial_usage
+//usage:       "-d UBI_NUM UBI_CTRL_DEV"
+//usage:#define ubidetach_full_usage "\n\n"
+//usage:       "Detach MTD device from UBI\n"
+//usage:     "\n	-d UBI_NUM	UBI device number"
 	if (do_detach) {
-		if (!(opts & OPTION_D))
+		if (!(opts & OPTION_d))
 			bb_error_msg_and_die("%s device not specified", "UBI");
 
+		/* FIXME? kernel expects int32_t* here: */
 		xioctl(fd, UBI_IOCDET, &dev_num);
 	} else
+
+//usage:#define ubimkvol_trivial_usage
+//usage:       "UBI_DEVICE -N NAME [-s SIZE | -m]"
+//usage:#define ubimkvol_full_usage "\n\n"
+//usage:       "Create UBI volume\n"
+//usage:     "\n	-a ALIGNMENT	Volume alignment (default 1)"
+//usage:     "\n	-m		Set volume size to maximum available"
+//usage:     "\n	-n VOLID	Volume ID. If not specified,"
+//usage:     "\n			assigned automatically"
+//usage:     "\n	-N NAME		Volume name"
+//usage:     "\n	-s SIZE		Size in bytes"
+//usage:     "\n	-t TYPE		Volume type (static|dynamic)"
 	if (do_mkvol) {
-		struct ubi_mkvol_req req;
-		int vol_name_len;
+		if (opts & OPTION_m) {
+			unsigned leb_avail;
+			unsigned leb_size;
+			unsigned num;
+			char *p;
+
+			if (sscanf(ubi_ctrl, "/dev/ubi%u", &num) != 1)
+				bb_error_msg_and_die("wrong format of UBI device name");
+
+			p = path_sys_class_ubi_ubi + sprintf(path_sys_class_ubi_ubi, "%u/", num);
+
+			strcpy(p, "avail_eraseblocks");
+			leb_avail = get_num_from_file(path, UINT_MAX, "Can't get available eraseblocks from '%s'");
+
+			strcpy(p, "eraseblock_size");
+			leb_size = get_num_from_file(path, MAX_SANE_ERASEBLOCK, "Can't get eraseblock size from '%s'");
+
+			size_bytes = leb_avail * (unsigned long long)leb_size;
+			//if (size_bytes <= 0)
+			//	bb_error_msg_and_die("%s invalid maximum size calculated", "UBI");
+		} else
 		if (!(opts & OPTION_s))
-			bb_error_msg_and_die("%s size not specified", "UBI");
+			bb_error_msg_and_die("size not specified");
+
 		if (!(opts & OPTION_N))
-			bb_error_msg_and_die("%s name not specified", "UBI");
-		vol_name_len = strlen(vol_name);
-		if (vol_name_len > UBI_MAX_VOLUME_NAME)
-			bb_error_msg_and_die("%s volume name too long", "UBI");
+			bb_error_msg_and_die("name not specified");
 
-		memset(&req, 0, sizeof(req));
-		req.vol_id = vol_id;
-		if ((opts & OPTION_t) && type) {
-			if (type[0] == 's')
-				req.vol_type = UBI_STATIC_VOLUME;
-			else
-				req.vol_type = UBI_DYNAMIC_VOLUME;
-		} else {
-			req.vol_type = UBI_DYNAMIC_VOLUME;
-		}
-		req.alignment = alignment;
-		req.bytes = size_bytes;
-		strncpy(req.name, vol_name, UBI_MAX_VOLUME_NAME);
-		req.name_len = vol_name_len;
+		mkvol_req.vol_id = vol_id;
+		mkvol_req.vol_type = UBI_DYNAMIC_VOLUME;
+		if ((opts & OPTION_t) && type[0] == 's')
+			mkvol_req.vol_type = UBI_STATIC_VOLUME;
+		mkvol_req.alignment = alignment;
+		mkvol_req.bytes = size_bytes; /* signed int64_t */
+		strncpy(mkvol_req.name, vol_name, UBI_MAX_VOLUME_NAME);
+		mkvol_req.name_len = strlen(vol_name);
+		if (mkvol_req.name_len > UBI_MAX_VOLUME_NAME)
+			bb_error_msg_and_die("volume name too long: '%s'", vol_name);
 
-		xioctl(fd, UBI_IOCMKVOL, &req);
+		xioctl(fd, UBI_IOCMKVOL, &mkvol_req);
 	} else
+
+//usage:#define ubirmvol_trivial_usage
+//usage:       "UBI_DEVICE -n VOLID"
+//usage:#define ubirmvol_full_usage "\n\n"
+//usage:       "Remove UBI volume\n"
+//usage:     "\n	-n VOLID	Volume ID"
 	if (do_rmvol) {
 		if (!(opts & OPTION_n))
-			bb_error_msg_and_die("%s volume id not specified", "UBI");
+			bb_error_msg_and_die("volume id not specified");
 
+		/* FIXME? kernel expects int32_t* here: */
 		xioctl(fd, UBI_IOCRMVOL, &vol_id);
 	} else
+
+//usage:#define ubirsvol_trivial_usage
+//usage:       "UBI_DEVICE -n VOLID -s SIZE"
+//usage:#define ubirsvol_full_usage "\n\n"
+//usage:       "Resize UBI volume\n"
+//usage:     "\n	-n VOLID	Volume ID"
+//usage:     "\n	-s SIZE		Size in bytes"
 	if (do_rsvol) {
-		struct ubi_rsvol_req req;
 		if (!(opts & OPTION_s))
-			bb_error_msg_and_die("%s size not specified", "UBI");
+			bb_error_msg_and_die("size not specified");
 		if (!(opts & OPTION_n))
-			bb_error_msg_and_die("%s volume id not specified", "UBI");
+			bb_error_msg_and_die("volume id not specified");
 
-		memset(&req, 0, sizeof(req));
-		req.bytes = size_bytes;
-		req.vol_id = vol_id;
+		rsvol_req.bytes = size_bytes; /* signed int64_t */
+		rsvol_req.vol_id = vol_id;
 
-		xioctl(fd, UBI_IOCRSVOL, &req);
+		xioctl(fd, UBI_IOCRSVOL, &rsvol_req);
 	} else
+
+//usage:#define ubiupdatevol_trivial_usage
+//usage:       "UBI_DEVICE [-t | [-s SIZE] IMG_FILE]"
+//usage:#define ubiupdatevol_full_usage "\n\n"
+//usage:       "Update UBI volume\n"
+//usage:     "\n	-t	Truncate to zero size"
+//usage:     "\n	-s SIZE	Size in bytes to resize to"
 	if (do_update) {
-		long long bytes;
+		int64_t bytes64;
 
 		if (opts & OPTION_t) {
-			// truncate the volume by starting an update for size 0
-			bytes = 0;
-			xioctl(fd, UBI_IOCVOLUP, &bytes);
+			/* truncate the volume by starting an update for size 0 */
+			bytes64 = 0;
+			/* this ioctl expects int64_t* parameter */
+			xioctl(fd, UBI_IOCVOLUP, &bytes64);
 		}
 		else {
 			struct stat st;
-			char buf[sizeof("/sys/class/ubi/ubi%d_%d/usable_eb_size") + 2 * sizeof(int)*3];
-			int input_fd;
 			unsigned ubinum, volnum;
 			unsigned leb_size;
 			ssize_t len;
 			char *input_data;
 
-			// Make assumption that device not is in normal format.
-			// Removes need for scanning sysfs tree as full libubi does
+			/* Assume that device is in normal format. */
+			/* Removes need for scanning sysfs tree as full libubi does. */
 			if (sscanf(ubi_ctrl, "/dev/ubi%u_%u", &ubinum, &volnum) != 2)
-				bb_error_msg_and_die("%s volume node not in correct format", "UBI");
+				bb_error_msg_and_die("wrong format of UBI device name");
 
-			sprintf(buf, "/sys/class/ubi/ubi%u_%u/usable_eb_size", ubinum, volnum);
-			if (open_read_close(buf, buf, sizeof(buf)) <= 0)
-				bb_error_msg_and_die("%s could not get LEB size", "UBI");
-			if (sscanf(buf, "%u", &leb_size) != 1)
-				bb_error_msg_and_die("%s could not get LEB size", "UBI");
+			sprintf(path_sys_class_ubi_ubi, "%u_%u/usable_eb_size", ubinum, volnum);
+			leb_size = get_num_from_file(path, MAX_SANE_ERASEBLOCK, "Can't get usable eraseblock size from '%s'");
 
-			if (opts & OPTION_s) {
-				input_fd = 0;
-			} else {
-				if (!argv[optind+1])
+			if (!(opts & OPTION_s)) {
+				if (!*argv)
 					bb_show_usage();
-				xstat(argv[optind+1], &st);
+				xstat(*argv, &st);
 				size_bytes = st.st_size;
-				input_fd = xopen(argv[optind+1], O_RDONLY);
+				xmove_fd(xopen(*argv, O_RDONLY), STDIN_FILENO);
 			}
 
-			bytes = size_bytes;
-			xioctl(fd, UBI_IOCVOLUP, &bytes);
+			bytes64 = size_bytes;
+			/* this ioctl expects signed int64_t* parameter */
+			xioctl(fd, UBI_IOCVOLUP, &bytes64);
 
 			input_data = xmalloc(leb_size);
-			while ((len = full_read(input_fd, input_data, leb_size)) > 0) {
+			while ((len = full_read(STDIN_FILENO, input_data, leb_size)) > 0) {
 				xwrite(fd, input_data, len);
 			}
 			if (len < 0)
-				bb_error_msg_and_die("%s volume update failed", "UBI");
-			if (ENABLE_FEATURE_CLEAN_UP)
-				close(input_fd);
+				bb_perror_msg_and_die("UBI volume update failed");
 		}
 	}
 
diff --git a/miscutils/wall.c b/miscutils/wall.c
index 762f53b..bb709ee 100644
--- a/miscutils/wall.c
+++ b/miscutils/wall.c
@@ -6,6 +6,18 @@
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
+//config:config WALL
+//config:	bool "wall"
+//config:	default y
+//config:	depends on FEATURE_UTMP
+//config:	help
+//config:	  Write a message to all users that are logged in.
+
+/* Needs to be run by root or be suid root - needs to write to /dev/TTY: */
+//applet:IF_WALL(APPLET(wall, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
+
+//kbuild:lib-$(CONFIG_WALL) += wall.o
+
 //usage:#define wall_trivial_usage
 //usage:	"[FILE]"
 //usage:#define wall_full_usage "\n\n"
@@ -22,8 +34,15 @@
 {
 	struct utmp *ut;
 	char *msg;
-	int fd = argv[1] ? xopen(argv[1], O_RDONLY) : STDIN_FILENO;
+	int fd;
 
+	fd = STDIN_FILENO;
+	if (argv[1]) {
+		/* The applet is setuid.
+		 * Access to the file must be under user's uid/gid.
+		 */
+		fd = xopen_as_uid_gid(argv[1], O_RDONLY, getuid(), getgid());
+	}
 	msg = xmalloc_read(fd, NULL);
 	if (ENABLE_FEATURE_CLEAN_UP && argv[1])
 		close(fd);
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index 7ea5a11..f6f45f3 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -175,7 +175,7 @@
 } FIX_ALIASING;
 #define G (*ptr_to_globals)
 #define INIT_G() do { \
-        SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
+	SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
 } while (0)
 
 
diff --git a/networking/Config.src b/networking/Config.src
index e1ae0c9..ca0ddcd 100644
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -970,16 +970,18 @@
 	  Support long options for the wget applet.
 
 config FEATURE_WGET_TIMEOUT
-	bool "Enable read timeout option -T SEC"
+	bool "Enable timeout option -T SEC"
 	default y
 	depends on WGET
 	help
-	  Supports network read timeout for wget, so that wget will give
-	  up and timeout when reading network data, through the -T command
-	  line option.  Currently only network data read timeout is
-	  supported (i.e., timeout is not applied to the DNS nor TCP
-	  connection initialization).  When FEATURE_WGET_LONG_OPTIONS is
-	  also enabled, the --timeout option will work in addition to -T.
+	  Supports network read and connect timeouts for wget,
+	  so that wget will give up and timeout, through the -T
+	  command line option.
+
+	  Currently only connect and network data read timeout are
+	  supported (i.e., timeout is not applied to the DNS query). When
+	  FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
+	  will work in addition to -T.
 
 config ZCIP
 	bool "zcip"
diff --git a/networking/arp.c b/networking/arp.c
index 1c99987..e79b1b6 100644
--- a/networking/arp.c
+++ b/networking/arp.c
@@ -22,12 +22,12 @@
 //usage:#define arp_full_usage "\n\n"
 //usage:       "Manipulate ARP cache\n"
 //usage:       "\n	-a		Display (all) hosts"
-//usage:       "\n	-s		Set new ARP entry"
-//usage:       "\n	-d		Delete a specified entry"
+//usage:       "\n	-d		Delete ARP entry"
+//usage:       "\n	-s		Set new entry"
 //usage:       "\n	-v		Verbose"
 //usage:       "\n	-n		Don't resolve names"
 //usage:       "\n	-i IF		Network interface"
-//usage:       "\n	-D		Read <hwaddr> from given device"
+//usage:       "\n	-D		Read HWADDR from IFACE"
 //usage:       "\n	-A,-p AF	Protocol family"
 //usage:       "\n	-H HWTYPE	Hardware address type"
 
@@ -213,16 +213,15 @@
 }
 
 /* Get the hardware address to a specified interface name */
-static void arp_getdevhw(char *ifname, struct sockaddr *sa,
-						const struct hwtype *hwt)
+static void arp_getdevhw(char *ifname, struct sockaddr *sa)
 {
 	struct ifreq ifr;
 	const struct hwtype *xhw;
 
 	strcpy(ifr.ifr_name, ifname);
 	ioctl_or_perror_and_die(sockfd, SIOCGIFHWADDR, &ifr,
-					"cant get HW-Address for '%s'", ifname);
-	if (hwt && (ifr.ifr_hwaddr.sa_family != hw->type)) {
+					"can't get HW-Address for '%s'", ifname);
+	if (hw_set && (ifr.ifr_hwaddr.sa_family != hw->type)) {
 		bb_error_msg_and_die("protocol type mismatch");
 	}
 	memcpy(sa, &(ifr.ifr_hwaddr), sizeof(struct sockaddr));
@@ -233,8 +232,8 @@
 			xhw = get_hwntype(-1);
 		}
 		bb_error_msg("device '%s' has HW address %s '%s'",
-					ifname, xhw->name,
-					xhw->print((unsigned char *) &ifr.ifr_hwaddr.sa_data));
+				ifname, xhw->name,
+				xhw->print((unsigned char *) &ifr.ifr_hwaddr.sa_data));
 	}
 }
 
@@ -261,7 +260,7 @@
 		bb_error_msg_and_die("need hardware address");
 	}
 	if (option_mask32 & ARP_OPT_D) {
-		arp_getdevhw(*args++, &req.arp_ha, hw_set ? hw : NULL);
+		arp_getdevhw(*args++, &req.arp_ha);
 	} else {
 		if (hw->input(*args++, &req.arp_ha) < 0) {
 			bb_error_msg_and_die("invalid hardware address");
@@ -460,12 +459,12 @@
 		arp_disp(hostname, ip, type, flags, hwa, mask, dev);
 	}
 	if (option_mask32 & ARP_OPT_v)
-		printf("Entries: %d\tSkipped: %d\tFound: %d\n",
+		printf("Entries: %u\tSkipped: %u\tFound: %u\n",
 				entries, entries - shown, shown);
 
 	if (!shown) {
 		if (hw_set || host || device[0])
-			printf("No match found in %d entries\n", entries);
+			printf("No match found in %u entries\n", entries);
 	}
 	if (ENABLE_FEATURE_CLEAN_UP) {
 		free((char*)host);
@@ -477,28 +476,33 @@
 int arp_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int arp_main(int argc UNUSED_PARAM, char **argv)
 {
-	const char *hw_type = "ether";
+	const char *hw_type;
 	const char *protocol;
 	unsigned opts;
 
 	INIT_G();
 
 	xmove_fd(xsocket(AF_INET, SOCK_DGRAM, 0), sockfd);
+
 	ap = get_aftype(DFLT_AF);
-	if (!ap)
-		bb_error_msg_and_die("%s: %s not supported", DFLT_AF, "address family");
+	/* Defaults are always supported */
+	//if (!ap)
+	//	bb_error_msg_and_die("%s: %s not supported", DFLT_AF, "address family");
+	hw = get_hwtype(DFLT_HW);
+	//if (!hw)
+	//	bb_error_msg_and_die("%s: %s not supported", DFLT_HW, "hardware type");
 
 	opts = getopt32(argv, "A:p:H:t:i:adnDsv", &protocol, &protocol,
 				 &hw_type, &hw_type, &device);
 	argv += optind;
 	if (opts & (ARP_OPT_A | ARP_OPT_p)) {
 		ap = get_aftype(protocol);
-		if (ap == NULL)
+		if (!ap)
 			bb_error_msg_and_die("%s: unknown %s", protocol, "address family");
 	}
-	if (opts & (ARP_OPT_A | ARP_OPT_p)) {
+	if (opts & (ARP_OPT_H | ARP_OPT_t)) {
 		hw = get_hwtype(hw_type);
-		if (hw == NULL)
+		if (!hw)
 			bb_error_msg_and_die("%s: unknown %s", hw_type, "hardware type");
 		hw_set = 1;
 	}
@@ -507,14 +511,6 @@
 	if (ap->af != AF_INET) {
 		bb_error_msg_and_die("%s: kernel only supports 'inet'", ap->name);
 	}
-
-	/* If no hw type specified get default */
-	if (!hw) {
-		hw = get_hwtype(DFLT_HW);
-		if (!hw)
-			bb_error_msg_and_die("%s: %s not supported", DFLT_HW, "hardware type");
-	}
-
 	if (hw->alen <= 0) {
 		bb_error_msg_and_die("%s: %s without ARP support",
 				hw->name, "hardware type");
@@ -528,6 +524,7 @@
 			return arp_set(argv);
 		return arp_del(argv);
 	}
+
 	//if (opts & ARP_OPT_a) - default
 	return arp_show(argv[0]);
 }
diff --git a/networking/ether-wake.c b/networking/ether-wake.c
index bf09cd5..c38547d 100644
--- a/networking/ether-wake.c
+++ b/networking/ether-wake.c
@@ -62,17 +62,17 @@
  *   An alternative to needing 'root' is using a UDP broadcast socket, however
  *   doing so only works with adapters configured for unicast+broadcast Rx
  *   filter.  That configuration consumes more power.
-*/
+ */
 
 //usage:#define ether_wake_trivial_usage
-//usage:       "[-b] [-i iface] [-p aa:bb:cc:dd[:ee:ff]] MAC"
+//usage:       "[-b] [-i IFACE] [-p aa:bb:cc:dd[:ee:ff]/a.b.c.d] MAC"
 //usage:#define ether_wake_full_usage "\n\n"
 //usage:       "Send a magic packet to wake up sleeping machines.\n"
 //usage:       "MAC must be a station address (00:11:22:33:44:55) or\n"
 //usage:       "a hostname with a known 'ethers' entry.\n"
-//usage:     "\n	-b		Send wake-up packet to the broadcast address"
-//usage:     "\n	-i iface	Interface to use (default eth0)"
-//usage:     "\n	-p pass		Append four or six byte password PW to the packet"
+//usage:     "\n	-b		Broadcast the packet"
+//usage:     "\n	-i IFACE	Interface to use (default eth0)"
+//usage:     "\n	-p PASSWORD	Append four or six byte PASSWORD to the packet"
 
 #include "libbb.h"
 #include <netpacket/packet.h>
@@ -121,10 +121,7 @@
 	eap = ether_aton_r(hostid, eaddr);
 	if (eap) {
 		bb_debug_msg("The target station address is %s\n\n", ether_ntoa(eap));
-#if !defined(__UCLIBC_MAJOR__) \
- || __UCLIBC_MAJOR__ > 0 \
- || __UCLIBC_MINOR__ > 9 \
- || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ >= 30)
+#if !defined(__UCLIBC__) || UCLIBC_VERSION >= KERNEL_VERSION(0, 9, 30)
 	} else if (ether_hostton(hostid, eaddr) == 0) {
 		bb_debug_msg("Station address for hostname %s is %s\n\n", hostid, ether_ntoa(eaddr));
 #endif
@@ -133,7 +130,8 @@
 	}
 }
 
-static int get_fill(unsigned char *pkt, struct ether_addr *eaddr, int broadcast)
+#define PKT_HEADER_SIZE (20 + 16*6)
+static int fill_pkt_header(unsigned char *pkt, struct ether_addr *eaddr, int broadcast)
 {
 	int i;
 	unsigned char *station_addr = eaddr->ether_addr_octet;
@@ -156,7 +154,7 @@
 		memcpy(pkt, station_addr, 6); /* 20,26,32,... */
 	}
 
-	return 20 + 16*6; /* length of packet */
+	return PKT_HEADER_SIZE; /* length of packet */
 }
 
 static int get_wol_pw(const char *ethoptarg, unsigned char *wol_passwd)
@@ -198,7 +196,7 @@
 	int wol_passwd_sz = 0;
 	int s;  /* Raw socket */
 	int pktsize;
-	unsigned char outpack[1000];
+	unsigned char outpack[PKT_HEADER_SIZE + 6 /* max passwd size */ + 16 /* paranoia */];
 
 	struct ether_addr eaddr;
 	struct whereto_t whereto;  /* who to wake up */
@@ -220,7 +218,7 @@
 	get_dest_addr(argv[optind], &eaddr);
 
 	/* fill out the header of the packet */
-	pktsize = get_fill(outpack, &eaddr, flags /* & 1 OPT_BROADCAST */);
+	pktsize = fill_pkt_header(outpack, &eaddr, flags /* & 1 OPT_BROADCAST */);
 
 	bb_debug_dump_packet(outpack, pktsize);
 
diff --git a/networking/hostname.c b/networking/hostname.c
index 5209bc8..4da5b40 100644
--- a/networking/hostname.c
+++ b/networking/hostname.c
@@ -106,7 +106,7 @@
 		OPT_i = 0x4,
 		OPT_s = 0x8,
 		OPT_F = 0x10,
-		OPT_dfis = 0xf,
+		OPT_dfi = 0x7,
 	};
 
 	unsigned opts;
@@ -134,7 +134,7 @@
 	if (applet_name[0] == 'd') /* dnsdomainname? */
 		opts = OPT_d;
 
-	if (opts & OPT_dfis) {
+	if (opts & OPT_dfi) {
 		/* Cases when we need full hostname (or its part) */
 		struct hostent *hp;
 		char *p;
@@ -159,6 +159,9 @@
 				bb_putchar('\n');
 			}
 		}
+	} else if (opts & OPT_s) {
+		strchrnul(buf, '.')[0] = '\0';
+		puts(buf);
 	} else if (opts & OPT_F) {
 		/* Set the hostname */
 		do_sethostname(hostname_str, 1);
diff --git a/networking/httpd.c b/networking/httpd.c
index 1934bb2..621d9cd 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1104,18 +1104,31 @@
 
 	/* NB: breaking out of this loop jumps to log_and_exit() */
 	out_cnt = 0;
+	pfd[FROM_CGI].fd = fromCgi_rd;
+	pfd[FROM_CGI].events = POLLIN;
+	pfd[TO_CGI].fd = toCgi_wr;
 	while (1) {
-		memset(pfd, 0, sizeof(pfd));
+		/* Note: even pfd[0].events == 0 won't prevent
+		 * revents == POLLHUP|POLLERR reports from closed stdin.
+		 * Setting fd to -1 works: */
+		pfd[0].fd = -1;
+		pfd[0].events = POLLIN;
+		pfd[0].revents = 0; /* probably not needed, paranoia */
 
-		pfd[FROM_CGI].fd = fromCgi_rd;
-		pfd[FROM_CGI].events = POLLIN;
+		/* We always poll this fd, thus kernel always sets revents: */
+		/*pfd[FROM_CGI].events = POLLIN; - moved out of loop */
+		/*pfd[FROM_CGI].revents = 0; - not needed */
 
-		if (toCgi_wr) {
-			pfd[TO_CGI].fd = toCgi_wr;
-			if (hdr_cnt > 0) {
-				pfd[TO_CGI].events = POLLOUT;
-			} else if (post_len > 0) {
-				pfd[0].events = POLLIN;
+		/* gcc-4.8.0 still doesnt fill two shorts with one insn :( */
+		/* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47059 */
+		/* hopefully one day it will... */
+		pfd[TO_CGI].events = POLLOUT;
+		pfd[TO_CGI].revents = 0; /* needed! */
+
+		if (toCgi_wr && hdr_cnt <= 0) {
+			if (post_len > 0) {
+				/* Expect more POST data from network */
+				pfd[0].fd = 0;
 			} else {
 				/* post_len <= 0 && hdr_cnt <= 0:
 				 * no more POST data to CGI,
@@ -1127,7 +1140,7 @@
 		}
 
 		/* Now wait on the set of sockets */
-		count = safe_poll(pfd, toCgi_wr ? TO_CGI+1 : FROM_CGI+1, -1);
+		count = safe_poll(pfd, hdr_cnt > 0 ? TO_CGI+1 : FROM_CGI+1, -1);
 		if (count <= 0) {
 #if 0
 			if (safe_waitpid(pid, &status, WNOHANG) <= 0) {
@@ -1144,7 +1157,7 @@
 		}
 
 		if (pfd[TO_CGI].revents) {
-			/* hdr_cnt > 0 here due to the way pfd[TO_CGI].events set */
+			/* hdr_cnt > 0 here due to the way poll() called */
 			/* Have data from peer and can write to CGI */
 			count = safe_write(toCgi_wr, hdr_ptr, hdr_cnt);
 			/* Doesn't happen, we dont use nonblocking IO here
@@ -1709,8 +1722,8 @@
 			s = userinfo->pw;
 			break;
 		case PAM_ERROR_MSG:
-        	case PAM_TEXT_INFO:
-        		s = "";
+		case PAM_TEXT_INFO:
+			s = "";
 			break;
 		default:
 			free(response);
@@ -1964,7 +1977,9 @@
 		send_headers_and_exit(HTTP_BAD_REQUEST);
 
 	/* Determine type of request (GET/POST) */
-	urlp = strpbrk(iobuf, " \t");
+	// rfc2616: method and URI is separated by exactly one space
+	//urlp = strpbrk(iobuf, " \t"); - no, tab isn't allowed
+	urlp = strchr(iobuf, ' ');
 	if (urlp == NULL)
 		send_headers_and_exit(HTTP_BAD_REQUEST);
 	*urlp++ = '\0';
@@ -1982,7 +1997,8 @@
 	if (strcasecmp(iobuf, request_GET) != 0)
 		send_headers_and_exit(HTTP_NOT_IMPLEMENTED);
 #endif
-	urlp = skip_whitespace(urlp);
+	// rfc2616: method and URI is separated by exactly one space
+	//urlp = skip_whitespace(urlp); - should not be necessary
 	if (urlp[0] != '/')
 		send_headers_and_exit(HTTP_BAD_REQUEST);
 
diff --git a/networking/ifconfig.c b/networking/ifconfig.c
index 5a934fa..dcbb552 100644
--- a/networking/ifconfig.c
+++ b/networking/ifconfig.c
@@ -56,7 +56,7 @@
 #endif
 
 #if ENABLE_FEATURE_IFCONFIG_SLIP
-# include <net/if_slip.h>
+# include <linux/if_slip.h>
 #endif
 
 /* I don't know if this is needed for busybox or not.  Anyone? */
@@ -265,49 +265,6 @@
 	{ NULL,          0,             ARG_HOSTNAME,    (IFF_UP | IFF_RUNNING) }
 };
 
-#if ENABLE_FEATURE_IFCONFIG_HW
-/* Input an Ethernet address and convert to binary. */
-static int in_ether(const char *bufp, struct sockaddr *sap)
-{
-	char *ptr;
-	int i, j;
-	unsigned char val;
-	unsigned char c;
-
-	sap->sa_family = ARPHRD_ETHER;
-	ptr = (char *) sap->sa_data;
-
-	i = 0;
-	do {
-		j = val = 0;
-
-		/* We might get a semicolon here - not required. */
-		if (i && (*bufp == ':')) {
-			bufp++;
-		}
-
-		do {
-			c = *bufp;
-			if (((unsigned char)(c - '0')) <= 9) {
-				c -= '0';
-			} else if ((unsigned char)((c|0x20) - 'a') <= 5) {
-				c = (unsigned char)((c|0x20) - 'a') + 10;
-			} else if (j && (c == ':' || c == 0)) {
-				break;
-			} else {
-				return -1;
-			}
-			++bufp;
-			val <<= 4;
-			val += c;
-		} while (++j < 2);
-		*ptr++ = val;
-	} while (++i < ETH_ALEN);
-
-	return *bufp; /* Error if we don't end at end of string. */
-}
-#endif
-
 int ifconfig_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int ifconfig_main(int argc UNUSED_PARAM, char **argv)
 {
diff --git a/networking/ifplugd.c b/networking/ifplugd.c
index 86586f0..b578f4c 100644
--- a/networking/ifplugd.c
+++ b/networking/ifplugd.c
@@ -451,20 +451,24 @@
 static NOINLINE int check_existence_through_netlink(void)
 {
 	int iface_len;
-	char replybuf[1024];
+	/* Buffer was 1K, but on linux-3.9.9 it was reported to be too small.
+	 * netlink.h: "limit to 8K to avoid MSG_TRUNC when PAGE_SIZE is very large".
+	 * Note: on error returns (-1) we exit, no need to free replybuf.
+	 */
+	enum { BUF_SIZE = 8 * 1024 };
+	char *replybuf = xmalloc(BUF_SIZE);
 
 	iface_len = strlen(G.iface);
 	while (1) {
 		struct nlmsghdr *mhdr;
 		ssize_t bytes;
 
-		bytes = recv(netlink_fd, &replybuf, sizeof(replybuf), MSG_DONTWAIT);
+		bytes = recv(netlink_fd, replybuf, BUF_SIZE, MSG_DONTWAIT);
 		if (bytes < 0) {
 			if (errno == EAGAIN)
-				return G.iface_exists;
+				goto ret;
 			if (errno == EINTR)
 				continue;
-
 			bb_perror_msg("netlink: recv");
 			return -1;
 		}
@@ -507,6 +511,8 @@
 		}
 	}
 
+ ret:
+	free(replybuf);
 	return G.iface_exists;
 }
 
@@ -556,7 +562,8 @@
 
 	if (opts & FLAG_KILL) {
 		if (pid_from_pidfile > 0)
-			kill(pid_from_pidfile, SIGQUIT);
+			/* Upstream tool use SIGINT for -k */
+			kill(pid_from_pidfile, SIGINT);
 		return EXIT_SUCCESS;
 	}
 
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index 8180482..0f0857c 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -743,7 +743,7 @@
 	return NULL;
 }
 
-static struct interfaces_file_t *read_interfaces(const char *filename)
+static struct interfaces_file_t *read_interfaces(const char *filename, struct interfaces_file_t *defn)
 {
 	/* Let's try to be compatible.
 	 *
@@ -758,19 +758,25 @@
 	 * be ignored. Blank lines are ignored. Lines may be indented freely.
 	 * A "\" character at the very end of the line indicates the next line
 	 * should be treated as a continuation of the current one.
+	 *
+	 * Lines  beginning with "source" are used to include stanzas from
+	 * other files, so configuration can be split into many files.
+	 * The word "source" is followed by the path of file to be sourced.
 	 */
 #if ENABLE_FEATURE_IFUPDOWN_MAPPING
 	struct mapping_defn_t *currmap = NULL;
 #endif
 	struct interface_defn_t *currif = NULL;
-	struct interfaces_file_t *defn;
 	FILE *f;
 	char *buf;
 	char *first_word;
 	char *rest_of_line;
 	enum { NONE, IFACE, MAPPING } currently_processing = NONE;
 
-	defn = xzalloc(sizeof(*defn));
+	if (!defn)
+		defn = xzalloc(sizeof(*defn));
+
+	debug_noise("reading %s file:\n", filename);
 	f = xfopen_for_read(filename);
 
 	while ((buf = xmalloc_fgetline(f)) != NULL) {
@@ -881,6 +887,8 @@
 				debug_noise("\nauto %s\n", first_word);
 			}
 			currently_processing = NONE;
+		} else if (strcmp(first_word, "source") == 0) {
+			read_interfaces(next_word(&rest_of_line), defn);
 		} else {
 			switch (currently_processing) {
 			case IFACE:
@@ -934,6 +942,7 @@
 		bb_error_msg_and_die("%s: I/O error", filename);
 	}
 	fclose(f);
+	debug_noise("\ndone reading %s\n\n", filename);
 
 	return defn;
 }
@@ -1199,9 +1208,7 @@
 		if (!DO_ALL) bb_show_usage();
 	}
 
-	debug_noise("reading %s file:\n", interfaces);
-	defn = read_interfaces(interfaces);
-	debug_noise("\ndone reading %s\n\n", interfaces);
+	defn = read_interfaces(interfaces, NULL);
 
 	/* Create a list of interfaces to work on */
 	if (DO_ALL) {
diff --git a/networking/interface.c b/networking/interface.c
index 00c27b9..8e95d94 100644
--- a/networking/interface.c
+++ b/networking/interface.c
@@ -54,8 +54,8 @@
 #define _PATH_PROCNET_DEV               "/proc/net/dev"
 #define _PATH_PROCNET_IFINET6           "/proc/net/if_inet6"
 
-#ifdef HAVE_AFINET6
-#ifndef _UAPI_IPV6_H
+#if defined(HAVE_AFINET6) && !defined(BIONIC_L)
+# ifndef _LINUX_IN6_H
 /*
  * This is from linux/include/net/ipv6.h
  */
@@ -64,7 +64,7 @@
 	uint32_t ifr6_prefixlen;
 	unsigned int ifr6_ifindex;
 };
-#endif
+# endif
 #endif /* HAVE_AFINET6 */
 
 /* Defines for glibc2.0 users. */
@@ -722,68 +722,15 @@
 	return buff;
 }
 
-static int FAST_FUNC ether_input(const char *bufp, struct sockaddr *sap);
-
 static const struct hwtype ether_hwtype = {
 	.name  = "ether",
 	.title = "Ethernet",
 	.type  = ARPHRD_ETHER,
 	.alen  = ETH_ALEN,
 	.print = ether_print,
-	.input = ether_input
+	.input = in_ether
 };
 
-static unsigned hexchar2int(char c)
-{
-	if (isdigit(c))
-		return c - '0';
-	c &= ~0x20; /* a -> A */
-	if ((unsigned)(c - 'A') <= 5)
-		return c - ('A' - 10);
-	return ~0U;
-}
-
-/* Input an Ethernet address and convert to binary. */
-static int FAST_FUNC ether_input(const char *bufp, struct sockaddr *sap)
-{
-	unsigned char *ptr;
-	char c;
-	int i;
-	unsigned val;
-
-	sap->sa_family = ether_hwtype.type;
-	ptr = (unsigned char*) sap->sa_data;
-
-	i = 0;
-	while ((*bufp != '\0') && (i < ETH_ALEN)) {
-		val = hexchar2int(*bufp++) * 0x10;
-		if (val > 0xff) {
-			errno = EINVAL;
-			return -1;
-		}
-		c = *bufp;
-		if (c == ':' || c == 0)
-			val >>= 4;
-		else {
-			val |= hexchar2int(c);
-			if (val > 0xff) {
-				errno = EINVAL;
-				return -1;
-			}
-		}
-		if (c != 0)
-			bufp++;
-		*ptr++ = (unsigned char) val;
-		i++;
-
-		/* We might get a semicolon here - not required. */
-		if (*bufp == ':') {
-			bufp++;
-		}
-	}
-	return 0;
-}
-
 static const struct hwtype ppp_hwtype = {
 	.name =		"ppp",
 	.title =	"Point-to-Point Protocol",
@@ -927,7 +874,7 @@
 static void ife_print6(struct interface *ptr)
 {
 	FILE *f;
-	char addr6[40], devname[20];
+	char addr6[40], devname[21];
 	struct sockaddr_in6 sap;
 	int plen, scope, dad_status, if_idx;
 	char addr6p[8][5];
diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c
index da76bbe..1058b5a 100644
--- a/networking/libiproute/ipaddress.c
+++ b/networking/libiproute/ipaddress.c
@@ -627,10 +627,12 @@
 	req.ifa.ifa_family = preferred_family;
 
 	while (*argv) {
-		const smalluint arg = index_in_strings(option, *argv);
-		if (arg <= 1) { /* peer, remote */
+		unsigned arg = index_in_strings(option, *argv);
+		/* if search fails, "local" is assumed */
+		if ((int)arg >= 0)
 			NEXT_ARG();
 
+		if (arg <= 1) { /* peer, remote */
 			if (peer_len) {
 				duparg("peer", *argv);
 			}
@@ -643,7 +645,6 @@
 			req.ifa.ifa_prefixlen = peer.bitlen;
 		} else if (arg <= 3) { /* broadcast, brd */
 			inet_prefix addr;
-			NEXT_ARG();
 			if (brd_len) {
 				duparg("broadcast", *argv);
 			}
@@ -660,7 +661,6 @@
 			}
 		} else if (arg == 4) { /* anycast */
 			inet_prefix addr;
-			NEXT_ARG();
 			if (any_len) {
 				duparg("anycast", *argv);
 			}
@@ -672,22 +672,18 @@
 			any_len = addr.bytelen;
 		} else if (arg == 5) { /* scope */
 			uint32_t scope = 0;
-			NEXT_ARG();
 			if (rtnl_rtscope_a2n(&scope, *argv)) {
 				invarg(*argv, "scope");
 			}
 			req.ifa.ifa_scope = scope;
 			scoped = 1;
 		} else if (arg == 6) { /* dev */
-			NEXT_ARG();
 			d = *argv;
 		} else if (arg == 7) { /* label */
-			NEXT_ARG();
 			l = *argv;
 			addattr_l(&req.n, sizeof(req), IFA_LABEL, l, strlen(l) + 1);
 		} else {
-			if (arg == 8) /* local */
-				NEXT_ARG();
+			/* local (specified or assumed) */
 			if (local_len) {
 				duparg2("local", *argv);
 			}
@@ -724,7 +720,7 @@
 		}
 		brd = peer;
 		if (brd.bitlen <= 30) {
-			for (i=31; i>=brd.bitlen; i--) {
+			for (i = 31; i >= brd.bitlen; i--) {
 				if (brd_len == -1)
 					brd.data[0] |= htonl(1<<(31-i));
 				else
@@ -754,11 +750,11 @@
 {
 	static const char commands[] ALIGN1 =
 		"add\0""delete\0""list\0""show\0""lst\0""flush\0";
-	smalluint cmd = 2;
+	int cmd = 2;
 	if (*argv) {
 		cmd = index_in_substrings(commands, *argv);
-		if (cmd > 5)
-			bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
+		if (cmd < 0)
+			invarg(*argv, applet_name);
 		argv++;
 		if (cmd <= 1)
 			return ipaddr_modify((cmd == 0) ? RTM_NEWADDR : RTM_DELADDR, argv);
diff --git a/networking/libiproute/iplink.c b/networking/libiproute/iplink.c
index 8e9f1bd..1b414a2 100644
--- a/networking/libiproute/iplink.c
+++ b/networking/libiproute/iplink.c
@@ -1,21 +1,46 @@
 /* vi: set sw=4 ts=4: */
 /*
  * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
+ * 			Patrick McHardy <kaber@trash.net>
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 #include <net/if.h>
-#include <net/if_packet.h>
+/*#include <net/if_packet.h> - not needed? */
 #include <netpacket/packet.h>
 #include <netinet/if_ether.h>
 
+#include <linux/if_vlan.h>
 #include "ip_common.h"  /* #include "libbb.h" is inside */
 #include "rt_names.h"
 #include "utils.h"
 
+#undef  ETH_P_8021AD
+#define ETH_P_8021AD            0x88A8
+#undef  VLAN_FLAG_REORDER_HDR
+#define VLAN_FLAG_REORDER_HDR   0x1
+#undef  VLAN_FLAG_GVRP
+#define VLAN_FLAG_GVRP          0x2
+#undef  VLAN_FLAG_LOOSE_BINDING
+#define VLAN_FLAG_LOOSE_BINDING 0x4
+#undef  VLAN_FLAG_MVRP
+#define VLAN_FLAG_MVRP          0x8
+#undef  IFLA_VLAN_PROTOCOL
+#define IFLA_VLAN_PROTOCOL      5
+
 #ifndef IFLA_LINKINFO
 # define IFLA_LINKINFO 18
 # define IFLA_INFO_KIND 1
+# define IFLA_INFO_DATA 2
+#endif
+
+#ifndef IFLA_VLAN_MAX
+# define IFLA_VLAN_ID 1
+# define IFLA_VLAN_FLAGS 2
+struct ifla_vlan_flags {
+	uint32_t	flags;
+	uint32_t	mask;
+};
 #endif
 
 /* taken from linux/sockios.h */
@@ -277,12 +302,103 @@
 	return ipaddr_list_or_flush(argv, 0);
 }
 
+static void vlan_parse_opt(char **argv, struct nlmsghdr *n, unsigned int size)
+{
+	static const char keywords[] ALIGN1 =
+		"id\0"
+		"protocol\0"
+		"reorder_hdr\0"
+		"gvrp\0"
+		"mvrp\0"
+		"loose_binding\0"
+	;
+	static const char protocols[] ALIGN1 =
+		"802.1q\0"
+		"802.1ad\0"
+	;
+	static const char str_on_off[] ALIGN1 =
+		"on\0"
+		"off\0"
+	;
+	enum {
+		ARG_id = 0,
+		ARG_reorder_hdr,
+		ARG_gvrp,
+		ARG_mvrp,
+		ARG_loose_binding,
+		ARG_protocol,
+	};
+	enum {
+		PROTO_8021Q = 0,
+		PROTO_8021AD,
+	};
+	enum {
+		PARM_on = 0,
+		PARM_off
+	};
+	int arg;
+	uint16_t id, proto;
+	struct ifla_vlan_flags flags = { 0, 0 };
+
+	while (*argv) {
+		arg = index_in_substrings(keywords, *argv);
+		if (arg < 0)
+			invarg(*argv, "type vlan");
+
+		NEXT_ARG();
+		if (arg == ARG_id) {
+			id = get_u16(*argv, "id");
+			addattr_l(n, size, IFLA_VLAN_ID, &id, sizeof(id));
+		} else if (arg == ARG_protocol) {
+			arg = index_in_substrings(protocols, *argv);
+			if (arg == PROTO_8021Q)
+				proto = ETH_P_8021Q;
+			else if (arg == PROTO_8021AD)
+				proto = ETH_P_8021AD;
+			else
+				bb_error_msg_and_die("unknown VLAN encapsulation protocol '%s'",
+								     *argv);
+			addattr_l(n, size, IFLA_VLAN_PROTOCOL, &proto, sizeof(proto));
+		} else {
+			int param = index_in_strings(str_on_off, *argv);
+			if (param < 0)
+				die_must_be_on_off(nth_string(keywords, arg));
+
+			if (arg == ARG_reorder_hdr) {
+				flags.mask |= VLAN_FLAG_REORDER_HDR;
+				flags.flags &= ~VLAN_FLAG_REORDER_HDR;
+				if (param == PARM_on)
+					flags.flags |= VLAN_FLAG_REORDER_HDR;
+			} else if (arg == ARG_gvrp) {
+				flags.mask |= VLAN_FLAG_GVRP;
+				flags.flags &= ~VLAN_FLAG_GVRP;
+				if (param == PARM_on)
+					flags.flags |= VLAN_FLAG_GVRP;
+			} else if (arg == ARG_mvrp) {
+				flags.mask |= VLAN_FLAG_MVRP;
+				flags.flags &= ~VLAN_FLAG_MVRP;
+				if (param == PARM_on)
+					flags.flags |= VLAN_FLAG_MVRP;
+			} else { /*if (arg == ARG_loose_binding) */
+				flags.mask |= VLAN_FLAG_LOOSE_BINDING;
+				flags.flags &= ~VLAN_FLAG_LOOSE_BINDING;
+				if (param == PARM_on)
+					flags.flags |= VLAN_FLAG_LOOSE_BINDING;
+			}
+		}
+		argv++;
+	}
+
+	if (flags.mask)
+		addattr_l(n, size, IFLA_VLAN_FLAGS, &flags, sizeof(flags));
+}
+
 #ifndef NLMSG_TAIL
 #define NLMSG_TAIL(nmsg) \
-	((struct rtattr *) ((size_t)((void *) (nmsg)) + (size_t) NLMSG_ALIGN((nmsg)->nlmsg_len)))
+	((struct rtattr *) ((void *) ((nmsg) + NLMSG_ALIGN((nmsg)->nlmsg_len))))
 #endif
 /* Return value becomes exitcode. It's okay to not return at all */
-static int do_change(char **argv, const unsigned rtm)
+static int do_add_or_delete(char **argv, const unsigned rtm)
 {
 	static const char keywords[] ALIGN1 =
 		"link\0""name\0""type\0""dev\0";
@@ -312,15 +428,17 @@
 
 	while (*argv) {
 		arg = index_in_substrings(keywords, *argv);
+		if (arg == ARG_type) {
+			NEXT_ARG();
+			type_str = *argv++;
+			break;
+		}
 		if (arg == ARG_link) {
 			NEXT_ARG();
 			link_str = *argv;
 		} else if (arg == ARG_name) {
 			NEXT_ARG();
 			name_str = *argv;
-		} else if (arg == ARG_type) {
-			NEXT_ARG();
-			type_str = *argv;
 		} else {
 			if (arg == ARG_dev) {
 				if (dev_str)
@@ -339,7 +457,18 @@
 		addattr_l(&req.n, sizeof(req), IFLA_LINKINFO, NULL, 0);
 		addattr_l(&req.n, sizeof(req), IFLA_INFO_KIND, type_str,
 				strlen(type_str));
-		linkinfo->rta_len = (size_t) NLMSG_TAIL(&req.n) - (size_t) linkinfo;
+
+		if (*argv) {
+			struct rtattr *data = NLMSG_TAIL(&req.n);
+			addattr_l(&req.n, sizeof(req), IFLA_INFO_DATA, NULL, 0);
+
+			if (strcmp(type_str, "vlan") == 0)
+				vlan_parse_opt(argv, &req.n, sizeof(req));
+
+			data->rta_len = (NLMSG_TAIL(&req.n) - (data));
+		}
+
+		linkinfo->rta_len = (NLMSG_TAIL(&req.n) - (linkinfo));
 	}
 	if (rtm != RTM_NEWLINK) {
 		if (!dev_str)
@@ -370,13 +499,13 @@
 	static const char keywords[] ALIGN1 =
 		"add\0""delete\0""set\0""show\0""lst\0""list\0";
 	if (*argv) {
-		smalluint key = index_in_substrings(keywords, *argv);
-		if (key > 5) /* invalid argument */
-			bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
+		int key = index_in_substrings(keywords, *argv);
+		if (key < 0) /* invalid argument */
+			invarg(*argv, applet_name);
 		argv++;
 		if (key <= 1) /* add/delete */
-			return do_change(argv, key ? RTM_DELLINK : RTM_NEWLINK);
-		else if (key == 2) /* set */
+			return do_add_or_delete(argv, key ? RTM_DELLINK : RTM_NEWLINK);
+		if (key == 2) /* set */
 			return do_set(argv);
 	}
 	/* show, lst, list */
diff --git a/networking/libiproute/iprule.c b/networking/libiproute/iprule.c
index 241a6bf..8dbe6bd 100644
--- a/networking/libiproute/iprule.c
+++ b/networking/libiproute/iprule.c
@@ -215,7 +215,7 @@
 	while (*argv) {
 		key = index_in_substrings(keywords, *argv) + 1;
 		if (key == 0) /* no match found in keywords array, bail out. */
-			bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
+			invarg(*argv, applet_name);
 		if (key == ARG_from) {
 			inet_prefix dst;
 			NEXT_ARG();
@@ -308,9 +308,9 @@
 	static const char ip_rule_commands[] ALIGN1 =
 		"add\0""delete\0""list\0""show\0";
 	if (*argv) {
-		smalluint cmd = index_in_substrings(ip_rule_commands, *argv);
-		if (cmd > 3)
-			bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
+		int cmd = index_in_substrings(ip_rule_commands, *argv);
+		if (cmd < 0)
+			invarg(*argv, applet_name);
 		argv++;
 		if (cmd < 2)
 			return iprule_modify((cmd == 0) ? RTM_NEWRULE : RTM_DELRULE, argv);
diff --git a/networking/libiproute/iptunnel.c b/networking/libiproute/iptunnel.c
index 2b651b9..b54c3c5 100644
--- a/networking/libiproute/iptunnel.c
+++ b/networking/libiproute/iptunnel.c
@@ -561,9 +561,9 @@
 	enum { ARG_add = 0, ARG_change, ARG_del, ARG_show, ARG_list, ARG_lst };
 
 	if (*argv) {
-		smalluint key = index_in_substrings(keywords, *argv);
-		if (key > 5)
-			bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
+		int key = index_in_substrings(keywords, *argv);
+		if (key < 0)
+			invarg(*argv, applet_name);
 		argv++;
 		if (key == ARG_add)
 			return do_add(SIOCADDTUNNEL, argv);
diff --git a/networking/libiproute/libnetlink.c b/networking/libiproute/libnetlink.c
index c7533a4..7c80072 100644
--- a/networking/libiproute/libnetlink.c
+++ b/networking/libiproute/libnetlink.c
@@ -129,7 +129,7 @@
 		}
 
 		h = (struct nlmsghdr*)buf;
-		while (NLMSG_OK(h, status)) {
+		while (NLMSG_OK(h, (unsigned) status)) {
 			int err;
 
 			if (nladdr.nl_pid != 0 ||
diff --git a/networking/nameif.c b/networking/nameif.c
index 5d7e8f9..9a8846d 100644
--- a/networking/nameif.c
+++ b/networking/nameif.c
@@ -292,12 +292,11 @@
 			if (ch->mac && memcmp(ch->mac, ifr.ifr_hwaddr.sa_data, ETH_ALEN) != 0)
 				continue;
 			/* if we came here, all selectors have matched */
-			break;
+			goto found;
 		}
 		/* Nothing found for current interface */
-		if (!ch)
-			continue;
-
+		continue;
+ found:
 		if (strcmp(ifr.ifr_name, ch->ifname) != 0) {
 			strcpy(ifr.ifr_newname, ch->ifname);
 			ioctl_or_perror_and_die(ctl_sk, SIOCSIFNAME, &ifr,
@@ -313,10 +312,14 @@
 			ch->next->prev = ch->prev;
 		if (ENABLE_FEATURE_CLEAN_UP)
 			delete_eth_table(ch);
-	}
+	} /* while */
+
 	if (ENABLE_FEATURE_CLEAN_UP) {
-		for (ch = clist; ch; ch = ch->next)
+		ethtable_t *next;
+		for (ch = clist; ch; ch = next) {
+			next = ch->next;
 			delete_eth_table(ch);
+		}
 		config_close(parser);
 	};
 
diff --git a/networking/nc.c b/networking/nc.c
index 3ae73c4..6105db1 100644
--- a/networking/nc.c
+++ b/networking/nc.c
@@ -24,7 +24,7 @@
 //config:	  Allow netcat to act as a server.
 //config:
 //config:config NC_EXTRA
-//config:	bool "Netcat extensions (-eiw and filename)"
+//config:	bool "Netcat extensions (-eiw and -f FILE)"
 //config:	default y
 //config:	depends on NC
 //config:	help
@@ -40,7 +40,7 @@
 //config:	  This option makes nc closely follow original nc-1.10.
 //config:	  The code is about 2.5k bigger. It enables
 //config:	  -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
-//config:	  busybox-specific extensions: -f FILE and -ll.
+//config:	  busybox-specific extensions: -f FILE.
 
 #if ENABLE_NC_110_COMPAT
 # include "nc_bloaty.c"
@@ -60,17 +60,18 @@
 //usage:#define nc_full_usage "\n\n"
 //usage:       "Open a pipe to IP:PORT" IF_NC_EXTRA(" or FILE")
 //usage:	NC_OPTIONS_STR
-//usage:	IF_NC_EXTRA(
-//usage:     "\n	-e PROG	Run PROG after connect"
 //usage:	IF_NC_SERVER(
 //usage:     "\n	-l	Listen mode, for inbound connects"
 //usage:	IF_NC_EXTRA(
-//usage:     "\n		(use -l twice with -e for persistent server)")
+//usage:     "\n		(use -ll with -e for persistent server)"
+//usage:	)
 //usage:     "\n	-p PORT	Local port"
 //usage:	)
-//usage:     "\n	-w SEC	Timeout for connect"
+//usage:	IF_NC_EXTRA(
+//usage:     "\n	-w SEC	Connect timeout"
 //usage:     "\n	-i SEC	Delay interval for lines sent"
 //usage:     "\n	-f FILE	Use file (ala /dev/ttyS0) instead of network"
+//usage:     "\n	-e PROG	Run PROG after connect"
 //usage:	)
 //usage:
 //usage:#define nc_notes_usage ""
@@ -147,7 +148,7 @@
 						*p++ = argv[optind++];
 					}
 				)
-				/* optind points to argv[arvc] (NULL) now.
+				/* optind points to argv[argc] (NULL) now.
 				** FIXME: we assume that getopt will not count options
 				** possibly present on "-e PROG ARGS" and will not
 				** include them into final value of optind
@@ -226,10 +227,9 @@
 		/* child, or main thread if only one -l */
 		xmove_fd(cfd, 0);
 		xdup2(0, 1);
-		xdup2(0, 2);
+		/*xdup2(0, 2); - original nc 1.10 does this, we don't */
 		IF_NC_EXTRA(BB_EXECVP(execparam[0], execparam);)
-		/* Don't print stuff or it will go over the wire... */
-		_exit(127);
+		IF_NC_EXTRA(bb_perror_msg_and_die("can't execute '%s'", execparam[0]);)
 	}
 
 	/* Select loop copying stdin to cfd, and cfd to stdout */
@@ -261,7 +261,7 @@
 					if (nread < 1) {
 						/* Close outgoing half-connection so they get EOF,
 						 * but leave incoming alone so we can see response */
-						shutdown(cfd, 1);
+						shutdown(cfd, SHUT_WR);
 						FD_CLR(STDIN_FILENO, &readfds);
 					}
 					ofd = cfd;
diff --git a/networking/nc_bloaty.c b/networking/nc_bloaty.c
index 62a0251..b28d05f 100644
--- a/networking/nc_bloaty.c
+++ b/networking/nc_bloaty.c
@@ -48,6 +48,12 @@
  * - TCP connects from wrong ip/ports (if peer ip:port is specified
  *   on the command line, but accept() says that it came from different addr)
  *   are closed, but we don't exit - we continue to listen/accept.
+ * Since bbox 1.22:
+ * - nc exits when _both_ stdin and network are closed.
+ *   This makes these two commands:
+ *    echo "Yes" | nc 127.0.0.1 1234
+ *    echo "no" | nc -lp 1234
+ *   exchange their data _and exit_ instead of being stuck.
  */
 
 /* done in nc.c: #include "libbb.h" */
@@ -63,6 +69,12 @@
 //usage:       "	-e PROG	Run PROG after connect (must be last)"
 //usage:	IF_NC_SERVER(
 //usage:     "\n	-l	Listen mode, for inbound connects"
+//usage:     "\n	-lk	With -e, provides persistent server"
+/* -ll does the same as -lk, but its our extension, while -k is BSD'd,
+ * presumably more widely known. Therefore we advertise it, not -ll.
+ * I would like to drop -ll support, but our "small" nc supports it,
+ * and Rob uses it.
+ */
 //usage:	)
 //usage:     "\n	-p PORT	Local port"
 //usage:     "\n	-s ADDR	Local address"
@@ -128,8 +140,6 @@
 
 	jmp_buf jbuf;                /* timer crud */
 
-	fd_set ding1;                /* for select loop */
-	fd_set ding2;
 	char bigbuf_in[BIGSIZ];      /* data buffers */
 	char bigbuf_net[BIGSIZ];
 };
@@ -141,8 +151,6 @@
 #define themaddr   (G.themaddr  )
 #define remend     (G.remend    )
 #define jbuf       (G.jbuf      )
-#define ding1      (G.ding1     )
-#define ding2      (G.ding2     )
 #define bigbuf_in  (G.bigbuf_in )
 #define bigbuf_net (G.bigbuf_net)
 #define o_verbose  (G.o_verbose )
@@ -166,18 +174,14 @@
 	OPT_v = (1 << 4),
 	OPT_w = (1 << 5),
 	OPT_l = (1 << 6) * ENABLE_NC_SERVER,
-	OPT_i = (1 << (6+ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-	OPT_o = (1 << (7+ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-	OPT_z = (1 << (8+ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
+	OPT_k = (1 << 7) * ENABLE_NC_SERVER,
+	OPT_i = (1 << (6+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
+	OPT_o = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
+	OPT_z = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
 };
 
 #define o_nflag   (option_mask32 & OPT_n)
 #define o_udpmode (option_mask32 & OPT_u)
-#if ENABLE_NC_SERVER
-#define o_listen  (option_mask32 & OPT_l)
-#else
-#define o_listen  0
-#endif
 #if ENABLE_NC_EXTRA
 #define o_ofile   (option_mask32 & OPT_o)
 #define o_zero    (option_mask32 & OPT_z)
@@ -298,7 +302,7 @@
  incoming and returns an open connection *from* someplace.  If we were
  given host/port args, any connections from elsewhere are rejected.  This
  in conjunction with local-address binding should limit things nicely... */
-static void dolisten(void)
+static void dolisten(int is_persistent, char **proggie)
 {
 	int rr;
 
@@ -371,6 +375,7 @@
 			xconnect(netfd, &remend.u.sa, ouraddr->len);
 	} else {
 		/* TCP */
+ another:
 		arm(o_wait); /* wrap this in a timer, too; 0 = forever */
 		if (setjmp(jbuf) == 0) {
  again:
@@ -405,6 +410,19 @@
 			unarm();
 		} else
 			bb_error_msg_and_die("timeout");
+
+		if (is_persistent && proggie) {
+			/* -l -k -e PROG */
+			signal(SIGCHLD, SIG_IGN); /* no zombies please */
+			if (xvfork() != 0) {
+				/* parent: go back and accept more connections */
+				close(rr);
+				goto another;
+			}
+			/* child */
+			signal(SIGCHLD, SIG_DFL);
+		}
+
 		xmove_fd(rr, netfd); /* dump the old socket, here's our new one */
 		/* find out what address the connection was *to* on our end, in case we're
 		 doing a listen-on-any on a multihomed machine.  This allows one to
@@ -454,6 +472,9 @@
 		if (!o_nflag)
 			free(remhostname);
 	}
+
+	if (proggie)
+		doexec(proggie);
 }
 
 /* udptest:
@@ -571,26 +592,27 @@
 	unsigned rzleft;
 	unsigned rnleft;
 	unsigned netretry;              /* net-read retry counter */
-	unsigned wretry;                /* net-write sanity counter */
-	unsigned wfirst;                /* one-shot flag to skip first net read */
+	unsigned fds_open;
 
 	/* if you don't have all this FD_* macro hair in sys/types.h, you'll have to
 	 either find it or do your own bit-bashing: *ding1 |= (1 << fd), etc... */
-	FD_SET(netfd, &ding1);                /* global: the net is open */
+	fd_set ding1;                   /* for select loop */
+	fd_set ding2;
+	FD_ZERO(&ding1);
+	FD_SET(netfd, &ding1);
+	FD_SET(STDIN_FILENO, &ding1);
+	fds_open = 2;
+
 	netretry = 2;
-	wfirst = 0;
 	rzleft = rnleft = 0;
 	if (o_interval)
 		sleep(o_interval);                /* pause *before* sending stuff, too */
 
-	errno = 0;                        /* clear from sleep, close, whatever */
 	/* and now the big ol' select shoveling loop ... */
-	while (FD_ISSET(netfd, &ding1)) {        /* i.e. till the *net* closes! */
-		wretry = 8200;                        /* more than we'll ever hafta write */
-		if (wfirst) {                        /* any saved stdin buffer? */
-			wfirst = 0;                        /* clear flag for the duration */
-			goto shovel;                        /* and go handle it first */
-		}
+	/* nc 1.10 has "while (FD_ISSET(netfd)" here */
+	while (fds_open) {
+		unsigned wretry = 8200;               /* net-write sanity counter */
+
 		ding2 = ding1;                        /* FD_COPY ain't portable... */
 	/* some systems, notably linux, crap into their select timers on return, so
 	 we create a expendable copy and give *that* to select.  */
@@ -610,13 +632,14 @@
 	/* if we have a timeout AND stdin is closed AND we haven't heard anything
 	 from the net during that time, assume it's dead and close it too. */
 		if (rr == 0) {
-			if (!FD_ISSET(STDIN_FILENO, &ding1))
+			if (!FD_ISSET(STDIN_FILENO, &ding1)) {
 				netretry--;                        /* we actually try a coupla times. */
-			if (!netretry) {
-				if (o_verbose > 1)                /* normally we don't care */
-					fprintf(stderr, "net timeout\n");
-				close(netfd);
-				return 0;                        /* not an error! */
+				if (!netretry) {
+					if (o_verbose > 1)         /* normally we don't care */
+						fprintf(stderr, "net timeout\n");
+					/*close(netfd); - redundant, exit will do it */
+					return 0;                  /* not an error! */
+				}
 			}
 		} /* select timeout */
 	/* xxx: should we check the exception fds too?  The read fds seem to give
@@ -630,7 +653,8 @@
 					/* nc 1.10 doesn't do this */
 					bb_perror_msg("net read");
 				}
-				FD_CLR(netfd, &ding1);                /* net closed, we'll finish up... */
+				FD_CLR(netfd, &ding1);                /* net closed */
+				fds_open--;
 				rzleft = 0;                        /* can't write anymore: broken pipe */
 			} else {
 				rnleft = rr;
@@ -650,11 +674,12 @@
 	/* Considered making reads here smaller for UDP mode, but 8192-byte
 	 mobygrams are kinda fun and exercise the reassembler. */
 			if (rr <= 0) {                        /* at end, or fukt, or ... */
-				FD_CLR(STDIN_FILENO, &ding1);                /* disable and close stdin */
-				close(STDIN_FILENO);
-// Does it make sense to shutdown(net_fd, SHUT_WR)
-// to let other side know that we won't write anything anymore?
-// (and what about keeping compat if we do that?)
+				FD_CLR(STDIN_FILENO, &ding1); /* disable stdin */
+				/*close(STDIN_FILENO); - not really necessary */
+				/* Let peer know we have no more data */
+				/* nc 1.10 doesn't do this: */
+				shutdown(netfd, SHUT_WR);
+				fds_open--;
 			} else {
 				rzleft = rr;
 				zp = bigbuf_in;
@@ -665,24 +690,14 @@
 	 Geez, why does this look an awful lot like the big loop in "rsh"? ...
 	 not sure if the order of this matters, but write net -> stdout first. */
 
-	/* sanity check.  Works because they're both unsigned... */
-		if ((rzleft > 8200) || (rnleft > 8200)) {
-			holler_error("bogus buffers: %u, %u", rzleft, rnleft);
-			rzleft = rnleft = 0;
-		}
-	/* net write retries sometimes happen on UDP connections */
-		if (!wretry) {                        /* is something hung? */
-			holler_error("too many output retries");
-			return 1;
-		}
 		if (rnleft) {
 			rr = write(STDOUT_FILENO, np, rnleft);
 			if (rr > 0) {
 				if (o_ofile) /* log the stdout */
 					oprint('<', (unsigned char *)np, rr);
-				np += rr;                        /* fix up ptrs and whatnot */
-				rnleft -= rr;                        /* will get sanity-checked above */
-				wrote_out += rr;                /* global count */
+				np += rr;
+				rnleft -= rr;
+				wrote_out += rr; /* global count */
 			}
 Debug("wrote %d to stdout, errno %d", rr, errno);
 		} /* rnleft */
@@ -697,20 +712,24 @@
 					oprint('>', (unsigned char *)zp, rr);
 				zp += rr;
 				rzleft -= rr;
-				wrote_net += rr;                /* global count */
+				wrote_net += rr; /* global count */
 			}
 Debug("wrote %d to net, errno %d", rr, errno);
 		} /* rzleft */
 		if (o_interval) {                        /* cycle between slow lines, or ... */
 			sleep(o_interval);
-			errno = 0;                        /* clear from sleep */
 			continue;                        /* ...with hairy select loop... */
 		}
-		if ((rzleft) || (rnleft)) {                /* shovel that shit till they ain't */
+		if (rzleft || rnleft) {                  /* shovel that shit till they ain't */
 			wretry--;                        /* none left, and get another load */
+	/* net write retries sometimes happen on UDP connections */
+			if (!wretry) {                   /* is something hung? */
+				holler_error("too many output retries");
+				return 1;
+			}
 			goto shovel;
 		}
-	} /* while ding1:netfd is open */
+	} /* while (fds_open) */
 
 	/* XXX: maybe want a more graceful shutdown() here, or screw around with
 	 linger times??  I suspect that I don't need to since I'm always doing
@@ -730,6 +749,7 @@
 	char *themdotted = themdotted; /* for compiler */
 	char **proggie;
 	int x;
+	unsigned cnt_l = 0;
 	unsigned o_lport = 0;
 
 	INIT_G();
@@ -760,7 +780,7 @@
 		if (proggie[0][0] == '-') {
 			char *optpos = *proggie + 1;
 			/* Skip all valid opts w/o params */
-			optpos = optpos + strspn(optpos, "nuv"IF_NC_SERVER("l")IF_NC_EXTRA("z"));
+			optpos = optpos + strspn(optpos, "nuv"IF_NC_SERVER("lk")IF_NC_EXTRA("z"));
 			if (*optpos == 'e' && !optpos[1]) {
 				*optpos = '\0';
 				proggie++;
@@ -774,17 +794,21 @@
  e_found:
 
 	// -g -G -t -r deleted, unimplemented -a deleted too
-	opt_complementary = "?2:vv:w+"; /* max 2 params; -v is a counter; -w N */
-	getopt32(argv, "np:s:uvw:" IF_NC_SERVER("l")
+	opt_complementary = "?2:vv:ll:w+"; /* max 2 params; -v and -l are counters; -w N */
+	getopt32(argv, "np:s:uvw:" IF_NC_SERVER("lk")
 			IF_NC_EXTRA("i:o:z"),
 			&str_p, &str_s, &o_wait
-			IF_NC_EXTRA(, &str_i, &str_o), &o_verbose);
+			IF_NC_EXTRA(, &str_i, &str_o), &o_verbose IF_NC_SERVER(, &cnt_l));
 	argv += optind;
 #if ENABLE_NC_EXTRA
 	if (option_mask32 & OPT_i) /* line-interval time */
 		o_interval = xatou_range(str_i, 1, 0xffff);
 #endif
+#if ENABLE_NC_SERVER
 	//if (option_mask32 & OPT_l) /* listen mode */
+	if (option_mask32 & OPT_k) /* persistent server mode */
+		cnt_l = 2;
+#endif
 	//if (option_mask32 & OPT_n) /* numeric-only, no DNS lookups */
 	//if (option_mask32 & OPT_o) /* hexdump log */
 	if (option_mask32 & OPT_p) { /* local source port */
@@ -833,7 +857,7 @@
 	if (o_udpmode)
 		socket_want_pktinfo(netfd);
 	if (!ENABLE_FEATURE_UNIX_LOCAL
-	 || o_listen
+	 || cnt_l != 0 /* listen */
 	 || ouraddr->u.sa.sa_family != AF_UNIX
 	) {
 		xbind(netfd, &ouraddr->u.sa, ouraddr->len);
@@ -852,9 +876,8 @@
 	}
 #endif
 
-	FD_SET(STDIN_FILENO, &ding1);                        /* stdin *is* initially open */
 	if (proggie) {
-		close(0); /* won't need stdin */
+		close(STDIN_FILENO); /* won't need stdin */
 		option_mask32 &= ~OPT_o; /* -o with -e is meaningless! */
 	}
 #if ENABLE_NC_EXTRA
@@ -862,11 +885,9 @@
 		xmove_fd(xopen(str_o, O_WRONLY|O_CREAT|O_TRUNC), ofd);
 #endif
 
-	if (o_listen) {
-		dolisten();
+	if (cnt_l != 0) {
+		dolisten((cnt_l - 1), proggie);
 		/* dolisten does its own connect reporting */
-		if (proggie) /* -e given? */
-			doexec(proggie);
 		x = readwrite(); /* it even works with UDP! */
 	} else {
 		/* Outbound connects.  Now we're more picky about args... */
diff --git a/networking/netstat.c b/networking/netstat.c
index c0c6ba5..f80b845 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -125,10 +125,10 @@
  */
 #define ADDR_WIDE                51  /* INET6_ADDRSTRLEN + 5 for the port number */
 #if ENABLE_FEATURE_NETSTAT_WIDE
-# define FMT_NET_CONN_DATA       "%s   %6ld %6ld %-*s %-*s %-12s"
+# define FMT_NET_CONN_DATA       "%s   %6lu %6lu %-*s %-*s %-12s"
 # define FMT_NET_CONN_HEADER     "\nProto Recv-Q Send-Q %-*s %-*s State       %s\n"
 #else
-# define FMT_NET_CONN_DATA       "%s   %6ld %6ld %-23s %-23s %-12s"
+# define FMT_NET_CONN_DATA       "%s   %6lu %6lu %-23s %-23s %-12s"
 # define FMT_NET_CONN_HEADER     "\nProto Recv-Q Send-Q %-23s %-23s State       %s\n"
 #endif
 
@@ -403,7 +403,7 @@
 			"%*d: %32[0-9A-Fa-f]:%X "
 			"%32[0-9A-Fa-f]:%X %X "
 			"%lX:%lX %*X:%*X "
-			"%*X %d %*d %ld ",
+			"%*X %d %*d %lu ",
 			local_addr, &param->local_port,
 			rem_addr, &param->rem_port, &param->state,
 			&param->txq, &param->rxq,
@@ -611,7 +611,7 @@
 		strcat(ss_flags, "N ");
 	strcat(ss_flags, "]");
 
-	printf("%-5s %-6ld %-11s %-10s %-13s %6lu ",
+	printf("%-5s %-6lu %-11s %-10s %-13s %6lu ",
 		ss_proto, refcnt, ss_flags, ss_type, ss_state, inode
 		);
 
diff --git a/networking/nslookup.c b/networking/nslookup.c
index 2c57237..202356b 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -28,18 +28,31 @@
 #include <resolv.h>
 #include "libbb.h"
 
-#ifdef __BIONIC__
+#ifdef ANDROID
 # include <netinet/in.h>
-# ifdef ENABLE_FEATURE_IPV6
+# if ENABLE_FEATURE_IPV6
 #  include <netinet/in6.h>
 # endif
-# include <arpa/nameser.h>
-# include <resolv_private.h>
-# include <resolv.h>
-# undef _res
-# define _res (*__res_get_state())
+# define ANDROID_CHANGES
+# ifdef BIONIC_L
+#  include <arpa/nameser.h>
+#  include <dns/include/resolv_private.h>
+#  include <dns/resolv/res_private.h>
+# else
+#  include <arpa_nameser.h>
+#  include <private/resolv_private.h>
+#  include <netbsd/resolv/res_private.h>
+# endif
+
+static struct __res_state res_st;
+struct __res_state * __res_state(void)
+{
+	return &res_st;
+}
 #endif
 
+#define EXT(res) ((&res)->_u._ext)
+
 /*
  * I'm only implementing non-interactive mode;
  * I totally forgot nslookup even had an interactive mode.
@@ -129,13 +142,19 @@
 static void server_print(void)
 {
 	char *server;
-	struct sockaddr *sa=NULL;
+	struct sockaddr *sa = NULL;
 
-#if ENABLE_FEATURE_IPV6 && !defined(__BIONIC__)
-	sa = (struct sockaddr*)_res._u._ext.nsaddrs[0];
+#if ENABLE_FEATURE_IPV6
+# ifdef ANDROID
+	if (EXT(_res).ext)
+		sa = (struct sockaddr*) &EXT(_res).ext->nsaddrs[0];
+# else
+    sa = (struct sockaddr*)_res._u._ext.nsaddrs[0];
+# endif
+
 	if (!sa)
 #endif
-		//sa = (struct sockaddr*)&_res.nsaddr_list[0];
+		sa = (struct sockaddr*) &_res.nsaddr_list[0];
 	server = xmalloc_sockaddr2dotted_noport(sa);
 
 	print_host(server, "Server:");
@@ -150,15 +169,19 @@
 {
 	len_and_sockaddr *lsa;
 
-	/* NB: this works even with, say, "[::1]:5353"! :) */
+	if (!server)
+		return;
+
+	/* NB: this works even with, say, "[::1]:53"! :) */
 	lsa = xhost2sockaddr(server, 53);
 
 	if (lsa->u.sa.sa_family == AF_INET) {
-		//_res.nscount = 1;
+		_res.nscount = 1;
 		/* struct copy */
-		//_res.nsaddr_list[0] = lsa->u.sin;
+		_res.nsaddr_list[0] = lsa->u.sin;
 	}
-#if ENABLE_FEATURE_IPV6 && !defined(__BIONIC__)
+
+#if ENABLE_FEATURE_IPV6
 	/* Hoped libc can cope with IPv4 address there too.
 	 * No such luck, glibc 2.4 segfaults even with IPv6,
 	 * maybe I misunderstand how to make glibc use IPv6 addr?
@@ -167,10 +190,18 @@
 		// glibc neither SEGVs nor sends any dgrams with this
 		// (strace shows no socket ops):
 		//_res.nscount = 0;
-		_res._u._ext.nscount = 1;
+	#ifdef ANDROID
+		if (EXT(_res).ext) {
+			EXT(_res).nscount = 1;
+			memcpy(&EXT(_res).ext->nsaddrs[0].sin6, &lsa->u.sin6,
+				sizeof(struct sockaddr_in6));
+		}
+	#else
 		/* store a pointer to part of malloc'ed lsa */
+		_res._u._ext.nscount = 1;
 		_res._u._ext.nsaddrs[0] = &lsa->u.sin6;
 		/* must not free(lsa)! */
+	#endif
 	}
 #endif
 }
@@ -189,13 +220,26 @@
 	/* initialize DNS structure _res used in printing the default
 	 * name server and in the explicit name server option feature. */
 	res_init();
+
+#ifdef ANDROID
+	res_ninit(&_res);
+#endif
+
 	/* rfc2133 says this enables IPv6 lookups */
 	/* (but it also says "may be enabled in /etc/resolv.conf") */
 	/*_res.options |= RES_USE_INET6;*/
 
-	if (argv[2])
-		set_default_dns(argv[2]);
+	set_default_dns(argv[2]);
 
 	server_print();
+
+	/* getaddrinfo and friends are free to request a resolver
+	 * reinitialization. Just in case, set_default_dns() again
+	 * after getaddrinfo (in server_print). This reportedly helps
+	 * with bug 675 "nslookup does not properly use second argument"
+	 * at least on Debian Wheezy and Openwrt AA (eglibc based).
+	 */
+	set_default_dns(argv[2]);
+
 	return print_host(argv[1], "Name:");
 }
diff --git a/networking/ntpd.c b/networking/ntpd.c
index 447a464..1c1c38f 100644
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -63,10 +63,10 @@
 
 
 /* Verbosity control (max level of -dddd options accepted).
- * max 5 is very talkative (and bloated). 2 is non-bloated,
+ * max 6 is very talkative (and bloated). 3 is non-bloated,
  * production level setting.
  */
-#define MAX_VERBOSE     2
+#define MAX_VERBOSE     3
 
 
 /* High-level description of the algorithm:
@@ -96,11 +96,24 @@
  * was hibernated, someone set totally wrong date, etc),
  * then the time is stepped, all datapoints are discarded,
  * and we go back to steady state.
+ *
+ * Made some changes to speed up re-syncing after our clock goes bad
+ * (tested with suspending my laptop):
+ * - if largish offset (>= STEP_THRESHOLD * 8 == 1 sec) is seen
+ *   from a peer, schedule next query for this peer soon
+ *   without drastically lowering poll interval for everybody.
+ *   This makes us collect enough data for step much faster:
+ *   e.g. at poll = 10 (1024 secs), step was done within 5 minutes
+ *   after first reply which indicated that our clock is 14 seconds off.
+ * - on step, do not discard d_dispersion data of the existing datapoints,
+ *   do not clear reachable_bits. This prevents discarding first ~8
+ *   datapoints after the step.
  */
 
-#define RETRY_INTERVAL  5       /* on error, retry in N secs */
+#define RETRY_INTERVAL     5    /* on error, retry in N secs */
 #define RESPONSE_INTERVAL 15    /* wait for reply up to N secs */
-#define INITIAL_SAMPLES 4       /* how many samples do we want for init */
+#define INITIAL_SAMPLES    4    /* how many samples do we want for init */
+#define BAD_DELAY_GROWTH   4    /* drop packet if its delay grew by more than this */
 
 /* Clock discipline parameters and constants */
 
@@ -114,6 +127,10 @@
 #define FREQ_TOLERANCE  0.000015 /* frequency tolerance (15 PPM) */
 #define BURSTPOLL       0       /* initial poll */
 #define MINPOLL         5       /* minimum poll interval. std ntpd uses 6 (6: 64 sec) */
+/* If we got largish offset from a peer, cap next query interval
+ * for this peer by this many seconds:
+ */
+#define BIGOFF_INTERVAL (1 << 6)
 /* If offset > discipline_jitter * POLLADJ_GATE, and poll interval is >= 2^BIGPOLL,
  * then it is decreased _at once_. (If < 2^BIGPOLL, it will be decreased _eventually_).
  */
@@ -233,8 +250,8 @@
 	uint8_t          lastpkt_status;
 	uint8_t          lastpkt_stratum;
 	uint8_t          reachable_bits;
-        /* when to send new query (if p_fd == -1)
-         * or when receive times out (if p_fd >= 0): */
+	/* when to send new query (if p_fd == -1)
+	 * or when receive times out (if p_fd >= 0): */
 	double           next_action_time;
 	double           p_xmttime;
 	double           lastpkt_recv_time;
@@ -339,7 +356,7 @@
 
 #define STATE_NSET      0       /* initial state, "nothing is set" */
 //#define STATE_FSET    1       /* frequency set from file */
-#define STATE_SPIK      2       /* spike detected */
+//#define STATE_SPIK    2       /* spike detected */
 //#define STATE_FREQ    3       /* initial frequency */
 #define STATE_SYNC      4       /* clock synchronized (normal operation) */
 	uint8_t  discipline_state;      // doc calls it c.state
@@ -372,6 +389,7 @@
 #define VERB3 if (MAX_VERBOSE >= 3 && G.verbose >= 3)
 #define VERB4 if (MAX_VERBOSE >= 4 && G.verbose >= 4)
 #define VERB5 if (MAX_VERBOSE >= 5 && G.verbose >= 5)
+#define VERB6 if (MAX_VERBOSE >= 6 && G.verbose >= 6)
 
 
 static double LOG2D(int a)
@@ -573,7 +591,7 @@
 	got_newest = 0;
 	sum = 0;
 	for (i = 0; i < NUM_DATAPOINTS; i++) {
-		VERB4 {
+		VERB5 {
 			bb_error_msg("datapoint[%d]: off:%f disp:%f(%f) age:%f%s",
 				i,
 				fdp[idx].d_offset,
@@ -670,7 +688,7 @@
 	sum = SQRT(sum / NUM_DATAPOINTS);
 	p->filter_jitter = sum > G_precision_sec ? sum : G_precision_sec;
 
-	VERB3 bb_error_msg("filter offset:%+f disp:%f jitter:%f",
+	VERB4 bb_error_msg("filter offset:%+f disp:%f jitter:%f",
 			p->filter_offset,
 			p->filter_dispersion,
 			p->filter_jitter);
@@ -682,6 +700,18 @@
 	int i;
 	bool small_ofs = fabs(offset) < 16 * STEP_THRESHOLD;
 
+	/* Used to set p->filter_datapoint[i].d_dispersion = MAXDISP
+	 * and clear reachable bits, but this proved to be too agressive:
+	 * after step (tested with suspinding laptop for ~30 secs),
+	 * this caused all previous data to be considered invalid,
+	 * making us needing to collect full ~8 datapoins per peer
+	 * after step in order to start trusting them.
+	 * In turn, this was making poll interval decrease even after
+	 * step was done. (Poll interval decreases already before step
+	 * in this scenario, because we see large offsets and end up with
+	 * no good peer to select).
+	 */
+
 	for (i = 0; i < NUM_DATAPOINTS; i++) {
 		if (small_ofs) {
 			p->filter_datapoint[i].d_recv_time += offset;
@@ -695,17 +725,17 @@
 		} else {
 			p->filter_datapoint[i].d_recv_time  = G.cur_time;
 			p->filter_datapoint[i].d_offset     = 0;
-			p->filter_datapoint[i].d_dispersion = MAXDISP;
+			/*p->filter_datapoint[i].d_dispersion = MAXDISP;*/
 		}
 	}
 	if (small_ofs) {
 		p->lastpkt_recv_time += offset;
 	} else {
-		p->reachable_bits = 0;
+		/*p->reachable_bits = 0;*/
 		p->lastpkt_recv_time = G.cur_time;
 	}
 	filter_datapoints(p); /* recalc p->filter_xxx */
-	VERB5 bb_error_msg("%s->lastpkt_recv_time=%f", p->p_dotted, p->lastpkt_recv_time);
+	VERB6 bb_error_msg("%s->lastpkt_recv_time=%f", p->p_dotted, p->lastpkt_recv_time);
 }
 
 static void
@@ -810,22 +840,34 @@
 	p->p_xmt_msg.m_xmttime.fractionl = random();
 	p->p_xmttime = gettime1900d();
 
+	/* Were doing it only if sendto worked, but
+	 * loss of sync detection needs reachable_bits updated
+	 * even if sending fails *locally*:
+	 * "network is unreachable" because cable was pulled?
+	 * We still need to declare "unsync" if this condition persists.
+	 */
+	p->reachable_bits <<= 1;
+
 	if (do_sendto(p->p_fd, /*from:*/ NULL, /*to:*/ &p->p_lsa->u.sa, /*addrlen:*/ p->p_lsa->len,
 			&p->p_xmt_msg, NTP_MSGSIZE_NOAUTH) == -1
 	) {
 		close(p->p_fd);
 		p->p_fd = -1;
+		/*
+		 * We know that we sent nothing.
+		 * We can retry *soon* without fearing
+		 * that we are flooding the peer.
+		 */
 		set_next(p, RETRY_INTERVAL);
 		return;
 	}
 
-	p->reachable_bits <<= 1;
 	set_next(p, RESPONSE_INTERVAL);
 }
 
 
 /* Note that there is no provision to prevent several run_scripts
- * to be done in quick succession. In fact, it happens rather often
+ * to be started in quick succession. In fact, it happens rather often
  * if initial syncronization results in a step.
  * You will see "step" and then "stratum" script runs, sometimes
  * as close as only 0.002 seconds apart.
@@ -836,6 +878,8 @@
 	char *argv[3];
 	char *env1, *env2, *env3, *env4;
 
+	G.last_script_run = G.cur_time;
+
 	if (!G.script_name)
 		return;
 
@@ -872,8 +916,6 @@
 	free(env2);
 	free(env3);
 	free(env4);
-
-	G.last_script_run = G.cur_time;
 }
 
 static NOINLINE void
@@ -893,11 +935,11 @@
 
 	VERB2 {
 		tval = tvc.tv_sec;
-		strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(&tval));
+		strftime_YYYYMMDDHHMMSS(buf, sizeof(buf), &tval);
 		bb_error_msg("current time is %s.%06u", buf, (unsigned)tvc.tv_usec);
 	}
 	tval = tvn.tv_sec;
-	strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(&tval));
+	strftime_YYYYMMDDHHMMSS(buf, sizeof(buf), &tval);
 	bb_error_msg("setting time to %s.%06u (offset %+fs)", buf, (unsigned)tvn.tv_usec, offset);
 
 	/* Correct various fields which contain time-relative values: */
@@ -965,20 +1007,20 @@
 {
 	if ((p->reachable_bits & (p->reachable_bits-1)) == 0) {
 		/* One or zero bits in reachable_bits */
-		VERB3 bb_error_msg("peer %s unfit for selection: unreachable", p->p_dotted);
+		VERB4 bb_error_msg("peer %s unfit for selection: unreachable", p->p_dotted);
 		return 0;
 	}
 #if 0 /* we filter out such packets earlier */
 	if ((p->lastpkt_status & LI_ALARM) == LI_ALARM
 	 || p->lastpkt_stratum >= MAXSTRAT
 	) {
-		VERB3 bb_error_msg("peer %s unfit for selection: bad status/stratum", p->p_dotted);
+		VERB4 bb_error_msg("peer %s unfit for selection: bad status/stratum", p->p_dotted);
 		return 0;
 	}
 #endif
 	/* rd is root_distance(p) */
 	if (rd > MAXDIST + FREQ_TOLERANCE * (1 << G.poll_exp)) {
-		VERB3 bb_error_msg("peer %s unfit for selection: root distance too high", p->p_dotted);
+		VERB4 bb_error_msg("peer %s unfit for selection: root distance too high", p->p_dotted);
 		return 0;
 	}
 //TODO
@@ -1018,7 +1060,7 @@
 			continue;
 		}
 
-		VERB4 bb_error_msg("interval: [%f %f %f] %s",
+		VERB5 bb_error_msg("interval: [%f %f %f] %s",
 				offset - rd,
 				offset,
 				offset + rd,
@@ -1043,7 +1085,7 @@
 	}
 	num_candidates = num_points / 3;
 	if (num_candidates == 0) {
-		VERB3 bb_error_msg("no valid datapoints, no peer selected");
+		VERB3 bb_error_msg("no valid datapoints%s", ", no peer selected");
 		return NULL;
 	}
 //TODO: sorting does not seem to be done in reference code
@@ -1101,12 +1143,13 @@
 			break;
 		num_falsetickers++;
 		if (num_falsetickers * 2 >= num_candidates) {
-			VERB3 bb_error_msg("too many falsetickers:%d (candidates:%d), no peer selected",
-					num_falsetickers, num_candidates);
+			VERB3 bb_error_msg("falsetickers:%d, candidates:%d%s",
+					num_falsetickers, num_candidates,
+					", no peer selected");
 			return NULL;
 		}
 	}
-	VERB3 bb_error_msg("selected interval: [%f, %f]; candidates:%d falsetickers:%d",
+	VERB4 bb_error_msg("selected interval: [%f, %f]; candidates:%d falsetickers:%d",
 			low, high, num_candidates, num_falsetickers);
 
 	/* Clustering */
@@ -1124,7 +1167,7 @@
 		survivor[num_survivors].p = p;
 		/* x.opt_rd == root_distance(p); */
 		survivor[num_survivors].metric = MAXDIST * p->lastpkt_stratum + point[i].opt_rd;
-		VERB4 bb_error_msg("survivor[%d] metric:%f peer:%s",
+		VERB5 bb_error_msg("survivor[%d] metric:%f peer:%s",
 			num_survivors, survivor[num_survivors].metric, p->p_dotted);
 		num_survivors++;
 	}
@@ -1134,8 +1177,9 @@
 	 * is acceptable.
 	 */
 	if (num_survivors < MIN_SELECTED) {
-		VERB3 bb_error_msg("num_survivors %d < %d, no peer selected",
-				num_survivors, MIN_SELECTED);
+		VERB3 bb_error_msg("survivors:%d%s",
+				num_survivors,
+				", no peer selected");
 		return NULL;
 	}
 
@@ -1155,7 +1199,7 @@
 		double min_jitter = min_jitter;
 
 		if (num_survivors <= MIN_CLUSTERED) {
-			VERB3 bb_error_msg("num_survivors %d <= %d, not discarding more",
+			VERB4 bb_error_msg("num_survivors %d <= %d, not discarding more",
 					num_survivors, MIN_CLUSTERED);
 			break;
 		}
@@ -1181,11 +1225,11 @@
 				max_selection_jitter = selection_jitter_sq;
 				max_idx = i;
 			}
-			VERB5 bb_error_msg("survivor %d selection_jitter^2:%f",
+			VERB6 bb_error_msg("survivor %d selection_jitter^2:%f",
 					i, selection_jitter_sq);
 		}
 		max_selection_jitter = SQRT(max_selection_jitter / num_survivors);
-		VERB4 bb_error_msg("max_selection_jitter (at %d):%f min_jitter:%f",
+		VERB5 bb_error_msg("max_selection_jitter (at %d):%f min_jitter:%f",
 				max_idx, max_selection_jitter, min_jitter);
 
 		/* If the maximum selection jitter is less than the
@@ -1194,7 +1238,7 @@
 		 * as well stop.
 		 */
 		if (max_selection_jitter < min_jitter) {
-			VERB3 bb_error_msg("max_selection_jitter:%f < min_jitter:%f, num_survivors:%d, not discarding more",
+			VERB4 bb_error_msg("max_selection_jitter:%f < min_jitter:%f, num_survivors:%d, not discarding more",
 					max_selection_jitter, min_jitter, num_survivors);
 			break;
 		}
@@ -1202,7 +1246,7 @@
 		/* Delete survivor[max_idx] from the list
 		 * and go around again.
 		 */
-		VERB5 bb_error_msg("dropping survivor %d", max_idx);
+		VERB6 bb_error_msg("dropping survivor %d", max_idx);
 		num_survivors--;
 		while (max_idx < num_survivors) {
 			survivor[max_idx] = survivor[max_idx + 1];
@@ -1244,7 +1288,7 @@
 		/* Starting from 1 is ok here */
 		for (i = 1; i < num_survivors; i++) {
 			if (G.last_update_peer == survivor[i].p) {
-				VERB4 bb_error_msg("keeping old synced peer");
+				VERB5 bb_error_msg("keeping old synced peer");
 				p = G.last_update_peer;
 				goto keep_old;
 			}
@@ -1252,7 +1296,7 @@
 	}
 	G.last_update_peer = p;
  keep_old:
-	VERB3 bb_error_msg("selected peer %s filter_offset:%+f age:%f",
+	VERB4 bb_error_msg("selected peer %s filter_offset:%+f age:%f",
 			p->p_dotted,
 			p->filter_offset,
 			G.cur_time - p->lastpkt_recv_time
@@ -1271,7 +1315,7 @@
 	 * of the last clock filter sample, which must be earlier than
 	 * the current time.
 	 */
-	VERB3 bb_error_msg("disc_state=%d last update offset=%f recv_time=%f",
+	VERB4 bb_error_msg("disc_state=%d last update offset=%f recv_time=%f",
 			disc_state, offset, recv_time);
 	G.discipline_state = disc_state;
 	G.last_update_offset = offset;
@@ -1309,8 +1353,8 @@
 	 * an old sample or the same sample twice.
 	 */
 	if (recv_time <= G.last_update_recv_time) {
-		VERB3 bb_error_msg("same or older datapoint: %f >= %f, not using it",
-				G.last_update_recv_time, recv_time);
+		VERB3 bb_error_msg("update from %s: same or older datapoint, not using it",
+			p->p_dotted);
 		return 0; /* "leave poll interval as is" */
 	}
 
@@ -1326,7 +1370,7 @@
 	if (G.discipline_state == STATE_FREQ) {
 		/* Ignore updates until the stepout threshold */
 		if (since_last_update < WATCH_THRESHOLD) {
-			VERB3 bb_error_msg("measuring drift, datapoint ignored, %f sec remains",
+			VERB4 bb_error_msg("measuring drift, datapoint ignored, %f sec remains",
 					WATCH_THRESHOLD - since_last_update);
 			return 0; /* "leave poll interval as is" */
 		}
@@ -1340,10 +1384,21 @@
 	 * offset exceeds the step threshold and when it does not.
 	 */
 	if (abs_offset > STEP_THRESHOLD) {
+#if 0
+		double remains;
+
+// This "spike state" seems to be useless, peer selection already drops
+// occassional "bad" datapoints. If we are here, there were _many_
+// large offsets. When a few first large offsets are seen,
+// we end up in "no valid datapoints, no peer selected" state.
+// Only when enough of them are seen (which means it's not a fluke),
+// we end up here. Looks like _our_ clock is off.
 		switch (G.discipline_state) {
 		case STATE_SYNC:
 			/* The first outlyer: ignore it, switch to SPIK state */
-			VERB3 bb_error_msg("offset:%+f - spike detected", offset);
+			VERB3 bb_error_msg("update from %s: offset:%+f, spike%s",
+				p->p_dotted, offset,
+				"");
 			G.discipline_state = STATE_SPIK;
 			return -1; /* "decrease poll interval" */
 
@@ -1351,13 +1406,16 @@
 			/* Ignore succeeding outlyers until either an inlyer
 			 * is found or the stepout threshold is exceeded.
 			 */
-			if (since_last_update < WATCH_THRESHOLD) {
-				VERB3 bb_error_msg("spike detected, datapoint ignored, %f sec remains",
-						WATCH_THRESHOLD - since_last_update);
+			remains = WATCH_THRESHOLD - since_last_update;
+			if (remains > 0) {
+				VERB3 bb_error_msg("update from %s: offset:%+f, spike%s",
+					p->p_dotted, offset,
+					", datapoint ignored");
 				return -1; /* "decrease poll interval" */
 			}
 			/* fall through: we need to step */
 		} /* switch */
+#endif
 
 		/* Step the time and clamp down the poll interval.
 		 *
@@ -1380,7 +1438,7 @@
 		 * is always suppressed, even at the longer poll
 		 * intervals.
 		 */
-		VERB3 bb_error_msg("stepping time by %+f; poll_exp=MINPOLL", offset);
+		VERB4 bb_error_msg("stepping time by %+f; poll_exp=MINPOLL", offset);
 		step_time(offset);
 		if (option_mask32 & OPT_q) {
 			/* We were only asked to set time once. Done. */
@@ -1393,6 +1451,8 @@
 
 		run_script("step", offset);
 
+		recv_time += offset;
+
 #if USING_INITIAL_FREQ_ESTIMATION
 		if (G.discipline_state == STATE_NSET) {
 			set_new_values(STATE_FREQ, /*offset:*/ 0, recv_time);
@@ -1405,7 +1465,7 @@
 	} else { /* abs_offset <= STEP_THRESHOLD */
 
 		if (G.poll_exp < MINPOLL && G.initial_poll_complete) {
-			VERB3 bb_error_msg("small offset:%+f, disabling burst mode", offset);
+			VERB4 bb_error_msg("small offset:%+f, disabling burst mode", offset);
 			G.polladj_count = 0;
 			G.poll_exp = MINPOLL;
 		}
@@ -1434,7 +1494,7 @@
 #else
 			set_new_values(STATE_SYNC, offset, recv_time);
 #endif
-			VERB3 bb_error_msg("transitioning to FREQ, datapoint ignored");
+			VERB4 bb_error_msg("transitioning to FREQ, datapoint ignored");
 			return 0; /* "leave poll interval as is" */
 
 #if 0 /* this is dead code for now */
@@ -1503,7 +1563,7 @@
 	dtemp = p->filter_jitter; // SQRT(SQUARE(p->filter_jitter) + SQUARE(G.cluster_jitter));
 	dtemp += MAXD(p->filter_dispersion + FREQ_TOLERANCE * (G.cur_time - p->lastpkt_recv_time) + abs_offset, MINDISP);
 	G.rootdisp = p->lastpkt_rootdisp + dtemp;
-	VERB3 bb_error_msg("updating leap/refid/reftime/rootdisp from peer %s", p->p_dotted);
+	VERB4 bb_error_msg("updating leap/refid/reftime/rootdisp from peer %s", p->p_dotted);
 
 	/* We are in STATE_SYNC now, but did not do adjtimex yet.
 	 * (Any other state does not reach this, they all return earlier)
@@ -1523,13 +1583,13 @@
 	dtemp = SQUARE(dtemp);
 	G.discipline_wander = SQRT(etemp + (dtemp - etemp) / AVG);
 
-	VERB3 bb_error_msg("discipline freq_drift=%.9f(int:%ld corr:%e) wander=%f",
+	VERB4 bb_error_msg("discipline freq_drift=%.9f(int:%ld corr:%e) wander=%f",
 			G.discipline_freq_drift,
 			(long)(G.discipline_freq_drift * 65536e6),
 			freq_drift,
 			G.discipline_wander);
 #endif
-	VERB3 {
+	VERB4 {
 		memset(&tmx, 0, sizeof(tmx));
 		if (adjtimex(&tmx) < 0)
 			bb_perror_msg_and_die("adjtimex");
@@ -1577,7 +1637,7 @@
 	/* NB: here kernel returns constant == G.poll_exp, not == G.poll_exp - 4.
 	 * Not sure why. Perhaps it is normal.
 	 */
-	VERB3 bb_error_msg("adjtimex:%d freq:%ld offset:%+ld status:0x%x",
+	VERB4 bb_error_msg("adjtimex:%d freq:%ld offset:%+ld status:0x%x",
 				rc, tmx.freq, tmx.offset, tmx.status);
 	G.kernel_freq_drift = tmx.freq / 65536;
 	VERB2 bb_error_msg("update from:%s offset:%+f jitter:%f clock drift:%+.3fppm tc:%d",
@@ -1599,7 +1659,7 @@
 	interval = RETRY_INTERVAL;
 	r = random();
 	interval += r % (unsigned)(RETRY_INTERVAL / 4);
-	VERB3 bb_error_msg("chose retry interval:%u", interval);
+	VERB4 bb_error_msg("chose retry interval:%u", interval);
 	return interval;
 }
 static unsigned
@@ -1612,7 +1672,7 @@
 	interval = 1 << exponent;
 	r = random();
 	interval += ((r & (interval-1)) >> 4) + ((r >> 8) & 1); /* + 1/16 of interval, max */
-	VERB3 bb_error_msg("chose poll interval:%u (poll_exp:%d exp:%d)", interval, G.poll_exp, exponent);
+	VERB4 bb_error_msg("chose poll interval:%u (poll_exp:%d exp:%d)", interval, G.poll_exp, exponent);
 	return interval;
 }
 static NOINLINE void
@@ -1622,10 +1682,13 @@
 	ssize_t     size;
 	msg_t       msg;
 	double      T1, T2, T3, T4;
+	double      dv, offset;
 	unsigned    interval;
 	datapoint_t *datapoint;
 	peer_t      *q;
 
+	offset = 0;
+
 	/* We can recvfrom here and check from.IP, but some multihomed
 	 * ntp servers reply from their *other IP*.
 	 * TODO: maybe we should check at least what we can: from.port == 123?
@@ -1671,9 +1734,8 @@
 // TODO: stratum 0 responses may have commands in 32-bit m_refid field:
 // "DENY", "RSTR" - peer does not like us at all
 // "RATE" - peer is overloaded, reduce polling freq
-		interval = poll_interval(0);
-		bb_error_msg("reply from %s: peer is unsynced, next query in %us", p->p_dotted, interval);
-		goto set_next_and_ret;
+		bb_error_msg("reply from %s: peer is unsynced", p->p_dotted);
+		goto pick_normal_interval;
 	}
 
 //	/* Verify valid root distance */
@@ -1706,27 +1768,37 @@
 	T4 = G.cur_time;
 
 	p->lastpkt_recv_time = T4;
+	VERB6 bb_error_msg("%s->lastpkt_recv_time=%f", p->p_dotted, p->lastpkt_recv_time);
 
-	VERB5 bb_error_msg("%s->lastpkt_recv_time=%f", p->p_dotted, p->lastpkt_recv_time);
-	p->datapoint_idx = p->reachable_bits ? (p->datapoint_idx + 1) % NUM_DATAPOINTS : 0;
-	datapoint = &p->filter_datapoint[p->datapoint_idx];
-	datapoint->d_recv_time = T4;
-	datapoint->d_offset    = ((T2 - T1) + (T3 - T4)) / 2;
 	/* The delay calculation is a special case. In cases where the
 	 * server and client clocks are running at different rates and
 	 * with very fast networks, the delay can appear negative. In
 	 * order to avoid violating the Principle of Least Astonishment,
 	 * the delay is clamped not less than the system precision.
 	 */
+	dv = p->lastpkt_delay;
 	p->lastpkt_delay = (T4 - T1) - (T3 - T2);
 	if (p->lastpkt_delay < G_precision_sec)
 		p->lastpkt_delay = G_precision_sec;
+	/*
+	 * If this packet's delay is much bigger than the last one,
+	 * it's better to just ignore it than use its much less precise value.
+	 */
+	if (p->reachable_bits && p->lastpkt_delay > dv * BAD_DELAY_GROWTH) {
+		bb_error_msg("reply from %s: delay %f is too high, ignoring", p->p_dotted, p->lastpkt_delay);
+		goto pick_normal_interval;
+	}
+
+	p->datapoint_idx = p->reachable_bits ? (p->datapoint_idx + 1) % NUM_DATAPOINTS : 0;
+	datapoint = &p->filter_datapoint[p->datapoint_idx];
+	datapoint->d_recv_time = T4;
+	datapoint->d_offset    = offset = ((T2 - T1) + (T3 - T4)) / 2;
 	datapoint->d_dispersion = LOG2D(msg.m_precision_exp) + G_precision_sec;
 	if (!p->reachable_bits) {
 		/* 1st datapoint ever - replicate offset in every element */
 		int i;
 		for (i = 0; i < NUM_DATAPOINTS; i++) {
-			p->filter_datapoint[i].d_offset = datapoint->d_offset;
+			p->filter_datapoint[i].d_offset = offset;
 		}
 	}
 
@@ -1734,7 +1806,7 @@
 	if ((MAX_VERBOSE && G.verbose) || (option_mask32 & OPT_w)) {
 		bb_error_msg("reply from %s: offset:%+f delay:%f status:0x%02x strat:%d refid:0x%08x rootdelay:%f reach:0x%02x",
 			p->p_dotted,
-			datapoint->d_offset,
+			offset,
 			p->lastpkt_delay,
 			p->lastpkt_status,
 			p->lastpkt_stratum,
@@ -1759,7 +1831,7 @@
 			 * drop poll interval one step down.
 			 */
 			if (fabs(q->filter_offset) >= POLLDOWN_OFFSET) {
-				VERB3 bb_error_msg("offset:%+f > POLLDOWN_OFFSET", q->filter_offset);
+				VERB4 bb_error_msg("offset:%+f > POLLDOWN_OFFSET", q->filter_offset);
 				goto poll_down;
 			}
 		}
@@ -1781,11 +1853,11 @@
 				G.polladj_count = 0;
 				if (G.poll_exp < MAXPOLL) {
 					G.poll_exp++;
-					VERB3 bb_error_msg("polladj: discipline_jitter:%f ++poll_exp=%d",
+					VERB4 bb_error_msg("polladj: discipline_jitter:%f ++poll_exp=%d",
 							G.discipline_jitter, G.poll_exp);
 				}
 			} else {
-				VERB3 bb_error_msg("polladj: incr:%d", G.polladj_count);
+				VERB4 bb_error_msg("polladj: incr:%d", G.polladj_count);
 			}
 		} else {
 			G.polladj_count -= G.poll_exp * 2;
@@ -1807,17 +1879,32 @@
 						if (pp->p_fd < 0)
 							pp->next_action_time -= (1 << G.poll_exp);
 					}
-					VERB3 bb_error_msg("polladj: discipline_jitter:%f --poll_exp=%d",
+					VERB4 bb_error_msg("polladj: discipline_jitter:%f --poll_exp=%d",
 							G.discipline_jitter, G.poll_exp);
 				}
 			} else {
-				VERB3 bb_error_msg("polladj: decr:%d", G.polladj_count);
+				VERB4 bb_error_msg("polladj: decr:%d", G.polladj_count);
 			}
 		}
 	}
 
 	/* Decide when to send new query for this peer */
+ pick_normal_interval:
 	interval = poll_interval(0);
+	if (fabs(offset) >= STEP_THRESHOLD * 8 && interval > BIGOFF_INTERVAL) {
+		/* If we are synced, offsets are less than STEP_THRESHOLD,
+		 * or at the very least not much larger than it.
+		 * Now we see a largish one.
+		 * Either this peer is feeling bad, or packet got corrupted,
+		 * or _our_ clock is wrong now and _all_ peers will show similar
+		 * largish offsets too.
+		 * I observed this with laptop suspend stopping clock.
+		 * In any case, it makes sense to make next request soonish:
+		 * cases 1 and 2: get a better datapoint,
+		 * case 3: allows to resync faster.
+		 */
+		interval = BIGOFF_INTERVAL;
+	}
 
  set_next_and_ret:
 	set_next(p, interval);
@@ -2165,12 +2252,14 @@
  did_poll:
 		gettime1900d(); /* sets G.cur_time */
 		if (nfds <= 0) {
-			if (G.script_name && G.cur_time - G.last_script_run > 11*60) {
+			if (!bb_got_signal /* poll wasn't interrupted by a signal */
+			 && G.cur_time - G.last_script_run > 11*60
+			) {
 				/* Useful for updating battery-backed RTC and such */
 				run_script("periodic", G.last_update_offset);
 				gettime1900d(); /* sets G.cur_time */
 			}
-			continue;
+			goto check_unsync;
 		}
 
 		/* Process any received packets */
@@ -2201,6 +2290,21 @@
 				gettime1900d(); /* sets G.cur_time */
 			}
 		}
+
+ check_unsync:
+		if (G.ntp_peers && G.stratum != MAXSTRAT) {
+			for (item = G.ntp_peers; item != NULL; item = item->link) {
+				peer_t *p = (peer_t *) item->data;
+				if (p->reachable_bits)
+					goto have_reachable_peer;
+			}
+			/* No peer responded for last 8 packets, panic */
+			G.polladj_count = 0;
+			G.poll_exp = MINPOLL;
+			G.stratum = MAXSTRAT;
+			run_script("unsync", 0.0);
+ have_reachable_peer: ;
+		}
 	} /* while (!bb_got_signal) */
 
 	remove_pidfile(CONFIG_PID_FILE_PATH "/ntpd.pid");
diff --git a/networking/ntpd_simple.c b/networking/ntpd_simple.c
index 55bded8..3e7fc47 100644
--- a/networking/ntpd_simple.c
+++ b/networking/ntpd_simple.c
@@ -378,7 +378,7 @@
 		bb_perror_msg_and_die("settimeofday");
 
 	tval = tv.tv_sec;
-	strftime(buf, sizeof(buf), "%a %b %e %H:%M:%S %Z %Y", localtime(&tval));
+	strftime_YYYYMMDDHHMMSS(buf, sizeof(buf), &tval);
 
 	bb_error_msg("setting clock to %s (offset %fs)", buf, offset);
 
diff --git a/networking/ping.c b/networking/ping.c
index ac67d46..46a3889 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -89,7 +89,9 @@
 //usage:       "[OPTIONS] HOST"
 //usage:# define ping_full_usage "\n\n"
 //usage:       "Send ICMP ECHO_REQUEST packets to network hosts\n"
+//usage:	IF_PING6(
 //usage:     "\n	-4,-6		Force IP or IPv6 name resolution"
+//usage:	)
 //usage:     "\n	-c CNT		Send only CNT pings"
 //usage:     "\n	-s SIZE		Send SIZE data bytes in packets (default:56)"
 //usage:     "\n	-t TTL		Set TTL"
@@ -147,8 +149,46 @@
 	MAX_DUP_CHK = (8 * 128),
 	MAXWAIT = 10,
 	PINGINTERVAL = 1, /* 1 second */
+	pingsock = 0,
 };
 
+static void
+#if ENABLE_PING6
+create_icmp_socket(len_and_sockaddr *lsa)
+#else
+create_icmp_socket(void)
+#define create_icmp_socket(lsa) create_icmp_socket()
+#endif
+{
+	int sock;
+#if ENABLE_PING6
+	if (lsa->u.sa.sa_family == AF_INET6)
+		sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
+	else
+#endif
+		sock = socket(AF_INET, SOCK_RAW, 1); /* 1 == ICMP */
+	if (sock < 0) {
+		if (errno != EPERM)
+			bb_perror_msg_and_die("%s", bb_msg_can_not_create_raw_socket);
+#if defined(__linux__) || defined(__APPLE__)
+		/* We don't have root privileges.  Try SOCK_DGRAM instead.
+		 * Linux needs net.ipv4.ping_group_range for this to work.
+		 * MacOSX allows ICMP_ECHO, ICMP_TSTAMP or ICMP_MASKREQ
+		 */
+#if ENABLE_PING6
+		if (lsa->u.sa.sa_family == AF_INET6)
+			sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_ICMPV6);
+		else
+#endif
+			sock = socket(AF_INET, SOCK_DGRAM, 1); /* 1 == ICMP */
+		if (sock < 0)
+#endif
+		bb_error_msg_and_die("%s", bb_msg_perm_denied_are_you_root);
+	}
+
+	xmove_fd(sock, pingsock);
+}
+
 #if !ENABLE_FEATURE_FANCY_PING
 
 /* Simple version */
@@ -169,12 +209,10 @@
 static void ping4(len_and_sockaddr *lsa)
 {
 	struct icmp *pkt;
-	int pingsock, c;
-
-	pingsock = create_icmp_socket();
+	int c;
 
 	pkt = (struct icmp *) G.packet;
-	memset(pkt, 0, sizeof(G.packet));
+	/*memset(pkt, 0, sizeof(G.packet)); already is */
 	pkt->icmp_type = ICMP_ECHO;
 	pkt->icmp_cksum = inet_cksum((uint16_t *) pkt, sizeof(G.packet));
 
@@ -182,11 +220,15 @@
 
 	/* listen for replies */
 	while (1) {
+#if 0
 		struct sockaddr_in from;
 		socklen_t fromlen = sizeof(from);
 
 		c = recvfrom(pingsock, G.packet, sizeof(G.packet), 0,
 				(struct sockaddr *) &from, &fromlen);
+#else
+		c = recv(pingsock, G.packet, sizeof(G.packet), 0);
+#endif
 		if (c < 0) {
 			if (errno != EINTR)
 				bb_perror_msg("recvfrom");
@@ -208,13 +250,11 @@
 static void ping6(len_and_sockaddr *lsa)
 {
 	struct icmp6_hdr *pkt;
-	int pingsock, c;
+	int c;
 	int sockopt;
 
-	pingsock = create_icmp6_socket();
-
 	pkt = (struct icmp6_hdr *) G.packet;
-	memset(pkt, 0, sizeof(G.packet));
+	/*memset(pkt, 0, sizeof(G.packet)); already is */
 	pkt->icmp6_type = ICMP6_ECHO_REQUEST;
 
 	sockopt = offsetof(struct icmp6_hdr, icmp6_cksum);
@@ -224,18 +264,21 @@
 
 	/* listen for replies */
 	while (1) {
+#if 0
 		struct sockaddr_in6 from;
 		socklen_t fromlen = sizeof(from);
 
 		c = recvfrom(pingsock, G.packet, sizeof(G.packet), 0,
 				(struct sockaddr *) &from, &fromlen);
+#else
+		c = recv(pingsock, G.packet, sizeof(G.packet), 0);
+#endif
 		if (c < 0) {
 			if (errno != EINTR)
 				bb_perror_msg("recvfrom");
 			continue;
 		}
-		if (c >= ICMP_MINLEN) {			/* icmp6_hdr */
-			pkt = (struct icmp6_hdr *) G.packet;
+		if (c >= ICMP_MINLEN) {	/* icmp6_hdr */
 			if (pkt->icmp6_type == ICMP6_ECHO_REPLY)
 				break;
 		}
@@ -283,6 +326,7 @@
 	signal(SIGALRM, noresp);
 	alarm(5); /* give the host 5000ms to respond */
 
+	create_icmp_socket(lsa);
 #if ENABLE_PING6
 	if (lsa->u.sa.sa_family == AF_INET6)
 		ping6(lsa);
@@ -299,7 +343,7 @@
 
 /* Full(er) version */
 
-#define OPT_STRING ("qvc:s:t:w:W:I:4" IF_PING6("6"))
+#define OPT_STRING ("qvc:s:t:w:W:I:n4" IF_PING6("6"))
 enum {
 	OPT_QUIET = 1 << 0,
 	OPT_VERBOSE = 1 << 1,
@@ -309,13 +353,13 @@
 	OPT_w = 1 << 5,
 	OPT_W = 1 << 6,
 	OPT_I = 1 << 7,
-	OPT_IPV4 = 1 << 8,
-	OPT_IPV6 = (1 << 9) * ENABLE_PING6,
+	/*OPT_n = 1 << 8, - ignored */
+	OPT_IPV4 = 1 << 9,
+	OPT_IPV6 = (1 << 10) * ENABLE_PING6,
 };
 
 
 struct globals {
-	int pingsock;
 	int if_index;
 	char *str_I;
 	len_and_sockaddr *source_lsa;
@@ -341,17 +385,13 @@
 		struct sockaddr_in6 sin6;
 #endif
 	} pingaddr;
-	char rcvd_tbl[MAX_DUP_CHK / 8];
+	unsigned char rcvd_tbl[MAX_DUP_CHK / 8];
 } FIX_ALIASING;
 #define G (*(struct globals*)&bb_common_bufsiz1)
-#define pingsock     (G.pingsock    )
 #define if_index     (G.if_index    )
 #define source_lsa   (G.source_lsa  )
 #define str_I        (G.str_I       )
 #define datalen      (G.datalen     )
-#define ntransmitted (G.ntransmitted)
-#define nreceived    (G.nreceived   )
-#define nrepeats     (G.nrepeats    )
 #define pingcount    (G.pingcount   )
 #define opt_ttl      (G.opt_ttl     )
 #define myid         (G.myid        )
@@ -369,51 +409,55 @@
 #define INIT_G() do { \
 	if (sizeof(G) > COMMON_BUFSIZE) \
 		BUG_ping_globals_too_big(); \
-	pingsock = -1; \
 	datalen = DEFDATALEN; \
 	timeout = MAXWAIT; \
 	tmin = UINT_MAX; \
 } while (0)
 
 
-#define A(bit)		rcvd_tbl[(bit)>>3]	/* identify byte in array */
-#define B(bit)		(1 << ((bit) & 0x07))	/* identify bit in byte */
-#define SET(bit)	(A(bit) |= B(bit))
-#define CLR(bit)	(A(bit) &= (~B(bit)))
-#define TST(bit)	(A(bit) & B(bit))
-
-/**************************************************************************/
+#define BYTE(bit)	rcvd_tbl[(bit)>>3]
+#define MASK(bit)	(1 << ((bit) & 7))
+#define SET(bit)	(BYTE(bit) |= MASK(bit))
+#define CLR(bit)	(BYTE(bit) &= (~MASK(bit)))
+#define TST(bit)	(BYTE(bit) & MASK(bit))
 
 static void print_stats_and_exit(int junk) NORETURN;
 static void print_stats_and_exit(int junk UNUSED_PARAM)
 {
+	unsigned long ul;
+	unsigned long nrecv;
+
 	signal(SIGINT, SIG_IGN);
 
-	printf("\n--- %s ping statistics ---\n", hostname);
-	printf("%lu packets transmitted, ", ntransmitted);
-	printf("%lu packets received, ", nreceived);
-	if (nrepeats)
-		printf("%lu duplicates, ", nrepeats);
-	if (ntransmitted)
-		ntransmitted = (ntransmitted - nreceived) * 100 / ntransmitted;
-	printf("%lu%% packet loss\n", ntransmitted);
+	nrecv = G.nreceived;
+	printf("\n--- %s ping statistics ---\n"
+		"%lu packets transmitted, "
+		"%lu packets received, ",
+		hostname, G.ntransmitted, nrecv
+	);
+	if (G.nrepeats)
+		printf("%lu duplicates, ", G.nrepeats);
+	ul = G.ntransmitted;
+	if (ul != 0)
+		ul = (ul - nrecv) * 100 / ul;
+	printf("%lu%% packet loss\n", ul);
 	if (tmin != UINT_MAX) {
-		unsigned tavg = tsum / (nreceived + nrepeats);
+		unsigned tavg = tsum / (nrecv + G.nrepeats);
 		printf("round-trip min/avg/max = %u.%03u/%u.%03u/%u.%03u ms\n",
 			tmin / 1000, tmin % 1000,
 			tavg / 1000, tavg % 1000,
 			tmax / 1000, tmax % 1000);
 	}
 	/* if condition is true, exit with 1 -- 'failure' */
-	exit(nreceived == 0 || (deadline && nreceived < pingcount));
+	exit(nrecv == 0 || (deadline && nrecv < pingcount));
 }
 
 static void sendping_tail(void (*sp)(int), int size_pkt)
 {
 	int sz;
 
-	CLR((uint16_t)ntransmitted % MAX_DUP_CHK);
-	ntransmitted++;
+	CLR((uint16_t)G.ntransmitted % MAX_DUP_CHK);
+	G.ntransmitted++;
 
 	size_pkt += datalen;
 
@@ -423,7 +467,7 @@
 	if (sz != size_pkt)
 		bb_error_msg_and_die("%s", bb_msg_write_error);
 
-	if (pingcount == 0 || deadline || ntransmitted < pingcount) {
+	if (pingcount == 0 || deadline || G.ntransmitted < pingcount) {
 		/* Didn't send all pings yet - schedule next in 1s */
 		signal(SIGALRM, sp);
 		if (deadline) {
@@ -439,7 +483,7 @@
 		 * otherwise ping waits for two RTTs. */
 		unsigned expire = timeout;
 
-		if (nreceived) {
+		if (G.nreceived) {
 			/* approx. 2*tmax, in seconds (2 RTT) */
 			expire = tmax / (512*1024);
 			if (expire == 0)
@@ -458,7 +502,7 @@
 	pkt->icmp_type = ICMP_ECHO;
 	/*pkt->icmp_code = 0;*/
 	pkt->icmp_cksum = 0; /* cksum is calculated with this field set to 0 */
-	pkt->icmp_seq = htons(ntransmitted); /* don't ++ here, it can be a macro */
+	pkt->icmp_seq = htons(G.ntransmitted); /* don't ++ here, it can be a macro */
 	pkt->icmp_id = myid;
 
 	/* If datalen < 4, we store timestamp _past_ the packet,
@@ -481,11 +525,11 @@
 	pkt->icmp6_type = ICMP6_ECHO_REQUEST;
 	/*pkt->icmp6_code = 0;*/
 	/*pkt->icmp6_cksum = 0;*/
-	pkt->icmp6_seq = htons(ntransmitted); /* don't ++ here, it can be a macro */
+	pkt->icmp6_seq = htons(G.ntransmitted); /* don't ++ here, it can be a macro */
 	pkt->icmp6_id = myid;
 
 	/*if (datalen >= 4)*/
-		*(uint32_t*)(&pkt->icmp6_data8[4]) = monotonic_us();
+		*(bb__aliased_uint32_t*)(&pkt->icmp6_data8[4]) = monotonic_us();
 
 	//TODO? pkt->icmp_cksum = inet_cksum(...);
 
@@ -545,11 +589,10 @@
 		const char *from_str,
 		uint16_t recv_seq, int ttl)
 {
+	unsigned char *b, m;
 	const char *dupmsg = " (DUP!)";
 	unsigned triptime = 0;
 
-	++nreceived;
-
 	if (tp) {
 		/* (int32_t) cast is for hypothetical 64-bit unsigned */
 		/* (doesn't hurt 32-bit real-world anyway) */
@@ -561,11 +604,15 @@
 			tmax = triptime;
 	}
 
-	if (TST(recv_seq % MAX_DUP_CHK)) {
-		++nrepeats;
-		--nreceived;
+	b = &BYTE(recv_seq % MAX_DUP_CHK);
+	m = MASK(recv_seq % MAX_DUP_CHK);
+	/*if TST(recv_seq % MAX_DUP_CHK):*/
+	if (*b & m) {
+		++G.nrepeats;
 	} else {
-		SET(recv_seq % MAX_DUP_CHK);
+		/*SET(recv_seq % MAX_DUP_CHK):*/
+		*b |= m;
+		++G.nreceived;
 		dupmsg += 7;
 	}
 
@@ -619,7 +666,7 @@
 	char buf[INET6_ADDRSTRLEN];
 
 	/* discard if too short */
-	if (sz < (datalen + sizeof(struct icmp6_hdr)))
+	if (sz < (int) (datalen + sizeof(struct icmp6_hdr)))
 		return;
 
 	icmppkt = (struct icmp6_hdr *) packet;
@@ -630,7 +677,7 @@
 		uint16_t recv_seq = ntohs(icmppkt->icmp6_seq);
 		uint32_t *tp = NULL;
 
-		if (sz >= sizeof(struct icmp6_hdr) + sizeof(uint32_t))
+		if (sz >= (int) (sizeof(struct icmp6_hdr) + sizeof(uint32_t)))
 			tp = (uint32_t *) &icmppkt->icmp6_data8[4];
 		unpack_tail(sz, tp,
 			inet_ntop(AF_INET6, &from->sin6_addr,
@@ -648,7 +695,6 @@
 {
 	int sockopt;
 
-	pingsock = create_icmp_socket();
 	pingaddr.sin = lsa->u.sin;
 	if (source_lsa) {
 		if (setsockopt(pingsock, IPPROTO_IP, IP_MULTICAST_IF,
@@ -656,8 +702,6 @@
 			bb_error_msg_and_die("can't set multicast source interface");
 		xbind(pingsock, &source_lsa->u.sa, source_lsa->len);
 	}
-	if (str_I)
-		setsockopt_bindtodevice(pingsock, str_I);
 
 	/* enable broadcast pings */
 	setsockopt_broadcast(pingsock);
@@ -692,7 +736,7 @@
 			continue;
 		}
 		unpack4(G.rcv_packet, c, &from);
-		if (pingcount && nreceived >= pingcount)
+		if (pingcount && G.nreceived >= pingcount)
 			break;
 	}
 }
@@ -706,13 +750,9 @@
 	struct iovec iov;
 	char control_buf[CMSG_SPACE(36)];
 
-	pingsock = create_icmp6_socket();
 	pingaddr.sin6 = lsa->u.sin6;
-	/* untested whether "-I addr" really works for IPv6: */
 	if (source_lsa)
 		xbind(pingsock, &source_lsa->u.sa, source_lsa->len);
-	if (str_I)
-		setsockopt_bindtodevice(pingsock, str_I);
 
 #ifdef ICMP6_FILTER
 	{
@@ -784,7 +824,7 @@
 			}
 		}
 		unpack6(G.rcv_packet, c, &from, hoplimit);
-		if (pingcount && nreceived >= pingcount)
+		if (pingcount && G.nreceived >= pingcount)
 			break;
 	}
 }
@@ -799,6 +839,11 @@
 	}
 	printf(": %d data bytes\n", datalen);
 
+	create_icmp_socket(lsa);
+	/* untested whether "-I addr" really works for IPv6: */
+	if (str_I)
+		setsockopt_bindtodevice(pingsock, str_I);
+
 	G.sizeof_rcv_packet = datalen + MAXIPLEN + MAXICMPLEN;
 	G.rcv_packet = xzalloc(G.sizeof_rcv_packet);
 #if ENABLE_PING6
diff --git a/networking/pscan.c b/networking/pscan.c
index 28005ad..72ed8cd 100644
--- a/networking/pscan.c
+++ b/networking/pscan.c
@@ -157,7 +157,7 @@
 	}
 	if (ENABLE_FEATURE_CLEAN_UP) free(lsap);
 
-	printf("%d closed, %d open, %d timed out (or blocked) ports\n",
+	printf("%u closed, %u open, %u timed out (or blocked) ports\n",
 					closed_ports,
 					open_ports,
 					nports - (closed_ports + open_ports));
diff --git a/networking/route.c b/networking/route.c
index 41e86bd..75bb59a 100644
--- a/networking/route.c
+++ b/networking/route.c
@@ -41,7 +41,7 @@
 #include "inet_common.h"
 
 #if ENABLE_FEATURE_IPV6
-#include "ipv6/ipv6_route.h"
+#include <linux/ipv6_route.h>
 #endif
 
 #ifndef RTF_UP
diff --git a/networking/tc.c b/networking/tc.c
index f968707..533f7c0 100644
--- a/networking/tc.c
+++ b/networking/tc.c
@@ -65,7 +65,7 @@
 } FIX_ALIASING;
 #define G (*(struct globals*)&bb_common_bufsiz1)
 struct BUG_G_too_big {
-        char BUG_G_too_big[sizeof(G) <= COMMON_BUFSIZE ? 1 : -1];
+	char BUG_G_too_big[sizeof(G) <= COMMON_BUFSIZE ? 1 : -1];
 };
 #define filter_ifindex (G.filter_ifindex)
 #define filter_qdisc (G.filter_qdisc)
@@ -418,9 +418,6 @@
 static int print_filter(const struct sockaddr_nl *who UNUSED_PARAM,
 						struct nlmsghdr *hdr, void *arg UNUSED_PARAM)
 {
-	struct tcmsg *msg = NLMSG_DATA(hdr);
-	int len = hdr->nlmsg_len;
-	struct rtattr * tb[TCA_MAX+1];
 	return 0;
 }
 
diff --git a/networking/telnet.c b/networking/telnet.c
index 58a6919..a255797 100644
--- a/networking/telnet.c
+++ b/networking/telnet.c
@@ -125,12 +125,10 @@
 
 static void iac_flush(void)
 {
-	write(netfd, G.iacbuf, G.iaclen);
+	full_write(netfd, G.iacbuf, G.iaclen);
 	G.iaclen = 0;
 }
 
-#define write_str(fd, str) write(fd, str, sizeof(str) - 1)
-
 static void doexit(int ev) NORETURN;
 static void doexit(int ev)
 {
@@ -145,7 +143,7 @@
 	if (bb_got_signal) /* came from line mode... go raw */
 		rawmode();
 
-	write_str(1, "\r\nConsole escape. Commands are:\r\n\n"
+	full_write1_str("\r\nConsole escape. Commands are:\r\n\n"
 			" l	go to line mode\r\n"
 			" c	go to character mode\r\n"
 			" z	suspend telnet\r\n"
@@ -176,7 +174,7 @@
 		doexit(EXIT_SUCCESS);
 	}
 
-	write_str(1, "continuing...\r\n");
+	full_write1_str("continuing...\r\n");
 
 	if (bb_got_signal)
 		cookmode();
@@ -383,10 +381,11 @@
 	put_iac(SB);
 	put_iac(c);
 
-	put_iac((x >> 8) & 0xff);
-	put_iac(x & 0xff);
-	put_iac((y >> 8) & 0xff);
-	put_iac(y & 0xff);
+	/* "... & 0xff" implicitly done below */
+	put_iac(x >> 8);
+	put_iac(x);
+	put_iac(y >> 8);
+	put_iac(y);
 
 	put_iac(IAC);
 	put_iac(SE);
diff --git a/networking/telnetd.c b/networking/telnetd.c
index 1f244a3..d00d87d 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -84,7 +84,7 @@
 } FIX_ALIASING;
 #define G (*(struct globals*)&bb_common_bufsiz1)
 #define INIT_G() do { \
-	G.loginpath = "/bin/login"; \
+	G.loginpath = "/system/xbin/login"; \
 	G.issuefile = "/etc/issue.net"; \
 } while (0)
 
diff --git a/networking/traceroute.c b/networking/traceroute.c
index eaefac6..c3b9b71 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -796,7 +796,9 @@
 common_traceroute_main(int op, char **argv)
 {
 	int minpacket;
+#ifdef IP_TOS
 	int tos = 0;
+#endif
 	int max_ttl = 30;
 	int nprobes = 3;
 	int first_ttl = 1;
@@ -810,6 +812,7 @@
 	char *waittime_str;
 	char *pausemsecs_str;
 	char *first_ttl_str;
+	char *dest_str;
 #if ENABLE_FEATURE_TRACEROUTE_SOURCE_ROUTE
 	llist_t *source_route_list = NULL;
 	int lsrr = 0;
@@ -842,8 +845,10 @@
 	if (op & OPT_IP_CHKSUM)
 		bb_error_msg("warning: ip checksums disabled");
 #endif
+#ifdef IP_TOS
 	if (op & OPT_TOS)
 		tos = xatou_range(tos_str, 0, 255);
+#endif
 	if (op & OPT_MAX_TTL)
 		max_ttl = xatou_range(max_ttl_str, 1, 255);
 	if (op & OPT_PORT)
@@ -1064,8 +1069,12 @@
 	xsetgid(getgid());
 	xsetuid(getuid());
 
-	printf("traceroute to %s (%s)", argv[0],
-			xmalloc_sockaddr2dotted_noport(&dest_lsa->u.sa));
+	dest_str = xmalloc_sockaddr2dotted_noport(&dest_lsa->u.sa);
+	printf("traceroute to %s (%s)", argv[0], dest_str);
+	if (ENABLE_FEATURE_CLEAN_UP) {
+		free(dest_str);
+	}
+
 	if (op & OPT_SOURCE)
 		printf(" from %s", source);
 	printf(", %d hops max, %d byte packets\n", max_ttl, packlen);
@@ -1221,6 +1230,12 @@
 		}
 	}
 
+	if (ENABLE_FEATURE_CLEAN_UP) {
+		free(to);
+		free(lastaddr);
+		free(from_lsa);
+	}
+
 	return 0;
 }
 
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
index ae0e0d3..fe322db 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -62,6 +62,7 @@
 	{ OPTION_U16                              , 0x84 }, /* DHCP_VLAN_ID       */
 	{ OPTION_U8                               , 0x85 }, /* DHCP_VLAN_PRIORITY */
 #endif
+	{ OPTION_STRING                           , 0xd1 }, /* DHCP_PXE_CONF_FILE */
 	{ OPTION_6RD                              , 0xd4 }, /* DHCP_6RD           */
 	{ OPTION_STATIC_ROUTES | OPTION_LIST      , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */
 	{ OPTION_STRING                           , 0xfc }, /* DHCP_WPAD          */
@@ -128,6 +129,7 @@
 	"vlanid" "\0"      /* DHCP_VLAN_ID        */
 	"vlanpriority" "\0"/* DHCP_VLAN_PRIORITY  */
 #endif
+	"pxeconffile" "\0" /* DHCP_PXE_CONF_FILE  */
 	"ip6rd" "\0"       /* DHCP_6RD            */
 	"msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */
 	"wpad" "\0"        /* DHCP_WPAD           */
@@ -371,20 +373,23 @@
 		char *buffer,
 		int length)
 {
-	struct option_set *existing, *new, **curr;
-	char *allocated = NULL;
+	struct option_set *existing;
+	char *allocated;
+
+	allocated = allocate_tempopt_if_needed(optflag, buffer, &length);
+#if ENABLE_FEATURE_UDHCP_RFC3397
+	if ((optflag->flags & OPTION_TYPE_MASK) == OPTION_DNS_STRING) {
+		/* reuse buffer and length for RFC1035-formatted string */
+		allocated = buffer = (char *)dname_enc(NULL, 0, buffer, &length);
+	}
+#endif
 
 	existing = udhcp_find_option(*opt_list, optflag->code);
 	if (!existing) {
-		log2("Attaching option %02x to list", optflag->code);
-		allocated = allocate_tempopt_if_needed(optflag, buffer, &length);
-#if ENABLE_FEATURE_UDHCP_RFC3397
-		if ((optflag->flags & OPTION_TYPE_MASK) == OPTION_DNS_STRING) {
-			/* reuse buffer and length for RFC1035-formatted string */
-			allocated = buffer = (char *)dname_enc(NULL, 0, buffer, &length);
-		}
-#endif
+		struct option_set *new, **curr;
+
 		/* make a new option */
+		log2("Attaching option %02x to list", optflag->code);
 		new = xmalloc(sizeof(*new));
 		new->data = xmalloc(length + OPT_DATA);
 		new->data[OPT_CODE] = optflag->code;
@@ -405,14 +410,7 @@
 
 		/* add it to an existing option */
 		log2("Attaching option %02x to existing member of list", optflag->code);
-		allocated = allocate_tempopt_if_needed(optflag, buffer, &length);
 		old_len = existing->data[OPT_LEN];
-#if ENABLE_FEATURE_UDHCP_RFC3397
-		if ((optflag->flags & OPTION_TYPE_MASK) == OPTION_DNS_STRING) {
-			/* reuse buffer and length for RFC1035-formatted string */
-			allocated = buffer = (char *)dname_enc(existing->data + OPT_DATA, old_len, buffer, &length);
-		}
-#endif
 		if (old_len + length < 255) {
 			/* actually 255 is ok too, but adding a space can overlow it */
 
@@ -424,7 +422,7 @@
 				existing->data[OPT_DATA + old_len] = ' ';
 				old_len++;
 			}
-			memcpy(existing->data + OPT_DATA + old_len, buffer, length);
+			memcpy(existing->data + OPT_DATA + old_len, (allocated ? allocated : buffer), length);
 			existing->data[OPT_LEN] = old_len + length;
 		} /* else, ignore the data, we could put this in a second option in the future */
 	} /* else, ignore the new data */
diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h
index 0e8e45f..5e70d60 100644
--- a/networking/udhcp/common.h
+++ b/networking/udhcp/common.h
@@ -149,8 +149,9 @@
 //#define DHCP_DOMAIN_SEARCH    0x77 /* RFC 3397. set of ASCIZ string, DNS-style compressed */
 //#define DHCP_SIP_SERVERS      0x78 /* RFC 3361. flag byte, then: 0: domain names, 1: IP addrs */
 //#define DHCP_STATIC_ROUTES    0x79 /* RFC 3442. (mask,ip,router) tuples */
-#define DHCP_VLAN_ID            0x84 /* 802.1P VLAN ID */
-#define DHCP_VLAN_PRIORITY      0x85 /* 802.1Q VLAN priority */
+//#define DHCP_VLAN_ID          0x84 /* 802.1P VLAN ID */
+//#define DHCP_VLAN_PRIORITY    0x85 /* 802.1Q VLAN priority */
+//#define DHCP_PXE_CONF_FILE    0xd1 /* RFC 5071 Configuration File */
 //#define DHCP_MS_STATIC_ROUTES 0xf9 /* Microsoft's pre-RFC 3442 code for 0x79? */
 //#define DHCP_WPAD             0xfc /* MSIE's Web Proxy Autodiscovery Protocol */
 #define DHCP_END                0xff
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index c44220b..b0f0798 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
@@ -311,8 +311,8 @@
 
 	return d6_send_raw_packet(
 		packet, (end - (uint8_t*) packet),
-		/*src*/ NULL, CLIENT_PORT,
-		/*dst*/ (struct in6_addr*)FF02__1_2, SERVER_PORT, MAC_BCAST_ADDR,
+		/*src*/ NULL, CLIENT_PORT6,
+		/*dst*/ (struct in6_addr*)FF02__1_2, SERVER_PORT6, MAC_BCAST_ADDR,
 		client_config.ifindex
 	);
 }
@@ -554,8 +554,8 @@
 	if (server_ipv6)
 		return d6_send_kernel_packet(
 			&packet, (opt_ptr - (uint8_t*) &packet),
-			our_cur_ipv6, CLIENT_PORT,
-			server_ipv6, SERVER_PORT
+			our_cur_ipv6, CLIENT_PORT6,
+			server_ipv6, SERVER_PORT6
 		);
 	return d6_mcast_from_client_config_ifindex(&packet, opt_ptr);
 }
@@ -576,8 +576,8 @@
 	bb_info_msg("Sending release...");
 	return d6_send_kernel_packet(
 		&packet, (opt_ptr - (uint8_t*) &packet),
-		our_cur_ipv6, CLIENT_PORT,
-		server_ipv6, SERVER_PORT
+		our_cur_ipv6, CLIENT_PORT6,
+		server_ipv6, SERVER_PORT6
 	);
 }
 
@@ -614,7 +614,7 @@
 	/* make sure its the right packet for us, and that it passes sanity checks */
 	if (packet.ip6.ip6_nxt != IPPROTO_UDP
 	 || (packet.ip6.ip6_vfc >> 4) != 6
-	 || packet.udp.dest != htons(CLIENT_PORT)
+	 || packet.udp.dest != htons(CLIENT_PORT6)
 	/* || bytes > (int) sizeof(packet) - can't happen */
 	 || packet.udp.len != packet.ip6.ip6_plen
 	) {
@@ -708,7 +708,7 @@
 		BPF_STMT(BPF_LDX|BPF_B|BPF_MSH, 0),
 		/* load udp destination port from halfword[header_len + 2] */
 		BPF_STMT(BPF_LD|BPF_H|BPF_IND, 2),
-		/* jump to L3 if udp dport is CLIENT_PORT, else to L4 */
+		/* jump to L3 if udp dport is CLIENT_PORT6, else to L4 */
 		BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, 68, 0, 1),
 		/* L3: accept packet */
 		BPF_STMT(BPF_RET|BPF_K, 0xffffffff),
@@ -733,7 +733,7 @@
 	xbind(fd, (struct sockaddr *) &sock, sizeof(sock));
 
 #if 0
-	if (CLIENT_PORT == 68) {
+	if (CLIENT_PORT6 == 546) {
 		/* Use only if standard port is in use */
 		/* Ignoring error (kernel may lack support for this) */
 		if (setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER, &filter_prog,
@@ -761,7 +761,7 @@
 		sockfd = -1;
 	}
 	if (new_mode == LISTEN_KERNEL)
-		sockfd = udhcp_listen_socket(/*INADDR_ANY,*/ CLIENT_PORT, client_config.interface);
+		sockfd = udhcp_listen_socket(/*INADDR_ANY,*/ CLIENT_PORT6, client_config.interface);
 	else if (new_mode != LISTEN_NONE)
 		sockfd = d6_raw_socket(client_config.ifindex);
 	/* else LISTEN_NONE: sockfd stays closed */
@@ -931,8 +931,8 @@
 	fd_set rfds;
 
 	/* Default options */
-	IF_FEATURE_UDHCP_PORT(SERVER_PORT = 547;)
-	IF_FEATURE_UDHCP_PORT(CLIENT_PORT = 546;)
+	IF_FEATURE_UDHCP_PORT(SERVER_PORT6 = 547;)
+	IF_FEATURE_UDHCP_PORT(CLIENT_PORT6 = 546;)
 	client_config.interface = "eth0";
 	client_config.script = CONFIG_UDHCPC_DEFAULT_SCRIPT;
 
@@ -961,8 +961,8 @@
 	}
 #if ENABLE_FEATURE_UDHCP_PORT
 	if (opt & OPT_P) {
-		CLIENT_PORT = xatou16(str_P);
-		SERVER_PORT = CLIENT_PORT - 1;
+		CLIENT_PORT6 = xatou16(str_P);
+		SERVER_PORT6 = CLIENT_PORT6 + 1;
 	}
 #endif
 	while (list_O) {
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 0862288..8dee916 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -667,6 +667,15 @@
 		client_config.ifindex);
 }
 
+static int bcast_or_ucast(struct dhcp_packet *packet, uint32_t ciaddr, uint32_t server)
+{
+	if (server)
+		return udhcp_send_kernel_packet(packet,
+			ciaddr, CLIENT_PORT,
+			server, SERVER_PORT);
+	return raw_bcast_from_client_config_ifindex(packet);
+}
+
 /* Broadcast a DHCP discover packet to the network, with an optionally requested IP */
 /* NOINLINE: limit stack usage in caller */
 static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
@@ -773,11 +782,7 @@
 	add_client_options(&packet);
 
 	bb_info_msg("Sending renew...");
-	if (server)
-		return udhcp_send_kernel_packet(&packet,
-			ciaddr, CLIENT_PORT,
-			server, SERVER_PORT);
-	return raw_bcast_from_client_config_ifindex(&packet);
+	return bcast_or_ucast(&packet, ciaddr, server);
 }
 
 #if ENABLE_FEATURE_UDHCPC_ARPING
@@ -826,7 +831,11 @@
 	udhcp_add_simple_option(&packet, DHCP_SERVER_ID, server);
 
 	bb_info_msg("Sending release...");
-	return udhcp_send_kernel_packet(&packet, ciaddr, CLIENT_PORT, server, SERVER_PORT);
+	/* Note: normally we unicast here since "server" is not zero.
+	 * However, there _are_ people who run "address-less" DHCP servers,
+	 * and reportedly ISC dhcp client and Windows allow that.
+	 */
+	return bcast_or_ucast(&packet, ciaddr, server);
 }
 
 /* Returns -1 on errors that are fatal for the socket, -2 for those that aren't */
@@ -1135,34 +1144,35 @@
 //usage:# define IF_UDHCP_VERBOSE(...)
 //usage:#endif
 //usage:#define udhcpc_trivial_usage
-//usage:       "[-fbnq"IF_UDHCP_VERBOSE("v")"oCRB] [-i IFACE] [-r IP] [-s PROG] [-p PIDFILE]\n"
-//usage:       "	[-V VENDOR] [-x OPT:VAL]... [-O OPT]..." IF_FEATURE_UDHCP_PORT(" [-P N]")
+//usage:       "[-fbq"IF_UDHCP_VERBOSE("v")IF_FEATURE_UDHCPC_ARPING("a")"RB] [-t N] [-T SEC] [-A SEC/-n]\n"
+//usage:       "	[-i IFACE]"IF_FEATURE_UDHCP_PORT(" [-P PORT]")" [-s PROG] [-p PIDFILE]\n"
+//usage:       "	[-oC] [-r IP] [-V VENDOR] [-F NAME] [-x OPT:VAL]... [-O OPT]..."
 //usage:#define udhcpc_full_usage "\n"
 //usage:	IF_LONG_OPTS(
 //usage:     "\n	-i,--interface IFACE	Interface to use (default eth0)"
-//usage:     "\n	-p,--pidfile FILE	Create pidfile"
+//usage:	IF_FEATURE_UDHCP_PORT(
+//usage:     "\n	-P,--client-port PORT	Use PORT (default 68)"
+//usage:	)
 //usage:     "\n	-s,--script PROG	Run PROG at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")"
+//usage:     "\n	-p,--pidfile FILE	Create pidfile"
 //usage:     "\n	-B,--broadcast		Request broadcast replies"
-//usage:     "\n	-t,--retries N		Send up to N discover packets"
-//usage:     "\n	-T,--timeout N		Pause between packets (default 3 seconds)"
-//usage:     "\n	-A,--tryagain N		Wait N seconds after failure (default 20)"
+//usage:     "\n	-t,--retries N		Send up to N discover packets (default 3)"
+//usage:     "\n	-T,--timeout SEC	Pause between packets (default 3)"
+//usage:     "\n	-A,--tryagain SEC	Wait if lease is not obtained (default 20)"
+//usage:     "\n	-n,--now		Exit if lease is not obtained"
+//usage:     "\n	-q,--quit		Exit after obtaining lease"
+//usage:     "\n	-R,--release		Release IP on exit"
 //usage:     "\n	-f,--foreground		Run in foreground"
 //usage:	USE_FOR_MMU(
 //usage:     "\n	-b,--background		Background if lease is not obtained"
 //usage:	)
-//usage:     "\n	-n,--now		Exit if lease is not obtained"
-//usage:     "\n	-q,--quit		Exit after obtaining lease"
-//usage:     "\n	-R,--release		Release IP on exit"
 //usage:     "\n	-S,--syslog		Log to syslog too"
-//usage:	IF_FEATURE_UDHCP_PORT(
-//usage:     "\n	-P,--client-port N	Use port N (default 68)"
-//usage:	)
 //usage:	IF_FEATURE_UDHCPC_ARPING(
 //usage:     "\n	-a,--arping		Use arping to validate offered address"
 //usage:	)
-//usage:     "\n	-O,--request-option OPT	Request option OPT from server (cumulative)"
-//usage:     "\n	-o,--no-default-options	Don't request any options (unless -O is given)"
 //usage:     "\n	-r,--request IP		Request this IP address"
+//usage:     "\n	-o,--no-default-options	Don't request any options (unless -O is given)"
+//usage:     "\n	-O,--request-option OPT	Request option OPT from server (cumulative)"
 //usage:     "\n	-x OPT:VAL		Include option OPT in sent packets (cumulative)"
 //usage:     "\n				Examples of string, numeric, and hex byte opts:"
 //usage:     "\n				-x hostname:bbox - option 12"
@@ -1177,29 +1187,29 @@
 //usage:	)
 //usage:	IF_NOT_LONG_OPTS(
 //usage:     "\n	-i IFACE	Interface to use (default eth0)"
-//usage:     "\n	-p FILE		Create pidfile"
+//usage:	IF_FEATURE_UDHCP_PORT(
+//usage:     "\n	-P PORT		Use PORT (default 68)"
+//usage:	)
 //usage:     "\n	-s PROG		Run PROG at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")"
+//usage:     "\n	-p FILE		Create pidfile"
 //usage:     "\n	-B		Request broadcast replies"
-//usage:     "\n	-t N		Send up to N discover packets"
-//usage:     "\n	-T N		Pause between packets (default 3 seconds)"
-//usage:     "\n	-A N		Wait N seconds (default 20) after failure"
+//usage:     "\n	-t N		Send up to N discover packets (default 3)"
+//usage:     "\n	-T SEC		Pause between packets (default 3)"
+//usage:     "\n	-A SEC		Wait if lease is not obtained (default 20)"
+//usage:     "\n	-n		Exit if lease is not obtained"
+//usage:     "\n	-q		Exit after obtaining lease"
+//usage:     "\n	-R		Release IP on exit"
 //usage:     "\n	-f		Run in foreground"
 //usage:	USE_FOR_MMU(
 //usage:     "\n	-b		Background if lease is not obtained"
 //usage:	)
-//usage:     "\n	-n		Exit if lease is not obtained"
-//usage:     "\n	-q		Exit after obtaining lease"
-//usage:     "\n	-R		Release IP on exit"
 //usage:     "\n	-S		Log to syslog too"
-//usage:	IF_FEATURE_UDHCP_PORT(
-//usage:     "\n	-P N		Use port N (default 68)"
-//usage:	)
 //usage:	IF_FEATURE_UDHCPC_ARPING(
 //usage:     "\n	-a		Use arping to validate offered address"
 //usage:	)
-//usage:     "\n	-O OPT		Request option OPT from server (cumulative)"
-//usage:     "\n	-o		Don't request any options (unless -O is given)"
 //usage:     "\n	-r IP		Request this IP address"
+//usage:     "\n	-o		Don't request any options (unless -O is given)"
+//usage:     "\n	-O OPT		Request option OPT from server (cumulative)"
 //usage:     "\n	-x OPT:VAL	Include option OPT in sent packets (cumulative)"
 //usage:     "\n			Examples of string, numeric, and hex byte opts:"
 //usage:     "\n			-x hostname:bbox - option 12"
@@ -1647,14 +1657,19 @@
  * might work too.
  * "Next server" and router are definitely wrong ones to use, though...
  */
+/* We used to ignore pcakets without DHCP_SERVER_ID.
+ * I've got user reports from people who run "address-less" servers.
+ * They either supply DHCP_SERVER_ID of 0.0.0.0 or don't supply it at all.
+ * They say ISC DHCP client supports this case.
+ */
+				server_addr = 0;
 				temp = udhcp_get_option(&packet, DHCP_SERVER_ID);
 				if (!temp) {
-					bb_error_msg("no server ID, ignoring packet");
-					continue;
-					/* still selecting - this server looks bad */
+					bb_error_msg("no server ID, using 0.0.0.0");
+				} else {
+					/* it IS unaligned sometimes, don't "optimize" */
+					move_from_unaligned32(server_addr, temp);
 				}
-				/* it IS unaligned sometimes, don't "optimize" */
-				move_from_unaligned32(server_addr, temp);
 				/*xid = packet.xid; - already is */
 				requested_ip = packet.yiaddr;
 
diff --git a/networking/udhcp/dhcpc.h b/networking/udhcp/dhcpc.h
index 2859a07..9f423a5 100644
--- a/networking/udhcp/dhcpc.h
+++ b/networking/udhcp/dhcpc.h
@@ -29,9 +29,11 @@
 #define client_config (*(struct client_config_t*)(&bb_common_bufsiz1[COMMON_BUFSIZE / 2]))
 
 #if ENABLE_FEATURE_UDHCP_PORT
-#define CLIENT_PORT (client_config.port)
+#define CLIENT_PORT  (client_config.port)
+#define CLIENT_PORT6 (client_config.port)
 #else
-#define CLIENT_PORT 68
+#define CLIENT_PORT  68
+#define CLIENT_PORT6 546
 #endif
 
 POP_SAVED_FUNCTION_VISIBILITY
diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c
index 9ad9595..a1a7f6b 100644
--- a/networking/udhcp/dhcpd.c
+++ b/networking/udhcp/dhcpd.c
@@ -22,11 +22,12 @@
  */
 
 //usage:#define udhcpd_trivial_usage
-//usage:       "[-fS]" IF_FEATURE_UDHCP_PORT(" [-P N]") " [CONFFILE]"
+//usage:       "[-fS] [-I ADDR]" IF_FEATURE_UDHCP_PORT(" [-P N]") " [CONFFILE]"
 //usage:#define udhcpd_full_usage "\n\n"
 //usage:       "DHCP server\n"
 //usage:     "\n	-f	Run in foreground"
 //usage:     "\n	-S	Log to syslog too"
+//usage:     "\n	-I ADDR	Local address"
 //usage:	IF_FEATURE_UDHCP_PORT(
 //usage:     "\n	-P N	Use port N (default 67)"
 //usage:	)
@@ -302,6 +303,7 @@
 	unsigned num_ips;
 	unsigned opt;
 	struct option_set *option;
+	char *str_I = str_I;
 	IF_FEATURE_UDHCP_PORT(char *str_P;)
 
 #if ENABLE_FEATURE_UDHCP_PORT
@@ -312,8 +314,10 @@
 #if defined CONFIG_UDHCP_DEBUG && CONFIG_UDHCP_DEBUG >= 1
 	opt_complementary = "vv";
 #endif
-	opt = getopt32(argv, "fSv"
-		IF_FEATURE_UDHCP_PORT("P:", &str_P)
+	opt = getopt32(argv, "fSI:v"
+		IF_FEATURE_UDHCP_PORT("P:")
+		, &str_I
+		IF_FEATURE_UDHCP_PORT(, &str_P)
 		IF_UDHCP_VERBOSE(, &dhcp_verbose)
 		);
 	if (!(opt & 1)) { /* no -f */
@@ -326,8 +330,13 @@
 		openlog(applet_name, LOG_PID, LOG_DAEMON);
 		logmode |= LOGMODE_SYSLOG;
 	}
+	if (opt & 4) { /* -I */
+		len_and_sockaddr *lsa = xhost_and_af2sockaddr(str_I, 0, AF_INET);
+		server_config.server_nip = lsa->u.sin.sin_addr.s_addr;
+		free(lsa);
+	}
 #if ENABLE_FEATURE_UDHCP_PORT
-	if (opt & 8) { /* -P */
+	if (opt & 16) { /* -P */
 		SERVER_PORT = xatou16(str_P);
 		CLIENT_PORT = SERVER_PORT + 1;
 	}
@@ -367,7 +376,7 @@
 
 	if (udhcp_read_interface(server_config.interface,
 			&server_config.ifindex,
-			&server_config.server_nip,
+			(server_config.server_nip == 0 ? &server_config.server_nip : NULL),
 			server_config.server_mac)
 	) {
 		retval = 1;
diff --git a/networking/udhcp/dhcpd.h b/networking/udhcp/dhcpd.h
index 7c801bf..a77724f 100644
--- a/networking/udhcp/dhcpd.h
+++ b/networking/udhcp/dhcpd.h
@@ -61,9 +61,11 @@
 /* client_config sits in 2nd half of bb_common_bufsiz1 */
 
 #if ENABLE_FEATURE_UDHCP_PORT
-#define SERVER_PORT (server_config.port)
+#define SERVER_PORT  (server_config.port)
+#define SERVER_PORT6 (server_config.port)
 #else
-#define SERVER_PORT 67
+#define SERVER_PORT  67
+#define SERVER_PORT6 547
 #endif
 
 
diff --git a/networking/udhcp/packet.c b/networking/udhcp/packet.c
index 33c9585..148f525 100644
--- a/networking/udhcp/packet.c
+++ b/networking/udhcp/packet.c
@@ -143,8 +143,15 @@
 	 *
 	 * In order to work with those buggy servers,
 	 * we truncate packets after end option byte.
+	 *
+	 * However, RFC 1542 says "The IP Total Length and UDP Length
+	 * must be large enough to contain the minimal BOOTP header of 300 octets".
+	 * Thus, we retain enough padding to not go below 300 BOOTP bytes.
+	 * Some devices have filters which drop DHCP packets shorter than that.
 	 */
 	padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(packet.data.options);
+	if (padding > DHCP_SIZE - 300)
+		padding = DHCP_SIZE - 300;
 
 	packet.ip.protocol = IPPROTO_UDP;
 	packet.ip.saddr = source_nip;
@@ -215,6 +222,8 @@
 
 	udhcp_dump_packet(dhcp_pkt);
 	padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(dhcp_pkt->options);
+	if (padding > DHCP_SIZE - 300)
+		padding = DHCP_SIZE - 300;
 	result = safe_write(fd, dhcp_pkt, DHCP_SIZE - padding);
 	msg = "write";
  ret_close:
diff --git a/networking/wget.c b/networking/wget.c
index 071cd94..e15f68d 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -62,16 +62,17 @@
 	const char *curfile;      /* Name of current file being transferred */
 	bb_progress_t pmt;
 #endif
-        char *dir_prefix;
+	char *dir_prefix;
 #if ENABLE_FEATURE_WGET_LONG_OPTIONS
-        char *post_data;
-        char *extra_headers;
+	char *post_data;
+	char *extra_headers;
 #endif
-        char *fname_out;        /* where to direct output (-O) */
-        const char *proxy_flag; /* Use proxies if env vars are set */
-        const char *user_agent; /* "User-Agent" header field */
+	char *fname_out;        /* where to direct output (-O) */
+	const char *proxy_flag; /* Use proxies if env vars are set */
+	const char *user_agent; /* "User-Agent" header field */
 #if ENABLE_FEATURE_WGET_TIMEOUT
 	unsigned timeout_seconds;
+	bool connecting;
 #endif
 	int output_fd;
 	int o_flags;
@@ -86,8 +87,10 @@
 } FIX_ALIASING;
 #define G (*ptr_to_globals)
 #define INIT_G() do { \
-        SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
-	IF_FEATURE_WGET_TIMEOUT(G.timeout_seconds = 900;) \
+	SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
+} while (0)
+#define FINI_G() do { \
+	FREE_PTR_TO_GLOBALS(); \
 } while (0)
 
 
@@ -195,13 +198,27 @@
 	return s;
 }
 
+#if ENABLE_FEATURE_WGET_TIMEOUT
+static void alarm_handler(int sig UNUSED_PARAM)
+{
+	/* This is theoretically unsafe (uses stdio and malloc in signal handler) */
+	if (G.connecting)
+		bb_error_msg_and_die("download timed out");
+}
+#endif
+
 static FILE *open_socket(len_and_sockaddr *lsa)
 {
+	int fd;
 	FILE *fp;
 
+	IF_FEATURE_WGET_TIMEOUT(alarm(G.timeout_seconds); G.connecting = 1;)
+	fd = xconnect_stream(lsa);
+	IF_FEATURE_WGET_TIMEOUT(G.connecting = 0;)
+
 	/* glibc 2.4 seems to try seeking on it - ??! */
 	/* hopefully it understands what ESPIPE means... */
-	fp = fdopen(xconnect_stream(lsa), "r+");
+	fp = fdopen(fd, "r+");
 	if (fp == NULL)
 		bb_perror_msg_and_die("%s", bb_msg_memory_exhausted);
 
@@ -209,6 +226,7 @@
 }
 
 /* Returns '\n' if it was seen, else '\0'. Trims at first '\r' or '\n' */
+/* FIXME: does not respect FEATURE_WGET_TIMEOUT and -T N: */
 static char fgets_and_trim(FILE *fp)
 {
 	char c;
@@ -256,15 +274,22 @@
 	free(h->allocated);
 	h->allocated = url = xstrdup(src_url);
 
-	if (strncmp(url, "http://", 7) == 0) {
-		h->port = bb_lookup_port("http", "tcp", 80);
-		h->host = url + 7;
-		h->is_ftp = 0;
-	} else if (strncmp(url, "ftp://", 6) == 0) {
+	if (strncmp(url, "ftp://", 6) == 0) {
 		h->port = bb_lookup_port("ftp", "tcp", 21);
 		h->host = url + 6;
 		h->is_ftp = 1;
 	} else
+	if (strncmp(url, "http://", 7) == 0) {
+		h->host = url + 7;
+ http:
+		h->port = bb_lookup_port("http", "tcp", 80);
+		h->is_ftp = 0;
+	} else
+	if (!strstr(url, "//")) {
+		// GNU wget is user-friendly and falls back to http://
+		h->host = url;
+		goto http;
+	} else
 		bb_error_msg_and_die("not an http or ftp url: %s", sanitize_string(url));
 
 	// FYI:
@@ -328,8 +353,16 @@
 		return NULL;
 
 	/* convert the header name to lower case */
-	for (s = G.wget_buf; isalnum(*s) || *s == '-' || *s == '.'; ++s) {
-		/* tolower for "A-Z", no-op for "0-9a-z-." */
+	for (s = G.wget_buf; isalnum(*s) || *s == '-' || *s == '.' || *s == '_'; ++s) {
+		/*
+		 * No-op for 20-3f and 60-7f. "0-9a-z-." are in these ranges.
+		 * 40-5f range ("@A-Z[\]^_") maps to 60-7f.
+		 * "A-Z" maps to "a-z".
+		 * "@[\]" can't occur in header names.
+		 * "^_" maps to "~,DEL" (which is wrong).
+		 * "^" was never seen yet, "_" was seen from web.archive.org
+		 * (x-archive-orig-x_commoncrawl_Signature: HEXSTRING).
+		 */
 		*s |= 0x20;
 	}
 
@@ -936,7 +969,10 @@
 
 	INIT_G();
 
-	IF_FEATURE_WGET_TIMEOUT(G.timeout_seconds = 900;)
+#if ENABLE_FEATURE_WGET_TIMEOUT
+	G.timeout_seconds = 900;
+	signal(SIGALRM, alarm_handler);
+#endif
 	G.proxy_flag = "on";   /* use proxies if env vars are set */
 	G.user_agent = "Wget"; /* "User-Agent" header field */
 
@@ -987,5 +1023,10 @@
 	if (G.output_fd >= 0)
 		xclose(G.output_fd);
 
+#if ENABLE_FEATURE_CLEAN_UP && ENABLE_FEATURE_WGET_LONG_OPTIONS
+	free(G.extra_headers);
+#endif
+	FINI_G();
+
 	return EXIT_SUCCESS;
 }
diff --git a/procps/kill.c b/procps/kill.c
index cb129ac..f4637c4 100644
--- a/procps/kill.c
+++ b/procps/kill.c
@@ -60,7 +60,7 @@
  * This is needed to avoid collision with kill -9 ... syntax
  */
 
-int kill_main(int argc, char **argv)
+int kill_main(int argc UNUSED_PARAM, char **argv)
 {
 	char *arg;
 	pid_t pid;
@@ -79,10 +79,9 @@
 #endif
 
 	/* Parse any options */
-	argc--;
 	arg = *++argv;
 
-	if (argc < 1 || arg[0] != '-') {
+	if (!arg || arg[0] != '-') {
 		goto do_it_now;
 	}
 
@@ -91,13 +90,14 @@
 	 * echo "Died of SIG`kill -l $?`"
 	 * We try to mimic what kill from coreutils-6.8 does */
 	if (arg[1] == 'l' && arg[2] == '\0') {
-		if (argc == 1) {
+		arg = *++argv;
+		if (!arg) {
 			/* Print the whole signal list */
 			print_signames();
 			return 0;
 		}
 		/* -l <sig list> */
-		while ((arg = *++argv)) {
+		do {
 			if (isdigit(arg[0])) {
 				signo = bb_strtou(arg, NULL, 10);
 				if (errno) {
@@ -118,8 +118,8 @@
 				}
 				printf("%d\n", signo);
 			}
-		}
-		/* If they specified -l, we are all done */
+			arg = *++argv;
+		} while (arg);
 		return EXIT_SUCCESS;
 	}
 
@@ -127,8 +127,7 @@
 	if (killall && arg[1] == 'q' && arg[2] == '\0') {
 		quiet = 1;
 		arg = *++argv;
-		argc--;
-		if (argc < 1)
+		if (!arg)
 			bb_show_usage();
 		if (arg[0] != '-')
 			goto do_it_now;
@@ -140,8 +139,7 @@
 	if (killall5 && arg[0] == 'o')
 		goto do_it_now;
 
-	if (argc > 1 && arg[0] == 's' && arg[1] == '\0') { /* -s SIG? */
-		argc--;
+	if (argv[1] && arg[0] == 's' && arg[1] == '\0') { /* -s SIG? */
 		arg = *++argv;
 	} /* else it must be -SIG */
 	signo = get_signum(arg);
@@ -150,7 +148,6 @@
 		return EXIT_FAILURE;
 	}
 	arg = *++argv;
-	argc--;
 
  do_it_now:
 	pid = getpid();
@@ -158,7 +155,8 @@
 	if (killall5) {
 		pid_t sid;
 		procps_status_t* p = NULL;
-		int ret = 0;
+		/* compat: exitcode 2 is "no one was signaled" */
+		int ret = 2;
 
 		/* Find out our session id */
 		sid = getsid(pid);
@@ -167,9 +165,10 @@
 			kill(-1, SIGSTOP);
 		/* Signal all processes except those in our session */
 		while ((p = procps_scan(p, PSSCAN_PID|PSSCAN_SID)) != NULL) {
-			int i;
+			char **args;
 
 			if (p->sid == (unsigned)sid
+			 || p->sid == 0 /* compat: kernel thread, don't signal it */
 			 || p->pid == (unsigned)pid
 			 || p->pid == 1
 			) {
@@ -178,18 +177,19 @@
 
 			/* All remaining args must be -o PID options.
 			 * Check p->pid against them. */
-			for (i = 0; i < argc; i++) {
+			args = argv;
+			while (*args) {
 				pid_t omit;
 
-				arg = argv[i];
+				arg = *args++;
 				if (arg[0] != '-' || arg[1] != 'o') {
 					bb_error_msg("bad option '%s'", arg);
 					ret = 1;
 					goto resume;
 				}
 				arg += 2;
-				if (!arg[0] && argv[++i])
-					arg = argv[i];
+				if (!arg[0] && *args)
+					arg = *args++;
 				omit = bb_strtoi(arg, NULL, 10);
 				if (errno) {
 					bb_error_msg("invalid number '%s'", arg);
@@ -200,6 +200,7 @@
 					goto dont_kill;
 			}
 			kill(p->pid, signo);
+			ret = 0;
  dont_kill: ;
 		}
  resume:
@@ -210,14 +211,14 @@
 	}
 
 	/* Pid or name is required for kill/killall */
-	if (argc < 1) {
+	if (!arg) {
 		bb_error_msg("you need to specify whom to kill");
 		return EXIT_FAILURE;
 	}
 
 	if (killall) {
 		/* Looks like they want to do a killall.  Do that */
-		while (arg) {
+		do {
 			pid_t* pidList;
 
 			pidList = find_pid_by_name(arg);
@@ -240,7 +241,7 @@
 			}
 			free(pidList);
 			arg = *++argv;
-		}
+		} while (arg);
 		return errors;
 	}
 
diff --git a/procps/lsof.c b/procps/lsof.c
index ee39ddb..281a55c 100644
--- a/procps/lsof.c
+++ b/procps/lsof.c
@@ -61,9 +61,12 @@
 		d_fd = opendir(name);
 		if (d_fd) {
 			while ((entry = readdir(d_fd)) != NULL) {
-				if (entry->d_type == DT_LNK) {
-					safe_strncpy(name + baseofs, entry->d_name, 10);
-					fdlink = xmalloc_readlink(name);
+				/* Skip entries '.' and '..' (and any hidden file) */
+				if (entry->d_name[0] == '.')
+					continue;
+
+				safe_strncpy(name + baseofs, entry->d_name, 10);
+				if ((fdlink = xmalloc_readlink(name)) != NULL) {
 					printf("%d\t%s\t%s\n", proc->pid, proc->exe, fdlink);
 					free(fdlink);
 				}
diff --git a/procps/nmeter.c b/procps/nmeter.c
index 6a3b327..5d5b83b 100644
--- a/procps/nmeter.c
+++ b/procps/nmeter.c
@@ -333,8 +333,7 @@
 	char buf[5];
 
 	/* see http://en.wikipedia.org/wiki/Tera */
-	smart_ulltoa4(ul, buf, " kmgtpezy");
-	buf[4] = '\0';
+	smart_ulltoa4(ul, buf, " kmgtpezy")[0] = '\0';
 	put(buf);
 }
 
diff --git a/procps/pgrep.c b/procps/pgrep.c
index 044f553..4ab458b 100644
--- a/procps/pgrep.c
+++ b/procps/pgrep.c
@@ -65,9 +65,9 @@
 {
 	if (pgrep) {
 		if (option_mask32 & (1 << OPTBIT_L)) /* OPT_LIST */
-			printf("%d %s\n", pid, cmd);
+			printf("%u %s\n", pid, cmd);
 		else
-			printf("%d\n", pid);
+			printf("%u\n", pid);
 	} else
 		kill(pid, signo);
 }
@@ -128,7 +128,7 @@
 		bb_show_usage();
 
 	if (argv[0])
-		xregcomp(&re_buffer, argv[0], REG_EXTENDED | REG_NOSUB);
+		xregcomp(&re_buffer, argv[0], OPT_ANCHOR ? REG_EXTENDED : (REG_EXTENDED|REG_NOSUB));
 
 	matched_pid = 0;
 	cmd_last = NULL;
diff --git a/procps/powertop.c b/procps/powertop.c
index 71988a2..e3c29d1 100644
--- a/procps/powertop.c
+++ b/procps/powertop.c
@@ -627,7 +627,6 @@
 		int i, n = 0;
 		char strbuf6[6];
 
-		strbuf6[5] = '\0';
 		puts("\nTop causes for wakeups:");
 		for (i = 0; i < G.lines_cnt; i++) {
 			if ((G.lines[i].count > 0 /*|| G.lines[i].disk_count > 0*/)
@@ -639,7 +638,7 @@
 				/*char c = ' ';
 				if (G.lines[i].disk_count)
 					c = 'D';*/
-				smart_ulltoa5(G.lines[i].count, strbuf6, " KMGTPEZY");
+				smart_ulltoa5(G.lines[i].count, strbuf6, " KMGTPEZY")[0] = '\0';
 				printf(/*" %5.1f%% (%s)%c  %s\n"*/
 					" %5.1f%% (%s)   %s\n",
 					G.lines[i].count * 100.0 / G.lines_cumulative_count,
diff --git a/procps/ps.c b/procps/ps.c
index 0df20b7..ba8bc9a 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -70,7 +70,7 @@
 enum { MAX_WIDTH = 2*1024 };
 
 #if ENABLE_FEATURE_PS_TIME || ENABLE_FEATURE_PS_LONG
-static long get_uptime(void)
+static unsigned long get_uptime(void)
 {
 #ifdef __linux__
 	struct sysinfo info;
@@ -78,12 +78,15 @@
 		return 0;
 	return info.uptime;
 #elif 1
-	char buf[64];
-	long uptime;
+	unsigned long uptime;
+	char buf[sizeof(uptime)*3 + 2];
+	/* /proc/uptime is "UPTIME_SEC.NN IDLE_SEC.NN\n"
+	 * (where IDLE is cumulative over all CPUs)
+	 */
 	if (open_read_close("/proc/uptime", buf, sizeof(buf)) <= 0)
-		bb_perror_msg_and_die("can't read %s", "/proc/uptime");
+		bb_perror_msg_and_die("can't read '%s'", "/proc/uptime");
 	buf[sizeof(buf)-1] = '\0';
-	sscanf(buf, "%l", &uptime);
+	sscanf(buf, "%lu", &uptime);
 	return uptime;
 #else
 	struct timespec ts;
@@ -138,7 +141,7 @@
 	unsigned terminal_width;
 #if ENABLE_FEATURE_PS_TIME
 	unsigned kernel_HZ;
-	unsigned long long seconds_since_boot;
+	unsigned long seconds_since_boot;
 #endif
 } FIX_ALIASING;
 #define G (*(struct globals*)&bb_common_bufsiz1)
@@ -149,14 +152,13 @@
 #define buffer             (G.buffer            )
 #define terminal_width     (G.terminal_width    )
 #define kernel_HZ          (G.kernel_HZ         )
-#define seconds_since_boot (G.seconds_since_boot)
 #define INIT_G() do { } while (0)
 
 #if ENABLE_FEATURE_PS_TIME
 /* for ELF executables, notes are pushed before environment and args */
-static ptrdiff_t find_elf_note(ptrdiff_t findme)
+static uintptr_t find_elf_note(uintptr_t findme)
 {
-	ptrdiff_t *ep = (ptrdiff_t *) environ;
+	uintptr_t *ep = (uintptr_t *) environ;
 
 	while (*ep++)
 		continue;
@@ -222,7 +224,6 @@
 
 static unsigned get_kernel_HZ(void)
 {
-
 	if (kernel_HZ)
 		return kernel_HZ;
 
@@ -231,7 +232,7 @@
 	if (kernel_HZ == (unsigned)-1)
 		kernel_HZ = get_HZ_by_waiting();
 
-	seconds_since_boot = get_uptime();
+	G.seconds_since_boot = get_uptime();
 
 	return kernel_HZ;
 }
@@ -298,8 +299,7 @@
 	char buf4[5];
 
 	/* see http://en.wikipedia.org/wiki/Tera */
-	smart_ulltoa4(u, buf4, " mgtpezy");
-	buf4[4] = '\0';
+	smart_ulltoa4(u, buf4, " mgtpezy")[0] = '\0';
 	sprintf(buf, "%.*s", size, buf4);
 }
 
@@ -350,7 +350,7 @@
 
 	mm = ps->start_time / get_kernel_HZ();
 	/* must be after get_kernel_HZ()! */
-	mm = seconds_since_boot - mm;
+	mm = G.seconds_since_boot - mm;
 	ss = mm % 60;
 	mm /= 60;
 	snprintf(buf, size+1, "%3lu:%02u", mm, ss);
@@ -588,7 +588,7 @@
 	// -o col1,col2,col3=header
 	//     Select which columns to display
 	/* We allow (and ignore) most of the above. FIXME.
-	 * -T is picked for threads (POSIX hasn't it standardized).
+	 * -T is picked for threads (POSIX hasn't standardized it).
 	 * procps v3.2.7 supports -T and shows tids as SPID column,
 	 * it also supports -L where it shows tids as LWP column.
 	 */
@@ -599,7 +599,9 @@
 			parse_o(llist_pop(&opt_o));
 		} while (opt_o);
 	} else {
-		/* Below: parse_o() needs char*, NOT const char*, can't give it default_o */
+		/* Below: parse_o() needs char*, NOT const char*,
+		 * can't pass it constant string. Need to make a copy first.
+		 */
 #if ENABLE_SELINUX
 		if (!(opt & OPT_Z) || !is_selinux_enabled()) {
 			/* no -Z or no SELinux: do not show LABEL */
@@ -652,8 +654,13 @@
 		OPT_l = (1 << ENABLE_SELINUX) * (1 << ENABLE_FEATURE_SHOW_THREADS) * ENABLE_FEATURE_PS_LONG,
 	};
 #if ENABLE_FEATURE_PS_LONG
+  #ifdef __BIONIC__
 	time_t now = 0;
 	long uptime = 0;
+  #else
+	time_t now = now;
+	unsigned long uptime;
+  #endif
 #endif
 	/* If we support any options, parse argv */
 #if ENABLE_SELINUX || ENABLE_FEATURE_SHOW_THREADS || ENABLE_FEATURE_PS_WIDE || ENABLE_FEATURE_PS_LONG
@@ -737,8 +744,7 @@
 #endif
 		{
 			char buf6[6];
-			smart_ulltoa5(p->vsz, buf6, " mgtpezy");
-			buf6[5] = '\0';
+			smart_ulltoa5(p->vsz, buf6, " mgtpezy")[0] = '\0';
 #if ENABLE_FEATURE_PS_LONG
 			if (opts & OPT_l) {
 				char bufr[6], stime_str[6];
@@ -749,8 +755,7 @@
 				time_t start = now - elapsed;
 				struct tm *tm = localtime(&start);
 
-				smart_ulltoa5(p->rss, bufr, " mgtpezy");
-				bufr[5] = '\0';
+				smart_ulltoa5(p->rss, bufr, " mgtpezy")[0] = '\0';
 
 				if (p->tty_major == 136)
 					/* It should be pts/N, not ptsN, but N > 9
diff --git a/procps/pstree.c b/procps/pstree.c
index 45fce3a..2ff5ccb 100644
--- a/procps/pstree.c
+++ b/procps/pstree.c
@@ -34,8 +34,15 @@
 
 struct child;
 
+#ifdef ENABLE_FEATURE_SHOW_THREADS
+/* For threads, we add {...} around the comm, so we need two extra bytes */
+# define COMM_DISP_LEN (COMM_LEN + 2)
+#else
+# define COMM_DISP_LEN COMM_LEN
+#endif
+
 typedef struct proc {
-	char comm[COMM_LEN + 1];
+	char comm[COMM_DISP_LEN + 1];
 //	char flags; - unused, delete?
 	pid_t pid;
 	uid_t uid;
@@ -341,8 +348,8 @@
 #if ENABLE_FEATURE_SHOW_THREADS
 static void handle_thread(const char *comm, pid_t pid, pid_t ppid, uid_t uid)
 {
-	char threadname[COMM_LEN + 2];
-	sprintf(threadname, "{%.*s}", COMM_LEN - 2, comm);
+	char threadname[COMM_DISP_LEN + 1];
+	sprintf(threadname, "{%.*s}", (int)sizeof(threadname) - 3, comm);
 	add_proc(threadname, pid, ppid, uid/*, 1*/);
 }
 #endif
diff --git a/procps/smemcap.c b/procps/smemcap.c
index 9d1126a..7dc1601 100644
--- a/procps/smemcap.c
+++ b/procps/smemcap.c
@@ -36,8 +36,16 @@
 	strcpy(header.name, path);
 	sprintf(header.mode, "%o", sb->st_mode & 0777);
 	/* careful to not overflow fields! */
+#ifdef BIONIC_L
+	sprintf(header.uid, "%uo", sb->st_uid & 07777777);
+	sprintf(header.gid, "%uo", sb->st_gid & 07777777);
+#elif defined(__BIONIC__)
+	sprintf(header.uid, "%lo", sb->st_uid & 07777777);
+	sprintf(header.gid, "%lo", sb->st_gid & 07777777);
+#else
 	sprintf(header.uid, "%o", sb->st_uid & 07777777);
 	sprintf(header.gid, "%o", sb->st_gid & 07777777);
+#endif
 	sprintf(header.size, "%o", (unsigned)sb->st_size);
 	sprintf(header.mtime, "%llo", sb->st_mtime & 077777777777LL);
 	header.typeflag = type;
diff --git a/procps/top.c b/procps/top.c
index 2908bd3..51f1c1a 100644
--- a/procps/top.c
+++ b/procps/top.c
@@ -294,7 +294,7 @@
 	 * they are used to calculate per process CPU% */
 	prev_jif = cur_jif;
 	if (read_cpu_jiffy(fp, &cur_jif) < 4)
-		bb_error_msg_and_die("can't read /proc/stat");
+		bb_error_msg_and_die("can't read '%s'", "/proc/stat");
 
 #if !ENABLE_FEATURE_TOP_SMP_CPU
 	fclose(fp);
@@ -677,7 +677,7 @@
 		if (s->vsz >= 100000)
 			sprintf(vsz_str_buf, "%6ldm", s->vsz/1024);
 		else
-			sprintf(vsz_str_buf, "%7ld", s->vsz);
+			sprintf(vsz_str_buf, "%7lu", s->vsz);
 		/* PID PPID USER STAT VSZ %VSZ [%CPU] COMMAND */
 		col = snprintf(line_buf, scr_width,
 				"\n" "%5u%6u %-8.8s %s%s" FMT
@@ -847,8 +847,7 @@
 static void ulltoa6_and_space(unsigned long long ul, char buf[6])
 {
 	/* see http://en.wikipedia.org/wiki/Tera */
-	smart_ulltoa5(ul, buf, " mgtpezy");
-	buf[5] = ' ';
+	smart_ulltoa5(ul, buf, " mgtpezy")[0] = ' ';
 }
 
 static NOINLINE void display_topmem_process_list(int lines_rem, int scr_width)
diff --git a/procps/watch.c b/procps/watch.c
index 36af1cc..0397f21 100644
--- a/procps/watch.c
+++ b/procps/watch.c
@@ -69,7 +69,6 @@
 		printf("\033[H""\033[J");
 		if (!(opt & 0x2)) { // no -t
 			const unsigned time_len = sizeof("1234-67-90 23:56:89");
-			time_t t;
 
 			// STDERR_FILENO is procps3 compat:
 			// "watch ls 2>/dev/null" does not detect tty size
@@ -79,10 +78,13 @@
 				free(header);
 				header = xasprintf("Every %us: %-*s", period, (int)width, cmd);
 			}
-			time(&t);
-			if (time_len < width)
-				strftime(header + width - time_len, time_len,
-					"%Y-%m-%d %H:%M:%S", localtime(&t));
+			if (time_len < width) {
+				strftime_YYYYMMDDHHMMSS(
+					header + width - time_len,
+					time_len,
+					/*time_t*:*/ NULL
+				);
+			}
 
 			// compat: empty line between header and cmd output
 			printf("%s\n\n", header);
diff --git a/runit/chpst.c b/runit/chpst.c
index ed72c8b..71af29f 100644
--- a/runit/chpst.c
+++ b/runit/chpst.c
@@ -236,7 +236,6 @@
 {
 	struct bb_uidgid_t ugid;
 	char *set_user = set_user; /* for compiler */
-	char *env_user = env_user;
 	char *env_dir = env_dir;
 	char *root;
 	char *nicestr;
@@ -264,7 +263,7 @@
 			IF_CHPST("/:n:vP012"),
 			&limita, &limitc, &limitd, &limitf, &limitl,
 			&limitm, &limito, &limitp, &limitr, &limits, &limitt,
-			&set_user, &env_user, &env_dir
+			&set_user, &set_user, &env_dir
 			IF_CHPST(, &root, &nicestr));
 		argv += optind;
 		if (opt & OPT_m) { // -m means -asld
@@ -292,7 +291,7 @@
 
 	// envuidgid?
 	if (ENABLE_ENVUIDGID && applet_name[0] == 'e' && applet_name[3] == 'u') {
-		env_user = *argv++;
+		set_user = *argv++;
 		opt |= OPT_U;
 	}
 
diff --git a/runit/runsv.c b/runit/runsv.c
index 3e1a3c8..d941e89 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -33,7 +33,6 @@
 //usage:#define runsv_full_usage "\n\n"
 //usage:       "Start and monitor a service and optionally an appendant log service"
 
-#include <sys/poll.h>
 #include <sys/file.h>
 #include "libbb.h"
 #include "runit_lib.h"
diff --git a/runit/runsvdir.c b/runit/runsvdir.c
index 32526cf..af7e75b 100644
--- a/runit/runsvdir.c
+++ b/runit/runsvdir.c
@@ -35,7 +35,6 @@
 //usage:     "\n	-P		Put each runsv in a new session"
 //usage:     "\n	-s SCRIPT	Run SCRIPT <signo> after signal is processed"
 
-#include <sys/poll.h>
 #include <sys/file.h>
 #include "libbb.h"
 #include "runit_lib.h"
diff --git a/runit/sv.c b/runit/sv.c
index 5b01c87..825e9d4 100644
--- a/runit/sv.c
+++ b/runit/sv.c
@@ -169,7 +169,6 @@
 //usage:       "pause, cont, hup, alarm, interrupt, quit, 1, 2, term, kill: send\n"
 //usage:       "STOP, CONT, HUP, ALRM, INT, QUIT, USR1, USR2, TERM, KILL signal to service"
 
-#include <sys/poll.h>
 #include <sys/file.h>
 #include "libbb.h"
 #include "runit_lib.h"
diff --git a/runit/svlogd.c b/runit/svlogd.c
index b7a0a6e..c080b9a 100644
--- a/runit/svlogd.c
+++ b/runit/svlogd.c
@@ -142,7 +142,6 @@
 //usage:   "\n""+,-PATTERN - (de)select line for logging"
 //usage:   "\n""E,ePATTERN - (de)select line for stderr"
 
-#include <sys/poll.h>
 #include <sys/file.h>
 #include "libbb.h"
 #include "runit_lib.h"
@@ -745,11 +744,6 @@
 				ld->inst = new;
 				break;
 			case 's': {
-				static const struct suffix_mult km_suffixes[] = {
-					{ "k", 1024 },
-					{ "m", 1024*1024 },
-					{ "", 0 }
-				};
 				ld->sizemax = xatou_sfx(&s[1], km_suffixes);
 				break;
 			}
diff --git a/scripts/Makefile.host b/scripts/Makefile.host
index 484d446..2e62850 100644
--- a/scripts/Makefile.host
+++ b/scripts/Makefile.host
@@ -89,8 +89,8 @@
 __hostcxx_flags	= -I$(obj) $(call flags,_hostcxx_flags)
 endif
 
-hostc_flags    = -Wp,-Wno-unused-result,-MD,$(depfile) $(__hostc_flags)
-hostcxx_flags  = -Wp,-Wno-unused-result,-MD,$(depfile) $(__hostcxx_flags)
+hostc_flags    = -Wp,-MD,$(depfile) $(__hostc_flags)
+hostcxx_flags  = -Wp,-MD,$(depfile) $(__hostcxx_flags)
 
 #####
 # Compile programs on the host
diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter
index 6db2a5e..cb861b8 100755
--- a/scripts/bloat-o-meter
+++ b/scripts/bloat-o-meter
@@ -7,11 +7,14 @@
 # This software may be used and distributed according to the terms
 # of the GNU General Public License, incorporated herein by reference.
 
-import sys, os#, re
+import sys, os
 
 def usage():
-    sys.stderr.write("usage: %s [-t] file1 file2\n" % sys.argv[0])
-    sys.exit(-1)
+    sys.stderr.write("usage: %s [-t] file1 file2 [-- <readelf options>]\n"
+                        % sys.argv[0])
+    sys.stderr.write("\t-t\tShow time spent on parsing/processing\n")
+    sys.stderr.write("\t--\tPass additional parameters to readelf\n")
+    sys.exit(1)
 
 f1, f2 = (None, None)
 flag_timing, dashes = (False, False)
@@ -31,6 +34,8 @@
             f1 = f
         elif f2 is None:
             f2 = f
+        else:
+            usage()
 if flag_timing:
     import time
 if f1 is None or f2 is None:
diff --git a/scripts/gen_build_files.sh b/scripts/gen_build_files.sh
index 0989b2f..d5f7b94 100755
--- a/scripts/gen_build_files.sh
+++ b/scripts/gen_build_files.sh
@@ -17,6 +17,22 @@
 gen() { status "GEN" "$@"; }
 chk() { status "CHK" "$@"; }
 
+# On OSX the sed implementation is not compatible with some of the
+# features in this script, so this uses gsed and warns the user if
+# it does not exist.
+UNAME=$(uname -sm)
+case "$UNAME" in
+*Darwin*|*Macintosh*)
+	SED_IMPL=$(which gsed)
+	if [ $? != 0 ]; then
+		echo "GNU sed is required for Darwin builds, please install and add 'gsed' to the path"
+		exit 1;
+	fi
+	;;
+*)
+	SED_IMPL=sed
+esac
+
 generate()
 {
 	# NB: data to be inserted at INSERT line is coming on stdin
@@ -27,11 +43,11 @@
 		# rules re handling of "\n" in echo params.
 		printf "%s\n" "${header}"
 		# print everything up to INSERT line
-		sed -n '/^INSERT$/ q; p' "${src}"
+		$SED_IMPL -n '/^INSERT$/ q; p' "${src}"
 		# copy stdin to stdout
 		cat
 		# print everything after INSERT line
-		sed -n '/^INSERT$/ { :l; n; p; bl }' "${src}"
+		$SED_IMPL -n '/^INSERT$/ { :l; n; p; bl }' "${src}"
 	} >"${dst}.tmp"
 	if ! cmp -s "${dst}" "${dst}.tmp"; then
 		gen "${dst}"
@@ -42,7 +58,7 @@
 }
 
 # (Re)generate include/applets.h
-sed -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \
+$SED_IMPL -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \
 | generate \
 	"$srctree/include/applets.src.h" \
 	"include/applets.h" \
@@ -52,7 +68,7 @@
 # We add line continuation backslash after each line,
 # and insert empty line before each line which doesn't start
 # with space or tab
-sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\@p' \
+$SED_IMPL -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\@p' \
 	"$srctree"/*/*.c "$srctree"/*/*/*.c \
 | generate \
 	"$srctree/include/usage.src.h" \
@@ -70,7 +86,7 @@
 	if test -f "$src"; then
 		mkdir -p -- "$d" 2>/dev/null
 
-		sed -n 's@^//kbuild:@@p' "$srctree/$d"/*.c \
+		$SED_IMPL -n 's@^//kbuild:@@p' "$srctree/$d"/*.c \
 		| generate \
 			"${src}" "${dst}" \
 			"# DO NOT EDIT. This file is generated from Kbuild.src"
@@ -81,7 +97,7 @@
 	if test -f "$src"; then
 		mkdir -p -- "$d" 2>/dev/null
 
-		sed -n 's@^//config:@@p' "$srctree/$d"/*.c \
+		$SED_IMPL -n 's@^//config:@@p' "$srctree/$d"/*.c \
 		| generate \
 			"${src}" "${dst}" \
 			"# DO NOT EDIT. This file is generated from Config.src"
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 1651390..38bae80 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -150,7 +150,7 @@
 HOSTLOADLIBES_qconf	= $(KC_QT_LIBS) -ldl
 HOSTCXXFLAGS_qconf.o	= $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
 
-HOSTLOADLIBES_gconf	= `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
+HOSTLOADLIBES_gconf	= `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0` -ldl
 HOSTCFLAGS_gconf.o	= `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
                           -D LKC_DIRECT_LINK
 
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index fe6d2db..d21d06e 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -474,7 +474,11 @@
 						fprintf(out_h, "#define CONFIG_%s 1\n", sym->name);
 						/* bbox */
 						fprintf(out_h, "#define ENABLE_%s 1\n", sym->name);
-						fprintf(out_h, "#define IF_%s(...) __VA_ARGS__\n", sym->name);
+						fprintf(out_h, "#ifdef MAKE_SUID\n");
+						fprintf(out_h, "# define IF_%s(...) __VA_ARGS__ \"CONFIG_%s\"\n", sym->name, sym->name);
+						fprintf(out_h, "#else\n");
+						fprintf(out_h, "# define IF_%s(...) __VA_ARGS__\n", sym->name);
+						fprintf(out_h, "#endif\n");
 						fprintf(out_h, "#define IF_NOT_%s(...)\n", sym->name);
 					}
 					break;
@@ -506,7 +510,11 @@
 					fputs("\"\n", out_h);
 					/* bbox */
 					fprintf(out_h, "#define ENABLE_%s 1\n", sym->name);
-					fprintf(out_h, "#define IF_%s(...) __VA_ARGS__\n", sym->name);
+					fprintf(out_h, "#ifdef MAKE_SUID\n");
+					fprintf(out_h, "# define IF_%s(...) __VA_ARGS__ \"CONFIG_%s\"\n", sym->name, sym->name);
+					fprintf(out_h, "#else\n");
+					fprintf(out_h, "# define IF_%s(...) __VA_ARGS__\n", sym->name);
+					fprintf(out_h, "#endif\n");
 					fprintf(out_h, "#define IF_NOT_%s(...)\n", sym->name);
 				}
 				break;
@@ -518,7 +526,11 @@
 						fprintf(out_h, "#define CONFIG_%s 0x%s\n", sym->name, str);
 						/* bbox */
 						fprintf(out_h, "#define ENABLE_%s 1\n", sym->name);
-						fprintf(out_h, "#define IF_%s(...) __VA_ARGS__\n", sym->name);
+						fprintf(out_h, "#ifdef MAKE_SUID\n");
+						fprintf(out_h, "# define IF_%s(...) __VA_ARGS__ \"CONFIG_%s\"\n", sym->name, sym->name);
+						fprintf(out_h, "#else\n");
+						fprintf(out_h, "# define IF_%s(...) __VA_ARGS__\n", sym->name);
+						fprintf(out_h, "#endif\n");
 						fprintf(out_h, "#define IF_NOT_%s(...)\n", sym->name);
 					}
 					break;
@@ -532,7 +544,11 @@
 					fprintf(out_h, "#define CONFIG_%s %s\n", sym->name, str);
 					/* bbox */
 					fprintf(out_h, "#define ENABLE_%s 1\n", sym->name);
-					fprintf(out_h, "#define IF_%s(...) __VA_ARGS__\n", sym->name);
+					fprintf(out_h, "#ifdef MAKE_SUID\n");
+					fprintf(out_h, "# define IF_%s(...) __VA_ARGS__ \"CONFIG_%s\"\n", sym->name, sym->name);
+					fprintf(out_h, "#else\n");
+					fprintf(out_h, "# define IF_%s(...) __VA_ARGS__\n", sym->name);
+					fprintf(out_h, "#endif\n");
 					fprintf(out_h, "#define IF_NOT_%s(...)\n", sym->name);
 				}
 				break;
diff --git a/scripts/mkconfigs b/scripts/mkconfigs
index db94fcc..6a26fe1 100755
--- a/scripts/mkconfigs
+++ b/scripts/mkconfigs
@@ -65,11 +65,11 @@
 
 grep -e '^# CONFIG_' -e '^CONFIG_' "$config" \
 | bzip2 -1 | dd bs=2 skip=1 2>/dev/null \
-| od -v -t x1 \
+| od -v -b \
 | sed -e 's/^[^ ]*//' \
         -e 's/ //g' \
         -e '/^$/d' \
-        -e 's/\(..\)/0x\1,/g'
+        -e 's/\(...\)/0\1,/g'
 
 echo "};"
 echo "#endif"
diff --git a/scripts/randomtest b/scripts/randomtest
index a102593..d2b26bc 100755
--- a/scripts/randomtest
+++ b/scripts/randomtest
@@ -65,6 +65,7 @@
 	| grep -v CONFIG_BUILD_LIBBUSYBOX \
 	| grep -v CONFIG_PIE \
 	\
+	| grep -v CONFIG_FEATURE_TOUCH_NODEREF \
 	| grep -v CONFIG_FEATURE_2_4_MODULES \
 	>.config.new
 	mv .config.new .config
@@ -72,6 +73,7 @@
 	echo '# CONFIG_BUILD_LIBBUSYBOX is not set' >>.config
 	echo '# CONFIG_PIE is not set' >>.config
 	echo '# CONFIG_FEATURE_2_4_MODULES is not set' >>.config
+	echo '# CONFIG_FEATURE_TOUCH_NODEREF is not set' >>.config
 fi
 
 # If STATIC, remove some things.
diff --git a/scripts/trylink b/scripts/trylink
index a8b0b2e..e471699 100755
--- a/scripts/trylink
+++ b/scripts/trylink
@@ -117,7 +117,7 @@
 # First link with all libs. If it fails, bail out
 echo "Trying libraries: $LDLIBS"
 # "lib1 lib2 lib3" -> "-llib1 -llib2 -llib3"
-l_list=`echo "$LDLIBS" | sed -e 's/ / -l/g' -e 's/^/-l/' -e 's/^-l$//'`
+l_list=`echo " $LDLIBS " | sed -e 's: \([^- ][^ ]*\): -l\1:g'`
 test "x$l_list" != "x" && l_list="$START_GROUP $l_list $END_GROUP"
 try $CC $CFLAGS $LDFLAGS \
 	-o $EXE \
@@ -141,7 +141,7 @@
     for one in $LDLIBS; do
 	without_one=`echo " $LDLIBS " | sed "s/ $one / /g" | xargs`
 	# "lib1 lib2 lib3" -> "-llib1 -llib2 -llib3"
-	l_list=`echo "$without_one" | sed -e 's/ / -l/g' -e 's/^/-l/' -e 's/^-l$//'`
+	l_list=`echo " $without_one " | sed -e 's: \([^- ][^ ]*\): -l\1:g'`
 	test x"$l_list" != x"" && l_list="$START_GROUP $l_list $END_GROUP"
 	$debug && echo "Trying -l options: '$l_list'"
 	try $CC $CFLAGS $LDFLAGS \
@@ -172,7 +172,7 @@
 
 # Make the binary with final, minimal list of libs
 echo "Final link with: ${LDLIBS:-<none>}"
-l_list=`echo "$LDLIBS" | sed -e 's/ / -l/g' -e 's/^/-l/' -e 's/^-l$//'`
+l_list=`echo " $LDLIBS " | sed -e 's: \([^- ][^ ]*\): -l\1:g'`
 test "x$l_list" != "x" && l_list="$START_GROUP $l_list $END_GROUP"
 # --verbose gives us gobs of info to stdout (e.g. linker script used)
 if ! test -f busybox_ldscript; then
diff --git a/selinux/chcon.c b/selinux/chcon.c
index f947c2c..d1e9047 100644
--- a/selinux/chcon.c
+++ b/selinux/chcon.c
@@ -201,7 +201,7 @@
 		fname[fname_len] = '\0';
 
 		if (recursive_action(fname,
-					1<<option_mask32 & OPT_RECURSIVE,
+					option_mask32 & OPT_RECURSIVE,
 					change_filedir_context,
 					change_filedir_context,
 					NULL, 0) != TRUE)
diff --git a/selinux/matchpathcon.c b/selinux/matchpathcon.c
index 9e5728e..f033892 100644
--- a/selinux/matchpathcon.c
+++ b/selinux/matchpathcon.c
@@ -64,6 +64,11 @@
 			bb_perror_msg_and_die("error while processing %s", prefix);
 	}
 
+#ifdef ANDROID
+	if (!(opts & (OPT_FCONTEXT | OPT_PREFIX))) {
+		matchpathcon_init(selinux_file_contexts_path());
+	}
+#endif
 	while ((path = *argv++) != NULL) {
 		security_context_t con;
 		int rc;
diff --git a/selinux/runcon.c b/selinux/runcon.c
index 27f2be3..60d4100 100644
--- a/selinux/runcon.c
+++ b/selinux/runcon.c
@@ -30,8 +30,8 @@
  */
 
 //usage:#define runcon_trivial_usage
-//usage:       "[-c] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] PROG ARGS\n"
-//usage:       "runcon CONTEXT PROG ARGS"
+//usage:       "[-c] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] PROG -- ARGS\n"
+//usage:       "runcon CONTEXT PROG -- ARGS"
 //usage:#define runcon_full_usage "\n\n"
 //usage:       "Run PROG in a different security context\n"
 //usage:     "\n	CONTEXT		Complete security context\n"
@@ -51,7 +51,9 @@
 //usage:	)
 
 #include <selinux/context.h>
+#ifndef ANDROID
 #include <selinux/flask.h>
+#endif
 
 #include "libbb.h"
 
diff --git a/selinux/setfiles.c b/selinux/setfiles.c
index 0173db9..1c8ab89 100644
--- a/selinux/setfiles.c
+++ b/selinux/setfiles.c
@@ -651,6 +651,16 @@
 		argv++;
 	}
 
+#ifdef __BIONIC__
+	else {
+		const char *file_contexts = selinux_file_contexts_path();
+		/* Load the default file contexts configuration and check it. */
+		if (matchpathcon_init(file_contexts) < 0) {
+			bb_perror_msg_and_die("%s not found!", file_contexts);
+		}
+	}
+#endif
+
 	if (input_filename) {
 		ssize_t len;
 		FILE *f = stdin;
diff --git a/shell/ash.c b/shell/ash.c
index e731345..c79ef74 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -385,6 +385,9 @@
 /* ============ Utility functions */
 #define xbarrier() do { __asm__ __volatile__ ("": : :"memory"); } while (0)
 
+#define is_name(c)      ((c) == '_' || isalpha((unsigned char)(c)))
+#define is_in_name(c)   ((c) == '_' || isalnum((unsigned char)(c)))
+
 static int isdigit_str9(const char *str)
 {
 	int maxlen = 9 + 1; /* max 9 digits: 999999999 */
@@ -2008,27 +2011,6 @@
 }
 #endif
 
-/* math.h has these, otherwise define our private copies */
-#if !ENABLE_SH_MATH_SUPPORT
-#define is_name(c)      ((c) == '_' || isalpha((unsigned char)(c)))
-#define is_in_name(c)   ((c) == '_' || isalnum((unsigned char)(c)))
-/*
- * Return the pointer to the first char which is not part of a legal variable name
- * (a letter or underscore followed by letters, underscores, and digits).
- */
-static const char*
-endofname(const char *name)
-{
-	if (!is_name(*name))
-		return name;
-	while (*++name) {
-		if (!is_in_name(*name))
-			break;
-	}
-	return name;
-}
-#endif
-
 /*
  * Compares two strings up to the first = or '\0'.  The first
  * string must be terminated by '='; the second may be terminated by
@@ -2230,10 +2212,10 @@
 
 	INT_OFF;
 	nameeq = ckmalloc(namelen + vallen + 2);
-	p = (char*) ((uint32_t) memcpy(nameeq, name, namelen) + namelen);
+	p = (char*) ((uintptr_t) memcpy(nameeq, name, namelen) + namelen);
 	if (val) {
 		*p++ = '=';
-		p = (char*) ((uint32_t) memcpy(p, val, vallen) + vallen);
+		p = (char*) ((uintptr_t) memcpy(p, val, vallen) + vallen);
 	}
 	*p = '\0';
 	setvareq(nameeq, flags | VNOSAVE);
@@ -2304,7 +2286,7 @@
 			free(vp);
 			INT_ON;
 		} else {
-			setvar(s, 0, 0);
+			setvar2(s, 0);
 			vp->flags &= ~VEXPORT;
 		}
  ok:
@@ -6357,7 +6339,7 @@
 
 	switch (subtype) {
 	case VSASSIGN:
-		setvar(varname, startp, 0);
+		setvar2(varname, startp);
 		amount = startp - expdest;
 		STADJUST(amount, expdest);
 		return startp;
@@ -6368,7 +6350,7 @@
 
 #if ENABLE_ASH_BASH_COMPAT
 	case VSSUBSTR:
-		loc = str = (char*) ((uint32_t) stackblock() + strloc);
+		loc = str = (char*) ((uintptr_t) stackblock() + strloc);
 		/* Read POS in ${var:POS:LEN} */
 		pos = atoi(loc); /* number(loc) errors out on "1:4" */
 		len = str - startp - 1;
@@ -8572,7 +8554,7 @@
 	loopnest++;
 	flags &= EV_TESTED;
 	for (sp = arglist.list; sp; sp = sp->next) {
-		setvar(n->nfor.var, sp->text, 0);
+		setvar2(n->nfor.var, sp->text);
 		evaltree(n->nfor.body, flags);
 		if (evalskip) {
 			if (evalskip == SKIPCONT && --skipcount <= 0) {
@@ -9051,6 +9033,9 @@
 #if !ENABLE_FEATURE_SH_EXTRA_QUIET
 static int helpcmd(int, char **) FAST_FUNC;
 #endif
+#if MAX_HISTORY
+static int historycmd(int, char **) FAST_FUNC;
+#endif
 #if ENABLE_SH_MATH_SUPPORT
 static int letcmd(int, char **) FAST_FUNC;
 #endif
@@ -9124,6 +9109,9 @@
 #if !ENABLE_FEATURE_SH_EXTRA_QUIET
 	{ BUILTIN_NOSPEC        "help"    , helpcmd    },
 #endif
+#if MAX_HISTORY
+	{ BUILTIN_NOSPEC        "history" , historycmd },
+#endif
 #if JOBS
 	{ BUILTIN_REGULAR       "jobs"    , jobscmd    },
 	{ BUILTIN_REGULAR       "kill"    , killcmd    },
@@ -9463,7 +9451,7 @@
 		 * '_' in 'vi' command mode during line editing...
 		 * However I implemented that within libedit itself.
 		 */
-		setvar("_", lastarg, 0);
+		setvar2("_", lastarg);
 	}
 	popstackmark(&smark);
 }
@@ -9669,7 +9657,12 @@
 		 * _during_ shell execution, not only if it was set when
 		 * shell was started. Therefore, re-check LANG every time:
 		 */
-		reinit_unicode(lookupvar("LANG"));
+		{
+			const char *s = lookupvar("LC_ALL");
+			if (!s) s = lookupvar("LC_CTYPE");
+			if (!s) s = lookupvar("LANG");
+			reinit_unicode(s);
+		}
 		nr = read_line_input(line_input_state, cmdedit_prompt, buf, IBUFSIZ, timeout);
 		if (nr == 0) {
 			/* Ctrl+C pressed */
@@ -12276,8 +12269,10 @@
 	/* "false; . empty_file; echo $?" should print 0, not 1: */
 	exitstatus = 0;
 
+	/* This aborts if file isn't found, which is POSIXly correct.
+	 * bash returns exitcode 1 instead.
+	 */
 	fullname = find_dot_file(argv[1]);
-
 	argv += 2;
 	argc -= 2;
 	if (argc) { /* argc > 0, argv[0] != NULL */
@@ -12287,6 +12282,9 @@
 		shellparam.p = argv;
 	};
 
+	/* This aborts if file can't be opened, which is POSIXly correct.
+	 * bash returns exitcode 1 instead.
+	 */
 	setinputfile(fullname, INPUT_PUSH_FILE);
 	commandname = fullname;
 	cmdloop(0);
@@ -12633,6 +12631,15 @@
 }
 #endif /* FEATURE_SH_EXTRA_QUIET */
 
+#if MAX_HISTORY
+static int FAST_FUNC
+historycmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
+{
+	show_history(line_input_state);
+	return EXIT_SUCCESS;
+}
+#endif
+
 /*
  * The export and readonly commands.
  */
@@ -13004,8 +13011,11 @@
 			}
 		}
 
-		setvar("PPID", utoa(getppid()), 0);
-
+		setvar2("PPID", utoa(getppid()));
+#if ENABLE_ASH_BASH_COMPAT
+		p = lookupvar("SHLVL");
+		setvar("SHLVL", utoa((p ? atoi(p) : 0) + 1), VEXPORT);
+#endif
 		p = lookupvar("PWD");
 		if (p) {
 			if (*p != '/' || stat(p, &st1) || stat(".", &st2)
@@ -13209,27 +13219,21 @@
 	setstackmark(&smark);
 	procargs(argv);
 
-#if ENABLE_FEATURE_EDITING_SAVEHISTORY
-	if (iflag) {
-		const char *hp = lookupvar("HISTFILE");
-		if (!hp) {
-			hp = lookupvar("HOME");
-			if (hp) {
-				char *defhp = concat_path_file(hp, ".ash_history");
-				setvar("HISTFILE", defhp, 0);
-				free(defhp);
-			}
-		}
-	}
-#endif
 	if (argv[0] && argv[0][0] == '-')
 		isloginsh = 1;
 	if (isloginsh) {
+		const char *hp;
+
 		state = 1;
 		read_profile("/etc/profile");
  state1:
 		state = 2;
-		read_profile(".profile");
+		hp = lookupvar("HOME");
+		if (hp) {
+			hp = concat_path_file(hp, ".profile");
+			read_profile(hp);
+			free((char*)hp);
+		}
 	}
  state2:
 	state = 3;
@@ -13261,6 +13265,15 @@
 #if MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY
 		if (iflag) {
 			const char *hp = lookupvar("HISTFILE");
+			if (!hp) {
+				hp = lookupvar("HOME");
+				if (hp) {
+					hp = concat_path_file(hp, ".ash_history");
+					setvar2("HISTFILE", hp);
+					free((char*)hp);
+					hp = lookupvar("HISTFILE");
+				}
+			}
 			if (hp)
 				line_input_state->hist_file = hp;
 # if ENABLE_FEATURE_SH_HISTFILESIZE
diff --git a/shell/hush.c b/shell/hush.c
index 2f1d51a..8a4215d 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -850,6 +850,9 @@
 #if ENABLE_HUSH_HELP
 static int builtin_help(char **argv) FAST_FUNC;
 #endif
+#if MAX_HISTORY && ENABLE_FEATURE_EDITING
+static int builtin_history(char **argv) FAST_FUNC;
+#endif
 #if ENABLE_HUSH_LOCAL
 static int builtin_local(char **argv) FAST_FUNC;
 #endif
@@ -919,6 +922,9 @@
 #if ENABLE_HUSH_HELP
 	BLTIN("help"     , builtin_help    , NULL),
 #endif
+#if MAX_HISTORY && ENABLE_FEATURE_EDITING
+	BLTIN("history"  , builtin_history , "Show command history"),
+#endif
 #if ENABLE_HUSH_JOB
 	BLTIN("jobs"     , builtin_jobs    , "List jobs"),
 #endif
@@ -1304,7 +1310,7 @@
  * backgrounds (i.e. stops) or kills all members of currently running
  * pipe.
  *
- * Wait builtin in interruptible by signals for which user trap is set
+ * Wait builtin is interruptible by signals for which user trap is set
  * or by SIGINT in interactive shell.
  *
  * Trap handlers will execute even within trap handlers. (right?)
@@ -1383,7 +1389,7 @@
  * are set to '' (ignore) are NOT reset to defaults. We do the same.
  *
  * Problem: the above approach makes it unwieldy to catch signals while
- * we are in read builtin, of while we read commands from stdin:
+ * we are in read builtin, or while we read commands from stdin:
  * masked signals are not visible!
  *
  * New implementation
@@ -1392,7 +1398,7 @@
  * for them - a bit like emulating kernel pending signal mask in userspace.
  * We are interested in: signals which need to have special handling
  * as described above, and all signals which have traps set.
- * Signals are rocorded in pending_set.
+ * Signals are recorded in pending_set.
  * After each pipe execution, we extract any pending signals
  * and act on them.
  *
@@ -2038,7 +2044,10 @@
 		 * _during_ shell execution, not only if it was set when
 		 * shell was started. Therefore, re-check LANG every time:
 		 */
-		reinit_unicode(get_local_var_value("LANG"));
+		const char *s = get_local_var_value("LC_ALL");
+		if (!s) s = get_local_var_value("LC_CTYPE");
+		if (!s) s = get_local_var_value("LANG");
+		reinit_unicode(s);
 
 		G.flag_SIGINT = 0;
 		/* buglet: SIGINT will not make new prompt to appear _at once_,
@@ -7354,7 +7363,7 @@
 				 * and we should not execute CMD */
 				debug_printf_exec("skipped cmd because of || or &&\n");
 				last_followup = pi->followup;
-				continue;
+				goto dont_check_jobs_but_continue;
 			}
 		}
 		last_followup = pi->followup;
@@ -7493,8 +7502,10 @@
 							G.flag_break_continue = 0;
 						/* else: e.g. "continue 2" should *break* once, *then* continue */
 					} /* else: "while... do... { we are here (innermost list is not a loop!) };...done" */
-					if (G.depth_break_continue != 0 || fbc == BC_BREAK)
-						goto check_jobs_and_break;
+					if (G.depth_break_continue != 0 || fbc == BC_BREAK) {
+						checkjobs(NULL);
+						break;
+					}
 					/* "continue": simulate end of loop */
 					rword = RES_DONE;
 					continue;
@@ -7502,7 +7513,6 @@
 #endif
 #if ENABLE_HUSH_FUNCTIONS
 				if (G.flag_return_in_progress == 1) {
-					/* same as "goto check_jobs_and_break" */
 					checkjobs(NULL);
 					break;
 				}
@@ -7544,6 +7554,9 @@
 		if (rword == RES_IF || rword == RES_ELIF)
 			cond_code = rcode;
 #endif
+ check_jobs_and_continue:
+		checkjobs(NULL);
+ dont_check_jobs_but_continue: ;
 #if ENABLE_HUSH_LOOPS
 		/* Beware of "while false; true; do ..."! */
 		if (pi->next
@@ -7555,22 +7568,17 @@
 					/* "while false; do...done" - exitcode 0 */
 					G.last_exitcode = rcode = EXIT_SUCCESS;
 					debug_printf_exec(": while expr is false: breaking (exitcode:EXIT_SUCCESS)\n");
-					goto check_jobs_and_break;
+					break;
 				}
 			}
 			if (rword == RES_UNTIL) {
 				if (!rcode) {
 					debug_printf_exec(": until expr is true: breaking\n");
- check_jobs_and_break:
-					checkjobs(NULL);
 					break;
 				}
 			}
 		}
 #endif
-
- check_jobs_and_continue:
-		checkjobs(NULL);
 	} /* for (pi) */
 
 #if ENABLE_HUSH_JOB
@@ -8628,6 +8636,14 @@
 }
 #endif
 
+#if MAX_HISTORY && ENABLE_FEATURE_EDITING
+static int FAST_FUNC builtin_history(char **argv UNUSED_PARAM)
+{
+	show_history(G.line_input_state);
+	return EXIT_SUCCESS;
+}
+#endif
+
 #if ENABLE_HUSH_JOB
 static int FAST_FUNC builtin_jobs(char **argv UNUSED_PARAM)
 {
@@ -8880,6 +8896,9 @@
 	free(arg_path);
 	if (!input) {
 		/* bb_perror_msg("%s", *argv); - done by fopen_or_warn */
+		/* POSIX: non-interactive shell should abort here,
+		 * not merely fail. So far no one complained :)
+		 */
 		return EXIT_FAILURE;
 	}
 	close_on_exec_on(fileno(input));
@@ -8889,12 +8908,14 @@
 	/* "we are inside sourced file, ok to use return" */
 	G.flag_return_in_progress = -1;
 #endif
-	save_and_replace_G_args(&sv, argv);
+	if (argv[1])
+		save_and_replace_G_args(&sv, argv);
 
 	parse_and_run_file(input);
 	fclose(input);
 
-	restore_G_args(&sv, argv);
+	if (argv[1])
+		restore_G_args(&sv, argv);
 #if ENABLE_HUSH_FUNCTIONS
 	G.flag_return_in_progress = sv_flg;
 #endif
diff --git a/shell/hush_test/hush-misc/source2.right b/shell/hush_test/hush-misc/source2.right
new file mode 100644
index 0000000..0587bad
--- /dev/null
+++ b/shell/hush_test/hush-misc/source2.right
@@ -0,0 +1,4 @@
+0:arg0 1:arg1 2:arg2
+Ok1:0
+0:arg0 1:q 2:w
+Ok2:0
diff --git a/shell/hush_test/hush-misc/source2.tests b/shell/hush_test/hush-misc/source2.tests
new file mode 100755
index 0000000..40b6b83
--- /dev/null
+++ b/shell/hush_test/hush-misc/source2.tests
@@ -0,0 +1,8 @@
+echo 'echo "0:$0 1:$1 2:$2"' >sourced1
+set -- 1 2 3
+"$THIS_SH" -c '. ./sourced1' arg0 arg1 arg2
+echo Ok1:$?
+"$THIS_SH" -c '. ./sourced1 q w e' arg0 arg1 arg2
+echo Ok2:$?
+
+rm sourced1
diff --git a/shell/hush_test/hush-misc/while4.right b/shell/hush_test/hush-misc/while4.right
new file mode 100644
index 0000000..7b24a35
--- /dev/null
+++ b/shell/hush_test/hush-misc/while4.right
@@ -0,0 +1 @@
+Ok:0
diff --git a/shell/hush_test/hush-misc/while4.tests b/shell/hush_test/hush-misc/while4.tests
new file mode 100755
index 0000000..ba80e60
--- /dev/null
+++ b/shell/hush_test/hush-misc/while4.tests
@@ -0,0 +1,6 @@
+false
+while false && echo Not reached; do
+    echo BUG
+    break
+done
+echo Ok:$?
diff --git a/shell/math.c b/shell/math.c
index 15c0039..3da1511 100644
--- a/shell/math.c
+++ b/shell/math.c
@@ -494,18 +494,6 @@
 };
 #define ptr_to_rparen (&op_tokens[sizeof(op_tokens)-7])
 
-const char* FAST_FUNC
-endofname(const char *name)
-{
-	if (!is_name(*name))
-		return name;
-	while (*++name) {
-		if (!is_in_name(*name))
-			break;
-	}
-	return name;
-}
-
 static arith_t FAST_FUNC
 evaluate_string(arith_state_t *math_state, const char *expr)
 {
diff --git a/shell/math.h b/shell/math.h
index 2d305eb..864bee6 100644
--- a/shell/math.h
+++ b/shell/math.h
@@ -73,11 +73,6 @@
 #define strto_arith_t strtoul
 #endif
 
-/* ash's and hush's endofname is the same, so... */
-# define is_name(c)      ((c) == '_' || isalpha((unsigned char)(c)))
-# define is_in_name(c)   ((c) == '_' || isalnum((unsigned char)(c)))
-const char* FAST_FUNC endofname(const char *name);
-
 typedef const char* FAST_FUNC (*arith_var_lookup_t)(const char *name);
 typedef void        FAST_FUNC (*arith_var_set_t)(const char *name, const char *val);
 //typedef const char* FAST_FUNC (*arith_var_endofname_t)(const char *name);
diff --git a/shell/shell_common.c b/shell/shell_common.c
index 0051f21..5729715 100644
--- a/shell/shell_common.c
+++ b/shell/shell_common.c
@@ -37,7 +37,7 @@
 
 /* read builtin */
 
-/* Needs to be interruptible: shell mush handle traps and shell-special signals
+/* Needs to be interruptible: shell must handle traps and shell-special signals
  * while inside read. To implement this, be sure to not loop on EINTR
  * and return errno == EINTR reliably.
  */
diff --git a/sysklogd/logread.c b/sysklogd/logread.c
index 9939569..bea73d9 100644
--- a/sysklogd/logread.c
+++ b/sysklogd/logread.c
@@ -49,13 +49,18 @@
 	memcpy(SMrup, init_sem, sizeof(init_sem)); \
 } while (0)
 
+#if 0
 static void error_exit(const char *str) NORETURN;
 static void error_exit(const char *str)
 {
-	//release all acquired resources
+	/* Release all acquired resources */
 	shmdt(shbuf);
 	bb_perror_msg_and_die(str);
 }
+#else
+/* On Linux, shmdt is not mandatory on exit */
+# define error_exit(str) bb_perror_msg_and_die(str)
+#endif
 
 /*
  * sem_up - up()'s a semaphore.
@@ -66,11 +71,10 @@
 		error_exit("semop[SMrup]");
 }
 
-static void interrupted(int sig UNUSED_PARAM)
+static void interrupted(int sig)
 {
-	signal(SIGINT, SIG_IGN);
-	shmdt(shbuf);
-	exit(EXIT_SUCCESS);
+	/* shmdt(shbuf); - on Linux, shmdt is not mandatory on exit */
+	kill_myself_with_sig(sig);
 }
 
 int logread_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
@@ -85,18 +89,18 @@
 
 	log_shmid = shmget(KEY_ID, 0, 0);
 	if (log_shmid == -1)
-		bb_perror_msg_and_die("can't find syslogd buffer");
+		bb_perror_msg_and_die("can't %s syslogd buffer", "find");
 
 	/* Attach shared memory to our char* */
 	shbuf = shmat(log_shmid, NULL, SHM_RDONLY);
 	if (shbuf == NULL)
-		bb_perror_msg_and_die("can't access syslogd buffer");
+		bb_perror_msg_and_die("can't %s syslogd buffer", "access");
 
 	log_semid = semget(KEY_ID, 0, 0);
 	if (log_semid == -1)
 		error_exit("can't get access to semaphores for syslogd buffer");
 
-	signal(SIGINT, interrupted);
+	bb_signals(BB_FATAL_SIGS, interrupted);
 
 	/* Suppose atomic memory read */
 	/* Max possible value for tail is shbuf->size - 1 */
@@ -122,7 +126,7 @@
 		shbuf_data = shbuf->data; /* pointer! */
 
 		if (DEBUG)
-			printf("cur:%d tail:%i size:%i\n",
+			printf("cur:%u tail:%u size:%u\n",
 					cur, shbuf_tail, shbuf_size);
 
 		if (!follow) {
@@ -183,9 +187,10 @@
 		}
 		free(copy);
 #endif
+		fflush_all();
 	} while (follow);
 
-	shmdt(shbuf);
+	/* shmdt(shbuf); - on Linux, shmdt is not mandatory on exit */
 
 	fflush_stdout_and_exit(EXIT_SUCCESS);
 }
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index 3fe3f53..a6a4ff2 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -29,7 +29,7 @@
 //usage:     "\n	-b N		N rotated logs to keep (default:1, max=99, 0=purge)"
 //usage:	)
 //usage:	IF_FEATURE_REMOTE_LOG(
-//usage:     "\n	-R HOST[:PORT]	Log to IP or hostname on PORT (default PORT=514/UDP)"
+//usage:     "\n	-R HOST[:PORT]	Log to HOST:PORT (default PORT:514)"
 //usage:     "\n	-L		Log locally and via network (default is network only if -R)"
 //usage:	)
 //usage:	IF_FEATURE_SYSLOGD_DUP(
@@ -58,6 +58,9 @@
 #define SYSLOG_NAMES_CONST
 #include <syslog.h>
 */
+#ifndef _PATH_LOG
+#define _PATH_LOG	"/dev/log"
+#endif
 
 #include <sys/un.h>
 #include <sys/uio.h>
@@ -824,8 +827,8 @@
 
 	/* Unlink old /dev/log or object it points to. */
 	/* (if it exists, bind will fail) */
-	strcpy(sunx.sun_path, "/dev/log");
-	dev_log_name = xmalloc_follow_symlinks("/dev/log");
+	strcpy(sunx.sun_path, _PATH_LOG);
+	dev_log_name = xmalloc_follow_symlinks(_PATH_LOG);
 	if (dev_log_name) {
 		safe_strncpy(sunx.sun_path, dev_log_name, sizeof(sunx.sun_path));
 		free(dev_log_name);
@@ -834,7 +837,7 @@
 
 	sock_fd = xsocket(AF_UNIX, SOCK_DGRAM, 0);
 	xbind(sock_fd, (struct sockaddr *) &sunx, sizeof(sunx));
-	chmod("/dev/log", 0666);
+	chmod(_PATH_LOG, 0666);
 
 	return sock_fd;
 }
@@ -905,7 +908,7 @@
 		sz = read(sock_fd, recvbuf, MAX_READ - 1);
 		if (sz < 0) {
 			if (!bb_got_signal)
-				bb_perror_msg("read from /dev/log");
+				bb_perror_msg("read from %s", _PATH_LOG);
 			break;
 		}
 
diff --git a/testsuite/awk.tests b/testsuite/awk.tests
index f9c3b6b..132afc6 100755
--- a/testsuite/awk.tests
+++ b/testsuite/awk.tests
@@ -24,10 +24,57 @@
 testing "awk if string == "    "awk 'BEGIN{if(\"a\"==\"ab\") print \"bar\"}'" "" "" ""
 
 # 4294967295 = 0xffffffff
-testing "awk bitwise op"  "awk '{ print or(4294967295,1) }'" "4.29497e+09\n" "" "\n"
+testing "awk bitwise op"  "awk '{ print or(4294967295,1) }'" "4294967295\n" "" "\n"
+
+# we were testing for a non-empty body when deciding if a function was
+# defined or not. The testcase below caused:
+# awk: cmd. line:8: Call to undefined function
+prg='
+function empty_fun(count) {
+  # empty
+}
+END {
+  i=1
+  print "L" i "\n"
+  empty_fun(i + i + ++i)
+  print "L" i "\n"
+}'
+testing "awk handles empty function f(arg){}" \
+	"awk '$prg'" \
+	"L1\n\nL2\n\n" \
+	"" ""
+
+prg='
+function outer_fun() {
+  return 1
+}
+END {
+  i=1
+  print "L" i "\n"
+  i += outer_fun()
+  print "L" i "\n"
+}'
+testing "awk properly handles function from other scope" \
+	"awk '$prg'" \
+	"L1\n\nL2\n\n" \
+	"" ""
+
+prg='
+END {
+  i=1
+  print "L" i "\n"
+  i + trigger_error_fun()
+  print "L" i "\n"
+}'
+testing "awk properly handles undefined function" \
+	"awk '$prg' 2>&1" \
+	"L1\n\nawk: cmd. line:5: Call to undefined function\n" \
+	"" ""
+
+
 optional DESKTOP
-testing "awk hex const 1" "awk '{ print or(0xffffffff,1) }'" "4.29497e+09\n" "" "\n"
-testing "awk hex const 2" "awk '{ print or(0x80000000,1) }'" "2.14748e+09\n" "" "\n"
+testing "awk hex const 1" "awk '{ print or(0xffffffff,1) }'" "4294967295\n" "" "\n"
+testing "awk hex const 2" "awk '{ print or(0x80000000,1) }'" "2147483649\n" "" "\n"
 testing "awk oct const"   "awk '{ print or(01234,1) }'"      "669\n"         "" "\n"
 SKIP=
 
@@ -222,6 +269,32 @@
 	"" \
 	"a:b c:d\ne:f g:h"
 
+optional FEATURE_AWK_LIBM
+testing "awk large integer" \
+	"awk 'BEGIN{n=(2^31)-1; print n, int(n), n%1, ++n, int(n), n%1}'" \
+	"2147483647 2147483647 0 2147483648 2147483648 0\n" \
+	"" ""
+SKIP=
+
+testing "awk length(array)" \
+	"awk 'BEGIN{ A[1]=2; A[\"qwe\"]=\"asd\"; print length(A)}'" \
+	"2\n" \
+	"" ""
+
+testing "awk -f and ARGC" \
+	"awk -f - input" \
+	"re\n2\n" \
+	"do re mi\n" \
+	'{print $2; print ARGC;}' \
+
+optional FEATURE_AWK_GNU_EXTENSIONS
+testing "awk -e and ARGC" \
+	"awk -e '{print \$2; print ARGC;}' input" \
+	"re\n2\n" \
+	"do re mi\n" \
+	""
+SKIP=
+
 # testing "description" "command" "result" "infile" "stdin"
 
 exit $FAILCOUNT
diff --git a/testsuite/date/date-works b/testsuite/date/date-works
index 901c485..35c2468 100644
--- a/testsuite/date/date-works
+++ b/testsuite/date/date-works
@@ -31,9 +31,11 @@
 dt=`echo "$dt" | cut -b1-19`
 test x"$dt" = x"Sat Jan  2 03:04:05"
 
-dt=`busybox date -d 01231133`
-dt=`echo "$dt" | cut -b5-19`
-test x"$dt" = x"Jan 23 11:33:00"
+# date (GNU coreutils) 8.17 doesn't accept 01231133 either:
+# date: invalid date '01231133'
+#dt=`busybox date -d 01231133`
+#dt=`echo "$dt" | cut -b5-19`
+#test x"$dt" = x"Jan 23 11:33:00"
 
 dt=`busybox date -d 200001231133`
 dt=`echo "$dt" | cut -b1-19`
diff --git a/testsuite/date/date-works-1 b/testsuite/date/date-works-1
index 12018fe..6b2421e 100644
--- a/testsuite/date/date-works-1
+++ b/testsuite/date/date-works-1
@@ -41,9 +41,9 @@
 # Avoiding using week day in this evaluation, as it's mostly different every year
 # date (GNU coreutils) 6.10 reports:
 #	date: invalid date '01231133'
-dt=`busybox date -d 01231133 +%c`
-dt=`echo "$dt" | cut -b5-19`
-test x"$dt" = x"Jan 23 11:33:00"
+#dt=`busybox date -d 01231133 +%c`
+#dt=`echo "$dt" | cut -b5-19`
+#test x"$dt" = x"Jan 23 11:33:00"
 
 # date (GNU coreutils) 6.10 reports:
 #	date: invalid date '012311332000'
diff --git a/testsuite/du/du-k-works b/testsuite/du/du-k-works
index 36dcaa8..213e9ba 100644
--- a/testsuite/du/du-k-works
+++ b/testsuite/du/du-k-works
@@ -2,6 +2,12 @@
 cd du.testdir
 dd if=/dev/zero of=file1 bs=1k count=64 2>/dev/null
 dd if=/dev/zero of=file2 bs=1k count=16 2>/dev/null
+# ext4 on images <512M gives 81kb
+# ext3 on images <512M gives 83kb
+# a bsd system reportedly gives 82kb
 test x"`busybox du -k .`" = x"80	." \
+  -o x"`busybox du -k .`" = x"81	." \
+  -o x"`busybox du -k .`" = x"82	." \
+  -o x"`busybox du -k .`" = x"83	." \
   -o x"`busybox du -k .`" = x"84	." \
   -o x"`busybox du -k .`" = x"88	."
diff --git a/testsuite/du/du-l-works b/testsuite/du/du-l-works
index 426ee89..af87345 100644
--- a/testsuite/du/du-l-works
+++ b/testsuite/du/du-l-works
@@ -6,6 +6,7 @@
 ln file1 file1.1
 dd if=/dev/zero of=file2 bs=1k count=16 2>/dev/null
 test x"`busybox du -l .`" = x"144	." \
+  -o x"`busybox du -l .`" = x"146	." \
   -o x"`busybox du -l .`" = x"148	." \
   -o x"`busybox du -l .`" = x"152	." \
   -o x"`busybox du -l .`" = x"156	."
diff --git a/testsuite/grep.tests b/testsuite/grep.tests
index 4781f22..412efff 100755
--- a/testsuite/grep.tests
+++ b/testsuite/grep.tests
@@ -82,6 +82,20 @@
 testing "grep can read regexps from stdin" "grep -f - input ; echo \$?" \
 	"two\nthree\n0\n" "tw\ntwo\nthree\n" "tw.\nthr\n"
 
+# -x (whole line match)
+testing "grep -x (full match)" "grep -x foo input ; echo \$?" \
+	"foo\n0\n" "foo\n" ""
+testing "grep -x (partial match 1)" "grep -x foo input ; echo \$?" \
+	"1\n" "foo bar\n" ""
+testing "grep -x (partial match 2)" "grep -x foo input ; echo \$?" \
+	"1\n" "bar foo\n" ""
+testing "grep -x -F (full match)" "grep -x -F foo input ; echo \$?" \
+	"foo\n0\n" "foo\n" ""
+testing "grep -x -F (partial match 1)" "grep -x -F foo input ; echo \$?" \
+	"1\n" "foo bar\n" ""
+testing "grep -x -F (partial match 2)" "grep -x -F foo input ; echo \$?" \
+	"1\n" "bar foo\n" ""
+
 optional FEATURE_GREP_EGREP_ALIAS
 testing "grep -E supports extended regexps" "grep -E fo+" "foo\n" "" \
 	"b\ar\nfoo\nbaz"
@@ -127,6 +141,24 @@
 	"foop foo\n" \
 	""
 
+testing "grep -w doesn't stop on 1st mismatch" \
+	"grep -w foo input" \
+	"foop foo\n" \
+	"foop foo\n" \
+	""
+
+testing "grep -w ^str doesn't match str not at the beginning" \
+	"grep -w ^str input" \
+	"" \
+	"strstr\n" \
+	""
+
+testing "grep -w ^ doesn't hang" \
+	"grep -w ^ input" \
+	"" \
+	"anything\n" \
+	""
+
 # testing "test name" "commands" "expected result" "file input" "stdin"
 #   file input will be file called "input"
 #   test can create a file "actual" instead of writing to stdout
diff --git a/testsuite/hostid/hostid-works b/testsuite/hostid/hostid-works
index bcfd717..8c20bdf 100644
--- a/testsuite/hostid/hostid-works
+++ b/testsuite/hostid/hostid-works
@@ -1,8 +1,6 @@
 h=x$(busybox hostid)
 # Is $h a sequence of hex numbers?
-x="${h//[0123456789abcdef]/x}"
-x="${x//xxx/x}"
-x="${x//xxx/x}"
-x="${x//xxx/x}"
-x="${x//xx/x}"
-test x"$x" = x"x"
+case "$h" in
+ x*[!0-9a-f]*) false;;
+ *) true;;
+esac
diff --git a/testsuite/md5sum.tests b/testsuite/md5sum.tests
index 1068b08..6c75b6d 100755
--- a/testsuite/md5sum.tests
+++ b/testsuite/md5sum.tests
@@ -30,13 +30,13 @@
 n=0
 while test $n -le 999; do
 	echo "$text" | head -c $n | "$sum"
-	: $((n++))
+	n=$(($n+1))
 done | "$sum"
 )`
 
 if test x"$result" = x"$expected  -"; then
-    echo "PASS: $sum"
-    exit 0
+	echo "PASS: $sum"
+	exit 0
 fi
 
 echo "FAIL: $sum (r:$result exp:$expected)"
diff --git a/testsuite/sed.tests b/testsuite/sed.tests
index 468565f..9494ac2 100755
--- a/testsuite/sed.tests
+++ b/testsuite/sed.tests
@@ -154,11 +154,9 @@
 testing "sed selective matches noinsert newline" \
 	"sed -ne 's/woo/bang/p' input -" "a bang\nb bang" "a woo\nb woo" \
 	"c no\nd no"
-test x"$SKIP_KNOWN_BUGS" = x"" && {
 testing "sed clusternewline" \
 	"sed -e '/one/a 111' -e '/two/i 222' -e p input -" \
 	"one\none\n111\n222\ntwo\ntwo" "one" "two"
-}
 testing "sed subst+write" \
 	"sed -e 's/i/z/' -e 'woutputw' input -; $ECHO -n X; cat outputw" \
 	"thzngy\nagaznXthzngy\nagazn" "thingy" "again"
@@ -310,6 +308,27 @@
 	"sed 's/ *$/_/g'" \
 	"qwerty_\n" "" "qwerty\n"
 
+testing "sed /\$_in_regex/ should not match newlines, only end-of-line" \
+	"sed ': testcont; /\\\\$/{ =; N; b testcont }'" \
+	"\
+this is a regular line
+2
+line with \\
+continuation
+more regular lines
+5
+line with \\
+continuation
+" \
+	"" "\
+this is a regular line
+line with \\
+continuation
+more regular lines
+line with \\
+continuation
+"
+
 # testing "description" "commands" "result" "infile" "stdin"
 
 exit $FAILCOUNT
diff --git a/testsuite/tar.tests b/testsuite/tar.tests
index 7927020..4929f4e 100755
--- a/testsuite/tar.tests
+++ b/testsuite/tar.tests
@@ -15,6 +15,44 @@
 
 # testing "test name" "script" "expected result" "file input" "stdin"
 
+testing "Empty file is not a tarball" '\
+tar xvf - 2>&1; echo $?
+' "\
+tar: short read
+1
+" \
+"" ""
+SKIP=
+
+optional FEATURE_SEAMLESS_GZ
+# In NOMMU case, "invalid magic" message comes from gunzip child process.
+# Otherwise, it comes from tar.
+# Need to fix output up to avoid false positive.
+testing "Empty file is not a tarball.tar.gz" '\
+{ tar xvzf - 2>&1; echo $?; } | grep -Fv "invalid magic"
+' "\
+tar: short read
+1
+" \
+"" ""
+SKIP=
+
+testing "Two zeroed blocks is a ('truncated') empty tarball" '\
+dd if=/dev/zero bs=512 count=2 2>/dev/null | tar xvf - 2>&1; echo $?
+' "\
+0
+" \
+"" ""
+SKIP=
+
+testing "Twenty zeroed blocks is an empty tarball" '\
+dd if=/dev/zero bs=512 count=20 2>/dev/null | tar xvf - 2>&1; echo $?
+' "\
+0
+" \
+"" ""
+SKIP=
+
 optional FEATURE_TAR_CREATE FEATURE_LS_SORTFILES
 testing "tar hardlinks and repeated files" '\
 rm -rf input_* test.tar 2>/dev/null
diff --git a/testsuite/testing.sh b/testsuite/testing.sh
index 9ce9844..ccfebc8 100644
--- a/testsuite/testing.sh
+++ b/testsuite/testing.sh
@@ -63,10 +63,10 @@
 {
 	SKIP=
 	while test "$1"; do
-		if test x"${OPTIONFLAGS/*:$1:*/y}" != x"y"; then
-			SKIP=1
-			return
-		fi
+		case "${OPTIONFLAGS}" in
+			*:$1:*) ;;
+			*) SKIP=1; return ;;
+		esac
 		shift
 	done
 }
diff --git a/testsuite/which/which-uses-default-path b/testsuite/which/which-uses-default-path
index 63ceb9f..349583d 100644
--- a/testsuite/which/which-uses-default-path
+++ b/testsuite/which/which-uses-default-path
@@ -1,4 +1,4 @@
-BUSYBOX=$(type -p busybox)
+BUSYBOX=$(command -pv busybox)
 SAVED_PATH=$PATH
 unset PATH
 $BUSYBOX which ls
diff --git a/util-linux/Config.src b/util-linux/Config.src
index 93b84ad..9af923e 100644
--- a/util-linux/Config.src
+++ b/util-linux/Config.src
@@ -81,6 +81,14 @@
 	    <6>BIOS-provided physical RAM map:
 	    <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
 
+config FEATURE_DMESG_COLOR
+	bool "Colored dmesg output"
+	default y
+	depends on DMESG
+	help
+	  Allow to show errors and warnings in different colors
+	  dmesg -C
+
 config FBSET
 	bool "fbset"
 	default y
@@ -699,250 +707,6 @@
 	  About the only reason to use this is if you've removed /proc from
 	  your kernel.
 
-config VOLUMEID
-	bool #No description makes it a hidden option
-	default n
-
-menu "Filesystem/Volume identification"
-	depends on VOLUMEID
-
-config FEATURE_VOLUMEID_EXT
-	bool "Ext filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_BTRFS
-	bool "btrfs filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_REISERFS
-	bool "Reiser filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_FAT
-	bool "fat filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_EXFAT
-	bool "exFAT filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  exFAT (extended FAT) is a proprietary file system designed especially
-	  for flash drives. It has many features from NTFS, but with less
-	  overhead. exFAT is used on most SDXC cards for consumer electronics.
-
-config FEATURE_VOLUMEID_HFS
-	bool "hfs filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_JFS
-	bool "jfs filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-### config FEATURE_VOLUMEID_UFS
-###	bool "ufs filesystem"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-config FEATURE_VOLUMEID_XFS
-	bool "xfs filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_NILFS
-	bool "nilfs filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_NTFS
-	bool "ntfs filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_ISO9660
-	bool "iso9660 filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_UDF
-	bool "udf filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_LUKS
-	bool "luks filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_LINUXSWAP
-	bool "linux swap filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-### config FEATURE_VOLUMEID_LVM
-###	bool "lvm"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-config FEATURE_VOLUMEID_CRAMFS
-	bool "cramfs filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-### config FEATURE_VOLUMEID_HPFS
-###	bool "hpfs filesystem"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-config FEATURE_VOLUMEID_ROMFS
-	bool "romfs filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-config FEATURE_VOLUMEID_SQUASHFS
-	bool "SquashFS filesystem"
-	default y
-	depends on VOLUMEID && FEATURE_BLKID_TYPE
-	help
-	  Squashfs is a compressed read-only filesystem for Linux. Squashfs is
-	  intended for general read-only filesystem use and in constrained block
-	  device/memory systems (e.g. embedded systems) where low overhead is
-	  needed.
-
-config FEATURE_VOLUMEID_SYSV
-	bool "sysv filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-### config FEATURE_VOLUMEID_MINIX
-###	bool "minix filesystem"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-### These only detect partition tables - not used (yet?)
-### config FEATURE_VOLUMEID_MAC
-###	bool "mac filesystem"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-###
-### config FEATURE_VOLUMEID_MSDOS
-###	bool "msdos filesystem"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-config FEATURE_VOLUMEID_OCFS2
-	bool "ocfs2 filesystem"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-### config FEATURE_VOLUMEID_HIGHPOINTRAID
-###	bool "highpoint raid"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-### config FEATURE_VOLUMEID_ISWRAID
-###	bool "intel raid"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-### config FEATURE_VOLUMEID_LSIRAID
-###	bool "lsi raid"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-### config FEATURE_VOLUMEID_VIARAID
-###	bool "via raid"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-### config FEATURE_VOLUMEID_SILICONRAID
-###	bool "silicon raid"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-### config FEATURE_VOLUMEID_NVIDIARAID
-###	bool "nvidia raid"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-### config FEATURE_VOLUMEID_PROMISERAID
-###	bool "promise raid"
-###	default y
-###	depends on VOLUMEID
-###	help
-###	  TODO
-
-config FEATURE_VOLUMEID_LINUXRAID
-	bool "linuxraid"
-	default y
-	depends on VOLUMEID
-	help
-	  TODO
-
-endmenu
+source util-linux/volume_id/Config.in
 
 endmenu
diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c
index 84173ce..ba52036 100644
--- a/util-linux/dmesg.c
+++ b/util-linux/dmesg.c
@@ -10,23 +10,37 @@
  */
 
 //usage:#define dmesg_trivial_usage
-//usage:       "[-c] [-n LEVEL] [-r] [-s SIZE] [-C]"
+//usage:       "[-c] [-n LEVEL] [-s SIZE]"
+//usage:	IF_FEATURE_DMESG_PRETTY(" [-r]")
+//usage:	IF_FEATURE_DMESG_COLOR(" [-C]")
 //usage:#define dmesg_full_usage "\n\n"
 //usage:       "Print or control the kernel ring buffer\n"
 //usage:     "\n	-c		Clear ring buffer after printing"
 //usage:     "\n	-n LEVEL	Set console logging level"
-//usage:     "\n	-r		Show level prefix"
 //usage:     "\n	-s SIZE		Buffer size"
-//usage:     "\n	-C		Colored output"
+//usage:	IF_FEATURE_DMESG_PRETTY(
+//usage:     "\n	-r		Show level prefix")
+//usage:	IF_FEATURE_DMESG_COLOR(
+//usage:     "\n	-C		Colored output")
 
 #include <sys/klog.h>
 #include "libbb.h"
 
+#if ENABLE_FEATURE_DMESG_COLOR
 #define COLOR_DEFAULT 0
-#define COLOR_WHITE   231
-#define COLOR_YELLOW  226
-#define COLOR_ORANGE  166
-#define COLOR_RED     196
+#define COLOR_WHITE   97
+#define COLOR_YELLOW  93
+#define COLOR_ORANGE  33
+#define COLOR_RED     91
+
+static void set_color(int color)
+{
+	printf("%c[%dm", 0x1B, color);
+}
+
+#else
+#define set_color(c) {}
+#endif
 
 int dmesg_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int dmesg_main(int argc UNUSED_PARAM, char **argv)
@@ -34,12 +48,14 @@
 	int len, level;
 	char *buf;
 	unsigned opts;
+	int color = 0;
 	enum {
 		OPT_c = 1 << 0,
 		OPT_s = 1 << 1,
 		OPT_n = 1 << 2,
 		OPT_r = 1 << 3,
-		OPT_C = 1 << 4
+		OPT_C = 1 << 4,
+		OPT_end
 	};
 
 	opt_complementary = "s+:n+"; /* numeric */
@@ -67,14 +83,15 @@
 
 	if ((ENABLE_FEATURE_DMESG_PRETTY || (opts & OPT_C)) && !(opts & OPT_r)) {
 		int last = '\n';
-		int in = 0, l, color;
-		char pfx[16], *lvl;
+		int in = 0;
 
 		/* Skip <[0-9]+> at the start of lines */
 		while (1) {
 			if (last == '\n' && buf[in] == '<') {
+
+#if ENABLE_FEATURE_DMESG_COLOR
 				if (opts & OPT_C) {
-					lvl = buf + in + 1;
+					char *lvl = buf + in + 1;
 					sscanf(lvl, "%d", &level);
 
 					switch (level) {
@@ -84,18 +101,14 @@
 					case 4: color = COLOR_ORANGE; break;
 					case 5: color = COLOR_YELLOW; break;
 					case 7: color = COLOR_WHITE;  break;
-					case 6: // common dmesg info
-					default: color = COLOR_DEFAULT;
+					case 6: /* common dmesg info */
+					default:
+						color = COLOR_DEFAULT;
 					}
 
-					if (color != COLOR_DEFAULT)
-						l = sprintf(pfx, "%c[%d;%d;%dm",
-							0x1B, 38, 5, color);
-					else
-						l = sprintf(pfx, "%c[%dm", 0x1B, 0);
-
-					full_write(STDOUT_FILENO, pfx, l);
+					set_color(color);
 				}
+#endif
 				while (buf[in++] != '>' && in < len)
 					;
 			} else {
@@ -105,17 +118,9 @@
 			if (in >= len)
 				break;
 		}
-
-		if (opts & OPT_C) {
-			/* Reset default terminal color */
-			l = sprintf(pfx, "%c[%dm", 0x1B, 0);
-			full_write(STDOUT_FILENO, pfx, l);
-		}
-
 		/* Make sure we end with a newline */
 		if (last != '\n')
 			bb_putchar('\n');
-
 	} else {
 		full_write(STDOUT_FILENO, buf, len);
 		if (buf[len-1] != '\n')
@@ -124,5 +129,9 @@
 
 	if (ENABLE_FEATURE_CLEAN_UP) free(buf);
 
+	/* Reset default terminal color */
+	if (color)
+		set_color(0);
+
 	return EXIT_SUCCESS;
 }
diff --git a/util-linux/fdformat.c b/util-linux/fdformat.c
index b3e918f..6f49cec 100644
--- a/util-linux/fdformat.c
+++ b/util-linux/fdformat.c
@@ -72,7 +72,7 @@
 	/* original message was: "Could not determine current format type" */
 	xioctl(fd, FDGETPRM, &param);
 
-	printf("%s-sided, %d tracks, %d sec/track. Total capacity %d kB\n",
+	printf("%s-sided, %u tracks, %u sec/track. Total capacity %d kB\n",
 		(param.head == 2) ? "Double" : "Single",
 		param.track, param.sect, param.size >> 1);
 
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index c1cca10..ce4c24f 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -2611,7 +2611,8 @@
 static void
 print_buffer(char *pbuffer)
 {
-	int i,l;
+	unsigned i;
+	int l;
 
 	for (i = 0, l = 0; i < sector_size; i++, l++) {
 		if (l == 0)
diff --git a/util-linux/fdisk_gpt.c b/util-linux/fdisk_gpt.c
index d43d9c7..4ec3ee4 100644
--- a/util-linux/fdisk_gpt.c
+++ b/util-linux/fdisk_gpt.c
@@ -47,7 +47,7 @@
 static unsigned int part_entry_len;
 
 static inline gpt_partition *
-gpt_part(int i)
+gpt_part(unsigned i)
 {
 	if (i >= n_parts) {
 		return NULL;
@@ -90,12 +90,10 @@
 static void
 gpt_list_table(int xtra UNUSED_PARAM)
 {
-	int i;
+	unsigned i;
 	char numstr6[6];
 
-	numstr6[5] = '\0';
-
-	smart_ulltoa5(total_number_of_sectors, numstr6, " KMGTPEZY");
+	smart_ulltoa5(total_number_of_sectors * sector_size, numstr6, " KMGTPEZY")[0] = '\0';
 	printf("Disk %s: %llu sectors, %s\n", disk_device,
 		(unsigned long long)total_number_of_sectors,
 		numstr6);
@@ -112,8 +110,8 @@
 	for (i = 0; i < n_parts; i++) {
 		gpt_partition *p = gpt_part(i);
 		if (p->lba_start) {
-			smart_ulltoa5(1 + SWAP_LE64(p->lba_end) - SWAP_LE64(p->lba_start),
-				numstr6, " KMGTPEZY");
+			smart_ulltoa5((1 + SWAP_LE64(p->lba_end) - SWAP_LE64(p->lba_start)) * sector_size,
+				numstr6, " KMGTPEZY")[0] = '\0';
 			printf("%4u %15llu %15llu %11s   %04x  ",
 				i + 1,
 				(unsigned long long)SWAP_LE64(p->lba_start),
@@ -177,7 +175,7 @@
 	part_array_len = n_parts * part_entry_len;
 	part_array = xmalloc(part_array_len);
 	seek_sector(SWAP_LE64(gpt_hdr->first_part_lba));
-	if (full_read(dev_fd, part_array, part_array_len) != part_array_len) {
+	if (full_read(dev_fd, part_array, part_array_len) != (ssize_t) part_array_len) {
 		fdisk_fatal(unable_to_read);
 	}
 
diff --git a/util-linux/fdisk_sun.c b/util-linux/fdisk_sun.c
index e7fcc06..e32740d 100644
--- a/util-linux/fdisk_sun.c
+++ b/util-linux/fdisk_sun.c
@@ -348,6 +348,7 @@
 
 	set_all_unchanged();
 	set_changed(0);
+	check_sun_label();
 	get_boot(CREATE_EMPTY_SUN);
 }
 
@@ -497,11 +498,14 @@
 		else
 			first = read_int(scround(start), scround(stop)+1,
 					 scround(stop), 0, mesg);
-		if (display_in_cyl_units)
+		if (display_in_cyl_units) {
 			first *= units_per_sector;
-		else
+		} else {
 			/* Starting sector has to be properly aligned */
-			first = (first + g_heads * g_sectors - 1) / (g_heads * g_sectors);
+			first = (first + g_heads * g_sectors - 1) /
+				(g_heads * g_sectors);
+			first *= g_heads * g_sectors;
+		}
 		if (n == 2 && first != 0)
 			printf("\
 It is highly recommended that the third partition covers the whole disk\n\
diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c
index c1d1b2c..33767a1 100644
--- a/util-linux/fsck_minix.c
+++ b/util-linux/fsck_minix.c
@@ -686,7 +686,7 @@
 	total++;
 	if (!inode_count[nr]) {
 		if (!inode_in_use(nr)) {
-			printf("Inode %d is marked as 'unused', but it is used "
+			printf("Inode %u is marked as 'unused', but it is used "
 					"for file '%s'\n", nr, current_name);
 			if (OPT_repair) {
 				if (ask("Mark as 'in use'", 1))
diff --git a/util-linux/getopt.c b/util-linux/getopt.c
index 1ae0c59..58df1c8 100644
--- a/util-linux/getopt.c
+++ b/util-linux/getopt.c
@@ -35,27 +35,32 @@
 //usage:       "[OPTIONS] [--] OPTSTRING PARAMS"
 //usage:#define getopt_full_usage "\n\n"
 //usage:	IF_LONG_OPTS(
-//usage:       "	-a,--alternative		Allow long options starting with single -"
-//usage:     "\n	-l,--longoptions=LOPT[,...]	Long options to be recognized"
-//usage:     "\n	-n,--name=PROGNAME		The name under which errors are reported"
-//usage:     "\n	-o,--options=OPTSTRING		Short options to be recognized"
-//usage:     "\n	-q,--quiet			Disable error reporting by getopt(3)"
+//usage:	IF_FEATURE_GETOPT_LONG(
+//usage:       "	-a,--alternative		Allow long options starting with single -\n"
+//usage:       "	-l,--longoptions=LOPT[,...]	Long options to recognize\n"
+//usage:	)
+//usage:       "	-n,--name=PROGNAME		The name under which errors are reported"
+//usage:     "\n	-o,--options=OPTSTRING		Short options to recognize"
+//usage:     "\n	-q,--quiet			No error messages on unrecognized options"
 //usage:     "\n	-Q,--quiet-output		No normal output"
 //usage:     "\n	-s,--shell=SHELL		Set shell quoting conventions"
-//usage:     "\n	-T,--test			Test for getopt(1) version"
-//usage:     "\n	-u,--unquoted			Don't quote the output"
+//usage:     "\n	-T,--test			Version test (exits with 4)"
+//usage:     "\n	-u,--unquoted			Don't quote output"
 //usage:	)
 //usage:	IF_NOT_LONG_OPTS(
-//usage:       "	-a		Allow long options starting with single -"
-//usage:     "\n	-l LOPT[,...]	Long options to be recognized"
-//usage:     "\n	-n PROGNAME	The name under which errors are reported"
-//usage:     "\n	-o OPTSTRING	Short options to be recognized"
-//usage:     "\n	-q		Disable error reporting by getopt(3)"
+//usage:	IF_FEATURE_GETOPT_LONG(
+//usage:       "	-a		Allow long options starting with single -\n"
+//usage:       "	-l LOPT[,...]	Long options to recognize\n"
+//usage:	)
+//usage:       "	-n PROGNAME	The name under which errors are reported"
+//usage:     "\n	-o OPTSTRING	Short options to recognize"
+//usage:     "\n	-q		No error messages on unrecognized options"
 //usage:     "\n	-Q		No normal output"
 //usage:     "\n	-s SHELL	Set shell quoting conventions"
-//usage:     "\n	-T		Test for getopt(1) version"
-//usage:     "\n	-u		Don't quote the output"
+//usage:     "\n	-T		Version test (exits with 4)"
+//usage:     "\n	-u		Don't quote output"
 //usage:	)
+//usage:	IF_FEATURE_GETOPT_LONG( /* example uses -l, needs FEATURE_GETOPT_LONG */
 //usage:     "\n"
 //usage:     "\nExample:"
 //usage:     "\n"
@@ -73,6 +78,7 @@
 //usage:     "\n	*)	echo Error; exit 1;;"
 //usage:     "\n	esac"
 //usage:     "\ndone"
+//usage:	)
 //usage:
 //usage:#define getopt_example_usage
 //usage:       "$ cat getopt.test\n"
@@ -214,11 +220,6 @@
 static int generate_output(char **argv, int argc, const char *optstr, const struct option *longopts)
 {
 	int exit_code = 0; /* We assume everything will be OK */
-	int opt;
-#if ENABLE_FEATURE_GETOPT_LONG
-	int longindex;
-#endif
-	const char *charptr;
 
 	if (quiet_errors) /* No error reporting from getopt(3) */
 		opterr = 0;
@@ -233,13 +234,14 @@
 #endif
 
 	while (1) {
-		opt =
 #if ENABLE_FEATURE_GETOPT_LONG
-			alternative ?
-			getopt_long_only(argc, argv, optstr, longopts, &longindex) :
-			getopt_long(argc, argv, optstr, longopts, &longindex);
+		int longindex;
+		int opt = alternative
+			? getopt_long_only(argc, argv, optstr, longopts, &longindex)
+			: getopt_long(argc, argv, optstr, longopts, &longindex)
+		;
 #else
-			getopt(argc, argv, optstr);
+		int opt = getopt(argc, argv, optstr);
 #endif
 		if (opt == -1)
 			break;
@@ -257,9 +259,10 @@
 			if (opt == NON_OPT)
 				printf(" %s", normalize(optarg));
 			else {
+				const char *charptr;
 				printf(" -%c", opt);
 				charptr = strchr(optstr, opt);
-				if (charptr != NULL && *++charptr == ':')
+				if (charptr && *++charptr == ':')
 					printf(" %s",
 						normalize(optarg ? optarg : ""));
 			}
@@ -267,9 +270,11 @@
 	}
 
 	if (!quiet_output) {
+		unsigned idx;
 		printf(" --");
-		while (optind < argc)
-			printf(" %s", normalize(argv[optind++]));
+		idx = optind;
+		while (argv[idx])
+			printf(" %s", normalize(argv[idx++]));
 		bb_putchar('\n');
 	}
 	return exit_code;
diff --git a/util-linux/hexdump.c b/util-linux/hexdump.c
index 9a312f9..ac7e24f 100644
--- a/util-linux/hexdump.c
+++ b/util-linux/hexdump.c
@@ -66,13 +66,6 @@
 
 static const char hexdump_opts[] ALIGN1 = "bcdoxCe:f:n:s:v" IF_FEATURE_HEXDUMP_REVERSE("R");
 
-static const struct suffix_mult suffixes[] = {
-	{ "b", 512 },
-	{ "k", 1024 },
-	{ "m", 1024*1024 },
-	{ "", 0 }
-};
-
 int hexdump_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int hexdump_main(int argc, char **argv)
 {
@@ -116,7 +109,12 @@
 			dumper->dump_length = xatoi_positive(optarg);
 		} /* else */
 		if (ch == 's') { /* compat: -s accepts hex numbers too */
-			dumper->dump_skip = xstrtoul_range_sfx(optarg, /*base:*/ 0, /*lo:*/ 0, /*hi:*/ LONG_MAX, suffixes);
+			dumper->dump_skip = xstrtoull_range_sfx(
+				optarg,
+				/*base:*/ 0,
+				/*lo:*/ 0, /*hi:*/ OFF_T_MAX,
+				bkm_suffixes
+			);
 		} /* else */
 		if (ch == 'v') {
 			dumper->dump_vflag = ALL;
diff --git a/util-linux/ipcs.c b/util-linux/ipcs.c
index 2668caf..67a25a8 100644
--- a/util-linux/ipcs.c
+++ b/util-linux/ipcs.c
@@ -166,10 +166,10 @@
 	case STATUS:
 		printf("------ Shared Memory %s --------\n", "Status");
 		printf("segments allocated %d\n"
-				"pages allocated %ld\n"
-				"pages resident  %ld\n"
-				"pages swapped   %ld\n"
-				"Swap performance: %ld attempts\t%ld successes\n",
+				"pages allocated %lu\n"
+				"pages resident  %lu\n"
+				"pages swapped   %lu\n"
+				"Swap performance: %lu attempts\t%lu successes\n",
 				shm_info.used_ids,
 				shm_info.shm_tot,
 				shm_info.shm_rss,
@@ -569,7 +569,7 @@
 		if (val < 0 || ncnt < 0 || zcnt < 0 || pid < 0) {
 			bb_perror_msg_and_die("semctl");
 		}
-		printf("%-10d %-10d %-10d %-10d %-10d\n", i, val, ncnt, zcnt, pid);
+		printf("%-10u %-10d %-10d %-10d %-10d\n", i, val, ncnt, zcnt, pid);
 	}
 	bb_putchar('\n');
 }
diff --git a/util-linux/losetup.c b/util-linux/losetup.c
index 21108d0..d450b5a 100644
--- a/util-linux/losetup.c
+++ b/util-linux/losetup.c
@@ -8,16 +8,16 @@
  */
 
 //usage:#define losetup_trivial_usage
-//usage:       "[-r] [-o OFS] LOOPDEV FILE - associate loop devices\n"
+//usage:       "[-r] [-o OFS] {-f|LOOPDEV} FILE - associate loop devices\n"
 //usage:       "	losetup -d LOOPDEV - disassociate\n"
-//usage:       "	losetup [-f] - show"
+//usage:       "	losetup -a - show status\n"
+//usage:       "	losetup -f - show next free loop device"
 //usage:#define losetup_full_usage "\n\n"
 //usage:       "	-o OFS	Start OFS bytes into FILE"
 //usage:     "\n	-r	Read-only"
-//usage:     "\n	-f	Show first free loop device"
+//usage:     "\n	-f	Show/use next free loop device"
 //usage:
 //usage:#define losetup_notes_usage
-//usage:       "No arguments will display all current associations.\n"
 //usage:       "One argument (losetup /dev/loop1) will display the current association\n"
 //usage:       "(if any), or disassociate it (with -d). The display shows the offset\n"
 //usage:       "and filename of the file the loop device is currently bound to.\n\n"
@@ -27,50 +27,32 @@
 
 #include "libbb.h"
 
+/* 1048575 is a max possible minor number in Linux circa 2010 */
+/* for now use something less extreme */
+#define MAX_LOOP_NUM 1023
+
 int losetup_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int losetup_main(int argc UNUSED_PARAM, char **argv)
 {
 	unsigned opt;
-	int n;
 	char *opt_o;
-	unsigned long long offset = 0;
+	char dev[LOOP_NAMESIZE];
 	enum {
 		OPT_d = (1 << 0),
 		OPT_o = (1 << 1),
 		OPT_f = (1 << 2),
-		OPT_r = (1 << 3), /* must be last */
+		OPT_a = (1 << 3),
+		OPT_r = (1 << 4), /* must be last */
 	};
 
-	/* max 2 args, -d,-o,-f opts are mutually exclusive */
-	opt_complementary = "?2:d--of:o--df:f--do";
-	opt = getopt32(argv, "do:fr", &opt_o);
+	opt_complementary = "?2:d--ofar:a--ofr";
+	opt = getopt32(argv, "do:far", &opt_o);
 	argv += optind;
 
-	if (opt == OPT_o)
-		offset = xatoull(opt_o);
-
-	if (opt == OPT_d) {
-		/* -d BLOCKDEV */
-		if (!argv[0] || argv[1])
-			bb_show_usage();
-		if (del_loop(argv[0]))
-			bb_simple_perror_msg_and_die(argv[0]);
-		return EXIT_SUCCESS;
-	}
-
-	if (argv[0]) {
+	/* LOOPDEV */
+	if (!opt && argv[0] && !argv[1]) {
 		char *s;
 
-		if (opt == OPT_f) /* -f should not have arguments */
-			bb_show_usage();
-
-		if (argv[1]) {
-			/* [-r] [-o OFS] BLOCKDEV FILE */
-			if (set_loop(&argv[0], argv[1], offset, (opt / OPT_r)) < 0)
-				bb_simple_perror_msg_and_die(argv[0]);
-			return EXIT_SUCCESS;
-		}
-		/* [-r] [-o OFS] BLOCKDEV */
 		s = query_loop(argv[0]);
 		if (!s)
 			bb_simple_perror_msg_and_die(argv[0]);
@@ -80,28 +62,65 @@
 		return EXIT_SUCCESS;
 	}
 
-	/* [-r] [-o OFS|-f] with no params */
-	n = 0;
-	while (1) {
-		char *s;
-		char dev[LOOP_NAMESIZE];
+	/* -d LOOPDEV */
+	if (opt == OPT_d && argv[0]) {
+		if (del_loop(argv[0]))
+			bb_simple_perror_msg_and_die(argv[0]);
+		return EXIT_SUCCESS;
+	}
 
-		sprintf(dev, LOOP_FORMAT, n);
-		s = query_loop(dev);
-		n++;
-		if (!s) {
-			if (n > 9 && errno && errno != ENXIO)
-				return EXIT_SUCCESS;
-			if (opt == OPT_f) {
-				puts(dev);
-				return EXIT_SUCCESS;
-			}
-		} else {
-			if (opt != OPT_f)
+	/* -a */
+	if (opt == OPT_a) {
+		int n;
+		for (n = 0; n < MAX_LOOP_NUM; n++) {
+			char *s;
+
+			sprintf(dev, LOOP_FORMAT, n);
+			s = query_loop(dev);
+			if (s) {
 				printf("%s: %s\n", dev, s);
-			if (ENABLE_FEATURE_CLEAN_UP)
 				free(s);
+			}
+		}
+		return EXIT_SUCCESS;
+	}
+
+	/* contains -f */
+	if (opt & OPT_f) {
+		char *s;
+		int n = 0;
+
+		do {
+			if (n > MAX_LOOP_NUM)
+				bb_error_msg_and_die("no free loop devices");
+			sprintf(dev, LOOP_FORMAT, n++);
+			s = query_loop(dev);
+			free(s);
+		} while (s);
+		/* now: dev is next free "/dev/loopN" */
+		if ((opt == OPT_f) && !argv[0]) {
+			puts(dev);
+			return EXIT_SUCCESS;
 		}
 	}
-	return EXIT_SUCCESS;
+
+	/* [-r] [-o OFS] {-f|LOOPDEV} FILE */
+	if (argv[0] && ((opt & OPT_f) || argv[1])) {
+		unsigned long long offset = 0;
+		char *d = dev;
+
+		if (opt & OPT_o)
+			offset = xatoull(opt_o);
+		if (!(opt & OPT_f))
+			d = *argv++;
+
+		if (argv[0]) {
+			if (set_loop(&d, argv[0], offset, (opt & OPT_r)) < 0)
+				bb_simple_perror_msg_and_die(argv[0]);
+			return EXIT_SUCCESS;
+		}
+	}
+
+	bb_show_usage(); /* does not return */
+	/*return EXIT_FAILURE;*/
 }
diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index 3d4e135..e80b58f 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -325,23 +325,6 @@
 	make_default_cur_rule();
 }
 
-/* In later versions, endofname is in libbb */
-#define endofname mdev_endofname
-static
-const char* FAST_FUNC
-endofname(const char *name)
-{
-#define is_name(c)      ((c) == '_' || isalpha((unsigned char)(c)))
-#define is_in_name(c)   ((c) == '_' || isalnum((unsigned char)(c)))
-	if (!is_name(*name))
-		return name;
-	while (*++name) {
-		if (!is_in_name(*name))
-			break;
-	}
-	return name;
-}
-
 static char *parse_envmatch_pfx(char *val)
 {
 	struct envmatch **nextp = &G.cur_rule.envmatch;
@@ -1100,15 +1083,15 @@
 		 * ACTION can be "add", "remove", "change"
 		 * DEVPATH is like "/block/sda" or "/class/input/mice"
 		 */
-		action = getenv("ACTION");
-		op = index_in_strings(keywords, action);
 		env_devname = getenv("DEVNAME"); /* can be NULL */
-		env_devpath = getenv("DEVPATH");
 		G.subsystem = getenv("SUBSYSTEM");
+		action = getenv("ACTION");
+		env_devpath = getenv("DEVPATH");
 		if (!action || !env_devpath /*|| !G.subsystem*/)
 			bb_show_usage();
 		fw = getenv("FIRMWARE");
 		seq = getenv("SEQNUM");
+		op = index_in_strings(keywords, action);
 
 		my_pid = getpid();
 		open_mdev_log(seq, my_pid);
diff --git a/util-linux/mkfs_ext2.c b/util-linux/mkfs_ext2.c
index 900bfef..c437307 100644
--- a/util-linux/mkfs_ext2.c
+++ b/util-linux/mkfs_ext2.c
@@ -58,7 +58,7 @@
 #define EXT2_FLAGS_UNSIGNED_HASH 0x0002
 
 // storage helpers
-char BUG_wrong_field_size(void);
+unsigned char BUG_wrong_field_size(void);
 #define STORE_LE(field, value) \
 do { \
 	if (sizeof(field) == 4) \
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c
index 59d7d23..d65a516 100644
--- a/util-linux/mkfs_minix.c
+++ b/util-linux/mkfs_minix.c
@@ -196,54 +196,6 @@
 # define BLKGETSIZE     _IO(0x12,96)    /* return device size */
 #endif
 
-
-static long valid_offset(int fd, int offset)
-{
-	char ch;
-
-	if (lseek(fd, offset, SEEK_SET) < 0)
-		return 0;
-	if (read(fd, &ch, 1) < 1)
-		return 0;
-	return 1;
-}
-
-static int count_blocks(int fd)
-{
-	int high, low;
-
-	low = 0;
-	for (high = 1; valid_offset(fd, high); high *= 2)
-		low = high;
-
-	while (low < high - 1) {
-		const int mid = (low + high) / 2;
-
-		if (valid_offset(fd, mid))
-			low = mid;
-		else
-			high = mid;
-	}
-	valid_offset(fd, 0);
-	return (low + 1);
-}
-
-static int get_size(const char *file)
-{
-	int fd;
-	long size;
-
-	fd = xopen(file, O_RDWR);
-	if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
-		close(fd);
-		return (size * 512);
-	}
-
-	size = count_blocks(fd);
-	close(fd);
-	return size;
-}
-
 static void write_tables(void)
 {
 	/* Mark the superblock valid. */
@@ -553,7 +505,7 @@
 
 	listfile = xfopen_for_read(filename);
 	while (!feof(listfile)) {
-		fscanf(listfile, "%ld\n", &blockno);
+		fscanf(listfile, "%lu\n", &blockno);
 		mark_zone(blockno);
 		G.badblocks++;
 	}
@@ -636,7 +588,6 @@
 {
 	unsigned opt;
 	char *tmp;
-	struct stat statbuf;
 	char *str_i;
 	char *listfile = NULL;
 
@@ -673,13 +624,17 @@
 #endif
 	}
 
-	G.device_name = *argv++;
+	G.device_name = argv[0];
 	if (!G.device_name)
 		bb_show_usage();
-	if (*argv)
-		G.total_blocks = xatou32(*argv);
-	else
-		G.total_blocks = get_size(G.device_name) / 1024;
+
+	/* Check if it is mounted */
+	if (find_mount_point(G.device_name, 0))
+		bb_error_msg_and_die("can't format mounted filesystem");
+
+	xmove_fd(xopen(G.device_name, O_RDWR), dev_fd);
+
+	G.total_blocks = get_volume_size_in_bytes(dev_fd, argv[1], 1024, /*extend:*/ 1) / 1024;
 
 	if (G.total_blocks < 10)
 		bb_error_msg_and_die("must have at least 10 blocks");
@@ -690,25 +645,21 @@
 			G.magic = MINIX2_SUPER_MAGIC;
 	} else if (G.total_blocks > 65535)
 		G.total_blocks = 65535;
-
-	/* Check if it is mounted */
-	if (find_mount_point(G.device_name, 0))
-		bb_error_msg_and_die("can't format mounted filesystem");
-
-	xmove_fd(xopen(G.device_name, O_RDWR), dev_fd);
+#if 0
+	struct stat statbuf;
 	xfstat(dev_fd, &statbuf, G.device_name);
+/* why? */
 	if (!S_ISBLK(statbuf.st_mode))
 		opt &= ~1; // clear -c (check)
-
+#if 0
 /* I don't know why someone has special code to prevent mkfs.minix
  * on IDE devices. Why IDE but not SCSI, etc?... */
-#if 0
 	else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340)
 		/* what is this? */
 		bb_error_msg_and_die("will not try "
 			"to make filesystem on '%s'", G.device_name);
 #endif
-
+#endif
 	tmp = G.root_block;
 	*(short *) tmp = 1;
 	strcpy(tmp + 2, ".");
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 7e547fe..6f1ce67 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -341,6 +341,7 @@
 	unsigned verbose;
 #endif
 	llist_t *fslist;
+	int user_fstype;
 	char getmntent_buf[1];
 } FIX_ALIASING;
 enum { GETMNTENT_BUFSIZE = COMMON_BUFSIZE - offsetof(struct globals, getmntent_buf) };
@@ -352,6 +353,7 @@
 #define verbose           0
 #endif
 #define fslist            (G.fslist           )
+#define user_fstype       (G.user_fstype      )
 #define getmntent_buf     (G.getmntent_buf    )
 #define INIT_G() do { } while (0)
 
@@ -1776,6 +1778,7 @@
 	int rc = -1;
 	unsigned long vfsflags;
 	char *loopFile = NULL, *filteropts = NULL;
+	char *detected_fstype = NULL;
 	llist_t *fl = NULL;
 	struct stat st;
 
@@ -1783,9 +1786,19 @@
 
 	vfsflags = parse_mount_options(mp->mnt_opts, &filteropts);
 
-	// Treat fstype "auto" as unspecified
-	if (mp->mnt_type && strcmp(mp->mnt_type, "auto") == 0)
-		mp->mnt_type = NULL;
+	if (user_fstype) {
+		// Treat fstype "auto" as unspecified
+		if (mp->mnt_type && !strcmp(mp->mnt_type, "auto"))
+			mp->mnt_type = NULL;
+	} else if (mp->mnt_type) {
+		// If user didn't specify an fstype and blkid disagrees or the
+		// fstype is "auto", trust blkid's determination of the fstype.
+		detected_fstype = get_fstype_from_devname(mp->mnt_fsname);
+
+		if (!strcmp(mp->mnt_type, "auto") ||
+		    (detected_fstype && strcmp(detected_fstype, mp->mnt_type)))
+			mp->mnt_type = detected_fstype;
+	}
 
 	// Might this be a virtual filesystem?
 	if (ENABLE_FEATURE_MOUNT_HELPERS && strchr(mp->mnt_fsname, '#')) {
@@ -1856,8 +1869,8 @@
 				len, share,
 				share + len + 1  /* "dir1/dir2" */
 			);
- 			parse_mount_options(unc, &filteropts);
- 			if (ENABLE_FEATURE_CLEAN_UP) free(unc);
+			parse_mount_options(unc, &filteropts);
+			if (ENABLE_FEATURE_CLEAN_UP) free(unc);
 		}
 
 		lsa = host2sockaddr(hostname, 0);
@@ -2062,6 +2075,8 @@
 	opt_complementary = "?2o::" IF_FEATURE_MOUNT_VERBOSE("vv");
 	opt = getopt32(argv, OPTION_STR, &lst_o, &fstype, &O_optmatch
 			IF_FEATURE_MOUNT_VERBOSE(, &verbose));
+
+	if (opt & OPT_t) user_fstype = 1;
 	while (lst_o) append_mount_options(&cmdopts, llist_pop(&lst_o)); // -o
 	if (opt & OPT_r) append_mount_options(&cmdopts, "ro"); // -r
 	if (opt & OPT_w) append_mount_options(&cmdopts, "rw"); // -w
@@ -2275,6 +2290,8 @@
 			mtcur->mnt_opts = xstrdup(mtcur->mnt_opts);
 			append_mount_options(&(mtcur->mnt_opts), cmdopts);
 			resolve_mount_spec(&mtpair->mnt_fsname);
+			if (user_fstype)
+				mtcur->mnt_type = fstype;
 			rc = singlemount(mtcur, /*ignore_busy:*/ 0);
 			if (ENABLE_FEATURE_CLEAN_UP)
 				free(mtcur->mnt_opts);
diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c
index 974fe89..a645404 100644
--- a/util-linux/readprofile.c
+++ b/util-linux/readprofile.c
@@ -152,7 +152,7 @@
 
 	step = buf[0];
 	if (optInfo) {
-		printf("Sampling_step: %i\n", step);
+		printf("Sampling_step: %u\n", step);
 		return EXIT_SUCCESS;
 	}
 
@@ -219,10 +219,10 @@
 		        && (fn_len = next_add-fn_add) != 0
 		) {
 			if (optVerbose)
-				printf("%016llx %-40s %6i %8.4f\n", fn_add,
+				printf("%016llx %-40s %6u %8.4f\n", fn_add,
 					fn_name, this, this/(double)fn_len);
 			else
-				printf("%6i %-40s %8.4f\n",
+				printf("%6u %-40s %8.4f\n",
 					this, fn_name, this/(double)fn_len);
 			if (optSub) {
 				unsigned long long scan;
@@ -246,14 +246,14 @@
 	}
 
 	/* clock ticks, out of kernel text - probably modules */
-	printf("%6i %s\n", buf[len/sizeof(*buf)-1], "*unknown*");
+	printf("%6u %s\n", buf[len/sizeof(*buf)-1], "*unknown*");
 
 	/* trailer */
 	if (optVerbose)
-		printf("%016x %-40s %6i %8.4f\n",
+		printf("%016x %-40s %6u %8.4f\n",
 			0, "total", total, total/(double)(fn_add-add0));
 	else
-		printf("%6i %-40s %8.4f\n",
+		printf("%6u %-40s %8.4f\n",
 			total, "total", total/(double)(fn_add-add0));
 
 	fclose(map);
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c
index 54867ec..963139a 100644
--- a/util-linux/swaponoff.c
+++ b/util-linux/swaponoff.c
@@ -60,7 +60,7 @@
 #if ENABLE_DESKTOP
 	/* test for holes */
 	if (S_ISREG(st.st_mode))
-		if (st.st_blocks * (off_t)512 < st.st_size)
+		if (st.st_blocks * (off_t)512 < (uint64_t) st.st_size)
 			bb_error_msg("warning: swap file has holes");
 #endif
 
@@ -95,6 +95,20 @@
 			if (applet_name[5] != 'n'
 			 || hasmntopt(m, MNTOPT_NOAUTO) == NULL
 			) {
+#if ENABLE_FEATURE_SWAPON_PRI
+				const char *p;
+				g_flags = 0; /* each swap space might have different flags */
+				p = hasmntopt(m, "pri");
+				if (p) {
+					/* Max allowed 32767 (==SWAP_FLAG_PRIO_MASK) */
+					unsigned int swap_prio = MIN(bb_strtou(p + 4 , NULL, 10), SWAP_FLAG_PRIO_MASK);
+					/* We want to allow "NNNN,foo", thus errno == EINVAL is allowed too */
+					if (errno != ERANGE) {
+						g_flags = SWAP_FLAG_PREFER |
+							(swap_prio << SWAP_FLAG_PRIO_SHIFT);
+					}
+				}
+#endif
 				err += swap_enable_disable(m->mnt_fsname);
 			}
 		}
diff --git a/util-linux/volume_id/Config.src b/util-linux/volume_id/Config.src
new file mode 100644
index 0000000..ac208c9
--- /dev/null
+++ b/util-linux/volume_id/Config.src
@@ -0,0 +1,15 @@
+#
+# For a description of the syntax of this configuration file,
+# see scripts/kbuild/config-language.txt.
+#
+
+config VOLUMEID
+	bool #No description makes it a hidden option
+	default n
+
+menu "Filesystem/Volume identification"
+	depends on VOLUMEID
+
+INSERT
+
+endmenu
diff --git a/util-linux/volume_id/Kbuild.src b/util-linux/volume_id/Kbuild.src
index 759fdaa..6b4fb74 100644
--- a/util-linux/volume_id/Kbuild.src
+++ b/util-linux/volume_id/Kbuild.src
@@ -7,41 +7,3 @@
 lib-y:=
 
 INSERT
-
-lib-$(CONFIG_BLKID)                             += get_devname.o
-lib-$(CONFIG_FINDFS)                            += get_devname.o
-lib-$(CONFIG_FEATURE_MOUNT_LABEL)               += get_devname.o
-
-lib-$(CONFIG_VOLUMEID)                          += volume_id.o util.o
-lib-$(CONFIG_FEATURE_VOLUMEID_BTRFS)            += btrfs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_EXT)              += ext.o
-lib-$(CONFIG_FEATURE_VOLUMEID_FAT)              += fat.o
-lib-$(CONFIG_FEATURE_VOLUMEID_HFS)              += hfs.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_HIGHPOINTRAID)    += highpoint.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_ISWRAID)          += isw_raid.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_LSIRAID)          += lsi_raid.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_VIARAID)          += via_raid.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_SILICONRAID)      += silicon_raid.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_NVIDIARAID)       += nvidia_raid.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_PROMISERAID)      += promise_raid.o
-lib-$(CONFIG_FEATURE_VOLUMEID_ISO9660)          += iso9660.o
-lib-$(CONFIG_FEATURE_VOLUMEID_JFS)              += jfs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_LINUXRAID)        += linux_raid.o
-lib-$(CONFIG_FEATURE_VOLUMEID_LINUXSWAP)        += linux_swap.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_LVM)              += lvm.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_MAC)              += mac.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_MSDOS)            += msdos.o
-lib-$(CONFIG_FEATURE_VOLUMEID_NILFS)            += nilfs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_NTFS)             += ntfs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_EXFAT)            += exfat.o
-lib-$(CONFIG_FEATURE_VOLUMEID_REISERFS)         += reiserfs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_UDF)              += udf.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_UFS)              += ufs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_XFS)              += xfs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_CRAMFS)           += cramfs.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_HPFS)             += hpfs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_ROMFS)            += romfs.o
-lib-$(CONFIG_FEATURE_VOLUMEID_SYSV)             += sysv.o
-### lib-$(CONFIG_FEATURE_VOLUMEID_MINIX)            += minix.o
-lib-$(CONFIG_FEATURE_VOLUMEID_LUKS)             += luks.o
-lib-$(CONFIG_FEATURE_VOLUMEID_OCFS2)            += ocfs2.o
diff --git a/util-linux/volume_id/btrfs.c b/util-linux/volume_id/btrfs.c
index ee71d2e..e4dddf2 100644
--- a/util-linux/volume_id/btrfs.c
+++ b/util-linux/volume_id/btrfs.c
@@ -19,6 +19,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_BTRFS) += btrfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_BTRFS
+//config:	bool "btrfs filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 #define BTRFS_UUID_SIZE 16
diff --git a/util-linux/volume_id/cramfs.c b/util-linux/volume_id/cramfs.c
index 28e9970..aeb7f20 100644
--- a/util-linux/volume_id/cramfs.c
+++ b/util-linux/volume_id/cramfs.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_CRAMFS) += cramfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_CRAMFS
+//config:	bool "cramfs filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct cramfs_super {
diff --git a/util-linux/volume_id/exfat.c b/util-linux/volume_id/exfat.c
index a38a891..c3aa368 100644
--- a/util-linux/volume_id/exfat.c
+++ b/util-linux/volume_id/exfat.c
@@ -18,6 +18,19 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_EXFAT) += exfat.o
+
+//config:
+//config:config FEATURE_VOLUMEID_EXFAT
+//config:	bool "exFAT filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  exFAT (extended FAT) is a proprietary file system designed especially
+//config:	  for flash drives. It has many features from NTFS, but with less
+//config:	  overhead. exFAT is used on most SDXC cards for consumer electronics.
+//config:
+
 #include "volume_id_internal.h"
 
 #define EXFAT_SB_OFFSET		0
diff --git a/util-linux/volume_id/ext.c b/util-linux/volume_id/ext.c
index 9745106..df39d93 100644
--- a/util-linux/volume_id/ext.c
+++ b/util-linux/volume_id/ext.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_EXT) += ext.o
+
+//config:
+//config:config FEATURE_VOLUMEID_EXT
+//config:	bool "Ext filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 #include "bb_e2fs_defs.h"
 
diff --git a/util-linux/volume_id/fat.c b/util-linux/volume_id/fat.c
index 904fbb2..476d500 100644
--- a/util-linux/volume_id/fat.c
+++ b/util-linux/volume_id/fat.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_FAT) += fat.o
+
+//config:
+//config:config FEATURE_VOLUMEID_FAT
+//config:	bool "fat filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 /* linux/msdos_fs.h says: */
diff --git a/util-linux/volume_id/get_devname.c b/util-linux/volume_id/get_devname.c
index 665cb9b..85b0fad 100644
--- a/util-linux/volume_id/get_devname.c
+++ b/util-linux/volume_id/get_devname.c
@@ -7,6 +7,11 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
+
+//kbuild:lib-$(CONFIG_BLKID) += get_devname.o
+//kbuild:lib-$(CONFIG_FINDFS) += get_devname.o
+//kbuild:lib-$(CONFIG_FEATURE_MOUNT_LABEL) += get_devname.o
+
 #include <sys/mount.h> /* BLKGETSIZE64 */
 #if !defined(BLKGETSIZE64)
 # define BLKGETSIZE64 _IOR(0x12,114,size_t)
@@ -241,10 +246,10 @@
 
 int add_to_uuid_cache(const char *device)
 {
-	char *uuid = uuid; /* for compiler */
-	char *label = label;
+	static char *uuid; /* for compiler */
+	static char *label;
 #if ENABLE_FEATURE_BLKID_TYPE
-	const char *type = type;
+	static const char *type;
 #endif
 	int fd;
 
@@ -261,6 +266,26 @@
 	return 0;
 }
 
+char *get_fstype_from_devname(const char *device)
+{
+#if ENABLE_FEATURE_BLKID_TYPE
+	struct uuidCache_s *uc;
+	struct stat statbuf;
+
+	if (stat(device, &statbuf) < 0)
+		return NULL;
+
+	if (!S_ISBLK(statbuf.st_mode) && !S_ISREG(statbuf.st_mode))
+		return NULL;
+
+	add_to_uuid_cache(device);
+	uc = uuidcache_init(0);
+
+	return (uc != NULL ? (char*)uc->type : NULL);
+#else
+	return NULL;
+#endif
+}
 
 /* Used by mount and findfs */
 
diff --git a/util-linux/volume_id/hfs.c b/util-linux/volume_id/hfs.c
index 3d9704d..8d34aaf 100644
--- a/util-linux/volume_id/hfs.c
+++ b/util-linux/volume_id/hfs.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_HFS) += hfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_HFS
+//config:	bool "hfs filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct hfs_finder_info{
diff --git a/util-linux/volume_id/iso9660.c b/util-linux/volume_id/iso9660.c
index 1d7693a..3848de4 100644
--- a/util-linux/volume_id/iso9660.c
+++ b/util-linux/volume_id/iso9660.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_ISO9660) += iso9660.o
+
+//config:
+//config:config FEATURE_VOLUMEID_ISO9660
+//config:	bool "iso9660 filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 #define ISO_SUPERBLOCK_OFFSET		0x8000
diff --git a/util-linux/volume_id/jfs.c b/util-linux/volume_id/jfs.c
index 5333af2..a6eaff4 100644
--- a/util-linux/volume_id/jfs.c
+++ b/util-linux/volume_id/jfs.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_JFS) += jfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_JFS
+//config:	bool "jfs filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct jfs_super_block {
diff --git a/util-linux/volume_id/linux_raid.c b/util-linux/volume_id/linux_raid.c
index 209eaab..f20823a 100644
--- a/util-linux/volume_id/linux_raid.c
+++ b/util-linux/volume_id/linux_raid.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_LINUXRAID) += linux_raid.o
+
+//config:
+//config:config FEATURE_VOLUMEID_LINUXRAID
+//config:	bool "linuxraid"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct mdp_super_block {
diff --git a/util-linux/volume_id/linux_swap.c b/util-linux/volume_id/linux_swap.c
index 1ee534a..39470d4 100644
--- a/util-linux/volume_id/linux_swap.c
+++ b/util-linux/volume_id/linux_swap.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_LINUXSWAP) += linux_swap.o
+
+//config:
+//config:config FEATURE_VOLUMEID_LINUXSWAP
+//config:	bool "linux swap filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct swap_header_v1_2 {
diff --git a/util-linux/volume_id/luks.c b/util-linux/volume_id/luks.c
index f9b3766..42bf876 100644
--- a/util-linux/volume_id/luks.c
+++ b/util-linux/volume_id/luks.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_LUKS) += luks.o
+
+//config:
+//config:config FEATURE_VOLUMEID_LUKS
+//config:	bool "luks filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 #define LUKS_MAGIC_L             6
diff --git a/util-linux/volume_id/nilfs.c b/util-linux/volume_id/nilfs.c
index b88a9e4..f3a9ef5 100644
--- a/util-linux/volume_id/nilfs.c
+++ b/util-linux/volume_id/nilfs.c
@@ -19,6 +19,26 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_NILFS) += nilfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_NILFS
+//config:	bool "nilfs filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  NILFS is a New Implementation of a Log-Structured File System (LFS)
+//config:	  that supports continuous snapshots. This provides features like
+//config:	  versioning of the entire filesystem, restoration of files that
+//config:	  were deleted a few minutes ago. NILFS keeps consistency like
+//config:	  conventional LFS, so it provides quick recovery after system crashes.
+//config:
+//config:	  The possible use of NILFS includes versioning, tamper detection,
+//config:	  SOX compliance logging, and so forth. It can serve as an alternative
+//config:	  filesystem for Linux desktop environment, or as a basis of advanced
+//config:	  storage appliances.
+//config:
+
 #include "volume_id_internal.h"
 
 #define NILFS_UUID_SIZE 16
diff --git a/util-linux/volume_id/ntfs.c b/util-linux/volume_id/ntfs.c
index 0444e54..46f687a 100644
--- a/util-linux/volume_id/ntfs.c
+++ b/util-linux/volume_id/ntfs.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_NTFS) += ntfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_NTFS
+//config:	bool "ntfs filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct ntfs_super_block {
diff --git a/util-linux/volume_id/ocfs2.c b/util-linux/volume_id/ocfs2.c
index fcdb151..415e0bf 100644
--- a/util-linux/volume_id/ocfs2.c
+++ b/util-linux/volume_id/ocfs2.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_OCFS2) += ocfs2.o
+
+//config:
+//config:config FEATURE_VOLUMEID_OCFS2
+//config:	bool "ocfs2 filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 /* All these values are taken from ocfs2-tools's ocfs2_fs.h */
diff --git a/util-linux/volume_id/reiserfs.c b/util-linux/volume_id/reiserfs.c
index 67b4a18..24979fb 100644
--- a/util-linux/volume_id/reiserfs.c
+++ b/util-linux/volume_id/reiserfs.c
@@ -19,6 +19,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_REISERFS) += reiserfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_REISERFS
+//config:	bool "Reiser filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct reiserfs_super_block {
diff --git a/util-linux/volume_id/romfs.c b/util-linux/volume_id/romfs.c
index 15653be..4754fdb 100644
--- a/util-linux/volume_id/romfs.c
+++ b/util-linux/volume_id/romfs.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_ROMFS) += romfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_ROMFS
+//config:	bool "romfs filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct romfs_super {
diff --git a/util-linux/volume_id/squashfs.c b/util-linux/volume_id/squashfs.c
index c5b4f9c..079b6cc 100644
--- a/util-linux/volume_id/squashfs.c
+++ b/util-linux/volume_id/squashfs.c
@@ -8,6 +8,18 @@
 
 //kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_SQUASHFS) += squashfs.o
 
+//config:
+//config:config FEATURE_VOLUMEID_SQUASHFS
+//config:	bool "SquashFS filesystem"
+//config:	default y
+//config:	depends on VOLUMEID && FEATURE_BLKID_TYPE
+//config:	help
+//config:	  Squashfs is a compressed read-only filesystem for Linux. Squashfs is
+//config:	  intended for general read-only filesystem use and in constrained block
+//config:	  device/memory systems (e.g. embedded systems) where low overhead is
+//config:	  needed.
+//config:
+
 #include "volume_id_internal.h"
 
 struct squashfs_superblock {
diff --git a/util-linux/volume_id/sysv.c b/util-linux/volume_id/sysv.c
index 6eb9646..7b4b536 100644
--- a/util-linux/volume_id/sysv.c
+++ b/util-linux/volume_id/sysv.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_SYSV) += sysv.o
+
+//config:
+//config:config FEATURE_VOLUMEID_SYSV
+//config:	bool "sysv filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 #define SYSV_NICINOD			100
diff --git a/util-linux/volume_id/udf.c b/util-linux/volume_id/udf.c
index d3747fb..9214545 100644
--- a/util-linux/volume_id/udf.c
+++ b/util-linux/volume_id/udf.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_UDF) += udf.o
+
+//config:
+//config:config FEATURE_VOLUMEID_UDF
+//config:	bool "udf filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct volume_descriptor {
diff --git a/util-linux/volume_id/unused_highpoint.c b/util-linux/volume_id/unused_highpoint.c
index 17b7b32..7231a1d 100644
--- a/util-linux/volume_id/unused_highpoint.c
+++ b/util-linux/volume_id/unused_highpoint.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_HIGHPOINTRAID) += highpoint.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_HIGHPOINTRAID
+//config:###	bool "highpoint raid"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct hpt37x_meta {
diff --git a/util-linux/volume_id/unused_hpfs.c b/util-linux/volume_id/unused_hpfs.c
index 4429524..a87c89f 100644
--- a/util-linux/volume_id/unused_hpfs.c
+++ b/util-linux/volume_id/unused_hpfs.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_HPFS) += hpfs.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_HPFS
+//config:###	bool "hpfs filesystem"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct hpfs_super {
diff --git a/util-linux/volume_id/unused_isw_raid.c b/util-linux/volume_id/unused_isw_raid.c
index 7ab47b3..851bd2f 100644
--- a/util-linux/volume_id/unused_isw_raid.c
+++ b/util-linux/volume_id/unused_isw_raid.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_ISWRAID) += isw_raid.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_ISWRAID
+//config:###	bool "intel raid"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct isw_meta {
diff --git a/util-linux/volume_id/unused_lsi_raid.c b/util-linux/volume_id/unused_lsi_raid.c
index e6cc8ed..52d68de 100644
--- a/util-linux/volume_id/unused_lsi_raid.c
+++ b/util-linux/volume_id/unused_lsi_raid.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_LSIRAID) += lsi_raid.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_LSIRAID
+//config:###	bool "lsi raid"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct lsi_meta {
diff --git a/util-linux/volume_id/unused_lvm.c b/util-linux/volume_id/unused_lvm.c
index 2206498..08fa052 100644
--- a/util-linux/volume_id/unused_lvm.c
+++ b/util-linux/volume_id/unused_lvm.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_LVM) += lvm.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_LVM
+//config:###	bool "lvm"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct lvm1_super_block {
diff --git a/util-linux/volume_id/unused_mac.c b/util-linux/volume_id/unused_mac.c
index e8deb97..a1a53d1 100644
--- a/util-linux/volume_id/unused_mac.c
+++ b/util-linux/volume_id/unused_mac.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_MAC) += mac.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_MAC
+//config:###	bool "mac filesystem"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct mac_driver_desc {
diff --git a/util-linux/volume_id/unused_minix.c b/util-linux/volume_id/unused_minix.c
index a3e1077..50afd5c 100644
--- a/util-linux/volume_id/unused_minix.c
+++ b/util-linux/volume_id/unused_minix.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_MINIX) += minix.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_MINIX
+//config:###	bool "minix filesystem"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct minix_super_block {
diff --git a/util-linux/volume_id/unused_msdos.c b/util-linux/volume_id/unused_msdos.c
index 2e8cb19..5ebaa3e 100644
--- a/util-linux/volume_id/unused_msdos.c
+++ b/util-linux/volume_id/unused_msdos.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_MSDOS) += msdos.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_MSDOS
+//config:###	bool "msdos filesystem"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct msdos_partition_entry {
@@ -165,7 +176,7 @@
 				if (id->partition_count < 4)
 					id->partition_count = 4;
 
-				p = &id->partitions[id->partition_count];
+//				p = &id->partitions[id->partition_count];
 
 //				if (is_raid(part[i].sys_ind))
 //					volume_id_set_usage_part(p, VOLUME_ID_RAID);
diff --git a/util-linux/volume_id/unused_nvidia_raid.c b/util-linux/volume_id/unused_nvidia_raid.c
index 9e84729..d99a108 100644
--- a/util-linux/volume_id/unused_nvidia_raid.c
+++ b/util-linux/volume_id/unused_nvidia_raid.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_NVIDIARAID) += nvidia_raid.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_NVIDIARAID
+//config:###	bool "nvidia raid"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct nvidia_meta {
diff --git a/util-linux/volume_id/unused_promise_raid.c b/util-linux/volume_id/unused_promise_raid.c
index 0b0d006..cebebe3 100644
--- a/util-linux/volume_id/unused_promise_raid.c
+++ b/util-linux/volume_id/unused_promise_raid.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_PROMISERAID) += promise_raid.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_PROMISERAID
+//config:###	bool "promise raid"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct promise_meta {
diff --git a/util-linux/volume_id/unused_silicon_raid.c b/util-linux/volume_id/unused_silicon_raid.c
index 878b881..40c8faa 100644
--- a/util-linux/volume_id/unused_silicon_raid.c
+++ b/util-linux/volume_id/unused_silicon_raid.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_SILICONRAID) += silicon_raid.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_SILICONRAID
+//config:###	bool "silicon raid"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct silicon_meta {
diff --git a/util-linux/volume_id/unused_ufs.c b/util-linux/volume_id/unused_ufs.c
index 9f925d9..d33c10f 100644
--- a/util-linux/volume_id/unused_ufs.c
+++ b/util-linux/volume_id/unused_ufs.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_UFS) += ufs.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_UFS
+//config:###	bool "ufs filesystem"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct ufs_super_block {
diff --git a/util-linux/volume_id/unused_via_raid.c b/util-linux/volume_id/unused_via_raid.c
index a11eec1..258f93a 100644
--- a/util-linux/volume_id/unused_via_raid.c
+++ b/util-linux/volume_id/unused_via_raid.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:### lib-$(CONFIG_FEATURE_VOLUMEID_VIARAID) += via_raid.o
+
+//config:
+//config:### config FEATURE_VOLUMEID_VIARAID
+//config:###	bool "via raid"
+//config:###	default y
+//config:###	depends on VOLUMEID
+//config:###	help
+//config:###	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct via_meta {
diff --git a/util-linux/volume_id/volume_id.c b/util-linux/volume_id/volume_id.c
index 73fc689..66690c2 100644
--- a/util-linux/volume_id/volume_id.c
+++ b/util-linux/volume_id/volume_id.c
@@ -18,6 +18,8 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_VOLUMEID) += volume_id.o util.o
+
 #include "volume_id_internal.h"
 
 
diff --git a/util-linux/volume_id/volume_id_internal.h b/util-linux/volume_id/volume_id_internal.h
index 159e086..6e2dbd7 100644
--- a/util-linux/volume_id/volume_id_internal.h
+++ b/util-linux/volume_id/volume_id_internal.h
@@ -96,44 +96,24 @@
 /* size of seek buffer, FAT cluster is 32k max */
 #define SEEK_BUFFER_SIZE			0x10000
 
-#define bswap16(x) (uint16_t)	( \
-				(((uint16_t)(x) & 0x00ffu) << 8) | \
-				(((uint16_t)(x) & 0xff00u) >> 8))
-
-#define bswap32(x) (uint32_t)	( \
-				(((uint32_t)(x) & 0xff000000u) >> 24) | \
-				(((uint32_t)(x) & 0x00ff0000u) >>  8) | \
-				(((uint32_t)(x) & 0x0000ff00u) <<  8) | \
-				(((uint32_t)(x) & 0x000000ffu) << 24))
-
-#define bswap64(x) (uint64_t)	( \
-				(((uint64_t)(x) & 0xff00000000000000ull) >> 56) | \
-				(((uint64_t)(x) & 0x00ff000000000000ull) >> 40) | \
-				(((uint64_t)(x) & 0x0000ff0000000000ull) >> 24) | \
-				(((uint64_t)(x) & 0x000000ff00000000ull) >>  8) | \
-				(((uint64_t)(x) & 0x00000000ff000000ull) <<  8) | \
-				(((uint64_t)(x) & 0x0000000000ff0000ull) << 24) | \
-				(((uint64_t)(x) & 0x000000000000ff00ull) << 40) | \
-				(((uint64_t)(x) & 0x00000000000000ffull) << 56))
-
 #if BB_LITTLE_ENDIAN
-#define le16_to_cpu(x) (x)
-#define le32_to_cpu(x) (x)
-#define le64_to_cpu(x) (x)
-#define be16_to_cpu(x) bswap16(x)
-#define be32_to_cpu(x) bswap32(x)
-#define cpu_to_le16(x) (x)
-#define cpu_to_le32(x) (x)
-#define cpu_to_be32(x) bswap32(x)
+# define le16_to_cpu(x) (uint16_t)(x)
+# define le32_to_cpu(x) (uint32_t)(x)
+# define le64_to_cpu(x) (uint64_t)(x)
+# define be16_to_cpu(x) (uint16_t)(bswap_16(x))
+# define be32_to_cpu(x) (uint32_t)(bswap_32(x))
+# define cpu_to_le16(x) (uint16_t)(x)
+# define cpu_to_le32(x) (uint32_t)(x)
+# define cpu_to_be32(x) (uint32_t)(bswap_32(x))
 #else
-#define le16_to_cpu(x) bswap16(x)
-#define le32_to_cpu(x) bswap32(x)
-#define le64_to_cpu(x) bswap64(x)
-#define be16_to_cpu(x) (x)
-#define be32_to_cpu(x) (x)
-#define cpu_to_le16(x) bswap16(x)
-#define cpu_to_le32(x) bswap32(x)
-#define cpu_to_be32(x) (x)
+# define le16_to_cpu(x) (uint16_t)(bswap_16(x))
+# define le32_to_cpu(x) (uint32_t)(bswap_32(x))
+# define le64_to_cpu(x) (uint64_t)(bb_bswap_64(x))
+# define be16_to_cpu(x) (uint16_t)(x)
+# define be32_to_cpu(x) (uint32_t)(x)
+# define cpu_to_le16(x) (uint16_t)(bswap_16(x))
+# define cpu_to_le32(x) (uint32_t)(bswap_32(x))
+# define cpu_to_be32(x) (uint32_t)(x)
 #endif
 
 /* volume_id_set_uuid(id,buf,fmt) assumes size of uuid buf
diff --git a/util-linux/volume_id/xfs.c b/util-linux/volume_id/xfs.c
index 8474602..5eefc20 100644
--- a/util-linux/volume_id/xfs.c
+++ b/util-linux/volume_id/xfs.c
@@ -18,6 +18,17 @@
  *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+//kbuild:lib-$(CONFIG_FEATURE_VOLUMEID_XFS) += xfs.o
+
+//config:
+//config:config FEATURE_VOLUMEID_XFS
+//config:	bool "xfs filesystem"
+//config:	default y
+//config:	depends on VOLUMEID
+//config:	help
+//config:	  TODO
+//config:
+
 #include "volume_id_internal.h"
 
 struct xfs_super_block {