Changes in / [20:30]


Ignore:
Location:
/floppyfw
Files:
2 added
1 deleted
30 edited

Legend:

Unmodified
Added
Removed
  • /floppyfw/makefiles/linux.mk

    r19 r28  
    5454        -$(RM) $(MODULES_DIR)/.stripped 
    5555        -$(RM) -r $(LINUX_DIR) 
    56         bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     56        bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar $(TAR_VERBOSE) \ 
     57                -C $(BUILD_DIR) -xf - 
    5758ifneq ($(DOWNLOAD_LINUX_VERSION),$(LINUX_VERSION)) 
    5859        # Rename the dir from the downloaded version to the AFTER patch version  
     
    8182        drivers/net/wireless/. ); 
    8283endif 
     84 
     85        # Postpatching the kernel after iptables-pom-stuff because of the 
     86        # troublesome CONFIG_IP_NF_MATCH_OWNER option. 
     87        $(PATCH_DIR)/patch-kernel.sh $(LINUX_DIR) \ 
     88                $(PATCH_DIR)/kernel-after-pom 0* 
    8389 
    8490        # From a lwn article: need gcc 3.4/3.5,  
     
    121127        touch $(LINUX_DIR)/.configured 
    122128 
    123 $(LINUX_DIR)/.depend_done:  $(LINUX_DIR)/.configured 
     129linux-source-configured: $(LINUX_DIR)/.configured 
     130 
     131$(LINUX_DIR)/.depend_done:  linux-source-configured 
    124132        $(MAKE) -C $(LINUX_DIR) dep 
    125133        touch $(LINUX_DIR)/.depend_done 
  • /floppyfw/makefiles/module-packages.mk

    r19 r27  
    1010        # (cd $(LINUX_DIR) ; /sbin/depmod -ae -F System.map \ 
    1111        #       -b $(MODULES_DIR) -r $(LINUX_VERSION)) 
    12         $(RM)$(MODULES_DIR)/lib/modules/drivers 
    13         $(RM)$(MODULES_DIR)/lib/modules/$(LINUX_VERSION)/build 
     12        $(RM) $(MODULES_DIR)/lib/modules/drivers 
     13        $(RM) $(MODULES_DIR)/lib/modules/$(LINUX_VERSION)/build 
    1414        # -find $(MODULES_DIR) -name "*.o" -exec strip -g --strip-unneeded -R .comment -R .note {} \; 
    15         -find $(MODULES_DIR) -name "*.o" -exec strip --strip-debug --remove-section=.comment --remove-section=.note {} \; 
    16         $(RM)$(MODULES_BASE_DIR)/*.ffw 
     15        -find $(MODULES_DIR) -name "*.o" -exec $(STRIP_KMOD) {} \; 
     16        $(RM) $(MODULES_BASE_DIR)/*.ffw 
    1717        touch $(MODULES_DIR)/.stripped 
    1818 
  • /floppyfw/makefiles/hostapd.mk

    r19 r27  
    1818 
    1919$(HOSTAPD_DIR)/.unpacked: $(DL_DIR)/$(HOSTAPD_SOURCE) 
    20         $(HOSTAPD_CAT) $(DL_DIR)/$(HOSTAPD_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     20        $(HOSTAPD_CAT) $(DL_DIR)/$(HOSTAPD_SOURCE) | \ 
     21                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2122        touch $(HOSTAPD_DIR)/.unpacked 
    2223 
  • /floppyfw/makefiles/pppd.mk

    r19 r27  
    1616 
    1717$(PPPD_DIR)/.unpacked: $(DL_DIR)/$(PPPD_SOURCE) 
    18         zcat $(DL_DIR)/$(PPPD_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     18        zcat $(DL_DIR)/$(PPPD_SOURCE) | \ 
     19                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    1920        touch $(PPPD_DIR)/.unpacked 
    2021 
  • /floppyfw/makefiles/e3.mk

    r19 r27  
    3232$(E3_DIR)/.unpacked: $(DL_DIR)/$(E3_SOURCE) 
    3333# PLEASE NOTE! This is a temporary patch which can be removed when this bug is fixed in the general makefile!! 
    34         if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR);fi 
     34        @mkdir -p $(E3_PKG_DIR)/bin 
    3535# ^-- This one that is ;) 
    36         tar -C $(BUILD_DIR) -xvzf $(DL_DIR)/$(E3_SOURCE) 
     36        zcat $(DL_DIR)/$(E3_SOURCE) | \ 
     37                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    3738        touch $(E3_DIR)/.unpacked 
    3839 
     
    6364 
    6465e3-clean:  
     66        $(MAKE) -C $(E3_DIR) clean 
     67        $(RM) -r $(E3_PKG_DIR) 
     68 
     69e3-dirclean: 
    6570        $(RM) -r $(E3_DIR) 
    6671        $(RM) -r $(E3_PKG_DIR) 
  • /floppyfw/makefiles/bridgeutils.mk

    r19 r28  
    1818 
    1919$(BRIDGECTL_DIR)/.unpacked: $(DL_DIR)/$(BRIDGECTL_SOURCE) 
    20         zcat $(DL_DIR)/$(BRIDGECTL_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     20        zcat $(DL_DIR)/$(BRIDGECTL_SOURCE) | \ 
     21                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2122        touch $(BRIDGECTL_DIR)/.unpacked 
    2223 
     
    2425        (cd $(BRIDGECTL_DIR); $(RM) -r config.cache; \ 
    2526                ./configure \ 
     27                CFLAGS="$(TARGET_CFLAGS)" \ 
     28                CC="$(TARGET_CC)" \ 
    2629                --prefix=$(ADD_MASTER) \ 
    2730                --with-linux-headers=$(LINUX_DIR)/include/linux \ 
    28                 CFLAGS="$(TARGET_CFLAGS)" \ 
    2931        ); 
    3032        touch  $(BRIDGECTL_DIR)/.configured 
     
    3335        $(MAKE) -C $(BRIDGECTL_DIR) 
    3436 
    35 $(ADD_MASTER)/sbin/brctl: $(BRIDGECTL_DIR)/brctl/brctl 
    36         cp -a $(BRIDGECTL_DIR)/brctl/brctl $(ADD_MASTER)/sbin/brctl 
    37         cp -a $(BRIDGECTL_DIR)/brctl/brctld $(ADD_MASTER)/sbin/brctld 
    38         cp -a $(BRIDGECTL_DIR)/libbridge/libbridge.a \ 
    39                 $(ADD_MASTER)/lib/libbridge.a 
     37$(ADD_MASTER)/sbin/brctl: $(BRIDGECTL_DIR)/brctl/brctl $(ADD_MASTER) 
     38        @mkdir -p $(ADD_MASTER)/sbin $(ADD_MASTER)/lib 
     39        cp -a $(BRIDGECTL_DIR)/brctl/brctl $(ADD_MASTER)/sbin/ 
     40        cp -a $(BRIDGECTL_DIR)/brctl/brctld $(ADD_MASTER)/sbin/ 
     41        cp -a $(BRIDGECTL_DIR)/libbridge/libbridge.a $(ADD_MASTER)/lib/ 
    4042        -$(SSTRIP) $(ADD_MASTER)/sbin/brctl 
    4143        -$(SSTRIP) $(ADD_MASTER)/sbin/brctld 
    4244        -$(STRIP) $(ADD_MASTER)/lib/libbridge.a 
    4345 
    44 bridgeutils: $(ADD_MASTER)/sbin/brctl 
     46bridgeutils: linux-source-configured $(ADD_MASTER)/sbin/brctl 
    4547 
    4648bridgeutils-clean: 
     
    4951 
    5052bridgeutils-dirclean: 
    51         $(RM) -r $(BRIDGECTL_DIR) 
    52         $(RM) $(ADD_MASTER)/sbin/bridgeutils 
     53        $(RM) $(ADD_MASTER)/sbin/brctl $(ADD_MASTER)/sbin/brctld \ 
     54                $(ADD_MASTER)/lib/libbridge.a 
    5355 
     56 
  • /floppyfw/makefiles/ethtool.mk

    r19 r27  
    1717 
    1818$(ETHTOOL_DIR)/.unpacked: $(DL_DIR)/$(ETHTOOL_SOURCE) 
    19         zcat $(DL_DIR)/$(ETHTOOL_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     19        zcat $(DL_DIR)/$(ETHTOOL_SOURCE) | \ 
     20                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2021        touch $(ETHTOOL_DIR)/.unpacked 
    2122 
  • /floppyfw/makefiles/mii-diag.mk

    r19 r27  
    1515 
    1616$(MII-DIAG_DIR)/.unpacked: $(DL_DIR)/$(MII-DIAG_SOURCE) 
    17         zcat $(DL_DIR)/$(MII-DIAG_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     17        zcat $(DL_DIR)/$(MII-DIAG_SOURCE) | \ 
     18                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    1819        touch $(MII-DIAG_DIR)/.unpacked 
    1920 
  • /floppyfw/makefiles/ebtables.mk

    r19 r28  
    55############################################################# 
    66 
    7 EBTABLES_SOURCE_URL=$(SF_MIRROR)/sourceforge/ebtables/ 
     7EBTABLES_SOURCE_URL=$(SF_MIRROR)/sourceforge/ebtables 
    88EBTABLES_SOURCE=ebtables-v2.0.6.tar.gz 
    99EBTABLES_DIR=$(BUILD_DIR)/ebtables-v2.0.6 
    1010 
    1111$(DL_DIR)/$(EBTABLES_SOURCE): 
    12          $(WGET) -P $(DL_DIR) $(EBTABLES_SOURCE_URL)$(EBTABLES_SOURCE) 
     12         $(WGET) -P $(DL_DIR) $(EBTABLES_SOURCE_URL)/$(EBTABLES_SOURCE) 
    1313 
    1414ebtables-source: $(DL_DIR)/$(EBTABLES_SOURCE) 
    1515 
    1616$(EBTABLES_DIR)/.unpacked: $(DL_DIR)/$(EBTABLES_SOURCE) 
    17         zcat $(DL_DIR)/$(EBTABLES_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     17        zcat $(DL_DIR)/$(EBTABLES_SOURCE) | \ 
     18                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    1819        touch $(EBTABLES_DIR)/.unpacked 
    1920 
     
    2728        $(MAKE) -C $(EBTABLES_DIR) \ 
    2829                CFLAGS="$(TARGET_CFLAGS)" \ 
     30                CC="$(TARGET_CC)" \ 
    2931                KERNEL_INCLUDES=$(LINUX_DIR)/include \ 
    3032                BINDIR=/usr/sbin 
     
    3436        -$(SSTRIP) $(ADD_MASTER)/sbin/ebtables 
    3537 
    36 ebtables: $(ADD_MASTER)/sbin/ebtables 
     38ebtables: linux-source-configured $(ADD_MASTER)/sbin/ebtables 
    3739 
    3840ebtables-clean: 
  • /floppyfw/makefiles/pppoe.mk

    r19 r27  
    1515 
    1616$(PPPOE_DIR)/.unpacked: $(DL_DIR)/$(PPPOE_SOURCE) 
    17         zcat $(DL_DIR)/$(PPPOE_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     17        zcat $(DL_DIR)/$(PPPOE_SOURCE) | \ 
     18                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    1819        touch $(PPPOE_DIR)/.unpacked 
    1920 
  • /floppyfw/makefiles/libosip2.mk

    r19 r27  
    1717 
    1818$(LIBOSIP2_DIR)/.unpacked: $(DL_DIR)/$(LIBOSIP2_SOURCE) 
    19         zcat $(DL_DIR)/$(LIBOSIP2_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     19        zcat $(DL_DIR)/$(LIBOSIP2_SOURCE) | \ 
     20                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2021        touch $(LIBOSIP2_DIR)/.unpacked 
    2122 
     
    3940libosip2-clean: 
    4041        -$(MAKE) -C $(LIBOSIP2_DIR) clean 
    41         $(RM)$(LIBOSIP2_PKG_DIR) 
     42        $(RM) $(LIBOSIP2_PKG_DIR) 
    4243 
    4344libosip2-dirclean: 
    4445        $(RM) -r $(LIBOSIP2_DIR) 
    45         $(RM)$(LIBOSIP2_PKG_DIR) 
     46        $(RM) $(LIBOSIP2_PKG_DIR) 
  • /floppyfw/makefiles/openvpn.mk

    r19 r27  
    1717 
    1818$(OPENVPN_DIR)/.unpacked: $(DL_DIR)/$(OPENVPN_SOURCE) 
    19         zcat $(DL_DIR)/$(OPENVPN_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     19        zcat $(DL_DIR)/$(OPENVPN_SOURCE) | \ 
     20                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2021        touch $(OPENVPN_DIR)/.unpacked 
    2122 
  • /floppyfw/makefiles/patch-o-matic.mk

    r20 r23  
    55############################################################# 
    66 
    7 PATCH_O_MATIC_SOURCE_URL=ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/ 
    87# PATCH_O_MATIC_VERSION=20050421 
    98PATCH_O_MATIC_VERSION=20051203 
     9 
     10PATCH_O_MATIC_SOURCE_URL=ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/ 
     11PATCH_O_MATIC_NAME=patch-o-matic-ng 
    1012PATCH_O_MATIC_SOURCE_NAME=$(PATCH_O_MATIC_NAME)-$(PATCH_O_MATIC_VERSION) 
    1113PATCH_O_MATIC_SOURCE=$(PATCH_O_MATIC_SOURCE_NAME).tar.bz2 
     
    2224        # The string patch aren't in patch-o-matic any more, I'd like to  
    2325        # keep it. 
    24         cp -a $(PATCH_DIR)/kernel-pom/string $(PATCH_O_MATIC_DIR)/patchlets/. 
     26        # cp -a $(PATCH_DIR)/kernel-pom/string $(PATCH_O_MATIC_DIR)/patchlets/. 
    2527        touch $(PATCH_O_MATIC_DIR)/.unpacked 
    2628 
  • /floppyfw/makefiles/lineserv.mk

    r19 r27  
    1818 
    1919$(LINESERV_DIR)/.unpacked: $(DL_DIR)/$(LINESERV_SOURCE) 
    20         bzcat $(DL_DIR)/$(LINESERV_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     20        bzcat $(DL_DIR)/$(LINESERV_SOURCE) | \ 
     21                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2122        touch $(LINESERV_DIR)/.unpacked 
    2223 
     
    4445linesrv-clean: 
    4546        -$(MAKE) -C $(LINESERV_DIR) clean 
    46         $(RM)$(LINESERV_PKG_DIR) 
     47        $(RM) $(LINESERV_PKG_DIR) 
    4748 
    4849linesrv-dirclean: 
    4950        -$(RM) -r $(LINESERV_DIR) 
    50         $(RM)$(LINESERV_PKG_DIR) 
     51        $(RM) $(LINESERV_PKG_DIR) 
  • /floppyfw/makefiles/siproxd.mk

    r19 r27  
    1717 
    1818$(SIPROXD_DIR)/.unpacked: $(DL_DIR)/$(SIPROXD_SOURCE) 
    19         zcat $(DL_DIR)/$(SIPROXD_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     19        zcat $(DL_DIR)/$(SIPROXD_SOURCE) | \ 
     20                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2021        touch $(SIPROXD_DIR)/.unpacked 
    2122 
     
    3940        mkdir -p $(SIPROXD_PKG_DIR)/usr/lib 
    4041        -$(RM) -r $(SIPROXD_PKG_DIR)/man 
    41         $(RM)$(SIPROXD_PKG_DIR)/etc/siproxd.conf.example 
     42        $(RM) $(SIPROXD_PKG_DIR)/etc/siproxd.conf.example 
    4243        cp $(PACKAGES_INI_DIR)/post-siproxd.ini $(SIPROXD_PKG_DIR)/etc/. 
    4344        cp $(SCRIPTS_DIR)/siproxd.conf $(SIPROXD_PKG_DIR)/etc/. 
     
    5051siproxd-clean: 
    5152        -$(MAKE) -C $(SIPROXD_DIR) clean 
    52         $(RM)$(SIPROXD_PKG_DIR) 
     53        $(RM) $(SIPROXD_PKG_DIR) 
    5354 
    5455siproxd-dirclean: 
  • /floppyfw/makefiles/add.mk

    r19 r27  
    2323 
    2424        echo $(FLOPPYFW_VERSION) > $(ADD_MASTER)/etc/floppyfw_version 
    25         $(RM)$(ADD_MASTER)/etc/version 
     25        $(RM) $(ADD_MASTER)/etc/version 
    2626        ln -s $(ADD_MASTER)/etc/floppyfw_version $(ADD_MASTER)/etc/version 
    2727 
  • /floppyfw/makefiles/initrd.mk

    r19 r27  
    5858        cp -a $(SCRIPTS_DIR)/inittab.serial $(TMP_MNT)/etc/. 
    5959 
    60         $(LZMAD) $(MODULES_BASE_DIR)/idemods.ffw | tar -C $(TMP_MNT) -xvf - 
    61         $(LZMAD) $(MODULES_BASE_DIR)/usbmods.ffw | tar -C $(TMP_MNT) -xvf - 
     60        $(LZMAD) $(MODULES_BASE_DIR)/idemods.ffw | \ 
     61                tar -C $(TMP_MNT) $(TAR_VERBOSE) -xf - 
     62        $(LZMAD) $(MODULES_BASE_DIR)/usbmods.ffw | \ 
     63                tar -C $(TMP_MNT) $(TAR_VERBOSE) -xf - 
    6264 
    6365        (cd $(TMP_MNT)/dev ; \ 
  • /floppyfw/makefiles/wireless-tools.mk

    r19 r27  
    3434 
    3535$(WIRELESS_TOOLS_DIR)/.unpacked: $(DL_DIR)/$(WIRELESS_TOOLS_SOURCE) 
    36         $(WIRELESS_TOOLS_CAT) $(DL_DIR)/$(WIRELESS_TOOLS_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     36        $(WIRELESS_TOOLS_CAT) $(DL_DIR)/$(WIRELESS_TOOLS_SOURCE) | \ 
     37                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    3738        -[ ! -d $(WIRELESS_TOOLS_PKG_DIR) ] && mkdir $(WIRELESS_TOOLS_PKG_DIR) 
    3839        touch $(WIRELESS_TOOLS_DIR)/.unpacked 
  • /floppyfw/makefiles/pcmcia.mk

    r19 r27  
    3535 
    3636$(PCMCIA_DIR)/.unpacked: $(DL_DIR)/$(PCMCIA_SOURCE) 
    37         $(PCMCIA_CAT) $(DL_DIR)/$(PCMCIA_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     37        $(PCMCIA_CAT) $(DL_DIR)/$(PCMCIA_SOURCE) | \ 
     38                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    3839        -[ ! -d $(PCMCIA_PKG_DIR) ] && mkdir $(PCMCIA_PKG_DIR) 
    3940        touch $(PCMCIA_DIR)/.unpacked 
  • /floppyfw/makefiles/iptables.mk

    r19 r27  
    44# 
    55############################################################# 
     6 
     7IPTABLES_VERSION=1.3.4 
     8 
    69IPTABLES_SOURCE_URL=http://netfilter.org/projects/iptables/files/ 
    7 # IPTABLES_SOURCE=iptables-1.3.4.tar.bz2 
    8 # IPTABLES_BUILD_DIR=$(BUILD_DIR)/iptables-1.3.4 
    9  
    10 IPTABLES_SOURCE=iptables-1.3.3.tar.bz2 
    11 IPTABLES_BUILD_DIR=$(BUILD_DIR)/iptables-1.3.3 
     10IPTABLES_SOURCE=iptables-$(IPTABLES_VERSION).tar.bz2 
     11IPTABLES_BUILD_DIR=$(BUILD_DIR)/iptables-$(IPTABLES_VERSION) 
    1212 
    1313$(DL_DIR)/$(IPTABLES_SOURCE): 
     
    1515 
    1616$(IPTABLES_BUILD_DIR)/.unpacked: $(DL_DIR)/$(IPTABLES_SOURCE) 
    17         bzcat $(DL_DIR)/$(IPTABLES_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     17        bzcat $(DL_DIR)/$(IPTABLES_SOURCE) | \ 
     18                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    1819        touch $(IPTABLES_BUILD_DIR)/.unpacked 
    1920 
     
    3536 
    3637$(ADD_MASTER)/sbin/iptables: $(IPTABLES_BUILD_DIR)/iptables 
    37         $(RM)$(ADD_MASTER)/lib/iptables/* 
     38        $(RM) $(ADD_MASTER)/lib/iptables/* 
    3839        $(MAKE) -C $(IPTABLES_BUILD_DIR) \ 
    3940                KERNEL_DIR=$(BUILD_DIR)/linux \ 
     
    4849                COPT_FLAGS="$(TARGET_CFLAGS) -DNDEBUG" \ 
    4950                install 
    50         $(RM)$(ADD_MASTER)/sbin/iptables-restore 
    51         $(RM)$(ADD_MASTER)/sbin/iptables-save 
     51        $(RM) $(ADD_MASTER)/sbin/iptables-restore 
     52        $(RM) $(ADD_MASTER)/sbin/iptables-save 
    5253        # I hate doing this: (and I really want gcc 3.4) 
    53         $(RM)$(ADD_MASTER)/lib/iptables/libipt_sctp.so 
    54         $(RM)$(ADD_MASTER)/lib/iptables/libipt_dscp.so 
    55         $(RM)$(ADD_MASTER)/lib/iptables/libipt_DSCP.so 
    56         $(RM)$(ADD_MASTER)/lib/iptables/libipt_TARPIT.so 
    57         $(RM)$(ADD_MASTER)/lib/iptables/libipt_MIRROR.so 
     54        $(RM) $(ADD_MASTER)/lib/iptables/libipt_sctp.so 
     55        $(RM) $(ADD_MASTER)/lib/iptables/libipt_dscp.so 
     56        $(RM) $(ADD_MASTER)/lib/iptables/libipt_DSCP.so 
     57        $(RM) $(ADD_MASTER)/lib/iptables/libipt_TARPIT.so 
     58        $(RM) $(ADD_MASTER)/lib/iptables/libipt_MIRROR.so 
    5859        $(RM) -r $(ADD_MASTER)$(TMP_DIR)/* 
    5960        $(RM) -r $(ADD_MASTER)/usr$(TMP_DIR)/* 
  • /floppyfw/makefiles/dnsmasq.mk

    r19 r25  
    55############################################################# 
    66 
    7 DNSMASQ_SOURCE_URL=http://www.thekelleys.org.uk/dnsmasq/ 
     7DNSMASQ_SOURCE_URL=http://www.thekelleys.org.uk/dnsmasq/archive 
    88DNSMASQ_SOURCE=dnsmasq-1.18.tar.gz 
    99DNSMASQ_DIR=$(BUILD_DIR)/dnsmasq-1.18 
     
    1212 
    1313$(DL_DIR)/$(DNSMASQ_SOURCE): 
    14          $(WGET) -P $(DL_DIR) $(DNSMASQ_SOURCE_URL)$(DNSMASQ_SOURCE) 
     14         $(WGET) -P $(DL_DIR) $(DNSMASQ_SOURCE_URL)/$(DNSMASQ_SOURCE) 
    1515 
    1616dnsmasq-source: $(DL_DIR)/$(DNSMASQ_SOURCE) 
    1717 
    1818$(DNSMASQ_DIR)/.unpacked: $(DL_DIR)/$(DNSMASQ_SOURCE) 
    19         zcat $(DL_DIR)/$(DNSMASQ_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     19        zcat $(DL_DIR)/$(DNSMASQ_SOURCE) | \ 
     20                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2021        cat $(DNSMASQ_PATCH) | patch -p1 -d $(DNSMASQ_DIR) 
    2122        touch $(DNSMASQ_DIR)/.unpacked 
     
    2930$(DNSMASQ_DIR)/dnsmasq: $(DNSMASQ_DIR)/.configured 
    3031        $(MAKE) -C $(DNSMASQ_DIR) \ 
     32                CC="$(TARGET_CC)" \ 
    3133                CFLAGS="$(TARGET_CFLAGS)" \ 
    3234                BINDIR=/usr/sbin 
     
    4042dnsmasq-clean: 
    4143        -$(MAKE) -C $(DNSMASQ_DIR) clean 
    42         $(RM) $(ADD_MASTER)/sbin/dnsmasq 
    4344 
    4445dnsmasq-dirclean: 
  • /floppyfw/makefiles/iproute2.mk

    r19 r28  
    2121$(IPROUTE2_DIR)/.unpacked: $(DL_DIR)/$(IPROUTE2_SOURCE) 
    2222        -$(RM) -r $(IPROUTE2_DIR).orig $(IPROUTE2_DIR) 
    23         zcat $(DL_DIR)/$(IPROUTE2_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     23        zcat $(DL_DIR)/$(IPROUTE2_SOURCE) | \ 
     24                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2425        # cat $(IPROUTE2_PATCH_DIR)/$(IPROUTE2_PATCH) | patch -p1 -d $(IPROUTE2_DIR) 
    2526        mkdir -p $(IPROUTE2_PKG_DIR) 
     
    5253        -$(SSTRIP) $(IPROUTE2_PKG_DIR)/sbin/* 
    5354        -$(RM) -r $(IPROUTE2_PKG_DIR)$(TMP_DIR) 
    54         $(RM)$(IPROUTE2_PKG_DIR)/sbin/ip 
    55         $(RM)$(IPROUTE2_PKG_DIR)/sbin/tc 
    56         $(RM)$(IPROUTE2_PKG_DIR)/etc/iproute2/* 
     55        $(RM) $(IPROUTE2_PKG_DIR)/sbin/ip 
     56        $(RM) $(IPROUTE2_PKG_DIR)/sbin/tc 
     57        $(RM) $(IPROUTE2_PKG_DIR)/etc/iproute2/* 
    5758 
    5859$(ADD_MASTER)/sbin/ip: $(IPROUTE2_DIR)/ip/ip 
     
    6162        $(SSTRIP) $(ADD_MASTER)/sbin/ip 
    6263        $(SSTRIP) $(ADD_MASTER)/sbin/tc 
    63         $(RM)$(ADD_MASTER)/etc/iproute2/* 
     64        $(RM) $(ADD_MASTER)/etc/iproute2/* 
    6465        mkdir -p $(ADD_MASTER)/etc/iproute2 
    6566        cp -a $(IPROUTE2_DIR)/etc/iproute2 $(ADD_MASTER)/etc/. 
    6667 
    67 iproute2: $(IPROUTE2_PKG_DIR)/sbin/ss $(ADD_MASTER)/sbin/ip 
     68iproute2: linux-source-configured $(IPROUTE2_PKG_DIR)/sbin/ss \ 
     69                $(ADD_MASTER)/sbin/ip 
    6870 
    6971iproute2-clean: 
  • /floppyfw/makefiles/openssl.mk

    r19 r27  
    1717        cp -a /usr/lib/libssl* $(OPENSSL_PKG_DIR)/usr/lib/. 
    1818 
    19         $(RM)$(OPENSSL_PKG_DIR)/usr/lib/*pic* 
    20         $(RM)$(OPENSSL_PKG_DIR)/usr/lib/*.a 
     19        $(RM) $(OPENSSL_PKG_DIR)/usr/lib/*pic* 
     20        $(RM) $(OPENSSL_PKG_DIR)/usr/lib/*.a 
    2121 
    2222        -$(SSTRIP) $(OPENSSL_PKG_DIR)/usr/lib/* 
  • /floppyfw/makefiles/hostap-driver.mk

    r19 r28  
    3535 
    3636$(HOSTAP_DRIVER_DIR)/.unpacked: $(DL_DIR)/$(HOSTAP_DRIVER_SOURCE) 
    37         $(HOSTAP_DRIVER_CAT) $(DL_DIR)/$(HOSTAP_DRIVER_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     37        $(HOSTAP_DRIVER_CAT) $(DL_DIR)/$(HOSTAP_DRIVER_SOURCE) | \ 
     38                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    3839        touch $(HOSTAP_DRIVER_DIR)/.unpacked 
    3940 
     
    6263        ); 
    6364 
    64 hostap-driver: $(HOSTAP_PKG_DIR)/lib/modules 
     65hostap-driver: linux-source-configured $(HOSTAP_PKG_DIR)/lib/modules 
    6566 
    6667hostap-driver-clean: 
  • /floppyfw/makefiles/wpa_supplicant.mk

    r19 r27  
    3838 
    3939$(WPA_SUPPLICANT_DIR)/.unpacked: $(DL_DIR)/$(WPA_SUPPLICANT_SOURCE) 
    40         $(WPA_SUPPLICANT_CAT) $(DL_DIR)/$(WPA_SUPPLICANT_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     40        $(WPA_SUPPLICANT_CAT) $(DL_DIR)/$(WPA_SUPPLICANT_SOURCE) | \ 
     41                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    4142        touch $(WPA_SUPPLICANT_DIR)/.unpacked 
    4243 
  • /floppyfw/makefiles/busybox.mk

    r19 r29  
    1111BUSYBOX_SITE:=http://www.busybox.net/downloads/snapshots 
    1212else 
    13 BUSYBOX_DIR:=$(BUILD_DIR)/busybox-1.00 
    14 BUSYBOX_SOURCE:=busybox-1.00.tar.bz2 
     13BUSYBOX_DIR:=$(BUILD_DIR)/busybox-1.1.0 
     14BUSYBOX_SOURCE:=busybox-1.1.0.tar.bz2 
    1515BUSYBOX_SITE:=http://www.busybox.net/downloads 
    1616endif 
     
    2424$(BUSYBOX_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE) 
    2525        $(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | \ 
    26                 tar -C $(BUILD_DIR) -xvf - 
     26                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2727        touch $(BUSYBOX_DIR)/.unpacked 
    2828 
     
    4343        $(MAKE) CC="$(TARGET_CC)" PREFIX="$(INITRD_MASTER)" -C $(BUSYBOX_DIR) 
    4444 
    45 $(INITRD_MASTER)/bin/busybox: $(BUSYBOX_DIR)/busybox 
    46         cp $(BUSYBOX_DIR)/busybox $(INITRD_MASTER)/bin/busybox 
     45$(INITRD_MASTER)/bin/busybox: $(BUSYBOX_DIR)/busybox $(INITRD_MASTER) 
     46        @mkdir -p $(INITRD_MASTER)/bin $(INITRD_MASTER)/sbin 
     47        cp $(BUSYBOX_DIR)/busybox $(INITRD_MASTER)/bin/ 
    4748        -$(SSTRIP) $(INITRD_MASTER)/bin/busybox 
    48         -(cd $(INITRD_MASTER)/bin ; [ ! -f sh ] && ln -s busybox sh); 
    49         -(cd $(INITRD_MASTER)/sbin; [ ! -f init ] && ln -s ../bin/busybox init); 
     49        -(cd $(INITRD_MASTER)/bin && ln -s busybox sh) 
     50        -(cd $(INITRD_MASTER)/sbin && ln -sf ../bin/busybox init) 
     51 
    5052 
    5153busybox: $(INITRD_MASTER)/bin/busybox 
     
    5759 
    5860busybox-dirclean: 
    59         $(RM) $(INITRD_MASTER)/bin/busybox 
     61        $(RM) $(INITRD_MASTER)/bin/busybox $(INITRD_MASTER)/bin/sh \ 
     62                $(INITRD_MASTER)/sbin/init 
    6063        $(RM) -r $(BUSYBOX_DIR) 
  • /floppyfw/makefiles/hostap-utils.mk

    r19 r27  
    3232 
    3333$(HOSTAP_UTILS_DIR)/.unpacked: $(DL_DIR)/$(HOSTAP_UTILS_SOURCE) 
    34         $(HOSTAP_UTILS_CAT) $(DL_DIR)/$(HOSTAP_UTILS_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     34        $(HOSTAP_UTILS_CAT) $(DL_DIR)/$(HOSTAP_UTILS_SOURCE) | \ 
     35                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    3536        touch $(HOSTAP_UTILS_DIR)/.unpacked 
    3637 
  • /floppyfw/makefiles/dropbear.mk

    r19 r27  
    1919 
    2020$(DROPBEAR_DIR)/.unpacked: $(DL_DIR)/$(DROPBEAR_SOURCE) 
    21         bzcat $(DL_DIR)/$(DROPBEAR_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
     21        bzcat $(DL_DIR)/$(DROPBEAR_SOURCE) | \ 
     22                tar $(TAR_VERBOSE) -C $(BUILD_DIR) -xf - 
    2223        touch $(DROPBEAR_DIR)/.unpacked 
    2324                 
  • /floppyfw/patches/busybox/cryptpw.diff

    r1 r30  
    1 diff -urN busybox/include/applets.h busybox.cryptpw/include/applets.h 
    2 --- busybox/include/applets.h   2005-10-15 01:20:27.000000000 -0600 
    3 +++ busybox.cryptpw/include/applets.h   2005-10-16 04:55:32.000000000 -0600 
     1diff -urN busybox-1.1.0/include/applets.h busybox-1.1.0-cryptpw/include/applets.h 
     2--- busybox-1.1.0/include/applets.h     2006-01-10 22:44:14.000000000 -0700 
     3+++ busybox-1.1.0-cryptpw/include/applets.h     2006-01-18 14:30:51.000000000 -0700 
    44@@ -131,6 +131,9 @@ 
    55 #ifdef CONFIG_CRONTAB 
     
    1212        APPLET(cut, cut_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) 
    1313 #endif 
    14 diff -urN busybox/include/usage.h busybox.cryptpw/include/usage.h 
    15 --- busybox/include/usage.h     2005-10-15 01:20:27.000000000 -0600 
    16 +++ busybox.cryptpw/include/usage.h     2005-10-16 04:55:15.000000000 -0600 
     14diff -urN busybox-1.1.0/include/config.h busybox-1.1.0-cryptpw/include/config.h 
     15--- busybox-1.1.0/include/config.h      1969-12-31 17:00:00.000000000 -0700 
     16+++ busybox-1.1.0-cryptpw/include/config.h      2006-01-18 14:40:38.000000000 -0700 
     17@@ -0,0 +1,555 @@ 
     18+/* 
     19+ * Automatically generated header file: don't edit 
     20+ */ 
     21+ 
     22+/* Version Number */ 
     23+#define BB_VER "1.1.0" 
     24+#define BB_BT "2006.01.18-21:40+0000" 
     25+ 
     26+#define HAVE_DOT_CONFIG 1 
     27+ 
     28+/* 
     29+ * General Configuration 
     30+ */ 
     31+#define CONFIG_FEATURE_BUFFERS_USE_MALLOC 1 
     32+#undef CONFIG_FEATURE_BUFFERS_GO_ON_STACK 
     33+#undef CONFIG_FEATURE_BUFFERS_GO_IN_BSS 
     34+#undef CONFIG_FEATURE_VERBOSE_USAGE 
     35+#undef CONFIG_FEATURE_INSTALLER 
     36+#undef CONFIG_LOCALE_SUPPORT 
     37+#undef CONFIG_FEATURE_DEVFS 
     38+#undef CONFIG_FEATURE_DEVPTS 
     39+#undef CONFIG_FEATURE_CLEAN_UP 
     40+#undef CONFIG_FEATURE_SUID 
     41+#undef CONFIG_FEATURE_SUID_CONFIG 
     42+#undef CONFIG_FEATURE_SUID_CONFIG_QUIET 
     43+#undef CONFIG_SELINUX 
     44+ 
     45+/* 
     46+ * Build Options 
     47+ */ 
     48+#undef CONFIG_STATIC 
     49+#undef CONFIG_LFS 
     50+#undef USING_CROSS_COMPILER 
     51+#define CROSS_COMPILER_PREFIX "" 
     52+#define EXTRA_CFLAGS_OPTIONS "" 
     53+#undef CONFIG_FEATURE_SUSv2 
     54+#undef CONFIG_FEATURE_SUSv2_OBSOLETE 
     55+ 
     56+/* 
     57+ * Installation Options 
     58+ */ 
     59+#undef CONFIG_INSTALL_NO_USR 
     60+#define CONFIG_INSTALL_APPLET_SYMLINKS 1 
     61+#undef CONFIG_INSTALL_APPLET_HARDLINKS 
     62+#undef CONFIG_INSTALL_APPLET_DONT 
     63+#define PREFIX "./_install" 
     64+ 
     65+/* 
     66+ * Archival Utilities 
     67+ */ 
     68+#undef CONFIG_AR 
     69+#undef CONFIG_FEATURE_AR_LONG_FILENAMES 
     70+#undef CONFIG_BUNZIP2 
     71+#undef CONFIG_CPIO 
     72+#undef CONFIG_DPKG 
     73+#undef CONFIG_DPKG_DEB 
     74+#undef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY 
     75+#undef CONFIG_GUNZIP 
     76+#undef CONFIG_FEATURE_GUNZIP_UNCOMPRESS 
     77+#undef CONFIG_GZIP 
     78+#undef CONFIG_RPM2CPIO 
     79+#undef CONFIG_RPM 
     80+#undef CONFIG_TAR 
     81+#undef CONFIG_FEATURE_TAR_CREATE 
     82+#undef CONFIG_FEATURE_TAR_BZIP2 
     83+#undef CONFIG_FEATURE_TAR_FROM 
     84+#undef CONFIG_FEATURE_TAR_GZIP 
     85+#undef CONFIG_FEATURE_TAR_COMPRESS 
     86+#undef CONFIG_FEATURE_TAR_OLDGNU_COMPATABILITY 
     87+#undef CONFIG_FEATURE_TAR_GNU_EXTENSIONS 
     88+#undef CONFIG_FEATURE_TAR_LONG_OPTIONS 
     89+#undef CONFIG_UNCOMPRESS 
     90+#undef CONFIG_UNZIP 
     91+#undef CONFIG_FEATURE_UNARCHIVE_TAPE 
     92+#undef CONFIG_FEATURE_DEB_TAR_GZ 
     93+#undef CONFIG_FEATURE_DEB_TAR_BZ2 
     94+ 
     95+/* 
     96+ * Coreutils 
     97+ */ 
     98+#undef CONFIG_BASENAME 
     99+#undef CONFIG_CAL 
     100+#undef CONFIG_CAT 
     101+#undef CONFIG_CHGRP 
     102+#undef CONFIG_CHMOD 
     103+#undef CONFIG_CHOWN 
     104+#undef CONFIG_CHROOT 
     105+#undef CONFIG_CMP 
     106+#undef CONFIG_COMM 
     107+#undef CONFIG_CP 
     108+#undef CONFIG_CUT 
     109+#undef CONFIG_DATE 
     110+#undef CONFIG_FEATURE_DATE_ISOFMT 
     111+#undef CONFIG_DD 
     112+#undef CONFIG_DF 
     113+#undef CONFIG_DIRNAME 
     114+#undef CONFIG_DOS2UNIX 
     115+#undef CONFIG_UNIX2DOS 
     116+#undef CONFIG_DU 
     117+#undef CONFIG_FEATURE_DU_DEFALT_BLOCKSIZE_1K 
     118+#undef CONFIG_ECHO 
     119+#undef CONFIG_FEATURE_FANCY_ECHO 
     120+#undef CONFIG_ENV 
     121+#undef CONFIG_EXPR 
     122+#undef CONFIG_FALSE 
     123+#undef CONFIG_FOLD 
     124+#undef CONFIG_HEAD 
     125+#undef CONFIG_FEATURE_FANCY_HEAD 
     126+#undef CONFIG_HOSTID 
     127+#undef CONFIG_ID 
     128+#undef CONFIG_INSTALL 
     129+#undef CONFIG_LENGTH 
     130+#undef CONFIG_LN 
     131+#undef CONFIG_LOGNAME 
     132+#undef CONFIG_LS 
     133+#undef CONFIG_FEATURE_LS_FILETYPES 
     134+#undef CONFIG_FEATURE_LS_FOLLOWLINKS 
     135+#undef CONFIG_FEATURE_LS_RECURSIVE 
     136+#undef CONFIG_FEATURE_LS_SORTFILES 
     137+#undef CONFIG_FEATURE_LS_TIMESTAMPS 
     138+#undef CONFIG_FEATURE_LS_USERNAME 
     139+#undef CONFIG_FEATURE_LS_COLOR 
     140+#undef CONFIG_FEATURE_LS_COLOR_IS_DEFAULT 
     141+#undef CONFIG_MD5SUM 
     142+#undef CONFIG_MKDIR 
     143+#undef CONFIG_MKFIFO 
     144+#undef CONFIG_MKNOD 
     145+#undef CONFIG_MV 
     146+#undef CONFIG_NICE 
     147+#undef CONFIG_NOHUP 
     148+#undef CONFIG_OD 
     149+#undef CONFIG_PRINTENV 
     150+#undef CONFIG_PRINTF 
     151+#undef CONFIG_PWD 
     152+#undef CONFIG_REALPATH 
     153+#undef CONFIG_RM 
     154+#undef CONFIG_RMDIR 
     155+#undef CONFIG_SEQ 
     156+#undef CONFIG_SHA1SUM 
     157+#undef CONFIG_SLEEP 
     158+#undef CONFIG_FEATURE_FANCY_SLEEP 
     159+#undef CONFIG_SORT 
     160+#undef CONFIG_FEATURE_SORT_BIG 
     161+#undef CONFIG_STAT 
     162+#undef CONFIG_FEATURE_STAT_FORMAT 
     163+#undef CONFIG_STTY 
     164+#undef CONFIG_SUM 
     165+#undef CONFIG_SYNC 
     166+#undef CONFIG_TAIL 
     167+#undef CONFIG_FEATURE_FANCY_TAIL 
     168+#undef CONFIG_TEE 
     169+#undef CONFIG_FEATURE_TEE_USE_BLOCK_IO 
     170+#undef CONFIG_TEST 
     171+#undef CONFIG_FEATURE_TEST_64 
     172+#undef CONFIG_TOUCH 
     173+#undef CONFIG_TR 
     174+#undef CONFIG_FEATURE_TR_CLASSES 
     175+#undef CONFIG_FEATURE_TR_EQUIV 
     176+#undef CONFIG_TRUE 
     177+#undef CONFIG_TTY 
     178+#undef CONFIG_UNAME 
     179+#undef CONFIG_UNIQ 
     180+#undef CONFIG_USLEEP 
     181+#undef CONFIG_UUDECODE 
     182+#undef CONFIG_UUENCODE 
     183+#undef CONFIG_WATCH 
     184+#undef CONFIG_WC 
     185+#undef CONFIG_WHO 
     186+#undef CONFIG_WHOAMI 
     187+#undef CONFIG_YES 
     188+#undef CONFIG_FEATURE_PRESERVE_HARDLINKS 
     189+#undef CONFIG_FEATURE_AUTOWIDTH 
     190+#undef CONFIG_FEATURE_HUMAN_READABLE 
     191+#undef CONFIG_FEATURE_MD5_SHA1_SUM_CHECK 
     192+ 
     193+/* 
     194+ * Console Utilities 
     195+ */ 
     196+#undef CONFIG_CHVT 
     197+#undef CONFIG_CLEAR 
     198+#undef CONFIG_DEALLOCVT 
     199+#undef CONFIG_DUMPKMAP 
     200+#undef CONFIG_LOADFONT 
     201+#undef CONFIG_LOADKMAP 
     202+#undef CONFIG_OPENVT 
     203+#undef CONFIG_RESET 
     204+#undef CONFIG_SETCONSOLE 
     205+#undef CONFIG_SETKEYCODES 
     206+ 
     207+/* 
     208+ * Debian Utilities 
     209+ */ 
     210+#undef CONFIG_MKTEMP 
     211+#undef CONFIG_PIPE_PROGRESS 
     212+#undef CONFIG_READLINK 
     213+#undef CONFIG_FEATURE_READLINK_FOLLOW 
     214+#undef CONFIG_RUN_PARTS 
     215+#undef CONFIG_START_STOP_DAEMON 
     216+#undef CONFIG_WHICH 
     217+ 
     218+/* 
     219+ * Linux Ext2 FS Progs 
     220+ */ 
     221+#undef CONFIG_CHATTR 
     222+#undef CONFIG_E2FSCK 
     223+#undef CONFIG_FSCK 
     224+#undef CONFIG_LSATTR 
     225+#undef CONFIG_MKE2FS 
     226+#undef CONFIG_TUNE2FS 
     227+#undef CONFIG_E2LABEL 
     228+#undef CONFIG_FINDFS 
     229+ 
     230+/* 
     231+ * Editors 
     232+ */ 
     233+#undef CONFIG_AWK 
     234+#undef CONFIG_FEATURE_AWK_MATH 
     235+#undef CONFIG_PATCH 
     236+#undef CONFIG_SED 
     237+#undef CONFIG_VI 
     238+#undef CONFIG_FEATURE_VI_COLON 
     239+#undef CONFIG_FEATURE_VI_YANKMARK 
     240+#undef CONFIG_FEATURE_VI_SEARCH 
     241+#undef CONFIG_FEATURE_VI_USE_SIGNALS 
     242+#undef CONFIG_FEATURE_VI_DOT_CMD 
     243+#undef CONFIG_FEATURE_VI_READONLY 
     244+#undef CONFIG_FEATURE_VI_SETOPTS 
     245+#undef CONFIG_FEATURE_VI_SET 
     246+#undef CONFIG_FEATURE_VI_WIN_RESIZE 
     247+#undef CONFIG_FEATURE_VI_OPTIMIZE_CURSOR 
     248+ 
     249+/* 
     250+ * Finding Utilities 
     251+ */ 
     252+#undef CONFIG_FIND 
     253+#undef CONFIG_FEATURE_FIND_MTIME 
     254+#undef CONFIG_FEATURE_FIND_PERM 
     255+#undef CONFIG_FEATURE_FIND_TYPE 
     256+#undef CONFIG_FEATURE_FIND_XDEV 
     257+#undef CONFIG_FEATURE_FIND_NEWER 
     258+#undef CONFIG_FEATURE_FIND_INUM 
     259+#undef CONFIG_FEATURE_FIND_EXEC 
     260+#undef CONFIG_GREP 
     261+#undef CONFIG_FEATURE_GREP_EGREP_ALIAS 
     262+#undef CONFIG_FEATURE_GREP_FGREP_ALIAS 
     263+#undef CONFIG_FEATURE_GREP_CONTEXT 
     264+#undef CONFIG_XARGS 
     265+#undef CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION 
     266+#undef CONFIG_FEATURE_XARGS_SUPPORT_QUOTES 
     267+#undef CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT 
     268+#undef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM 
     269+ 
     270+/* 
     271+ * Init Utilities 
     272+ */ 
     273+#undef CONFIG_INIT 
     274+#undef CONFIG_FEATURE_USE_INITTAB 
     275+#undef CONFIG_FEATURE_INITRD 
     276+#undef CONFIG_FEATURE_INIT_COREDUMPS 
     277+#undef CONFIG_FEATURE_INIT_SCTTY 
     278+#undef CONFIG_FEATURE_EXTRA_QUIET 
     279+#undef CONFIG_HALT 
     280+#undef CONFIG_MESG 
     281+#undef CONFIG_POWEROFF 
     282+#undef CONFIG_REBOOT 
     283+ 
     284+/* 
     285+ * Login/Password Management Utilities 
     286+ */ 
     287+#undef CONFIG_FEATURE_SHADOWPASSWDS 
     288+#undef CONFIG_USE_BB_SHADOW 
     289+#undef CONFIG_USE_BB_PWD_GRP 
     290+#undef CONFIG_ADDGROUP 
     291+#undef CONFIG_DELGROUP 
     292+#undef CONFIG_ADDUSER 
     293+#undef CONFIG_DELUSER 
     294+#undef CONFIG_GETTY 
     295+#undef CONFIG_FEATURE_UTMP 
     296+#undef CONFIG_FEATURE_WTMP 
     297+#undef CONFIG_LOGIN 
     298+#undef CONFIG_FEATURE_SECURETTY 
     299+#undef CONFIG_PASSWD 
     300+#undef CONFIG_CRYPTPW 
     301+#undef CONFIG_SU 
     302+#undef CONFIG_SULOGIN 
     303+#undef CONFIG_VLOCK 
     304+ 
     305+/* 
     306+ * Miscellaneous Utilities 
     307+ */ 
     308+#undef CONFIG_ADJTIMEX 
     309+#undef CONFIG_BBCONFIG 
     310+#undef CONFIG_CROND 
     311+#undef CONFIG_FEATURE_CROND_CALL_SENDMAIL 
     312+#undef CONFIG_CRONTAB 
     313+#undef CONFIG_DC 
     314+#undef CONFIG_DEVFSD 
     315+#undef CONFIG_DEVFSD_MODLOAD 
     316+#undef CONFIG_DEVFSD_FG_NP 
     317+#undef CONFIG_DEVFSD_VERBOSE 
     318+#undef CONFIG_EJECT 
     319+#undef CONFIG_LAST 
     320+#undef CONFIG_LESS 
     321+#undef CONFIG_FEATURE_LESS_BRACKETS 
     322+#undef CONFIG_FEATURE_LESS_FLAGS 
     323+#undef CONFIG_FEATURE_LESS_FLAGCS 
     324+#undef CONFIG_FEATURE_LESS_MARKS 
     325+#undef CONFIG_FEATURE_LESS_REGEXP 
     326+#undef CONFIG_HDPARM 
     327+#undef CONFIG_FEATURE_HDPARM_GET_IDENTITY 
     328+#undef CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF 
     329+#undef CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF 
     330+#undef CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET 
     331+#undef CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF 
     332+#undef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA 
     333+#undef CONFIG_MAKEDEVS 
     334+#undef CONFIG_FEATURE_MAKEDEVS_LEAF 
     335+#undef CONFIG_FEATURE_MAKEDEVS_TABLE 
     336+#undef CONFIG_MOUNTPOINT 
     337+#undef CONFIG_MT 
     338+#undef BB_APPLET_RUNLEVEL 
     339+#undef CONFIG_RX 
     340+#undef CONFIG_STRINGS 
     341+#undef CONFIG_SETSID 
     342+#undef CONFIG_TIME 
     343+#undef CONFIG_WATCHDOG 
     344+ 
     345+/* 
     346+ * Linux Module Utilities 
     347+ */ 
     348+#undef CONFIG_INSMOD 
     349+#undef CONFIG_FEATURE_INSMOD_VERSION_CHECKING 
     350+#undef CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS 
     351+#undef CONFIG_FEATURE_INSMOD_LOADINKMEM 
     352+#undef CONFIG_FEATURE_INSMOD_LOAD_MAP 
     353+#undef CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL 
     354+#undef CONFIG_RMMOD 
     355+#undef CONFIG_LSMOD 
     356+#undef CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT 
     357+#undef CONFIG_MODPROBE 
     358+#undef CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS 
     359+#undef CONFIG_FEATURE_CHECK_TAINTED_MODULE 
     360+#undef CONFIG_FEATURE_2_4_MODULES 
     361+#undef CONFIG_FEATURE_2_6_MODULES 
     362+#undef CONFIG_FEATURE_QUERY_MODULE_INTERFACE 
     363+ 
     364+/* 
     365+ * Networking Utilities 
     366+ */ 
     367+#undef CONFIG_FEATURE_IPV6 
     368+#undef CONFIG_ARPING 
     369+#undef CONFIG_ETHER_WAKE 
     370+#undef CONFIG_FAKEIDENTD 
     371+#undef CONFIG_FTPGET 
     372+#undef CONFIG_FTPPUT 
     373+#undef CONFIG_HOSTNAME 
     374+#undef CONFIG_HTTPD 
     375+#undef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY 
     376+#undef CONFIG_FEATURE_HTTPD_BASIC_AUTH 
     377+#undef CONFIG_FEATURE_HTTPD_AUTH_MD5 
     378+#undef CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP 
     379+#undef CONFIG_FEATURE_HTTPD_SETUID 
     380+#undef CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES 
     381+#undef CONFIG_FEATURE_HTTPD_CGI 
     382+#undef CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV 
     383+#undef CONFIG_FEATURE_HTTPD_ENCODE_URL_STR 
     384+#undef CONFIG_IFCONFIG 
     385+#undef CONFIG_FEATURE_IFCONFIG_STATUS 
     386+#undef CONFIG_FEATURE_IFCONFIG_SLIP 
     387+#undef CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ 
     388+#undef CONFIG_FEATURE_IFCONFIG_HW 
     389+#undef CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS 
     390+#undef CONFIG_IFUPDOWN 
     391+#undef CONFIG_FEATURE_IFUPDOWN_IP 
     392+#undef CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN 
     393+#undef CONFIG_FEATURE_IFUPDOWN_IPV4 
     394+#undef CONFIG_FEATURE_IFUPDOWN_IPV6 
     395+#undef CONFIG_FEATURE_IFUPDOWN_IPX 
     396+#undef CONFIG_FEATURE_IFUPDOWN_MAPPING 
     397+#undef CONFIG_INETD 
     398+#undef CONFIG_FEATURE_INETD_SUPPORT_BILTIN_ECHO 
     399+#undef CONFIG_FEATURE_INETD_SUPPORT_BILTIN_DISCARD 
     400+#undef CONFIG_FEATURE_INETD_SUPPORT_BILTIN_TIME 
     401+#undef CONFIG_FEATURE_INETD_SUPPORT_BILTIN_DAYTIME 
     402+#undef CONFIG_FEATURE_INETD_SUPPORT_BILTIN_CHARGEN 
     403+#undef CONFIG_FEATURE_INETD_RPC 
     404+#undef CONFIG_IP 
     405+#undef CONFIG_FEATURE_IP_ADDRESS 
     406+#undef CONFIG_FEATURE_IP_LINK 
     407+#undef CONFIG_FEATURE_IP_ROUTE 
     408+#undef CONFIG_FEATURE_IP_TUNNEL 
     409+#undef CONFIG_IPCALC 
     410+#undef CONFIG_FEATURE_IPCALC_FANCY 
     411+#undef CONFIG_IPADDR 
     412+#undef CONFIG_IPLINK 
     413+#undef CONFIG_IPROUTE 
     414+#undef CONFIG_IPTUNNEL 
     415+#undef CONFIG_NAMEIF 
     416+#undef CONFIG_NC 
     417+#undef CONFIG_NC_GAPING_SECURITY_HOLE 
     418+#undef CONFIG_NETSTAT 
     419+#undef CONFIG_NSLOOKUP 
     420+#undef CONFIG_PING 
     421+#undef CONFIG_FEATURE_FANCY_PING 
     422+#undef CONFIG_PING6 
     423+#undef CONFIG_FEATURE_FANCY_PING6 
     424+#undef CONFIG_ROUTE 
     425+#undef CONFIG_TELNET 
     426+#undef CONFIG_FEATURE_TELNET_TTYPE 
     427+#undef CONFIG_FEATURE_TELNET_AUTOLOGIN 
     428+#undef CONFIG_TELNETD 
     429+#undef CONFIG_FEATURE_TELNETD_INETD 
     430+#undef CONFIG_TFTP 
     431+#undef CONFIG_FEATURE_TFTP_GET 
     432+#undef CONFIG_FEATURE_TFTP_PUT 
     433+#undef CONFIG_FEATURE_TFTP_BLOCKSIZE 
     434+#undef CONFIG_FEATURE_TFTP_DEBUG 
     435+#undef CONFIG_TRACEROUTE 
     436+#undef CONFIG_FEATURE_TRACEROUTE_VERBOSE 
     437+#undef CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE 
     438+#undef CONFIG_FEATURE_TRACEROUTE_USE_ICMP 
     439+#undef CONFIG_VCONFIG 
     440+#undef CONFIG_WGET 
     441+#undef CONFIG_FEATURE_WGET_STATUSBAR 
     442+#undef CONFIG_FEATURE_WGET_AUTHENTICATION 
     443+#undef CONFIG_FEATURE_WGET_IP6_LITERAL 
     444+ 
     445+/* 
     446+ * udhcp Server/Client 
     447+ */ 
     448+#undef CONFIG_UDHCPD 
     449+#undef CONFIG_UDHCPC 
     450+#undef CONFIG_DUMPLEASES 
     451+#undef CONFIG_FEATURE_UDHCP_SYSLOG 
     452+#undef CONFIG_FEATURE_UDHCP_DEBUG 
     453+#undef CONFIG_ZCIP 
     454+ 
     455+/* 
     456+ * Process Utilities 
     457+ */ 
     458+#undef CONFIG_FREE 
     459+#undef CONFIG_FUSER 
     460+#undef CONFIG_KILL 
     461+#undef CONFIG_KILLALL 
     462+#undef CONFIG_PIDOF 
     463+#undef CONFIG_FEATURE_PIDOF_SINGLE 
     464+#undef CONFIG_FEATURE_PIDOF_OMIT 
     465+#undef CONFIG_PS 
     466+#undef CONFIG_FEATURE_PS_WIDE 
     467+#undef CONFIG_RENICE 
     468+#undef CONFIG_BB_SYSCTL 
     469+#undef CONFIG_TOP 
     470+#undef CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE 
     471+#undef CONFIG_UPTIME 
     472+ 
     473+/* 
     474+ * Shells 
     475+ */ 
     476+#undef CONFIG_FEATURE_SH_IS_ASH 
     477+#undef CONFIG_FEATURE_SH_IS_HUSH 
     478+#undef CONFIG_FEATURE_SH_IS_LASH 
     479+#undef CONFIG_FEATURE_SH_IS_MSH 
     480+#define CONFIG_FEATURE_SH_IS_NONE 1 
     481+#undef CONFIG_ASH 
     482+#undef CONFIG_ASH_JOB_CONTROL 
     483+#undef CONFIG_ASH_READ_NCHARS 
     484+#undef CONFIG_ASH_READ_TIMEOUT 
     485+#undef CONFIG_ASH_ALIAS 
     486+#undef CONFIG_ASH_MATH_SUPPORT 
     487+#undef CONFIG_ASH_MATH_SUPPORT_64 
     488+#undef CONFIG_ASH_GETOPTS 
     489+#undef CONFIG_ASH_CMDCMD 
     490+#undef CONFIG_ASH_BUILTIN_ECHO 
     491+#undef CONFIG_ASH_MAIL 
     492+#undef CONFIG_ASH_OPTIMIZE_FOR_SIZE 
     493+#undef CONFIG_ASH_RANDOM_SUPPORT 
     494+#undef CONFIG_ASH_EXPAND_PRMT 
     495+#undef CONFIG_HUSH 
     496+#undef CONFIG_LASH 
     497+#undef CONFIG_MSH 
     498+#undef CONFIG_FEATURE_SH_EXTRA_QUIET 
     499+#undef CONFIG_FEATURE_SH_STANDALONE_SHELL 
     500+#undef CONFIG_FEATURE_COMMAND_EDITING 
     501+#undef CONFIG_FEATURE_COMMAND_EDITING_VI 
     502+#define CONFIG_FEATURE_COMMAND_HISTORY  
     503+#undef CONFIG_FEATURE_COMMAND_SAVEHISTORY 
     504+#undef CONFIG_FEATURE_COMMAND_TAB_COMPLETION 
     505+#undef CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION 
     506+#undef CONFIG_FEATURE_SH_FANCY_PROMPT 
     507+ 
     508+/* 
     509+ * System Logging Utilities 
     510+ */ 
     511+#undef CONFIG_SYSLOGD 
     512+#undef CONFIG_FEATURE_ROTATE_LOGFILE 
     513+#undef CONFIG_FEATURE_REMOTE_LOG 
     514+#undef CONFIG_FEATURE_IPC_SYSLOG 
     515+#define CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE  
     516+#undef CONFIG_LOGREAD 
     517+#undef CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING 
     518+#undef CONFIG_KLOGD 
     519+#undef CONFIG_LOGGER 
     520+ 
     521+/* 
     522+ * Linux System Utilities 
     523+ */ 
     524+#undef CONFIG_DMESG 
     525+#undef CONFIG_FBSET 
     526+#undef CONFIG_FEATURE_FBSET_FANCY 
     527+#undef CONFIG_FEATURE_FBSET_READMODE 
     528+#undef CONFIG_FDFLUSH 
     529+#undef CONFIG_FDFORMAT 
     530+#undef CONFIG_FDISK 
     531+#undef FDISK_SUPPORT_LARGE_DISKS 
     532+#undef CONFIG_FEATURE_FDISK_WRITABLE 
     533+#undef CONFIG_FEATURE_AIX_LABEL 
     534+#undef CONFIG_FEATURE_SGI_LABEL 
     535+#undef CONFIG_FEATURE_SUN_LABEL 
     536+#undef CONFIG_FEATURE_OSF_LABEL 
     537+#undef CONFIG_FEATURE_FDISK_ADVANCED 
     538+#undef CONFIG_FREERAMDISK 
     539+#undef CONFIG_FSCK_MINIX 
     540+#undef CONFIG_MKFS_MINIX 
     541+#undef CONFIG_FEATURE_MINIX2 
     542+#undef CONFIG_GETOPT 
     543+#undef CONFIG_HEXDUMP 
     544+#undef CONFIG_HWCLOCK 
     545+#undef CONFIG_FEATURE_HWCLOCK_LONGOPTIONS 
     546+#undef CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS 
     547+#undef CONFIG_IPCRM 
     548+#undef CONFIG_IPCS 
     549+#undef CONFIG_LOSETUP 
     550+#undef CONFIG_MDEV 
     551+#undef CONFIG_FEATURE_MDEV_CONF 
     552+#undef CONFIG_MKSWAP 
     553+#undef CONFIG_MORE 
     554+#undef CONFIG_FEATURE_USE_TERMIOS 
     555+#undef CONFIG_PIVOT_ROOT 
     556+#undef CONFIG_SWITCH_ROOT 
     557+#undef CONFIG_RDATE 
     558+#undef CONFIG_READPROFILE 
     559+#undef CONFIG_SWAPONOFF 
     560+#undef CONFIG_MOUNT 
     561+#undef CONFIG_FEATURE_MOUNT_NFS 
     562+#undef CONFIG_UMOUNT 
     563+#undef CONFIG_FEATURE_MOUNT_LOOP 
     564+#undef CONFIG_FEATURE_MTAB_SUPPORT 
     565+ 
     566+/* 
     567+ * Debugging Options 
     568+ */ 
     569+#undef CONFIG_DEBUG 
     570+#undef CONFIG_NO_DEBUG_LIB 
     571+#undef CONFIG_DMALLOC 
     572+#undef CONFIG_EFENCE 
     573diff -urN busybox-1.1.0/include/libbb.h busybox-1.1.0-cryptpw/include/libbb.h 
     574--- busybox-1.1.0/include/libbb.h       2006-01-10 22:44:14.000000000 -0700 
     575+++ busybox-1.1.0-cryptpw/include/libbb.h       2006-01-18 14:36:37.000000000 -0700 
     576@@ -434,6 +434,10 @@ 
     577 extern char *pw_encrypt(const char *clear, const char *salt); 
     578 extern struct spwd *pwd_to_spwd(const struct passwd *pw); 
     579 extern int obscure(const char *old, const char *newval, const struct passwd *pwdp); 
     580+extern int palindrome(const char *newval); 
     581+extern int simple(const char *newval); 
     582+extern int get_algo(char *a); 
     583+extern char *crypt_make_salt(void); 
     584  
     585 extern int bb_xopen(const char *pathname, int flags); 
     586 extern ssize_t bb_xread(int fd, void *buf, size_t count); 
     587diff -urN busybox-1.1.0/include/libbb.h.orig busybox-1.1.0-cryptpw/include/libbb.h.orig 
     588--- busybox-1.1.0/include/libbb.h.orig  1969-12-31 17:00:00.000000000 -0700 
     589+++ busybox-1.1.0-cryptpw/include/libbb.h.orig  2006-01-10 22:44:14.000000000 -0700 
     590@@ -0,0 +1,501 @@ 
     591+/* vi: set sw=4 ts=4: */ 
     592+/* 
     593+ * Busybox main internal header file 
     594+ * 
     595+ * 
     596+ * This program is free software; you can redistribute it and/or modify 
     597+ * it under the terms of the GNU General Public License as published by 
     598+ * the Free Software Foundation; either version 2 of the License, or 
     599+ * (at your option) any later version. 
     600+ * 
     601+ * This program is distributed in the hope that it will be useful, 
     602+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
     603+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
     604+ * General Public License for more details. 
     605+ * 
     606+ * You should have received a copy of the GNU General Public License 
     607+ * along with this program; if not, write to the Free Software 
     608+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     609+ * 
     610+ * Based in part on code from sash, Copyright (c) 1999 by David I. Bell 
     611+ * Permission has been granted to redistribute this code under the GPL. 
     612+ * 
     613+ */ 
     614+#ifndef        __LIBCONFIG_H__ 
     615+#define        __LIBCONFIG_H__    1 
     616+ 
     617+#include <stdio.h> 
     618+#include <stdlib.h> 
     619+#include <stdarg.h> 
     620+#include <sys/types.h> 
     621+#include <sys/stat.h> 
     622+#include <termios.h> 
     623+#include <stdint.h> 
     624+ 
     625+#include <netdb.h> 
     626+ 
     627+#include <features.h> 
     628+ 
     629+#include "bb_config.h" 
     630+#ifdef CONFIG_SELINUX 
     631+#include <selinux/selinux.h> 
     632+#endif 
     633+ 
     634+#include "pwd_.h" 
     635+#include "grp_.h" 
     636+#ifdef CONFIG_FEATURE_SHADOWPASSWDS 
     637+#include "shadow_.h" 
     638+#endif 
     639+#ifdef CONFIG_FEATURE_SHA1_PASSWORDS 
     640+# include "sha1.h" 
     641+#endif 
     642+ 
     643+/* Convenience macros to test the version of gcc. */ 
     644+#if defined __GNUC__ && defined __GNUC_MINOR__ 
     645+# define __GNUC_PREREQ(maj, min) \ 
     646+        ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) 
     647+#else 
     648+# define __GNUC_PREREQ(maj, min) 0 
     649+#endif 
     650+ 
     651+/* __restrict is known in EGCS 1.2 and above. */ 
     652+#if !__GNUC_PREREQ (2,92) 
     653+# define __restrict     /* Ignore */ 
     654+#endif 
     655+ 
     656+#define attribute_noreturn __attribute__ ((__noreturn__)) 
     657+ 
     658+/* Some useful definitions */ 
     659+#define FALSE   ((int) 0) 
     660+#define TRUE    ((int) 1) 
     661+#define SKIP   ((int) 2) 
     662+ 
     663+/* for mtab.c */ 
     664+#define MTAB_GETMOUNTPT '1' 
     665+#define MTAB_GETDEVICE  '2' 
     666+ 
     667+#define BUF_SIZE        8192 
     668+#define EXPAND_ALLOC    1024 
     669+ 
     670+/* Macros for min/max.  */ 
     671+#ifndef MIN 
     672+#define        MIN(a,b) (((a)<(b))?(a):(b)) 
     673+#endif 
     674+ 
     675+#ifndef MAX 
     676+#define        MAX(a,b) (((a)>(b))?(a):(b)) 
     677+#endif 
     678+ 
     679+extern void bb_show_usage(void) __attribute__ ((noreturn)); 
     680+extern void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))); 
     681+extern void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))); 
     682+extern void bb_perror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))); 
     683+extern void bb_perror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))); 
     684+extern void bb_vherror_msg(const char *s, va_list p); 
     685+extern void bb_herror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))); 
     686+extern void bb_herror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))); 
     687+ 
     688+extern void bb_perror_nomsg_and_die(void) __attribute__ ((noreturn)); 
     689+extern void bb_perror_nomsg(void); 
     690+ 
     691+/* These two are used internally -- you shouldn't need to use them */ 
     692+extern void bb_verror_msg(const char *s, va_list p) __attribute__ ((format (printf, 1, 0))); 
     693+extern void bb_vperror_msg(const char *s, va_list p)  __attribute__ ((format (printf, 1, 0))); 
     694+ 
     695+extern int bb_echo(int argc, char** argv); 
     696+ 
     697+extern const char *bb_mode_string(int mode); 
     698+extern int is_directory(const char *name, int followLinks, struct stat *statBuf); 
     699+ 
     700+extern int remove_file(const char *path, int flags); 
     701+extern int copy_file(const char *source, const char *dest, int flags); 
     702+extern ssize_t safe_read(int fd, void *buf, size_t count); 
     703+extern ssize_t bb_full_read(int fd, void *buf, size_t len); 
     704+extern ssize_t safe_write(int fd, const void *buf, size_t count); 
     705+extern ssize_t bb_full_write(int fd, const void *buf, size_t len); 
     706+extern int recursive_action(const char *fileName, int recurse, 
     707+         int followLinks, int depthFirst, 
     708+         int (*fileAction) (const char *fileName, struct stat* statbuf, void* userData), 
     709+         int (*dirAction) (const char *fileName, struct stat* statbuf, void* userData), 
     710+         void* userData); 
     711+ 
     712+extern int bb_parse_mode( const char* s, mode_t* theMode); 
     713+extern long bb_xgetlarg(const char *arg, int base, long lower, long upper); 
     714+ 
     715+extern unsigned long bb_baud_to_value(speed_t speed); 
     716+extern speed_t bb_value_to_baud(unsigned long value); 
     717+ 
     718+extern int get_kernel_revision(void); 
     719+ 
     720+extern int get_console_fd(void); 
     721+extern struct mntent *find_mount_point(const char *name, const char *table); 
     722+extern void erase_mtab(const char * name); 
     723+extern long *find_pid_by_name( const char* pidName); 
     724+extern long *pidlist_reverse(long *pidList); 
     725+extern char *find_block_device(char *path); 
     726+extern char *bb_get_line_from_file(FILE *file); 
     727+extern char *bb_get_chomped_line_from_file(FILE *file); 
     728+extern char *bb_get_chunk_from_file(FILE *file); 
     729+extern int bb_copyfd_size(int fd1, int fd2, const off_t size); 
     730+extern int bb_copyfd_eof(int fd1, int fd2); 
     731+extern void  bb_xprint_and_close_file(FILE *file); 
     732+extern int   bb_xprint_file_by_name(const char *filename); 
     733+extern char  bb_process_escape_sequence(const char **ptr); 
     734+extern char *bb_get_last_path_component(char *path); 
     735+extern FILE *bb_wfopen(const char *path, const char *mode); 
     736+extern FILE *bb_wfopen_input(const char *filename); 
     737+extern FILE *bb_xfopen(const char *path, const char *mode); 
     738+ 
     739+extern int   bb_fclose_nonstdin(FILE *f); 
     740+extern void  bb_fflush_stdout_and_exit(int retval) __attribute__ ((noreturn)); 
     741+ 
     742+#define BB_GETOPT_ERROR 0x80000000UL 
     743+extern const char *bb_opt_complementally; 
     744+extern const struct option *bb_applet_long_options; 
     745+extern unsigned long bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...); 
     746+ 
     747+extern int bb_vfprintf(FILE * __restrict stream, const char * __restrict format, 
     748+                                          va_list arg) __attribute__ ((format (printf, 2, 0))); 
     749+extern int bb_vprintf(const char * __restrict format, va_list arg) 
     750+       __attribute__ ((format (printf, 1, 0))); 
     751+extern int bb_fprintf(FILE * __restrict stream, const char * __restrict format, ...) 
     752+       __attribute__ ((format (printf, 2, 3))); 
     753+extern int bb_printf(const char * __restrict format, ...) 
     754+       __attribute__ ((format (printf, 1, 2))); 
     755+ 
     756+//#warning rename to xferror_filename? 
     757+extern void bb_xferror(FILE *fp, const char *fn); 
     758+extern void bb_xferror_stdout(void); 
     759+extern void bb_xfflush_stdout(void); 
     760+ 
     761+extern void bb_warn_ignoring_args(int n); 
     762+ 
     763+extern void chomp(char *s); 
     764+extern void trim(char *s); 
     765+extern const char *bb_skip_whitespace(const char *); 
     766+ 
     767+extern struct BB_applet *find_applet_by_name(const char *name); 
     768+void run_applet_by_name(const char *name, int argc, char **argv); 
     769+ 
     770+/* dmalloc will redefine these to it's own implementation. It is safe 
     771+ * to have the prototypes here unconditionally.  */ 
     772+extern void *xmalloc(size_t size); 
     773+extern void *xrealloc(void *old, size_t size); 
     774+extern void *xcalloc(size_t nmemb, size_t size); 
     775+ 
     776+extern char *bb_xstrdup (const char *s); 
     777+extern char *bb_xstrndup (const char *s, int n); 
     778+extern char *safe_strncpy(char *dst, const char *src, size_t size); 
     779+extern int safe_strtoi(char *arg, int* value); 
     780+extern int safe_strtod(char *arg, double* value); 
     781+extern int safe_strtol(char *arg, long* value); 
     782+extern int safe_strtoul(char *arg, unsigned long* value); 
     783+ 
     784+struct suffix_mult { 
     785+       const char *suffix; 
     786+       unsigned int mult; 
     787+}; 
     788+ 
     789+extern unsigned long bb_xgetularg_bnd_sfx(const char *arg, int base, 
     790+                                                                                 unsigned long lower, 
     791+                                                                                 unsigned long upper, 
     792+                                                                                 const struct suffix_mult *suffixes); 
     793+extern unsigned long bb_xgetularg_bnd(const char *arg, int base, 
     794+                                                                         unsigned long lower, 
     795+                                                                         unsigned long upper); 
     796+extern unsigned long bb_xgetularg10_bnd(const char *arg, 
     797+                                                                               unsigned long lower, 
     798+                                                                               unsigned long upper); 
     799+extern unsigned long bb_xgetularg10(const char *arg); 
     800+ 
     801+extern long bb_xgetlarg_bnd_sfx(const char *arg, int base, 
     802+                                                               long lower, 
     803+                                                               long upper, 
     804+                                                               const struct suffix_mult *suffixes); 
     805+extern long bb_xgetlarg10_sfx(const char *arg, const struct suffix_mult *suffixes); 
     806+ 
     807+ 
     808+//#warning pitchable now? 
     809+extern unsigned long bb_xparse_number(const char *numstr, 
     810+               const struct suffix_mult *suffixes); 
     811+ 
     812+ 
     813+/* These parse entries in /etc/passwd and /etc/group.  This is desirable 
     814+ * for BusyBox since we want to avoid using the glibc NSS stuff, which 
     815+ * increases target size and is often not needed on embedded systems.  */ 
     816+extern long bb_xgetpwnam(const char *name); 
     817+extern long bb_xgetgrnam(const char *name); 
     818+extern char * bb_getug(char *buffer, char *idname, long id, int bufsize, char prefix); 
     819+extern char * bb_getpwuid(char *name, long uid, int bufsize); 
     820+extern char * bb_getgrgid(char *group, long gid, int bufsize); 
     821+extern char *bb_askpass(int timeout, const char * prompt); 
     822+ 
     823+extern int device_open(const char *device, int mode); 
     824+ 
     825+extern char *query_loop(const char *device); 
     826+extern int del_loop(const char *device); 
     827+extern int set_loop(char **device, const char *file, int offset); 
     828+ 
     829+#if (__GLIBC__ < 2) 
     830+extern int vdprintf(int d, const char *format, va_list ap); 
     831+#endif 
     832+ 
     833+int nfsmount(const char *spec, const char *node, int *flags, 
     834+            char **mount_opts, int running_bg); 
     835+ 
     836+/* Include our own copy of struct sysinfo to avoid binary compatability 
     837+ * problems with Linux 2.4, which changed things.  Grumble, grumble. */ 
     838+struct sysinfo { 
     839+       long uptime;                    /* Seconds since boot */ 
     840+       unsigned long loads[3];         /* 1, 5, and 15 minute load averages */ 
     841+       unsigned long totalram;         /* Total usable main memory size */ 
     842+       unsigned long freeram;          /* Available memory size */ 
     843+       unsigned long sharedram;        /* Amount of shared memory */ 
     844+       unsigned long bufferram;        /* Memory used by buffers */ 
     845+       unsigned long totalswap;        /* Total swap space size */ 
     846+       unsigned long freeswap;         /* swap space still available */ 
     847+       unsigned short procs;           /* Number of current processes */ 
     848+       unsigned short pad;                     /* Padding needed for m68k */ 
     849+       unsigned long totalhigh;        /* Total high memory size */ 
     850+       unsigned long freehigh;         /* Available high memory size */ 
     851+       unsigned int mem_unit;          /* Memory unit size in bytes */ 
     852+       char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ 
     853+}; 
     854+extern int sysinfo (struct sysinfo* info); 
     855+ 
     856+enum { 
     857+       KILOBYTE = 1024, 
     858+       MEGABYTE = (KILOBYTE*1024), 
     859+       GIGABYTE = (MEGABYTE*1024) 
     860+}; 
     861+const char *make_human_readable_str(unsigned long long size, 
     862+               unsigned long block_size, unsigned long display_unit); 
     863+ 
     864+int bb_ask_confirmation(void); 
     865+int klogctl(int type, char * b, int len); 
     866+ 
     867+char *xgetcwd(char *cwd); 
     868+char *xreadlink(const char *path); 
     869+char *concat_path_file(const char *path, const char *filename); 
     870+char *concat_subpath_file(const char *path, const char *filename); 
     871+char *last_char_is(const char *s, int c); 
     872+ 
     873+int read_package_field(const char *package_buffer, char **field_name, char **field_value); 
     874+//#warning yuk! 
     875+char *fgets_str(FILE *file, const char *terminating_string); 
     876+ 
     877+extern int uncompress(int fd_in, int fd_out); 
     878+extern int inflate(int in, int out); 
     879+ 
     880+extern struct hostent *xgethostbyname(const char *name); 
     881+extern struct hostent *xgethostbyname2(const char *name, int af); 
     882+extern int create_icmp_socket(void); 
     883+extern int create_icmp6_socket(void); 
     884+extern int xconnect(struct sockaddr_in *s_addr); 
     885+extern unsigned short bb_lookup_port(const char *port, const char *protocol, unsigned short default_port); 
     886+extern void bb_lookup_host(struct sockaddr_in *s_in, const char *host); 
     887+ 
     888+//#warning wrap this? 
     889+char *dirname (char *path); 
     890+ 
     891+int bb_make_directory (char *path, long mode, int flags); 
     892+ 
     893+const char *u_signal_names(const char *str_sig, int *signo, int startnum); 
     894+char *bb_simplify_path(const char *path); 
     895+ 
     896+enum { /* DO NOT CHANGE THESE VALUES!  cp.c depends on them. */ 
     897+       FILEUTILS_PRESERVE_STATUS = 1, 
     898+       FILEUTILS_DEREFERENCE = 2, 
     899+       FILEUTILS_RECUR = 4, 
     900+       FILEUTILS_FORCE = 8, 
     901+       FILEUTILS_INTERACTIVE = 16 
     902+}; 
     903+ 
     904+extern const char *bb_applet_name; 
     905+ 
     906+extern const char * const bb_msg_full_version; 
     907+extern const char * const bb_msg_memory_exhausted; 
     908+extern const char * const bb_msg_invalid_date; 
     909+extern const char * const bb_msg_io_error; 
     910+extern const char * const bb_msg_read_error; 
     911+extern const char * const bb_msg_write_error; 
     912+extern const char * const bb_msg_name_longer_than_foo; 
     913+extern const char * const bb_msg_unknown; 
     914+extern const char * const bb_msg_can_not_create_raw_socket; 
     915+extern const char * const bb_msg_perm_denied_are_you_root; 
     916+extern const char * const bb_msg_standard_input; 
     917+extern const char * const bb_msg_standard_output; 
     918+ 
     919+extern const char * const bb_path_nologin_file; 
     920+extern const char * const bb_path_passwd_file; 
     921+extern const char * const bb_path_shadow_file; 
     922+extern const char * const bb_path_gshadow_file; 
     923+extern const char * const bb_path_group_file; 
     924+extern const char * const bb_path_securetty_file; 
     925+extern const char * const bb_path_motd_file; 
     926+extern const char * const bb_dev_null; 
     927+ 
     928+#ifndef BUFSIZ 
     929+#define BUFSIZ 4096 
     930+#endif 
     931+extern char bb_common_bufsiz1[BUFSIZ+1]; 
     932+ 
     933+/* 
     934+ * You can change LIBBB_DEFAULT_LOGIN_SHELL, but don`t use, 
     935+ * use bb_default_login_shell and next defines, 
     936+ * if you LIBBB_DEFAULT_LOGIN_SHELL change, 
     937+ * don`t lose change increment constant! 
     938+ */ 
     939+#define LIBBB_DEFAULT_LOGIN_SHELL      "-/bin/sh" 
     940+ 
     941+extern const char * const bb_default_login_shell; 
     942+/* "/bin/sh" */ 
     943+#define DEFAULT_SHELL     (bb_default_login_shell+1) 
     944+/* "sh" */ 
     945+#define DEFAULT_SHELL_SHORT_NAME     (bb_default_login_shell+6) 
     946+ 
     947+ 
     948+extern const char bb_path_mtab_file[]; 
     949+ 
     950+extern int bb_default_error_retval; 
     951+ 
     952+#ifdef CONFIG_FEATURE_DEVFS 
     953+# define CURRENT_VC "/dev/vc/0" 
     954+# define VC_1 "/dev/vc/1" 
     955+# define VC_2 "/dev/vc/2" 
     956+# define VC_3 "/dev/vc/3" 
     957+# define VC_4 "/dev/vc/4" 
     958+# define VC_5 "/dev/vc/5" 
     959+#if defined(__sh__) || defined(__H8300H__) || defined(__H8300S__) 
     960+/* Yes, this sucks, but both SH (including sh64) and H8 have a SCI(F) for their 
     961+   respective serial ports .. as such, we can't use the common device paths for 
     962+   these. -- PFM */ 
     963+#  define SC_0 "/dev/ttsc/0" 
     964+#  define SC_1 "/dev/ttsc/1" 
     965+#  define SC_FORMAT "/dev/ttsc/%d" 
     966+#else 
     967+#  define SC_0 "/dev/tts/0" 
     968+#  define SC_1 "/dev/tts/1" 
     969+#  define SC_FORMAT "/dev/tts/%d" 
     970+#endif 
     971+# define VC_FORMAT "/dev/vc/%d" 
     972+# define LOOP_FORMAT "/dev/loop/%d" 
     973+# define FB_0 "/dev/fb/0" 
     974+#else 
     975+# define CURRENT_VC "/dev/tty0" 
     976+# define VC_1 "/dev/tty1" 
     977+# define VC_2 "/dev/tty2" 
     978+# define VC_3 "/dev/tty3" 
     979+# define VC_4 "/dev/tty4" 
     980+# define VC_5 "/dev/tty5" 
     981+#if defined(__sh__) || defined(__H8300H__) || defined(__H8300S__) 
     982+#  define SC_0 "/dev/ttySC0" 
     983+#  define SC_1 "/dev/ttySC1" 
     984+#  define SC_FORMAT "/dev/ttySC%d" 
     985+#else 
     986+#  define SC_0 "/dev/ttyS0" 
     987+#  define SC_1 "/dev/ttyS1" 
     988+#  define SC_FORMAT "/dev/ttyS%d" 
     989+#endif 
     990+# define VC_FORMAT "/dev/tty%d" 
     991+# define LOOP_FORMAT "/dev/loop%d" 
     992+# define FB_0 "/dev/fb0" 
     993+#endif 
     994+ 
     995+//#warning put these in .o files 
     996+ 
     997+/* The following devices are the same on devfs and non-devfs systems.  */ 
     998+#define CURRENT_TTY "/dev/tty" 
     999+#define CONSOLE_DEV "/dev/console" 
     1000+ 
     1001+int is_in_ino_dev_hashtable(const struct stat *statbuf, char **name); 
     1002+void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name); 
     1003+void reset_ino_dev_hashtable(void); 
     1004+ 
     1005+/* Stupid gcc always includes its own builtin strlen()... */ 
     1006+extern size_t bb_strlen(const char *string); 
     1007+#define strlen(x)   bb_strlen(x) 
     1008+ 
     1009+char *bb_xasprintf(const char *format, ...) __attribute__ ((format (printf, 1, 2))); 
     1010+ 
     1011+#define FAIL_DELAY    3 
     1012+extern void bb_do_delay(int seconds); 
     1013+extern void change_identity ( const struct passwd *pw ); 
     1014+extern const char *change_identity_e2str ( const struct passwd *pw ); 
     1015+extern void run_shell ( const char *shell, int loginshell, const char *command, const char **additional_args); 
     1016+#ifdef CONFIG_SELINUX 
     1017+extern void renew_current_security_context(void); 
     1018+extern void set_current_security_context(security_context_t sid); 
     1019+#endif 
     1020+extern int run_parts(char **args, const unsigned char test_mode, char **env); 
     1021+extern int restricted_shell ( const char *shell ); 
     1022+extern void setup_environment ( const char *shell, int loginshell, int changeenv, const struct passwd *pw ); 
     1023+extern int correct_password ( const struct passwd *pw ); 
     1024+extern char *pw_encrypt(const char *clear, const char *salt); 
     1025+extern struct spwd *pwd_to_spwd(const struct passwd *pw); 
     1026+extern int obscure(const char *old, const char *newval, const struct passwd *pwdp); 
     1027+ 
     1028+extern int bb_xopen(const char *pathname, int flags); 
     1029+extern ssize_t bb_xread(int fd, void *buf, size_t count); 
     1030+extern void bb_xread_all(int fd, void *buf, size_t count); 
     1031+extern unsigned char bb_xread_char(int fd); 
     1032+ 
     1033+#ifndef COMM_LEN 
     1034+/*#include <sched.h> *//* Task command name length */ 
     1035+#ifdef TASK_COMM_LEN 
     1036+#define COMM_LEN TASK_COMM_LEN 
     1037+#else 
     1038+#define COMM_LEN 16 /* synchronize with size of comm in struct task_struct 
     1039+                                                                 in /usr/include/linux/sched.h */ 
     1040+#endif 
     1041+#endif 
     1042+typedef struct { 
     1043+       int pid; 
     1044+       char user[9]; 
     1045+       char state[4]; 
     1046+       unsigned long rss; 
     1047+       int ppid; 
     1048+#ifdef CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE 
     1049+       unsigned pcpu; 
     1050+       unsigned pscpu; 
     1051+       unsigned long stime, utime; 
     1052+#endif 
     1053+       char *cmd; 
     1054+ 
     1055+       /* basename of executable file in call to exec(2), 
     1056+               size from kernel headers */ 
     1057+       char short_cmd[COMM_LEN]; 
     1058+} procps_status_t; 
     1059+ 
     1060+extern procps_status_t * procps_scan(int save_user_arg0); 
     1061+extern int compare_string_array(const char * const string_array[], const char *key); 
     1062+ 
     1063+extern int my_query_module(const char *name, int which, void **buf, size_t *bufsize, size_t *ret); 
     1064+ 
     1065+typedef struct llist_s { 
     1066+       char *data; 
     1067+       struct llist_s *link; 
     1068+} llist_t; 
     1069+extern llist_t *llist_add_to(llist_t *old_head, char *new_item); 
     1070+extern llist_t *llist_add_to_end(llist_t *list_head, char *data); 
     1071+extern llist_t *llist_free_one(llist_t *elm); 
     1072+extern void llist_free(llist_t *elm); 
     1073+ 
     1074+extern void print_login_issue(const char *issue_file, const char *tty); 
     1075+extern void print_login_prompt(void); 
     1076+ 
     1077+extern void vfork_daemon_rexec(int nochdir, int noclose, 
     1078+               int argc, char **argv, char *foreground_opt); 
     1079+extern int get_terminal_width_height(int fd, int *width, int *height); 
     1080+extern unsigned long get_ug_id(const char *s, long (*__bb_getxxnam)(const char *)); 
     1081+ 
     1082+#define HASH_SHA1      1 
     1083+#define HASH_MD5       2 
     1084+extern int hash_fd(int fd, const size_t size, const uint8_t hash_algo, uint8_t *hashval); 
     1085+ 
     1086+/* busybox.h will include dmalloc later for us, else include it here.  */ 
     1087+#if !defined _BB_INTERNAL_H_ && defined DMALLOC 
     1088+#include <dmalloc.h> 
     1089+#endif 
     1090+ 
     1091+#endif /* __LIBCONFIG_H__ */ 
     1092diff -urN busybox-1.1.0/include/usage.h busybox-1.1.0-cryptpw/include/usage.h 
     1093--- busybox-1.1.0/include/usage.h       2006-01-10 22:44:14.000000000 -0700 
     1094+++ busybox-1.1.0-cryptpw/include/usage.h       2006-01-18 14:30:51.000000000 -0700 
    171095@@ -285,6 +285,20 @@ 
    181096        "\t-d [user]    delete crontab for user\n" \ 
     
    361114 #define cut_trivial_usage \ 
    371115        "[OPTION]... [FILE]..." 
    38 diff -urN busybox/loginutils/Config.in busybox.cryptpw/loginutils/Config.in 
    39 --- busybox/loginutils/Config.in        2005-10-15 01:20:28.000000000 -0600 
    40 +++ busybox.cryptpw/loginutils/Config.in        2005-10-16 04:56:57.000000000 -0600 
    41 @@ -105,6 +105,12 @@ 
     1116diff -urN busybox-1.1.0/libbb/Makefile.in busybox-1.1.0-cryptpw/libbb/Makefile.in 
     1117--- busybox-1.1.0/libbb/Makefile.in     2006-01-10 22:44:06.000000000 -0700 
     1118+++ busybox-1.1.0-cryptpw/libbb/Makefile.in     2006-01-18 14:39:12.000000000 -0700 
     1119@@ -34,7 +34,7 @@ 
     1120        getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \ 
     1121        perror_nomsg_and_die.c perror_nomsg.c skip_whitespace.c bb_askpass.c \ 
     1122        warn_ignoring_args.c concat_subpath_file.c vfork_daemon_rexec.c \ 
     1123-       bb_echo.c bb_do_delay.c 
     1124+       bb_echo.c bb_do_delay.c crypt_make_salt.c get_algo.c 
     1125  
     1126 LIBBB_SRC-$(CONFIG_FEATURE_SHADOWPASSWDS)+= pwd2spwd.c 
     1127  
     1128diff -urN busybox-1.1.0/libbb/crypt_make_salt.c busybox-1.1.0-cryptpw/libbb/crypt_make_salt.c 
     1129--- busybox-1.1.0/libbb/crypt_make_salt.c       1969-12-31 17:00:00.000000000 -0700 
     1130+++ busybox-1.1.0-cryptpw/libbb/crypt_make_salt.c       2006-01-18 14:36:37.000000000 -0700 
     1131@@ -0,0 +1,43 @@ 
     1132+/* vi: set sw=4 ts=4: */ 
     1133+/* 
     1134+ * crypt_make_salt  
     1135+ * 
     1136+ * i64c was also put here, this is the only function that uses it. 
     1137+ * 
     1138+ * Lifted from loginutils/passwd.c by Thomas Lundquist <thomasez@zelow.no> 
     1139+ * 
     1140+ */ 
     1141+ 
     1142+#include <unistd.h> 
     1143+#include <time.h> 
     1144+ 
     1145+#include <libbb.h> 
     1146+ 
     1147+static int i64c(int i) 
     1148+{ 
     1149+       if (i <= 0) 
     1150+               return ('.'); 
     1151+       if (i == 1) 
     1152+               return ('/'); 
     1153+       if (i >= 2 && i < 12) 
     1154+               return ('0' - 2 + i); 
     1155+       if (i >= 12 && i < 38) 
     1156+               return ('A' - 12 + i); 
     1157+       if (i >= 38 && i < 63) 
     1158+               return ('a' - 38 + i); 
     1159+       return ('z'); 
     1160+} 
     1161+ 
     1162+extern char *crypt_make_salt(void) 
     1163+{ 
     1164+       time_t now; 
     1165+       static unsigned long x; 
     1166+       static char result[3]; 
     1167+ 
     1168+       time(&now); 
     1169+       x += now + getpid() + clock(); 
     1170+       result[0] = i64c(((x >> 18) ^ (x >> 6)) & 077); 
     1171+       result[1] = i64c(((x >> 12) ^ x) & 077); 
     1172+       result[2] = '\0'; 
     1173+       return result; 
     1174+} 
     1175diff -urN busybox-1.1.0/libbb/get_algo.c busybox-1.1.0-cryptpw/libbb/get_algo.c 
     1176--- busybox-1.1.0/libbb/get_algo.c      1969-12-31 17:00:00.000000000 -0700 
     1177+++ busybox-1.1.0-cryptpw/libbb/get_algo.c      2006-01-18 14:36:37.000000000 -0700 
     1178@@ -0,0 +1,20 @@ 
     1179+/* vi: set sw=4 ts=4: */ 
     1180+/* 
     1181+ * get_algo  
     1182+ * 
     1183+ * Lifted from loginutils/passwd.c 
     1184+ * 
     1185+ */ 
     1186+ 
     1187+#include <string.h> 
     1188+ 
     1189+#include <libbb.h> 
     1190+ 
     1191+extern int get_algo(char *a) 
     1192+{ 
     1193+       int x = 1;                                      /* standard: MD5 */ 
     1194+ 
     1195+       if (strcasecmp(a, "des") == 0) 
     1196+               x = 0; 
     1197+       return x; 
     1198+} 
     1199diff -urN busybox-1.1.0/libbb/obscure.c busybox-1.1.0-cryptpw/libbb/obscure.c 
     1200--- busybox-1.1.0/libbb/obscure.c       2006-01-10 22:44:06.000000000 -0700 
     1201+++ busybox-1.1.0-cryptpw/libbb/obscure.c       2006-01-18 14:36:37.000000000 -0700 
     1202@@ -44,7 +44,7 @@ 
     1203  * can't be a palindrome - like `R A D A R' or `M A D A M' 
     1204  */ 
     1205  
     1206-static int palindrome(const char *newval) 
     1207+extern int palindrome(const char *newval) 
     1208 { 
     1209        int i, j; 
     1210  
     1211@@ -79,7 +79,7 @@ 
     1212  * a nice mix of characters. 
     1213  */ 
     1214  
     1215-static int simple(const char *newval) 
     1216+extern int simple(const char *newval) 
     1217 { 
     1218        int digits = 0; 
     1219        int uppers = 0; 
     1220diff -urN busybox-1.1.0/loginutils/Config.in busybox-1.1.0-cryptpw/loginutils/Config.in 
     1221--- busybox-1.1.0/loginutils/Config.in  2006-01-10 22:44:15.000000000 -0700 
     1222+++ busybox-1.1.0-cryptpw/loginutils/Config.in  2006-01-18 14:30:51.000000000 -0700 
     1223@@ -131,6 +131,12 @@ 
    421224          Note that Busybox binary must be setuid root for this applet to 
    431225          work properly. 
     
    521234        bool "su" 
    531235        default n 
    54 diff -urN busybox/loginutils/Makefile.in busybox.cryptpw/loginutils/Makefile.in 
    55 --- busybox/loginutils/Makefile.in      2005-10-15 01:20:28.000000000 -0600 
    56 +++ busybox.cryptpw/loginutils/Makefile.in      2005-10-16 04:57:31.000000000 -0600 
     1236diff -urN busybox-1.1.0/loginutils/Config.in.orig busybox-1.1.0-cryptpw/loginutils/Config.in.orig 
     1237--- busybox-1.1.0/loginutils/Config.in.orig     1969-12-31 17:00:00.000000000 -0700 
     1238+++ busybox-1.1.0-cryptpw/loginutils/Config.in.orig     2006-01-10 22:44:15.000000000 -0700 
     1239@@ -0,0 +1,163 @@ 
     1240+# 
     1241+# For a description of the syntax of this configuration file, 
     1242+# see scripts/kbuild/config-language.txt. 
     1243+# 
     1244+ 
     1245+menu "Login/Password Management Utilities" 
     1246+ 
     1247+config CONFIG_FEATURE_SHADOWPASSWDS 
     1248+       bool "Support for shadow passwords" 
     1249+       default n 
     1250+       help 
     1251+         Build support for shadow password in /etc/shadow.  This file is only 
     1252+         readable by root and thus the encrypted passwords are no longer 
     1253+         publicly readable. 
     1254+ 
     1255+config CONFIG_USE_BB_SHADOW 
     1256+       bool #"  Use busybox shadow password functions" 
     1257+       default y 
     1258+       depends on CONFIG_USE_BB_PWD_GRP && CONFIG_FEATURE_SHADOWPASSWDS 
     1259+       help 
     1260+           If you leave this disabled, busybox will use the system's shadow 
     1261+           password handling functions.  And if you are using the GNU C library 
     1262+           (glibc), you will then need to install the /etc/nsswitch.conf 
     1263+           configuration file and the required /lib/libnss_* libraries in 
     1264+           order for the shadow password functions to work.  This generally 
     1265+           makes your embedded system quite a bit larger. 
     1266+ 
     1267+           Enabling this option will cause busybox to directly access the 
     1268+           system's /etc/shadow file when handling shadow passwords.  This 
     1269+           makes your system smaller and I will get fewer emails asking about 
     1270+           how glibc NSS works).  When this option is enabled, you will not be 
     1271+           able to use PAM to access shadow passwords from remote LDAP 
     1272+           password servers and whatnot. 
     1273+ 
     1274+config CONFIG_USE_BB_PWD_GRP 
     1275+       bool "Use internal password and group functions rather than system functions" 
     1276+       default n 
     1277+       help 
     1278+           If you leave this disabled, busybox will use the system's password 
     1279+           and group functions.  And if you are using the GNU C library 
     1280+           (glibc), you will then need to install the /etc/nsswitch.conf 
     1281+           configuration file and the required /lib/libnss_* libraries in 
     1282+           order for the password and group functions to work.  This generally 
     1283+           makes your embedded system quite a bit larger. 
     1284+ 
     1285+           Enabling this option will cause busybox to directly access the 
     1286+           system's /etc/password, /etc/group files (and your system will be 
     1287+           smaller, and I will get fewer emails asking about how glibc NSS 
     1288+           works).  When this option is enabled, you will not be able to use 
     1289+           PAM to access remote LDAP password servers and whatnot.  And if you 
     1290+           want hostname resolution to work with glibc, you still need the 
     1291+           /lib/libnss_* libraries. 
     1292+ 
     1293+           If you enable this option, it will add about 1.5k to busybox. 
     1294+ 
     1295+config CONFIG_ADDGROUP 
     1296+       bool "addgroup" 
     1297+       default n 
     1298+       help 
     1299+         Utility for creating a new group account. 
     1300+ 
     1301+config CONFIG_DELGROUP 
     1302+       bool "delgroup" 
     1303+       default n 
     1304+       help 
     1305+         Utility for deleting a group account. 
     1306+ 
     1307+config CONFIG_ADDUSER 
     1308+       bool "adduser" 
     1309+       default n 
     1310+       help 
     1311+         Utility for creating a new user account. 
     1312+ 
     1313+config CONFIG_DELUSER 
     1314+       bool "deluser" 
     1315+       default n 
     1316+       help 
     1317+         Utility for deleting a user account. 
     1318+ 
     1319+config CONFIG_GETTY 
     1320+       bool "getty" 
     1321+       default n 
     1322+       help 
     1323+         getty lets you log in on a tty, it is normally invoked by init. 
     1324+ 
     1325+config CONFIG_FEATURE_UTMP 
     1326+       bool "  Support utmp file" 
     1327+       depends on CONFIG_GETTY || CONFIG_LOGIN || CONFIG_SU || CONFIG_WHO  
     1328+       default n 
     1329+       help 
     1330+         The file /var/run/utmp is used to track who is currently logged in. 
     1331+ 
     1332+config CONFIG_FEATURE_WTMP 
     1333+       bool "  Support wtmp file" 
     1334+       depends on CONFIG_GETTY || CONFIG_LOGIN || CONFIG_SU || CONFIG_LAST 
     1335+       default n 
     1336+       select CONFIG_FEATURE_UTMP 
     1337+       help 
     1338+         The file /var/run/wtmp is used to track when user's have logged into  
     1339+         and logged out of the system. 
     1340+ 
     1341+config CONFIG_LOGIN 
     1342+       bool "login" 
     1343+       default n 
     1344+       select CONFIG_FEATURE_SUID 
     1345+       help 
     1346+         login is used when signing onto a system. 
     1347+ 
     1348+         Note that Busybox binary must be setuid root for this applet to 
     1349+         work properly. 
     1350+ 
     1351+config CONFIG_FEATURE_SECURETTY 
     1352+       bool "  Support for /etc/securetty" 
     1353+       default y 
     1354+       depends on CONFIG_LOGIN 
     1355+       help 
     1356+         The file  /etc/securetty  is used by (some versions of) login(1). 
     1357+         The file contains the device names of tty lines (one per line, 
     1358+         without leading /dev/) on which root is allowed to login. 
     1359+ 
     1360+config CONFIG_PASSWD 
     1361+       bool "passwd" 
     1362+       default n 
     1363+       select CONFIG_FEATURE_SUID 
     1364+       help 
     1365+         passwd changes passwords for user and group accounts.  A normal user 
     1366+         may only change the password for his/her own account, the super user 
     1367+         may change the password for any account.  The administrator of a group 
     1368+         may change the password for the group. 
     1369+ 
     1370+         Note that Busybox binary must be setuid root for this applet to 
     1371+         work properly. 
     1372+ 
     1373+config CONFIG_SU 
     1374+       bool "su" 
     1375+       default n 
     1376+       select CONFIG_FEATURE_SUID 
     1377+       help 
     1378+         su is used to become another user during a login session. 
     1379+         Invoked without a username, su defaults to becoming the super user. 
     1380+ 
     1381+         Note that Busybox binary must be setuid root for this applet to 
     1382+         work properly. 
     1383+ 
     1384+config CONFIG_SULOGIN 
     1385+       bool "sulogin" 
     1386+       default n 
     1387+       help 
     1388+         sulogin is invoked when the system goes into single user 
     1389+         mode (this is done through an entry in inittab). 
     1390+ 
     1391+config CONFIG_VLOCK 
     1392+       bool "vlock" 
     1393+       default n 
     1394+       select CONFIG_FEATURE_SUID 
     1395+       help 
     1396+         Build the "vlock" applet which allows you to lock (virtual) terminals. 
     1397+ 
     1398+         Note that Busybox binary must be setuid root for this applet to 
     1399+         work properly. 
     1400+ 
     1401+endmenu 
     1402+ 
     1403diff -urN busybox-1.1.0/loginutils/Makefile.in busybox-1.1.0-cryptpw/loginutils/Makefile.in 
     1404--- busybox-1.1.0/loginutils/Makefile.in        2006-01-10 22:44:15.000000000 -0700 
     1405+++ busybox-1.1.0-cryptpw/loginutils/Makefile.in        2006-01-18 14:30:51.000000000 -0700 
    571406@@ -13,6 +13,7 @@ 
    581407 LOGINUTILS-y:= 
     
    631412 LOGINUTILS-$(CONFIG_LOGIN)     += login.o 
    641413 LOGINUTILS-$(CONFIG_PASSWD)    += passwd.o 
    65 diff -urN busybox/loginutils/cryptpw.c busybox.cryptpw/loginutils/cryptpw.c 
    66 --- busybox/loginutils/cryptpw.c        1969-12-31 17:00:00.000000000 -0700 
    67 +++ busybox.cryptpw/loginutils/cryptpw.c        2005-10-16 04:58:16.000000000 -0600 
     1414diff -urN busybox-1.1.0/loginutils/cryptpw.c busybox-1.1.0-cryptpw/loginutils/cryptpw.c 
     1415--- busybox-1.1.0/loginutils/cryptpw.c  1969-12-31 17:00:00.000000000 -0700 
     1416+++ busybox-1.1.0-cryptpw/loginutils/cryptpw.c  2006-01-18 14:30:51.000000000 -0700 
    681417@@ -0,0 +1,60 @@ 
    691418+/* vi: set sw=4 ts=4: */ 
     
    1271476+ 
    1281477+} 
     1478diff -urN busybox-1.1.0/loginutils/passwd.c busybox-1.1.0-cryptpw/loginutils/passwd.c 
     1479--- busybox-1.1.0/loginutils/passwd.c   2006-01-10 22:44:15.000000000 -0700 
     1480+++ busybox-1.1.0-cryptpw/loginutils/passwd.c   2006-01-18 14:40:25.000000000 -0700 
     1481@@ -21,16 +21,6 @@ 
     1482 static void set_filesize_limit(int blocks); 
     1483  
     1484  
     1485-static int get_algo(char *a) 
     1486-{ 
     1487-       int x = 1;                                      /* standard: MD5 */ 
     1488- 
     1489-       if (strcasecmp(a, "des") == 0) 
     1490-               x = 0; 
     1491-       return x; 
     1492-} 
     1493- 
     1494- 
     1495 static int update_passwd(const struct passwd *pw, const char *crypt_pw) 
     1496 { 
     1497        char filename[1024]; 
     1498@@ -286,35 +276,6 @@ 
     1499        return 0; 
     1500 } 
     1501  
     1502-static int i64c(int i) 
     1503-{ 
     1504-       if (i <= 0) 
     1505-               return ('.'); 
     1506-       if (i == 1) 
     1507-               return ('/'); 
     1508-       if (i >= 2 && i < 12) 
     1509-               return ('0' - 2 + i); 
     1510-       if (i >= 12 && i < 38) 
     1511-               return ('A' - 12 + i); 
     1512-       if (i >= 38 && i < 63) 
     1513-               return ('a' - 38 + i); 
     1514-       return ('z'); 
     1515-} 
     1516- 
     1517-static char *crypt_make_salt(void) 
     1518-{ 
     1519-       time_t now; 
     1520-       static unsigned long x; 
     1521-       static char result[3]; 
     1522- 
     1523-       time(&now); 
     1524-       x += now + getpid() + clock(); 
     1525-       result[0] = i64c(((x >> 18) ^ (x >> 6)) & 077); 
     1526-       result[1] = i64c(((x >> 12) ^ x) & 077); 
     1527-       result[2] = '\0'; 
     1528-       return result; 
     1529-} 
     1530- 
     1531  
     1532 static int new_password(const struct passwd *pw, int amroot, int algo) 
     1533 { 
     1534Files busybox-1.1.0/scripts/config/conf and busybox-1.1.0-cryptpw/scripts/config/conf differ 
     1535Files busybox-1.1.0/scripts/config/conf.o and busybox-1.1.0-cryptpw/scripts/config/conf.o differ 
     1536diff -urN busybox-1.1.0/scripts/config/lex.zconf.c busybox-1.1.0-cryptpw/scripts/config/lex.zconf.c 
     1537--- busybox-1.1.0/scripts/config/lex.zconf.c    1969-12-31 17:00:00.000000000 -0700 
     1538+++ busybox-1.1.0-cryptpw/scripts/config/lex.zconf.c    2006-01-18 14:40:37.000000000 -0700 
     1539@@ -0,0 +1,3688 @@ 
     1540+ 
     1541+#line 3 "lex.zconf.c" 
     1542+ 
     1543+#define  YY_INT_ALIGNED short int 
     1544+ 
     1545+/* A lexical scanner generated by flex */ 
     1546+ 
     1547+#define FLEX_SCANNER 
     1548+#define YY_FLEX_MAJOR_VERSION 2 
     1549+#define YY_FLEX_MINOR_VERSION 5 
     1550+#define YY_FLEX_SUBMINOR_VERSION 31 
     1551+#if YY_FLEX_SUBMINOR_VERSION > 0 
     1552+#define FLEX_BETA 
     1553+#endif 
     1554+ 
     1555+/* First, we deal with  platform-specific or compiler-specific issues. */ 
     1556+ 
     1557+/* begin standard C headers. */ 
     1558+#include <stdio.h> 
     1559+#include <string.h> 
     1560+#include <errno.h> 
     1561+#include <stdlib.h> 
     1562+ 
     1563+/* end standard C headers. */ 
     1564+ 
     1565+/* flex integer type definitions */ 
     1566+ 
     1567+#ifndef FLEXINT_H 
     1568+#define FLEXINT_H 
     1569+ 
     1570+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 
     1571+ 
     1572+#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L 
     1573+#include <inttypes.h> 
     1574+typedef int8_t flex_int8_t; 
     1575+typedef uint8_t flex_uint8_t; 
     1576+typedef int16_t flex_int16_t; 
     1577+typedef uint16_t flex_uint16_t; 
     1578+typedef int32_t flex_int32_t; 
     1579+typedef uint32_t flex_uint32_t; 
     1580+#else 
     1581+typedef signed char flex_int8_t; 
     1582+typedef short int flex_int16_t; 
     1583+typedef int flex_int32_t; 
     1584+typedef unsigned char flex_uint8_t; 
     1585+typedef unsigned short int flex_uint16_t; 
     1586+typedef unsigned int flex_uint32_t; 
     1587+#endif /* ! C99 */ 
     1588+ 
     1589+/* Limits of integral types. */ 
     1590+#ifndef INT8_MIN 
     1591+#define INT8_MIN               (-128) 
     1592+#endif 
     1593+#ifndef INT16_MIN 
     1594+#define INT16_MIN              (-32767-1) 
     1595+#endif 
     1596+#ifndef INT32_MIN 
     1597+#define INT32_MIN              (-2147483647-1) 
     1598+#endif 
     1599+#ifndef INT8_MAX 
     1600+#define INT8_MAX               (127) 
     1601+#endif 
     1602+#ifndef INT16_MAX 
     1603+#define INT16_MAX              (32767) 
     1604+#endif 
     1605+#ifndef INT32_MAX 
     1606+#define INT32_MAX              (2147483647) 
     1607+#endif 
     1608+#ifndef UINT8_MAX 
     1609+#define UINT8_MAX              (255U) 
     1610+#endif 
     1611+#ifndef UINT16_MAX 
     1612+#define UINT16_MAX             (65535U) 
     1613+#endif 
     1614+#ifndef UINT32_MAX 
     1615+#define UINT32_MAX             (4294967295U) 
     1616+#endif 
     1617+ 
     1618+#endif /* ! FLEXINT_H */ 
     1619+ 
     1620+#ifdef __cplusplus 
     1621+ 
     1622+/* The "const" storage-class-modifier is valid. */ 
     1623+#define YY_USE_CONST 
     1624+ 
     1625+#else  /* ! __cplusplus */ 
     1626+ 
     1627+#if __STDC__ 
     1628+ 
     1629+#define YY_USE_CONST 
     1630+ 
     1631+#endif /* __STDC__ */ 
     1632+#endif /* ! __cplusplus */ 
     1633+ 
     1634+#ifdef YY_USE_CONST 
     1635+#define yyconst const 
     1636+#else 
     1637+#define yyconst 
     1638+#endif 
     1639+ 
     1640+/* Returned upon end-of-file. */ 
     1641+#define YY_NULL 0 
     1642+ 
     1643+/* Promotes a possibly negative, possibly signed char to an unsigned 
     1644+ * integer for use as an array index.  If the signed char is negative, 
     1645+ * we want to instead treat it as an 8-bit unsigned char, hence the 
     1646+ * double cast. 
     1647+ */ 
     1648+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 
     1649+ 
     1650+/* Enter a start condition.  This macro really ought to take a parameter, 
     1651+ * but we do it the disgusting crufty way forced on us by the ()-less 
     1652+ * definition of BEGIN. 
     1653+ */ 
     1654+#define BEGIN (yy_start) = 1 + 2 * 
     1655+ 
     1656+/* Translate the current start state into a value that can be later handed 
     1657+ * to BEGIN to return to the state.  The YYSTATE alias is for lex 
     1658+ * compatibility. 
     1659+ */ 
     1660+#define YY_START (((yy_start) - 1) / 2) 
     1661+#define YYSTATE YY_START 
     1662+ 
     1663+/* Action number for EOF rule of a given start state. */ 
     1664+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 
     1665+ 
     1666+/* Special action meaning "start processing a new file". */ 
     1667+#define YY_NEW_FILE zconfrestart(zconfin  ) 
     1668+ 
     1669+#define YY_END_OF_BUFFER_CHAR 0 
     1670+ 
     1671+/* Size of default input buffer. */ 
     1672+#ifndef YY_BUF_SIZE 
     1673+#define YY_BUF_SIZE 16384 
     1674+#endif 
     1675+ 
     1676+#ifndef YY_TYPEDEF_YY_BUFFER_STATE 
     1677+#define YY_TYPEDEF_YY_BUFFER_STATE 
     1678+typedef struct yy_buffer_state *YY_BUFFER_STATE; 
     1679+#endif 
     1680+ 
     1681+extern int zconfleng; 
     1682+ 
     1683+extern FILE *zconfin, *zconfout; 
     1684+ 
     1685+#define EOB_ACT_CONTINUE_SCAN 0 
     1686+#define EOB_ACT_END_OF_FILE 1 
     1687+#define EOB_ACT_LAST_MATCH 2 
     1688+ 
     1689+    #define YY_LESS_LINENO(n) 
     1690+ 
     1691+/* Return all but the first "n" matched characters back to the input stream. */ 
     1692+#define yyless(n) \ 
     1693+       do \ 
     1694+               { \ 
     1695+               /* Undo effects of setting up zconftext. */ \ 
     1696+        int yyless_macro_arg = (n); \ 
     1697+        YY_LESS_LINENO(yyless_macro_arg);\ 
     1698+               *yy_cp = (yy_hold_char); \ 
     1699+               YY_RESTORE_YY_MORE_OFFSET \ 
     1700+               (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 
     1701+               YY_DO_BEFORE_ACTION; /* set up zconftext again */ \ 
     1702+               } \ 
     1703+       while ( 0 ) 
     1704+ 
     1705+#define unput(c) yyunput( c, (yytext_ptr)  ) 
     1706+ 
     1707+/* The following is because we cannot portably get our hands on size_t 
     1708+ * (without autoconf's help, which isn't available because we want 
     1709+ * flex-generated scanners to compile on their own). 
     1710+ */ 
     1711+ 
     1712+#ifndef YY_TYPEDEF_YY_SIZE_T 
     1713+#define YY_TYPEDEF_YY_SIZE_T 
     1714+typedef unsigned int yy_size_t; 
     1715+#endif 
     1716+ 
     1717+#ifndef YY_STRUCT_YY_BUFFER_STATE 
     1718+#define YY_STRUCT_YY_BUFFER_STATE 
     1719+struct yy_buffer_state 
     1720+       { 
     1721+       FILE *yy_input_file; 
     1722+ 
     1723+       char *yy_ch_buf;                /* input buffer */ 
     1724+       char *yy_buf_pos;               /* current position in input buffer */ 
     1725+ 
     1726+       /* Size of input buffer in bytes, not including room for EOB 
     1727+        * characters. 
     1728+        */ 
     1729+       yy_size_t yy_buf_size; 
     1730+ 
     1731+       /* Number of characters read into yy_ch_buf, not including EOB 
     1732+        * characters. 
     1733+        */ 
     1734+       int yy_n_chars; 
     1735+ 
     1736+       /* Whether we "own" the buffer - i.e., we know we created it, 
     1737+        * and can realloc() it to grow it, and should free() it to 
     1738+        * delete it. 
     1739+        */ 
     1740+       int yy_is_our_buffer; 
     1741+ 
     1742+       /* Whether this is an "interactive" input source; if so, and 
     1743+        * if we're using stdio for input, then we want to use getc() 
     1744+        * instead of fread(), to make sure we stop fetching input after 
     1745+        * each newline. 
     1746+        */ 
     1747+       int yy_is_interactive; 
     1748+ 
     1749+       /* Whether we're considered to be at the beginning of a line. 
     1750+        * If so, '^' rules will be active on the next match, otherwise 
     1751+        * not. 
     1752+        */ 
     1753+       int yy_at_bol; 
     1754+ 
     1755+    int yy_bs_lineno; /**< The line count. */ 
     1756+    int yy_bs_column; /**< The column count. */ 
     1757+ 
     1758+       /* Whether to try to fill the input buffer when we reach the 
     1759+        * end of it. 
     1760+        */ 
     1761+       int yy_fill_buffer; 
     1762+ 
     1763+       int yy_buffer_status; 
     1764+ 
     1765+#define YY_BUFFER_NEW 0 
     1766+#define YY_BUFFER_NORMAL 1 
     1767+       /* When an EOF's been seen but there's still some text to process 
     1768+        * then we mark the buffer as YY_EOF_PENDING, to indicate that we 
     1769+        * shouldn't try reading from the input source any more.  We might 
     1770+        * still have a bunch of tokens to match, though, because of 
     1771+        * possible backing-up. 
     1772+        * 
     1773+        * When we actually see the EOF, we change the status to "new" 
     1774+        * (via zconfrestart()), so that the user can continue scanning by 
     1775+        * just pointing zconfin at a new input file. 
     1776+        */ 
     1777+#define YY_BUFFER_EOF_PENDING 2 
     1778+ 
     1779+       }; 
     1780+#endif /* !YY_STRUCT_YY_BUFFER_STATE */ 
     1781+ 
     1782+/* Stack of input buffers. */ 
     1783+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ 
     1784+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ 
     1785+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ 
     1786+ 
     1787+/* We provide macros for accessing buffer states in case in the 
     1788+ * future we want to put the buffer states in a more general 
     1789+ * "scanner state". 
     1790+ * 
     1791+ * Returns the top of the stack, or NULL. 
     1792+ */ 
     1793+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 
     1794+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 
     1795+                          : NULL) 
     1796+ 
     1797+/* Same as previous macro, but useful when we know that the buffer stack is not 
     1798+ * NULL or when we need an lvalue. For internal use only. 
     1799+ */ 
     1800+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 
     1801+ 
     1802+/* yy_hold_char holds the character lost when zconftext is formed. */ 
     1803+static char yy_hold_char; 
     1804+static int yy_n_chars;         /* number of characters read into yy_ch_buf */ 
     1805+int zconfleng; 
     1806+ 
     1807+/* Points to current character in buffer. */ 
     1808+static char *yy_c_buf_p = (char *) 0; 
     1809+static int yy_init = 1;                /* whether we need to initialize */ 
     1810+static int yy_start = 0;       /* start state number */ 
     1811+ 
     1812+/* Flag which is used to allow zconfwrap()'s to do buffer switches 
     1813+ * instead of setting up a fresh zconfin.  A bit of a hack ... 
     1814+ */ 
     1815+static int yy_did_buffer_switch_on_eof; 
     1816+ 
     1817+void zconfrestart (FILE *input_file  ); 
     1818+void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer  ); 
     1819+YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size  ); 
     1820+void zconf_delete_buffer (YY_BUFFER_STATE b  ); 
     1821+void zconf_flush_buffer (YY_BUFFER_STATE b  ); 
     1822+void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer  ); 
     1823+void zconfpop_buffer_state (void ); 
     1824+ 
     1825+static void zconfensure_buffer_stack (void ); 
     1826+static void zconf_load_buffer_state (void ); 
     1827+static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file  ); 
     1828+ 
     1829+#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER ) 
     1830+ 
     1831+YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size  ); 
     1832+YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str  ); 
     1833+YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len  ); 
     1834+ 
     1835+void *zconfalloc (yy_size_t  ); 
     1836+void *zconfrealloc (void *,yy_size_t  ); 
     1837+void zconffree (void *  ); 
     1838+ 
     1839+#define yy_new_buffer zconf_create_buffer 
     1840+ 
     1841+#define yy_set_interactive(is_interactive) \ 
     1842+       { \ 
     1843+       if ( ! YY_CURRENT_BUFFER ){ \ 
     1844+        zconfensure_buffer_stack (); \ 
     1845+               YY_CURRENT_BUFFER_LVALUE =    \ 
     1846+            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \ 
     1847+       } \ 
     1848+       YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 
     1849+       } 
     1850+ 
     1851+#define yy_set_bol(at_bol) \ 
     1852+       { \ 
     1853+       if ( ! YY_CURRENT_BUFFER ){\ 
     1854+        zconfensure_buffer_stack (); \ 
     1855+               YY_CURRENT_BUFFER_LVALUE =    \ 
     1856+            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \ 
     1857+       } \ 
     1858+       YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 
     1859+       } 
     1860+ 
     1861+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 
     1862+ 
     1863+/* Begin user sect3 */ 
     1864+ 
     1865+#define zconfwrap(n) 1 
     1866+#define YY_SKIP_YYWRAP 
     1867+ 
     1868+typedef unsigned char YY_CHAR; 
     1869+ 
     1870+FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0; 
     1871+ 
     1872+typedef int yy_state_type; 
     1873+ 
     1874+extern int zconflineno; 
     1875+ 
     1876+int zconflineno = 1; 
     1877+ 
     1878+extern char *zconftext; 
     1879+#define yytext_ptr zconftext 
     1880+static yyconst flex_int16_t yy_nxt[][38] = 
     1881+    { 
     1882+    { 
     1883+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     1884+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     1885+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     1886+        0,    0,    0,    0,    0,    0,    0,    0 
     1887+    }, 
     1888+ 
     1889+    { 
     1890+       11,   12,   13,   14,   12,   12,   15,   12,   12,   12, 
     1891+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12, 
     1892+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12, 
     1893+       12,   12,   12,   12,   12,   12,   12,   12 
     1894+    }, 
     1895+ 
     1896+    { 
     1897+       11,   12,   13,   14,   12,   12,   15,   12,   12,   12, 
     1898+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12, 
     1899+ 
     1900+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12, 
     1901+       12,   12,   12,   12,   12,   12,   12,   12 
     1902+    }, 
     1903+ 
     1904+    { 
     1905+       11,   16,   16,   17,   16,   16,   16,   16,   16,   16, 
     1906+       16,   16,   16,   18,   16,   16,   18,   18,   19,   20, 
     1907+       21,   22,   18,   18,   23,   24,   18,   25,   18,   26, 
     1908+       27,   18,   28,   29,   30,   18,   18,   16 
     1909+    }, 
     1910+ 
     1911+    { 
     1912+       11,   16,   16,   17,   16,   16,   16,   16,   16,   16, 
     1913+       16,   16,   16,   18,   16,   16,   18,   18,   19,   20, 
     1914+       21,   22,   18,   18,   23,   24,   18,   25,   18,   26, 
     1915+       27,   18,   28,   29,   30,   18,   18,   16 
     1916+ 
     1917+    }, 
     1918+ 
     1919+    { 
     1920+       11,   31,   32,   33,   31,   31,   31,   31,   31,   31, 
     1921+       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     1922+       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     1923+       31,   31,   31,   31,   31,   31,   31,   31 
     1924+    }, 
     1925+ 
     1926+    { 
     1927+       11,   31,   32,   33,   31,   31,   31,   31,   31,   31, 
     1928+       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     1929+       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     1930+       31,   31,   31,   31,   31,   31,   31,   31 
     1931+    }, 
     1932+ 
     1933+    { 
     1934+       11,   34,   34,   35,   34,   36,   34,   34,   36,   34, 
     1935+       34,   34,   34,   34,   34,   37,   34,   34,   34,   34, 
     1936+ 
     1937+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34, 
     1938+       34,   34,   34,   34,   34,   34,   34,   34 
     1939+    }, 
     1940+ 
     1941+    { 
     1942+       11,   34,   34,   35,   34,   36,   34,   34,   36,   34, 
     1943+       34,   34,   34,   34,   34,   37,   34,   34,   34,   34, 
     1944+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34, 
     1945+       34,   34,   34,   34,   34,   34,   34,   34 
     1946+    }, 
     1947+ 
     1948+    { 
     1949+       11,   38,   38,   39,   40,   41,   42,   43,   41,   44, 
     1950+       45,   46,   47,   47,   48,   49,   47,   47,   47,   47, 
     1951+       47,   47,   47,   47,   47,   50,   47,   47,   47,   51, 
     1952+       47,   47,   47,   47,   47,   47,   47,   52 
     1953+ 
     1954+    }, 
     1955+ 
     1956+    { 
     1957+       11,   38,   38,   39,   40,   41,   42,   43,   41,   44, 
     1958+       45,   46,   47,   47,   48,   49,   47,   47,   47,   47, 
     1959+       47,   47,   47,   47,   47,   50,   47,   47,   47,   51, 
     1960+       47,   47,   47,   47,   47,   47,   47,   52 
     1961+    }, 
     1962+ 
     1963+    { 
     1964+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11, 
     1965+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11, 
     1966+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11, 
     1967+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11 
     1968+    }, 
     1969+ 
     1970+    { 
     1971+       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
     1972+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
     1973+ 
     1974+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
     1975+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12 
     1976+    }, 
     1977+ 
     1978+    { 
     1979+       11,  -13,   53,   54,  -13,  -13,   55,  -13,  -13,  -13, 
     1980+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
     1981+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
     1982+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13 
     1983+    }, 
     1984+ 
     1985+    { 
     1986+       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     1987+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     1988+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     1989+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14 
     1990+ 
     1991+    }, 
     1992+ 
     1993+    { 
     1994+       11,   56,   56,   57,   56,   56,   56,   56,   56,   56, 
     1995+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56, 
     1996+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56, 
     1997+       56,   56,   56,   56,   56,   56,   56,   56 
     1998+    }, 
     1999+ 
     2000+    { 
     2001+       11,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
     2002+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
     2003+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
     2004+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16 
     2005+    }, 
     2006+ 
     2007+    { 
     2008+       11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
     2009+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
     2010+ 
     2011+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
     2012+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17 
     2013+    }, 
     2014+ 
     2015+    { 
     2016+       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
     2017+      -18,  -18,  -18,   58,  -18,  -18,   58,   58,   58,   58, 
     2018+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2019+       58,   58,   58,   58,   58,   58,   58,  -18 
     2020+    }, 
     2021+ 
     2022+    { 
     2023+       11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     2024+      -19,  -19,  -19,   58,  -19,  -19,   58,   58,   58,   58, 
     2025+       58,   58,   58,   58,   58,   58,   58,   58,   58,   59, 
     2026+       58,   58,   58,   58,   58,   58,   58,  -19 
     2027+ 
     2028+    }, 
     2029+ 
     2030+    { 
     2031+       11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
     2032+      -20,  -20,  -20,   58,  -20,  -20,   58,   58,   58,   58, 
     2033+       58,   58,   58,   58,   60,   58,   58,   58,   58,   61, 
     2034+       58,   58,   58,   58,   58,   58,   58,  -20 
     2035+    }, 
     2036+ 
     2037+    { 
     2038+       11,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
     2039+      -21,  -21,  -21,   58,  -21,  -21,   58,   58,   58,   58, 
     2040+       58,   62,   58,   58,   58,   58,   58,   58,   58,   58, 
     2041+       58,   58,   58,   58,   58,   58,   58,  -21 
     2042+    }, 
     2043+ 
     2044+    { 
     2045+       11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
     2046+      -22,  -22,  -22,   58,  -22,  -22,   58,   58,   58,   58, 
     2047+ 
     2048+       58,   58,   58,   58,   58,   58,   58,   58,   63,   58, 
     2049+       58,   58,   58,   58,   58,   58,   58,  -22 
     2050+    }, 
     2051+ 
     2052+    { 
     2053+       11,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     2054+      -23,  -23,  -23,   58,  -23,  -23,   58,   58,   58,   58, 
     2055+       58,   64,   58,   58,   58,   58,   58,   58,   58,   58, 
     2056+       58,   58,   58,   58,   58,   58,   58,  -23 
     2057+    }, 
     2058+ 
     2059+    { 
     2060+       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
     2061+      -24,  -24,  -24,   58,  -24,  -24,   58,   58,   58,   58, 
     2062+       58,   58,   65,   58,   58,   58,   58,   58,   66,   58, 
     2063+       58,   58,   58,   58,   58,   58,   58,  -24 
     2064+ 
     2065+    }, 
     2066+ 
     2067+    { 
     2068+       11,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
     2069+      -25,  -25,  -25,   58,  -25,  -25,   58,   67,   58,   58, 
     2070+       58,   68,   58,   58,   58,   58,   58,   58,   58,   58, 
     2071+       58,   58,   58,   58,   58,   58,   58,  -25 
     2072+    }, 
     2073+ 
     2074+    { 
     2075+       11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     2076+      -26,  -26,  -26,   58,  -26,  -26,   58,   58,   58,   58, 
     2077+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2078+       69,   58,   58,   58,   58,   58,   58,  -26 
     2079+    }, 
     2080+ 
     2081+    { 
     2082+       11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27, 
     2083+      -27,  -27,  -27,   58,  -27,  -27,   58,   58,   58,   58, 
     2084+ 
     2085+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2086+       58,   58,   70,   58,   58,   58,   58,  -27 
     2087+    }, 
     2088+ 
     2089+    { 
     2090+       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
     2091+      -28,  -28,  -28,   58,  -28,  -28,   58,   71,   58,   58, 
     2092+       58,   72,   58,   58,   58,   58,   58,   58,   58,   58, 
     2093+       58,   58,   58,   58,   58,   58,   58,  -28 
     2094+    }, 
     2095+ 
     2096+    { 
     2097+       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
     2098+      -29,  -29,  -29,   58,  -29,  -29,   58,   58,   58,   58, 
     2099+       58,   73,   58,   58,   58,   58,   58,   58,   58,   74, 
     2100+       58,   58,   58,   58,   75,   58,   58,  -29 
     2101+ 
     2102+    }, 
     2103+ 
     2104+    { 
     2105+       11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30, 
     2106+      -30,  -30,  -30,   58,  -30,  -30,   58,   58,   58,   58, 
     2107+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2108+       58,   58,   76,   58,   58,   58,   58,  -30 
     2109+    }, 
     2110+ 
     2111+    { 
     2112+       11,   77,   77,  -31,   77,   77,   77,   77,   77,   77, 
     2113+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77, 
     2114+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77, 
     2115+       77,   77,   77,   77,   77,   77,   77,   77 
     2116+    }, 
     2117+ 
     2118+    { 
     2119+       11,  -32,   78,   79,  -32,  -32,  -32,  -32,  -32,  -32, 
     2120+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     2121+ 
     2122+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     2123+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32 
     2124+    }, 
     2125+ 
     2126+    { 
     2127+       11,   80,  -33,  -33,   80,   80,   80,   80,   80,   80, 
     2128+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80, 
     2129+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80, 
     2130+       80,   80,   80,   80,   80,   80,   80,   80 
     2131+    }, 
     2132+ 
     2133+    { 
     2134+       11,   81,   81,   82,   81,  -34,   81,   81,  -34,   81, 
     2135+       81,   81,   81,   81,   81,  -34,   81,   81,   81,   81, 
     2136+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81, 
     2137+       81,   81,   81,   81,   81,   81,   81,   81 
     2138+ 
     2139+    }, 
     2140+ 
     2141+    { 
     2142+       11,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
     2143+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
     2144+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
     2145+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35 
     2146+    }, 
     2147+ 
     2148+    { 
     2149+       11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
     2150+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
     2151+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
     2152+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36 
     2153+    }, 
     2154+ 
     2155+    { 
     2156+       11,   83,   83,   84,   83,   83,   83,   83,   83,   83, 
     2157+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83, 
     2158+ 
     2159+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83, 
     2160+       83,   83,   83,   83,   83,   83,   83,   83 
     2161+    }, 
     2162+ 
     2163+    { 
     2164+       11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38, 
     2165+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38, 
     2166+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38, 
     2167+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38 
     2168+    }, 
     2169+ 
     2170+    { 
     2171+       11,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39, 
     2172+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39, 
     2173+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39, 
     2174+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39 
     2175+ 
     2176+    }, 
     2177+ 
     2178+    { 
     2179+       11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40, 
     2180+      -40,  -40,  -40,  -40,   85,  -40,  -40,  -40,  -40,  -40, 
     2181+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40, 
     2182+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40 
     2183+    }, 
     2184+ 
     2185+    { 
     2186+       11,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41, 
     2187+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41, 
     2188+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41, 
     2189+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41 
     2190+    }, 
     2191+ 
     2192+    { 
     2193+       11,   86,   86,  -42,   86,   86,   86,   86,   86,   86, 
     2194+       86,   86,   86,   86,   86,   86,   86,   86,   86,   86, 
     2195+ 
     2196+       86,   86,   86,   86,   86,   86,   86,   86,   86,   86, 
     2197+       86,   86,   86,   86,   86,   86,   86,   86 
     2198+    }, 
     2199+ 
     2200+    { 
     2201+       11,  -43,  -43,  -43,  -43,  -43,  -43,   87,  -43,  -43, 
     2202+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43, 
     2203+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43, 
     2204+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43 
     2205+    }, 
     2206+ 
     2207+    { 
     2208+       11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44, 
     2209+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44, 
     2210+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44, 
     2211+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44 
     2212+ 
     2213+    }, 
     2214+ 
     2215+    { 
     2216+       11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45, 
     2217+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45, 
     2218+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45, 
     2219+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45 
     2220+    }, 
     2221+ 
     2222+    { 
     2223+       11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46, 
     2224+      -46,   88,   89,   89,  -46,  -46,   89,   89,   89,   89, 
     2225+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89, 
     2226+       89,   89,   89,   89,   89,   89,   89,  -46 
     2227+    }, 
     2228+ 
     2229+    { 
     2230+       11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47, 
     2231+      -47,   89,   89,   89,  -47,  -47,   89,   89,   89,   89, 
     2232+ 
     2233+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89, 
     2234+       89,   89,   89,   89,   89,   89,   89,  -47 
     2235+    }, 
     2236+ 
     2237+    { 
     2238+       11,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48, 
     2239+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48, 
     2240+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48, 
     2241+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48 
     2242+    }, 
     2243+ 
     2244+    { 
     2245+       11,  -49,  -49,   90,  -49,  -49,  -49,  -49,  -49,  -49, 
     2246+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49, 
     2247+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49, 
     2248+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49 
     2249+ 
     2250+    }, 
     2251+ 
     2252+    { 
     2253+       11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50, 
     2254+      -50,   89,   89,   89,  -50,  -50,   89,   89,   89,   89, 
     2255+       89,   89,   91,   89,   89,   89,   89,   89,   89,   89, 
     2256+       89,   89,   89,   89,   89,   89,   89,  -50 
     2257+    }, 
     2258+ 
     2259+    { 
     2260+       11,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51, 
     2261+      -51,   89,   89,   89,  -51,  -51,   89,   89,   89,   89, 
     2262+       89,   89,   89,   89,   89,   89,   89,   89,   92,   89, 
     2263+       89,   89,   89,   89,   89,   89,   89,  -51 
     2264+    }, 
     2265+ 
     2266+    { 
     2267+       11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52, 
     2268+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52, 
     2269+ 
     2270+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52, 
     2271+      -52,  -52,  -52,  -52,  -52,  -52,  -52,   93 
     2272+    }, 
     2273+ 
     2274+    { 
     2275+       11,  -53,   53,   54,  -53,  -53,   55,  -53,  -53,  -53, 
     2276+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53, 
     2277+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53, 
     2278+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53 
     2279+    }, 
     2280+ 
     2281+    { 
     2282+       11,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54, 
     2283+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54, 
     2284+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54, 
     2285+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54 
     2286+ 
     2287+    }, 
     2288+ 
     2289+    { 
     2290+       11,   56,   56,   57,   56,   56,   56,   56,   56,   56, 
     2291+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56, 
     2292+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56, 
     2293+       56,   56,   56,   56,   56,   56,   56,   56 
     2294+    }, 
     2295+ 
     2296+    { 
     2297+       11,   56,   56,   57,   56,   56,   56,   56,   56,   56, 
     2298+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56, 
     2299+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56, 
     2300+       56,   56,   56,   56,   56,   56,   56,   56 
     2301+    }, 
     2302+ 
     2303+    { 
     2304+       11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57, 
     2305+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57, 
     2306+ 
     2307+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57, 
     2308+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57 
     2309+    }, 
     2310+ 
     2311+    { 
     2312+       11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58, 
     2313+      -58,  -58,  -58,   58,  -58,  -58,   58,   58,   58,   58, 
     2314+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2315+       58,   58,   58,   58,   58,   58,   58,  -58 
     2316+    }, 
     2317+ 
     2318+    { 
     2319+       11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59, 
     2320+      -59,  -59,  -59,   58,  -59,  -59,   58,   58,   58,   58, 
     2321+       58,   58,   58,   58,   58,   58,   58,   58,   58,   94, 
     2322+       58,   58,   58,   58,   58,   58,   58,  -59 
     2323+ 
     2324+    }, 
     2325+ 
     2326+    { 
     2327+       11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60, 
     2328+      -60,  -60,  -60,   58,  -60,  -60,   58,   58,   58,   58, 
     2329+       58,   58,   58,   58,   58,   58,   58,   58,   58,   95, 
     2330+       58,   58,   58,   58,   58,   58,   58,  -60 
     2331+    }, 
     2332+ 
     2333+    { 
     2334+       11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61, 
     2335+      -61,  -61,  -61,   58,  -61,  -61,   58,   58,   58,   58, 
     2336+       58,   58,   58,   58,   58,   58,   58,   96,   97,   58, 
     2337+       58,   58,   58,   58,   58,   58,   58,  -61 
     2338+    }, 
     2339+ 
     2340+    { 
     2341+       11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62, 
     2342+      -62,  -62,  -62,   58,  -62,  -62,   58,   58,   58,   58, 
     2343+ 
     2344+       58,   58,   98,   58,   58,   58,   58,   58,   58,   58, 
     2345+       99,   58,   58,   58,   58,   58,   58,  -62 
     2346+    }, 
     2347+ 
     2348+    { 
     2349+       11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63, 
     2350+      -63,  -63,  -63,   58,  -63,  -63,   58,  100,   58,   58, 
     2351+      101,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2352+       58,   58,   58,   58,   58,   58,   58,  -63 
     2353+    }, 
     2354+ 
     2355+    { 
     2356+       11,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64, 
     2357+      -64,  -64,  -64,   58,  -64,  -64,   58,   58,   58,   58, 
     2358+       58,   58,   58,   58,   58,   58,  102,   58,   58,   58, 
     2359+       58,   58,   58,   58,   58,   58,  103,  -64 
     2360+ 
     2361+    }, 
     2362+ 
     2363+    { 
     2364+       11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65, 
     2365+      -65,  -65,  -65,   58,  -65,  -65,   58,   58,   58,   58, 
     2366+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2367+       58,   58,   58,   58,   58,   58,   58,  -65 
     2368+    }, 
     2369+ 
     2370+    { 
     2371+       11,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66, 
     2372+      -66,  -66,  -66,   58,  -66,  -66,   58,   58,   58,   58, 
     2373+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2374+       58,   58,   58,   58,  104,   58,   58,  -66 
     2375+    }, 
     2376+ 
     2377+    { 
     2378+       11,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67, 
     2379+      -67,  -67,  -67,   58,  -67,  -67,   58,   58,   58,   58, 
     2380+ 
     2381+       58,   58,   58,   58,   58,  105,   58,   58,   58,   58, 
     2382+       58,   58,   58,   58,   58,   58,   58,  -67 
     2383+    }, 
     2384+ 
     2385+    { 
     2386+       11,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68, 
     2387+      -68,  -68,  -68,   58,  -68,  -68,   58,   58,   58,   58, 
     2388+       58,   58,   58,   58,   58,   58,   58,   58,  106,   58, 
     2389+       58,   58,   58,   58,   58,   58,   58,  -68 
     2390+    }, 
     2391+ 
     2392+    { 
     2393+       11,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69, 
     2394+      -69,  -69,  -69,   58,  -69,  -69,   58,   58,   58,   58, 
     2395+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2396+       58,   58,   58,   58,  107,   58,   58,  -69 
     2397+ 
     2398+    }, 
     2399+ 
     2400+    { 
     2401+       11,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70, 
     2402+      -70,  -70,  -70,   58,  -70,  -70,   58,   58,   58,   58, 
     2403+       58,   58,   58,   58,   58,   58,   58,   58,   58,  108, 
     2404+       58,   58,   58,   58,   58,   58,   58,  -70 
     2405+    }, 
     2406+ 
     2407+    { 
     2408+       11,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71, 
     2409+      -71,  -71,  -71,   58,  -71,  -71,   58,   58,   58,   58, 
     2410+       58,   58,   58,   58,   58,   58,   58,   58,  109,   58, 
     2411+       58,   58,   58,   58,   58,   58,   58,  -71 
     2412+    }, 
     2413+ 
     2414+    { 
     2415+       11,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72, 
     2416+      -72,  -72,  -72,   58,  -72,  -72,   58,   58,   58,   58, 
     2417+ 
     2418+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2419+       58,  110,   58,   58,   58,   58,   58,  -72 
     2420+    }, 
     2421+ 
     2422+    { 
     2423+       11,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73, 
     2424+      -73,  -73,  -73,   58,  -73,  -73,   58,   58,   58,   58, 
     2425+       58,   58,   58,   58,   58,   58,  111,   58,   58,   58, 
     2426+       58,   58,   58,   58,   58,   58,   58,  -73 
     2427+    }, 
     2428+ 
     2429+    { 
     2430+       11,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74, 
     2431+      -74,  -74,  -74,   58,  -74,  -74,   58,   58,   58,   58, 
     2432+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2433+       58,   58,   58,   58,   58,  112,   58,  -74 
     2434+ 
     2435+    }, 
     2436+ 
     2437+    { 
     2438+       11,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75, 
     2439+      -75,  -75,  -75,   58,  -75,  -75,   58,   58,   58,   58, 
     2440+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2441+       58,   58,  113,   58,   58,   58,   58,  -75 
     2442+    }, 
     2443+ 
     2444+    { 
     2445+       11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76, 
     2446+      -76,  -76,  -76,   58,  -76,  -76,   58,   58,   58,   58, 
     2447+       58,   58,   58,   58,   58,  114,   58,   58,   58,   58, 
     2448+       58,   58,   58,   58,   58,   58,   58,  -76 
     2449+    }, 
     2450+ 
     2451+    { 
     2452+       11,   77,   77,  -77,   77,   77,   77,   77,   77,   77, 
     2453+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77, 
     2454+ 
     2455+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77, 
     2456+       77,   77,   77,   77,   77,   77,   77,   77 
     2457+    }, 
     2458+ 
     2459+    { 
     2460+       11,  -78,   78,   79,  -78,  -78,  -78,  -78,  -78,  -78, 
     2461+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78, 
     2462+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78, 
     2463+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78 
     2464+    }, 
     2465+ 
     2466+    { 
     2467+       11,   80,  -79,  -79,   80,   80,   80,   80,   80,   80, 
     2468+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80, 
     2469+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80, 
     2470+       80,   80,   80,   80,   80,   80,   80,   80 
     2471+ 
     2472+    }, 
     2473+ 
     2474+    { 
     2475+       11,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80, 
     2476+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80, 
     2477+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80, 
     2478+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80 
     2479+    }, 
     2480+ 
     2481+    { 
     2482+       11,   81,   81,   82,   81,  -81,   81,   81,  -81,   81, 
     2483+       81,   81,   81,   81,   81,  -81,   81,   81,   81,   81, 
     2484+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81, 
     2485+       81,   81,   81,   81,   81,   81,   81,   81 
     2486+    }, 
     2487+ 
     2488+    { 
     2489+       11,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82, 
     2490+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82, 
     2491+ 
     2492+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82, 
     2493+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82 
     2494+    }, 
     2495+ 
     2496+    { 
     2497+       11,  -83,  -83,   84,  -83,  -83,  -83,  -83,  -83,  -83, 
     2498+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83, 
     2499+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83, 
     2500+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83 
     2501+    }, 
     2502+ 
     2503+    { 
     2504+       11,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84, 
     2505+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84, 
     2506+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84, 
     2507+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84 
     2508+ 
     2509+    }, 
     2510+ 
     2511+    { 
     2512+       11,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85, 
     2513+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85, 
     2514+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85, 
     2515+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85 
     2516+    }, 
     2517+ 
     2518+    { 
     2519+       11,   86,   86,  -86,   86,   86,   86,   86,   86,   86, 
     2520+       86,   86,   86,   86,   86,   86,   86,   86,   86,   86, 
     2521+       86,   86,   86,   86,   86,   86,   86,   86,   86,   86, 
     2522+       86,   86,   86,   86,   86,   86,   86,   86 
     2523+    }, 
     2524+ 
     2525+    { 
     2526+       11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87, 
     2527+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87, 
     2528+ 
     2529+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87, 
     2530+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87 
     2531+    }, 
     2532+ 
     2533+    { 
     2534+       11,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88, 
     2535+      -88,  115,   89,   89,  -88,  -88,   89,   89,   89,   89, 
     2536+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89, 
     2537+       89,   89,   89,   89,   89,   89,   89,  -88 
     2538+    }, 
     2539+ 
     2540+    { 
     2541+       11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89, 
     2542+      -89,   89,   89,   89,  -89,  -89,   89,   89,   89,   89, 
     2543+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89, 
     2544+       89,   89,   89,   89,   89,   89,   89,  -89 
     2545+ 
     2546+    }, 
     2547+ 
     2548+    { 
     2549+       11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90, 
     2550+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90, 
     2551+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90, 
     2552+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90 
     2553+    }, 
     2554+ 
     2555+    { 
     2556+       11,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91, 
     2557+      -91,   89,   89,   89,  -91,  -91,   89,   89,   89,   89, 
     2558+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89, 
     2559+       89,   89,   89,   89,   89,   89,   89,  -91 
     2560+    }, 
     2561+ 
     2562+    { 
     2563+       11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92, 
     2564+      -92,   89,   89,   89,  -92,  -92,   89,   89,   89,   89, 
     2565+ 
     2566+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89, 
     2567+       89,   89,   89,   89,   89,   89,   89,  -92 
     2568+    }, 
     2569+ 
     2570+    { 
     2571+       11,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93, 
     2572+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93, 
     2573+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93, 
     2574+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93 
     2575+    }, 
     2576+ 
     2577+    { 
     2578+       11,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94, 
     2579+      -94,  -94,  -94,   58,  -94,  -94,   58,   58,   58,   58, 
     2580+       58,   58,   58,   58,   58,   58,  116,   58,   58,   58, 
     2581+       58,   58,   58,   58,   58,   58,   58,  -94 
     2582+ 
     2583+    }, 
     2584+ 
     2585+    { 
     2586+       11,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95, 
     2587+      -95,  -95,  -95,   58,  -95,  -95,   58,   58,   58,   58, 
     2588+       58,   58,   58,   58,   58,  117,   58,   58,   58,   58, 
     2589+       58,   58,   58,   58,   58,   58,   58,  -95 
     2590+    }, 
     2591+ 
     2592+    { 
     2593+       11,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96, 
     2594+      -96,  -96,  -96,   58,  -96,  -96,   58,   58,   58,   58, 
     2595+       58,   58,   58,   58,   58,   58,   58,  118,   58,   58, 
     2596+       58,   58,   58,   58,   58,   58,   58,  -96 
     2597+    }, 
     2598+ 
     2599+    { 
     2600+       11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97, 
     2601+      -97,  -97,  -97,   58,  -97,  -97,   58,   58,   58,   58, 
     2602+ 
     2603+       58,   58,  119,   58,   58,   58,   58,   58,   58,   58, 
     2604+       58,   58,   58,   58,   58,   58,   58,  -97 
     2605+    }, 
     2606+ 
     2607+    { 
     2608+       11,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98, 
     2609+      -98,  -98,  -98,   58,  -98,  -98,  120,  121,   58,   58, 
     2610+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2611+       58,   58,   58,   58,   58,   58,   58,  -98 
     2612+    }, 
     2613+ 
     2614+    { 
     2615+       11,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99, 
     2616+      -99,  -99,  -99,   58,  -99,  -99,   58,   58,   58,   58, 
     2617+       58,  122,   58,   58,   58,   58,   58,   58,   58,   58, 
     2618+       58,   58,   58,   58,   58,   58,   58,  -99 
     2619+ 
     2620+    }, 
     2621+ 
     2622+    { 
     2623+       11, -100, -100, -100, -100, -100, -100, -100, -100, -100, 
     2624+     -100, -100, -100,   58, -100, -100,   58,   58,  123,   58, 
     2625+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2626+       58,   58,   58,   58,   58,   58,   58, -100 
     2627+    }, 
     2628+ 
     2629+    { 
     2630+       11, -101, -101, -101, -101, -101, -101, -101, -101, -101, 
     2631+     -101, -101, -101,   58, -101, -101,   58,   58,   58,  124, 
     2632+       58,   58,   58,   58,   58,  125,   58,  126,   58,   58, 
     2633+       58,   58,   58,   58,   58,   58,   58, -101 
     2634+    }, 
     2635+ 
     2636+    { 
     2637+       11, -102, -102, -102, -102, -102, -102, -102, -102, -102, 
     2638+     -102, -102, -102,   58, -102, -102,   58,   58,   58,   58, 
     2639+ 
     2640+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2641+      127,   58,   58,   58,   58,   58,   58, -102 
     2642+    }, 
     2643+ 
     2644+    { 
     2645+       11, -103, -103, -103, -103, -103, -103, -103, -103, -103, 
     2646+     -103, -103, -103,   58, -103, -103,   58,   58,   58,   58, 
     2647+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2648+       58,   58,   58,   58,   58,   58,   58, -103 
     2649+    }, 
     2650+ 
     2651+    { 
     2652+       11, -104, -104, -104, -104, -104, -104, -104, -104, -104, 
     2653+     -104, -104, -104,   58, -104, -104,   58,   58,   58,   58, 
     2654+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2655+       58,   58,   58,   58,   58,   58,   58, -104 
     2656+ 
     2657+    }, 
     2658+ 
     2659+    { 
     2660+       11, -105, -105, -105, -105, -105, -105, -105, -105, -105, 
     2661+     -105, -105, -105,   58, -105, -105,   58,   58,   58,   58, 
     2662+       58,   58,   58,   58,   58,   58,   58,   58,  128,   58, 
     2663+       58,   58,   58,   58,   58,   58,   58, -105 
     2664+    }, 
     2665+ 
     2666+    { 
     2667+       11, -106, -106, -106, -106, -106, -106, -106, -106, -106, 
     2668+     -106, -106, -106,   58, -106, -106,   58,   58,   58,   58, 
     2669+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2670+       58,   58,   58,   58,   58,  129,   58, -106 
     2671+    }, 
     2672+ 
     2673+    { 
     2674+       11, -107, -107, -107, -107, -107, -107, -107, -107, -107, 
     2675+     -107, -107, -107,   58, -107, -107,   58,   58,   58,   58, 
     2676+ 
     2677+       58,   58,   58,   58,   58,  130,   58,   58,   58,   58, 
     2678+       58,   58,   58,   58,   58,   58,   58, -107 
     2679+    }, 
     2680+ 
     2681+    { 
     2682+       11, -108, -108, -108, -108, -108, -108, -108, -108, -108, 
     2683+     -108, -108, -108,   58, -108, -108,   58,   58,   58,   58, 
     2684+       58,   58,   58,   58,   58,   58,   58,  131,   58,   58, 
     2685+       58,   58,   58,   58,   58,   58,   58, -108 
     2686+    }, 
     2687+ 
     2688+    { 
     2689+       11, -109, -109, -109, -109, -109, -109, -109, -109, -109, 
     2690+     -109, -109, -109,   58, -109, -109,   58,   58,   58,   58, 
     2691+       58,   58,   58,  132,   58,   58,   58,   58,   58,   58, 
     2692+       58,   58,   58,   58,   58,   58,   58, -109 
     2693+ 
     2694+    }, 
     2695+ 
     2696+    { 
     2697+       11, -110, -110, -110, -110, -110, -110, -110, -110, -110, 
     2698+     -110, -110, -110,   58, -110, -110,   58,   58,   58,   58, 
     2699+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2700+       58,   58,   58,   58,   58,  133,   58, -110 
     2701+    }, 
     2702+ 
     2703+    { 
     2704+       11, -111, -111, -111, -111, -111, -111, -111, -111, -111, 
     2705+     -111, -111, -111,   58, -111, -111,   58,   58,   58,   58, 
     2706+       58,  134,   58,   58,   58,   58,   58,   58,   58,   58, 
     2707+       58,   58,   58,   58,   58,   58,   58, -111 
     2708+    }, 
     2709+ 
     2710+    { 
     2711+       11, -112, -112, -112, -112, -112, -112, -112, -112, -112, 
     2712+     -112, -112, -112,   58, -112, -112,   58,   58,   58,   58, 
     2713+ 
     2714+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2715+       58,   58,  135,   58,   58,   58,   58, -112 
     2716+    }, 
     2717+ 
     2718+    { 
     2719+       11, -113, -113, -113, -113, -113, -113, -113, -113, -113, 
     2720+     -113, -113, -113,   58, -113, -113,   58,   58,   58,   58, 
     2721+       58,   58,   58,   58,   58,  136,   58,   58,   58,   58, 
     2722+       58,   58,   58,   58,   58,   58,   58, -113 
     2723+    }, 
     2724+ 
     2725+    { 
     2726+       11, -114, -114, -114, -114, -114, -114, -114, -114, -114, 
     2727+     -114, -114, -114,   58, -114, -114,   58,   58,   58,   58, 
     2728+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2729+       58,   58,   58,  137,   58,   58,   58, -114 
     2730+ 
     2731+    }, 
     2732+ 
     2733+    { 
     2734+       11, -115, -115, -115, -115, -115, -115, -115, -115, -115, 
     2735+     -115,   89,   89,   89, -115, -115,   89,   89,   89,   89, 
     2736+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89, 
     2737+       89,   89,   89,   89,   89,   89,   89, -115 
     2738+    }, 
     2739+ 
     2740+    { 
     2741+       11, -116, -116, -116, -116, -116, -116, -116, -116, -116, 
     2742+     -116, -116, -116,   58, -116, -116,   58,   58,   58,   58, 
     2743+       58,  138,   58,   58,   58,   58,   58,   58,   58,   58, 
     2744+       58,   58,   58,   58,   58,   58,   58, -116 
     2745+    }, 
     2746+ 
     2747+    { 
     2748+       11, -117, -117, -117, -117, -117, -117, -117, -117, -117, 
     2749+     -117, -117, -117,   58, -117, -117,   58,   58,   58,  139, 
     2750+ 
     2751+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2752+       58,   58,   58,   58,   58,   58,   58, -117 
     2753+    }, 
     2754+ 
     2755+    { 
     2756+       11, -118, -118, -118, -118, -118, -118, -118, -118, -118, 
     2757+     -118, -118, -118,   58, -118, -118,   58,   58,   58,   58, 
     2758+       58,  140,   58,   58,   58,   58,   58,   58,   58,   58, 
     2759+       58,   58,   58,   58,   58,   58,   58, -118 
     2760+    }, 
     2761+ 
     2762+    { 
     2763+       11, -119, -119, -119, -119, -119, -119, -119, -119, -119, 
     2764+     -119, -119, -119,   58, -119, -119,   58,   58,   58,   58, 
     2765+       58,   58,   58,   58,   58,  141,   58,   58,   58,   58, 
     2766+       58,   58,   58,   58,   58,   58,   58, -119 
     2767+ 
     2768+    }, 
     2769+ 
     2770+    { 
     2771+       11, -120, -120, -120, -120, -120, -120, -120, -120, -120, 
     2772+     -120, -120, -120,   58, -120, -120,   58,   58,  142,   58, 
     2773+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2774+       58,   58,   58,   58,  143,   58,   58, -120 
     2775+    }, 
     2776+ 
     2777+    { 
     2778+       11, -121, -121, -121, -121, -121, -121, -121, -121, -121, 
     2779+     -121, -121, -121,   58, -121, -121,   58,   58,   58,   58, 
     2780+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2781+       58,   58,   58,   58,   58,  144,   58, -121 
     2782+    }, 
     2783+ 
     2784+    { 
     2785+       11, -122, -122, -122, -122, -122, -122, -122, -122, -122, 
     2786+     -122, -122, -122,   58, -122, -122,   58,   58,   58,   58, 
     2787+ 
     2788+       58,   58,   58,   58,   58,   58,   58,   58,  145,   58, 
     2789+       58,   58,   58,   58,   58,   58,   58, -122 
     2790+    }, 
     2791+ 
     2792+    { 
     2793+       11, -123, -123, -123, -123, -123, -123, -123, -123, -123, 
     2794+     -123, -123, -123,   58, -123, -123,   58,   58,   58,   58, 
     2795+       58,   58,   58,   58,   58,   58,  146,   58,   58,   58, 
     2796+       58,   58,   58,   58,   58,   58,   58, -123 
     2797+    }, 
     2798+ 
     2799+    { 
     2800+       11, -124, -124, -124, -124, -124, -124, -124, -124, -124, 
     2801+     -124, -124, -124,   58, -124, -124,   58,   58,   58,   58, 
     2802+       58,   58,   58,   58,  147,   58,   58,   58,   58,   58, 
     2803+       58,   58,   58,   58,   58,   58,   58, -124 
     2804+ 
     2805+    }, 
     2806+ 
     2807+    { 
     2808+       11, -125, -125, -125, -125, -125, -125, -125, -125, -125, 
     2809+     -125, -125, -125,   58, -125, -125,   58,   58,   58,   58, 
     2810+       58,   58,  148,   58,   58,   58,   58,   58,   58,   58, 
     2811+       58,   58,   58,   58,   58,   58,   58, -125 
     2812+    }, 
     2813+ 
     2814+    { 
     2815+       11, -126, -126, -126, -126, -126, -126, -126, -126, -126, 
     2816+     -126, -126, -126,   58, -126, -126,   58,   58,   58,   58, 
     2817+       58,  149,   58,   58,   58,   58,   58,   58,   58,   58, 
     2818+       58,   58,   58,   58,   58,   58,   58, -126 
     2819+    }, 
     2820+ 
     2821+    { 
     2822+       11, -127, -127, -127, -127, -127, -127, -127, -127, -127, 
     2823+     -127, -127, -127,   58, -127, -127,   58,   58,   58,   58, 
     2824+ 
     2825+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2826+       58,   58,   58,   58,   58,   58,   58, -127 
     2827+    }, 
     2828+ 
     2829+    { 
     2830+       11, -128, -128, -128, -128, -128, -128, -128, -128, -128, 
     2831+     -128, -128, -128,   58, -128, -128,   58,   58,   58,   58, 
     2832+       58,   58,   58,   58,   58,   58,   58,  150,   58,   58, 
     2833+       58,   58,   58,   58,   58,   58,   58, -128 
     2834+    }, 
     2835+ 
     2836+    { 
     2837+       11, -129, -129, -129, -129, -129, -129, -129, -129, -129, 
     2838+     -129, -129, -129,   58, -129, -129,   58,   58,   58,  151, 
     2839+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2840+       58,   58,   58,   58,   58,   58,   58, -129 
     2841+ 
     2842+    }, 
     2843+ 
     2844+    { 
     2845+       11, -130, -130, -130, -130, -130, -130, -130, -130, -130, 
     2846+     -130, -130, -130,   58, -130, -130,   58,   58,   58,   58, 
     2847+       58,   58,   58,   58,   58,   58,   58,   58,   58,  152, 
     2848+       58,   58,   58,   58,   58,   58,   58, -130 
     2849+    }, 
     2850+ 
     2851+    { 
     2852+       11, -131, -131, -131, -131, -131, -131, -131, -131, -131, 
     2853+     -131, -131, -131,   58, -131, -131,   58,   58,   58,   58, 
     2854+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2855+      153,   58,   58,   58,   58,   58,   58, -131 
     2856+    }, 
     2857+ 
     2858+    { 
     2859+       11, -132, -132, -132, -132, -132, -132, -132, -132, -132, 
     2860+     -132, -132, -132,   58, -132, -132,   58,   58,   58,   58, 
     2861+ 
     2862+       58,  154,   58,   58,   58,   58,   58,   58,   58,   58, 
     2863+       58,   58,   58,   58,   58,   58,   58, -132 
     2864+    }, 
     2865+ 
     2866+    { 
     2867+       11, -133, -133, -133, -133, -133, -133, -133, -133, -133, 
     2868+     -133, -133, -133,   58, -133, -133,   58,   58,   58,   58, 
     2869+       58,   58,   58,   58,   58,  155,   58,   58,   58,   58, 
     2870+       58,   58,   58,   58,   58,   58,   58, -133 
     2871+    }, 
     2872+ 
     2873+    { 
     2874+       11, -134, -134, -134, -134, -134, -134, -134, -134, -134, 
     2875+     -134, -134, -134,   58, -134, -134,   58,   58,   58,  156, 
     2876+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2877+       58,   58,   58,   58,   58,   58,   58, -134 
     2878+ 
     2879+    }, 
     2880+ 
     2881+    { 
     2882+       11, -135, -135, -135, -135, -135, -135, -135, -135, -135, 
     2883+     -135, -135, -135,   58, -135, -135,   58,   58,   58,  157, 
     2884+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2885+       58,   58,   58,   58,   58,   58,   58, -135 
     2886+    }, 
     2887+ 
     2888+    { 
     2889+       11, -136, -136, -136, -136, -136, -136, -136, -136, -136, 
     2890+     -136, -136, -136,   58, -136, -136,   58,   58,   58,   58, 
     2891+       58,   58,   58,   58,   58,   58,   58,   58,  158,   58, 
     2892+       58,   58,   58,   58,   58,   58,   58, -136 
     2893+    }, 
     2894+ 
     2895+    { 
     2896+       11, -137, -137, -137, -137, -137, -137, -137, -137, -137, 
     2897+     -137, -137, -137,   58, -137, -137,   58,   58,   58,   58, 
     2898+ 
     2899+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2900+       58,   58,   58,   58,  159,   58,   58, -137 
     2901+    }, 
     2902+ 
     2903+    { 
     2904+       11, -138, -138, -138, -138, -138, -138, -138, -138, -138, 
     2905+     -138, -138, -138,   58, -138, -138,   58,  160,   58,   58, 
     2906+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2907+       58,   58,   58,   58,   58,   58,   58, -138 
     2908+    }, 
     2909+ 
     2910+    { 
     2911+       11, -139, -139, -139, -139, -139, -139, -139, -139, -139, 
     2912+     -139, -139, -139,   58, -139, -139,   58,   58,   58,   58, 
     2913+       58,  161,   58,   58,   58,   58,   58,   58,   58,   58, 
     2914+       58,   58,   58,   58,   58,   58,   58, -139 
     2915+ 
     2916+    }, 
     2917+ 
     2918+    { 
     2919+       11, -140, -140, -140, -140, -140, -140, -140, -140, -140, 
     2920+     -140, -140, -140,   58, -140, -140,   58,   58,   58,   58, 
     2921+       58,   58,   58,   58,   58,   58,   58,   58,  162,   58, 
     2922+       58,   58,   58,   58,   58,   58,   58, -140 
     2923+    }, 
     2924+ 
     2925+    { 
     2926+       11, -141, -141, -141, -141, -141, -141, -141, -141, -141, 
     2927+     -141, -141, -141,   58, -141, -141,   58,   58,   58,   58, 
     2928+       58,   58,   58,  163,   58,   58,   58,   58,   58,   58, 
     2929+       58,   58,   58,   58,   58,   58,   58, -141 
     2930+    }, 
     2931+ 
     2932+    { 
     2933+       11, -142, -142, -142, -142, -142, -142, -142, -142, -142, 
     2934+     -142, -142, -142,   58, -142, -142,   58,   58,   58,   58, 
     2935+ 
     2936+       58,   58,   58,   58,   58,   58,   58,   58,   58,  164, 
     2937+       58,   58,   58,   58,   58,   58,   58, -142 
     2938+    }, 
     2939+ 
     2940+    { 
     2941+       11, -143, -143, -143, -143, -143, -143, -143, -143, -143, 
     2942+     -143, -143, -143,   58, -143, -143,   58,   58,   58,   58, 
     2943+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2944+       58,   58,  165,   58,   58,   58,   58, -143 
     2945+    }, 
     2946+ 
     2947+    { 
     2948+       11, -144, -144, -144, -144, -144, -144, -144, -144, -144, 
     2949+     -144, -144, -144,   58, -144, -144,   58,   58,   58,   58, 
     2950+       58,   58,   58,   58,   58,   58,  166,   58,   58,   58, 
     2951+       58,   58,   58,   58,   58,   58,   58, -144 
     2952+ 
     2953+    }, 
     2954+ 
     2955+    { 
     2956+       11, -145, -145, -145, -145, -145, -145, -145, -145, -145, 
     2957+     -145, -145, -145,   58, -145, -145,   58,   58,   58,   58, 
     2958+      167,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2959+       58,   58,   58,   58,   58,   58,   58, -145 
     2960+    }, 
     2961+ 
     2962+    { 
     2963+       11, -146, -146, -146, -146, -146, -146, -146, -146, -146, 
     2964+     -146, -146, -146,   58, -146, -146,   58,   58,   58,   58, 
     2965+       58,  168,   58,   58,   58,   58,   58,   58,   58,   58, 
     2966+       58,   58,   58,   58,   58,   58,   58, -146 
     2967+    }, 
     2968+ 
     2969+    { 
     2970+       11, -147, -147, -147, -147, -147, -147, -147, -147, -147, 
     2971+     -147, -147, -147,   58, -147, -147,   58,   58,   58,   58, 
     2972+ 
     2973+       58,   58,   58,   58,   58,   58,   58,   58,   58,  169, 
     2974+       58,   58,   58,   58,   58,   58,   58, -147 
     2975+    }, 
     2976+ 
     2977+    { 
     2978+       11, -148, -148, -148, -148, -148, -148, -148, -148, -148, 
     2979+     -148, -148, -148,   58, -148, -148,   58,   58,   58,   58, 
     2980+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     2981+       58,   58,   58,   58,   58,   58,   58, -148 
     2982+    }, 
     2983+ 
     2984+    { 
     2985+       11, -149, -149, -149, -149, -149, -149, -149, -149, -149, 
     2986+     -149, -149, -149,   58, -149, -149,   58,   58,   58,   58, 
     2987+       58,   58,   58,   58,   58,   58,   58,   58,  170,   58, 
     2988+       58,   58,   58,   58,   58,   58,   58, -149 
     2989+ 
     2990+    }, 
     2991+ 
     2992+    { 
     2993+       11, -150, -150, -150, -150, -150, -150, -150, -150, -150, 
     2994+     -150, -150, -150,   58, -150, -150,   58,   58,   58,   58, 
     2995+       58,  171,   58,   58,   58,   58,   58,   58,   58,   58, 
     2996+       58,   58,   58,   58,   58,   58,   58, -150 
     2997+    }, 
     2998+ 
     2999+    { 
     3000+       11, -151, -151, -151, -151, -151, -151, -151, -151, -151, 
     3001+     -151, -151, -151,   58, -151, -151,   58,   58,   58,   58, 
     3002+       58,   58,   58,   58,   58,   58,   58,   58,   58,  172, 
     3003+       58,   58,   58,   58,   58,   58,   58, -151 
     3004+    }, 
     3005+ 
     3006+    { 
     3007+       11, -152, -152, -152, -152, -152, -152, -152, -152, -152, 
     3008+     -152, -152, -152,   58, -152, -152,   58,   58,   58,   58, 
     3009+ 
     3010+       58,   58,   58,   58,   58,   58,   58,   58,  173,   58, 
     3011+       58,   58,   58,   58,   58,   58,   58, -152 
     3012+    }, 
     3013+ 
     3014+    { 
     3015+       11, -153, -153, -153, -153, -153, -153, -153, -153, -153, 
     3016+     -153, -153, -153,   58, -153, -153,   58,   58,   58,   58, 
     3017+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3018+       58,   58,   58,   58,  174,   58,   58, -153 
     3019+    }, 
     3020+ 
     3021+    { 
     3022+       11, -154, -154, -154, -154, -154, -154, -154, -154, -154, 
     3023+     -154, -154, -154,   58, -154, -154,   58,   58,   58,   58, 
     3024+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3025+       58,   58,   58,   58,   58,   58,   58, -154 
     3026+ 
     3027+    }, 
     3028+ 
     3029+    { 
     3030+       11, -155, -155, -155, -155, -155, -155, -155, -155, -155, 
     3031+     -155, -155, -155,   58, -155, -155,   58,   58,   58,   58, 
     3032+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3033+       58,   58,  175,   58,   58,   58,   58, -155 
     3034+    }, 
     3035+ 
     3036+    { 
     3037+       11, -156, -156, -156, -156, -156, -156, -156, -156, -156, 
     3038+     -156, -156, -156,   58, -156, -156,   58,   58,   58,   58, 
     3039+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3040+       58,   58,   58,   58,  176,   58,   58, -156 
     3041+    }, 
     3042+ 
     3043+    { 
     3044+       11, -157, -157, -157, -157, -157, -157, -157, -157, -157, 
     3045+     -157, -157, -157,   58, -157, -157,   58,   58,   58,   58, 
     3046+ 
     3047+       58,  177,   58,   58,   58,   58,   58,   58,   58,   58, 
     3048+       58,   58,   58,   58,   58,   58,   58, -157 
     3049+    }, 
     3050+ 
     3051+    { 
     3052+       11, -158, -158, -158, -158, -158, -158, -158, -158, -158, 
     3053+     -158, -158, -158,   58, -158, -158,   58,   58,   58,   58, 
     3054+       58,   58,   58,  178,   58,   58,   58,   58,   58,   58, 
     3055+       58,   58,   58,   58,   58,   58,   58, -158 
     3056+    }, 
     3057+ 
     3058+    { 
     3059+       11, -159, -159, -159, -159, -159, -159, -159, -159, -159, 
     3060+     -159, -159, -159,   58, -159, -159,   58,  179,   58,   58, 
     3061+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3062+       58,   58,   58,   58,   58,   58,   58, -159 
     3063+ 
     3064+    }, 
     3065+ 
     3066+    { 
     3067+       11, -160, -160, -160, -160, -160, -160, -160, -160, -160, 
     3068+     -160, -160, -160,   58, -160, -160,   58,   58,   58,   58, 
     3069+       58,   58,   58,   58,   58,   58,   58,   58,  180,   58, 
     3070+       58,   58,   58,   58,   58,   58,   58, -160 
     3071+    }, 
     3072+ 
     3073+    { 
     3074+       11, -161, -161, -161, -161, -161, -161, -161, -161, -161, 
     3075+     -161, -161, -161,   58, -161, -161,   58,   58,   58,   58, 
     3076+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3077+       58,   58,   58,   58,   58,   58,   58, -161 
     3078+    }, 
     3079+ 
     3080+    { 
     3081+       11, -162, -162, -162, -162, -162, -162, -162, -162, -162, 
     3082+     -162, -162, -162,   58, -162, -162,   58,   58,   58,   58, 
     3083+ 
     3084+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3085+       58,   58,   58,   58,  181,   58,   58, -162 
     3086+    }, 
     3087+ 
     3088+    { 
     3089+       11, -163, -163, -163, -163, -163, -163, -163, -163, -163, 
     3090+     -163, -163, -163,   58, -163, -163,   58,   58,   58,   58, 
     3091+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3092+       58,   58,   58,   58,   58,   58,   58, -163 
     3093+    }, 
     3094+ 
     3095+    { 
     3096+       11, -164, -164, -164, -164, -164, -164, -164, -164, -164, 
     3097+     -164, -164, -164,   58, -164, -164,   58,   58,   58,   58, 
     3098+       58,   58,   58,   58,   58,   58,   58,   58,   58,  182, 
     3099+       58,   58,   58,   58,   58,   58,   58, -164 
     3100+ 
     3101+    }, 
     3102+ 
     3103+    { 
     3104+       11, -165, -165, -165, -165, -165, -165, -165, -165, -165, 
     3105+     -165, -165, -165,   58, -165, -165,   58,   58,   58,   58, 
     3106+       58,   58,   58,   58,   58,  183,   58,   58,   58,   58, 
     3107+       58,   58,   58,   58,   58,   58,   58, -165 
     3108+    }, 
     3109+ 
     3110+    { 
     3111+       11, -166, -166, -166, -166, -166, -166, -166, -166, -166, 
     3112+     -166, -166, -166,   58, -166, -166,   58,   58,   58,   58, 
     3113+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3114+       58,   58,   58,   58,  184,   58,   58, -166 
     3115+    }, 
     3116+ 
     3117+    { 
     3118+       11, -167, -167, -167, -167, -167, -167, -167, -167, -167, 
     3119+     -167, -167, -167,   58, -167, -167,   58,   58,   58,   58, 
     3120+ 
     3121+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3122+       58,   58,   58,  185,   58,   58,   58, -167 
     3123+    }, 
     3124+ 
     3125+    { 
     3126+       11, -168, -168, -168, -168, -168, -168, -168, -168, -168, 
     3127+     -168, -168, -168,   58, -168, -168,   58,   58,   58,   58, 
     3128+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3129+       58,   58,   58,   58,   58,   58,   58, -168 
     3130+    }, 
     3131+ 
     3132+    { 
     3133+       11, -169, -169, -169, -169, -169, -169, -169, -169, -169, 
     3134+     -169, -169, -169,   58, -169, -169,   58,   58,   58,   58, 
     3135+       58,   58,   58,   58,   58,  186,   58,   58,   58,   58, 
     3136+       58,   58,   58,   58,   58,   58,   58, -169 
     3137+ 
     3138+    }, 
     3139+ 
     3140+    { 
     3141+       11, -170, -170, -170, -170, -170, -170, -170, -170, -170, 
     3142+     -170, -170, -170,   58, -170, -170,   58,   58,   58,   58, 
     3143+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3144+       58,   58,   58,   58,   58,  187,   58, -170 
     3145+    }, 
     3146+ 
     3147+    { 
     3148+       11, -171, -171, -171, -171, -171, -171, -171, -171, -171, 
     3149+     -171, -171, -171,   58, -171, -171,   58,   58,   58,   58, 
     3150+       58,   58,   58,   58,   58,   58,   58,   58,  188,   58, 
     3151+       58,   58,   58,   58,   58,   58,   58, -171 
     3152+    }, 
     3153+ 
     3154+    { 
     3155+       11, -172, -172, -172, -172, -172, -172, -172, -172, -172, 
     3156+     -172, -172, -172,   58, -172, -172,   58,   58,   58,   58, 
     3157+ 
     3158+       58,   58,   58,   58,   58,   58,   58,   58,  189,   58, 
     3159+       58,   58,   58,   58,   58,   58,   58, -172 
     3160+    }, 
     3161+ 
     3162+    { 
     3163+       11, -173, -173, -173, -173, -173, -173, -173, -173, -173, 
     3164+     -173, -173, -173,   58, -173, -173,   58,  190,   58,   58, 
     3165+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3166+       58,   58,   58,   58,   58,   58,   58, -173 
     3167+    }, 
     3168+ 
     3169+    { 
     3170+       11, -174, -174, -174, -174, -174, -174, -174, -174, -174, 
     3171+     -174, -174, -174,   58, -174, -174,   58,   58,   58,   58, 
     3172+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3173+       58,   58,   58,   58,   58,   58,   58, -174 
     3174+ 
     3175+    }, 
     3176+ 
     3177+    { 
     3178+       11, -175, -175, -175, -175, -175, -175, -175, -175, -175, 
     3179+     -175, -175, -175,   58, -175, -175,   58,   58,   58,   58, 
     3180+       58,  191,   58,   58,   58,   58,   58,   58,   58,   58, 
     3181+       58,   58,   58,   58,   58,   58,   58, -175 
     3182+    }, 
     3183+ 
     3184+    { 
     3185+       11, -176, -176, -176, -176, -176, -176, -176, -176, -176, 
     3186+     -176, -176, -176,   58, -176, -176,   58,   58,   58,   58, 
     3187+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3188+       58,   58,   58,   58,   58,   58,   58, -176 
     3189+    }, 
     3190+ 
     3191+    { 
     3192+       11, -177, -177, -177, -177, -177, -177, -177, -177, -177, 
     3193+     -177, -177, -177,   58, -177, -177,   58,   58,   58,   58, 
     3194+ 
     3195+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3196+       58,   58,   58,   58,   58,   58,   58, -177 
     3197+    }, 
     3198+ 
     3199+    { 
     3200+       11, -178, -178, -178, -178, -178, -178, -178, -178, -178, 
     3201+     -178, -178, -178,   58, -178, -178,   58,   58,   58,   58, 
     3202+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3203+       58,   58,   58,   58,   58,   58,   58, -178 
     3204+    }, 
     3205+ 
     3206+    { 
     3207+       11, -179, -179, -179, -179, -179, -179, -179, -179, -179, 
     3208+     -179, -179, -179,   58, -179, -179,   58,   58,   58,   58, 
     3209+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3210+       58,   58,   58,   58,  192,   58,   58, -179 
     3211+ 
     3212+    }, 
     3213+ 
     3214+    { 
     3215+       11, -180, -180, -180, -180, -180, -180, -180, -180, -180, 
     3216+     -180, -180, -180,   58, -180, -180,   58,   58,   58,   58, 
     3217+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3218+       58,   58,   58,   58,   58,   58,   58, -180 
     3219+    }, 
     3220+ 
     3221+    { 
     3222+       11, -181, -181, -181, -181, -181, -181, -181, -181, -181, 
     3223+     -181, -181, -181,   58, -181, -181,   58,   58,   58,   58, 
     3224+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3225+       58,   58,   58,   58,   58,   58,   58, -181 
     3226+    }, 
     3227+ 
     3228+    { 
     3229+       11, -182, -182, -182, -182, -182, -182, -182, -182, -182, 
     3230+     -182, -182, -182,   58, -182, -182,   58,   58,   58,   58, 
     3231+ 
     3232+       58,   58,   58,   58,   58,   58,  193,   58,   58,   58, 
     3233+       58,   58,   58,   58,   58,   58,   58, -182 
     3234+    }, 
     3235+ 
     3236+    { 
     3237+       11, -183, -183, -183, -183, -183, -183, -183, -183, -183, 
     3238+     -183, -183, -183,   58, -183, -183,   58,   58,   58,   58, 
     3239+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3240+       58,   58,   58,  194,   58,   58,   58, -183 
     3241+    }, 
     3242+ 
     3243+    { 
     3244+       11, -184, -184, -184, -184, -184, -184, -184, -184, -184, 
     3245+     -184, -184, -184,   58, -184, -184,   58,   58,   58,   58, 
     3246+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3247+       58,   58,   58,   58,   58,   58,   58, -184 
     3248+ 
     3249+    }, 
     3250+ 
     3251+    { 
     3252+       11, -185, -185, -185, -185, -185, -185, -185, -185, -185, 
     3253+     -185, -185, -185,   58, -185, -185,   58,   58,   58,   58, 
     3254+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3255+       58,   58,   58,   58,   58,   58,   58, -185 
     3256+    }, 
     3257+ 
     3258+    { 
     3259+       11, -186, -186, -186, -186, -186, -186, -186, -186, -186, 
     3260+     -186, -186, -186,   58, -186, -186,   58,   58,   58,  195, 
     3261+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3262+       58,   58,   58,   58,   58,   58,   58, -186 
     3263+    }, 
     3264+ 
     3265+    { 
     3266+       11, -187, -187, -187, -187, -187, -187, -187, -187, -187, 
     3267+     -187, -187, -187,   58, -187, -187,   58,   58,   58,   58, 
     3268+ 
     3269+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3270+       58,   58,   58,   58,   58,   58,   58, -187 
     3271+    }, 
     3272+ 
     3273+    { 
     3274+       11, -188, -188, -188, -188, -188, -188, -188, -188, -188, 
     3275+     -188, -188, -188,   58, -188, -188,   58,   58,   58,   58, 
     3276+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3277+       58,   58,   58,   58,   58,  196,   58, -188 
     3278+    }, 
     3279+ 
     3280+    { 
     3281+       11, -189, -189, -189, -189, -189, -189, -189, -189, -189, 
     3282+     -189, -189, -189,   58, -189, -189,   58,   58,   58,   58, 
     3283+       58,   58,  197,   58,   58,   58,   58,   58,   58,   58, 
     3284+       58,   58,   58,   58,   58,   58,   58, -189 
     3285+ 
     3286+    }, 
     3287+ 
     3288+    { 
     3289+       11, -190, -190, -190, -190, -190, -190, -190, -190, -190, 
     3290+     -190, -190, -190,   58, -190, -190,   58,   58,   58,   58, 
     3291+       58,   58,   58,   58,   58,   58,  198,   58,   58,   58, 
     3292+       58,   58,   58,   58,   58,   58,   58, -190 
     3293+    }, 
     3294+ 
     3295+    { 
     3296+       11, -191, -191, -191, -191, -191, -191, -191, -191, -191, 
     3297+     -191, -191, -191,   58, -191, -191,   58,   58,   58,   58, 
     3298+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3299+       58,   58,   58,  199,   58,   58,   58, -191 
     3300+    }, 
     3301+ 
     3302+    { 
     3303+       11, -192, -192, -192, -192, -192, -192, -192, -192, -192, 
     3304+     -192, -192, -192,   58, -192, -192,   58,   58,   58,   58, 
     3305+ 
     3306+       58,  200,   58,   58,   58,   58,   58,   58,   58,   58, 
     3307+       58,   58,   58,   58,   58,   58,   58, -192 
     3308+    }, 
     3309+ 
     3310+    { 
     3311+       11, -193, -193, -193, -193, -193, -193, -193, -193, -193, 
     3312+     -193, -193, -193,   58, -193, -193,   58,   58,   58,   58, 
     3313+       58,  201,   58,   58,   58,   58,   58,   58,   58,   58, 
     3314+       58,   58,   58,   58,   58,   58,   58, -193 
     3315+    }, 
     3316+ 
     3317+    { 
     3318+       11, -194, -194, -194, -194, -194, -194, -194, -194, -194, 
     3319+     -194, -194, -194,   58, -194, -194,   58,   58,   58,   58, 
     3320+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3321+       58,   58,   58,   58,  202,   58,   58, -194 
     3322+ 
     3323+    }, 
     3324+ 
     3325+    { 
     3326+       11, -195, -195, -195, -195, -195, -195, -195, -195, -195, 
     3327+     -195, -195, -195,   58, -195, -195,   58,   58,   58,   58, 
     3328+       58,  203,   58,   58,   58,   58,   58,   58,   58,   58, 
     3329+       58,   58,   58,   58,   58,   58,   58, -195 
     3330+    }, 
     3331+ 
     3332+    { 
     3333+       11, -196, -196, -196, -196, -196, -196, -196, -196, -196, 
     3334+     -196, -196, -196,   58, -196, -196,   58,   58,   58,   58, 
     3335+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3336+       58,   58,   58,   58,   58,   58,   58, -196 
     3337+    }, 
     3338+ 
     3339+    { 
     3340+       11, -197, -197, -197, -197, -197, -197, -197, -197, -197, 
     3341+     -197, -197, -197,   58, -197, -197,   58,   58,   58,   58, 
     3342+ 
     3343+       58,   58,   58,   58,   58,  204,   58,   58,   58,   58, 
     3344+       58,   58,   58,   58,   58,   58,   58, -197 
     3345+    }, 
     3346+ 
     3347+    { 
     3348+       11, -198, -198, -198, -198, -198, -198, -198, -198, -198, 
     3349+     -198, -198, -198,   58, -198, -198,   58,   58,   58,   58, 
     3350+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3351+       58,   58,   58,   58,   58,   58,   58, -198 
     3352+    }, 
     3353+ 
     3354+    { 
     3355+       11, -199, -199, -199, -199, -199, -199, -199, -199, -199, 
     3356+     -199, -199, -199,   58, -199, -199,   58,   58,   58,   58, 
     3357+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3358+       58,   58,   58,   58,   58,   58,   58, -199 
     3359+ 
     3360+    }, 
     3361+ 
     3362+    { 
     3363+       11, -200, -200, -200, -200, -200, -200, -200, -200, -200, 
     3364+     -200, -200, -200,   58, -200, -200,   58,   58,   58,   58, 
     3365+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3366+       58,   58,   58,   58,   58,   58,   58, -200 
     3367+    }, 
     3368+ 
     3369+    { 
     3370+       11, -201, -201, -201, -201, -201, -201, -201, -201, -201, 
     3371+     -201, -201, -201,   58, -201, -201,   58,  205,   58,   58, 
     3372+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3373+       58,   58,   58,   58,   58,   58,   58, -201 
     3374+    }, 
     3375+ 
     3376+    { 
     3377+       11, -202, -202, -202, -202, -202, -202, -202, -202, -202, 
     3378+     -202, -202, -202,   58, -202, -202,   58,  206,   58,   58, 
     3379+ 
     3380+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3381+       58,   58,   58,   58,   58,   58,   58, -202 
     3382+    }, 
     3383+ 
     3384+    { 
     3385+       11, -203, -203, -203, -203, -203, -203, -203, -203, -203, 
     3386+     -203, -203, -203,   58, -203, -203,   58,   58,   58,   58, 
     3387+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3388+       58,   58,   58,   58,   58,   58,   58, -203 
     3389+    }, 
     3390+ 
     3391+    { 
     3392+       11, -204, -204, -204, -204, -204, -204, -204, -204, -204, 
     3393+     -204, -204, -204,   58, -204, -204,   58,   58,   58,   58, 
     3394+       58,   58,   58,  207,   58,   58,   58,   58,   58,   58, 
     3395+       58,   58,   58,   58,   58,   58,   58, -204 
     3396+ 
     3397+    }, 
     3398+ 
     3399+    { 
     3400+       11, -205, -205, -205, -205, -205, -205, -205, -205, -205, 
     3401+     -205, -205, -205,   58, -205, -205,   58,   58,   58,   58, 
     3402+       58,   58,   58,   58,   58,   58,   58,   58,  208,   58, 
     3403+       58,   58,   58,   58,   58,   58,   58, -205 
     3404+    }, 
     3405+ 
     3406+    { 
     3407+       11, -206, -206, -206, -206, -206, -206, -206, -206, -206, 
     3408+     -206, -206, -206,   58, -206, -206,   58,   58,   58,   58, 
     3409+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3410+       58,   58,   58,   58,  209,   58,   58, -206 
     3411+    }, 
     3412+ 
     3413+    { 
     3414+       11, -207, -207, -207, -207, -207, -207, -207, -207, -207, 
     3415+     -207, -207, -207,   58, -207, -207,   58,   58,   58,   58, 
     3416+ 
     3417+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3418+       58,   58,   58,   58,   58,   58,   58, -207 
     3419+    }, 
     3420+ 
     3421+    { 
     3422+       11, -208, -208, -208, -208, -208, -208, -208, -208, -208, 
     3423+     -208, -208, -208,   58, -208, -208,   58,   58,   58,   58, 
     3424+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3425+       58,   58,   58,   58,   58,   58,   58, -208 
     3426+    }, 
     3427+ 
     3428+    { 
     3429+       11, -209, -209, -209, -209, -209, -209, -209, -209, -209, 
     3430+     -209, -209, -209,   58, -209, -209,   58,   58,   58,   58, 
     3431+       58,  210,   58,   58,   58,   58,   58,   58,   58,   58, 
     3432+       58,   58,   58,   58,   58,   58,   58, -209 
     3433+ 
     3434+    }, 
     3435+ 
     3436+    { 
     3437+       11, -210, -210, -210, -210, -210, -210, -210, -210, -210, 
     3438+     -210, -210, -210,   58, -210, -210,   58,   58,   58,   58, 
     3439+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     3440+       58,   58,   58,   58,   58,   58,   58, -210 
     3441+    }, 
     3442+ 
     3443+    } ; 
     3444+ 
     3445+static yy_state_type yy_get_previous_state (void ); 
     3446+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ); 
     3447+static int yy_get_next_buffer (void ); 
     3448+static void yy_fatal_error (yyconst char msg[]  ); 
     3449+ 
     3450+/* Done after the current pattern has been matched and before the 
     3451+ * corresponding action - sets up zconftext. 
     3452+ */ 
     3453+#define YY_DO_BEFORE_ACTION \ 
     3454+       (yytext_ptr) = yy_bp; \ 
     3455+       zconfleng = (size_t) (yy_cp - yy_bp); \ 
     3456+       (yy_hold_char) = *yy_cp; \ 
     3457+       *yy_cp = '\0'; \ 
     3458+       (yy_c_buf_p) = yy_cp; 
     3459+ 
     3460+#define YY_NUM_RULES 64 
     3461+#define YY_END_OF_BUFFER 65 
     3462+/* This struct is not used in this scanner, 
     3463+   but its presence is necessary. */ 
     3464+struct yy_trans_info 
     3465+       { 
     3466+       flex_int32_t yy_verify; 
     3467+       flex_int32_t yy_nxt; 
     3468+       }; 
     3469+static yyconst flex_int16_t yy_accept[211] = 
     3470+    {   0, 
     3471+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     3472+       65,    5,    4,    3,    2,   36,   37,   35,   35,   35, 
     3473+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     3474+       63,   60,   62,   55,   59,   58,   57,   53,   48,   42, 
     3475+       47,   51,   53,   40,   41,   50,   50,   43,   53,   50, 
     3476+       50,   53,    4,    3,    2,    2,    1,   35,   35,   35, 
     3477+       35,   35,   35,   35,   16,   35,   35,   35,   35,   35, 
     3478+       35,   35,   35,   35,   35,   35,   63,   60,   62,   61, 
     3479+       55,   54,   57,   56,   44,   51,   38,   50,   50,   52, 
     3480+       45,   46,   39,   35,   35,   35,   35,   35,   35,   35, 
     3481+ 
     3482+       35,   35,   30,   29,   35,   35,   35,   35,   35,   35, 
     3483+       35,   35,   35,   35,   49,   25,   35,   35,   35,   35, 
     3484+       35,   35,   35,   35,   35,   35,   15,   35,    7,   35, 
     3485+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     3486+       35,   35,   35,   35,   35,   35,   35,   17,   35,   35, 
     3487+       35,   35,   35,   34,   35,   35,   35,   35,   35,   35, 
     3488+       10,   35,   13,   35,   35,   35,   35,   33,   35,   35, 
     3489+       35,   35,   35,   22,   35,   32,    9,   31,   35,   26, 
     3490+       12,   35,   35,   21,   18,   35,    8,   35,   35,   35, 
     3491+       35,   35,   27,   35,   35,    6,   35,   20,   19,   23, 
     3492+ 
     3493+       35,   35,   11,   35,   35,   35,   14,   28,   35,   24 
     3494+    } ; 
     3495+ 
     3496+static yyconst flex_int32_t yy_ec[256] = 
     3497+    {   0, 
     3498+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3, 
     3499+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3500+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3501+        1,    2,    4,    5,    6,    1,    1,    7,    8,    9, 
     3502+       10,    1,    1,    1,   11,   12,   12,   13,   13,   13, 
     3503+       13,   13,   13,   13,   13,   13,   13,    1,    1,    1, 
     3504+       14,    1,    1,    1,   13,   13,   13,   13,   13,   13, 
     3505+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, 
     3506+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, 
     3507+        1,   15,    1,    1,   16,    1,   17,   18,   19,   20, 
     3508+ 
     3509+       21,   22,   23,   24,   25,   13,   13,   26,   27,   28, 
     3510+       29,   30,   31,   32,   33,   34,   35,   13,   13,   36, 
     3511+       13,   13,    1,   37,    1,    1,    1,    1,    1,    1, 
     3512+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3513+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3514+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3515+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3516+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3517+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3518+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3519+ 
     3520+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3521+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3522+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3523+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3524+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     3525+        1,    1,    1,    1,    1 
     3526+    } ; 
     3527+ 
     3528+extern int zconf_flex_debug; 
     3529+int zconf_flex_debug = 0; 
     3530+ 
     3531+/* The intent behind this definition is that it'll catch 
     3532+ * any uses of REJECT which flex missed. 
     3533+ */ 
     3534+#define REJECT reject_used_but_not_detected 
     3535+#define yymore() yymore_used_but_not_detected 
     3536+#define YY_MORE_ADJ 0 
     3537+#define YY_RESTORE_YY_MORE_OFFSET 
     3538+char *zconftext; 
     3539+ 
     3540+/* 
     3541+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> 
     3542+ * Released under the terms of the GNU GPL v2.0. 
     3543+ */ 
     3544+ 
     3545+#include <limits.h> 
     3546+#include <stdio.h> 
     3547+#include <stdlib.h> 
     3548+#include <string.h> 
     3549+#include <unistd.h> 
     3550+ 
     3551+#define LKC_DIRECT_LINK 
     3552+#include "lkc.h" 
     3553+ 
     3554+#define START_STRSIZE  16 
     3555+ 
     3556+char *text; 
     3557+static char *text_ptr; 
     3558+static int text_size, text_asize; 
     3559+ 
     3560+struct buffer { 
     3561+        struct buffer *parent; 
     3562+        YY_BUFFER_STATE state; 
     3563+}; 
     3564+ 
     3565+struct buffer *current_buf; 
     3566+ 
     3567+static int last_ts, first_ts; 
     3568+ 
     3569+static void zconf_endhelp(void); 
     3570+static struct buffer *zconf_endfile(void); 
     3571+ 
     3572+void new_string(void) 
     3573+{ 
     3574+       text = malloc(START_STRSIZE); 
     3575+       text_asize = START_STRSIZE; 
     3576+       text_ptr = text; 
     3577+       text_size = 0; 
     3578+       *text_ptr = 0; 
     3579+} 
     3580+ 
     3581+void append_string(const char *str, int size) 
     3582+{ 
     3583+       int new_size = text_size + size + 1; 
     3584+       if (new_size > text_asize) { 
     3585+               text = realloc(text, new_size); 
     3586+               text_asize = new_size; 
     3587+               text_ptr = text + text_size; 
     3588+       } 
     3589+       memcpy(text_ptr, str, size); 
     3590+       text_ptr += size; 
     3591+       text_size += size; 
     3592+       *text_ptr = 0; 
     3593+} 
     3594+ 
     3595+void alloc_string(const char *str, int size) 
     3596+{ 
     3597+       text = malloc(size + 1); 
     3598+       memcpy(text, str, size); 
     3599+       text[size] = 0; 
     3600+} 
     3601+ 
     3602+#define INITIAL 0 
     3603+#define COMMAND 1 
     3604+#define HELP 2 
     3605+#define STRING 3 
     3606+#define PARAM 4 
     3607+ 
     3608+/* Special case for "unistd.h", since it is non-ANSI. We include it way 
     3609+ * down here because we want the user's section 1 to have been scanned first. 
     3610+ * The user has a chance to override it with an option. 
     3611+ */ 
     3612+#include <unistd.h> 
     3613+ 
     3614+#ifndef YY_EXTRA_TYPE 
     3615+#define YY_EXTRA_TYPE void * 
     3616+#endif 
     3617+ 
     3618+/* Macros after this point can all be overridden by user definitions in 
     3619+ * section 1. 
     3620+ */ 
     3621+ 
     3622+#ifndef YY_SKIP_YYWRAP 
     3623+#ifdef __cplusplus 
     3624+extern "C" int zconfwrap (void ); 
     3625+#else 
     3626+extern int zconfwrap (void ); 
     3627+#endif 
     3628+#endif 
     3629+ 
     3630+    static void yyunput (int c,char *buf_ptr  ); 
     3631+ 
     3632+#ifndef yytext_ptr 
     3633+static void yy_flex_strncpy (char *,yyconst char *,int ); 
     3634+#endif 
     3635+ 
     3636+#ifdef YY_NEED_STRLEN 
     3637+static int yy_flex_strlen (yyconst char * ); 
     3638+#endif 
     3639+ 
     3640+#ifndef YY_NO_INPUT 
     3641+ 
     3642+#ifdef __cplusplus 
     3643+static int yyinput (void ); 
     3644+#else 
     3645+static int input (void ); 
     3646+#endif 
     3647+ 
     3648+#endif 
     3649+ 
     3650+/* Amount of stuff to slurp up with each read. */ 
     3651+#ifndef YY_READ_BUF_SIZE 
     3652+#define YY_READ_BUF_SIZE 8192 
     3653+#endif 
     3654+ 
     3655+/* Copy whatever the last rule matched to the standard output. */ 
     3656+#ifndef ECHO 
     3657+/* This used to be an fputs(), but since the string might contain NUL's, 
     3658+ * we now use fwrite(). 
     3659+ */ 
     3660+#define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout ) 
     3661+#endif 
     3662+ 
     3663+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL, 
     3664+ * is returned in "result". 
     3665+ */ 
     3666+#ifndef YY_INPUT 
     3667+#define YY_INPUT(buf,result,max_size) \ 
     3668+       errno=0; \ 
     3669+       while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \ 
     3670+       { \ 
     3671+               if( errno != EINTR) \ 
     3672+               { \ 
     3673+                       YY_FATAL_ERROR( "input in flex scanner failed" ); \ 
     3674+                       break; \ 
     3675+               } \ 
     3676+               errno=0; \ 
     3677+               clearerr(zconfin); \ 
     3678+       }\ 
     3679+\ 
     3680+ 
     3681+#endif 
     3682+ 
     3683+/* No semi-colon after return; correct usage is to write "yyterminate();" - 
     3684+ * we don't want an extra ';' after the "return" because that will cause 
     3685+ * some compilers to complain about unreachable statements. 
     3686+ */ 
     3687+#ifndef yyterminate 
     3688+#define yyterminate() return YY_NULL 
     3689+#endif 
     3690+ 
     3691+/* Number of entries by which start-condition stack grows. */ 
     3692+#ifndef YY_START_STACK_INCR 
     3693+#define YY_START_STACK_INCR 25 
     3694+#endif 
     3695+ 
     3696+/* Report a fatal error. */ 
     3697+#ifndef YY_FATAL_ERROR 
     3698+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 
     3699+#endif 
     3700+ 
     3701+/* end tables serialization structures and prototypes */ 
     3702+ 
     3703+/* Default declaration of generated scanner - a define so the user can 
     3704+ * easily add parameters. 
     3705+ */ 
     3706+#ifndef YY_DECL 
     3707+#define YY_DECL_IS_OURS 1 
     3708+ 
     3709+extern int zconflex (void); 
     3710+ 
     3711+#define YY_DECL int zconflex (void) 
     3712+#endif /* !YY_DECL */ 
     3713+ 
     3714+/* Code executed at the beginning of each rule, after zconftext and zconfleng 
     3715+ * have been set up. 
     3716+ */ 
     3717+#ifndef YY_USER_ACTION 
     3718+#define YY_USER_ACTION 
     3719+#endif 
     3720+ 
     3721+/* Code executed at the end of each rule. */ 
     3722+#ifndef YY_BREAK 
     3723+#define YY_BREAK break; 
     3724+#endif 
     3725+ 
     3726+#define YY_RULE_SETUP \ 
     3727+       YY_USER_ACTION 
     3728+ 
     3729+/** The main scanner function which does all the work. 
     3730+ */ 
     3731+YY_DECL 
     3732+{ 
     3733+       register yy_state_type yy_current_state; 
     3734+       register char *yy_cp, *yy_bp; 
     3735+       register int yy_act; 
     3736+ 
     3737+       int str = 0; 
     3738+       int ts, i; 
     3739+ 
     3740+       if ( (yy_init) ) 
     3741+               { 
     3742+               (yy_init) = 0; 
     3743+ 
     3744+#ifdef YY_USER_INIT 
     3745+               YY_USER_INIT; 
     3746+#endif 
     3747+ 
     3748+               if ( ! (yy_start) ) 
     3749+                       (yy_start) = 1; /* first start state */ 
     3750+ 
     3751+               if ( ! zconfin ) 
     3752+                       zconfin = stdin; 
     3753+ 
     3754+               if ( ! zconfout ) 
     3755+                       zconfout = stdout; 
     3756+ 
     3757+               if ( ! YY_CURRENT_BUFFER ) { 
     3758+                       zconfensure_buffer_stack (); 
     3759+                       YY_CURRENT_BUFFER_LVALUE = 
     3760+                               zconf_create_buffer(zconfin,YY_BUF_SIZE ); 
     3761+               } 
     3762+ 
     3763+               zconf_load_buffer_state( ); 
     3764+               } 
     3765+ 
     3766+       while ( 1 )             /* loops until end-of-file is reached */ 
     3767+               { 
     3768+               yy_cp = (yy_c_buf_p); 
     3769+ 
     3770+               /* Support of zconftext. */ 
     3771+               *yy_cp = (yy_hold_char); 
     3772+ 
     3773+               /* yy_bp points to the position in yy_ch_buf of the start of 
     3774+                * the current run. 
     3775+                */ 
     3776+               yy_bp = yy_cp; 
     3777+ 
     3778+               yy_current_state = (yy_start); 
     3779+yy_match: 
     3780+               while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 ) 
     3781+                       ++yy_cp; 
     3782+ 
     3783+               yy_current_state = -yy_current_state; 
     3784+ 
     3785+yy_find_action: 
     3786+               yy_act = yy_accept[yy_current_state]; 
     3787+ 
     3788+               YY_DO_BEFORE_ACTION; 
     3789+ 
     3790+do_action:     /* This label is used only to access EOF actions. */ 
     3791+ 
     3792+               switch ( yy_act ) 
     3793+       { /* beginning of action switch */ 
     3794+case 1: 
     3795+/* rule 1 can match eol */ 
     3796+YY_RULE_SETUP 
     3797+current_file->lineno++; 
     3798+       YY_BREAK 
     3799+case 2: 
     3800+YY_RULE_SETUP 
     3801+ 
     3802+       YY_BREAK 
     3803+case 3: 
     3804+/* rule 3 can match eol */ 
     3805+YY_RULE_SETUP 
     3806+current_file->lineno++; return T_EOL; 
     3807+       YY_BREAK 
     3808+case 4: 
     3809+YY_RULE_SETUP 
     3810+{ 
     3811+       BEGIN(COMMAND); 
     3812+} 
     3813+       YY_BREAK 
     3814+case 5: 
     3815+YY_RULE_SETUP 
     3816+{ 
     3817+       unput(zconftext[0]); 
     3818+       BEGIN(COMMAND); 
     3819+} 
     3820+       YY_BREAK 
     3821+ 
     3822+case 6: 
     3823+YY_RULE_SETUP 
     3824+BEGIN(PARAM); return T_MAINMENU; 
     3825+       YY_BREAK 
     3826+case 7: 
     3827+YY_RULE_SETUP 
     3828+BEGIN(PARAM); return T_MENU; 
     3829+       YY_BREAK 
     3830+case 8: 
     3831+YY_RULE_SETUP 
     3832+BEGIN(PARAM); return T_ENDMENU; 
     3833+       YY_BREAK 
     3834+case 9: 
     3835+YY_RULE_SETUP 
     3836+BEGIN(PARAM); return T_SOURCE; 
     3837+       YY_BREAK 
     3838+case 10: 
     3839+YY_RULE_SETUP 
     3840+BEGIN(PARAM); return T_CHOICE; 
     3841+       YY_BREAK 
     3842+case 11: 
     3843+YY_RULE_SETUP 
     3844+BEGIN(PARAM); return T_ENDCHOICE; 
     3845+       YY_BREAK 
     3846+case 12: 
     3847+YY_RULE_SETUP 
     3848+BEGIN(PARAM); return T_COMMENT; 
     3849+       YY_BREAK 
     3850+case 13: 
     3851+YY_RULE_SETUP 
     3852+BEGIN(PARAM); return T_CONFIG; 
     3853+       YY_BREAK 
     3854+case 14: 
     3855+YY_RULE_SETUP 
     3856+BEGIN(PARAM); return T_MENUCONFIG; 
     3857+       YY_BREAK 
     3858+case 15: 
     3859+YY_RULE_SETUP 
     3860+BEGIN(PARAM); return T_HELP; 
     3861+       YY_BREAK 
     3862+case 16: 
     3863+YY_RULE_SETUP 
     3864+BEGIN(PARAM); return T_IF; 
     3865+       YY_BREAK 
     3866+case 17: 
     3867+YY_RULE_SETUP 
     3868+BEGIN(PARAM); return T_ENDIF; 
     3869+       YY_BREAK 
     3870+case 18: 
     3871+YY_RULE_SETUP 
     3872+BEGIN(PARAM); return T_DEPENDS; 
     3873+       YY_BREAK 
     3874+case 19: 
     3875+YY_RULE_SETUP 
     3876+BEGIN(PARAM); return T_REQUIRES; 
     3877+       YY_BREAK 
     3878+case 20: 
     3879+YY_RULE_SETUP 
     3880+BEGIN(PARAM); return T_OPTIONAL; 
     3881+       YY_BREAK 
     3882+case 21: 
     3883+YY_RULE_SETUP 
     3884+BEGIN(PARAM); return T_DEFAULT; 
     3885+       YY_BREAK 
     3886+case 22: 
     3887+YY_RULE_SETUP 
     3888+BEGIN(PARAM); return T_PROMPT; 
     3889+       YY_BREAK 
     3890+case 23: 
     3891+YY_RULE_SETUP 
     3892+BEGIN(PARAM); return T_TRISTATE; 
     3893+       YY_BREAK 
     3894+case 24: 
     3895+YY_RULE_SETUP 
     3896+BEGIN(PARAM); return T_DEF_TRISTATE; 
     3897+       YY_BREAK 
     3898+case 25: 
     3899+YY_RULE_SETUP 
     3900+BEGIN(PARAM); return T_BOOLEAN; 
     3901+       YY_BREAK 
     3902+case 26: 
     3903+YY_RULE_SETUP 
     3904+BEGIN(PARAM); return T_BOOLEAN; 
     3905+       YY_BREAK 
     3906+case 27: 
     3907+YY_RULE_SETUP 
     3908+BEGIN(PARAM); return T_DEF_BOOLEAN; 
     3909+       YY_BREAK 
     3910+case 28: 
     3911+YY_RULE_SETUP 
     3912+BEGIN(PARAM); return T_DEF_BOOLEAN; 
     3913+       YY_BREAK 
     3914+case 29: 
     3915+YY_RULE_SETUP 
     3916+BEGIN(PARAM); return T_INT; 
     3917+       YY_BREAK 
     3918+case 30: 
     3919+YY_RULE_SETUP 
     3920+BEGIN(PARAM); return T_HEX; 
     3921+       YY_BREAK 
     3922+case 31: 
     3923+YY_RULE_SETUP 
     3924+BEGIN(PARAM); return T_STRING; 
     3925+       YY_BREAK 
     3926+case 32: 
     3927+YY_RULE_SETUP 
     3928+BEGIN(PARAM); return T_SELECT; 
     3929+       YY_BREAK 
     3930+case 33: 
     3931+YY_RULE_SETUP 
     3932+BEGIN(PARAM); return T_SELECT; 
     3933+       YY_BREAK 
     3934+case 34: 
     3935+YY_RULE_SETUP 
     3936+BEGIN(PARAM); return T_RANGE; 
     3937+       YY_BREAK 
     3938+case 35: 
     3939+YY_RULE_SETUP 
     3940+{ 
     3941+               alloc_string(zconftext, zconfleng); 
     3942+               zconflval.string = text; 
     3943+               return T_WORD; 
     3944+       } 
     3945+       YY_BREAK 
     3946+case 36: 
     3947+YY_RULE_SETUP 
     3948+ 
     3949+       YY_BREAK 
     3950+case 37: 
     3951+/* rule 37 can match eol */ 
     3952+YY_RULE_SETUP 
     3953+current_file->lineno++; BEGIN(INITIAL); 
     3954+       YY_BREAK 
     3955+ 
     3956+case 38: 
     3957+YY_RULE_SETUP 
     3958+return T_AND; 
     3959+       YY_BREAK 
     3960+case 39: 
     3961+YY_RULE_SETUP 
     3962+return T_OR; 
     3963+       YY_BREAK 
     3964+case 40: 
     3965+YY_RULE_SETUP 
     3966+return T_OPEN_PAREN; 
     3967+       YY_BREAK 
     3968+case 41: 
     3969+YY_RULE_SETUP 
     3970+return T_CLOSE_PAREN; 
     3971+       YY_BREAK 
     3972+case 42: 
     3973+YY_RULE_SETUP 
     3974+return T_NOT; 
     3975+       YY_BREAK 
     3976+case 43: 
     3977+YY_RULE_SETUP 
     3978+return T_EQUAL; 
     3979+       YY_BREAK 
     3980+case 44: 
     3981+YY_RULE_SETUP 
     3982+return T_UNEQUAL; 
     3983+       YY_BREAK 
     3984+case 45: 
     3985+YY_RULE_SETUP 
     3986+return T_IF; 
     3987+       YY_BREAK 
     3988+case 46: 
     3989+YY_RULE_SETUP 
     3990+return T_ON; 
     3991+       YY_BREAK 
     3992+case 47: 
     3993+YY_RULE_SETUP 
     3994+{ 
     3995+               str = zconftext[0]; 
     3996+               new_string(); 
     3997+               BEGIN(STRING); 
     3998+       } 
     3999+       YY_BREAK 
     4000+case 48: 
     4001+/* rule 48 can match eol */ 
     4002+YY_RULE_SETUP 
     4003+BEGIN(INITIAL); current_file->lineno++; return T_EOL; 
     4004+       YY_BREAK 
     4005+case 49: 
     4006+YY_RULE_SETUP 
     4007+/* ignore */ 
     4008+       YY_BREAK 
     4009+case 50: 
     4010+YY_RULE_SETUP 
     4011+{ 
     4012+               alloc_string(zconftext, zconfleng); 
     4013+               zconflval.string = text; 
     4014+               return T_WORD; 
     4015+       } 
     4016+       YY_BREAK 
     4017+case 51: 
     4018+YY_RULE_SETUP 
     4019+/* comment */ 
     4020+       YY_BREAK 
     4021+case 52: 
     4022+/* rule 52 can match eol */ 
     4023+YY_RULE_SETUP 
     4024+current_file->lineno++; 
     4025+       YY_BREAK 
     4026+case 53: 
     4027+YY_RULE_SETUP 
     4028+ 
     4029+       YY_BREAK 
     4030+case YY_STATE_EOF(PARAM): 
     4031+{ 
     4032+               BEGIN(INITIAL); 
     4033+       } 
     4034+       YY_BREAK 
     4035+ 
     4036+case 54: 
     4037+/* rule 54 can match eol */ 
     4038+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 
     4039+(yy_c_buf_p) = yy_cp -= 1; 
     4040+YY_DO_BEFORE_ACTION; /* set up zconftext again */ 
     4041+YY_RULE_SETUP 
     4042+{ 
     4043+               append_string(zconftext, zconfleng); 
     4044+               zconflval.string = text; 
     4045+               return T_WORD_QUOTE; 
     4046+       } 
     4047+       YY_BREAK 
     4048+case 55: 
     4049+YY_RULE_SETUP 
     4050+{ 
     4051+               append_string(zconftext, zconfleng); 
     4052+       } 
     4053+       YY_BREAK 
     4054+case 56: 
     4055+/* rule 56 can match eol */ 
     4056+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 
     4057+(yy_c_buf_p) = yy_cp -= 1; 
     4058+YY_DO_BEFORE_ACTION; /* set up zconftext again */ 
     4059+YY_RULE_SETUP 
     4060+{ 
     4061+               append_string(zconftext + 1, zconfleng - 1); 
     4062+               zconflval.string = text; 
     4063+               return T_WORD_QUOTE; 
     4064+       } 
     4065+       YY_BREAK 
     4066+case 57: 
     4067+YY_RULE_SETUP 
     4068+{ 
     4069+               append_string(zconftext + 1, zconfleng - 1); 
     4070+       } 
     4071+       YY_BREAK 
     4072+case 58: 
     4073+YY_RULE_SETUP 
     4074+{ 
     4075+               if (str == zconftext[0]) { 
     4076+                       BEGIN(PARAM); 
     4077+                       zconflval.string = text; 
     4078+                       return T_WORD_QUOTE; 
     4079+               } else 
     4080+                       append_string(zconftext, 1); 
     4081+       } 
     4082+       YY_BREAK 
     4083+case 59: 
     4084+/* rule 59 can match eol */ 
     4085+YY_RULE_SETUP 
     4086+{ 
     4087+               printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); 
     4088+               current_file->lineno++; 
     4089+               BEGIN(INITIAL); 
     4090+               return T_EOL; 
     4091+       } 
     4092+       YY_BREAK 
     4093+case YY_STATE_EOF(STRING): 
     4094+{ 
     4095+               BEGIN(INITIAL); 
     4096+       } 
     4097+       YY_BREAK 
     4098+ 
     4099+case 60: 
     4100+YY_RULE_SETUP 
     4101+{ 
     4102+               ts = 0; 
     4103+               for (i = 0; i < zconfleng; i++) { 
     4104+                       if (zconftext[i] == '\t') 
     4105+                               ts = (ts & ~7) + 8; 
     4106+                       else 
     4107+                               ts++; 
     4108+               } 
     4109+               last_ts = ts; 
     4110+               if (first_ts) { 
     4111+                       if (ts < first_ts) { 
     4112+                               zconf_endhelp(); 
     4113+                               return T_HELPTEXT; 
     4114+                       } 
     4115+                       ts -= first_ts; 
     4116+                       while (ts > 8) { 
     4117+                               append_string("        ", 8); 
     4118+                               ts -= 8; 
     4119+                       } 
     4120+                       append_string("        ", ts); 
     4121+               } 
     4122+       } 
     4123+       YY_BREAK 
     4124+case 61: 
     4125+/* rule 61 can match eol */ 
     4126+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 
     4127+(yy_c_buf_p) = yy_cp -= 1; 
     4128+YY_DO_BEFORE_ACTION; /* set up zconftext again */ 
     4129+YY_RULE_SETUP 
     4130+{ 
     4131+               current_file->lineno++; 
     4132+               zconf_endhelp(); 
     4133+               return T_HELPTEXT; 
     4134+       } 
     4135+       YY_BREAK 
     4136+case 62: 
     4137+/* rule 62 can match eol */ 
     4138+YY_RULE_SETUP 
     4139+{ 
     4140+               current_file->lineno++; 
     4141+               append_string("\n", 1); 
     4142+       } 
     4143+       YY_BREAK 
     4144+case 63: 
     4145+YY_RULE_SETUP 
     4146+{ 
     4147+               append_string(zconftext, zconfleng); 
     4148+               if (!first_ts) 
     4149+                       first_ts = last_ts; 
     4150+       } 
     4151+       YY_BREAK 
     4152+case YY_STATE_EOF(HELP): 
     4153+{ 
     4154+               zconf_endhelp(); 
     4155+               return T_HELPTEXT; 
     4156+       } 
     4157+       YY_BREAK 
     4158+ 
     4159+case YY_STATE_EOF(INITIAL): 
     4160+case YY_STATE_EOF(COMMAND): 
     4161+{ 
     4162+       if (current_buf) { 
     4163+               zconf_endfile(); 
     4164+               return T_EOF; 
     4165+       } 
     4166+       fclose(zconfin); 
     4167+       yyterminate(); 
     4168+} 
     4169+       YY_BREAK 
     4170+case 64: 
     4171+YY_RULE_SETUP 
     4172+YY_FATAL_ERROR( "flex scanner jammed" ); 
     4173+       YY_BREAK 
     4174+ 
     4175+       case YY_END_OF_BUFFER: 
     4176+               { 
     4177+               /* Amount of text matched not including the EOB char. */ 
     4178+               int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 
     4179+ 
     4180+               /* Undo the effects of YY_DO_BEFORE_ACTION. */ 
     4181+               *yy_cp = (yy_hold_char); 
     4182+               YY_RESTORE_YY_MORE_OFFSET 
     4183+ 
     4184+               if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 
     4185+                       { 
     4186+                       /* We're scanning a new file or input source.  It's 
     4187+                        * possible that this happened because the user 
     4188+                        * just pointed zconfin at a new source and called 
     4189+                        * zconflex().  If so, then we have to assure 
     4190+                        * consistency between YY_CURRENT_BUFFER and our 
     4191+                        * globals.  Here is the right place to do so, because 
     4192+                        * this is the first action (other than possibly a 
     4193+                        * back-up) that will match for the new input source. 
     4194+                        */ 
     4195+                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 
     4196+                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin; 
     4197+                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 
     4198+                       } 
     4199+ 
     4200+               /* Note that here we test for yy_c_buf_p "<=" to the position 
     4201+                * of the first EOB in the buffer, since yy_c_buf_p will 
     4202+                * already have been incremented past the NUL character 
     4203+                * (since all states make transitions on EOB to the 
     4204+                * end-of-buffer state).  Contrast this with the test 
     4205+                * in input(). 
     4206+                */ 
     4207+               if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 
     4208+                       { /* This was really a NUL. */ 
     4209+                       yy_state_type yy_next_state; 
     4210+ 
     4211+                       (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 
     4212+ 
     4213+                       yy_current_state = yy_get_previous_state(  ); 
     4214+ 
     4215+                       /* Okay, we're now positioned to make the NUL 
     4216+                        * transition.  We couldn't have 
     4217+                        * yy_get_previous_state() go ahead and do it 
     4218+                        * for us because it doesn't know how to deal 
     4219+                        * with the possibility of jamming (and we don't 
     4220+                        * want to build jamming into it because then it 
     4221+                        * will run more slowly). 
     4222+                        */ 
     4223+ 
     4224+                       yy_next_state = yy_try_NUL_trans( yy_current_state ); 
     4225+ 
     4226+                       yy_bp = (yytext_ptr) + YY_MORE_ADJ; 
     4227+ 
     4228+                       if ( yy_next_state ) 
     4229+                               { 
     4230+                               /* Consume the NUL. */ 
     4231+                               yy_cp = ++(yy_c_buf_p); 
     4232+                               yy_current_state = yy_next_state; 
     4233+                               goto yy_match; 
     4234+                               } 
     4235+ 
     4236+                       else 
     4237+                               { 
     4238+                               yy_cp = (yy_c_buf_p); 
     4239+                               goto yy_find_action; 
     4240+                               } 
     4241+                       } 
     4242+ 
     4243+               else switch ( yy_get_next_buffer(  ) ) 
     4244+                       { 
     4245+                       case EOB_ACT_END_OF_FILE: 
     4246+                               { 
     4247+                               (yy_did_buffer_switch_on_eof) = 0; 
     4248+ 
     4249+                               if ( zconfwrap( ) ) 
     4250+                                       { 
     4251+                                       /* Note: because we've taken care in 
     4252+                                        * yy_get_next_buffer() to have set up 
     4253+                                        * zconftext, we can now set up 
     4254+                                        * yy_c_buf_p so that if some total 
     4255+                                        * hoser (like flex itself) wants to 
     4256+                                        * call the scanner after we return the 
     4257+                                        * YY_NULL, it'll still work - another 
     4258+                                        * YY_NULL will get returned. 
     4259+                                        */ 
     4260+                                       (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 
     4261+ 
     4262+                                       yy_act = YY_STATE_EOF(YY_START); 
     4263+                                       goto do_action; 
     4264+                                       } 
     4265+ 
     4266+                               else 
     4267+                                       { 
     4268+                                       if ( ! (yy_did_buffer_switch_on_eof) ) 
     4269+                                               YY_NEW_FILE; 
     4270+                                       } 
     4271+                               break; 
     4272+                               } 
     4273+ 
     4274+                       case EOB_ACT_CONTINUE_SCAN: 
     4275+                               (yy_c_buf_p) = 
     4276+                                       (yytext_ptr) + yy_amount_of_matched_text; 
     4277+ 
     4278+                               yy_current_state = yy_get_previous_state(  ); 
     4279+ 
     4280+                               yy_cp = (yy_c_buf_p); 
     4281+                               yy_bp = (yytext_ptr) + YY_MORE_ADJ; 
     4282+                               goto yy_match; 
     4283+ 
     4284+                       case EOB_ACT_LAST_MATCH: 
     4285+                               (yy_c_buf_p) = 
     4286+                               &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 
     4287+ 
     4288+                               yy_current_state = yy_get_previous_state(  ); 
     4289+ 
     4290+                               yy_cp = (yy_c_buf_p); 
     4291+                               yy_bp = (yytext_ptr) + YY_MORE_ADJ; 
     4292+                               goto yy_find_action; 
     4293+                       } 
     4294+               break; 
     4295+               } 
     4296+ 
     4297+       default: 
     4298+               YY_FATAL_ERROR( 
     4299+                       "fatal flex scanner internal error--no action found" ); 
     4300+       } /* end of action switch */ 
     4301+               } /* end of scanning one token */ 
     4302+} /* end of zconflex */ 
     4303+ 
     4304+/* yy_get_next_buffer - try to read in a new buffer 
     4305+ * 
     4306+ * Returns a code representing an action: 
     4307+ *     EOB_ACT_LAST_MATCH - 
     4308+ *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position 
     4309+ *     EOB_ACT_END_OF_FILE - end of file 
     4310+ */ 
     4311+static int yy_get_next_buffer (void) 
     4312+{ 
     4313+       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 
     4314+       register char *source = (yytext_ptr); 
     4315+       register int number_to_move, i; 
     4316+       int ret_val; 
     4317+ 
     4318+       if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 
     4319+               YY_FATAL_ERROR( 
     4320+               "fatal flex scanner internal error--end of buffer missed" ); 
     4321+ 
     4322+       if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 
     4323+               { /* Don't try to fill the buffer, so this is an EOF. */ 
     4324+               if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 
     4325+                       { 
     4326+                       /* We matched a single character, the EOB, so 
     4327+                        * treat this as a final EOF. 
     4328+                        */ 
     4329+                       return EOB_ACT_END_OF_FILE; 
     4330+                       } 
     4331+ 
     4332+               else 
     4333+                       { 
     4334+                       /* We matched some text prior to the EOB, first 
     4335+                        * process it. 
     4336+                        */ 
     4337+                       return EOB_ACT_LAST_MATCH; 
     4338+                       } 
     4339+               } 
     4340+ 
     4341+       /* Try to read more data. */ 
     4342+ 
     4343+       /* First move last chars to start of buffer. */ 
     4344+       number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; 
     4345+ 
     4346+       for ( i = 0; i < number_to_move; ++i ) 
     4347+               *(dest++) = *(source++); 
     4348+ 
     4349+       if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 
     4350+               /* don't do the read, it's not guaranteed to return an EOF, 
     4351+                * just force an EOF 
     4352+                */ 
     4353+               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 
     4354+ 
     4355+       else 
     4356+               { 
     4357+                       size_t num_to_read = 
     4358+                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 
     4359+ 
     4360+               while ( num_to_read <= 0 ) 
     4361+                       { /* Not enough room in the buffer - grow it. */ 
     4362+ 
     4363+                       /* just a shorter name for the current buffer */ 
     4364+                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER; 
     4365+ 
     4366+                       int yy_c_buf_p_offset = 
     4367+                               (int) ((yy_c_buf_p) - b->yy_ch_buf); 
     4368+ 
     4369+                       if ( b->yy_is_our_buffer ) 
     4370+                               { 
     4371+                               int new_size = b->yy_buf_size * 2; 
     4372+ 
     4373+                               if ( new_size <= 0 ) 
     4374+                                       b->yy_buf_size += b->yy_buf_size / 8; 
     4375+                               else 
     4376+                                       b->yy_buf_size *= 2; 
     4377+ 
     4378+                               b->yy_ch_buf = (char *) 
     4379+                                       /* Include room in for 2 EOB chars. */ 
     4380+                                       zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  ); 
     4381+                               } 
     4382+                       else 
     4383+                               /* Can't grow it, we don't own it. */ 
     4384+                               b->yy_ch_buf = 0; 
     4385+ 
     4386+                       if ( ! b->yy_ch_buf ) 
     4387+                               YY_FATAL_ERROR( 
     4388+                               "fatal error - scanner input buffer overflow" ); 
     4389+ 
     4390+                       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 
     4391+ 
     4392+                       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 
     4393+                                               number_to_move - 1; 
     4394+ 
     4395+                       } 
     4396+ 
     4397+               if ( num_to_read > YY_READ_BUF_SIZE ) 
     4398+                       num_to_read = YY_READ_BUF_SIZE; 
     4399+ 
     4400+               /* Read in more data. */ 
     4401+               YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 
     4402+                       (yy_n_chars), num_to_read ); 
     4403+ 
     4404+               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 
     4405+               } 
     4406+ 
     4407+       if ( (yy_n_chars) == 0 ) 
     4408+               { 
     4409+               if ( number_to_move == YY_MORE_ADJ ) 
     4410+                       { 
     4411+                       ret_val = EOB_ACT_END_OF_FILE; 
     4412+                       zconfrestart(zconfin  ); 
     4413+                       } 
     4414+ 
     4415+               else 
     4416+                       { 
     4417+                       ret_val = EOB_ACT_LAST_MATCH; 
     4418+                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 
     4419+                               YY_BUFFER_EOF_PENDING; 
     4420+                       } 
     4421+               } 
     4422+ 
     4423+       else 
     4424+               ret_val = EOB_ACT_CONTINUE_SCAN; 
     4425+ 
     4426+       (yy_n_chars) += number_to_move; 
     4427+       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 
     4428+       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 
     4429+ 
     4430+       (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 
     4431+ 
     4432+       return ret_val; 
     4433+} 
     4434+ 
     4435+/* yy_get_previous_state - get the state just before the EOB char was reached */ 
     4436+ 
     4437+    static yy_state_type yy_get_previous_state (void) 
     4438+{ 
     4439+       register yy_state_type yy_current_state; 
     4440+       register char *yy_cp; 
     4441+ 
     4442+       yy_current_state = (yy_start); 
     4443+ 
     4444+       for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 
     4445+               { 
     4446+               yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)]; 
     4447+               } 
     4448+ 
     4449+       return yy_current_state; 
     4450+} 
     4451+ 
     4452+/* yy_try_NUL_trans - try to make a transition on the NUL character 
     4453+ * 
     4454+ * synopsis 
     4455+ *     next_state = yy_try_NUL_trans( current_state ); 
     4456+ */ 
     4457+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state ) 
     4458+{ 
     4459+       register int yy_is_jam; 
     4460+ 
     4461+       yy_current_state = yy_nxt[yy_current_state][1]; 
     4462+       yy_is_jam = (yy_current_state <= 0); 
     4463+ 
     4464+       return yy_is_jam ? 0 : yy_current_state; 
     4465+} 
     4466+ 
     4467+    static void yyunput (int c, register char * yy_bp ) 
     4468+{ 
     4469+       register char *yy_cp; 
     4470+ 
     4471+    yy_cp = (yy_c_buf_p); 
     4472+ 
     4473+       /* undo effects of setting up zconftext */ 
     4474+       *yy_cp = (yy_hold_char); 
     4475+ 
     4476+       if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 
     4477+               { /* need to shift things up to make room */ 
     4478+               /* +2 for EOB chars. */ 
     4479+               register int number_to_move = (yy_n_chars) + 2; 
     4480+               register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 
     4481+                                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 
     4482+               register char *source = 
     4483+                               &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; 
     4484+ 
     4485+               while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 
     4486+                       *--dest = *--source; 
     4487+ 
     4488+               yy_cp += (int) (dest - source); 
     4489+               yy_bp += (int) (dest - source); 
     4490+               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = 
     4491+                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; 
     4492+ 
     4493+               if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 
     4494+                       YY_FATAL_ERROR( "flex scanner push-back overflow" ); 
     4495+               } 
     4496+ 
     4497+       *--yy_cp = (char) c; 
     4498+ 
     4499+       (yytext_ptr) = yy_bp; 
     4500+       (yy_hold_char) = *yy_cp; 
     4501+       (yy_c_buf_p) = yy_cp; 
     4502+} 
     4503+ 
     4504+#ifndef YY_NO_INPUT 
     4505+#ifdef __cplusplus 
     4506+    static int yyinput (void) 
     4507+#else 
     4508+    static int input  (void) 
     4509+#endif 
     4510+ 
     4511+{ 
     4512+       int c; 
     4513+ 
     4514+       *(yy_c_buf_p) = (yy_hold_char); 
     4515+ 
     4516+       if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 
     4517+               { 
     4518+               /* yy_c_buf_p now points to the character we want to return. 
     4519+                * If this occurs *before* the EOB characters, then it's a 
     4520+                * valid NUL; if not, then we've hit the end of the buffer. 
     4521+                */ 
     4522+               if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 
     4523+                       /* This was really a NUL. */ 
     4524+                       *(yy_c_buf_p) = '\0'; 
     4525+ 
     4526+               else 
     4527+                       { /* need more input */ 
     4528+                       int offset = (yy_c_buf_p) - (yytext_ptr); 
     4529+                       ++(yy_c_buf_p); 
     4530+ 
     4531+                       switch ( yy_get_next_buffer(  ) ) 
     4532+                               { 
     4533+                               case EOB_ACT_LAST_MATCH: 
     4534+                                       /* This happens because yy_g_n_b() 
     4535+                                        * sees that we've accumulated a 
     4536+                                        * token and flags that we need to 
     4537+                                        * try matching the token before 
     4538+                                        * proceeding.  But for input(), 
     4539+                                        * there's no matching to consider. 
     4540+                                        * So convert the EOB_ACT_LAST_MATCH 
     4541+                                        * to EOB_ACT_END_OF_FILE. 
     4542+                                        */ 
     4543+ 
     4544+                                       /* Reset buffer status. */ 
     4545+                                       zconfrestart(zconfin ); 
     4546+ 
     4547+                                       /*FALLTHROUGH*/ 
     4548+ 
     4549+                               case EOB_ACT_END_OF_FILE: 
     4550+                                       { 
     4551+                                       if ( zconfwrap( ) ) 
     4552+                                               return EOF; 
     4553+ 
     4554+                                       if ( ! (yy_did_buffer_switch_on_eof) ) 
     4555+                                               YY_NEW_FILE; 
     4556+#ifdef __cplusplus 
     4557+                                       return yyinput(); 
     4558+#else 
     4559+                                       return input(); 
     4560+#endif 
     4561+                                       } 
     4562+ 
     4563+                               case EOB_ACT_CONTINUE_SCAN: 
     4564+                                       (yy_c_buf_p) = (yytext_ptr) + offset; 
     4565+                                       break; 
     4566+                               } 
     4567+                       } 
     4568+               } 
     4569+ 
     4570+       c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */ 
     4571+       *(yy_c_buf_p) = '\0';   /* preserve zconftext */ 
     4572+       (yy_hold_char) = *++(yy_c_buf_p); 
     4573+ 
     4574+       return c; 
     4575+} 
     4576+#endif /* ifndef YY_NO_INPUT */ 
     4577+ 
     4578+/** Immediately switch to a different input stream. 
     4579+ * @param input_file A readable stream. 
     4580+ * 
     4581+ * @note This function does not reset the start condition to @c INITIAL . 
     4582+ */ 
     4583+    void zconfrestart  (FILE * input_file ) 
     4584+{ 
     4585+ 
     4586+       if ( ! YY_CURRENT_BUFFER ){ 
     4587+        zconfensure_buffer_stack (); 
     4588+               YY_CURRENT_BUFFER_LVALUE = 
     4589+            zconf_create_buffer(zconfin,YY_BUF_SIZE ); 
     4590+       } 
     4591+ 
     4592+       zconf_init_buffer(YY_CURRENT_BUFFER,input_file ); 
     4593+       zconf_load_buffer_state( ); 
     4594+} 
     4595+ 
     4596+/** Switch to a different input buffer. 
     4597+ * @param new_buffer The new input buffer. 
     4598+ * 
     4599+ */ 
     4600+    void zconf_switch_to_buffer  (YY_BUFFER_STATE  new_buffer ) 
     4601+{ 
     4602+ 
     4603+       /* TODO. We should be able to replace this entire function body 
     4604+        * with 
     4605+        *              zconfpop_buffer_state(); 
     4606+        *              zconfpush_buffer_state(new_buffer); 
     4607+     */ 
     4608+       zconfensure_buffer_stack (); 
     4609+       if ( YY_CURRENT_BUFFER == new_buffer ) 
     4610+               return; 
     4611+ 
     4612+       if ( YY_CURRENT_BUFFER ) 
     4613+               { 
     4614+               /* Flush out information for old buffer. */ 
     4615+               *(yy_c_buf_p) = (yy_hold_char); 
     4616+               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 
     4617+               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 
     4618+               } 
     4619+ 
     4620+       YY_CURRENT_BUFFER_LVALUE = new_buffer; 
     4621+       zconf_load_buffer_state( ); 
     4622+ 
     4623+       /* We don't actually know whether we did this switch during 
     4624+        * EOF (zconfwrap()) processing, but the only time this flag 
     4625+        * is looked at is after zconfwrap() is called, so it's safe 
     4626+        * to go ahead and always set it. 
     4627+        */ 
     4628+       (yy_did_buffer_switch_on_eof) = 1; 
     4629+} 
     4630+ 
     4631+static void zconf_load_buffer_state  (void) 
     4632+{ 
     4633+       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 
     4634+       (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 
     4635+       zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 
     4636+       (yy_hold_char) = *(yy_c_buf_p); 
     4637+} 
     4638+ 
     4639+/** Allocate and initialize an input buffer state. 
     4640+ * @param file A readable stream. 
     4641+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 
     4642+ * 
     4643+ * @return the allocated buffer state. 
     4644+ */ 
     4645+    YY_BUFFER_STATE zconf_create_buffer  (FILE * file, int  size ) 
     4646+{ 
     4647+       YY_BUFFER_STATE b; 
     4648+ 
     4649+       b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  ); 
     4650+       if ( ! b ) 
     4651+               YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" ); 
     4652+ 
     4653+       b->yy_buf_size = size; 
     4654+ 
     4655+       /* yy_ch_buf has to be 2 characters longer than the size given because 
     4656+        * we need to put in 2 end-of-buffer characters. 
     4657+        */ 
     4658+       b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2  ); 
     4659+       if ( ! b->yy_ch_buf ) 
     4660+               YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" ); 
     4661+ 
     4662+       b->yy_is_our_buffer = 1; 
     4663+ 
     4664+       zconf_init_buffer(b,file ); 
     4665+ 
     4666+       return b; 
     4667+} 
     4668+ 
     4669+/** Destroy the buffer. 
     4670+ * @param b a buffer created with zconf_create_buffer() 
     4671+ * 
     4672+ */ 
     4673+    void zconf_delete_buffer (YY_BUFFER_STATE  b ) 
     4674+{ 
     4675+ 
     4676+       if ( ! b ) 
     4677+               return; 
     4678+ 
     4679+       if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 
     4680+               YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 
     4681+ 
     4682+       if ( b->yy_is_our_buffer ) 
     4683+               zconffree((void *) b->yy_ch_buf  ); 
     4684+ 
     4685+       zconffree((void *) b  ); 
     4686+} 
     4687+ 
     4688+/* Initializes or reinitializes a buffer. 
     4689+ * This function is sometimes called more than once on the same buffer, 
     4690+ * such as during a zconfrestart() or at EOF. 
     4691+ */ 
     4692+    static void zconf_init_buffer  (YY_BUFFER_STATE  b, FILE * file ) 
     4693+ 
     4694+{ 
     4695+       int oerrno = errno; 
     4696+ 
     4697+       zconf_flush_buffer(b ); 
     4698+ 
     4699+       b->yy_input_file = file; 
     4700+       b->yy_fill_buffer = 1; 
     4701+ 
     4702+    /* If b is the current buffer, then zconf_init_buffer was _probably_ 
     4703+     * called from zconfrestart() or through yy_get_next_buffer. 
     4704+     * In that case, we don't want to reset the lineno or column. 
     4705+     */ 
     4706+    if (b != YY_CURRENT_BUFFER){ 
     4707+        b->yy_bs_lineno = 1; 
     4708+        b->yy_bs_column = 0; 
     4709+    } 
     4710+ 
     4711+        b->yy_is_interactive = 0; 
     4712+ 
     4713+       errno = oerrno; 
     4714+} 
     4715+ 
     4716+/** Discard all buffered characters. On the next scan, YY_INPUT will be called. 
     4717+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 
     4718+ * 
     4719+ */ 
     4720+    void zconf_flush_buffer (YY_BUFFER_STATE  b ) 
     4721+{ 
     4722+       if ( ! b ) 
     4723+               return; 
     4724+ 
     4725+       b->yy_n_chars = 0; 
     4726+ 
     4727+       /* We always need two end-of-buffer characters.  The first causes 
     4728+        * a transition to the end-of-buffer state.  The second causes 
     4729+        * a jam in that state. 
     4730+        */ 
     4731+       b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 
     4732+       b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 
     4733+ 
     4734+       b->yy_buf_pos = &b->yy_ch_buf[0]; 
     4735+ 
     4736+       b->yy_at_bol = 1; 
     4737+       b->yy_buffer_status = YY_BUFFER_NEW; 
     4738+ 
     4739+       if ( b == YY_CURRENT_BUFFER ) 
     4740+               zconf_load_buffer_state( ); 
     4741+} 
     4742+ 
     4743+/** Pushes the new state onto the stack. The new state becomes 
     4744+ *  the current state. This function will allocate the stack 
     4745+ *  if necessary. 
     4746+ *  @param new_buffer The new state. 
     4747+ * 
     4748+ */ 
     4749+void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer ) 
     4750+{ 
     4751+       if (new_buffer == NULL) 
     4752+               return; 
     4753+ 
     4754+       zconfensure_buffer_stack(); 
     4755+ 
     4756+       /* This block is copied from zconf_switch_to_buffer. */ 
     4757+       if ( YY_CURRENT_BUFFER ) 
     4758+               { 
     4759+               /* Flush out information for old buffer. */ 
     4760+               *(yy_c_buf_p) = (yy_hold_char); 
     4761+               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 
     4762+               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 
     4763+               } 
     4764+ 
     4765+       /* Only push if top exists. Otherwise, replace top. */ 
     4766+       if (YY_CURRENT_BUFFER) 
     4767+               (yy_buffer_stack_top)++; 
     4768+       YY_CURRENT_BUFFER_LVALUE = new_buffer; 
     4769+ 
     4770+       /* copied from zconf_switch_to_buffer. */ 
     4771+       zconf_load_buffer_state( ); 
     4772+       (yy_did_buffer_switch_on_eof) = 1; 
     4773+} 
     4774+ 
     4775+/** Removes and deletes the top of the stack, if present. 
     4776+ *  The next element becomes the new top. 
     4777+ * 
     4778+ */ 
     4779+void zconfpop_buffer_state (void) 
     4780+{ 
     4781+       if (!YY_CURRENT_BUFFER) 
     4782+               return; 
     4783+ 
     4784+       zconf_delete_buffer(YY_CURRENT_BUFFER ); 
     4785+       YY_CURRENT_BUFFER_LVALUE = NULL; 
     4786+       if ((yy_buffer_stack_top) > 0) 
     4787+               --(yy_buffer_stack_top); 
     4788+ 
     4789+       if (YY_CURRENT_BUFFER) { 
     4790+               zconf_load_buffer_state( ); 
     4791+               (yy_did_buffer_switch_on_eof) = 1; 
     4792+       } 
     4793+} 
     4794+ 
     4795+/* Allocates the stack if it does not exist. 
     4796+ *  Guarantees space for at least one push. 
     4797+ */ 
     4798+static void zconfensure_buffer_stack (void) 
     4799+{ 
     4800+       int num_to_alloc; 
     4801+ 
     4802+       if (!(yy_buffer_stack)) { 
     4803+ 
     4804+               /* First allocation is just for 2 elements, since we don't know if this 
     4805+                * scanner will even need a stack. We use 2 instead of 1 to avoid an 
     4806+                * immediate realloc on the next call. 
     4807+         */ 
     4808+               num_to_alloc = 1; 
     4809+               (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc 
     4810+                                                               (num_to_alloc * sizeof(struct yy_buffer_state*) 
     4811+                                                               ); 
     4812+ 
     4813+               memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 
     4814+ 
     4815+               (yy_buffer_stack_max) = num_to_alloc; 
     4816+               (yy_buffer_stack_top) = 0; 
     4817+               return; 
     4818+       } 
     4819+ 
     4820+       if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 
     4821+ 
     4822+               /* Increase the buffer to prepare for a possible push. */ 
     4823+               int grow_size = 8 /* arbitrary grow size */; 
     4824+ 
     4825+               num_to_alloc = (yy_buffer_stack_max) + grow_size; 
     4826+               (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc 
     4827+                                                               ((yy_buffer_stack), 
     4828+                                                               num_to_alloc * sizeof(struct yy_buffer_state*) 
     4829+                                                               ); 
     4830+ 
     4831+               /* zero only the new slots.*/ 
     4832+               memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 
     4833+               (yy_buffer_stack_max) = num_to_alloc; 
     4834+       } 
     4835+} 
     4836+ 
     4837+/** Setup the input buffer state to scan directly from a user-specified character buffer. 
     4838+ * @param base the character buffer 
     4839+ * @param size the size in bytes of the character buffer 
     4840+ * 
     4841+ * @return the newly allocated buffer state object. 
     4842+ */ 
     4843+YY_BUFFER_STATE zconf_scan_buffer  (char * base, yy_size_t  size ) 
     4844+{ 
     4845+       YY_BUFFER_STATE b; 
     4846+ 
     4847+       if ( size < 2 || 
     4848+            base[size-2] != YY_END_OF_BUFFER_CHAR || 
     4849+            base[size-1] != YY_END_OF_BUFFER_CHAR ) 
     4850+               /* They forgot to leave room for the EOB's. */ 
     4851+               return 0; 
     4852+ 
     4853+       b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  ); 
     4854+       if ( ! b ) 
     4855+               YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" ); 
     4856+ 
     4857+       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */ 
     4858+       b->yy_buf_pos = b->yy_ch_buf = base; 
     4859+       b->yy_is_our_buffer = 0; 
     4860+       b->yy_input_file = 0; 
     4861+       b->yy_n_chars = b->yy_buf_size; 
     4862+       b->yy_is_interactive = 0; 
     4863+       b->yy_at_bol = 1; 
     4864+       b->yy_fill_buffer = 0; 
     4865+       b->yy_buffer_status = YY_BUFFER_NEW; 
     4866+ 
     4867+       zconf_switch_to_buffer(b  ); 
     4868+ 
     4869+       return b; 
     4870+} 
     4871+ 
     4872+/** Setup the input buffer state to scan a string. The next call to zconflex() will 
     4873+ * scan from a @e copy of @a str. 
     4874+ * @param str a NUL-terminated string to scan 
     4875+ * 
     4876+ * @return the newly allocated buffer state object. 
     4877+ * @note If you want to scan bytes that may contain NUL values, then use 
     4878+ *       zconf_scan_bytes() instead. 
     4879+ */ 
     4880+YY_BUFFER_STATE zconf_scan_string (yyconst char * str ) 
     4881+{ 
     4882+ 
     4883+       return zconf_scan_bytes(str,strlen(str) ); 
     4884+} 
     4885+ 
     4886+/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will 
     4887+ * scan from a @e copy of @a bytes. 
     4888+ * @param bytes the byte buffer to scan 
     4889+ * @param len the number of bytes in the buffer pointed to by @a bytes. 
     4890+ * 
     4891+ * @return the newly allocated buffer state object. 
     4892+ */ 
     4893+YY_BUFFER_STATE zconf_scan_bytes  (yyconst char * bytes, int  len ) 
     4894+{ 
     4895+       YY_BUFFER_STATE b; 
     4896+       char *buf; 
     4897+       yy_size_t n; 
     4898+       int i; 
     4899+ 
     4900+       /* Get memory for full buffer, including space for trailing EOB's. */ 
     4901+       n = len + 2; 
     4902+       buf = (char *) zconfalloc(n  ); 
     4903+       if ( ! buf ) 
     4904+               YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" ); 
     4905+ 
     4906+       for ( i = 0; i < len; ++i ) 
     4907+               buf[i] = bytes[i]; 
     4908+ 
     4909+       buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; 
     4910+ 
     4911+       b = zconf_scan_buffer(buf,n ); 
     4912+       if ( ! b ) 
     4913+               YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" ); 
     4914+ 
     4915+       /* It's okay to grow etc. this buffer, and we should throw it 
     4916+        * away when we're done. 
     4917+        */ 
     4918+       b->yy_is_our_buffer = 1; 
     4919+ 
     4920+       return b; 
     4921+} 
     4922+ 
     4923+#ifndef YY_EXIT_FAILURE 
     4924+#define YY_EXIT_FAILURE 2 
     4925+#endif 
     4926+ 
     4927+static void yy_fatal_error (yyconst char* msg ) 
     4928+{ 
     4929+       (void) fprintf( stderr, "%s\n", msg ); 
     4930+       exit( YY_EXIT_FAILURE ); 
     4931+} 
     4932+ 
     4933+/* Redefine yyless() so it works in section 3 code. */ 
     4934+ 
     4935+#undef yyless 
     4936+#define yyless(n) \ 
     4937+       do \ 
     4938+               { \ 
     4939+               /* Undo effects of setting up zconftext. */ \ 
     4940+        int yyless_macro_arg = (n); \ 
     4941+        YY_LESS_LINENO(yyless_macro_arg);\ 
     4942+               zconftext[zconfleng] = (yy_hold_char); \ 
     4943+               (yy_c_buf_p) = zconftext + yyless_macro_arg; \ 
     4944+               (yy_hold_char) = *(yy_c_buf_p); \ 
     4945+               *(yy_c_buf_p) = '\0'; \ 
     4946+               zconfleng = yyless_macro_arg; \ 
     4947+               } \ 
     4948+       while ( 0 ) 
     4949+ 
     4950+/* Accessor  methods (get/set functions) to struct members. */ 
     4951+ 
     4952+/** Get the current line number. 
     4953+ * 
     4954+ */ 
     4955+int zconfget_lineno  (void) 
     4956+{ 
     4957+ 
     4958+    return zconflineno; 
     4959+} 
     4960+ 
     4961+/** Get the input stream. 
     4962+ * 
     4963+ */ 
     4964+FILE *zconfget_in  (void) 
     4965+{ 
     4966+        return zconfin; 
     4967+} 
     4968+ 
     4969+/** Get the output stream. 
     4970+ * 
     4971+ */ 
     4972+FILE *zconfget_out  (void) 
     4973+{ 
     4974+        return zconfout; 
     4975+} 
     4976+ 
     4977+/** Get the length of the current token. 
     4978+ * 
     4979+ */ 
     4980+int zconfget_leng  (void) 
     4981+{ 
     4982+        return zconfleng; 
     4983+} 
     4984+ 
     4985+/** Get the current token. 
     4986+ * 
     4987+ */ 
     4988+ 
     4989+char *zconfget_text  (void) 
     4990+{ 
     4991+        return zconftext; 
     4992+} 
     4993+ 
     4994+/** Set the current line number. 
     4995+ * @param line_number 
     4996+ * 
     4997+ */ 
     4998+void zconfset_lineno (int  line_number ) 
     4999+{ 
     5000+ 
     5001+    zconflineno = line_number; 
     5002+} 
     5003+ 
     5004+/** Set the input stream. This does not discard the current 
     5005+ * input buffer. 
     5006+ * @param in_str A readable stream. 
     5007+ * 
     5008+ * @see zconf_switch_to_buffer 
     5009+ */ 
     5010+void zconfset_in (FILE *  in_str ) 
     5011+{ 
     5012+        zconfin = in_str ; 
     5013+} 
     5014+ 
     5015+void zconfset_out (FILE *  out_str ) 
     5016+{ 
     5017+        zconfout = out_str ; 
     5018+} 
     5019+ 
     5020+int zconfget_debug  (void) 
     5021+{ 
     5022+        return zconf_flex_debug; 
     5023+} 
     5024+ 
     5025+void zconfset_debug (int  bdebug ) 
     5026+{ 
     5027+        zconf_flex_debug = bdebug ; 
     5028+} 
     5029+ 
     5030+/* zconflex_destroy is for both reentrant and non-reentrant scanners. */ 
     5031+int zconflex_destroy  (void) 
     5032+{ 
     5033+ 
     5034+    /* Pop the buffer stack, destroying each element. */ 
     5035+       while(YY_CURRENT_BUFFER){ 
     5036+               zconf_delete_buffer(YY_CURRENT_BUFFER  ); 
     5037+               YY_CURRENT_BUFFER_LVALUE = NULL; 
     5038+               zconfpop_buffer_state(); 
     5039+       } 
     5040+ 
     5041+       /* Destroy the stack itself. */ 
     5042+       zconffree((yy_buffer_stack) ); 
     5043+       (yy_buffer_stack) = NULL; 
     5044+ 
     5045+    return 0; 
     5046+} 
     5047+ 
     5048+/* 
     5049+ * Internal utility routines. 
     5050+ */ 
     5051+ 
     5052+#ifndef yytext_ptr 
     5053+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) 
     5054+{ 
     5055+       register int i; 
     5056+       for ( i = 0; i < n; ++i ) 
     5057+               s1[i] = s2[i]; 
     5058+} 
     5059+#endif 
     5060+ 
     5061+#ifdef YY_NEED_STRLEN 
     5062+static int yy_flex_strlen (yyconst char * s ) 
     5063+{ 
     5064+       register int n; 
     5065+       for ( n = 0; s[n]; ++n ) 
     5066+               ; 
     5067+ 
     5068+       return n; 
     5069+} 
     5070+#endif 
     5071+ 
     5072+void *zconfalloc (yy_size_t  size ) 
     5073+{ 
     5074+       return (void *) malloc( size ); 
     5075+} 
     5076+ 
     5077+void *zconfrealloc  (void * ptr, yy_size_t  size ) 
     5078+{ 
     5079+       /* The cast to (char *) in the following accommodates both 
     5080+        * implementations that use char* generic pointers, and those 
     5081+        * that use void* generic pointers.  It works with the latter 
     5082+        * because both ANSI C and C++ allow castless assignment from 
     5083+        * any pointer type to void*, and deal with argument conversions 
     5084+        * as though doing an assignment. 
     5085+        */ 
     5086+       return (void *) realloc( (char *) ptr, size ); 
     5087+} 
     5088+ 
     5089+void zconffree (void * ptr ) 
     5090+{ 
     5091+       free( (char *) ptr );   /* see zconfrealloc() for (char *) cast */ 
     5092+} 
     5093+ 
     5094+#define YYTABLES_NAME "yytables" 
     5095+ 
     5096+#undef YY_NEW_FILE 
     5097+#undef YY_FLUSH_BUFFER 
     5098+#undef yy_set_bol 
     5099+#undef yy_new_buffer 
     5100+#undef yy_set_interactive 
     5101+#undef yytext_ptr 
     5102+#undef YY_DO_BEFORE_ACTION 
     5103+ 
     5104+#ifdef YY_DECL_IS_OURS 
     5105+#undef YY_DECL_IS_OURS 
     5106+#undef YY_DECL 
     5107+#endif 
     5108+ 
     5109+void zconf_starthelp(void) 
     5110+{ 
     5111+       new_string(); 
     5112+       last_ts = first_ts = 0; 
     5113+       BEGIN(HELP); 
     5114+} 
     5115+ 
     5116+static void zconf_endhelp(void) 
     5117+{ 
     5118+       zconflval.string = text; 
     5119+       BEGIN(INITIAL); 
     5120+} 
     5121+ 
     5122+/* 
     5123+ * Try to open specified file with following names: 
     5124+ * ./name 
     5125+ * $(srctree)/name 
     5126+ * The latter is used when srctree is separate from objtree 
     5127+ * when compiling the kernel. 
     5128+ * Return NULL if file is not found. 
     5129+ */ 
     5130+FILE *zconf_fopen(const char *name) 
     5131+{ 
     5132+       char *env, fullname[PATH_MAX+1]; 
     5133+       FILE *f; 
     5134+ 
     5135+       f = fopen(name, "r"); 
     5136+       if (!f && name[0] != '/') { 
     5137+               env = getenv(SRCTREE); 
     5138+               if (env) { 
     5139+                       sprintf(fullname, "%s/%s", env, name); 
     5140+                       f = fopen(fullname, "r"); 
     5141+               } 
     5142+       } 
     5143+       return f; 
     5144+} 
     5145+ 
     5146+void zconf_initscan(const char *name) 
     5147+{ 
     5148+       zconfin = zconf_fopen(name); 
     5149+       if (!zconfin) { 
     5150+               printf("can't find file %s\n", name); 
     5151+               exit(1); 
     5152+       } 
     5153+ 
     5154+       current_buf = malloc(sizeof(*current_buf)); 
     5155+       memset(current_buf, 0, sizeof(*current_buf)); 
     5156+ 
     5157+       current_file = file_lookup(name); 
     5158+       current_file->lineno = 1; 
     5159+       current_file->flags = FILE_BUSY; 
     5160+} 
     5161+ 
     5162+void zconf_nextfile(const char *name) 
     5163+{ 
     5164+       struct file *file = file_lookup(name); 
     5165+       struct buffer *buf = malloc(sizeof(*buf)); 
     5166+       memset(buf, 0, sizeof(*buf)); 
     5167+ 
     5168+       current_buf->state = YY_CURRENT_BUFFER; 
     5169+       zconfin = zconf_fopen(name); 
     5170+       if (!zconfin) { 
     5171+               printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name); 
     5172+               exit(1); 
     5173+       } 
     5174+       zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE)); 
     5175+       buf->parent = current_buf; 
     5176+       current_buf = buf; 
     5177+ 
     5178+       if (file->flags & FILE_BUSY) { 
     5179+               printf("recursive scan (%s)?\n", name); 
     5180+               exit(1); 
     5181+       } 
     5182+       if (file->flags & FILE_SCANNED) { 
     5183+               printf("file %s already scanned?\n", name); 
     5184+               exit(1); 
     5185+       } 
     5186+       file->flags |= FILE_BUSY; 
     5187+       file->lineno = 1; 
     5188+       file->parent = current_file; 
     5189+       current_file = file; 
     5190+} 
     5191+ 
     5192+static struct buffer *zconf_endfile(void) 
     5193+{ 
     5194+       struct buffer *parent; 
     5195+ 
     5196+       current_file->flags |= FILE_SCANNED; 
     5197+       current_file->flags &= ~FILE_BUSY; 
     5198+       current_file = current_file->parent; 
     5199+ 
     5200+       parent = current_buf->parent; 
     5201+       if (parent) { 
     5202+               fclose(zconfin); 
     5203+               zconf_delete_buffer(YY_CURRENT_BUFFER); 
     5204+               zconf_switch_to_buffer(parent->state); 
     5205+       } 
     5206+       free(current_buf); 
     5207+       current_buf = parent; 
     5208+ 
     5209+       return parent; 
     5210+} 
     5211+ 
     5212+int zconf_lineno(void) 
     5213+{ 
     5214+       if (current_buf) 
     5215+               return current_file->lineno - 1; 
     5216+       else 
     5217+               return 0; 
     5218+} 
     5219+ 
     5220+char *zconf_curname(void) 
     5221+{ 
     5222+       if (current_buf) 
     5223+               return current_file->name; 
     5224+       else 
     5225+               return "<none>"; 
     5226+} 
     5227+ 
     5228diff -urN busybox-1.1.0/scripts/config/lkc_defs.h busybox-1.1.0-cryptpw/scripts/config/lkc_defs.h 
     5229--- busybox-1.1.0/scripts/config/lkc_defs.h     1969-12-31 17:00:00.000000000 -0700 
     5230+++ busybox-1.1.0-cryptpw/scripts/config/lkc_defs.h     2006-01-18 14:40:36.000000000 -0700 
     5231@@ -0,0 +1,40 @@ 
     5232+ 
     5233+/* confdata.c */ 
     5234+#define conf_parse (*conf_parse_p) 
     5235+#define conf_read (*conf_read_p) 
     5236+#define conf_write (*conf_write_p) 
     5237+ 
     5238+/* menu.c */ 
     5239+#define rootmenu (*rootmenu_p) 
     5240+ 
     5241+#define menu_is_visible (*menu_is_visible_p) 
     5242+#define menu_get_prompt (*menu_get_prompt_p) 
     5243+#define menu_get_root_menu (*menu_get_root_menu_p) 
     5244+#define menu_get_parent_menu (*menu_get_parent_menu_p) 
     5245+ 
     5246+/* symbol.c */ 
     5247+#define symbol_hash (*symbol_hash_p) 
     5248+#define sym_change_count (*sym_change_count_p) 
     5249+ 
     5250+#define sym_lookup (*sym_lookup_p) 
     5251+#define sym_find (*sym_find_p) 
     5252+#define sym_re_search (*sym_re_search_p) 
     5253+#define sym_type_name (*sym_type_name_p) 
     5254+#define sym_calc_value (*sym_calc_value_p) 
     5255+#define sym_get_type (*sym_get_type_p) 
     5256+#define sym_tristate_within_range (*sym_tristate_within_range_p) 
     5257+#define sym_set_tristate_value (*sym_set_tristate_value_p) 
     5258+#define sym_toggle_tristate_value (*sym_toggle_tristate_value_p) 
     5259+#define sym_string_valid (*sym_string_valid_p) 
     5260+#define sym_string_within_range (*sym_string_within_range_p) 
     5261+#define sym_set_string_value (*sym_set_string_value_p) 
     5262+#define sym_is_changable (*sym_is_changable_p) 
     5263+#define sym_get_choice_prop (*sym_get_choice_prop_p) 
     5264+#define sym_get_default_prop (*sym_get_default_prop_p) 
     5265+#define sym_get_string_value (*sym_get_string_value_p) 
     5266+ 
     5267+#define prop_get_type_name (*prop_get_type_name_p) 
     5268+ 
     5269+/* expr.c */ 
     5270+#define expr_compare_type (*expr_compare_type_p) 
     5271+#define expr_print (*expr_print_p) 
     5272diff -urN busybox-1.1.0/scripts/config/zconf.tab.c busybox-1.1.0-cryptpw/scripts/config/zconf.tab.c 
     5273--- busybox-1.1.0/scripts/config/zconf.tab.c    1969-12-31 17:00:00.000000000 -0700 
     5274+++ busybox-1.1.0-cryptpw/scripts/config/zconf.tab.c    2006-01-18 14:40:37.000000000 -0700 
     5275@@ -0,0 +1,2130 @@ 
     5276+/* A Bison parser, made by GNU Bison 1.875a.  */ 
     5277+ 
     5278+/* Skeleton parser for Yacc-like parsing with Bison, 
     5279+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 
     5280+ 
     5281+   This program is free software; you can redistribute it and/or modify 
     5282+   it under the terms of the GNU General Public License as published by 
     5283+   the Free Software Foundation; either version 2, or (at your option) 
     5284+   any later version. 
     5285+ 
     5286+   This program is distributed in the hope that it will be useful, 
     5287+   but WITHOUT ANY WARRANTY; without even the implied warranty of 
     5288+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     5289+   GNU General Public License for more details. 
     5290+ 
     5291+   You should have received a copy of the GNU General Public License 
     5292+   along with this program; if not, write to the Free Software 
     5293+   Foundation, Inc., 59 Temple Place - Suite 330, 
     5294+   Boston, MA 02111-1307, USA.  */ 
     5295+ 
     5296+/* As a special exception, when this file is copied by Bison into a 
     5297+   Bison output file, you may use that output file without restriction. 
     5298+   This special exception was added by the Free Software Foundation 
     5299+   in version 1.24 of Bison.  */ 
     5300+ 
     5301+/* Written by Richard Stallman by simplifying the original so called 
     5302+   ``semantic'' parser.  */ 
     5303+ 
     5304+/* All symbols defined below should begin with yy or YY, to avoid 
     5305+   infringing on user name space.  This should be done even for local 
     5306+   variables, as they might otherwise be expanded by user macros. 
     5307+   There are some unavoidable exceptions within include files to 
     5308+   define necessary library symbols; they are noted "INFRINGES ON 
     5309+   USER NAME SPACE" below.  */ 
     5310+ 
     5311+/* Identify Bison output.  */ 
     5312+#define YYBISON 1 
     5313+ 
     5314+/* Skeleton name.  */ 
     5315+#define YYSKELETON_NAME "yacc.c" 
     5316+ 
     5317+/* Pure parsers.  */ 
     5318+#define YYPURE 0 
     5319+ 
     5320+/* Using locations.  */ 
     5321+#define YYLSP_NEEDED 0 
     5322+ 
     5323+/* If NAME_PREFIX is specified substitute the variables and functions 
     5324+   names.  */ 
     5325+#define yyparse zconfparse 
     5326+#define yylex   zconflex 
     5327+#define yyerror zconferror 
     5328+#define yylval  zconflval 
     5329+#define yychar  zconfchar 
     5330+#define yydebug zconfdebug 
     5331+#define yynerrs zconfnerrs 
     5332+ 
     5333+ 
     5334+/* Tokens.  */ 
     5335+#ifndef YYTOKENTYPE 
     5336+# define YYTOKENTYPE 
     5337+   /* Put the tokens into the symbol table, so that GDB and other debuggers 
     5338+      know about them.  */ 
     5339+   enum yytokentype { 
     5340+     T_MAINMENU = 258, 
     5341+     T_MENU = 259, 
     5342+     T_ENDMENU = 260, 
     5343+     T_SOURCE = 261, 
     5344+     T_CHOICE = 262, 
     5345+     T_ENDCHOICE = 263, 
     5346+     T_COMMENT = 264, 
     5347+     T_CONFIG = 265, 
     5348+     T_MENUCONFIG = 266, 
     5349+     T_HELP = 267, 
     5350+     T_HELPTEXT = 268, 
     5351+     T_IF = 269, 
     5352+     T_ENDIF = 270, 
     5353+     T_DEPENDS = 271, 
     5354+     T_REQUIRES = 272, 
     5355+     T_OPTIONAL = 273, 
     5356+     T_PROMPT = 274, 
     5357+     T_DEFAULT = 275, 
     5358+     T_TRISTATE = 276, 
     5359+     T_DEF_TRISTATE = 277, 
     5360+     T_BOOLEAN = 278, 
     5361+     T_DEF_BOOLEAN = 279, 
     5362+     T_STRING = 280, 
     5363+     T_INT = 281, 
     5364+     T_HEX = 282, 
     5365+     T_WORD = 283, 
     5366+     T_WORD_QUOTE = 284, 
     5367+     T_UNEQUAL = 285, 
     5368+     T_EOF = 286, 
     5369+     T_EOL = 287, 
     5370+     T_CLOSE_PAREN = 288, 
     5371+     T_OPEN_PAREN = 289, 
     5372+     T_ON = 290, 
     5373+     T_SELECT = 291, 
     5374+     T_RANGE = 292, 
     5375+     T_OR = 293, 
     5376+     T_AND = 294, 
     5377+     T_EQUAL = 295, 
     5378+     T_NOT = 296 
     5379+   }; 
     5380+#endif 
     5381+#define T_MAINMENU 258 
     5382+#define T_MENU 259 
     5383+#define T_ENDMENU 260 
     5384+#define T_SOURCE 261 
     5385+#define T_CHOICE 262 
     5386+#define T_ENDCHOICE 263 
     5387+#define T_COMMENT 264 
     5388+#define T_CONFIG 265 
     5389+#define T_MENUCONFIG 266 
     5390+#define T_HELP 267 
     5391+#define T_HELPTEXT 268 
     5392+#define T_IF 269 
     5393+#define T_ENDIF 270 
     5394+#define T_DEPENDS 271 
     5395+#define T_REQUIRES 272 
     5396+#define T_OPTIONAL 273 
     5397+#define T_PROMPT 274 
     5398+#define T_DEFAULT 275 
     5399+#define T_TRISTATE 276 
     5400+#define T_DEF_TRISTATE 277 
     5401+#define T_BOOLEAN 278 
     5402+#define T_DEF_BOOLEAN 279 
     5403+#define T_STRING 280 
     5404+#define T_INT 281 
     5405+#define T_HEX 282 
     5406+#define T_WORD 283 
     5407+#define T_WORD_QUOTE 284 
     5408+#define T_UNEQUAL 285 
     5409+#define T_EOF 286 
     5410+#define T_EOL 287 
     5411+#define T_CLOSE_PAREN 288 
     5412+#define T_OPEN_PAREN 289 
     5413+#define T_ON 290 
     5414+#define T_SELECT 291 
     5415+#define T_RANGE 292 
     5416+#define T_OR 293 
     5417+#define T_AND 294 
     5418+#define T_EQUAL 295 
     5419+#define T_NOT 296 
     5420+ 
     5421+ 
     5422+ 
     5423+ 
     5424+/* Copy the first part of user declarations.  */ 
     5425+ 
     5426+ 
     5427+/* 
     5428+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> 
     5429+ * Released under the terms of the GNU GPL v2.0. 
     5430+ */ 
     5431+ 
     5432+#include <ctype.h> 
     5433+#include <stdarg.h> 
     5434+#include <stdio.h> 
     5435+#include <stdlib.h> 
     5436+#include <string.h> 
     5437+#include <stdbool.h> 
     5438+ 
     5439+#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) 
     5440+ 
     5441+#define PRINTD         0x0001 
     5442+#define DEBUG_PARSE    0x0002 
     5443+ 
     5444+int cdebug = PRINTD; 
     5445+ 
     5446+extern int zconflex(void); 
     5447+static void zconfprint(const char *err, ...); 
     5448+static void zconferror(const char *err); 
     5449+static bool zconf_endtoken(int token, int starttoken, int endtoken); 
     5450+ 
     5451+struct symbol *symbol_hash[257]; 
     5452+ 
     5453+static struct menu *current_menu, *current_entry; 
     5454+ 
     5455+#define YYERROR_VERBOSE 
     5456+ 
     5457+ 
     5458+/* Enabling traces.  */ 
     5459+#ifndef YYDEBUG 
     5460+# define YYDEBUG 0 
     5461+#endif 
     5462+ 
     5463+/* Enabling verbose error messages.  */ 
     5464+#ifdef YYERROR_VERBOSE 
     5465+# undef YYERROR_VERBOSE 
     5466+# define YYERROR_VERBOSE 1 
     5467+#else 
     5468+# define YYERROR_VERBOSE 0 
     5469+#endif 
     5470+ 
     5471+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 
     5472+ 
     5473+typedef union YYSTYPE { 
     5474+       int token; 
     5475+       char *string; 
     5476+       struct symbol *symbol; 
     5477+       struct expr *expr; 
     5478+       struct menu *menu; 
     5479+} YYSTYPE; 
     5480+/* Line 191 of yacc.c.  */