Browse Source

Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (217 commits)
  net/ieee80211: fix more crypto-related build breakage
  [PATCH] Spidernet: add ethtool -S (show statistics)
  [NET] GT96100: Delete bitrotting ethernet driver
  [PATCH] mv643xx_eth: restrict to 32-bit PPC_MULTIPLATFORM
  [PATCH] Cirrus Logic ep93xx ethernet driver
  r8169: the MMIO region of the 8167 stands behin BAR#1
  e1000, ixgb: Remove pointless wrappers
  [PATCH] Remove powerpc specific parts of 3c509 driver
  [PATCH] s2io: Switch to pci_get_device
  [PATCH] gt96100: move to pci_get_device API
  [PATCH] ehea: bugfix for register access functions
  [PATCH] e1000 disable device on PCI error
  drivers/net/phy/fixed: #if 0 some incomplete code
  drivers/net: const-ify ethtool_ops declarations
  [PATCH] ethtool: allow const ethtool_ops
  [PATCH] sky2: big endian
  [PATCH] sky2: fiber support
  [PATCH] sky2: tx pause bug fix
  drivers/net: Trim trailing whitespace
  [PATCH] ehea: IBM eHEA Ethernet Device Driver
  ...

Manually resolved conflicts in drivers/net/ixgb/ixgb_main.c and
drivers/net/sky2.c related to CHECKSUM_HW/CHECKSUM_PARTIAL changes by
commit 84fa7933a33f806bbbaae6775e87459b1ec584c0 that just happened to be
next to unrelated changes in this update.
Linus Torvalds 19 years ago
parent
commit
a319a2773a
100 changed files with 18875 additions and 12845 deletions
  1. 46 0
      Documentation/networking/LICENSE.qla3xxx
  2. 32 5
      MAINTAINERS
  3. 1 0
      drivers/isdn/i4l/Kconfig
  4. 30 31
      drivers/net/3c501.c
  5. 2 2
      drivers/net/3c501.h
  6. 8 8
      drivers/net/3c503.c
  7. 2 2
      drivers/net/3c503.h
  8. 12 12
      drivers/net/3c505.c
  9. 1 1
      drivers/net/3c505.h
  10. 7 7
      drivers/net/3c507.c
  11. 22 31
      drivers/net/3c509.c
  12. 32 32
      drivers/net/3c515.c
  13. 14 14
      drivers/net/3c523.c
  14. 7 7
      drivers/net/3c523.h
  15. 265 265
      drivers/net/3c527.c
  16. 2 2
      drivers/net/3c527.h
  17. 18 18
      drivers/net/3c59x.c
  18. 30 30
      drivers/net/7990.c
  19. 12 12
      drivers/net/7990.h
  20. 54 68
      drivers/net/8139cp.c
  21. 4 7
      drivers/net/8139too.c
  22. 6 6
      drivers/net/82596.c
  23. 123 123
      drivers/net/8390.c
  24. 1 1
      drivers/net/8390.h
  25. 60 7
      drivers/net/Kconfig
  26. 4 9
      drivers/net/Makefile
  27. 12 12
      drivers/net/Space.c
  28. 20 20
      drivers/net/a2065.c
  29. 2 2
      drivers/net/a2065.h
  30. 3 3
      drivers/net/ac3200.c
  31. 23 23
      drivers/net/acenic.c
  32. 3 3
      drivers/net/acenic.h
  33. 9404 9404
      drivers/net/acenic_firmware.h
  34. 244 245
      drivers/net/amd8111e.c
  35. 51 51
      drivers/net/amd8111e.h
  36. 5 5
      drivers/net/apne.c
  37. 1 1
      drivers/net/arcnet/com20020-pci.c
  38. 0 2
      drivers/net/ariadne.c
  39. 7 0
      drivers/net/arm/Kconfig
  40. 1 0
      drivers/net/arm/Makefile
  41. 1 1
      drivers/net/arm/at91_ether.c
  42. 944 0
      drivers/net/arm/ep93xx_eth.c
  43. 1 1
      drivers/net/arm/etherh.c
  44. 14 16
      drivers/net/at1700.c
  45. 7 7
      drivers/net/atari_bionet.c
  46. 1 1
      drivers/net/atari_pamsnet.c
  47. 11 11
      drivers/net/atarilance.c
  48. 1 1
      drivers/net/atp.c
  49. 35 36
      drivers/net/au1000_eth.c
  50. 6 6
      drivers/net/au1000_eth.h
  51. 2 2
      drivers/net/b44.c
  52. 27 27
      drivers/net/bmac.c
  53. 1 1
      drivers/net/bmac.h
  54. 83 83
      drivers/net/bnx2.c
  55. 41 41
      drivers/net/bnx2.h
  56. 1 1
      drivers/net/bonding/bond_main.c
  57. 34 34
      drivers/net/bsd_comp.c
  58. 270 270
      drivers/net/cassini.c
  59. 383 383
      drivers/net/cassini.h
  60. 2 2
      drivers/net/chelsio/cxgb2.c
  61. 2 2
      drivers/net/cris/eth_v10.c
  62. 41 41
      drivers/net/cs89x0.c
  63. 2 2
      drivers/net/cs89x0.h
  64. 2 2
      drivers/net/de600.c
  65. 19 19
      drivers/net/de620.c
  66. 4 4
      drivers/net/declance.c
  67. 135 135
      drivers/net/defxx.c
  68. 96 96
      drivers/net/defxx.h
  69. 55 55
      drivers/net/depca.c
  70. 14 14
      drivers/net/depca.h
  71. 13 13
      drivers/net/dgrs.c
  72. 2 2
      drivers/net/dgrs.h
  73. 1 1
      drivers/net/dgrs_asstruct.h
  74. 1 1
      drivers/net/dgrs_bcomm.h
  75. 2 2
      drivers/net/dgrs_ether.h
  76. 1 1
      drivers/net/dgrs_i82596.h
  77. 82 82
      drivers/net/dl2k.c
  78. 3 3
      drivers/net/dl2k.h
  79. 14 14
      drivers/net/dummy.c
  80. 14 18
      drivers/net/e100.c
  81. 3 3
      drivers/net/e1000/e1000.h
  82. 157 122
      drivers/net/e1000/e1000_ethtool.c
  83. 575 592
      drivers/net/e1000/e1000_hw.c
  84. 14 12
      drivers/net/e1000/e1000_hw.h
  85. 92 62
      drivers/net/e1000/e1000_main.c
  86. 0 19
      drivers/net/e1000/e1000_osdep.h
  87. 110 51
      drivers/net/e1000/e1000_param.c
  88. 2 2
      drivers/net/e2100.c
  89. 3 4
      drivers/net/eepro.c
  90. 20 20
      drivers/net/eepro100.c
  91. 49 49
      drivers/net/eexpress.c
  92. 7 7
      drivers/net/eexpress.h
  93. 6 0
      drivers/net/ehea/Makefile
  94. 447 0
      drivers/net/ehea/ehea.h
  95. 294 0
      drivers/net/ehea/ehea_ethtool.c
  96. 51 0
      drivers/net/ehea/ehea_hcall.h
  97. 292 0
      drivers/net/ehea/ehea_hw.h
  98. 2654 0
      drivers/net/ehea/ehea_main.c
  99. 705 0
      drivers/net/ehea/ehea_phyp.c
  100. 455 0
      drivers/net/ehea/ehea_phyp.h

+ 46 - 0
Documentation/networking/LICENSE.qla3xxx

@@ -0,0 +1,46 @@
+Copyright (c)  2003-2006 QLogic Corporation
+QLogic Linux Networking HBA Driver
+
+This program includes a device driver for Linux 2.6 that may be
+distributed with QLogic hardware specific firmware binary file.
+You may modify and redistribute the device driver code under the
+GNU General Public License as published by the Free Software
+Foundation (version 2 or a later version).
+
+You may redistribute the hardware specific firmware binary file
+under the following terms:
+
+	1. Redistribution of source code (only if applicable),
+	   must retain the above copyright notice, this list of
+	   conditions and the following disclaimer.
+
+	2. Redistribution in binary form must reproduce the above
+	   copyright notice, this list of conditions and the
+	   following disclaimer in the documentation and/or other
+	   materials provided with the distribution.
+
+	3. The name of QLogic Corporation may not be used to
+	   endorse or promote products derived from this software
+	   without specific prior written permission
+
+REGARDLESS OF WHAT LICENSING MECHANISM IS USED OR APPLICABLE,
+THIS PROGRAM IS PROVIDED BY QLOGIC CORPORATION "AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+USER ACKNOWLEDGES AND AGREES THAT USE OF THIS PROGRAM WILL NOT
+CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION, ESTOPPEL, OR
+OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT,
+TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN
+ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN
+COMBINATION WITH THIS PROGRAM.
+

+ 32 - 5
MAINTAINERS

@@ -457,9 +457,9 @@ L:	linux-hams@vger.kernel.org
 W:	http://www.baycom.org/~tom/ham/ham.html
 S:	Maintained
 
-BCM43XX WIRELESS DRIVER
-P:	Michael Buesch
-M:	mb@bu3sch.de
+BCM43XX WIRELESS DRIVER (SOFTMAC BASED VERSION)
+P:	Larry Finger
+M:	Larry.Finger@lwfinger.net
 P:	Stefano Brivio
 M:	st3@riseup.net
 W:	http://bcm43xx.berlios.de/
@@ -2389,6 +2389,12 @@ M:	linux-driver@qlogic.com
 L:	linux-scsi@vger.kernel.org
 S:	Supported
 
+QLOGIC QLA3XXX NETWORK DRIVER
+P:	Ron Mercer
+M:	linux-driver@qlogic.com
+L:	netdev@vger.kernel.org
+S:	Supported
+
 QNX4 FILESYSTEM
 P:	Anders Larsen
 M:	al@alarsen.net
@@ -2641,6 +2647,18 @@ P:	Nicolas Pitre
 M:	nico@cam.org
 S:	Maintained
 
+SOFTMAC LAYER (IEEE 802.11)
+P:	Johannes Berg
+M:	johannes@sipsolutions.net
+P:	Joe Jezak
+M:	josejx@gentoo.org
+P:	Daniel Drake
+M:	dsd@gentoo.org
+W:	http://softmac.sipsolutions.net/
+L:	softmac-dev@sipsolutions.net
+L:	netdev@vger.kernel.org
+S:	Maintained
+
 SOFTWARE RAID (Multiple Disks) SUPPORT
 P:	Ingo Molnar
 M:	mingo@redhat.com
@@ -2922,8 +2940,8 @@ W:	http://www.auk.cx/tms380tr/
 S:	Maintained
 
 TULIP NETWORK DRIVER
-P:	Jeff Garzik
-M:	jgarzik@pobox.com
+P:	Valerie Henson
+M:	val_henson@linux.intel.com
 L:	tulip-users@lists.sourceforge.net
 W:	http://sourceforge.net/projects/tulip/
 S:	Maintained
@@ -3374,6 +3392,15 @@ W:	http://www.qsl.net/dl1bke/
 L:	linux-hams@vger.kernel.org
 S:	Maintained
 
+ZD1211RW WIRELESS DRIVER
+P:	Daniel Drake
+M:	dsd@gentoo.org
+P:	Ulrich Kunitz
+M:	kune@deine-taler.de
+W:	http://zd1211.ath.cx/wiki/DriverRewrite
+L:	zd1211-devs@lists.sourceforge.net (subscribers-only)
+S:	Maintained
+
 ZF MACHZ WATCHDOG
 P:	Fernando Fuganti
 M:	fuganti@netbank.com.br

+ 1 - 0
drivers/isdn/i4l/Kconfig

@@ -5,6 +5,7 @@
 config ISDN_PPP
 	bool "Support synchronous PPP"
 	depends on INET
+	select SLHC
 	help
 	  Over digital connections such as ISDN, there is no need to
 	  synchronize sender and recipient's clocks with start and stop bits

+ 30 - 31
drivers/net/3c501.c

@@ -30,17 +30,17 @@
     with a TX-TX optimisation to see if we can touch 180-200K/second as seems
     theoretically maximum.
     		19950402 Alan Cox <Alan.Cox@linux.org>
-    		
-    Cleaned up for 2.3.x because we broke SMP now. 
+
+    Cleaned up for 2.3.x because we broke SMP now.
     		20000208 Alan Cox <alan@redhat.com>
 
     Check up pass for 2.5. Nothing significant changed
     		20021009 Alan Cox <alan@redhat.com>
 
-    Fixed zero fill corner case 
+    Fixed zero fill corner case
     		20030104 Alan Cox <alan@redhat.com>
-    		
-    		
+
+
    For the avoidance of doubt the "preferred form" of this code is one which
    is in an open non patent encumbered format. Where cryptographic key signing
    forms part of the process of creating an executable the information
@@ -58,7 +58,7 @@
  *  Some documentation is available from 3Com. Due to the boards age
  *  standard responses when you ask for this will range from 'be serious'
  *  to 'give it to a museum'. The documentation is incomplete and mostly
- *  of historical interest anyway. 
+ *  of historical interest anyway.
  *
  *  The basic system is a single buffer which can be used to receive or
  *  transmit a packet. A third command mode exists when you are setting
@@ -80,7 +80,7 @@
  *  out with those too).
  *
  * DOC: Problems
- *  
+ *
  *  There are a wide variety of undocumented error returns from the card
  *  and you basically have to kick the board and pray if they turn up. Most
  *  only occur under extreme load or if you do something the board doesn't
@@ -120,7 +120,6 @@ static const char version[] =
 #include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/errno.h>
-#include <linux/config.h>	/* for CONFIG_IP_MULTICAST */
 #include <linux/spinlock.h>
 #include <linux/ethtool.h>
 #include <linux/delay.h>
@@ -146,7 +145,7 @@ static int mem_start;
 
 /**
  * el1_probe:		-	probe for a 3c501
- * @dev: The device structure passed in to probe. 
+ * @dev: The device structure passed in to probe.
  *
  * This can be called from two places. The network layer will probe using
  * a device structure passed in with the probe information completed. For a
@@ -156,7 +155,7 @@ static int mem_start;
  * Returns 0 on success. ENXIO if asked not to probe and ENODEV if asked to
  * probe and failing to find anything.
  */
- 
+
 struct net_device * __init el1_probe(int unit)
 {
 	struct net_device *dev = alloc_etherdev(sizeof(struct net_local));
@@ -201,7 +200,7 @@ out:
 }
 
 /**
- *	el1_probe1: 
+ *	el1_probe1:
  *	@dev: The device structure to use
  *	@ioaddr: An I/O address to probe at.
  *
@@ -308,7 +307,7 @@ static int __init el1_probe1(struct net_device *dev, int ioaddr)
 	memset(dev->priv, 0, sizeof(struct net_local));
 	lp = netdev_priv(dev);
 	spin_lock_init(&lp->lock);
-	
+
 	/*
 	 *	The EL1-specific entries in the device structure.
 	 */
@@ -329,7 +328,7 @@ static int __init el1_probe1(struct net_device *dev, int ioaddr)
  *	@dev: device that is being opened
  *
  *	When an ifconfig is issued which changes the device flags to include
- *	IFF_UP this function is called. It is only called when the change 
+ *	IFF_UP this function is called. It is only called when the change
  *	occurs, not when the interface remains up. #el1_close will be called
  *	when it goes down.
  *
@@ -368,12 +367,12 @@ static int el_open(struct net_device *dev)
  * violence and prayer
  *
  */
- 
+
 static void el_timeout(struct net_device *dev)
 {
 	struct net_local *lp = netdev_priv(dev);
 	int ioaddr = dev->base_addr;
- 
+
 	if (el_debug)
 		printk (KERN_DEBUG "%s: transmit timed out, txsr %#2x axsr=%02x rxsr=%02x.\n",
 			dev->name, inb(TX_STATUS), inb(AX_STATUS), inb(RX_STATUS));
@@ -386,7 +385,7 @@ static void el_timeout(struct net_device *dev)
 	netif_wake_queue(dev);
 }
 
- 
+
 /**
  * el_start_xmit:
  * @skb: The packet that is queued to be sent
@@ -422,7 +421,7 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	 */
 
 	spin_lock_irqsave(&lp->lock, flags);
-	
+
 	/*
 	 *	Avoid timer-based retransmission conflicts.
 	 */
@@ -435,10 +434,10 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
 		int pad = 0;
 		int gp_start;
 		unsigned char *buf = skb->data;
-		
+
 		if (len < ETH_ZLEN)
 			pad = ETH_ZLEN - len;
-			
+
 		gp_start = 0x800 - ( len + pad );
 
 		lp->tx_pkt_start = gp_start;
@@ -464,7 +463,7 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
 		 */
 
 		spin_unlock_irqrestore(&lp->lock, flags);
-		
+
 		outw(0x00, RX_BUF_CLR);		/* Set rx packet area to 0. */
 		outw(gp_start, GP_LOW);		/* aim - packet will be loaded into buffer start */
 		outsb(DATAPORT,buf,len);	/* load buffer (usual thing each byte increments the pointer) */
@@ -473,7 +472,7 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
 				outb(0, DATAPORT);
 		}
 		outw(gp_start, GP_LOW);		/* the board reuses the same register */
-	
+
 		if(lp->loading != 2)
 		{
 			outb(AX_XMIT, AX_CMD);		/* fire ... Trigger xmit.  */
@@ -499,7 +498,7 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
  * @dev_id: The 3c501 that burped
  * @regs: Register data (surplus to our requirements)
  *
- * Handle the ether interface interrupts. The 3c501 needs a lot more 
+ * Handle the ether interface interrupts. The 3c501 needs a lot more
  * hand holding than most cards. In particular we get a transmit interrupt
  * with a collision error because the board firmware isnt capable of rewinding
  * its own transmit buffer pointers. It can however count to 16 for us.
@@ -527,7 +526,7 @@ static irqreturn_t el_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 	lp = netdev_priv(dev);
 
 	spin_lock(&lp->lock);
-	
+
 	/*
 	 *	What happened ?
 	 */
@@ -795,7 +794,7 @@ static void  el_reset(struct net_device *dev)
  * of the rest will be cleaned up by #el1_open. Always returns 0 indicating
  * a success.
  */
- 
+
 static int el1_close(struct net_device *dev)
 {
 	int ioaddr = dev->base_addr;
@@ -804,7 +803,7 @@ static int el1_close(struct net_device *dev)
 		printk(KERN_INFO "%s: Shutting down Ethernet card at %#x.\n", dev->name, ioaddr);
 
 	netif_stop_queue(dev);
-	
+
 	/*
 	 *	Free and disable the IRQ.
 	 */
@@ -825,7 +824,7 @@ static int el1_close(struct net_device *dev)
  *
  * Returns the statistics for the card from the card private data
  */
- 
+
 static struct net_device_stats *el1_get_stats(struct net_device *dev)
 {
 	struct net_local *lp = netdev_priv(dev);
@@ -836,7 +835,7 @@ static struct net_device_stats *el1_get_stats(struct net_device *dev)
  * set_multicast_list:
  * @dev: The device to adjust
  *
- * Set or clear the multicast filter for this adaptor to use the best-effort 
+ * Set or clear the multicast filter for this adaptor to use the best-effort
  * filtering supported. The 3c501 supports only three modes of filtering.
  * It always receives broadcasts and packets for itself. You can choose to
  * optionally receive all packets, or all multicast packets on top of this.
@@ -882,7 +881,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
 	debug = level;
 }
 
-static struct ethtool_ops netdev_ethtool_ops = {
+static const struct ethtool_ops netdev_ethtool_ops = {
 	.get_drvinfo		= netdev_get_drvinfo,
 	.get_msglevel		= netdev_get_msglevel,
 	.set_msglevel		= netdev_set_msglevel,
@@ -908,7 +907,7 @@ MODULE_PARM_DESC(irq, "EtherLink IRQ number");
  * Returns 0 for success or -EIO if a card is not found. Returning an error
  * here also causes the module to be unloaded
  */
- 
+
 int __init init_module(void)
 {
 	dev_3c501 = el1_probe(-1);
@@ -919,11 +918,11 @@ int __init init_module(void)
 
 /**
  * cleanup_module:
- * 
+ *
  * The module is being unloaded. We unhook our network device from the system
  * and then free up the resources we took when the card was found.
  */
- 
+
 void cleanup_module(void)
 {
 	struct net_device *dev = dev_3c501;

+ 2 - 2
drivers/net/3c501.h

@@ -13,7 +13,7 @@ static void el_reset(struct net_device *dev);
 static int  el1_close(struct net_device *dev);
 static struct net_device_stats *el1_get_stats(struct net_device *dev);
 static void set_multicast_list(struct net_device *dev);
-static struct ethtool_ops netdev_ethtool_ops;
+static const struct ethtool_ops netdev_ethtool_ops;
 
 #define EL1_IO_EXTENT	16
 
@@ -37,7 +37,7 @@ struct net_local
 	spinlock_t	lock;		/* Serializing lock */
 };
 
-
+
 #define RX_STATUS (ioaddr + 0x06)
 #define RX_CMD	  RX_STATUS
 #define TX_STATUS (ioaddr + 0x07)

+ 8 - 8
drivers/net/3c503.c

@@ -79,9 +79,9 @@ static void el2_block_input(struct net_device *dev, int count, struct sk_buff *s
 			   int ring_offset);
 static void el2_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr,
 			 int ring_page);
-static struct ethtool_ops netdev_ethtool_ops;
+static const struct ethtool_ops netdev_ethtool_ops;
+
 
-
 /* This routine probes for a memory-mapped 3c503 board by looking for
    the "location register" at the end of the jumpered boot PROM space.
    This works even if a PROM isn't there.
@@ -96,7 +96,7 @@ static int __init do_el2_probe(struct net_device *dev)
     int irq = dev->irq;
 
     SET_MODULE_OWNER(dev);
-    
+
     if (base_addr > 0x1ff)	/* Check a single specified location. */
 	return el2_probe1(dev, base_addr);
     else if (base_addr != 0)		/* Don't probe at all. */
@@ -127,7 +127,7 @@ static int __init do_el2_probe(struct net_device *dev)
 
 /*  Try all of the locations that aren't obviously empty.  This touches
     a lot of locations, and is much riskier than the code above. */
-static int __init 
+static int __init
 el2_pio_probe(struct net_device *dev)
 {
     int i;
@@ -173,7 +173,7 @@ out:
 /* Probe for the Etherlink II card at I/O port base IOADDR,
    returning non-zero on success.  If found, set the station
    address and memory parameters in DEVICE. */
-static int __init 
+static int __init
 el2_probe1(struct net_device *dev, int ioaddr)
 {
     int i, iobase_reg, membase_reg, saved_406, wordlength, retval;
@@ -367,7 +367,7 @@ out:
     release_region(ioaddr, EL2_IO_EXTENT);
     return retval;
 }
-
+
 static int
 el2_open(struct net_device *dev)
 {
@@ -385,7 +385,7 @@ el2_open(struct net_device *dev)
 		outb_p(0x04 << ((*irqp == 9) ? 2 : *irqp), E33G_IDCFR);
 		outb_p(0x00, E33G_IDCFR);
 		if (*irqp == probe_irq_off(cookie)	/* It's a good IRQ line! */
-		    && ((retval = request_irq(dev->irq = *irqp, 
+		    && ((retval = request_irq(dev->irq = *irqp,
 		    ei_interrupt, 0, dev->name, dev)) == 0))
 		    break;
 	    }
@@ -666,7 +666,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
 	sprintf(info->bus_info, "ISA 0x%lx", dev->base_addr);
 }
 
-static struct ethtool_ops netdev_ethtool_ops = {
+static const struct ethtool_ops netdev_ethtool_ops = {
 	.get_drvinfo		= netdev_get_drvinfo,
 };
 

+ 2 - 2
drivers/net/3c503.h

@@ -14,7 +14,7 @@
 
 /* Shared memory management parameters. NB: The 8 bit cards have only
    one bank (MB1) which serves both Tx and Rx packet space. The 16bit
-   cards have 2 banks, MB0 for Tx packets, and MB1 for Rx packets. 
+   cards have 2 banks, MB0 for Tx packets, and MB1 for Rx packets.
    You choose which bank appears in the sh. mem window with EGACFR_MBSn */
 
 #define EL2_MB0_START_PG	(0x00)	/* EL2/16 Tx packets go in bank 0 */
@@ -82,7 +82,7 @@
 	0	1	0	0x4000 -- bank 2, not used
 	0	1	1	0x6000 -- bank 3, not used
 
-There was going to be a 32k card that used bank 2 and 3, but it 
+There was going to be a 32k card that used bank 2 and 3, but it
 never got produced.
 
 */

+ 12 - 12
drivers/net/3c505.c

@@ -315,11 +315,11 @@ static inline void check_3c505_dma(struct net_device *dev)
 		spin_lock_irqsave(&adapter->lock, flags);
 		adapter->dmaing = 0;
 		adapter->busy = 0;
-		
+
 		f=claim_dma_lock();
 		disable_dma(dev->dma);
 		release_dma_lock(f);
-		
+
 		if (adapter->rx_active)
 			adapter->rx_active--;
 		outb_control(adapter->hcr_val & ~(DMAE | TCEN | DIR), dev);
@@ -660,7 +660,7 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr)
 
 	dev = dev_id;
 	adapter = (elp_device *) dev->priv;
-	
+
 	spin_lock(&adapter->lock);
 
 	do {
@@ -712,7 +712,7 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr)
 		timeout = jiffies + 3*HZ/100;
 		while ((inb_status(dev->base_addr) & ACRF) != 0 && time_before(jiffies, timeout)) {
 			if (receive_pcb(dev, &adapter->irx_pcb)) {
-				switch (adapter->irx_pcb.command) 
+				switch (adapter->irx_pcb.command)
 				{
 				case 0:
 					break;
@@ -889,7 +889,7 @@ static int elp_open(struct net_device *dev)
 	adapter->send_pcb_semaphore = 0;
 	adapter->rx_backlog.in = 0;
 	adapter->rx_backlog.out = 0;
-	
+
 	spin_lock_init(&adapter->lock);
 
 	/*
@@ -1003,7 +1003,7 @@ static int send_packet(struct net_device *dev, struct sk_buff *skb)
 	}
 
 	adapter->stats.tx_bytes += nlen;
-	
+
 	/*
 	 * send the adapter a transmit packet command. Ignore segment and offset
 	 * and make sure the length is even
@@ -1044,7 +1044,7 @@ static int send_packet(struct net_device *dev, struct sk_buff *skb)
 	outb_control(adapter->hcr_val | DMAE | TCEN, dev);
 	enable_dma(dev->dma);
 	release_dma_lock(flags);
-	
+
 	if (elp_debug >= 3)
 		printk(KERN_DEBUG "%s: DMA transfer started\n", dev->name);
 
@@ -1054,7 +1054,7 @@ static int send_packet(struct net_device *dev, struct sk_buff *skb)
 /*
  *	The upper layer thinks we timed out
  */
- 
+
 static void elp_timeout(struct net_device *dev)
 {
 	elp_device *adapter = dev->priv;
@@ -1080,7 +1080,7 @@ static int elp_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	unsigned long flags;
 	elp_device *adapter = dev->priv;
-	
+
 	spin_lock_irqsave(&adapter->lock, flags);
 	check_3c505_dma(dev);
 
@@ -1088,7 +1088,7 @@ static int elp_start_xmit(struct sk_buff *skb, struct net_device *dev)
 		printk(KERN_DEBUG "%s: request to send packet of length %d\n", dev->name, (int) skb->len);
 
 	netif_stop_queue(dev);
-	
+
 	/*
 	 * send the packet at skb->data for skb->len
 	 */
@@ -1169,7 +1169,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
 	debug = level;
 }
 
-static struct ethtool_ops netdev_ethtool_ops = {
+static const struct ethtool_ops netdev_ethtool_ops = {
 	.get_drvinfo		= netdev_get_drvinfo,
 	.get_msglevel		= netdev_get_msglevel,
 	.set_msglevel		= netdev_set_msglevel,
@@ -1235,7 +1235,7 @@ static void elp_set_mc_list(struct net_device *dev)
 		printk(KERN_DEBUG "%s: request to set multicast list\n", dev->name);
 
 	spin_lock_irqsave(&adapter->lock, flags);
-	
+
 	if (!(dev->flags & (IFF_PROMISC | IFF_ALLMULTI))) {
 		/* send a "load multicast list" command to the board, max 10 addrs/cmd */
 		/* if num_addrs==0 the list will be cleared */

+ 1 - 1
drivers/net/3c505.h

@@ -72,7 +72,7 @@
 /*****************************************************************
  *
  *  timeout value
- *	this is a rough value used for loops to stop them from 
+ *	this is a rough value used for loops to stop them from
  *	locking up the whole machine in the case of failure or
  *	error conditions
  *

+ 7 - 7
drivers/net/3c507.c

@@ -294,14 +294,14 @@ static void el16_tx_timeout (struct net_device *dev);
 
 static void hardware_send_packet(struct net_device *dev, void *buf, short length, short pad);
 static void init_82586_mem(struct net_device *dev);
-static struct ethtool_ops netdev_ethtool_ops;
+static const struct ethtool_ops netdev_ethtool_ops;
 static void init_rx_bufs(struct net_device *);
 
 static int io = 0x300;
 static int irq;
 static int mem_start;
 
-
+
 /* Check for a network adaptor of this type, and return '0' iff one exists.
 	If dev->base_addr == 0, probe all likely locations.
 	If dev->base_addr == 1, always return failure.
@@ -379,7 +379,7 @@ static int __init el16_probe1(struct net_device *dev, int ioaddr)
 	if (!request_region(ioaddr, EL16_IO_EXTENT, DRV_NAME))
 		return -ENODEV;
 
-	if ((inb(ioaddr) != '*') || (inb(ioaddr + 1) != '3') || 
+	if ((inb(ioaddr) != '*') || (inb(ioaddr + 1) != '3') ||
 	    (inb(ioaddr + 2) != 'C') || (inb(ioaddr + 3) != 'O')) {
 		retval = -ENODEV;
 		goto out;
@@ -575,7 +575,7 @@ static irqreturn_t el16_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 	while (lp->tx_pkts_in_ring) {
 	  unsigned short tx_status = readw(shmem+lp->tx_reap);
 	  if (!(tx_status & 0x8000)) {
-		if (net_debug > 5) 
+		if (net_debug > 5)
 			printk("Tx command incomplete (%#x).\n", lp->tx_reap);
 		break;
 	  }
@@ -825,7 +825,7 @@ static void hardware_send_packet(struct net_device *dev, void *buf, short length
 	}
 
 	/* Grimly block further packets if there has been insufficient reaping. */
-	if (++lp->tx_pkts_in_ring < NUM_TX_BUFS) 
+	if (++lp->tx_pkts_in_ring < NUM_TX_BUFS)
 		netif_wake_queue(dev);
 }
 
@@ -919,7 +919,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
 	debug = level;
 }
 
-static struct ethtool_ops netdev_ethtool_ops = {
+static const struct ethtool_ops netdev_ethtool_ops = {
 	.get_drvinfo		= netdev_get_drvinfo,
 	.get_msglevel		= netdev_get_msglevel,
 	.set_msglevel		= netdev_set_msglevel,
@@ -953,7 +953,7 @@ cleanup_module(void)
 #endif /* MODULE */
 MODULE_LICENSE("GPL");
 
-
+
 /*
  * Local variables:
  *  compile-command: "gcc -D__KERNEL__ -I/usr/src/linux/net/inet -I/usr/src/linux/drivers/net -Wall -Wstrict-prototypes -O6 -m486 -c 3c507.c"

+ 22 - 31
drivers/net/3c509.c

@@ -28,7 +28,7 @@
 	FIXES:
 		Alan Cox:       Removed the 'Unexpected interrupt' bug.
 		Michael Meskes:	Upgraded to Donald Becker's version 1.07.
-		Alan Cox:	Increased the eeprom delay. Regardless of 
+		Alan Cox:	Increased the eeprom delay. Regardless of
 				what the docs say some people definitely
 				get problems with lower (but in card spec)
 				delays
@@ -162,7 +162,7 @@ enum RxFilter {
 #define WN4_MEDIA	0x0A		/* Window 4: Various transcvr/media bits. */
 #define	MEDIA_TP	0x00C0		/* Enable link beat and jabber for 10baseT. */
 #define WN4_NETDIAG	0x06		/* Window 4: Net diagnostic */
-#define FD_ENABLE	0x8000		/* Enable full-duplex ("external loopback") */  
+#define FD_ENABLE	0x8000		/* Enable full-duplex ("external loopback") */
 
 /*
  * Must be a power of two (we use a binary and in the
@@ -200,7 +200,7 @@ static void set_multicast_list(struct net_device *dev);
 static void el3_tx_timeout (struct net_device *dev);
 static void el3_down(struct net_device *dev);
 static void el3_up(struct net_device *dev);
-static struct ethtool_ops ethtool_ops;
+static const struct ethtool_ops ethtool_ops;
 #ifdef EL3_SUSPEND
 static int el3_suspend(struct device *, pm_message_t);
 static int el3_resume(struct device *);
@@ -350,7 +350,7 @@ static int __init el3_common_init(struct net_device *dev)
 	{
 		const char *if_names[] = {"10baseT", "AUI", "undefined", "BNC"};
 		printk("%s: 3c5x9 found at %#3.3lx, %s port, address ",
-			dev->name, dev->base_addr, 
+			dev->name, dev->base_addr,
 			if_names[(dev->if_port & 0x03)]);
 	}
 
@@ -528,7 +528,7 @@ no_pnp:
 	SET_MODULE_OWNER(dev);
 
 	netdev_boot_setup_check(dev);
-	
+
 	/* Set passed-in IRQ or I/O Addr. */
 	if (dev->irq > 1  &&  dev->irq < 16)
 			irq = dev->irq;
@@ -630,7 +630,7 @@ static int __init el3_mca_probe(struct device *device)
 	if_port = pos4 & 0x03;
 
 	irq = mca_device_transform_irq(mdev, irq);
-	ioaddr = mca_device_transform_ioport(mdev, ioaddr); 
+	ioaddr = mca_device_transform_ioport(mdev, ioaddr);
 	if (el3_debug > 2) {
 			printk("3c529: irq %d  ioaddr 0x%x  ifport %d\n", irq, ioaddr, if_port);
 	}
@@ -667,7 +667,7 @@ static int __init el3_mca_probe(struct device *device)
 	el3_cards++;
 	return 0;
 }
-		
+
 #endif /* CONFIG_MCA */
 
 #ifdef CONFIG_EISA
@@ -684,7 +684,7 @@ static int __init el3_eisa_probe (struct device *device)
 	/* Yeepee, The driver framework is calling us ! */
 	edev = to_eisa_device (device);
 	ioaddr = edev->base_addr;
-	
+
 	if (!request_region(ioaddr, EL3_IO_EXTENT, "3c509"))
 		return -EBUSY;
 
@@ -751,7 +751,7 @@ static int __devexit el3_device_remove (struct device *device)
 static ushort read_eeprom(int ioaddr, int index)
 {
 	outw(EEPROM_READ + index, ioaddr + 10);
-	/* Pause for at least 162 us. for the read to take place. 
+	/* Pause for at least 162 us. for the read to take place.
 	   Some chips seem to require much longer */
 	mdelay(2);
 	return inw(ioaddr + 12);
@@ -769,7 +769,7 @@ static ushort __init id_read_eeprom(int index)
 	/* Pause for at least 162 us. for the read to take place. */
 	/* Some chips seem to require much longer */
 	mdelay(4);
-	
+
 	for (bit = 15; bit >= 0; bit--)
 		word = (word << 1) + (inb(id_port) & 0x01);
 
@@ -838,7 +838,7 @@ el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	netif_stop_queue (dev);
 
 	lp->stats.tx_bytes += skb->len;
-	
+
 	if (el3_debug > 4) {
 		printk("%s: el3_start_xmit(length = %u) called, status %4.4x.\n",
 			   dev->name, skb->len, inw(ioaddr + EL3_STATUS));
@@ -879,11 +879,7 @@ el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	outw(skb->len, ioaddr + TX_FIFO);
 	outw(0x00, ioaddr + TX_FIFO);
 	/* ... and the packet rounded to a doubleword. */
-#ifdef  __powerpc__
-	outsl_ns(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2);
-#else
 	outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2);
-#endif
 
 	dev->trans_start = jiffies;
 	if (inw(ioaddr + TX_FREE) > 1536)
@@ -1024,7 +1020,7 @@ el3_get_stats(struct net_device *dev)
 	 *	This is fast enough not to bother with disable IRQ
 	 *	stuff.
 	 */
-	 
+
 	spin_lock_irqsave(&lp->lock, flags);
 	update_stats(dev);
 	spin_unlock_irqrestore(&lp->lock, flags);
@@ -1103,13 +1099,8 @@ el3_rx(struct net_device *dev)
 				skb_reserve(skb, 2);     /* Align IP on 16 byte */
 
 				/* 'skb->data' points to the start of sk_buff data area. */
-#ifdef  __powerpc__
-				insl_ns(ioaddr+RX_FIFO, skb_put(skb,pkt_len),
-							   (pkt_len + 3) >> 2);
-#else
 				insl(ioaddr + RX_FIFO, skb_put(skb,pkt_len),
 					 (pkt_len + 3) >> 2);
-#endif
 
 				outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */
 				skb->protocol = eth_type_trans(skb,dev);
@@ -1168,7 +1159,7 @@ el3_close(struct net_device *dev)
 {
 	int ioaddr = dev->base_addr;
 	struct el3_private *lp = netdev_priv(dev);
-	
+
 	if (el3_debug > 2)
 		printk("%s: Shutting down ethercard.\n", dev->name);
 
@@ -1187,7 +1178,7 @@ el3_close(struct net_device *dev)
 	return 0;
 }
 
-static int 
+static int
 el3_link_ok(struct net_device *dev)
 {
 	int ioaddr = dev->base_addr;
@@ -1204,9 +1195,9 @@ el3_netdev_get_ecmd(struct net_device *dev, struct ethtool_cmd *ecmd)
 {
 	u16 tmp;
 	int ioaddr = dev->base_addr;
-	
+
 	EL3WINDOW(0);
-	/* obtain current transceiver via WN4_MEDIA? */	
+	/* obtain current transceiver via WN4_MEDIA? */
 	tmp = inw(ioaddr + WN0_ADDR_CONF);
 	ecmd->transceiver = XCVR_INTERNAL;
 	switch (tmp >> 14) {
@@ -1349,7 +1340,7 @@ static void el3_set_msglevel(struct net_device *dev, u32 v)
 	el3_debug = v;
 }
 
-static struct ethtool_ops ethtool_ops = {
+static const struct ethtool_ops ethtool_ops = {
 	.get_drvinfo = el3_get_drvinfo,
 	.get_settings = el3_get_settings,
 	.set_settings = el3_set_settings,
@@ -1391,7 +1382,7 @@ el3_up(struct net_device *dev)
 {
 	int i, sw_info, net_diag;
 	int ioaddr = dev->base_addr;
-	
+
 	/* Activating the board required and does no harm otherwise */
 	outw(0x0001, ioaddr + 4);
 
@@ -1411,7 +1402,7 @@ el3_up(struct net_device *dev)
 		/* Combine secondary sw_info word (the adapter level) and primary
 			sw_info word (duplex setting plus other useless bits) */
 		EL3WINDOW(0);
-		sw_info = (read_eeprom(ioaddr, 0x14) & 0x400f) | 
+		sw_info = (read_eeprom(ioaddr, 0x14) & 0x400f) |
 			(read_eeprom(ioaddr, 0x0d) & 0xBff0);
 
 		EL3WINDOW(4);
@@ -1483,7 +1474,7 @@ el3_suspend(struct device *pdev, pm_message_t state)
 	struct net_device *dev;
 	struct el3_private *lp;
 	int ioaddr;
-	
+
 	dev = pdev->driver_data;
 	lp = netdev_priv(dev);
 	ioaddr = dev->base_addr;
@@ -1507,7 +1498,7 @@ el3_resume(struct device *pdev)
 	struct net_device *dev;
 	struct el3_private *lp;
 	int ioaddr;
-	
+
 	dev = pdev->driver_data;
 	lp = netdev_priv(dev);
 	ioaddr = dev->base_addr;
@@ -1519,7 +1510,7 @@ el3_resume(struct device *pdev)
 
 	if (netif_running(dev))
 		netif_device_attach(dev);
-		
+
 	spin_unlock_irqrestore(&lp->lock, flags);
 	return 0;
 }

+ 32 - 32
drivers/net/3c515.c

@@ -12,12 +12,12 @@
 	Annapolis MD 21403
 
 
-	2000/2/2- Added support for kernel-level ISAPnP 
+	2000/2/2- Added support for kernel-level ISAPnP
 		by Stephen Frost <sfrost@snowman.net> and Alessandro Zummo
 	Cleaned up for 2.3.x/softnet by Jeff Garzik and Alan Cox.
-	
+
 	2001/11/17 - Added ethtool support (jgarzik)
-	
+
 	2002/10/28 - Locking updates for 2.5 (alan@redhat.com)
 
 */
@@ -187,9 +187,9 @@ enum corkscrew_cmd {
 	TotalReset = 0 << 11, SelectWindow = 1 << 11, StartCoax = 2 << 11,
 	RxDisable = 3 << 11, RxEnable = 4 << 11, RxReset = 5 << 11,
 	UpStall = 6 << 11, UpUnstall = (6 << 11) + 1, DownStall = (6 << 11) + 2,
-	DownUnstall = (6 << 11) + 3, RxDiscard = 8 << 11, TxEnable = 9 << 11, 
-	TxDisable = 10 << 11, TxReset = 11 << 11, FakeIntr = 12 << 11, 
-	AckIntr = 13 << 11, SetIntrEnb = 14 << 11, SetStatusEnb = 15 << 11, 
+	DownUnstall = (6 << 11) + 3, RxDiscard = 8 << 11, TxEnable = 9 << 11,
+	TxDisable = 10 << 11, TxReset = 11 << 11, FakeIntr = 12 << 11,
+	AckIntr = 13 << 11, SetIntrEnb = 14 << 11, SetStatusEnb = 15 << 11,
 	SetRxFilter = 16 << 11, SetRxThreshold = 17 << 11,
 	SetTxThreshold = 18 << 11, SetTxStart = 19 << 11, StartDMAUp = 20 << 11,
 	StartDMADown = (20 << 11) + 1, StatsEnable = 21 << 11,
@@ -338,15 +338,15 @@ static struct media_table {
 		mask:8,			/* The transceiver-present bit in Wn3_Config. */
 		next:8;			/* The media type to try next. */
 	short wait;			/* Time before we check media status. */
-} media_tbl[] = {	
-	{ "10baseT", Media_10TP, 0x08, XCVR_10base2, (14 * HZ) / 10 }, 
-	{ "10Mbs AUI", Media_SQE, 0x20, XCVR_Default, (1 * HZ) / 10}, 
-	{ "undefined", 0, 0x80, XCVR_10baseT, 10000}, 
-	{ "10base2", 0, 0x10, XCVR_AUI, (1 * HZ) / 10}, 
-	{ "100baseTX", Media_Lnk, 0x02, XCVR_100baseFx, (14 * HZ) / 10}, 
-	{ "100baseFX", Media_Lnk, 0x04, XCVR_MII, (14 * HZ) / 10}, 
-	{ "MII", 0, 0x40, XCVR_10baseT, 3 * HZ}, 
-	{ "undefined", 0, 0x01, XCVR_10baseT, 10000}, 
+} media_tbl[] = {
+	{ "10baseT", Media_10TP, 0x08, XCVR_10base2, (14 * HZ) / 10 },
+	{ "10Mbs AUI", Media_SQE, 0x20, XCVR_Default, (1 * HZ) / 10},
+	{ "undefined", 0, 0x80, XCVR_10baseT, 10000},
+	{ "10base2", 0, 0x10, XCVR_AUI, (1 * HZ) / 10},
+	{ "100baseTX", Media_Lnk, 0x02, XCVR_100baseFx, (14 * HZ) / 10},
+	{ "100baseFX", Media_Lnk, 0x04, XCVR_MII, (14 * HZ) / 10},
+	{ "MII", 0, 0x40, XCVR_10baseT, 3 * HZ},
+	{ "undefined", 0, 0x01, XCVR_10baseT, 10000},
 	{ "Default", 0, 0xFF, XCVR_10baseT, 10000},
 };
 
@@ -379,10 +379,10 @@ static int corkscrew_close(struct net_device *dev);
 static void update_stats(int addr, struct net_device *dev);
 static struct net_device_stats *corkscrew_get_stats(struct net_device *dev);
 static void set_rx_mode(struct net_device *dev);
-static struct ethtool_ops netdev_ethtool_ops;
-
+static const struct ethtool_ops netdev_ethtool_ops;
 
-/* 
+
+/*
    Unfortunately maximizing the shared code between the integrated and
    module version of the driver results in a complicated set of initialization
    procedures.
@@ -612,7 +612,7 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr,
 	printk(KERN_INFO "%s: 3Com %s at %#3x,", dev->name, vp->product_name, ioaddr);
 
 	spin_lock_init(&vp->lock);
-	
+
 	/* Read the station address from the EEPROM. */
 	EL3WINDOW(0);
 	for (i = 0; i < 0x18; i++) {
@@ -691,7 +691,7 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr,
 
 	return register_netdev(dev);
 }
-
+
 
 static int corkscrew_open(struct net_device *dev)
 {
@@ -715,7 +715,7 @@ static int corkscrew_open(struct net_device *dev)
 	} else if (vp->autoselect) {
 		/* Find first available media type, starting with 100baseTx. */
 		dev->if_port = 4;
-		while (!(vp->available_media & media_tbl[dev->if_port].mask)) 
+		while (!(vp->available_media & media_tbl[dev->if_port].mask))
 			dev->if_port = media_tbl[dev->if_port].next;
 
 		if (corkscrew_debug > 1)
@@ -871,7 +871,7 @@ static void corkscrew_timer(unsigned long data)
 		       dev->name, media_tbl[dev->if_port].name);
 
 	spin_lock_irqsave(&vp->lock, flags);
-	
+
 	{
 		int old_window = inw(ioaddr + EL3_CMD) >> 13;
 		int media_status;
@@ -911,7 +911,7 @@ static void corkscrew_timer(unsigned long data)
 				    media_tbl[dev->if_port].next;
 			}
 			while (!(vp->available_media & media_tbl[dev->if_port].mask));
-			
+
 			if (dev->if_port == 8) {	/* Go back to default. */
 				dev->if_port = vp->default_media;
 				if (corkscrew_debug > 1)
@@ -940,7 +940,7 @@ static void corkscrew_timer(unsigned long data)
 		}
 		EL3WINDOW(old_window);
 	}
-	
+
 	spin_unlock_irqrestore(&vp->lock, flags);
 	if (corkscrew_debug > 1)
 		printk("%s: Media selection timer finished, %s.\n",
@@ -1026,7 +1026,7 @@ static int corkscrew_start_xmit(struct sk_buff *skb,
 		outw(DownStall, ioaddr + EL3_CMD);
 		/* Wait for the stall to complete. */
 		for (i = 20; i >= 0; i--)
-			if ((inw(ioaddr + EL3_STATUS) & CmdInProgress) == 0) 
+			if ((inw(ioaddr + EL3_STATUS) & CmdInProgress) == 0)
 				break;
 		if (prev_entry)
 			prev_entry->next = isa_virt_to_bus(&vp->tx_ring[entry]);
@@ -1102,7 +1102,7 @@ static int corkscrew_start_xmit(struct sk_buff *skb,
 					int j;
 					outw(TxReset, ioaddr + EL3_CMD);
 					for (j = 20; j >= 0; j--)
-						if (!(inw(ioaddr + EL3_STATUS) & CmdInProgress)) 
+						if (!(inw(ioaddr + EL3_STATUS) & CmdInProgress))
 							break;
 				}
 				outw(TxEnable, ioaddr + EL3_CMD);
@@ -1130,7 +1130,7 @@ static irqreturn_t corkscrew_interrupt(int irq, void *dev_id,
 	latency = inb(ioaddr + Timer);
 
 	spin_lock(&lp->lock);
-	
+
 	status = inw(ioaddr + EL3_STATUS);
 
 	if (corkscrew_debug > 4)
@@ -1249,7 +1249,7 @@ static irqreturn_t corkscrew_interrupt(int irq, void *dev_id,
 		outw(AckIntr | IntReq | IntLatch, ioaddr + EL3_CMD);
 
 	} while ((status = inw(ioaddr + EL3_STATUS)) & (IntLatch | RxComplete));
-	
+
 	spin_unlock(&lp->lock);
 
 	if (corkscrew_debug > 4)
@@ -1308,7 +1308,7 @@ static int corkscrew_rx(struct net_device *dev)
 				vp->stats.rx_bytes += pkt_len;
 				/* Wait a limited time to go to next packet. */
 				for (i = 200; i >= 0; i--)
-					if (! (inw(ioaddr + EL3_STATUS) & CmdInProgress)) 
+					if (! (inw(ioaddr + EL3_STATUS) & CmdInProgress))
 						break;
 				continue;
 			} else if (corkscrew_debug)
@@ -1561,13 +1561,13 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
 	corkscrew_debug = level;
 }
 
-static struct ethtool_ops netdev_ethtool_ops = {
+static const struct ethtool_ops netdev_ethtool_ops = {
 	.get_drvinfo		= netdev_get_drvinfo,
 	.get_msglevel		= netdev_get_msglevel,
 	.set_msglevel		= netdev_set_msglevel,
 };
 
-
+
 #ifdef MODULE
 void cleanup_module(void)
 {
@@ -1584,7 +1584,7 @@ void cleanup_module(void)
 	}
 }
 #endif				/* MODULE */
-
+
 /*
  * Local variables:
  *  compile-command: "gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c 3c515.c"

+ 14 - 14
drivers/net/3c523.c

@@ -83,7 +83,7 @@
        Stuart Adamson <stuart.adamson@compsoc.net>
    Nov 2001
    added support for ethtool (jgarzik)
-	
+
    $Header: /fsys2/home/chrisb/linux-1.3.59-MCA/drivers/net/RCS/3c523.c,v 1.1 1996/02/05 01:53:46 chrisb Exp chrisb $
  */
 
@@ -189,7 +189,7 @@ static void elmc_timeout(struct net_device *dev);
 #ifdef ELMC_MULTICAST
 static void set_multicast_list(struct net_device *dev);
 #endif
-static struct ethtool_ops netdev_ethtool_ops;
+static const struct ethtool_ops netdev_ethtool_ops;
 
 /* helper-functions */
 static int init586(struct net_device *dev);
@@ -434,14 +434,14 @@ static int __init do_elmc_probe(struct net_device *dev)
 
 		dev->irq=irq_table[(status & ELMC_STATUS_IRQ_SELECT) >> 6];
 		dev->base_addr=csr_table[(status & ELMC_STATUS_CSR_SELECT) >> 1];
-		
+
 		/*
 		   If we're trying to match a specified irq or IO address,
 		   we'll reject a match unless it's what we're looking for.
 		   Also reject it if the card is already in use.
 		 */
 
-		if ((irq && irq != dev->irq) || 
+		if ((irq && irq != dev->irq) ||
 		    (base_addr && base_addr != dev->base_addr)) {
 			slot = mca_find_adapter(ELMC_MCA_ID, slot + 1);
 			continue;
@@ -540,7 +540,7 @@ static int __init do_elmc_probe(struct net_device *dev)
 
 	/* dump all the assorted information */
 	printk(KERN_INFO "%s: IRQ %d, %sternal xcvr, memory %#lx-%#lx.\n", dev->name,
-	       dev->irq, dev->if_port ? "ex" : "in", 
+	       dev->irq, dev->if_port ? "ex" : "in",
 	       dev->mem_start, dev->mem_end - 1);
 
 	/* The hardware address for the 3c523 is stored in the first six
@@ -564,7 +564,7 @@ static int __init do_elmc_probe(struct net_device *dev)
 	dev->set_multicast_list = NULL;
 #endif
 	dev->ethtool_ops = &netdev_ethtool_ops;
-	
+
 	/* note that we haven't actually requested the IRQ from the kernel.
 	   That gets done in elmc_open().  I'm not sure that's such a good idea,
 	   but it works, so I'll go with it. */
@@ -583,7 +583,7 @@ err_out:
 	release_region(dev->base_addr, ELMC_IO_EXTENT);
 	return retval;
 }
- 
+
 static void cleanup_card(struct net_device *dev)
 {
 	mca_set_adapter_procfn(((struct priv *) (dev->priv))->slot, NULL, NULL);
@@ -926,7 +926,7 @@ elmc_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr)
 
 	p = (struct priv *) dev->priv;
 
-	while ((stat = p->scb->status & STAT_MASK)) 
+	while ((stat = p->scb->status & STAT_MASK))
 	{
 		p->scb->cmd = stat;
 		elmc_attn586();	/* ack inter. */
@@ -1102,7 +1102,7 @@ static void startrecv586(struct net_device *dev)
 /******************************************************
  * timeout
  */
- 
+
 static void elmc_timeout(struct net_device *dev)
 {
 	struct priv *p = (struct priv *) dev->priv;
@@ -1129,7 +1129,7 @@ static void elmc_timeout(struct net_device *dev)
 		elmc_open(dev);
 	}
 }
- 
+
 /******************************************************
  * send frame
  */
@@ -1146,7 +1146,7 @@ static int elmc_send_packet(struct sk_buff *skb, struct net_device *dev)
 	netif_stop_queue(dev);
 
 	len = (ETH_ZLEN < skb->len) ? skb->len : ETH_ZLEN;
-	
+
 	if (len != skb->len)
 		memset((char *) p->xmit_cbuffs[p->xmit_count], 0, ETH_ZLEN);
 	memcpy((char *) p->xmit_cbuffs[p->xmit_count], (char *) (skb->data), skb->len);
@@ -1177,7 +1177,7 @@ static int elmc_send_packet(struct sk_buff *skb, struct net_device *dev)
 #else
 	next_nop = (p->nop_point + 1) & 0x1;
 	p->xmit_buffs[0]->size = TBD_LAST | len;
-	
+
 	p->xmit_cmds[0]->cmd_link = p->nop_cmds[next_nop]->cmd_link
 	    = make16((p->nop_cmds[next_nop]));
 	p->xmit_cmds[0]->cmd_status = p->nop_cmds[next_nop]->cmd_status = 0;
@@ -1259,7 +1259,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
 	sprintf(info->bus_info, "MCA 0x%lx", dev->base_addr);
 }
 
-static struct ethtool_ops netdev_ethtool_ops = {
+static const struct ethtool_ops netdev_ethtool_ops = {
 	.get_drvinfo		= netdev_get_drvinfo,
 };
 
@@ -1281,7 +1281,7 @@ int __init init_module(void)
 {
 	int this_dev,found = 0;
 
-	/* Loop until we either can't find any more cards, or we have MAX_3C523_CARDS */	
+	/* Loop until we either can't find any more cards, or we have MAX_3C523_CARDS */
 	for(this_dev=0; this_dev<MAX_3C523_CARDS; this_dev++) {
 		struct net_device *dev = alloc_etherdev(sizeof(struct priv));
 		if (!dev)

+ 7 - 7
drivers/net/3c523.h

@@ -130,7 +130,7 @@ struct rfd_struct
 /*
  * Receive Buffer Descriptor (RBD)
  */
-struct rbd_struct 
+struct rbd_struct
 {
   unsigned short status;	/* status word,number of used bytes in buff */
   unsigned short next;		/* pointeroffset to next RBD */
@@ -182,7 +182,7 @@ struct nop_cmd_struct
 /*
  * IA Setup command
  */
-struct iasetup_cmd_struct 
+struct iasetup_cmd_struct
 {
   unsigned short cmd_status;
   unsigned short cmd_cmd;
@@ -191,7 +191,7 @@ struct iasetup_cmd_struct
 };
 
 /*
- * Configure command 
+ * Configure command
  */
 struct configure_cmd_struct
 {
@@ -213,9 +213,9 @@ struct configure_cmd_struct
 };
 
 /*
- * Multicast Setup command 
+ * Multicast Setup command
  */
-struct mcsetup_cmd_struct 
+struct mcsetup_cmd_struct
 {
   unsigned short cmd_status;
   unsigned short cmd_cmd;
@@ -225,9 +225,9 @@ struct mcsetup_cmd_struct
 };
 
 /*
- * transmit command 
+ * transmit command
  */
-struct transmit_cmd_struct 
+struct transmit_cmd_struct
 {
   unsigned short cmd_status;
   unsigned short cmd_cmd;

+ 265 - 265
drivers/net/3c527.c

@@ -1,7 +1,7 @@
 /* 3c527.c: 3Com Etherlink/MC32 driver for Linux 2.4 and 2.6.
  *
  *	(c) Copyright 1998 Red Hat Software Inc
- *	Written by Alan Cox. 
+ *	Written by Alan Cox.
  *	Further debugging by Carl Drougge.
  *      Initial SMP support by Felipe W Damasio <felipewd@terra.com.br>
  *      Heavily modified by Richard Procter <rnp@paradise.net.nz>
@@ -30,12 +30,12 @@ DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " Richard Procter <rnp@paradise.net.
  *	The diagram (Figure 1-1) and the POS summary disagree with the
  *	"Interrupt Level" section in the manual.
  *
- *	The manual contradicts itself when describing the minimum number 
- *	buffers in the 'configure lists' command. 
- *	My card accepts a buffer config of 4/4. 
+ *	The manual contradicts itself when describing the minimum number
+ *	buffers in the 'configure lists' command.
+ *	My card accepts a buffer config of 4/4.
  *
  *	Setting the SAV BP bit does not save bad packets, but
- *	only enables RX on-card stats collection. 
+ *	only enables RX on-card stats collection.
  *
  *	The documentation in places seems to miss things. In actual fact
  *	I've always eventually found everything is documented, it just
@@ -64,16 +64,16 @@ DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " Richard Procter <rnp@paradise.net.
  *	received frames exceeding a configurable length are passed
  *	directly to the higher networking layers without incuring a copy,
  *	in what amounts to a time/space trade-off.
- *	 
+ *
  *	The card also keeps a large amount of statistical information
  *	on-board. In a perfect world, these could be used safely at no
  *	cost. However, lacking information to the contrary, processing
  *	them without races would involve so much extra complexity as to
  *	make it unworthwhile to do so. In the end, a hybrid SW/HW
- *	implementation was made necessary --- see mc32_update_stats().  
+ *	implementation was made necessary --- see mc32_update_stats().
  *
  * DOC: Notes
- *	
+ *
  *	It should be possible to use two or more cards, but at this stage
  *	only by loading two copies of the same module.
  *
@@ -132,28 +132,28 @@ static unsigned int mc32_debug = NET_DEBUG;
 /* The number of low I/O ports used by the ethercard. */
 #define MC32_IO_EXTENT	8
 
-/* As implemented, values must be a power-of-2 -- 4/8/16/32 */ 
+/* As implemented, values must be a power-of-2 -- 4/8/16/32 */
 #define TX_RING_LEN     32       /* Typically the card supports 37  */
 #define RX_RING_LEN     8        /*     "       "        "          */
 
-/* Copy break point, see above for details. 
- * Setting to > 1512 effectively disables this feature.	*/	    
+/* Copy break point, see above for details.
+ * Setting to > 1512 effectively disables this feature.	*/
 #define RX_COPYBREAK    200      /* Value from 3c59x.c */
 
 /* Issue the 82586 workaround command - this is for "busy lans", but
- * basically means for all lans now days - has a performance (latency) 
- * cost, but best set. */ 
+ * basically means for all lans now days - has a performance (latency)
+ * cost, but best set. */
 static const int WORKAROUND_82586=1;
 
 /* Pointers to buffers and their on-card records */
-struct mc32_ring_desc 
+struct mc32_ring_desc
 {
-	volatile struct skb_header *p;                    
-	struct sk_buff *skb;          
+	volatile struct skb_header *p;
+	struct sk_buff *skb;
 };
 
 /* Information that needs to be kept for each board. */
-struct mc32_local 
+struct mc32_local
 {
 	int slot;
 
@@ -165,7 +165,7 @@ struct mc32_local
         volatile struct mc32_stats *stats;    /* Start of on-card statistics */
         u16 tx_chain;           /* Transmit list start offset */
 	u16 rx_chain;           /* Receive list start offset */
-        u16 tx_len;             /* Transmit list count */ 
+        u16 tx_len;             /* Transmit list count */
         u16 rx_len;             /* Receive list count */
 
 	u16 xceiver_desired_state; /* HALTED or RUNNING */
@@ -180,7 +180,7 @@ struct mc32_local
 	atomic_t tx_ring_head;  /* index to tx en-queue end */
 	u16 tx_ring_tail;       /* index to tx de-queue end */
 
-	u16 rx_ring_tail;       /* index to rx de-queue end */ 
+	u16 rx_ring_tail;       /* index to rx de-queue end */
 
 	struct semaphore cmd_mutex;    /* Serialises issuing of execute commands */
         struct completion execution_cmd; /* Card has completed an execute command */
@@ -204,7 +204,7 @@ static const struct mca_adapters_t mc32_adapters[] = {
 };
 
 
-/* Macros for ring index manipulations */ 
+/* Macros for ring index manipulations */
 static inline u16 next_rx(u16 rx) { return (rx+1)&(RX_RING_LEN-1); };
 static inline u16 prev_rx(u16 rx) { return (rx-1)&(RX_RING_LEN-1); };
 
@@ -222,7 +222,7 @@ static int	mc32_close(struct net_device *dev);
 static struct	net_device_stats *mc32_get_stats(struct net_device *dev);
 static void	mc32_set_multicast_list(struct net_device *dev);
 static void	mc32_reset_multicast_list(struct net_device *dev);
-static struct ethtool_ops netdev_ethtool_ops;
+static const struct ethtool_ops netdev_ethtool_ops;
 
 static void cleanup_card(struct net_device *dev)
 {
@@ -259,21 +259,21 @@ struct net_device *__init mc32_probe(int unit)
 
 	SET_MODULE_OWNER(dev);
 
-	/* Do not check any supplied i/o locations. 
+	/* Do not check any supplied i/o locations.
 	   POS registers usually don't fail :) */
 
-	/* MCA cards have POS registers.  
-	   Autodetecting MCA cards is extremely simple. 
+	/* MCA cards have POS registers.
+	   Autodetecting MCA cards is extremely simple.
 	   Just search for the card. */
 
 	for(i = 0; (mc32_adapters[i].name != NULL); i++) {
-		current_mca_slot = 
+		current_mca_slot =
 			mca_find_unused_adapter(mc32_adapters[i].id, 0);
 
 		if(current_mca_slot != MCA_NOTFOUND) {
 			if(!mc32_probe1(dev, current_mca_slot))
 			{
-				mca_set_adapter_name(current_mca_slot, 
+				mca_set_adapter_name(current_mca_slot,
 						mc32_adapters[i].name);
 				mca_mark_as_used(current_mca_slot);
 				err = register_netdev(dev);
@@ -284,7 +284,7 @@ struct net_device *__init mc32_probe(int unit)
 				}
 				return dev;
 			}
-			
+
 		}
 	}
 	free_netdev(dev);
@@ -298,7 +298,7 @@ struct net_device *__init mc32_probe(int unit)
  *
  * Decode the slot data and configure the card structures. Having done this we
  * can reset the card and configure it. The card does a full self test cycle
- * in firmware so we have to wait for it to return and post us either a 
+ * in firmware so we have to wait for it to return and post us either a
  * failure case or some addresses we use to find the board internals.
  */
 
@@ -347,7 +347,7 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 	printk(KERN_INFO "%s: %s found in slot %d:", dev->name, cardname, slot);
 
 	POS = mca_read_stored_pos(slot, 2);
-	
+
 	if(!(POS&1))
 	{
 		printk(" disabled.\n");
@@ -357,7 +357,7 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 	/* Fill in the 'dev' fields. */
 	dev->base_addr = mca_io_bases[(POS>>1)&7];
 	dev->mem_start = mca_mem_bases[(POS>>4)&7];
-	
+
 	POS = mca_read_stored_pos(slot, 4);
 	if(!(POS&1))
 	{
@@ -366,21 +366,21 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 	}
 
 	POS = mca_read_stored_pos(slot, 5);
-	
+
 	i=(POS>>4)&3;
 	if(i==3)
 	{
 		printk("invalid memory window.\n");
 		return -ENODEV;
 	}
-	
+
 	i*=16384;
 	i+=16384;
-	
+
 	dev->mem_end=dev->mem_start + i;
-	
+
 	dev->irq = ((POS>>2)&3)+9;
-	
+
 	if(!request_region(dev->base_addr, MC32_IO_EXTENT, cardname))
 	{
 		printk("io 0x%3lX, which is busy.\n", dev->base_addr);
@@ -389,23 +389,23 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 
 	printk("io 0x%3lX irq %d mem 0x%lX (%dK)\n",
 		dev->base_addr, dev->irq, dev->mem_start, i/1024);
-	
-	
+
+
 	/* We ought to set the cache line size here.. */
-	
-	
+
+
 	/*
 	 *	Go PROM browsing
 	 */
-	 
+
 	printk("%s: Address ", dev->name);
-	 
+
 	/* Retrieve and print the ethernet address. */
 	for (i = 0; i < 6; i++)
 	{
 		mca_write_pos(slot, 6, i+12);
 		mca_write_pos(slot, 7, 0);
-	
+
 		printk(" %2.2x", dev->dev_addr[i] = mca_read_pos(slot,3));
 	}
 
@@ -413,12 +413,12 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 	mca_write_pos(slot, 7, 0);
 
 	POS = mca_read_stored_pos(slot, 4);
-	
+
 	if(POS&2)
 		printk(" : BNC port selected.\n");
-	else 
+	else
 		printk(" : AUI port selected.\n");
-		
+
 	POS=inb(dev->base_addr+HOST_CTRL);
 	POS|=HOST_CTRL_ATTN|HOST_CTRL_RESET;
 	POS&=~HOST_CTRL_INTE;
@@ -428,9 +428,9 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 	/* Reset off */
 	POS&=~(HOST_CTRL_ATTN|HOST_CTRL_RESET);
 	outb(POS, dev->base_addr+HOST_CTRL);
-	
+
 	udelay(300);
-	
+
 	/*
 	 *	Grab the IRQ
 	 */
@@ -448,14 +448,14 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 	i=0;
 
 	base = inb(dev->base_addr);
-	
+
 	while(base == 0xFF)
 	{
 		i++;
 		if(i == 1000)
 		{
 			printk(KERN_ERR "%s: failed to boot adapter.\n", dev->name);
-			err = -ENODEV; 
+			err = -ENODEV;
 			goto err_exit_irq;
 		}
 		udelay(1000);
@@ -470,15 +470,15 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 				base<0x0A?" test failure":"");
 		else
 			printk(KERN_ERR "%s: unknown failure %d.\n", dev->name, base);
-		err = -ENODEV; 
+		err = -ENODEV;
 		goto err_exit_irq;
 	}
-	
+
 	base=0;
 	for(i=0;i<4;i++)
 	{
 		int n=0;
-	
+
 		while(!(inb(dev->base_addr+2)&(1<<5)))
 		{
 			n++;
@@ -493,31 +493,31 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
 
 		base|=(inb(dev->base_addr)<<(8*i));
 	}
-	
+
 	lp->exec_box=isa_bus_to_virt(dev->mem_start+base);
-	
-	base=lp->exec_box->data[1]<<16|lp->exec_box->data[0];  
-	
+
+	base=lp->exec_box->data[1]<<16|lp->exec_box->data[0];
+
 	lp->base = dev->mem_start+base;
-	
-	lp->rx_box=isa_bus_to_virt(lp->base + lp->exec_box->data[2]); 
+
+	lp->rx_box=isa_bus_to_virt(lp->base + lp->exec_box->data[2]);
 	lp->tx_box=isa_bus_to_virt(lp->base + lp->exec_box->data[3]);
-	
+
 	lp->stats = isa_bus_to_virt(lp->base + lp->exec_box->data[5]);
 
 	/*
 	 *	Descriptor chains (card relative)
 	 */
-	 
+
 	lp->tx_chain 		= lp->exec_box->data[8];   /* Transmit list start offset */
 	lp->rx_chain 		= lp->exec_box->data[10];  /* Receive list start offset */
-	lp->tx_len 		= lp->exec_box->data[9];   /* Transmit list count */ 
+	lp->tx_len 		= lp->exec_box->data[9];   /* Transmit list count */
 	lp->rx_len 		= lp->exec_box->data[11];  /* Receive list count */
 
 	init_MUTEX_LOCKED(&lp->cmd_mutex);
 	init_completion(&lp->execution_cmd);
 	init_completion(&lp->xceiver_cmd);
-	
+
 	printk("%s: Firmware Rev %d. %d RX buffers, %d TX buffers. Base of 0x%08X.\n",
 		dev->name, lp->exec_box->data[12], lp->rx_len, lp->tx_len, lp->base);
 
@@ -543,12 +543,12 @@ err_exit_ports:
 /**
  *	mc32_ready_poll		-	wait until we can feed it a command
  *	@dev:	The device to wait for
- *	
+ *
  *	Wait until the card becomes ready to accept a command via the
  *	command register. This tells us nothing about the completion
  *	status of any pending commands and takes very little time at all.
  */
- 
+
 static inline void mc32_ready_poll(struct net_device *dev)
 {
 	int ioaddr = dev->base_addr;
@@ -608,22 +608,22 @@ static int mc32_command_nowait(struct net_device *dev, u16 cmd, void *data, int
  *
  *	Sends exec commands in a user context. This permits us to wait around
  *	for the replies and also to wait for the command buffer to complete
- *	from a previous command before we execute our command. After our 
+ *	from a previous command before we execute our command. After our
  *	command completes we will attempt any pending multicast reload
  *	we blocked off by hogging the exec buffer.
  *
- *	You feed the card a command, you wait, it interrupts you get a 
+ *	You feed the card a command, you wait, it interrupts you get a
  *	reply. All well and good. The complication arises because you use
  *	commands for filter list changes which come in at bh level from things
  *	like IPV6 group stuff.
  */
-  
+
 static int mc32_command(struct net_device *dev, u16 cmd, void *data, int len)
 {
 	struct mc32_local *lp = netdev_priv(dev);
 	int ioaddr = dev->base_addr;
 	int ret = 0;
-	
+
 	down(&lp->cmd_mutex);
 
 	/*
@@ -640,7 +640,7 @@ static int mc32_command(struct net_device *dev, u16 cmd, void *data, int len)
 	outb(1<<6, ioaddr+HOST_CMD);
 
 	wait_for_completion(&lp->execution_cmd);
-	
+
 	if(lp->exec_box->mbox&(1<<13))
 		ret = -1;
 
@@ -664,8 +664,8 @@ static int mc32_command(struct net_device *dev, u16 cmd, void *data, int len)
  *	@dev: The 3c527 card to issue the command to
  *
  *	This may be called from the interrupt state, where it is used
- *	to restart the rx ring if the card runs out of rx buffers. 
- *	
+ *	to restart the rx ring if the card runs out of rx buffers.
+ *
  * 	We must first check if it's ok to (re)start the transceiver. See
  *      mc32_close for details.
  */
@@ -675,21 +675,21 @@ static void mc32_start_transceiver(struct net_device *dev) {
 	struct mc32_local *lp = netdev_priv(dev);
 	int ioaddr = dev->base_addr;
 
-	/* Ignore RX overflow on device closure */ 
+	/* Ignore RX overflow on device closure */
 	if (lp->xceiver_desired_state==HALTED)
-		return; 
+		return;
 
 	/* Give the card the offset to the post-EOL-bit RX descriptor */
-	mc32_ready_poll(dev); 
+	mc32_ready_poll(dev);
 	lp->rx_box->mbox=0;
-	lp->rx_box->data[0]=lp->rx_ring[prev_rx(lp->rx_ring_tail)].p->next; 
-	outb(HOST_CMD_START_RX, ioaddr+HOST_CMD);      
+	lp->rx_box->data[0]=lp->rx_ring[prev_rx(lp->rx_ring_tail)].p->next;
+	outb(HOST_CMD_START_RX, ioaddr+HOST_CMD);
 
-	mc32_ready_poll(dev); 
+	mc32_ready_poll(dev);
 	lp->tx_box->mbox=0;
-	outb(HOST_CMD_RESTRT_TX, ioaddr+HOST_CMD);   /* card ignores this on RX restart */ 
-	
-	/* We are not interrupted on start completion */ 
+	outb(HOST_CMD_RESTRT_TX, ioaddr+HOST_CMD);   /* card ignores this on RX restart */
+
+	/* We are not interrupted on start completion */
 }
 
 
@@ -703,21 +703,21 @@ static void mc32_start_transceiver(struct net_device *dev) {
  *
  *	We then sleep until the card has notified us that both rx and
  *	tx have been suspended.
- */ 
+ */
 
-static void mc32_halt_transceiver(struct net_device *dev) 
+static void mc32_halt_transceiver(struct net_device *dev)
 {
 	struct mc32_local *lp = netdev_priv(dev);
 	int ioaddr = dev->base_addr;
 
-	mc32_ready_poll(dev);	
+	mc32_ready_poll(dev);
 	lp->rx_box->mbox=0;
-	outb(HOST_CMD_SUSPND_RX, ioaddr+HOST_CMD);			
+	outb(HOST_CMD_SUSPND_RX, ioaddr+HOST_CMD);
 	wait_for_completion(&lp->xceiver_cmd);
 
-	mc32_ready_poll(dev); 
+	mc32_ready_poll(dev);
 	lp->tx_box->mbox=0;
-	outb(HOST_CMD_SUSPND_TX, ioaddr+HOST_CMD);	
+	outb(HOST_CMD_SUSPND_TX, ioaddr+HOST_CMD);
 	wait_for_completion(&lp->xceiver_cmd);
 }
 
@@ -741,14 +741,14 @@ static void mc32_halt_transceiver(struct net_device *dev)
  *	We then set the end-of-list bit for the last entry so that the
  * 	card will know when it has run out of buffers.
  */
-	 
+
 static int mc32_load_rx_ring(struct net_device *dev)
 {
 	struct mc32_local *lp = netdev_priv(dev);
 	int i;
 	u16 rx_base;
 	volatile struct skb_header *p;
-	
+
 	rx_base=lp->rx_chain;
 
 	for(i=0; i<RX_RING_LEN; i++) {
@@ -761,14 +761,14 @@ static int mc32_load_rx_ring(struct net_device *dev)
 		skb_reserve(lp->rx_ring[i].skb, 18);
 
 		p=isa_bus_to_virt(lp->base+rx_base);
-				
+
 		p->control=0;
 		p->data=isa_virt_to_bus(lp->rx_ring[i].skb->data);
 		p->status=0;
 		p->length=1532;
-	
-		lp->rx_ring[i].p=p; 
-		rx_base=p->next; 
+
+		lp->rx_ring[i].p=p;
+		rx_base=p->next;
 	}
 
 	lp->rx_ring[i-1].p->control |= CONTROL_EOL;
@@ -776,14 +776,14 @@ static int mc32_load_rx_ring(struct net_device *dev)
 	lp->rx_ring_tail=0;
 
 	return 0;
-}	
+}
 
 
 /**
  *	mc32_flush_rx_ring	-	free the ring of receive buffers
  *	@lp: Local data of 3c527 to flush the rx ring of
  *
- *	Free the buffer for each ring slot. This may be called 
+ *	Free the buffer for each ring slot. This may be called
  *      before mc32_load_rx_ring(), eg. on error in mc32_open().
  *      Requires rx skb pointers to point to a valid skb, or NULL.
  */
@@ -791,16 +791,16 @@ static int mc32_load_rx_ring(struct net_device *dev)
 static void mc32_flush_rx_ring(struct net_device *dev)
 {
 	struct mc32_local *lp = netdev_priv(dev);
-	int i; 
+	int i;
 
-	for(i=0; i < RX_RING_LEN; i++) 
-	{ 
+	for(i=0; i < RX_RING_LEN; i++)
+	{
 		if (lp->rx_ring[i].skb) {
 			dev_kfree_skb(lp->rx_ring[i].skb);
 			lp->rx_ring[i].skb = NULL;
 		}
-		lp->rx_ring[i].p=NULL; 
-	} 
+		lp->rx_ring[i].p=NULL;
+	}
 }
 
 
@@ -808,31 +808,31 @@ static void mc32_flush_rx_ring(struct net_device *dev)
  *	mc32_load_tx_ring	-	load transmit ring
  *	@dev: The 3c527 card to issue the command to
  *
- *	This sets up the host transmit data-structures. 
+ *	This sets up the host transmit data-structures.
  *
  *	First, we obtain from the card it's current postion in the tx
  *	ring, so that we will know where to begin transmitting
  *	packets.
- * 	
+ *
  * 	Then, we read the 'next' pointers from the on-card tx ring into
  *  	our tx_ring array to reduce slow shared-mem reads. Finally, we
  * 	intitalise the tx house keeping variables.
- * 
- */ 
+ *
+ */
 
 static void mc32_load_tx_ring(struct net_device *dev)
-{ 
+{
 	struct mc32_local *lp = netdev_priv(dev);
 	volatile struct skb_header *p;
-	int i; 
+	int i;
 	u16 tx_base;
 
-	tx_base=lp->tx_box->data[0]; 
+	tx_base=lp->tx_box->data[0];
 
 	for(i=0 ; i<TX_RING_LEN ; i++)
 	{
 		p=isa_bus_to_virt(lp->base+tx_base);
-		lp->tx_ring[i].p=p; 
+		lp->tx_ring[i].p=p;
 		lp->tx_ring[i].skb=NULL;
 
 		tx_base=p->next;
@@ -841,10 +841,10 @@ static void mc32_load_tx_ring(struct net_device *dev)
 	/* -1 so that tx_ring_head cannot "lap" tx_ring_tail */
 	/* see mc32_tx_ring */
 
-	atomic_set(&lp->tx_count, TX_RING_LEN-1); 
-	atomic_set(&lp->tx_ring_head, 0); 
-	lp->tx_ring_tail=0; 
-} 
+	atomic_set(&lp->tx_count, TX_RING_LEN-1);
+	atomic_set(&lp->tx_ring_head, 0);
+	lp->tx_ring_tail=0;
+}
 
 
 /**
@@ -871,11 +871,11 @@ static void mc32_flush_tx_ring(struct net_device *dev)
 		}
 	}
 
-	atomic_set(&lp->tx_count, 0); 
-	atomic_set(&lp->tx_ring_head, 0); 
+	atomic_set(&lp->tx_count, 0);
+	atomic_set(&lp->tx_ring_head, 0);
 	lp->tx_ring_tail=0;
 }
- 	
+
 
 /**
  *	mc32_open	-	handle 'up' of card
@@ -909,7 +909,7 @@ static int mc32_open(struct net_device *dev)
 	regs=inb(ioaddr+HOST_CTRL);
 	regs|=HOST_CTRL_INTE;
 	outb(regs, ioaddr+HOST_CTRL);
-	
+
 	/*
 	 *      Allow ourselves to issue commands
 	 */
@@ -924,52 +924,52 @@ static int mc32_open(struct net_device *dev)
 	mc32_command(dev, 4, &one, 2);
 
 	/*
-	 *	Poke it to make sure it's really dead. 
+	 *	Poke it to make sure it's really dead.
 	 */
 
-	mc32_halt_transceiver(dev); 
-	mc32_flush_tx_ring(dev); 
+	mc32_halt_transceiver(dev);
+	mc32_flush_tx_ring(dev);
 
-	/* 
-	 *	Ask card to set up on-card descriptors to our spec 
-	 */ 
+	/*
+	 *	Ask card to set up on-card descriptors to our spec
+	 */
 
-	if(mc32_command(dev, 8, descnumbuffs, 4)) { 
+	if(mc32_command(dev, 8, descnumbuffs, 4)) {
 		printk("%s: %s rejected our buffer configuration!\n",
 	 	       dev->name, cardname);
-		mc32_close(dev); 
-		return -ENOBUFS; 
+		mc32_close(dev);
+		return -ENOBUFS;
 	}
-	
-	/* Report new configuration */ 
-	mc32_command(dev, 6, NULL, 0); 
+
+	/* Report new configuration */
+	mc32_command(dev, 6, NULL, 0);
 
 	lp->tx_chain 		= lp->exec_box->data[8];   /* Transmit list start offset */
 	lp->rx_chain 		= lp->exec_box->data[10];  /* Receive list start offset */
-	lp->tx_len 		= lp->exec_box->data[9];   /* Transmit list count */ 
+	lp->tx_len 		= lp->exec_box->data[9];   /* Transmit list count */
 	lp->rx_len 		= lp->exec_box->data[11];  /* Receive list count */
- 
+
 	/* Set Network Address */
 	mc32_command(dev, 1, dev->dev_addr, 6);
-	
+
 	/* Set the filters */
 	mc32_set_multicast_list(dev);
-		   
-	if (WORKAROUND_82586) { 
+
+	if (WORKAROUND_82586) {
 		u16 zero_word=0;
 		mc32_command(dev, 0x0D, &zero_word, 2);   /* 82586 bug workaround on  */
 	}
 
 	mc32_load_tx_ring(dev);
-	
-	if(mc32_load_rx_ring(dev)) 
+
+	if(mc32_load_rx_ring(dev))
 	{
 		mc32_close(dev);
 		return -ENOBUFS;
 	}
 
 	lp->xceiver_desired_state = RUNNING;
-	
+
 	/* And finally, set the ball rolling... */
 	mc32_start_transceiver(dev);
 
@@ -1015,14 +1015,14 @@ static void mc32_timeout(struct net_device *dev)
  *      after we've established a valid packet on the tx ring (and
  *      before we let the card "see" it, to prevent it racing with the
  *      irq handler).
- * 
+ *
  */
 
 static int mc32_send_packet(struct sk_buff *skb, struct net_device *dev)
 {
 	struct mc32_local *lp = netdev_priv(dev);
 	u32 head = atomic_read(&lp->tx_ring_head);
-	
+
 	volatile struct skb_header *p, *np;
 
 	netif_stop_queue(dev);
@@ -1036,31 +1036,31 @@ static int mc32_send_packet(struct sk_buff *skb, struct net_device *dev)
 		return 0;
 	}
 
-	atomic_dec(&lp->tx_count); 
+	atomic_dec(&lp->tx_count);
 
 	/* P is the last sending/sent buffer as a pointer */
 	p=lp->tx_ring[head].p;
-		
+
 	head = next_tx(head);
 
 	/* NP is the buffer we will be loading */
-	np=lp->tx_ring[head].p; 
-	
+	np=lp->tx_ring[head].p;
+
 	/* We will need this to flush the buffer out */
 	lp->tx_ring[head].skb=skb;
 
-	np->length      = unlikely(skb->len < ETH_ZLEN) ? ETH_ZLEN : skb->len;			
+	np->length      = unlikely(skb->len < ETH_ZLEN) ? ETH_ZLEN : skb->len;
 	np->data	= isa_virt_to_bus(skb->data);
 	np->status	= 0;
-	np->control     = CONTROL_EOP | CONTROL_EOL;     
+	np->control     = CONTROL_EOP | CONTROL_EOL;
 	wmb();
-		
+
 	/*
 	 * The new frame has been setup; we can now
 	 * let the interrupt handler and card "see" it
 	 */
 
-	atomic_set(&lp->tx_ring_head, head); 
+	atomic_set(&lp->tx_ring_head, head);
 	p->control     &= ~CONTROL_EOL;
 
 	netif_wake_queue(dev);
@@ -1072,13 +1072,13 @@ static int mc32_send_packet(struct sk_buff *skb, struct net_device *dev)
  *	mc32_update_stats	-	pull off the on board statistics
  *	@dev: 3c527 to service
  *
- * 
+ *
  *	Query and reset the on-card stats. There's the small possibility
  *	of a race here, which would result in an underestimation of
  *	actual errors. As such, we'd prefer to keep all our stats
  *	collection in software. As a rule, we do. However it can't be
  *	used for rx errors and collisions as, by default, the card discards
- *	bad rx packets. 
+ *	bad rx packets.
  *
  *	Setting the SAV BP in the rx filter command supposedly
  *	stops this behaviour. However, testing shows that it only seems to
@@ -1090,30 +1090,30 @@ static int mc32_send_packet(struct sk_buff *skb, struct net_device *dev)
 static void mc32_update_stats(struct net_device *dev)
 {
 	struct mc32_local *lp = netdev_priv(dev);
-	volatile struct mc32_stats *st = lp->stats; 
+	volatile struct mc32_stats *st = lp->stats;
 
-	u32 rx_errors=0; 
-      
-	rx_errors+=lp->net_stats.rx_crc_errors   +=st->rx_crc_errors;         
+	u32 rx_errors=0;
+
+	rx_errors+=lp->net_stats.rx_crc_errors   +=st->rx_crc_errors;
 	                                           st->rx_crc_errors=0;
-	rx_errors+=lp->net_stats.rx_fifo_errors  +=st->rx_overrun_errors;   
-	                                           st->rx_overrun_errors=0; 
-	rx_errors+=lp->net_stats.rx_frame_errors +=st->rx_alignment_errors; 
+	rx_errors+=lp->net_stats.rx_fifo_errors  +=st->rx_overrun_errors;
+	                                           st->rx_overrun_errors=0;
+	rx_errors+=lp->net_stats.rx_frame_errors +=st->rx_alignment_errors;
  	                                           st->rx_alignment_errors=0;
-	rx_errors+=lp->net_stats.rx_length_errors+=st->rx_tooshort_errors; 
+	rx_errors+=lp->net_stats.rx_length_errors+=st->rx_tooshort_errors;
 	                                           st->rx_tooshort_errors=0;
 	rx_errors+=lp->net_stats.rx_missed_errors+=st->rx_outofresource_errors;
-	                                           st->rx_outofresource_errors=0; 
-        lp->net_stats.rx_errors=rx_errors; 
-						   
+	                                           st->rx_outofresource_errors=0;
+        lp->net_stats.rx_errors=rx_errors;
+
 	/* Number of packets which saw one collision */
 	lp->net_stats.collisions+=st->dataC[10];
-	st->dataC[10]=0; 
+	st->dataC[10]=0;
 
-	/* Number of packets which saw 2--15 collisions */ 
-	lp->net_stats.collisions+=st->dataC[11]; 
-	st->dataC[11]=0; 
-}	
+	/* Number of packets which saw 2--15 collisions */
+	lp->net_stats.collisions+=st->dataC[11];
+	st->dataC[11]=0;
+}
 
 
 /**
@@ -1130,7 +1130,7 @@ static void mc32_update_stats(struct net_device *dev)
  *	For each completed packet, we will either copy it and pass it up
  * 	the stack or, if the packet is near MTU sized, we allocate
  *	another buffer and flip the old one up the stack.
- * 
+ *
  *	We must succeed in keeping a buffer on the ring. If necessary we
  *	will toss a received packet rather than lose a ring entry. Once
  *	the first uncompleted descriptor is found, we move the
@@ -1147,72 +1147,72 @@ static void mc32_rx_ring(struct net_device *dev)
 	int x=0;
 
 	rx_old_tail = rx_ring_tail = lp->rx_ring_tail;
-	
+
 	do
-	{ 
-		p=lp->rx_ring[rx_ring_tail].p; 
+	{
+		p=lp->rx_ring[rx_ring_tail].p;
 
-		if(!(p->status & (1<<7))) { /* Not COMPLETED */ 
+		if(!(p->status & (1<<7))) { /* Not COMPLETED */
 			break;
-		} 
+		}
 		if(p->status & (1<<6)) /* COMPLETED_OK */
-		{		        
+		{
 
 			u16 length=p->length;
-			struct sk_buff *skb; 
-			struct sk_buff *newskb; 
+			struct sk_buff *skb;
+			struct sk_buff *newskb;
 
 			/* Try to save time by avoiding a copy on big frames */
 
-			if ((length > RX_COPYBREAK) 
-			    && ((newskb=dev_alloc_skb(1532)) != NULL)) 
-			{ 
+			if ((length > RX_COPYBREAK)
+			    && ((newskb=dev_alloc_skb(1532)) != NULL))
+			{
 				skb=lp->rx_ring[rx_ring_tail].skb;
 				skb_put(skb, length);
-				
-				skb_reserve(newskb,18); 
-				lp->rx_ring[rx_ring_tail].skb=newskb;  
-				p->data=isa_virt_to_bus(newskb->data);  
-			} 
-			else 
+
+				skb_reserve(newskb,18);
+				lp->rx_ring[rx_ring_tail].skb=newskb;
+				p->data=isa_virt_to_bus(newskb->data);
+			}
+			else
 			{
-				skb=dev_alloc_skb(length+2);  
+				skb=dev_alloc_skb(length+2);
 
 				if(skb==NULL) {
-					lp->net_stats.rx_dropped++; 
-					goto dropped; 
+					lp->net_stats.rx_dropped++;
+					goto dropped;
 				}
 
 				skb_reserve(skb,2);
 				memcpy(skb_put(skb, length),
 				       lp->rx_ring[rx_ring_tail].skb->data, length);
 			}
-			
-			skb->protocol=eth_type_trans(skb,dev); 
-			skb->dev=dev; 
+
+			skb->protocol=eth_type_trans(skb,dev);
+			skb->dev=dev;
 			dev->last_rx = jiffies;
- 			lp->net_stats.rx_packets++; 
- 			lp->net_stats.rx_bytes += length; 
+ 			lp->net_stats.rx_packets++;
+ 			lp->net_stats.rx_bytes += length;
 			netif_rx(skb);
 		}
 
 	dropped:
-		p->length = 1532; 
+		p->length = 1532;
 		p->status = 0;
-		
-		rx_ring_tail=next_rx(rx_ring_tail); 
+
+		rx_ring_tail=next_rx(rx_ring_tail);
 	}
-        while(x++<48);  
+        while(x++<48);
 
-	/* If there was actually a frame to be processed, place the EOL bit */ 
-	/* at the descriptor prior to the one to be filled next */ 
+	/* If there was actually a frame to be processed, place the EOL bit */
+	/* at the descriptor prior to the one to be filled next */
 
-	if (rx_ring_tail != rx_old_tail) 
-	{ 
-		lp->rx_ring[prev_rx(rx_ring_tail)].p->control |=  CONTROL_EOL; 
-		lp->rx_ring[prev_rx(rx_old_tail)].p->control  &= ~CONTROL_EOL; 
+	if (rx_ring_tail != rx_old_tail)
+	{
+		lp->rx_ring[prev_rx(rx_ring_tail)].p->control |=  CONTROL_EOL;
+		lp->rx_ring[prev_rx(rx_old_tail)].p->control  &= ~CONTROL_EOL;
 
-		lp->rx_ring_tail=rx_ring_tail; 
+		lp->rx_ring_tail=rx_ring_tail;
 	}
 }
 
@@ -1228,10 +1228,10 @@ static void mc32_rx_ring(struct net_device *dev)
  *	any errors. This continues until the transmit ring is emptied
  *	or we reach a descriptor that hasn't yet been processed by the
  *	card.
- * 
+ *
  */
 
-static void mc32_tx_ring(struct net_device *dev) 
+static void mc32_tx_ring(struct net_device *dev)
 {
 	struct mc32_local *lp = netdev_priv(dev);
 	volatile struct skb_header *np;
@@ -1243,28 +1243,28 @@ static void mc32_tx_ring(struct net_device *dev)
 	 * condition with 'queue full'
 	 */
 
-	while (lp->tx_ring_tail != atomic_read(&lp->tx_ring_head))  
-	{   
-		u16 t; 
+	while (lp->tx_ring_tail != atomic_read(&lp->tx_ring_head))
+	{
+		u16 t;
 
-		t=next_tx(lp->tx_ring_tail); 
-		np=lp->tx_ring[t].p; 
+		t=next_tx(lp->tx_ring_tail);
+		np=lp->tx_ring[t].p;
 
-		if(!(np->status & (1<<7))) 
+		if(!(np->status & (1<<7)))
 		{
-			/* Not COMPLETED */ 
-			break; 
-		} 
+			/* Not COMPLETED */
+			break;
+		}
 		lp->net_stats.tx_packets++;
 		if(!(np->status & (1<<6))) /* Not COMPLETED_OK */
 		{
-			lp->net_stats.tx_errors++;   
+			lp->net_stats.tx_errors++;
 
 			switch(np->status&0x0F)
 			{
 				case 1:
 					lp->net_stats.tx_aborted_errors++;
-					break; /* Max collisions */ 
+					break; /* Max collisions */
 				case 2:
 					lp->net_stats.tx_fifo_errors++;
 					break;
@@ -1273,10 +1273,10 @@ static void mc32_tx_ring(struct net_device *dev)
 					break;
 				case 4:
 					lp->net_stats.tx_window_errors++;
-					break;  /* CTS Lost */ 
+					break;  /* CTS Lost */
 				case 5:
 					lp->net_stats.tx_aborted_errors++;
-					break; /* Transmit timeout */ 
+					break; /* Transmit timeout */
 			}
 		}
 		/* Packets are sent in order - this is
@@ -1288,10 +1288,10 @@ static void mc32_tx_ring(struct net_device *dev)
 		atomic_inc(&lp->tx_count);
 		netif_wake_queue(dev);
 
-		lp->tx_ring_tail=t; 
+		lp->tx_ring_tail=t;
 	}
 
-} 
+}
 
 
 /**
@@ -1322,13 +1322,13 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 	struct mc32_local *lp;
 	int ioaddr, status, boguscount = 0;
 	int rx_event = 0;
-	int tx_event = 0; 
-	
+	int tx_event = 0;
+
 	if (dev == NULL) {
 		printk(KERN_WARNING "%s: irq %d for unknown device.\n", cardname, irq);
 		return IRQ_NONE;
 	}
- 
+
 	ioaddr = dev->base_addr;
 	lp = netdev_priv(dev);
 
@@ -1338,19 +1338,19 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 	{
 		status=inb(ioaddr+HOST_CMD);
 
-#ifdef DEBUG_IRQ		
+#ifdef DEBUG_IRQ
 		printk("Status TX%d RX%d EX%d OV%d BC%d\n",
 			(status&7), (status>>3)&7, (status>>6)&1,
 			(status>>7)&1, boguscount);
 #endif
-			
+
 		switch(status&7)
 		{
 			case 0:
 				break;
 			case 6: /* TX fail */
 			case 2:	/* TX ok */
-				tx_event = 1; 
+				tx_event = 1;
 				break;
 			case 3: /* Halt */
 			case 4: /* Abort */
@@ -1365,7 +1365,7 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 			case 0:
 				break;
 			case 2:	/* RX */
-				rx_event=1; 
+				rx_event=1;
 				break;
 			case 3: /* Halt */
 			case 4: /* Abort */
@@ -1375,12 +1375,12 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 				/* Out of RX buffers stat */
 				/* Must restart rx */
 				lp->net_stats.rx_dropped++;
-				mc32_rx_ring(dev); 
-				mc32_start_transceiver(dev); 
+				mc32_rx_ring(dev);
+				mc32_start_transceiver(dev);
 				break;
 			default:
-				printk("%s: strange rx ack %d\n", 
-					dev->name, status&7);			
+				printk("%s: strange rx ack %d\n",
+					dev->name, status&7);
 		}
 		status>>=3;
 		if(status&1)
@@ -1389,10 +1389,10 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 			 * No thread is waiting: we need to tidy
 			 * up ourself.
 			 */
-				   
+
 			if (lp->cmd_nonblocking) {
 				up(&lp->cmd_mutex);
-				if (lp->mc_reload_wait) 
+				if (lp->mc_reload_wait)
 					mc32_reset_multicast_list(dev);
 			}
 			else complete(&lp->execution_cmd);
@@ -1401,22 +1401,22 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 		{
 			/*
 			 *	We get interrupted once per
-			 *	counter that is about to overflow. 
+			 *	counter that is about to overflow.
 			 */
 
-			mc32_update_stats(dev);			
+			mc32_update_stats(dev);
 		}
 	}
 
 
 	/*
-	 *	Process the transmit and receive rings 
+	 *	Process the transmit and receive rings
          */
 
-	if(tx_event) 
+	if(tx_event)
 		mc32_tx_ring(dev);
-	 
-	if(rx_event) 
+
+	if(rx_event)
 		mc32_rx_ring(dev);
 
 	return IRQ_HANDLED;
@@ -1435,7 +1435,7 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
  *	driver.  Otherwise, it is possible that the card may run out
  *	of receive buffers and restart the transceiver while we're
  *	trying to close it.
- * 
+ *
  *	We abort any receive and transmits going on and then wait until
  *	any pending exec commands have completed in other code threads.
  *	In theory we can't get here while that is true, in practice I am
@@ -1452,7 +1452,7 @@ static int mc32_close(struct net_device *dev)
 
 	u8 regs;
 	u16 one=1;
-	
+
 	lp->xceiver_desired_state = HALTED;
 	netif_stop_queue(dev);
 
@@ -1464,22 +1464,22 @@ static int mc32_close(struct net_device *dev)
 
 	/* Shut down the transceiver */
 
-	mc32_halt_transceiver(dev); 
-	
+	mc32_halt_transceiver(dev);
+
 	/* Ensure we issue no more commands beyond this point */
 
 	down(&lp->cmd_mutex);
-	
-	/* Ok the card is now stopping */	
-	
+
+	/* Ok the card is now stopping */
+
 	regs=inb(ioaddr+HOST_CTRL);
 	regs&=~HOST_CTRL_INTE;
 	outb(regs, ioaddr+HOST_CTRL);
 
 	mc32_flush_rx_ring(dev);
 	mc32_flush_tx_ring(dev);
-		
-	mc32_update_stats(dev); 
+
+	mc32_update_stats(dev);
 
 	return 0;
 }
@@ -1490,15 +1490,15 @@ static int mc32_close(struct net_device *dev)
  *	@dev: The 3c527 card to handle
  *
  *	We've collected all the stats we can in software already. Now
- *	it's time to update those kept on-card and return the lot. 
- * 
+ *	it's time to update those kept on-card and return the lot.
+ *
  */
 
 static struct net_device_stats *mc32_get_stats(struct net_device *dev)
 {
 	struct mc32_local *lp = netdev_priv(dev);
-	
-	mc32_update_stats(dev); 
+
+	mc32_update_stats(dev);
 	return &lp->net_stats;
 }
 
@@ -1506,7 +1506,7 @@ static struct net_device_stats *mc32_get_stats(struct net_device *dev)
 /**
  *	do_mc32_set_multicast_list	-	attempt to update multicasts
  *	@dev: 3c527 device to load the list on
- *	@retry: indicates this is not the first call. 
+ *	@retry: indicates this is not the first call.
  *
  *
  * 	Actually set or clear the multicast filter for this adaptor. The
@@ -1514,22 +1514,22 @@ static struct net_device_stats *mc32_get_stats(struct net_device *dev)
  *	state as it may take multiple calls to get the command sequence
  *	completed. We just keep trying to schedule the loads until we
  *	manage to process them all.
- * 
+ *
  *	num_addrs == -1	Promiscuous mode, receive all packets
- * 
+ *
  *	num_addrs == 0	Normal mode, clear multicast list
- * 
- *	num_addrs > 0	Multicast mode, receive normal and MC packets, 
- *			and do best-effort filtering. 
  *
- *	See mc32_update_stats() regards setting the SAV BP bit. 
+ *	num_addrs > 0	Multicast mode, receive normal and MC packets,
+ *			and do best-effort filtering.
+ *
+ *	See mc32_update_stats() regards setting the SAV BP bit.
  *
  */
 
 static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
 {
 	struct mc32_local *lp = netdev_priv(dev);
-	u16 filt = (1<<2); /* Save Bad Packets, for stats purposes */ 
+	u16 filt = (1<<2); /* Save Bad Packets, for stats purposes */
 
 	if (dev->flags&IFF_PROMISC)
 		/* Enable promiscuous mode */
@@ -1544,9 +1544,9 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
 		unsigned char block[62];
 		unsigned char *bp;
 		struct dev_mc_list *dmc=dev->mc_list;
-		
+
 		int i;
-	       
+
 		if(retry==0)
 			lp->mc_list_valid = 0;
 		if(!lp->mc_list_valid)
@@ -1554,7 +1554,7 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
 			block[1]=0;
 			block[0]=dev->mc_count;
 			bp=block+2;
-		
+
 			for(i=0;i<dev->mc_count;i++)
 			{
 				memcpy(bp, dmc->dmi_addr, 6);
@@ -1569,12 +1569,12 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
 			lp->mc_list_valid=1;
 		}
 	}
-	
-	if(mc32_command_nowait(dev, 0, &filt, 2)==-1) 
+
+	if(mc32_command_nowait(dev, 0, &filt, 2)==-1)
 	{
 		lp->mc_reload_wait = 1;
-	} 
-	else { 
+	}
+	else {
 		lp->mc_reload_wait = 0;
 	}
 }
@@ -1627,7 +1627,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
 	mc32_debug = level;
 }
 
-static struct ethtool_ops netdev_ethtool_ops = {
+static const struct ethtool_ops netdev_ethtool_ops = {
 	.get_drvinfo		= netdev_get_drvinfo,
 	.get_msglevel		= netdev_get_msglevel,
 	.set_msglevel		= netdev_set_msglevel,

+ 2 - 2
drivers/net/3c527.h

@@ -5,7 +5,7 @@
 /*
  *	Registers
  */
-  
+
 #define HOST_CMD		0
 #define         HOST_CMD_START_RX   (1<<3)
 #define         HOST_CMD_SUSPND_RX  (3<<3)
@@ -63,7 +63,7 @@ struct mc32_stats
 	u32 tx_underrun_errors;
 	u32 tx_cts_errors;
 	u32 tx_timeout_errors;
-	
+
 	/* various cruft */
 	u32 dataA[6];
 	u16 dataB[5];

+ 18 - 18
drivers/net/3c59x.c

@@ -729,7 +729,7 @@ static int vortex_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
 #endif
 static void vortex_tx_timeout(struct net_device *dev);
 static void acpi_set_WOL(struct net_device *dev);
-static struct ethtool_ops vortex_ethtool_ops;
+static const struct ethtool_ops vortex_ethtool_ops;
 static void set_8021q_mode(struct net_device *dev, int enable);
 
 /* This driver uses 'options' to pass the media type, full-duplex flag, etc. */
@@ -796,7 +796,7 @@ static void poll_vortex(struct net_device *dev)
 	local_irq_disable();
 	(vp->full_bus_master_rx ? boomerang_interrupt:vortex_interrupt)(dev->irq,dev,NULL);
 	local_irq_restore(flags);
-} 
+}
 #endif
 
 #ifdef CONFIG_PM
@@ -904,7 +904,7 @@ static int vortex_eisa_remove(struct device *device)
 
 	vp = netdev_priv(dev);
 	ioaddr = vp->ioaddr;
-	
+
 	unregister_netdev(dev);
 	iowrite16(TotalReset|0x14, ioaddr + EL3_CMD);
 	release_region(dev->base_addr, VORTEX_TOTAL_SIZE);
@@ -935,7 +935,7 @@ static int __init vortex_eisa_init(void)
 		eisa_found = 1;
 	}
 #endif
-	
+
 	/* Special code to work-around the Compaq PCI BIOS32 problem. */
 	if (compaq_ioaddr) {
 		vortex_probe1(NULL, ioport_map(compaq_ioaddr, VORTEX_TOTAL_SIZE),
@@ -953,7 +953,7 @@ static int __devinit vortex_init_one(struct pci_dev *pdev,
 	struct vortex_chip_info *vci;
 	void __iomem *ioaddr;
 
-	/* wake up and enable device */		
+	/* wake up and enable device */
 	rc = pci_enable_device(pdev);
 	if (rc < 0)
 		goto out;
@@ -1089,7 +1089,7 @@ static int __devinit vortex_probe1(struct device *gendev,
 		if (request_region(dev->base_addr, vci->io_size, print_name) != NULL)
 			vp->must_free_region = 1;
 
-		/* enable bus-mastering if necessary */		
+		/* enable bus-mastering if necessary */
 		if (vci->flags & PCI_USES_MASTER)
 			pci_set_master(pdev);
 
@@ -1131,7 +1131,7 @@ static int __devinit vortex_probe1(struct device *gendev,
 	vp->tx_ring_dma = vp->rx_ring_dma + sizeof(struct boom_rx_desc) * RX_RING_SIZE;
 
 	/* if we are a PCI driver, we store info in pdev->driver_data
-	 * instead of a module list */	
+	 * instead of a module list */
 	if (pdev)
 		pci_set_drvdata(pdev, dev);
 	if (edev)
@@ -1393,7 +1393,7 @@ static int __devinit vortex_probe1(struct device *gendev,
 	dev->tx_timeout = vortex_tx_timeout;
 	dev->watchdog_timeo = (watchdog * HZ) / 1000;
 #ifdef CONFIG_NET_POLL_CONTROLLER
-	dev->poll_controller = poll_vortex; 
+	dev->poll_controller = poll_vortex;
 #endif
 	if (pdev) {
 		vp->pm_state_valid = 1;
@@ -1875,11 +1875,11 @@ static void vortex_tx_timeout(struct net_device *dev)
 		vp->stats.tx_dropped++;
 		netif_wake_queue(dev);
 	}
-	
+
 	/* Issue Tx Enable */
 	iowrite16(TxEnable, ioaddr + EL3_CMD);
 	dev->trans_start = jiffies;
-	
+
 	/* Switch to register set 7 for normal use. */
 	EL3WINDOW(7);
 }
@@ -2316,10 +2316,10 @@ boomerang_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 				if ((vp->tx_ring[entry].status & DN_COMPLETE) == 0)
 					break;			/* It still hasn't been processed. */
 #endif
-					
+
 				if (vp->tx_skbuff[entry]) {
 					struct sk_buff *skb = vp->tx_skbuff[entry];
-#if DO_ZEROCOPY					
+#if DO_ZEROCOPY
 					int i;
 					for (i=0; i<=skb_shinfo(skb)->nr_frags; i++)
 							pci_unmap_single(VORTEX_PCI(vp),
@@ -2633,7 +2633,7 @@ vortex_close(struct net_device *dev)
 						"not using them!\n", dev->name);
 	}
 #endif
-		
+
 	free_irq(dev->irq, dev);
 
 	if (vp->full_bus_master_rx) { /* Free Boomerang bus master Rx buffers. */
@@ -2675,7 +2675,7 @@ dump_tx_ring(struct net_device *dev)
 	if (vortex_debug > 0) {
 	struct vortex_private *vp = netdev_priv(dev);
 		void __iomem *ioaddr = vp->ioaddr;
-		
+
 		if (vp->full_bus_master_tx) {
 			int i;
 			int stalled = ioread32(ioaddr + PktStatus) & 0x04;	/* Possible racy. But it's only debug stuff */
@@ -2873,7 +2873,7 @@ static void vortex_get_drvinfo(struct net_device *dev,
 	}
 }
 
-static struct ethtool_ops vortex_ethtool_ops = {
+static const struct ethtool_ops vortex_ethtool_ops = {
 	.get_drvinfo		= vortex_get_drvinfo,
 	.get_strings            = vortex_get_strings,
 	.get_msglevel           = vortex_get_msglevel,
@@ -2928,7 +2928,7 @@ static void set_rx_mode(struct net_device *dev)
 	int new_mode;
 
 	if (dev->flags & IFF_PROMISC) {
-		if (vortex_debug > 0)
+		if (vortex_debug > 3)
 			printk(KERN_NOTICE "%s: Setting promiscuous mode.\n", dev->name);
 		new_mode = SetRxFilter|RxStation|RxMulticast|RxBroadcast|RxProm;
 	} else	if ((dev->mc_list)  ||  (dev->flags & IFF_ALLMULTI)) {
@@ -3169,7 +3169,7 @@ static int __init vortex_init(void)
 {
 	int pci_rc, eisa_rc;
 
-	pci_rc = pci_module_init(&vortex_driver);
+	pci_rc = pci_register_driver(&vortex_driver);
 	eisa_rc = vortex_eisa_init();
 
 	if (pci_rc == 0)
@@ -3190,7 +3190,7 @@ static void __exit vortex_eisa_cleanup(void)
 	/* Take care of the EISA devices */
 	eisa_driver_unregister(&vortex_eisa_driver);
 #endif
-	
+
 	if (compaq_net_device) {
 		vp = compaq_net_device->priv;
 		ioaddr = ioport_map(compaq_net_device->base_addr,

+ 30 - 30
drivers/net/7990.c

@@ -1,7 +1,7 @@
-/* 
- * 7990.c -- LANCE ethernet IC generic routines. 
+/*
+ * 7990.c -- LANCE ethernet IC generic routines.
  * This is an attempt to separate out the bits of various ethernet
- * drivers that are common because they all use the AMD 7990 LANCE 
+ * drivers that are common because they all use the AMD 7990 LANCE
  * (Local Area Network Controller for Ethernet) chip.
  *
  * Copyright (C) 05/1998 Peter Maydell <pmaydell@chiark.greenend.org.uk>
@@ -9,7 +9,7 @@
  * Most of this stuff was obtained by looking at other LANCE drivers,
  * in particular a2065.[ch]. The AMD C-LANCE datasheet was also helpful.
  * NB: this was made easy by the fact that Jes Sorensen had cleaned up
- * most of a2025 and sunlance with the aim of merging them, so the 
+ * most of a2025 and sunlance with the aim of merging them, so the
  * common code was pretty obvious.
  */
 #include <linux/crc32.h>
@@ -109,10 +109,10 @@ do { \
                        ib->btx_ring[t].length,\
                        ib->btx_ring[t].misc, ib->btx_ring[t].tmd1_bits);\
         }\
-} while (0) 
+} while (0)
 #else
 #define PRINT_RINGS()
-#endif        
+#endif
 
 /* Load the CSR registers. The LANCE has to be STOPped when we do this! */
 static void load_csrs (struct lance_private *lp)
@@ -157,7 +157,7 @@ static void lance_init_ring (struct net_device *dev)
          * a2065 and atarilance do the byteswap and lance.c (PC) doesn't.
          * However, the datasheet says that the BSWAP bit doesn't affect
          * the init block, so surely it should be low byte first for
-         * everybody? Um.] 
+         * everybody? Um.]
          * We could define the ib->physaddr as three 16bit values and
          * use (addr[1] << 8) | addr[0] & co, but this is more efficient.
          */
@@ -171,11 +171,11 @@ static void lance_init_ring (struct net_device *dev)
 #else
         for (i=0; i<6; i++)
            ib->phys_addr[i] = dev->dev_addr[i];
-#endif        
+#endif
 
         if (DEBUG_IRING)
                 printk ("TX rings:\n");
-    
+
 	lp->tx_full = 0;
         /* Setup the Tx ring entries */
         for (i = 0; i < (1<<lp->lance_log_tx_bufs); i++) {
@@ -185,7 +185,7 @@ static void lance_init_ring (struct net_device *dev)
                 ib->btx_ring [i].tmd1_bits = 0;
                 ib->btx_ring [i].length    = 0xf000; /* The ones required by tmd2 */
                 ib->btx_ring [i].misc      = 0;
-                if (DEBUG_IRING) 
+                if (DEBUG_IRING)
                    printk ("%d: 0x%8.8x\n", i, leptr);
         }
 
@@ -206,14 +206,14 @@ static void lance_init_ring (struct net_device *dev)
         }
 
         /* Setup the initialization block */
-    
+
         /* Setup rx descriptor pointer */
         leptr = LANCE_ADDR(&aib->brx_ring);
         ib->rx_len = (lp->lance_log_rx_bufs << 13) | (leptr >> 16);
         ib->rx_ptr = leptr;
         if (DEBUG_IRING)
                 printk ("RX ptr: %8.8x\n", leptr);
-    
+
         /* Setup tx descriptor pointer */
         leptr = LANCE_ADDR(&aib->btx_ring);
         ib->tx_len = (lp->lance_log_tx_bufs << 13) | (leptr >> 16);
@@ -256,7 +256,7 @@ static int lance_reset (struct net_device *dev)
 {
         struct lance_private *lp = netdev_priv(dev);
         int status;
-    
+
         /* Stop the lance */
         WRITERAP(lp, LE_CSR0);
         WRITERDP(lp, LE_C0_STOP);
@@ -297,7 +297,7 @@ static int lance_rx (struct net_device *dev)
 #endif
 #ifdef CONFIG_HP300
 	blinken_leds(0x40, 0);
-#endif    
+#endif
         WRITERDP(lp, LE_C0_RINT | LE_C0_INEA);     /* ack Rx int, reenable ints */
         for (rd = &ib->brx_ring [lp->rx_new];     /* For each Rx ring we own... */
              !((bits = rd->rmd1_bits) & LE_R1_OWN);
@@ -330,7 +330,7 @@ static int lance_rx (struct net_device *dev)
                                 lp->rx_new = (lp->rx_new + 1) & lp->rx_ring_mod_mask;
                                 return 0;
                         }
-            
+
                         skb->dev = dev;
                         skb_reserve (skb, 2);           /* 16 byte align */
                         skb_put (skb, len);             /* make room */
@@ -374,10 +374,10 @@ static int lance_tx (struct net_device *dev)
                 /* If we hit a packet not owned by us, stop */
                 if (td->tmd1_bits & LE_T1_OWN)
                         break;
-                
+
                 if (td->tmd1_bits & LE_T1_ERR) {
                         status = td->misc;
-            
+
                         lp->stats.tx_errors++;
                         if (status & LE_T3_RTY)  lp->stats.tx_aborted_errors++;
                         if (status & LE_T3_LCOL) lp->stats.tx_window_errors++;
@@ -429,7 +429,7 @@ static int lance_tx (struct net_device *dev)
 
                         lp->stats.tx_packets++;
                 }
-        
+
                 j = (j + 1) & lp->tx_ring_mod_mask;
         }
         lp->tx_old = j;
@@ -450,7 +450,7 @@ lance_interrupt (int irq, void *dev_id, struct pt_regs *regs)
         csr0 = READRDP(lp);
 
         PRINT_RINGS();
-        
+
         if (!(csr0 & LE_C0_INTR)) {     /* Check if any interrupt has */
 		spin_unlock (&lp->devlock);
                 return IRQ_NONE;        /* been generated by the Lance. */
@@ -476,7 +476,7 @@ lance_interrupt (int irq, void *dev_id, struct pt_regs *regs)
         if (csr0 & LE_C0_MISS)
                 lp->stats.rx_errors++;       /* Missed a Rx frame. */
         if (csr0 & LE_C0_MERR) {
-                printk("%s: Bus master arbitration failure, status %4.4x.\n", 
+                printk("%s: Bus master arbitration failure, status %4.4x.\n",
                        dev->name, csr0);
                 /* Restart the chip. */
                 WRITERDP(lp, LE_C0_STRT);
@@ -486,7 +486,7 @@ lance_interrupt (int irq, void *dev_id, struct pt_regs *regs)
 		lp->tx_full = 0;
 		netif_wake_queue (dev);
         }
-        
+
         WRITERAP(lp, LE_CSR0);
         WRITERDP(lp, LE_C0_BABL|LE_C0_CERR|LE_C0_MISS|LE_C0_MERR|LE_C0_IDON|LE_C0_INEA);
 
@@ -498,7 +498,7 @@ int lance_open (struct net_device *dev)
 {
         struct lance_private *lp = netdev_priv(dev);
 	int res;
-        
+
         /* Install the Interrupt handler. Or we could shunt this out to specific drivers? */
         if (request_irq(lp->irq, lance_interrupt, 0, lp->name, dev))
                 return -EAGAIN;
@@ -513,7 +513,7 @@ int lance_open (struct net_device *dev)
 int lance_close (struct net_device *dev)
 {
         struct lance_private *lp = netdev_priv(dev);
-        
+
 	netif_stop_queue (dev);
 
         /* Stop the LANCE */
@@ -553,7 +553,7 @@ int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
         /* dump the packet */
         {
                 int i;
-        
+
                 for (i = 0; i < 64; i++) {
                         if ((i % 16) == 0)
                                 printk ("\n");
@@ -565,11 +565,11 @@ int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
         entry = lp->tx_new & lp->tx_ring_mod_mask;
         ib->btx_ring [entry].length = (-len) | 0xf000;
         ib->btx_ring [entry].misc = 0;
-    
+
     	if (skb->len < ETH_ZLEN)
     		memset((char *)&ib->tx_buf[entry][0], 0, ETH_ZLEN);
         memcpy ((char *)&ib->tx_buf [entry][0], skb->data, skblen);
-    
+
         /* Now, give the packet to the lance */
         ib->btx_ring [entry].tmd1_bits = (LE_T1_POK|LE_T1_OWN);
         lp->tx_new = (lp->tx_new+1) & lp->tx_ring_mod_mask;
@@ -579,7 +579,7 @@ int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
         WRITERDP(lp, LE_C0_INEA | LE_C0_TDMD);
         dev->trans_start = jiffies;
         dev_kfree_skb (skb);
-    
+
 	spin_lock_irqsave (&lp->devlock, flags);
         if (TX_BUFFS_AVAIL)
 		netif_start_queue (dev);
@@ -607,9 +607,9 @@ static void lance_load_multicast (struct net_device *dev)
         char *addrs;
         int i;
         u32 crc;
-        
+
         /* set all multicast bits */
-        if (dev->flags & IFF_ALLMULTI){ 
+        if (dev->flags & IFF_ALLMULTI){
                 ib->filter [0] = 0xffffffff;
                 ib->filter [1] = 0xffffffff;
                 return;
@@ -626,7 +626,7 @@ static void lance_load_multicast (struct net_device *dev)
                 /* multicast address? */
                 if (!(*addrs & 1))
                         continue;
-                
+
 		crc = ether_crc_le(6, addrs);
                 crc = crc >> 26;
                 mcast_table [crc >> 4] |= 1 << (crc & 0xf);

+ 12 - 12
drivers/net/7990.h

@@ -1,9 +1,9 @@
-/* 
+/*
  * 7990.h -- LANCE ethernet IC generic routines.
  * This is an attempt to separate out the bits of various ethernet
  * drivers that are common because they all use the AMD 7990 LANCE
  * (Local Area Network Controller for Ethernet) chip.
- * 
+ *
  * Copyright (C) 05/1998 Peter Maydell <pmaydell@chiark.greenend.org.uk>
  *
  * Most of this stuff was obtained by looking at other LANCE drivers,
@@ -55,7 +55,7 @@ struct lance_rx_desc {
 				     */
 	volatile unsigned short mblength;    /* Actual number of bytes received */
 };
- 
+
 /* Ditto for TMD: */
 struct lance_tx_desc {
 	volatile unsigned short tmd0;        /* low address of packet */
@@ -80,8 +80,8 @@ struct lance_init_block {
         volatile unsigned short rx_len;          /* receive len and high addr */
         volatile unsigned short tx_ptr;          /* transmit descriptor addr */
         volatile unsigned short tx_len;          /* transmit len and high addr */
-    
-        /* The Tx and Rx ring entries must be aligned on 8-byte boundaries. 
+
+        /* The Tx and Rx ring entries must be aligned on 8-byte boundaries.
          * This will be true if this whole struct is 8-byte aligned.
          */
         volatile struct lance_tx_desc btx_ring[TX_RING_SIZE];
@@ -104,21 +104,21 @@ struct lance_private
 	unsigned long base;
         volatile struct lance_init_block *init_block; /* CPU address of RAM */
         volatile struct lance_init_block *lance_init_block; /* LANCE address of RAM */
-        
+
         int rx_new, tx_new;
         int rx_old, tx_old;
-        
+
         int lance_log_rx_bufs, lance_log_tx_bufs;
         int rx_ring_mod_mask, tx_ring_mod_mask;
-        
+
         struct net_device_stats stats;
         int tpe;                                  /* TPE is selected */
         int auto_select;                          /* cable-selection is by carrier */
         unsigned short busmaster_regval;
 
         unsigned int irq;                         /* IRQ to register */
-        
-        /* This is because the HP LANCE is disgusting and you have to check 
+
+        /* This is because the HP LANCE is disgusting and you have to check
          * a DIO-specific register every time you read/write the LANCE regs :-<
          * [could we get away with making these some sort of macro?]
          */
@@ -148,7 +148,7 @@ struct lance_private
 #define LE_C0_RINT	0x0400		/* Receive Interrupt */
 #define LE_C0_TINT	0x0200		/* Transmit Interrupt */
 #define LE_C0_IDON	0x0100		/* Initialization Done */
-#define LE_C0_INTR	0x0080		/* Interrupt Flag 
+#define LE_C0_INTR	0x0080		/* Interrupt Flag
                                          = BABL | MISS | MERR | RINT | TINT | IDON */
 #define LE_C0_INEA	0x0040		/* Interrupt Enable */
 #define LE_C0_RXON	0x0020		/* Receive On */
@@ -185,7 +185,7 @@ struct lance_private
 #define LE_MO_PSEL1   0x0100          /* port selection bit1 */
 #define LE_MO_PSEL0   0x0080          /* port selection bit0 */
 /* and this one is from the C-LANCE data sheet... */
-#define LE_MO_EMBA      0x0080          /* Enable Modified Backoff Algorithm 
+#define LE_MO_EMBA      0x0080          /* Enable Modified Backoff Algorithm
                                            (C-LANCE, not original LANCE) */
 #define LE_MO_INTL	0x0040		/* Internal Loopback */
 #define LE_MO_DRTY	0x0020		/* Disable Retry */

+ 54 - 68
drivers/net/8139cp.c

@@ -48,7 +48,7 @@
  */
 
 #define DRV_NAME		"8139cp"
-#define DRV_VERSION		"1.2"
+#define DRV_VERSION		"1.3"
 #define DRV_RELDATE		"Mar 22, 2004"
 
 
@@ -314,12 +314,6 @@ struct cp_desc {
 	u64		addr;
 };
 
-struct ring_info {
-	struct sk_buff		*skb;
-	dma_addr_t		mapping;
-	u32			len;
-};
-
 struct cp_dma_stats {
 	u64			tx_ok;
 	u64			rx_ok;
@@ -353,23 +347,23 @@ struct cp_private {
 	struct net_device_stats net_stats;
 	struct cp_extra_stats	cp_stats;
 
-	unsigned		rx_tail		____cacheline_aligned;
+	unsigned		rx_head		____cacheline_aligned;
+	unsigned		rx_tail;
 	struct cp_desc		*rx_ring;
-	struct ring_info	rx_skb[CP_RX_RING_SIZE];
-	unsigned		rx_buf_sz;
+	struct sk_buff		*rx_skb[CP_RX_RING_SIZE];
 
 	unsigned		tx_head		____cacheline_aligned;
 	unsigned		tx_tail;
-
 	struct cp_desc		*tx_ring;
-	struct ring_info	tx_skb[CP_TX_RING_SIZE];
-	dma_addr_t		ring_dma;
+	struct sk_buff		*tx_skb[CP_TX_RING_SIZE];
+
+	unsigned		rx_buf_sz;
+	unsigned		wol_enabled : 1; /* Is Wake-on-LAN enabled? */
 
 #if CP_VLAN_TAG_USED
 	struct vlan_group	*vlgrp;
 #endif
-
-	unsigned int		wol_enabled : 1; /* Is Wake-on-LAN enabled? */
+	dma_addr_t		ring_dma;
 
 	struct mii_if_info	mii_if;
 };
@@ -407,10 +401,8 @@ static int cp_set_eeprom(struct net_device *dev,
 			 struct ethtool_eeprom *eeprom, u8 *data);
 
 static struct pci_device_id cp_pci_tbl[] = {
-	{ PCI_VENDOR_ID_REALTEK, PCI_DEVICE_ID_REALTEK_8139,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, },
-	{ PCI_VENDOR_ID_TTTECH, PCI_DEVICE_ID_TTTECH_MC322,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, },
+	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	PCI_DEVICE_ID_REALTEK_8139), },
+	{ PCI_DEVICE(PCI_VENDOR_ID_TTTECH,	PCI_DEVICE_ID_TTTECH_MC322), },
 	{ },
 };
 MODULE_DEVICE_TABLE(pci, cp_pci_tbl);
@@ -542,7 +534,7 @@ rx_status_loop:
 		struct cp_desc *desc;
 		unsigned buflen;
 
-		skb = cp->rx_skb[rx_tail].skb;
+		skb = cp->rx_skb[rx_tail];
 		BUG_ON(!skb);
 
 		desc = &cp->rx_ring[rx_tail];
@@ -551,7 +543,7 @@ rx_status_loop:
 			break;
 
 		len = (status & 0x1fff) - 4;
-		mapping = cp->rx_skb[rx_tail].mapping;
+		mapping = le64_to_cpu(desc->addr);
 
 		if ((status & (FirstFrag | LastFrag)) != (FirstFrag | LastFrag)) {
 			/* we don't support incoming fragmented frames.
@@ -572,7 +564,7 @@ rx_status_loop:
 
 		if (netif_msg_rx_status(cp))
 			printk(KERN_DEBUG "%s: rx slot %d status 0x%x len %d\n",
-			       cp->dev->name, rx_tail, status, len);
+			       dev->name, rx_tail, status, len);
 
 		buflen = cp->rx_buf_sz + RX_OFFSET;
 		new_skb = dev_alloc_skb (buflen);
@@ -582,7 +574,7 @@ rx_status_loop:
 		}
 
 		skb_reserve(new_skb, RX_OFFSET);
-		new_skb->dev = cp->dev;
+		new_skb->dev = dev;
 
 		pci_unmap_single(cp->pdev, mapping,
 				 buflen, PCI_DMA_FROMDEVICE);
@@ -595,11 +587,9 @@ rx_status_loop:
 
 		skb_put(skb, len);
 
-		mapping =
-		cp->rx_skb[rx_tail].mapping =
-			pci_map_single(cp->pdev, new_skb->data,
-				       buflen, PCI_DMA_FROMDEVICE);
-		cp->rx_skb[rx_tail].skb = new_skb;
+		mapping = pci_map_single(cp->pdev, new_skb->data, buflen,
+					 PCI_DMA_FROMDEVICE);
+		cp->rx_skb[rx_tail] = new_skb;
 
 		cp_rx_skb(cp, skb, desc);
 		rx++;
@@ -717,19 +707,21 @@ static void cp_tx (struct cp_private *cp)
 	unsigned tx_tail = cp->tx_tail;
 
 	while (tx_tail != tx_head) {
+		struct cp_desc *txd = cp->tx_ring + tx_tail;
 		struct sk_buff *skb;
 		u32 status;
 
 		rmb();
-		status = le32_to_cpu(cp->tx_ring[tx_tail].opts1);
+		status = le32_to_cpu(txd->opts1);
 		if (status & DescOwn)
 			break;
 
-		skb = cp->tx_skb[tx_tail].skb;
+		skb = cp->tx_skb[tx_tail];
 		BUG_ON(!skb);
 
-		pci_unmap_single(cp->pdev, cp->tx_skb[tx_tail].mapping,
-				 cp->tx_skb[tx_tail].len, PCI_DMA_TODEVICE);
+		pci_unmap_single(cp->pdev, le64_to_cpu(txd->addr),
+				 le32_to_cpu(txd->opts1) & 0xffff,
+				 PCI_DMA_TODEVICE);
 
 		if (status & LastFrag) {
 			if (status & (TxError | TxFIFOUnder)) {
@@ -756,7 +748,7 @@ static void cp_tx (struct cp_private *cp)
 			dev_kfree_skb_irq(skb);
 		}
 
-		cp->tx_skb[tx_tail].skb = NULL;
+		cp->tx_skb[tx_tail] = NULL;
 
 		tx_tail = NEXT_TX(tx_tail);
 	}
@@ -826,9 +818,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
 		txd->opts1 = cpu_to_le32(flags);
 		wmb();
 
-		cp->tx_skb[entry].skb = skb;
-		cp->tx_skb[entry].mapping = mapping;
-		cp->tx_skb[entry].len = len;
+		cp->tx_skb[entry] = skb;
 		entry = NEXT_TX(entry);
 	} else {
 		struct cp_desc *txd;
@@ -844,9 +834,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
 		first_len = skb_headlen(skb);
 		first_mapping = pci_map_single(cp->pdev, skb->data,
 					       first_len, PCI_DMA_TODEVICE);
-		cp->tx_skb[entry].skb = skb;
-		cp->tx_skb[entry].mapping = first_mapping;
-		cp->tx_skb[entry].len = first_len;
+		cp->tx_skb[entry] = skb;
 		entry = NEXT_TX(entry);
 
 		for (frag = 0; frag < skb_shinfo(skb)->nr_frags; frag++) {
@@ -887,9 +875,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
 			txd->opts1 = cpu_to_le32(ctrl);
 			wmb();
 
-			cp->tx_skb[entry].skb = skb;
-			cp->tx_skb[entry].mapping = mapping;
-			cp->tx_skb[entry].len = len;
+			cp->tx_skb[entry] = skb;
 			entry = NEXT_TX(entry);
 		}
 
@@ -942,8 +928,6 @@ static void __cp_set_rx_mode (struct net_device *dev)
 	/* Note: do not reorder, GCC is clever about common statements. */
 	if (dev->flags & IFF_PROMISC) {
 		/* Unconditionally log net taps. */
-		printk (KERN_NOTICE "%s: Promiscuous mode enabled.\n",
-			dev->name);
 		rx_mode =
 		    AcceptBroadcast | AcceptMulticast | AcceptMyPhys |
 		    AcceptAllPhys;
@@ -1091,6 +1075,7 @@ static int cp_refill_rx (struct cp_private *cp)
 
 	for (i = 0; i < CP_RX_RING_SIZE; i++) {
 		struct sk_buff *skb;
+		dma_addr_t mapping;
 
 		skb = dev_alloc_skb(cp->rx_buf_sz + RX_OFFSET);
 		if (!skb)
@@ -1099,12 +1084,12 @@ static int cp_refill_rx (struct cp_private *cp)
 		skb->dev = cp->dev;
 		skb_reserve(skb, RX_OFFSET);
 
-		cp->rx_skb[i].mapping = pci_map_single(cp->pdev,
-			skb->data, cp->rx_buf_sz, PCI_DMA_FROMDEVICE);
-		cp->rx_skb[i].skb = skb;
+		mapping = pci_map_single(cp->pdev, skb->data, cp->rx_buf_sz,
+					 PCI_DMA_FROMDEVICE);
+		cp->rx_skb[i] = skb;
 
 		cp->rx_ring[i].opts2 = 0;
-		cp->rx_ring[i].addr = cpu_to_le64(cp->rx_skb[i].mapping);
+		cp->rx_ring[i].addr = cpu_to_le64(mapping);
 		if (i == (CP_RX_RING_SIZE - 1))
 			cp->rx_ring[i].opts1 =
 				cpu_to_le32(DescOwn | RingEnd | cp->rx_buf_sz);
@@ -1152,23 +1137,27 @@ static int cp_alloc_rings (struct cp_private *cp)
 
 static void cp_clean_rings (struct cp_private *cp)
 {
+	struct cp_desc *desc;
 	unsigned i;
 
 	for (i = 0; i < CP_RX_RING_SIZE; i++) {
-		if (cp->rx_skb[i].skb) {
-			pci_unmap_single(cp->pdev, cp->rx_skb[i].mapping,
+		if (cp->rx_skb[i]) {
+			desc = cp->rx_ring + i;
+			pci_unmap_single(cp->pdev, le64_to_cpu(desc->addr),
 					 cp->rx_buf_sz, PCI_DMA_FROMDEVICE);
-			dev_kfree_skb(cp->rx_skb[i].skb);
+			dev_kfree_skb(cp->rx_skb[i]);
 		}
 	}
 
 	for (i = 0; i < CP_TX_RING_SIZE; i++) {
-		if (cp->tx_skb[i].skb) {
-			struct sk_buff *skb = cp->tx_skb[i].skb;
-
-			pci_unmap_single(cp->pdev, cp->tx_skb[i].mapping,
-				 	 cp->tx_skb[i].len, PCI_DMA_TODEVICE);
-			if (le32_to_cpu(cp->tx_ring[i].opts1) & LastFrag)
+		if (cp->tx_skb[i]) {
+			struct sk_buff *skb = cp->tx_skb[i];
+
+			desc = cp->tx_ring + i;
+			pci_unmap_single(cp->pdev, le64_to_cpu(desc->addr),
+					 le32_to_cpu(desc->opts1) & 0xffff,
+					 PCI_DMA_TODEVICE);
+			if (le32_to_cpu(desc->opts1) & LastFrag)
 				dev_kfree_skb(skb);
 			cp->net_stats.tx_dropped++;
 		}
@@ -1177,8 +1166,8 @@ static void cp_clean_rings (struct cp_private *cp)
 	memset(cp->rx_ring, 0, sizeof(struct cp_desc) * CP_RX_RING_SIZE);
 	memset(cp->tx_ring, 0, sizeof(struct cp_desc) * CP_TX_RING_SIZE);
 
-	memset(&cp->rx_skb, 0, sizeof(struct ring_info) * CP_RX_RING_SIZE);
-	memset(&cp->tx_skb, 0, sizeof(struct ring_info) * CP_TX_RING_SIZE);
+	memset(cp->rx_skb, 0, sizeof(struct sk_buff *) * CP_RX_RING_SIZE);
+	memset(cp->tx_skb, 0, sizeof(struct sk_buff *) * CP_TX_RING_SIZE);
 }
 
 static void cp_free_rings (struct cp_private *cp)
@@ -1557,7 +1546,7 @@ static void cp_get_ethtool_stats (struct net_device *dev,
 	pci_free_consistent(cp->pdev, sizeof(*nic_stats), nic_stats, dma);
 }
 
-static struct ethtool_ops cp_ethtool_ops = {
+static const struct ethtool_ops cp_ethtool_ops = {
 	.get_drvinfo		= cp_get_drvinfo,
 	.get_regs_len		= cp_get_regs_len,
 	.get_stats_count	= cp_get_stats_count,
@@ -2010,7 +1999,6 @@ static void cp_remove_one (struct pci_dev *pdev)
 	struct net_device *dev = pci_get_drvdata(pdev);
 	struct cp_private *cp = netdev_priv(dev);
 
-	BUG_ON(!dev);
 	unregister_netdev(dev);
 	iounmap(cp->regs);
 	if (cp->wol_enabled)
@@ -2025,14 +2013,12 @@ static void cp_remove_one (struct pci_dev *pdev)
 #ifdef CONFIG_PM
 static int cp_suspend (struct pci_dev *pdev, pm_message_t state)
 {
-	struct net_device *dev;
-	struct cp_private *cp;
+	struct net_device *dev = pci_get_drvdata(pdev);
+	struct cp_private *cp = netdev_priv(dev);
 	unsigned long flags;
 
-	dev = pci_get_drvdata (pdev);
-	cp  = netdev_priv(dev);
-
-	if (!dev || !netif_running (dev)) return 0;
+	if (!netif_running(dev))
+		return 0;
 
 	netif_device_detach (dev);
 	netif_stop_queue (dev);
@@ -2098,7 +2084,7 @@ static int __init cp_init (void)
 #ifdef MODULE
 	printk("%s", version);
 #endif
-	return pci_module_init (&cp_driver);
+	return pci_register_driver(&cp_driver);
 }
 
 static void __exit cp_exit (void)

+ 4 - 7
drivers/net/8139too.c

@@ -90,7 +90,7 @@
 */
 
 #define DRV_NAME	"8139too"
-#define DRV_VERSION	"0.9.27"
+#define DRV_VERSION	"0.9.28"
 
 
 #include <linux/module.h>
@@ -639,7 +639,7 @@ static void __set_rx_mode (struct net_device *dev);
 static void rtl8139_hw_start (struct net_device *dev);
 static void rtl8139_thread (void *_data);
 static void rtl8139_tx_timeout_task(void *_data);
-static struct ethtool_ops rtl8139_ethtool_ops;
+static const struct ethtool_ops rtl8139_ethtool_ops;
 
 /* write MMIO register, with flush */
 /* Flush avoids rtl8139 bug w/ posted MMIO writes */
@@ -2446,7 +2446,7 @@ static void rtl8139_get_strings(struct net_device *dev, u32 stringset, u8 *data)
 	memcpy(data, ethtool_stats_keys, sizeof(ethtool_stats_keys));
 }
 
-static struct ethtool_ops rtl8139_ethtool_ops = {
+static const struct ethtool_ops rtl8139_ethtool_ops = {
 	.get_drvinfo		= rtl8139_get_drvinfo,
 	.get_settings		= rtl8139_get_settings,
 	.set_settings		= rtl8139_set_settings,
@@ -2512,9 +2512,6 @@ static void __set_rx_mode (struct net_device *dev)
 
 	/* Note: do not reorder, GCC is clever about common statements. */
 	if (dev->flags & IFF_PROMISC) {
-		/* Unconditionally log net taps. */
-		printk (KERN_NOTICE "%s: Promiscuous mode enabled.\n",
-			dev->name);
 		rx_mode =
 		    AcceptBroadcast | AcceptMulticast | AcceptMyPhys |
 		    AcceptAllPhys;
@@ -2629,7 +2626,7 @@ static int __init rtl8139_init_module (void)
 	printk (KERN_INFO RTL8139_DRIVER_NAME "\n");
 #endif
 
-	return pci_module_init (&rtl8139_pci_driver);
+	return pci_register_driver(&rtl8139_pci_driver);
 }
 
 

+ 6 - 6
drivers/net/82596.c

@@ -444,7 +444,7 @@ static inline int wait_cmd(struct net_device *dev, struct i596_private *lp, int
 static inline int wait_cfg(struct net_device *dev, struct i596_cmd *cmd, int delcnt, char *str)
 {
 	volatile struct i596_cmd *c = cmd;
-	
+
 	while (--delcnt && c->command)
 		udelay(10);
 	if (!delcnt) {
@@ -455,7 +455,7 @@ static inline int wait_cfg(struct net_device *dev, struct i596_cmd *cmd, int del
 		return 0;
 }
 
- 
+
 static void i596_display_data(struct net_device *dev)
 {
 	struct i596_private *lp = dev->priv;
@@ -787,7 +787,7 @@ static inline int i596_rx(struct net_device *dev)
 		}
 		DEB(DEB_RXFRAME, printk(KERN_DEBUG "  rfd %p, rfd.rbd %p, rfd.stat %04x\n",
 			rfd, rfd->rbd, rfd->stat));
-		
+
 		if (rbd != I596_NULL && ((rfd->stat) & STAT_OK)) {
 			/* a good frame */
 			int pkt_len = rbd->count & 0x3fff;
@@ -1208,7 +1208,7 @@ struct net_device * __init i82596_probe(int unit)
 		   Some other boards trip the checksum.. but then appear as
 		   ether address 0. Trap these - AC */
 
-		if ((checksum % 0x100) || 
+		if ((checksum % 0x100) ||
 		    (memcmp(eth_addr, "\x00\x00\x49", 3) != 0)) {
 			err = -ENODEV;
 			goto out1;
@@ -1545,7 +1545,7 @@ static void set_multicast_list(struct net_device *dev)
 		printk(KERN_ERR "%s: Only %d multicast addresses supported",
 			dev->name, cnt);
 	}
-	
+
 	if (dev->mc_count > 0) {
 		struct dev_mc_list *dmi;
 		unsigned char *cp;
@@ -1609,7 +1609,7 @@ void __exit cleanup_module(void)
 }
 
 #endif				/* MODULE */
-
+
 /*
  * Local variables:
  *  compile-command: "gcc -D__KERNEL__ -I/usr/src/linux/net/inet -Wall -Wstrict-prototypes -O6 -m486 -c 82596.c"

+ 123 - 123
drivers/net/8390.c

@@ -1,7 +1,7 @@
 /* 8390.c: A general NS8390 ethernet driver core for linux. */
 /*
 	Written 1992-94 by Donald Becker.
-  
+
 	Copyright 1993 United States Government as represented by the
 	Director, National Security Agency.
 
@@ -13,7 +13,7 @@
 	410 Severn Ave., Suite 210
 	Annapolis MD 21403
 
-  
+
   This is the chip-specific code for many 8390-based ethernet adaptors.
   This is not a complete driver, it must be combined with board-specific
   code such as ne.c, wd.c, 3c503.c, etc.
@@ -27,7 +27,7 @@
   Changelog:
 
   Paul Gortmaker	: remove set_bit lock, other cleanups.
-  Paul Gortmaker	: add ei_get_8390_hdr() so we can pass skb's to 
+  Paul Gortmaker	: add ei_get_8390_hdr() so we can pass skb's to
 			  ei_block_input() for eth_io_copy_and_sum().
   Paul Gortmaker	: exchange static int ei_pingpong for a #define,
 			  also add better Tx error handling.
@@ -94,9 +94,9 @@ static const char version[] =
 		Read the 4 byte, page aligned 8390 header. *If* there is a
 		subsequent read, it will be of the rest of the packet.
 	void block_input(struct net_device *dev, int count, struct sk_buff *skb, int ring_offset)
-		Read COUNT bytes from the packet buffer into the skb data area. Start 
+		Read COUNT bytes from the packet buffer into the skb data area. Start
 		reading from RING_OFFSET, the address as the 8390 sees it.  This will always
-		follow the read of the 8390 header. 
+		follow the read of the 8390 header.
 */
 #define ei_reset_8390 (ei_local->reset_8390)
 #define ei_block_output (ei_local->block_output)
@@ -128,7 +128,7 @@ static void do_set_multicast_list(struct net_device *dev);
  *	a page register that controls bank and packet buffer access. We guard
  *	this with ei_local->page_lock. Nobody should assume or set the page other
  *	than zero when the lock is not held. Lock holders must restore page 0
- *	before unlocking. Even pure readers must take the lock to protect in 
+ *	before unlocking. Even pure readers must take the lock to protect in
  *	page 0.
  *
  *	To make life difficult the chip can also be very slow. We therefore can't
@@ -141,14 +141,14 @@ static void do_set_multicast_list(struct net_device *dev);
  *	a latency on SMP irq delivery. So we can easily go "disable irq" "sync irqs"
  *	enter lock, take the queued irq. So we waddle instead of flying.
  *
- *	Finally by special arrangement for the purpose of being generally 
+ *	Finally by special arrangement for the purpose of being generally
  *	annoying the transmit function is called bh atomic. That places
  *	restrictions on the user context callers as disable_irq won't save
  *	them.
  */
- 
 
-
+
+
 /**
  * ei_open - Open/initialize the board.
  * @dev: network device to initialize
@@ -168,12 +168,12 @@ int ei_open(struct net_device *dev)
 		 dev->tx_timeout = ei_tx_timeout;
 	if (dev->watchdog_timeo <= 0)
 		 dev->watchdog_timeo = TX_TIMEOUT;
-    
+
 	/*
 	 *	Grab the page lock so we own the register set, then call
 	 *	the init function.
 	 */
-      
+
       	spin_lock_irqsave(&ei_local->page_lock, flags);
 	NS8390_init(dev, 1);
 	/* Set the flag before we drop the lock, That way the IRQ arrives
@@ -198,7 +198,7 @@ int ei_close(struct net_device *dev)
 	/*
 	 *	Hold the page lock during close
 	 */
-	 	
+
       	spin_lock_irqsave(&ei_local->page_lock, flags);
 	NS8390_init(dev, 0);
       	spin_unlock_irqrestore(&ei_local->page_lock, flags);
@@ -241,26 +241,26 @@ void ei_tx_timeout(struct net_device *dev)
 		dev->name, (txsr & ENTSR_ABT) ? "excess collisions." :
 		(isr) ? "lost interrupt?" : "cable problem?", txsr, isr, tickssofar);
 
-	if (!isr && !ei_local->stat.tx_packets) 
+	if (!isr && !ei_local->stat.tx_packets)
 	{
 		/* The 8390 probably hasn't gotten on the cable yet. */
 		ei_local->interface_num ^= 1;   /* Try a different xcvr.  */
 	}
 
 	/* Ugly but a reset can be slow, yet must be protected */
-		
+
 	disable_irq_nosync_lockdep(dev->irq);
 	spin_lock(&ei_local->page_lock);
-		
+
 	/* Try to restart the card.  Perhaps the user has fixed something. */
 	ei_reset_8390(dev);
 	NS8390_init(dev, 1);
-		
+
 	spin_unlock(&ei_local->page_lock);
 	enable_irq_lockdep(dev->irq);
 	netif_wake_queue(dev);
 }
-    
+
 /**
  * ei_start_xmit - begin packet transmission
  * @skb: packet to be sent
@@ -268,7 +268,7 @@ void ei_tx_timeout(struct net_device *dev)
  *
  * Sends a packet to an 8390 network device.
  */
- 
+
 static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	long e8390_base = dev->base_addr;
@@ -285,24 +285,24 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
 		data = buf;
 	}
 
-	/* Mask interrupts from the ethercard. 
+	/* Mask interrupts from the ethercard.
 	   SMP: We have to grab the lock here otherwise the IRQ handler
 	   on another CPU can flip window and race the IRQ mask set. We end
 	   up trashing the mcast filter not disabling irqs if we don't lock */
-	   
+
 	spin_lock_irqsave(&ei_local->page_lock, flags);
 	outb_p(0x00, e8390_base + EN0_IMR);
 	spin_unlock_irqrestore(&ei_local->page_lock, flags);
-	
-	
+
+
 	/*
 	 *	Slow phase with lock held.
 	 */
-	 
-	disable_irq_nosync(dev->irq);
-	
+
+	disable_irq_nosync_lockdep(dev->irq);
+
 	spin_lock(&ei_local->page_lock);
-	
+
 	ei_local->irqlock = 1;
 
 	/*
@@ -313,7 +313,7 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	 * card, leaving a substantial gap between each transmitted packet.
 	 */
 
-	if (ei_local->tx1 == 0) 
+	if (ei_local->tx1 == 0)
 	{
 		output_page = ei_local->tx_start_page;
 		ei_local->tx1 = send_length;
@@ -321,7 +321,7 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
 			printk(KERN_DEBUG "%s: idle transmitter tx2=%d, lasttx=%d, txing=%d.\n",
 				dev->name, ei_local->tx2, ei_local->lasttx, ei_local->txing);
 	}
-	else if (ei_local->tx2 == 0) 
+	else if (ei_local->tx2 == 0)
 	{
 		output_page = ei_local->tx_start_page + TX_PAGES/2;
 		ei_local->tx2 = send_length;
@@ -338,7 +338,7 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
 		netif_stop_queue(dev);
 		outb_p(ENISR_ALL, e8390_base + EN0_IMR);
 		spin_unlock(&ei_local->page_lock);
-		enable_irq(dev->irq);
+		enable_irq_lockdep(dev->irq);
 		ei_local->stat.tx_errors++;
 		return 1;
 	}
@@ -348,20 +348,20 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	 * isn't already sending. If it is busy, the interrupt handler will
 	 * trigger the send later, upon receiving a Tx done interrupt.
 	 */
-	 
+
 	ei_block_output(dev, send_length, data, output_page);
-		
-	if (! ei_local->txing) 
+
+	if (! ei_local->txing)
 	{
 		ei_local->txing = 1;
 		NS8390_trigger_send(dev, send_length, output_page);
 		dev->trans_start = jiffies;
-		if (output_page == ei_local->tx_start_page) 
+		if (output_page == ei_local->tx_start_page)
 		{
 			ei_local->tx1 = -1;
 			ei_local->lasttx = -1;
 		}
-		else 
+		else
 		{
 			ei_local->tx2 = -1;
 			ei_local->lasttx = -2;
@@ -377,16 +377,16 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	/* Turn 8390 interrupts back on. */
 	ei_local->irqlock = 0;
 	outb_p(ENISR_ALL, e8390_base + EN0_IMR);
-	
+
 	spin_unlock(&ei_local->page_lock);
-	enable_irq(dev->irq);
+	enable_irq_lockdep(dev->irq);
 
 	dev_kfree_skb (skb);
 	ei_local->stat.tx_bytes += send_length;
-    
+
 	return 0;
 }
-
+
 /**
  * ei_interrupt - handle the interrupts from an 8390
  * @irq: interrupt number
@@ -406,23 +406,23 @@ irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 	long e8390_base;
 	int interrupts, nr_serviced = 0;
 	struct ei_device *ei_local;
-    
-	if (dev == NULL) 
+
+	if (dev == NULL)
 	{
 		printk ("net_interrupt(): irq %d for unknown device.\n", irq);
 		return IRQ_NONE;
 	}
-    
+
 	e8390_base = dev->base_addr;
 	ei_local = (struct ei_device *) netdev_priv(dev);
 
 	/*
 	 *	Protect the irq test too.
 	 */
-	 
+
 	spin_lock(&ei_local->page_lock);
 
-	if (ei_local->irqlock) 
+	if (ei_local->irqlock)
 	{
 #if 1 /* This might just be an interrupt for a PCI device sharing this line */
 		/* The "irqlock" check is only for testing. */
@@ -435,16 +435,16 @@ irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 		spin_unlock(&ei_local->page_lock);
 		return IRQ_NONE;
 	}
-    
+
 	/* Change to page 0 and read the intr status reg. */
 	outb_p(E8390_NODMA+E8390_PAGE0, e8390_base + E8390_CMD);
 	if (ei_debug > 3)
 		printk(KERN_DEBUG "%s: interrupt(isr=%#2.2x).\n", dev->name,
 			   inb_p(e8390_base + EN0_ISR));
-    
+
 	/* !!Assumption!! -- we stay in page 0.	 Don't break this. */
 	while ((interrupts = inb_p(e8390_base + EN0_ISR)) != 0
-		   && ++nr_serviced < MAX_SERVICE) 
+		   && ++nr_serviced < MAX_SERVICE)
 	{
 		if (!netif_running(dev)) {
 			printk(KERN_WARNING "%s: interrupt from stopped card\n", dev->name);
@@ -453,9 +453,9 @@ irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 			interrupts = 0;
 			break;
 		}
-		if (interrupts & ENISR_OVER) 
+		if (interrupts & ENISR_OVER)
 			ei_rx_overrun(dev);
-		else if (interrupts & (ENISR_RX+ENISR_RX_ERR)) 
+		else if (interrupts & (ENISR_RX+ENISR_RX_ERR))
 		{
 			/* Got a good (?) packet. */
 			ei_receive(dev);
@@ -466,27 +466,27 @@ irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 		else if (interrupts & ENISR_TX_ERR)
 			ei_tx_err(dev);
 
-		if (interrupts & ENISR_COUNTERS) 
+		if (interrupts & ENISR_COUNTERS)
 		{
 			ei_local->stat.rx_frame_errors += inb_p(e8390_base + EN0_COUNTER0);
 			ei_local->stat.rx_crc_errors   += inb_p(e8390_base + EN0_COUNTER1);
 			ei_local->stat.rx_missed_errors+= inb_p(e8390_base + EN0_COUNTER2);
 			outb_p(ENISR_COUNTERS, e8390_base + EN0_ISR); /* Ack intr. */
 		}
-		
+
 		/* Ignore any RDC interrupts that make it back to here. */
-		if (interrupts & ENISR_RDC) 
+		if (interrupts & ENISR_RDC)
 		{
 			outb_p(ENISR_RDC, e8390_base + EN0_ISR);
 		}
 
 		outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, e8390_base + E8390_CMD);
 	}
-    
-	if (interrupts && ei_debug) 
+
+	if (interrupts && ei_debug)
 	{
 		outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, e8390_base + E8390_CMD);
-		if (nr_serviced >= MAX_SERVICE) 
+		if (nr_serviced >= MAX_SERVICE)
 		{
 			/* 0xFF is valid for a card removal */
 			if(interrupts!=0xFF)
@@ -505,9 +505,9 @@ irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 #ifdef CONFIG_NET_POLL_CONTROLLER
 void ei_poll(struct net_device *dev)
 {
-	disable_irq(dev->irq);
+	disable_irq_lockdep(dev->irq);
 	ei_interrupt(dev->irq, dev, NULL);
-	enable_irq(dev->irq);
+	enable_irq_lockdep(dev->irq);
 }
 #endif
 
@@ -551,7 +551,7 @@ static void ei_tx_err(struct net_device *dev)
 
 	if (tx_was_aborted)
 		ei_tx_intr(dev);
-	else 
+	else
 	{
 		ei_local->stat.tx_errors++;
 		if (txsr & ENTSR_CRS) ei_local->stat.tx_carrier_errors++;
@@ -573,7 +573,7 @@ static void ei_tx_intr(struct net_device *dev)
 	long e8390_base = dev->base_addr;
 	struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
 	int status = inb(e8390_base + EN0_TSR);
-    
+
 	outb_p(ENISR_TX, e8390_base + EN0_ISR); /* Ack intr. */
 
 	/*
@@ -582,13 +582,13 @@ static void ei_tx_intr(struct net_device *dev)
 	 */
 	ei_local->txqueue--;
 
-	if (ei_local->tx1 < 0) 
+	if (ei_local->tx1 < 0)
 	{
 		if (ei_local->lasttx != 1 && ei_local->lasttx != -1)
 			printk(KERN_ERR "%s: bogus last_tx_buffer %d, tx1=%d.\n",
 				ei_local->name, ei_local->lasttx, ei_local->tx1);
 		ei_local->tx1 = 0;
-		if (ei_local->tx2 > 0) 
+		if (ei_local->tx2 > 0)
 		{
 			ei_local->txing = 1;
 			NS8390_trigger_send(dev, ei_local->tx2, ei_local->tx_start_page + 6);
@@ -596,15 +596,15 @@ static void ei_tx_intr(struct net_device *dev)
 			ei_local->tx2 = -1,
 			ei_local->lasttx = 2;
 		}
-		else ei_local->lasttx = 20, ei_local->txing = 0;	
+		else ei_local->lasttx = 20, ei_local->txing = 0;
 	}
-	else if (ei_local->tx2 < 0) 
+	else if (ei_local->tx2 < 0)
 	{
 		if (ei_local->lasttx != 2  &&  ei_local->lasttx != -2)
 			printk("%s: bogus last_tx_buffer %d, tx2=%d.\n",
 				ei_local->name, ei_local->lasttx, ei_local->tx2);
 		ei_local->tx2 = 0;
-		if (ei_local->tx1 > 0) 
+		if (ei_local->tx1 > 0)
 		{
 			ei_local->txing = 1;
 			NS8390_trigger_send(dev, ei_local->tx1, ei_local->tx_start_page);
@@ -623,17 +623,17 @@ static void ei_tx_intr(struct net_device *dev)
 		ei_local->stat.collisions++;
 	if (status & ENTSR_PTX)
 		ei_local->stat.tx_packets++;
-	else 
+	else
 	{
 		ei_local->stat.tx_errors++;
-		if (status & ENTSR_ABT) 
+		if (status & ENTSR_ABT)
 		{
 			ei_local->stat.tx_aborted_errors++;
 			ei_local->stat.collisions += 16;
 		}
-		if (status & ENTSR_CRS) 
+		if (status & ENTSR_CRS)
 			ei_local->stat.tx_carrier_errors++;
-		if (status & ENTSR_FU) 
+		if (status & ENTSR_FU)
 			ei_local->stat.tx_fifo_errors++;
 		if (status & ENTSR_CDH)
 			ei_local->stat.tx_heartbeat_errors++;
@@ -647,7 +647,7 @@ static void ei_tx_intr(struct net_device *dev)
  * ei_receive - receive some packets
  * @dev: network device with which receive will be run
  *
- * We have a good packet(s), get it/them out of the buffers. 
+ * We have a good packet(s), get it/them out of the buffers.
  * Called with lock held.
  */
 
@@ -660,42 +660,42 @@ static void ei_receive(struct net_device *dev)
 	int rx_pkt_count = 0;
 	struct e8390_pkt_hdr rx_frame;
 	int num_rx_pages = ei_local->stop_page-ei_local->rx_start_page;
-    
-	while (++rx_pkt_count < 10) 
+
+	while (++rx_pkt_count < 10)
 	{
 		int pkt_len, pkt_stat;
-		
+
 		/* Get the rx page (incoming packet pointer). */
 		outb_p(E8390_NODMA+E8390_PAGE1, e8390_base + E8390_CMD);
 		rxing_page = inb_p(e8390_base + EN1_CURPAG);
 		outb_p(E8390_NODMA+E8390_PAGE0, e8390_base + E8390_CMD);
-		
+
 		/* Remove one frame from the ring.  Boundary is always a page behind. */
 		this_frame = inb_p(e8390_base + EN0_BOUNDARY) + 1;
 		if (this_frame >= ei_local->stop_page)
 			this_frame = ei_local->rx_start_page;
-		
+
 		/* Someday we'll omit the previous, iff we never get this message.
-		   (There is at least one clone claimed to have a problem.)  
-		   
+		   (There is at least one clone claimed to have a problem.)
+
 		   Keep quiet if it looks like a card removal. One problem here
 		   is that some clones crash in roughly the same way.
 		 */
 		if (ei_debug > 0  &&  this_frame != ei_local->current_page && (this_frame!=0x0 || rxing_page!=0xFF))
 			printk(KERN_ERR "%s: mismatched read page pointers %2x vs %2x.\n",
 				   dev->name, this_frame, ei_local->current_page);
-		
+
 		if (this_frame == rxing_page)	/* Read all the frames? */
 			break;				/* Done for now */
-		
+
 		current_offset = this_frame << 8;
 		ei_get_8390_hdr(dev, &rx_frame, this_frame);
-		
+
 		pkt_len = rx_frame.count - sizeof(struct e8390_pkt_hdr);
 		pkt_stat = rx_frame.status;
-		
+
 		next_frame = this_frame + 1 + ((pkt_len+4)>>8);
-		
+
 		/* Check for bogosity warned by 3c503 book: the status byte is never
 		   written.  This happened a lot during testing! This code should be
 		   cleaned up someday. */
@@ -709,7 +709,7 @@ static void ei_receive(struct net_device *dev)
 			continue;
 		}
 
-		if (pkt_len < 60  ||  pkt_len > 1518) 
+		if (pkt_len < 60  ||  pkt_len > 1518)
 		{
 			if (ei_debug)
 				printk(KERN_DEBUG "%s: bogus packet size: %d, status=%#2x nxpg=%#2x.\n",
@@ -718,12 +718,12 @@ static void ei_receive(struct net_device *dev)
 			ei_local->stat.rx_errors++;
 			ei_local->stat.rx_length_errors++;
 		}
-		 else if ((pkt_stat & 0x0F) == ENRSR_RXOK) 
+		 else if ((pkt_stat & 0x0F) == ENRSR_RXOK)
 		{
 			struct sk_buff *skb;
-			
+
 			skb = dev_alloc_skb(pkt_len+2);
-			if (skb == NULL) 
+			if (skb == NULL)
 			{
 				if (ei_debug > 1)
 					printk(KERN_DEBUG "%s: Couldn't allocate a sk_buff of size %d.\n",
@@ -745,8 +745,8 @@ static void ei_receive(struct net_device *dev)
 				if (pkt_stat & ENRSR_PHY)
 					ei_local->stat.multicast++;
 			}
-		} 
-		else 
+		}
+		else
 		{
 			if (ei_debug)
 				printk(KERN_DEBUG "%s: bogus packet: status=%#2x nxpg=%#2x size=%d\n",
@@ -758,7 +758,7 @@ static void ei_receive(struct net_device *dev)
 				ei_local->stat.rx_fifo_errors++;
 		}
 		next_frame = rx_frame.next;
-		
+
 		/* This _should_ never happen: it's here for avoiding bad clones. */
 		if (next_frame >= ei_local->stop_page) {
 			printk("%s: next frame inconsistency, %#2x\n", dev->name,
@@ -785,7 +785,7 @@ static void ei_receive(struct net_device *dev)
  * This includes causing "the NIC to defer indefinitely when it is stopped
  * on a busy network."  Ugh.
  * Called with lock held. Don't call this with the interrupts off or your
- * computer will hate you - it takes 10ms or so. 
+ * computer will hate you - it takes 10ms or so.
  */
 
 static void ei_rx_overrun(struct net_device *dev)
@@ -793,19 +793,19 @@ static void ei_rx_overrun(struct net_device *dev)
 	long e8390_base = dev->base_addr;
 	unsigned char was_txing, must_resend = 0;
 	struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
-    
+
 	/*
 	 * Record whether a Tx was in progress and then issue the
 	 * stop command.
 	 */
 	was_txing = inb_p(e8390_base+E8390_CMD) & E8390_TRANS;
 	outb_p(E8390_NODMA+E8390_PAGE0+E8390_STOP, e8390_base+E8390_CMD);
-    
+
 	if (ei_debug > 1)
 		printk(KERN_DEBUG "%s: Receiver overrun.\n", dev->name);
 	ei_local->stat.rx_over_errors++;
-    
-	/* 
+
+	/*
 	 * Wait a full Tx time (1.2ms) + some guard time, NS says 1.6ms total.
 	 * Early datasheets said to poll the reset bit, but now they say that
 	 * it "is not a reliable indicator and subsequently should be ignored."
@@ -826,7 +826,7 @@ static void ei_rx_overrun(struct net_device *dev)
 	 */
 
 	if (was_txing)
-	{ 
+	{
 		unsigned char tx_completed = inb_p(e8390_base+EN0_ISR) & (ENISR_TX+ENISR_TX_ERR);
 		if (!tx_completed)
 			must_resend = 1;
@@ -848,7 +848,7 @@ static void ei_rx_overrun(struct net_device *dev)
 	/*
 	 * Leave loopback mode, and resend any packet that got stopped.
 	 */
-	outb_p(E8390_TXCONFIG, e8390_base + EN0_TXCR); 
+	outb_p(E8390_TXCONFIG, e8390_base + EN0_TXCR);
 	if (must_resend)
     		outb_p(E8390_NODMA + E8390_PAGE0 + E8390_START + E8390_TRANS, e8390_base + E8390_CMD);
 }
@@ -856,13 +856,13 @@ static void ei_rx_overrun(struct net_device *dev)
 /*
  *	Collect the stats. This is called unlocked and from several contexts.
  */
- 
+
 static struct net_device_stats *get_stats(struct net_device *dev)
 {
 	long ioaddr = dev->base_addr;
 	struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
 	unsigned long flags;
-    
+
 	/* If the card is stopped, just return the present stats. */
 	if (!netif_running(dev))
 		return &ei_local->stat;
@@ -873,7 +873,7 @@ static struct net_device_stats *get_stats(struct net_device *dev)
 	ei_local->stat.rx_crc_errors   += inb_p(ioaddr + EN0_COUNTER1);
 	ei_local->stat.rx_missed_errors+= inb_p(ioaddr + EN0_COUNTER2);
 	spin_unlock_irqrestore(&ei_local->page_lock, flags);
-    
+
 	return &ei_local->stat;
 }
 
@@ -881,21 +881,21 @@ static struct net_device_stats *get_stats(struct net_device *dev)
  * Form the 64 bit 8390 multicast table from the linked list of addresses
  * associated with this dev structure.
  */
- 
+
 static inline void make_mc_bits(u8 *bits, struct net_device *dev)
 {
 	struct dev_mc_list *dmi;
 
-	for (dmi=dev->mc_list; dmi; dmi=dmi->next) 
+	for (dmi=dev->mc_list; dmi; dmi=dmi->next)
 	{
 		u32 crc;
-		if (dmi->dmi_addrlen != ETH_ALEN) 
+		if (dmi->dmi_addrlen != ETH_ALEN)
 		{
 			printk(KERN_INFO "%s: invalid multicast address length given.\n", dev->name);
 			continue;
 		}
 		crc = ether_crc(ETH_ALEN, dmi->dmi_addr);
-		/* 
+		/*
 		 * The 8390 uses the 6 most significant bits of the
 		 * CRC to index the multicast table.
 		 */
@@ -908,16 +908,16 @@ static inline void make_mc_bits(u8 *bits, struct net_device *dev)
  * @dev: net device for which multicast filter is adjusted
  *
  *	Set or clear the multicast filter for this adaptor. May be called
- *	from a BH in 2.1.x. Must be called with lock held. 
+ *	from a BH in 2.1.x. Must be called with lock held.
  */
- 
+
 static void do_set_multicast_list(struct net_device *dev)
 {
 	long e8390_base = dev->base_addr;
 	int i;
 	struct ei_device *ei_local = (struct ei_device*)netdev_priv(dev);
 
-	if (!(dev->flags&(IFF_PROMISC|IFF_ALLMULTI))) 
+	if (!(dev->flags&(IFF_PROMISC|IFF_ALLMULTI)))
 	{
 		memset(ei_local->mcfilter, 0, 8);
 		if (dev->mc_list)
@@ -926,23 +926,23 @@ static void do_set_multicast_list(struct net_device *dev)
 	else
 		memset(ei_local->mcfilter, 0xFF, 8);	/* mcast set to accept-all */
 
-	/* 
+	/*
 	 * DP8390 manuals don't specify any magic sequence for altering
 	 * the multicast regs on an already running card. To be safe, we
 	 * ensure multicast mode is off prior to loading up the new hash
 	 * table. If this proves to be not enough, we can always resort
 	 * to stopping the NIC, loading the table and then restarting.
 	 *
-	 * Bug Alert!  The MC regs on the SMC 83C690 (SMC Elite and SMC 
+	 * Bug Alert!  The MC regs on the SMC 83C690 (SMC Elite and SMC
 	 * Elite16) appear to be write-only. The NS 8390 data sheet lists
 	 * them as r/w so this is a bug.  The SMC 83C790 (SMC Ultra and
 	 * Ultra32 EISA) appears to have this bug fixed.
 	 */
-	 
+
 	if (netif_running(dev))
 		outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR);
 	outb_p(E8390_NODMA + E8390_PAGE1, e8390_base + E8390_CMD);
-	for(i = 0; i < 8; i++) 
+	for(i = 0; i < 8; i++)
 	{
 		outb_p(ei_local->mcfilter[i], e8390_base + EN1_MULT_SHIFT(i));
 #ifndef BUG_83C690
@@ -965,16 +965,16 @@ static void do_set_multicast_list(struct net_device *dev)
  *	be parallel to just about everything else. Its also fairly quick and
  *	not called too often. Must protect against both bh and irq users
  */
- 
+
 static void set_multicast_list(struct net_device *dev)
 {
 	unsigned long flags;
 	struct ei_device *ei_local = (struct ei_device*)netdev_priv(dev);
-	
+
 	spin_lock_irqsave(&ei_local->page_lock, flags);
 	do_set_multicast_list(dev);
 	spin_unlock_irqrestore(&ei_local->page_lock, flags);
-}	
+}
 
 /**
  * ethdev_setup - init rest of 8390 device struct
@@ -989,7 +989,7 @@ static void ethdev_setup(struct net_device *dev)
 	struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
 	if (ei_debug > 1)
 		printk(version);
-    
+
 	dev->hard_start_xmit = &ei_start_xmit;
 	dev->get_stats	= get_stats;
 	dev->set_multicast_list = &set_multicast_list;
@@ -1011,7 +1011,7 @@ struct net_device *__alloc_ei_netdev(int size)
 				ethdev_setup);
 }
 
-
+
 
 
 /* This page of functions should be 8390 generic */
@@ -1033,9 +1033,9 @@ void NS8390_init(struct net_device *dev, int startp)
 	int endcfg = ei_local->word16
 	    ? (0x48 | ENDCFG_WTS | (ei_local->bigendian ? ENDCFG_BOS : 0))
 	    : 0x48;
-    
+
 	if(sizeof(struct e8390_pkt_hdr)!=4)
-    		panic("8390.c: header struct mispacked\n");    
+    		panic("8390.c: header struct mispacked\n");
 	/* Follow National Semi's recommendations for initing the DP83902. */
 	outb_p(E8390_NODMA+E8390_PAGE0+E8390_STOP, e8390_base+E8390_CMD); /* 0x21 */
 	outb_p(endcfg, e8390_base + EN0_DCFG);	/* 0x48 or 0x49 */
@@ -1055,11 +1055,11 @@ void NS8390_init(struct net_device *dev, int startp)
 	/* Clear the pending interrupts and mask. */
 	outb_p(0xFF, e8390_base + EN0_ISR);
 	outb_p(0x00,  e8390_base + EN0_IMR);
-    
+
 	/* Copy the station address into the DS8390 registers. */
 
 	outb_p(E8390_NODMA + E8390_PAGE1 + E8390_STOP, e8390_base+E8390_CMD); /* 0x61 */
-	for(i = 0; i < 6; i++) 
+	for(i = 0; i < 6; i++)
 	{
 		outb_p(dev->dev_addr[i], e8390_base + EN1_PHYS_SHIFT(i));
 		if (ei_debug > 1 && inb_p(e8390_base + EN1_PHYS_SHIFT(i))!=dev->dev_addr[i])
@@ -1073,7 +1073,7 @@ void NS8390_init(struct net_device *dev, int startp)
 	ei_local->tx1 = ei_local->tx2 = 0;
 	ei_local->txing = 0;
 
-	if (startp) 
+	if (startp)
 	{
 		outb_p(0xff,  e8390_base + EN0_ISR);
 		outb_p(ENISR_ALL,  e8390_base + EN0_IMR);
@@ -1085,18 +1085,18 @@ void NS8390_init(struct net_device *dev, int startp)
 	}
 }
 
-/* Trigger a transmit start, assuming the length is valid. 
+/* Trigger a transmit start, assuming the length is valid.
    Always called with the page lock held */
-   
+
 static void NS8390_trigger_send(struct net_device *dev, unsigned int length,
 								int start_page)
 {
 	long e8390_base = dev->base_addr;
  	struct ei_device *ei_local __attribute((unused)) = (struct ei_device *) netdev_priv(dev);
-   
+
 	outb_p(E8390_NODMA+E8390_PAGE0, e8390_base+E8390_CMD);
-    
-	if (inb_p(e8390_base + E8390_CMD) & E8390_TRANS) 
+
+	if (inb_p(e8390_base + E8390_CMD) & E8390_TRANS)
 	{
 		printk(KERN_WARNING "%s: trigger_send() called with the transmitter busy.\n",
 			dev->name);

+ 1 - 1
drivers/net/8390.h

@@ -106,7 +106,7 @@ struct ei_device {
  *	Only generate indirect loads given a machine that needs them.
  *      - removed AMIGA_PCMCIA from this list, handled as ISA io now
  */
- 
+
 #if defined(CONFIG_MAC) ||  \
     defined(CONFIG_ZORRO8390) || defined(CONFIG_ZORRO8390_MODULE) || \
     defined(CONFIG_HYDRA) || defined(CONFIG_HYDRA_MODULE)

+ 60 - 7
drivers/net/Kconfig

@@ -438,12 +438,6 @@ config MIPS_JAZZ_SONIC
 	  This is the driver for the onboard card of MIPS Magnum 4000,
 	  Acer PICA, Olivetti M700-10 and a few other identical OEM systems.
 
-config MIPS_GT96100ETH
-	bool "MIPS GT96100 Ethernet support"
-	depends on NET_ETHERNET && MIPS_GT96100
-	help
-	  Say Y here to support the Ethernet subsystem on your GT96100 card.
-
 config MIPS_AU1X00_ENET
 	bool "MIPS AU1000 Ethernet support"
 	depends on NET_ETHERNET && SOC_AU1X00
@@ -1300,6 +1294,23 @@ config PCNET32
 	  <file:Documentation/networking/net-modules.txt>. The module
 	  will be called pcnet32.
 
+config PCNET32_NAPI
+	bool "Use RX polling (NAPI) (EXPERIMENTAL)"
+	depends on PCNET32 && EXPERIMENTAL
+	help
+	  NAPI is a new driver API designed to reduce CPU and interrupt load
+	  when the driver is receiving lots of packets from the card. It is
+	  still somewhat experimental and thus not yet enabled by default.
+
+	  If your estimated Rx load is 10kpps or more, or if the card will be
+	  deployed on potentially unfriendly networks (e.g. in a firewall),
+	  then say Y here.
+
+	  See <file:Documentation/networking/NAPI_HOWTO.txt> for more
+	  information.
+
+	  If in doubt, say N.
+
 config AMD8111_ETH
 	tristate "AMD 8111 (new PCI lance) support"
 	depends on NET_PCI && PCI
@@ -1411,6 +1422,22 @@ config FORCEDETH
 	  <file:Documentation/networking/net-modules.txt>.  The module will be
 	  called forcedeth.
 
+config FORCEDETH_NAPI
+	bool "Use Rx and Tx Polling (NAPI) (EXPERIMENTAL)"
+	depends on FORCEDETH && EXPERIMENTAL
+	help
+	  NAPI is a new driver API designed to reduce CPU and interrupt load
+	  when the driver is receiving lots of packets from the card. It is
+	  still somewhat experimental and thus not yet enabled by default.
+
+	  If your estimated Rx load is 10kpps or more, or if the card will be
+	  deployed on potentially unfriendly networks (e.g. in a firewall),
+	  then say Y here.
+
+	  See <file:Documentation/networking/NAPI_HOWTO.txt> for more
+	  information.
+
+	  If in doubt, say N.
 
 config CS89x0
 	tristate "CS89x0 support"
@@ -2262,7 +2289,7 @@ config UGETH_HAS_GIGA
 
 config MV643XX_ETH
 	tristate "MV-643XX Ethernet support"
-	depends on MOMENCO_OCELOT_C || MOMENCO_JAGUAR_ATX || MV64360 || MOMENCO_OCELOT_3 || PPC_MULTIPLATFORM
+	depends on MOMENCO_OCELOT_C || MOMENCO_JAGUAR_ATX || MV64360 || MOMENCO_OCELOT_3 || (PPC_MULTIPLATFORM && PPC32)
 	select MII
 	help
 	  This driver supports the gigabit Ethernet on the Marvell MV643XX
@@ -2290,6 +2317,15 @@ config MV643XX_ETH_2
 	  This enables support for Port 2 of the Marvell MV643XX Gigabit
 	  Ethernet.
 
+config QLA3XXX
+	tristate "QLogic QLA3XXX Network Driver Support"
+	depends on PCI
+	help
+	  This driver supports QLogic ISP3XXX gigabit Ethernet cards.
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called qla3xxx.
+
 endmenu
 
 #
@@ -2318,6 +2354,15 @@ config CHELSIO_T1
           To compile this driver as a module, choose M here: the module
           will be called cxgb.
 
+config EHEA
+	tristate "eHEA Ethernet support"
+	depends on IBMEBUS
+	---help---
+	  This driver supports the IBM pSeries eHEA ethernet adapter.
+
+	  To compile the driver as a module, choose M here. The module
+	  will be called ehea.
+
 config IXGB
 	tristate "Intel(R) PRO/10GbE support"
 	depends on PCI
@@ -2550,6 +2595,7 @@ config PLIP
 
 config PPP
 	tristate "PPP (point-to-point protocol) support"
+	select SLHC
 	---help---
 	  PPP (Point to Point Protocol) is a newer and better SLIP.  It serves
 	  the same purpose: sending Internet traffic over telephone (and other
@@ -2730,6 +2776,7 @@ config SLIP
 config SLIP_COMPRESSED
 	bool "CSLIP compressed headers"
 	depends on SLIP
+	select SLHC
 	---help---
 	  This protocol is faster than SLIP because it uses compression on the
 	  TCP/IP headers (not on the data itself), but it has to be supported
@@ -2742,6 +2789,12 @@ config SLIP_COMPRESSED
 	  <http://www.tldp.org/docs.html#howto>, explains how to configure
 	  CSLIP. This won't enlarge your kernel.
 
+config SLHC
+	tristate
+	help
+	  This option enables Van Jacobsen serial line header compression
+	  routines.
+
 config SLIP_SMART
 	bool "Keepalive and linefill"
 	depends on SLIP

+ 4 - 9
drivers/net/Makefile

@@ -2,14 +2,11 @@
 # Makefile for the Linux network (ethercard) device drivers.
 #
 
-ifeq ($(CONFIG_ISDN_PPP),y)
-  obj-$(CONFIG_ISDN) += slhc.o
-endif
-
 obj-$(CONFIG_E1000) += e1000/
 obj-$(CONFIG_IBM_EMAC) += ibm_emac/
 obj-$(CONFIG_IXGB) += ixgb/
 obj-$(CONFIG_CHELSIO_T1) += chelsio/
+obj-$(CONFIG_EHEA) += ehea/
 obj-$(CONFIG_BONDING) += bonding/
 obj-$(CONFIG_GIANFAR) += gianfar_driver.o
 
@@ -113,8 +110,9 @@ obj-$(CONFIG_FORCEDETH) += forcedeth.o
 obj-$(CONFIG_NE_H8300) += ne-h8300.o 8390.o
 
 obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o
+obj-$(CONFIG_QLA3XXX) += qla3xxx.o
 
-obj-$(CONFIG_PPP) += ppp_generic.o slhc.o
+obj-$(CONFIG_PPP) += ppp_generic.o
 obj-$(CONFIG_PPP_ASYNC) += ppp_async.o
 obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
 obj-$(CONFIG_PPP_DEFLATE) += ppp_deflate.o
@@ -123,9 +121,7 @@ obj-$(CONFIG_PPP_MPPE) += ppp_mppe.o
 obj-$(CONFIG_PPPOE) += pppox.o pppoe.o
 
 obj-$(CONFIG_SLIP) += slip.o
-ifeq ($(CONFIG_SLIP_COMPRESSED),y)
-  obj-$(CONFIG_SLIP) += slhc.o
-endif
+obj-$(CONFIG_SLHC) += slhc.o
 
 obj-$(CONFIG_DUMMY) += dummy.o
 obj-$(CONFIG_IFB) += ifb.o
@@ -174,7 +170,6 @@ obj-$(CONFIG_HPLANCE) += hplance.o 7990.o
 obj-$(CONFIG_MVME147_NET) += mvme147.o 7990.o
 obj-$(CONFIG_EQUALIZER) += eql.o
 obj-$(CONFIG_MIPS_JAZZ_SONIC) += jazzsonic.o
-obj-$(CONFIG_MIPS_GT96100ETH) += gt96100eth.o
 obj-$(CONFIG_MIPS_AU1X00_ENET) += au1000_eth.o
 obj-$(CONFIG_MIPS_SIM_NET) += mipsnet.o
 obj-$(CONFIG_SGI_IOC3_ETH) += ioc3-eth.o

+ 12 - 12
drivers/net/Space.c

@@ -18,7 +18,7 @@
  *		- struct init cleanup, enable multiple ISA autoprobes.
  *		Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 09/1999
  *		- fix sbni: s/device/net_device/
- *		Paul Gortmaker (06/98): 
+ *		Paul Gortmaker (06/98):
  *		 - sort probes in a sane way, make sure all (safe) probes
  *		   get run once & failed autoprobes don't autoprobe again.
  *
@@ -91,7 +91,7 @@ extern struct net_device *mac89x0_probe(int unit);
 extern struct net_device *mc32_probe(int unit);
 extern struct net_device *cops_probe(int unit);
 extern struct net_device *ltpc_probe(void);
-  
+
 /* Detachable devices ("pocket adaptors") */
 extern struct net_device *de620_probe(int unit);
 
@@ -129,10 +129,10 @@ static int __init probe_list2(int unit, struct devprobe2 *p, int autoprobe)
  */
 
 static struct devprobe2 eisa_probes[] __initdata = {
-#ifdef CONFIG_ULTRA32 
-	{ultra32_probe, 0},	
+#ifdef CONFIG_ULTRA32
+	{ultra32_probe, 0},
 #endif
-#ifdef CONFIG_AC3200	
+#ifdef CONFIG_AC3200
 	{ac3200_probe, 0},
 #endif
 #ifdef CONFIG_ES3210
@@ -167,14 +167,14 @@ static struct devprobe2 mca_probes[] __initdata = {
 static struct devprobe2 isa_probes[] __initdata = {
 #ifdef CONFIG_HP100 		/* ISA, EISA & PCI */
 	{hp100_probe, 0},
-#endif	
+#endif
 #ifdef CONFIG_3C515
 	{tc515_probe, 0},
 #endif
-#ifdef CONFIG_ULTRA 
+#ifdef CONFIG_ULTRA
 	{ultra_probe, 0},
 #endif
-#ifdef CONFIG_WD80x3 
+#ifdef CONFIG_WD80x3
 	{wd_probe, 0},
 #endif
 #ifdef CONFIG_EL2 		/* 3c503 */
@@ -199,7 +199,7 @@ static struct devprobe2 isa_probes[] __initdata = {
 #ifdef CONFIG_SMC9194
 	{smc_init, 0},
 #endif
-#ifdef CONFIG_SEEQ8005 
+#ifdef CONFIG_SEEQ8005
 	{seeq8005_probe, 0},
 #endif
 #ifdef CONFIG_CS89x0
@@ -295,7 +295,7 @@ static struct devprobe2 m68k_probes[] __initdata = {
  * Unified ethernet device probe, segmented per architecture and
  * per bus interface. This drives the legacy devices only for now.
  */
- 
+
 static void __init ethif_probe2(int unit)
 {
 	unsigned long base_addr = netdev_boot_base("eth", unit);
@@ -349,7 +349,7 @@ static void __init trif_probe2(int unit)
 }
 #endif
 
-	
+
 /*
  *	The loopback device is global so it can be directly referenced
  *	by the network code. Also, it must be first on device list.
@@ -365,7 +365,7 @@ static int __init net_olddevs_init(void)
 		printk(KERN_ERR "Network loopback device setup failed\n");
 	}
 
-	
+
 #ifdef CONFIG_SBNI
 	for (num = 0; num < 8; ++num)
 		sbni_probe(num);

+ 20 - 20
drivers/net/a2065.c

@@ -93,7 +93,7 @@ struct lance_init_block {
 	unsigned short rx_len;		/* receive len and high addr */
 	unsigned short tx_ptr;		/* transmit descriptor addr */
 	unsigned short tx_len;		/* transmit len and high addr */
-    
+
 	/* The Tx and Rx ring entries must aligned on 8-byte boundaries. */
 	struct lance_rx_desc brx_ring[RX_RING_SIZE];
 	struct lance_tx_desc btx_ring[TX_RING_SIZE];
@@ -115,7 +115,7 @@ struct lance_private {
 
 	int rx_new, tx_new;
 	int rx_old, tx_old;
-    
+
 	int lance_log_rx_bufs, lance_log_tx_bufs;
 	int rx_ring_mod_mask, tx_ring_mod_mask;
 
@@ -190,7 +190,7 @@ static void lance_init_ring (struct net_device *dev)
 
 	if (ZERO)
 		printk(KERN_DEBUG "TX rings:\n");
-    
+
 	/* Setup the Tx ring entries */
 	for (i = 0; i <= (1<<lp->lance_log_tx_bufs); i++) {
 		leptr = LANCE_ADDR(&aib->tx_buf[i][0]);
@@ -219,14 +219,14 @@ static void lance_init_ring (struct net_device *dev)
 	}
 
 	/* Setup the initialization block */
-    
+
 	/* Setup rx descriptor pointer */
 	leptr = LANCE_ADDR(&aib->brx_ring);
 	ib->rx_len = (lp->lance_log_rx_bufs << 13) | (leptr >> 16);
 	ib->rx_ptr = leptr;
 	if (ZERO)
 		printk(KERN_DEBUG "RX ptr: %8.8x\n", leptr);
-    
+
 	/* Setup tx descriptor pointer */
 	leptr = LANCE_ADDR(&aib->btx_ring);
 	ib->tx_len = (lp->lance_log_tx_bufs << 13) | (leptr >> 16);
@@ -286,7 +286,7 @@ static int lance_rx (struct net_device *dev)
 	}
 	printk ("]\n");
 #endif
-    
+
 	ll->rdp = LE_C0_RINT|LE_C0_INEA;
 	for (rd = &ib->brx_ring [lp->rx_new];
 	     !((bits = rd->rmd1_bits) & LE_R1_OWN);
@@ -319,7 +319,7 @@ static int lance_rx (struct net_device *dev)
 				lp->rx_new = (lp->rx_new + 1) & lp->rx_ring_mod_mask;
 				return 0;
 			}
-	    
+
 			skb->dev = dev;
 			skb_reserve (skb, 2);		/* 16 byte align */
 			skb_put (skb, len);		/* make room */
@@ -361,10 +361,10 @@ static int lance_tx (struct net_device *dev)
 		/* If we hit a packet not owned by us, stop */
 		if (td->tmd1_bits & LE_T1_OWN)
 			break;
-		
+
 		if (td->tmd1_bits & LE_T1_ERR) {
 			status = td->misc;
-	    
+
 			lp->stats.tx_errors++;
 			if (status & LE_T3_RTY)  lp->stats.tx_aborted_errors++;
 			if (status & LE_T3_LCOL) lp->stats.tx_window_errors++;
@@ -417,7 +417,7 @@ static int lance_tx (struct net_device *dev)
 
 			lp->stats.tx_packets++;
 		}
-	
+
 		j = (j + 1) & lp->tx_ring_mod_mask;
 	}
 	lp->tx_old = j;
@@ -452,7 +452,7 @@ lance_interrupt (int irq, void *dev_id, struct pt_regs *regs)
 		/* Clear the error condition */
 		ll->rdp = LE_C0_BABL|LE_C0_ERR|LE_C0_MISS|LE_C0_INEA;
 	}
-    
+
 	if (csr0 & LE_C0_RINT)
 		lance_rx (dev);
 
@@ -528,7 +528,7 @@ static inline int lance_reset (struct net_device *dev)
 	struct lance_private *lp = netdev_priv(dev);
 	volatile struct lance_regs *ll = lp->ll;
 	int status;
-    
+
 	/* Stop the lance */
 	ll->rap = LE_CSR0;
 	ll->rdp = LE_C0_STOP;
@@ -569,7 +569,7 @@ static int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
 
 	skblen = skb->len;
 	len = skblen;
-	
+
 	if (len < ETH_ZLEN) {
 		len = ETH_ZLEN;
 		if (skb_padto(skb, ETH_ZLEN))
@@ -587,7 +587,7 @@ static int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
 	/* dump the packet */
 	{
 		int i;
-	
+
 		for (i = 0; i < 64; i++) {
 			if ((i % 16) == 0)
 				printk("\n" KERN_DEBUG);
@@ -599,13 +599,13 @@ static int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
 	entry = lp->tx_new & lp->tx_ring_mod_mask;
 	ib->btx_ring [entry].length = (-len) | 0xf000;
 	ib->btx_ring [entry].misc = 0;
-    
+
 	memcpy ((char *)&ib->tx_buf [entry][0], skb->data, skblen);
 
 	/* Clear the slack of the packet, do I need this? */
 	if (len != skblen)
 		memset ((char *) &ib->tx_buf [entry][skblen], 0, len - skblen);
-    
+
 	/* Now, give the packet to the lance */
 	ib->btx_ring [entry].tmd1_bits = (LE_T1_POK|LE_T1_OWN);
 	lp->tx_new = (lp->tx_new+1) & lp->tx_ring_mod_mask;
@@ -619,7 +619,7 @@ static int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
 	ll->rdp = LE_C0_INEA | LE_C0_TDMD;
 	dev->trans_start = jiffies;
 	dev_kfree_skb (skb);
-    
+
 	local_irq_restore(flags);
 
 	return status;
@@ -642,9 +642,9 @@ static void lance_load_multicast (struct net_device *dev)
 	char *addrs;
 	int i;
 	u32 crc;
-	
+
 	/* set all multicast bits */
-	if (dev->flags & IFF_ALLMULTI){ 
+	if (dev->flags & IFF_ALLMULTI){
 		ib->filter [0] = 0xffffffff;
 		ib->filter [1] = 0xffffffff;
 		return;
@@ -661,7 +661,7 @@ static void lance_load_multicast (struct net_device *dev)
 		/* multicast address? */
 		if (!(*addrs & 1))
 			continue;
-		
+
 		crc = ether_crc_le(6, addrs);
 		crc = crc >> 26;
 		mcast_table [crc >> 4] |= 1 << (crc & 0xf);

+ 2 - 2
drivers/net/a2065.h

@@ -109,7 +109,7 @@ struct lance_rx_desc {
 				     */
 	unsigned short mblength;    /* Aactual number of bytes received */
 };
- 
+
 struct lance_tx_desc {
 	unsigned short tmd0;        /* low address of packet */
 	unsigned char  tmd1_bits;   /* descriptor bits */
@@ -117,7 +117,7 @@ struct lance_tx_desc {
 	short    length;       	    /* Length is 2s complement (negative)! */
 	unsigned short misc;
 };
-		
+
 
 /*
  *		Receive Flags

+ 3 - 3
drivers/net/ac3200.c

@@ -45,7 +45,7 @@ static const char version[] =
 #define AC_NIC_BASE	0x00
 #define AC_SA_PROM	0x16			/* The station address PROM. */
 #define AC_ADDR0	0x00			/* Prefix station address values. */
-#define AC_ADDR1	0x40			
+#define AC_ADDR1	0x40
 #define AC_ADDR2	0x90
 #define AC_ID_PORT	0xC80
 #define AC_EISA_ID	0x0110d305
@@ -89,7 +89,7 @@ static void ac_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr,
 					int ring_page);
 
 static int ac_close_card(struct net_device *dev);
-
+
 
 /*	Probe for the AC3200.
 
@@ -217,7 +217,7 @@ static int __init ac_probe1(int ioaddr, struct net_device *dev)
 	dev->if_port = inb(ioaddr + AC_CONFIG) >> 6;
 	dev->mem_start = config2mem(inb(ioaddr + AC_CONFIG));
 
-	printk("%s: AC3200 at %#3x with %dkB memory at physical address %#lx.\n", 
+	printk("%s: AC3200 at %#3x with %dkB memory at physical address %#lx.\n",
 			dev->name, ioaddr, AC_STOP_PG/4, dev->mem_start);
 
 	/*

+ 23 - 23
drivers/net/acenic.c

@@ -99,7 +99,7 @@
 #endif
 
 #ifndef PCI_VENDOR_ID_ALTEON
-#define PCI_VENDOR_ID_ALTEON		0x12ae	
+#define PCI_VENDOR_ID_ALTEON		0x12ae
 #endif
 #ifndef PCI_DEVICE_ID_ALTEON_ACENIC_FIBRE
 #define PCI_DEVICE_ID_ALTEON_ACENIC_FIBRE  0x0001
@@ -443,7 +443,7 @@ MODULE_PARM_DESC(max_rx_desc, "AceNIC/3C985/GA620 max number of receive descript
 MODULE_PARM_DESC(tx_ratio, "AceNIC/3C985/GA620 ratio of NIC memory used for TX/RX descriptors (range 0-63)");
 
 
-static char version[] __devinitdata = 
+static char version[] __devinitdata =
   "acenic.c: v0.92 08/05/2002  Jes Sorensen, linux-acenic@SunSITE.dk\n"
   "                            http://home.cern.ch/~jes/gige/acenic.html\n";
 
@@ -451,7 +451,7 @@ static int ace_get_settings(struct net_device *, struct ethtool_cmd *);
 static int ace_set_settings(struct net_device *, struct ethtool_cmd *);
 static void ace_get_drvinfo(struct net_device *, struct ethtool_drvinfo *);
 
-static struct ethtool_ops ace_ethtool_ops = {
+static const struct ethtool_ops ace_ethtool_ops = {
 	.get_settings = ace_get_settings,
 	.set_settings = ace_set_settings,
 	.get_drvinfo = ace_get_drvinfo,
@@ -516,7 +516,7 @@ static int __devinit acenic_probe_one(struct pci_dev *pdev,
 
 	pci_read_config_word(pdev, PCI_COMMAND, &ap->pci_command);
 
-	/* OpenFirmware on Mac's does not set this - DOH.. */ 
+	/* OpenFirmware on Mac's does not set this - DOH.. */
 	if (!(ap->pci_command & PCI_COMMAND_MEMORY)) {
 		printk(KERN_INFO "%s: Enabling PCI Memory Mapped "
 		       "access - was not enabled by BIOS/Firmware\n",
@@ -636,7 +636,7 @@ static void __devexit acenic_remove_one(struct pci_dev *pdev)
 	writel(readl(&regs->CpuCtrl) | CPU_HALT, &regs->CpuCtrl);
 	if (ap->version >= 2)
 		writel(readl(&regs->CpuBCtrl) | CPU_HALT, &regs->CpuBCtrl);
-	
+
 	/*
 	 * This clears any pending interrupts
 	 */
@@ -725,7 +725,7 @@ static struct pci_driver acenic_pci_driver = {
 
 static int __init acenic_init(void)
 {
-	return pci_module_init(&acenic_pci_driver);
+	return pci_register_driver(&acenic_pci_driver);
 }
 
 static void __exit acenic_exit(void)
@@ -1059,7 +1059,7 @@ static int __devinit ace_init(struct net_device *dev)
 	printk(KERN_INFO "  PCI bus width: %i bits, speed: %iMHz, "
 	       "latency: %i clks\n",
 	       	(pci_state & PCI_32BIT) ? 32 : 64,
-		(pci_state & PCI_66MHZ) ? 66 : 33, 
+		(pci_state & PCI_66MHZ) ? 66 : 33,
 		ap->pci_latency);
 
 	/*
@@ -1161,7 +1161,7 @@ static int __devinit ace_init(struct net_device *dev)
 		pci_write_config_word(pdev, PCI_COMMAND, ap->pci_command);
 	}
 #endif
-		
+
 	/*
 	 * Configure DMA attributes.
 	 */
@@ -1284,7 +1284,7 @@ static int __devinit ace_init(struct net_device *dev)
 			      (RX_STD_RING_ENTRIES +
 			       RX_JUMBO_RING_ENTRIES))));
 		info->rx_mini_ctrl.max_len = ACE_MINI_SIZE;
-		info->rx_mini_ctrl.flags = 
+		info->rx_mini_ctrl.flags =
 		  RCB_FLG_TCP_UDP_SUM|RCB_FLG_NO_PSEUDO_HDR|ACE_RCB_VLAN_FLAG;
 
 		for (i = 0; i < RX_MINI_RING_ENTRIES; i++)
@@ -1318,7 +1318,7 @@ static int __devinit ace_init(struct net_device *dev)
 
 	if (ACE_IS_TIGON_I(ap)) {
 		ap->tx_ring = (struct tx_desc *) regs->Window;
-		for (i = 0; i < (TIGON_I_TX_RING_ENTRIES 
+		for (i = 0; i < (TIGON_I_TX_RING_ENTRIES
 				 * sizeof(struct tx_desc)) / sizeof(u32); i++)
 			writel(0, (void __iomem *)ap->tx_ring  + i * 4);
 
@@ -1670,7 +1670,7 @@ static void ace_load_std_rx_ring(struct ace_private *ap, int nr_bufs)
 {
 	struct ace_regs __iomem *regs = ap->regs;
 	short i, idx;
-	
+
 
 	prefetchw(&ap->cur_rx_bufs);
 
@@ -1966,7 +1966,7 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm)
 
 	prefetchw(&ap->cur_rx_bufs);
 	prefetchw(&ap->cur_mini_bufs);
-	
+
 	while (idx != rxretprd) {
 		struct ring_info *rip;
 		struct sk_buff *skb;
@@ -1977,7 +1977,7 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm)
 
 
 		/* make sure the rx descriptor isn't read before rxretprd */
-		if (idx == rxretcsm) 
+		if (idx == rxretcsm)
 			rmb();
 
 		retdesc = &ap->rx_return_ring[idx];
@@ -2009,7 +2009,7 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm)
 			rip = &ap->skb->rx_mini_skbuff[skbidx];
 			mapsize = ACE_MINI_BUFSIZE;
 			rxdesc = &ap->rx_mini_ring[skbidx];
-			mini_count++; 
+			mini_count++;
 			break;
 		default:
 			printk(KERN_INFO "%s: unknown frame type (0x%02x) "
@@ -2377,7 +2377,7 @@ static int ace_close(struct net_device *dev)
 	 */
 	netif_stop_queue(dev);
 
-	
+
 	if (ap->promisc) {
 		cmd.evt = C_SET_PROMISC_MODE;
 		cmd.code = C_C_PROMISC_DISABLE;
@@ -2412,7 +2412,7 @@ static int ace_close(struct net_device *dev)
 
 		if (mapping) {
 			if (ACE_IS_TIGON_I(ap)) {
-				struct tx_desc __iomem *tx 
+				struct tx_desc __iomem *tx
 					= (struct tx_desc __iomem *) &ap->tx_ring[i];
 				writel(0, &tx->addr.addrhi);
 				writel(0, &tx->addr.addrlo);
@@ -2625,7 +2625,7 @@ overflow:
 		cpu_relax();
 		goto restart;
 	}
-	
+
 	/* The ring is stuck full. */
 	printk(KERN_WARNING "%s: Transmit ring stuck full\n", dev->name);
 	return NETDEV_TX_BUSY;
@@ -2784,18 +2784,18 @@ static int ace_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
 	return 0;
 }
 
-static void ace_get_drvinfo(struct net_device *dev, 
+static void ace_get_drvinfo(struct net_device *dev,
 			    struct ethtool_drvinfo *info)
 {
 	struct ace_private *ap = netdev_priv(dev);
 
 	strlcpy(info->driver, "acenic", sizeof(info->driver));
-	snprintf(info->version, sizeof(info->version), "%i.%i.%i", 
+	snprintf(info->version, sizeof(info->version), "%i.%i.%i",
 		tigonFwReleaseMajor, tigonFwReleaseMinor,
 		tigonFwReleaseFix);
 
 	if (ap->pdev)
-		strlcpy(info->bus_info, pci_name(ap->pdev), 
+		strlcpy(info->bus_info, pci_name(ap->pdev),
 			sizeof(info->bus_info));
 
 }
@@ -2912,7 +2912,7 @@ static void __devinit ace_copy(struct ace_regs __iomem *regs, void *src,
 	while (size > 0) {
 		tsize = min_t(u32, ((~dest & (ACE_WINDOW_SIZE - 1)) + 1),
 			    min_t(u32, size, ACE_WINDOW_SIZE));
-		tdest = (void __iomem *) &regs->Window + 
+		tdest = (void __iomem *) &regs->Window +
 			(dest & (ACE_WINDOW_SIZE - 1));
 		writel(dest & ~(ACE_WINDOW_SIZE - 1), &regs->WinBase);
 		/*
@@ -2943,7 +2943,7 @@ static void __devinit ace_clear(struct ace_regs __iomem *regs, u32 dest, int siz
 	while (size > 0) {
 		tsize = min_t(u32, ((~dest & (ACE_WINDOW_SIZE - 1)) + 1),
 				min_t(u32, size, ACE_WINDOW_SIZE));
-		tdest = (void __iomem *) &regs->Window + 
+		tdest = (void __iomem *) &regs->Window +
 			(dest & (ACE_WINDOW_SIZE - 1));
 		writel(dest & ~(ACE_WINDOW_SIZE - 1), &regs->WinBase);
 
@@ -3060,7 +3060,7 @@ static void __devinit eeprom_prep(struct ace_regs __iomem *regs, u8 magic)
 
 	for (i = 0; i < 8; i++, magic <<= 1) {
 		udelay(ACE_SHORT_DELAY);
-		if (magic & 0x80) 
+		if (magic & 0x80)
 			local |= EEPROM_DATA_OUT;
 		else
 			local &= ~EEPROM_DATA_OUT;

+ 3 - 3
drivers/net/acenic.h

@@ -173,7 +173,7 @@ typedef struct {
 /*
  * Host control register bits.
  */
-	
+
 #define IN_INT		0x01
 #define CLR_INT		0x02
 #define HW_RESET	0x08
@@ -449,7 +449,7 @@ struct cmd {
 
 struct tx_desc{
         aceaddr	addr;
-	u32	flagsize; 
+	u32	flagsize;
 #if 0
 /*
  * This is in PCI shared mem and must be accessed with readl/writel
@@ -754,7 +754,7 @@ static inline void ace_unmask_irq(struct net_device *dev)
 {
 	struct ace_private *ap = netdev_priv(dev);
 	struct ace_regs __iomem *regs = ap->regs;
- 
+
 	if (ACE_IS_TIGON_I(ap))
 		writel(0, &regs->MaskInt);
 	else

+ 9404 - 9404
drivers/net/acenic_firmware.h

@@ -23,4577 +23,4577 @@
 #else
 /* Generated by genfw.c */
 static u32 tigonFwText[(MAX_TEXT_LEN/4) + 1] __devinitdata = {
-0x10000003, 
-0x0, 0xd, 0xd, 0x3c1d0001, 
-0x8fbd5c54, 0x3a0f021, 0x3c100000, 0x26104000, 
-0xc00100c, 0x0, 0xd, 0x27bdffd8, 
-0x3c1cc000, 0x3c1b0013, 0x377bd800, 0xd021, 
-0x3c170013, 0x36f75418, 0x2e02021, 0x340583e8, 
-0xafbf0024, 0xc002488, 0xafb00020, 0xc0023e8, 
-0x0, 0x3c040001, 0x248451a4, 0x24050001, 
-0x2e03021, 0x3821, 0x3c100001, 0x26107e50, 
-0xafb00010, 0xc002403, 0xafbb0014, 0x3c02000f, 
-0x3442ffff, 0x2021024, 0x362102b, 0x10400009, 
-0x24050003, 0x3c040001, 0x248451b0, 0x2003021, 
-0x3603821, 0x3c020010, 0xafa20010, 0xc002403, 
-0xafa00014, 0x2021, 0x3405c000, 0x3c010001, 
-0x370821, 0xa02083b0, 0x3c010001, 0x370821, 
-0xa02083b2, 0x3c010001, 0x370821, 0xa02083b3, 
-0x3c010001, 0x370821, 0xac2083b4, 0xa2e004d8, 
-0x418c0, 0x24840001, 0x771021, 0xac40727c, 
-0x771021, 0xac407280, 0x2e31021, 0xa445727c, 
-0x2c820020, 0x1440fff7, 0x418c0, 0x2021, 
-0x3405c000, 0x418c0, 0x24840001, 0x771021, 
-0xac40737c, 0x771021, 0xac407380, 0x2e31021, 
-0xa445737c, 0x2c820080, 0x5440fff7, 0x418c0, 
-0xaf800054, 0xaf80011c, 0x8f820044, 0x34420040, 
-0xaf820044, 0x8f820044, 0x34420020, 0xaf820044, 
-0x8f420218, 0x30420002, 0x10400009, 0x0, 
-0x8f420220, 0x3c030002, 0x34630004, 0x431025, 
-0xaee204c4, 0x8f42021c, 0x8001074, 0x34420004, 
-0x8f420220, 0x3c030002, 0x34630006, 0x431025, 
-0xaee204c4, 0x8f42021c, 0x34420006, 0xaee204cc, 
-0x8f420218, 0x30420010, 0x1040000a, 0x0, 
-0x8f42021c, 0x34420004, 0xaee204c8, 0x8f420220, 
-0x3c03000a, 0x34630004, 0x431025, 0x800108a, 
-0xaee204c0, 0x8f420220, 0x3c03000a, 0x34630006, 
-0x431025, 0xaee204c0, 0x8f42021c, 0x34420006, 
-0xaee204c8, 0x8f420218, 0x30420200, 0x10400003, 
-0x24020001, 0x8001091, 0xa2e27248, 0xa2e07248, 
-0x24020001, 0xaf8200a0, 0xaf8200b0, 0x8f830054, 
-0x8f820054, 0x8001099, 0x24630064, 0x8f820054, 
-0x621023, 0x2c420065, 0x1440fffc, 0x0, 
-0xaf800044, 0x8f420208, 0x8f43020c, 0xaee20010, 
-0xaee30014, 0x8ee40010, 0x8ee50014, 0x26e20030, 
-0xaee20028, 0x24020490, 0xaee20018, 0xaf840090, 
-0xaf850094, 0x8ee20028, 0xaf8200b4, 0x96e2001a, 
-0xaf82009c, 0x8f8200b0, 0x8ee304cc, 0x431025, 
-0xaf8200b0, 0x8f8200b0, 0x30420004, 0x1440fffd, 
-0x0, 0x8ee20450, 0x8ee30454, 0xaee304fc, 
-0x8ee204fc, 0x2442e000, 0x2c422001, 0x1440000d, 
-0x26e40030, 0x8ee20450, 0x8ee30454, 0x3c040001, 
-0x248451bc, 0x3c050001, 0xafa00010, 0xafa00014, 
-0x8ee704fc, 0x34a5f000, 0xc002403, 0x603021, 
-0x26e40030, 0xc002488, 0x24050400, 0x27440080, 
-0xc002488, 0x24050080, 0x26e4777c, 0xc002488, 
-0x24050400, 0x8f42025c, 0x26e40094, 0xaee20060, 
-0x8f420260, 0x27450200, 0x24060008, 0xaee20068, 
-0x24020006, 0xc00249a, 0xaee20064, 0x3c023b9a, 
-0x3442ca00, 0x2021, 0x24030002, 0xaee30074, 
-0xaee30070, 0xaee2006c, 0x240203e8, 0xaee20104, 
-0x24020001, 0xaee30100, 0xaee2010c, 0x3c030001, 
-0x641821, 0x90635c20, 0x2e41021, 0x24840001, 
-0xa043009c, 0x2c82000f, 0x1440fff8, 0x0, 
-0x8f820040, 0x2e41821, 0x24840001, 0x21702, 
-0x24420030, 0xa062009c, 0x2e41021, 0xa040009c, 
-0x96e2046a, 0x30420003, 0x14400009, 0x0, 
-0x96e2047a, 0x30420003, 0x50400131, 0x3c030800, 
-0x96e2046a, 0x30420003, 0x1040002a, 0x3c020700, 
-0x96e2047a, 0x30420003, 0x10400026, 0x3c020700, 
-0x96e3047a, 0x96e2046a, 0x14620022, 0x3c020700, 
-0x8ee204c0, 0x24030001, 0xa2e34e20, 0x34420e00, 
-0xaee204c0, 0x8f420218, 0x30420100, 0x10400005, 
-0x0, 0x3c020001, 0x2442e168, 0x800111d, 
-0x21100, 0x3c020001, 0x2442d35c, 0x21100, 
-0x21182, 0x3c030800, 0x431025, 0x3c010001, 
-0xac221238, 0x3c020001, 0x2442f680, 0x21100, 
-0x21182, 0x3c030800, 0x431025, 0x3c010001, 
-0xac221278, 0x8ee20000, 0x34424000, 0x8001238, 
-0xaee20000, 0x34423000, 0xafa20018, 0x8ee20608, 
-0x8f430228, 0x24420001, 0x304900ff, 0x512300e2, 
-0xafa00010, 0x8ee20608, 0x210c0, 0x571021, 
-0x8fa30018, 0x8fa4001c, 0xac43060c, 0xac440610, 
-0x8f870120, 0x27623800, 0x24e80020, 0x102102b, 
-0x50400001, 0x27683000, 0x8f820128, 0x11020004, 
-0x0, 0x8f820124, 0x15020007, 0x1021, 
-0x8ee201a4, 0x3021, 0x24420001, 0xaee201a4, 
-0x80011a0, 0x8ee201a4, 0x8ee40608, 0x420c0, 
-0x801821, 0x8ee40430, 0x8ee50434, 0xa32821, 
-0xa3302b, 0x822021, 0x862021, 0xace40000, 
-0xace50004, 0x8ee30608, 0x24020008, 0xa4e2000e, 
-0x2402000d, 0xace20018, 0xace9001c, 0x318c0, 
-0x2463060c, 0x2e31021, 0xace20008, 0x8ee204c4, 
-0xace20010, 0xaf880120, 0x92e24e20, 0x14400037, 
-0x24060001, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c830000, 0x24020007, 0x1462001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x24030040, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee54e30, 0x24420001, 0x10430007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10a20005, 
-0x0, 0x800118a, 0x0, 0x14a00005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400013, 
-0xac800000, 0x80011a0, 0x0, 0x8ee24e30, 
-0x24030040, 0x24420001, 0x50430003, 0x1021, 
-0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x24020007, 
-0xac820000, 0x24020001, 0xac820004, 0x54c0000c, 
-0xaee90608, 0x3c040001, 0x248451c8, 0xafa00010, 
-0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009, 
-0xc002403, 0x34a5f000, 0x8001223, 0x0, 
-0x8f830120, 0x27623800, 0x24660020, 0xc2102b, 
-0x50400001, 0x27663000, 0x8f820128, 0x10c20004, 
-0x0, 0x8f820124, 0x14c20007, 0x0, 
-0x8ee201a4, 0x3021, 0x24420001, 0xaee201a4, 
-0x8001207, 0x8ee201a4, 0x8ee20608, 0xac62001c, 
-0x8ee404a0, 0x8ee504a4, 0x2462001c, 0xac620008, 
-0x24020008, 0xa462000e, 0x24020011, 0xac620018, 
-0xac640000, 0xac650004, 0x8ee204c4, 0xac620010, 
-0xaf860120, 0x92e24e20, 0x14400037, 0x24060001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c830000, 0x24020012, 0x1462001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x24030040, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee54e30, 0x24420001, 0x10430007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10a20005, 0x0, 
-0x80011f1, 0x0, 0x14a00005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400013, 0xac800000, 
-0x8001207, 0x0, 0x8ee24e30, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x24020012, 0xac820000, 
-0x24020001, 0xac820004, 0x14c0001b, 0x0, 
-0x3c040001, 0x248451d0, 0xafa00010, 0xafa00014, 
-0x8ee60608, 0x8f470228, 0x3c050009, 0xc002403, 
-0x34a5f001, 0x8ee201b0, 0x24420001, 0xaee201b0, 
-0x8001223, 0x8ee201b0, 0x3c040001, 0x248451dc, 
-0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009, 
-0xc002403, 0x34a5f005, 0x8ee201ac, 0x24420001, 
-0xaee201ac, 0x8ee201ac, 0x8ee20160, 0x3c040001, 
-0x248451e8, 0x3405f001, 0x24420001, 0xaee20160, 
-0x8ee20160, 0x3021, 0x3821, 0xafa00010, 
-0xc002403, 0xafa00014, 0x8001238, 0x0, 
-0x3c020001, 0x2442f5a8, 0x21100, 0x21182, 
-0x431025, 0x3c010001, 0xac221278, 0x96e2045a, 
-0x30420003, 0x10400025, 0x3c050fff, 0x8ee204c8, 
-0x34a5ffff, 0x34420a00, 0xaee204c8, 0x8ee304c8, 
-0x3c040001, 0x248451f4, 0x24020001, 0xa2e204ec, 
-0xa2e204ed, 0x3c020002, 0x621825, 0x3c020001, 
-0x2442a390, 0x451024, 0x21082, 0xaee304c8, 
-0x3c030800, 0x431025, 0x3c010001, 0xac221220, 
-0x3c020001, 0x2442add4, 0x451024, 0x21082, 
-0x431025, 0x3c010001, 0xac221280, 0x96e6045a, 
-0x3821, 0x24050011, 0xafa00010, 0xc002403, 
-0xafa00014, 0x8001268, 0x0, 0x3c020001, 
-0x2442a9d4, 0x21100, 0x21182, 0x3c030800, 
-0x431025, 0x3c010001, 0xac221280, 0x96e2046a, 
-0x30420010, 0x14400009, 0x0, 0x96e2047a, 
-0x30420010, 0x10400112, 0x0, 0x96e2046a, 
-0x30420010, 0x10400005, 0x3c020700, 0x96e2047a, 
-0x30420010, 0x14400102, 0x3c020700, 0x34423000, 
-0xafa20018, 0x8ee20608, 0x8f430228, 0x24420001, 
-0x304900ff, 0x512300e2, 0xafa00010, 0x8ee20608, 
-0x210c0, 0x571021, 0x8fa30018, 0x8fa4001c, 
-0xac43060c, 0xac440610, 0x8f870120, 0x27623800, 
-0x24e80020, 0x102102b, 0x50400001, 0x27683000, 
-0x8f820128, 0x11020004, 0x0, 0x8f820124, 
-0x15020007, 0x1021, 0x8ee201a4, 0x3021, 
-0x24420001, 0xaee201a4, 0x80012ea, 0x8ee201a4, 
-0x8ee40608, 0x420c0, 0x801821, 0x8ee40430, 
-0x8ee50434, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xace40000, 0xace50004, 0x8ee30608, 
-0x24020008, 0xa4e2000e, 0x2402000d, 0xace20018, 
-0xace9001c, 0x318c0, 0x2463060c, 0x2e31021, 
-0xace20008, 0x8ee204c4, 0xace20010, 0xaf880120, 
-0x92e24e20, 0x14400037, 0x24060001, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c830000, 
-0x24020007, 0x1462001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x24030040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee54e30, 
-0x24420001, 0x10430007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10a20005, 0x0, 0x80012d4, 
-0x0, 0x14a00005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x80012ea, 
-0x0, 0x8ee24e30, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x24020007, 0xac820000, 0x24020001, 
-0xac820004, 0x54c0000c, 0xaee90608, 0x3c040001, 
-0x248451c8, 0xafa00010, 0xafa00014, 0x8ee60608, 
-0x8f470228, 0x3c050009, 0xc002403, 0x34a5f000, 
-0x800136d, 0x0, 0x8f830120, 0x27623800, 
-0x24660020, 0xc2102b, 0x50400001, 0x27663000, 
-0x8f820128, 0x10c20004, 0x0, 0x8f820124, 
-0x14c20007, 0x0, 0x8ee201a4, 0x3021, 
-0x24420001, 0xaee201a4, 0x8001351, 0x8ee201a4, 
-0x8ee20608, 0xac62001c, 0x8ee404a0, 0x8ee504a4, 
-0x2462001c, 0xac620008, 0x24020008, 0xa462000e, 
-0x24020011, 0xac620018, 0xac640000, 0xac650004, 
-0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20, 
-0x14400037, 0x24060001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c830000, 0x24020012, 
-0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34, 
-0x1062001b, 0x24030040, 0x8c820004, 0x24420001, 
-0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001, 
-0x10430007, 0x0, 0x8ee24e34, 0x24420001, 
-0x10a20005, 0x0, 0x800133b, 0x0, 
-0x14a00005, 0x0, 0x8f820128, 0x24420020, 
-0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011, 
-0x50400013, 0xac800000, 0x8001351, 0x0, 
-0x8ee24e30, 0x24030040, 0x24420001, 0x50430003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x24020012, 0xac820000, 0x24020001, 0xac820004, 
-0x14c0001b, 0x0, 0x3c040001, 0x248451d0, 
-0xafa00010, 0xafa00014, 0x8ee60608, 0x8f470228, 
-0x3c050009, 0xc002403, 0x34a5f001, 0x8ee201b0, 
-0x24420001, 0xaee201b0, 0x800136d, 0x8ee201b0, 
-0x3c040001, 0x248451dc, 0xafa00014, 0x8ee60608, 
-0x8f470228, 0x3c050009, 0xc002403, 0x34a5f005, 
-0x8ee201ac, 0x24420001, 0xaee201ac, 0x8ee201ac, 
-0x8ee20160, 0x3c040001, 0x248451e8, 0x3405f002, 
-0x24420001, 0xaee20160, 0x8ee20160, 0x3021, 
-0x3821, 0xafa00010, 0xc002403, 0xafa00014, 
-0x96e6047a, 0x96e7046a, 0x3c040001, 0x24845200, 
-0x24050012, 0xafa00010, 0xc002403, 0xafa00014, 
-0xc004500, 0x0, 0xc002318, 0x0, 
-0x3c060001, 0x34c63800, 0xaee00608, 0xaf400228, 
-0xaf40022c, 0x96e30458, 0x8ee40000, 0x3c0512d8, 
-0x34a5c358, 0x27623800, 0xaee27258, 0x27623800, 
-0xaee27260, 0x27623800, 0xaee27264, 0x3661021, 
-0xaee27270, 0x2402ffff, 0xaee004d4, 0xaee004e0, 
-0xaee004e4, 0xaee004f0, 0xa2e004f4, 0xaee00e0c, 
-0xaee00e18, 0xaee00e10, 0xaee00e14, 0xaee00e1c, 
-0xaee0724c, 0xaee05244, 0xaee05240, 0xaee0523c, 
-0xaee07250, 0xaee07254, 0xaee0725c, 0xaee07268, 
-0xaee004d0, 0x2463ffff, 0x852025, 0xaee304f8, 
-0xaee40000, 0xaf800060, 0xaf820064, 0x3c020100, 
-0xafa20018, 0x8ee20608, 0x8f430228, 0x24420001, 
-0x304900ff, 0x512300e2, 0xafa00010, 0x8ee20608, 
-0x210c0, 0x571021, 0x8fa30018, 0x8fa4001c, 
-0xac43060c, 0xac440610, 0x8f870120, 0x27623800, 
-0x24e80020, 0x102102b, 0x50400001, 0x27683000, 
-0x8f820128, 0x11020004, 0x0, 0x8f820124, 
-0x15020007, 0x1021, 0x8ee201a4, 0x3021, 
-0x24420001, 0xaee201a4, 0x8001422, 0x8ee201a4, 
-0x8ee40608, 0x420c0, 0x801821, 0x8ee40430, 
-0x8ee50434, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xace40000, 0xace50004, 0x8ee30608, 
-0x24020008, 0xa4e2000e, 0x2402000d, 0xace20018, 
-0xace9001c, 0x318c0, 0x2463060c, 0x2e31021, 
-0xace20008, 0x8ee204c4, 0xace20010, 0xaf880120, 
-0x92e24e20, 0x14400037, 0x24060001, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c830000, 
-0x24020007, 0x1462001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x24030040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee54e30, 
-0x24420001, 0x10430007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10a20005, 0x0, 0x800140c, 
-0x0, 0x14a00005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x8001422, 
-0x0, 0x8ee24e30, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x24020007, 0xac820000, 0x24020001, 
-0xac820004, 0x54c0000c, 0xaee90608, 0x3c040001, 
-0x248451c8, 0xafa00010, 0xafa00014, 0x8ee60608, 
-0x8f470228, 0x3c050009, 0xc002403, 0x34a5f000, 
-0x80014a5, 0x0, 0x8f830120, 0x27623800, 
-0x24660020, 0xc2102b, 0x50400001, 0x27663000, 
-0x8f820128, 0x10c20004, 0x0, 0x8f820124, 
-0x14c20007, 0x0, 0x8ee201a4, 0x3021, 
-0x24420001, 0xaee201a4, 0x8001489, 0x8ee201a4, 
-0x8ee20608, 0xac62001c, 0x8ee404a0, 0x8ee504a4, 
-0x2462001c, 0xac620008, 0x24020008, 0xa462000e, 
-0x24020011, 0xac620018, 0xac640000, 0xac650004, 
-0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20, 
-0x14400037, 0x24060001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c830000, 0x24020012, 
-0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34, 
-0x1062001b, 0x24030040, 0x8c820004, 0x24420001, 
-0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001, 
-0x10430007, 0x0, 0x8ee24e34, 0x24420001, 
-0x10a20005, 0x0, 0x8001473, 0x0, 
-0x14a00005, 0x0, 0x8f820128, 0x24420020, 
-0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011, 
-0x50400013, 0xac800000, 0x8001489, 0x0, 
-0x8ee24e30, 0x24030040, 0x24420001, 0x50430003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x24020012, 0xac820000, 0x24020001, 0xac820004, 
-0x14c0001b, 0x0, 0x3c040001, 0x248451d0, 
-0xafa00010, 0xafa00014, 0x8ee60608, 0x8f470228, 
-0x3c050009, 0xc002403, 0x34a5f001, 0x8ee201b0, 
-0x24420001, 0xaee201b0, 0x80014a5, 0x8ee201b0, 
-0x3c040001, 0x248451dc, 0xafa00014, 0x8ee60608, 
-0x8f470228, 0x3c050009, 0xc002403, 0x34a5f005, 
-0x8ee201ac, 0x24420001, 0xaee201ac, 0x8ee201ac, 
-0x8ee20154, 0x24420001, 0xaee20154, 0xc0014dc, 
-0x8ee20154, 0x8f8200a0, 0x30420004, 0x1440fffd, 
-0x0, 0x8f820040, 0x30420001, 0x14400008, 
-0x0, 0x8f430104, 0x24020001, 0x10620004, 
-0x0, 0x8f420264, 0x10400006, 0x0, 
-0x8ee2017c, 0x24420001, 0xaee2017c, 0x80014c5, 
-0x8ee2017c, 0x8f820044, 0x34420004, 0xaf820044, 
-0x8ee20178, 0x24420001, 0xaee20178, 0x8ee20178, 
-0x8f8200d8, 0x8f8300d4, 0x431023, 0xaee2726c, 
-0x8ee2726c, 0x1c400003, 0x3c030001, 0x431021, 
-0xaee2726c, 0xc004064, 0x0, 0xc004440, 
-0xaf800228, 0x8fbf0024, 0x8fb00020, 0x3e00008, 
-0x27bd0028, 0x3e00008, 0x0, 0x3e00008, 
-0x0, 0x0, 0x0, 0x2402002c, 
-0xaf820050, 0xaee07274, 0x8f420238, 0xaee27278, 
-0x8f820054, 0x24420067, 0xaf820058, 0xaee07b88, 
-0xaee07b8c, 0xaee07b84, 0x3c010001, 0x370821, 
-0xac2083bc, 0x3c010001, 0x370821, 0x3e00008, 
-0xa02083b9, 0x27bdffd8, 0xafbf0024, 0xafb00020, 
-0x8f820054, 0x3c030001, 0x8c635cd8, 0x24420067, 
-0x1060000d, 0xaf820058, 0x3c020001, 0x571021, 
-0x904283b8, 0x10400005, 0x3c030200, 0x3c010001, 
-0x370821, 0x8001503, 0xa02083b8, 0x8ee20000, 
-0x431025, 0xaee20000, 0x8f420218, 0x30420100, 
-0x104000c6, 0x0, 0x8f8200b0, 0x30420004, 
-0x104000c2, 0x0, 0x3c030001, 0x771821, 
-0x8c6383d0, 0x8f820104, 0x146200b4, 0x0, 
-0x3c030001, 0x771821, 0x8c6383d4, 0x8f8200b4, 
-0x146200ae, 0x0, 0x8f8200b0, 0x3c030080, 
-0x431024, 0x1040000d, 0x0, 0x8f82011c, 
-0x34420002, 0xaf82011c, 0x8f8200b0, 0x2403fffb, 
-0x431024, 0xaf8200b0, 0x8f82011c, 0x2403fffd, 
-0x431024, 0x80015cc, 0xaf82011c, 0x3c030001, 
-0x771821, 0x8c6383d0, 0x8f820104, 0x14620082, 
-0x0, 0x3c030001, 0x771821, 0x8c6383d4, 
-0x8f8200b4, 0x1462007c, 0x0, 0x3c070001, 
-0xf73821, 0x8ce783d0, 0x8f8200b0, 0x3c040001, 
-0x24845270, 0xafa00014, 0xafa20010, 0x8f8600b0, 
-0x3c050005, 0xc002403, 0x34a50900, 0x8f82011c, 
-0x34420002, 0xaf82011c, 0x8f830104, 0x8f8200b0, 
-0x34420001, 0xaf8200b0, 0xaf830104, 0x8f830120, 
-0x27623800, 0x24660020, 0xc2102b, 0x50400001, 
-0x27663000, 0x8f820128, 0x10c20004, 0x0, 
-0x8f820124, 0x14c20006, 0x0, 0x8ee201a4, 
-0x24420001, 0xaee201a4, 0x80015a0, 0x8ee201a4, 
-0x8f440208, 0x8f45020c, 0x26e20030, 0xac620008, 
-0x24020400, 0xa462000e, 0x2402000f, 0xac620018, 
-0xac60001c, 0xac640000, 0xac650004, 0x8ee204c4, 
-0xac620010, 0xaf860120, 0x92e24e20, 0x14400037, 
-0x0, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c830000, 0x24020007, 0x1462001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x24030040, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee54e30, 0x24420001, 0x10430007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10a20005, 
-0x0, 0x800158a, 0x0, 0x14a00005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400013, 
-0xac800000, 0x80015a0, 0x0, 0x8ee24e30, 
-0x24030040, 0x24420001, 0x50430003, 0x1021, 
-0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x24020007, 
-0xac820000, 0x24020001, 0xac820004, 0x8f82011c, 
-0x2403fffd, 0x431024, 0xaf82011c, 0x8ee201e4, 
-0x3c070001, 0xf73821, 0x8ce783d0, 0x24420001, 
-0xaee201e4, 0x8ee201e4, 0x3c040001, 0x2484527c, 
-0x80015bd, 0xafa00010, 0x8f820104, 0x3c010001, 
-0x370821, 0xac2283d0, 0x8f8200b4, 0x3c070001, 
-0xf73821, 0x8ce783d0, 0x3c040001, 0x24845284, 
-0x3c010001, 0x370821, 0xac2283d4, 0xafa00010, 
-0xafa00014, 0x8f8600b0, 0x3c050005, 0xc002403, 
-0x34a50900, 0x80015cc, 0x0, 0x8f820104, 
-0x3c010001, 0x370821, 0xac2283d0, 0x8f8200b4, 
-0x3c010001, 0x370821, 0xac2283d4, 0x8ee27274, 
-0x92e304f4, 0x24420067, 0x14600006, 0xaee27274, 
-0x8ee27274, 0x8f430234, 0x43102b, 0x1440007b, 
-0x0, 0x8ee304e4, 0x8ee204f8, 0x14620004, 
-0x0, 0x92e204f4, 0x50400074, 0xa2e004f4, 
-0x8f830120, 0x27623800, 0x24660020, 0xc2102b, 
-0x50400001, 0x27663000, 0x8f820128, 0x10c20004, 
-0x0, 0x8f820124, 0x14c20007, 0x0, 
-0x8ee201a4, 0x8021, 0x24420001, 0xaee201a4, 
-0x8001637, 0x8ee201a4, 0x8ee204e4, 0xac62001c, 
-0x8ee404b0, 0x8ee504b4, 0x2462001c, 0xac620008, 
-0x24020008, 0xa462000e, 0x24020011, 0xac620018, 
-0xac640000, 0xac650004, 0x8ee204c4, 0xac620010, 
-0xaf860120, 0x92e24e20, 0x14400037, 0x24100001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c830000, 0x24020012, 0x1462001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x24030040, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee54e30, 0x24420001, 0x10430007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10a20005, 0x0, 
-0x8001621, 0x0, 0x14a00005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400013, 0xac800000, 
-0x8001637, 0x0, 0x8ee24e30, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x24020012, 0xac820000, 
-0x24020001, 0xac820004, 0x5600000b, 0x24100001, 
-0x8ee204e4, 0x3c040001, 0x2484528c, 0xafa00014, 
-0xafa20010, 0x8ee60608, 0x8f470228, 0x3c050009, 
-0xc002403, 0x34a5f006, 0x16000003, 0x24020001, 
-0x8001650, 0xa2e204f4, 0x8ee20170, 0x24420001, 
-0xaee20170, 0x8ee20170, 0x8ee204e4, 0xa2e004f4, 
-0xaee004f0, 0xaee07274, 0xaee204f8, 0x8ee20e1c, 
-0x1040006d, 0x0, 0x8f830120, 0x27623800, 
-0x24660020, 0xc2102b, 0x50400001, 0x27663000, 
-0x8f820128, 0x10c20004, 0x0, 0x8f820124, 
-0x14c20007, 0x0, 0x8ee201a4, 0x8021, 
-0x24420001, 0xaee201a4, 0x80016ad, 0x8ee201a4, 
-0x8ee2724c, 0xac62001c, 0x8ee404a8, 0x8ee504ac, 
-0x2462001c, 0xac620008, 0x24020008, 0xa462000e, 
-0x24020011, 0xac620018, 0xac640000, 0xac650004, 
-0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20, 
-0x14400037, 0x24100001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c830000, 0x24020012, 
-0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34, 
-0x1062001b, 0x24030040, 0x8c820004, 0x24420001, 
-0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001, 
-0x10430007, 0x0, 0x8ee24e34, 0x24420001, 
-0x10a20005, 0x0, 0x8001697, 0x0, 
-0x14a00005, 0x0, 0x8f820128, 0x24420020, 
-0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011, 
-0x50400013, 0xac800000, 0x80016ad, 0x0, 
-0x8ee24e30, 0x24030040, 0x24420001, 0x50430003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x24020012, 0xac820000, 0x24020001, 0xac820004, 
-0x5600000b, 0x24100001, 0x8ee2724c, 0x3c040001, 
-0x24845298, 0xafa00014, 0xafa20010, 0x8ee6724c, 
-0x8f470280, 0x3c050009, 0xc002403, 0x34a5f008, 
-0x56000001, 0xaee00e1c, 0x8ee20174, 0x24420001, 
-0xaee20174, 0x8ee20174, 0x8ee24e24, 0x10400019, 
-0x0, 0xaee04e24, 0x8f820040, 0x30420001, 
-0x14400008, 0x0, 0x8f430104, 0x24020001, 
-0x10620004, 0x0, 0x8f420264, 0x10400006, 
-0x0, 0x8ee2017c, 0x24420001, 0xaee2017c, 
-0x80016da, 0x8ee2017c, 0x8f820044, 0x34420004, 
-0xaf820044, 0x8ee20178, 0x24420001, 0xaee20178, 
-0x8ee20178, 0x8ee27278, 0x2442ff99, 0xaee27278, 
-0x8ee27278, 0x1c4002ad, 0x0, 0x8f420238, 
-0x104002aa, 0x0, 0x3c020001, 0x571021, 
-0x904283e0, 0x144002a5, 0x0, 0x8f420080, 
-0xaee2004c, 0x8f4200c0, 0xaee20048, 0x8f420084, 
-0xaee20038, 0x8f420084, 0xaee20244, 0x8f420088, 
-0xaee20248, 0x8f42008c, 0xaee2024c, 0x8f420090, 
-0xaee20250, 0x8f420094, 0xaee20254, 0x8f420098, 
-0xaee20258, 0x8f42009c, 0xaee2025c, 0x8f4200a0, 
-0xaee20260, 0x8f4200a4, 0xaee20264, 0x8f4200a8, 
-0xaee20268, 0x8f4200ac, 0xaee2026c, 0x8f4200b0, 
-0xaee20270, 0x8f4200b4, 0xaee20274, 0x8f4200b8, 
-0xaee20278, 0x8f4200bc, 0x24040001, 0xaee2027c, 
-0xaee0003c, 0x41080, 0x571021, 0x8ee3003c, 
-0x8c420244, 0x24840001, 0x621821, 0x2c82000f, 
-0xaee3003c, 0x1440fff8, 0x41080, 0x8f4200cc, 
-0xaee20050, 0x8f4200d0, 0xaee20054, 0x8f830120, 
-0x27623800, 0x24660020, 0xc2102b, 0x50400001, 
-0x27663000, 0x8f820128, 0x10c20004, 0x0, 
-0x8f820124, 0x14c20007, 0x0, 0x8ee201a4, 
-0x8021, 0x24420001, 0xaee201a4, 0x8001775, 
-0x8ee201a4, 0x8f440208, 0x8f45020c, 0x26e20030, 
-0xac620008, 0x24020400, 0xa462000e, 0x2402000f, 
-0xac620018, 0xac60001c, 0xac640000, 0xac650004, 
-0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20, 
-0x14400037, 0x24100001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c830000, 0x24020007, 
-0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34, 
-0x1062001b, 0x24030040, 0x8c820004, 0x24420001, 
-0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001, 
-0x10430007, 0x0, 0x8ee24e34, 0x24420001, 
-0x10a20005, 0x0, 0x800175f, 0x0, 
-0x14a00005, 0x0, 0x8f820128, 0x24420020, 
-0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011, 
-0x50400013, 0xac800000, 0x8001775, 0x0, 
-0x8ee24e30, 0x24030040, 0x24420001, 0x50430003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x24020007, 0xac820000, 0x24020001, 0xac820004, 
-0x12000212, 0x3c020400, 0xafa20018, 0x3c020001, 
-0x571021, 0x904283b0, 0x1040010b, 0x0, 
-0x8ee20608, 0x8f430228, 0x24420001, 0x304a00ff, 
-0x514300fd, 0xafa00010, 0x8ee20608, 0x210c0, 
-0x571021, 0x8fa30018, 0x8fa4001c, 0xac43060c, 
-0xac440610, 0x8f830054, 0x8f820054, 0x24690032, 
-0x1221023, 0x2c420033, 0x1040006a, 0x5821, 
-0x24180008, 0x240f000d, 0x240d0007, 0x240c0040, 
-0x240e0001, 0x8f870120, 0x27623800, 0x24e80020, 
-0x102102b, 0x50400001, 0x27683000, 0x8f820128, 
-0x11020004, 0x0, 0x8f820124, 0x15020007, 
-0x1021, 0x8ee201a4, 0x8021, 0x24420001, 
-0xaee201a4, 0x80017f3, 0x8ee201a4, 0x8ee40608, 
-0x420c0, 0x801821, 0x8ee40430, 0x8ee50434, 
-0xa32821, 0xa3302b, 0x822021, 0x862021, 
-0xace40000, 0xace50004, 0x8ee20608, 0xa4f8000e, 
-0xacef0018, 0xacea001c, 0x210c0, 0x2442060c, 
-0x2e21021, 0xace20008, 0x8ee204c4, 0xace20010, 
-0xaf880120, 0x92e24e20, 0x14400033, 0x24100001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c820000, 0x144d001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x104c0007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x80017e0, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400010, 0xac800000, 0x80017f3, 
-0x0, 0x8ee24e30, 0x24420001, 0x504c0003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0xac8d0000, 0xac8e0004, 0x56000006, 0x240b0001, 
-0x8f820054, 0x1221023, 0x2c420033, 0x1440ff9d, 
-0x0, 0x316300ff, 0x24020001, 0x14620077, 
-0x3c050009, 0xaeea0608, 0x8f830054, 0x8f820054, 
-0x24690032, 0x1221023, 0x2c420033, 0x10400061, 
-0x5821, 0x240d0008, 0x240c0011, 0x24080012, 
-0x24070040, 0x240a0001, 0x8f830120, 0x27623800, 
-0x24660020, 0xc2102b, 0x50400001, 0x27663000, 
-0x8f820128, 0x10c20004, 0x0, 0x8f820124, 
-0x14c20007, 0x0, 0x8ee201a4, 0x8021, 
-0x24420001, 0xaee201a4, 0x800185f, 0x8ee201a4, 
-0x8ee20608, 0xac62001c, 0x8ee404a0, 0x8ee504a4, 
-0x2462001c, 0xac620008, 0xa46d000e, 0xac6c0018, 
-0xac640000, 0xac650004, 0x8ee204c4, 0xac620010, 
-0xaf860120, 0x92e24e20, 0x14400033, 0x24100001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c820000, 0x1448001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x10470007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x800184c, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400010, 0xac800000, 0x800185f, 
-0x0, 0x8ee24e30, 0x24420001, 0x50470003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0xac880000, 0xac8a0004, 0x56000006, 0x240b0001, 
-0x8f820054, 0x1221023, 0x2c420033, 0x1440ffa6, 
-0x0, 0x316300ff, 0x24020001, 0x14620003, 
-0x3c050009, 0x800197c, 0x24100001, 0x3c040001, 
-0x248452a4, 0xafa00010, 0xafa00014, 0x8f860120, 
-0x8f870124, 0x800187b, 0x34a5f011, 0x3c040001, 
-0x248452b0, 0xafa00010, 0xafa00014, 0x8f860120, 
-0x8f870124, 0x34a5f010, 0xc002403, 0x8021, 
-0x800197c, 0x0, 0x3c040001, 0x248452bc, 
-0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009, 
-0x8001975, 0x34a5f00f, 0x8ee20608, 0x8f430228, 
-0x24420001, 0x304900ff, 0x512300e2, 0xafa00010, 
-0x8ee20608, 0x210c0, 0x571021, 0x8fa30018, 
-0x8fa4001c, 0xac43060c, 0xac440610, 0x8f870120, 
-0x27623800, 0x24e80020, 0x102102b, 0x50400001, 
-0x27683000, 0x8f820128, 0x11020004, 0x0, 
-0x8f820124, 0x15020007, 0x1021, 0x8ee201a4, 
-0x8021, 0x24420001, 0xaee201a4, 0x80018f7, 
-0x8ee201a4, 0x8ee40608, 0x420c0, 0x801821, 
-0x8ee40430, 0x8ee50434, 0xa32821, 0xa3302b, 
-0x822021, 0x862021, 0xace40000, 0xace50004, 
-0x8ee30608, 0x24020008, 0xa4e2000e, 0x2402000d, 
-0xace20018, 0xace9001c, 0x318c0, 0x2463060c, 
-0x2e31021, 0xace20008, 0x8ee204c4, 0xace20010, 
-0xaf880120, 0x92e24e20, 0x14400037, 0x24100001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c830000, 0x24020007, 0x1462001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x24030040, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee54e30, 0x24420001, 0x10430007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10a20005, 0x0, 
-0x80018e1, 0x0, 0x14a00005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400013, 0xac800000, 
-0x80018f7, 0x0, 0x8ee24e30, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x24020007, 0xac820000, 
-0x24020001, 0xac820004, 0x5600000c, 0xaee90608, 
-0x3c040001, 0x248452c8, 0xafa00010, 0xafa00014, 
-0x8ee60608, 0x8f470228, 0x3c050009, 0xc002403, 
-0x34a5f000, 0x800197c, 0x0, 0x8f830120, 
-0x27623800, 0x24660020, 0xc2102b, 0x50400001, 
-0x27663000, 0x8f820128, 0x10c20004, 0x0, 
-0x8f820124, 0x14c20007, 0x0, 0x8ee201a4, 
-0x8021, 0x24420001, 0xaee201a4, 0x800195e, 
-0x8ee201a4, 0x8ee20608, 0xac62001c, 0x8ee404a0, 
-0x8ee504a4, 0x2462001c, 0xac620008, 0x24020008, 
-0xa462000e, 0x24020011, 0xac620018, 0xac640000, 
-0xac650004, 0x8ee204c4, 0xac620010, 0xaf860120, 
-0x92e24e20, 0x14400037, 0x24100001, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c830000, 
-0x24020012, 0x1462001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x24030040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee54e30, 
-0x24420001, 0x10430007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10a20005, 0x0, 0x8001948, 
-0x0, 0x14a00005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x800195e, 
-0x0, 0x8ee24e30, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x24020012, 0xac820000, 0x24020001, 
-0xac820004, 0x5600001d, 0x24100001, 0x3c040001, 
-0x248452d0, 0xafa00010, 0xafa00014, 0x8ee60608, 
-0x8f470228, 0x3c050009, 0xc002403, 0x34a5f001, 
-0x8ee201b0, 0x24420001, 0xaee201b0, 0x800197c, 
-0x8ee201b0, 0x3c040001, 0x248452dc, 0xafa00014, 
-0x8ee60608, 0x8f470228, 0x3c050009, 0x34a5f005, 
-0xc002403, 0x0, 0x8ee201ac, 0x8021, 
-0x24420001, 0xaee201ac, 0x8ee201ac, 0x1200000c, 
-0x24020001, 0x3c010001, 0x370821, 0xa02083b0, 
-0x8f420238, 0x8ee30158, 0x24630001, 0xaee30158, 
-0x8ee30158, 0x800198c, 0xaee27278, 0x24020001, 
-0x3c010001, 0x370821, 0xa02283b0, 0x3c020001, 
-0x8c425cd8, 0x10400187, 0x0, 0x8ee27b84, 
-0x24430001, 0x284200c9, 0x144001a4, 0xaee37b84, 
-0x8ee204d4, 0x30420002, 0x14400119, 0xaee07b84, 
-0x8ee204d4, 0x3c030600, 0x34631000, 0x34420002, 
-0xaee204d4, 0xafa30018, 0x8ee20608, 0x8f430228, 
-0x24420001, 0x304a00ff, 0x514300fd, 0xafa00010, 
-0x8ee20608, 0x210c0, 0x571021, 0x8fa30018, 
-0x8fa4001c, 0xac43060c, 0xac440610, 0x8f830054, 
-0x8f820054, 0x24690032, 0x1221023, 0x2c420033, 
-0x1040006a, 0x5821, 0x24180008, 0x240f000d, 
-0x240d0007, 0x240c0040, 0x240e0001, 0x8f870120, 
-0x27623800, 0x24e80020, 0x102102b, 0x50400001, 
-0x27683000, 0x8f820128, 0x11020004, 0x0, 
-0x8f820124, 0x15020007, 0x1021, 0x8ee201a4, 
-0x8021, 0x24420001, 0xaee201a4, 0x8001a15, 
-0x8ee201a4, 0x8ee40608, 0x420c0, 0x801821, 
-0x8ee40430, 0x8ee50434, 0xa32821, 0xa3302b, 
-0x822021, 0x862021, 0xace40000, 0xace50004, 
-0x8ee20608, 0xa4f8000e, 0xacef0018, 0xacea001c, 
-0x210c0, 0x2442060c, 0x2e21021, 0xace20008, 
-0x8ee204c4, 0xace20010, 0xaf880120, 0x92e24e20, 
-0x14400033, 0x24100001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c820000, 0x144d001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x0, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee34e30, 0x24420001, 0x104c0007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10620005, 
-0x0, 0x8001a02, 0x0, 0x14600005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400010, 
-0xac800000, 0x8001a15, 0x0, 0x8ee24e30, 
-0x24420001, 0x504c0003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0xac8d0000, 0xac8e0004, 
-0x56000006, 0x240b0001, 0x8f820054, 0x1221023, 
-0x2c420033, 0x1440ff9d, 0x0, 0x316300ff, 
-0x24020001, 0x54620078, 0xafa00010, 0xaeea0608, 
-0x8f830054, 0x8f820054, 0x24690032, 0x1221023, 
-0x2c420033, 0x10400061, 0x5821, 0x240d0008, 
-0x240c0011, 0x24080012, 0x24070040, 0x240a0001, 
-0x8f830120, 0x27623800, 0x24660020, 0xc2102b, 
-0x50400001, 0x27663000, 0x8f820128, 0x10c20004, 
-0x0, 0x8f820124, 0x14c20007, 0x0, 
-0x8ee201a4, 0x8021, 0x24420001, 0xaee201a4, 
-0x8001a81, 0x8ee201a4, 0x8ee20608, 0xac62001c, 
-0x8ee404a0, 0x8ee504a4, 0x2462001c, 0xac620008, 
-0xa46d000e, 0xac6c0018, 0xac640000, 0xac650004, 
-0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20, 
-0x14400033, 0x24100001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c820000, 0x1448001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x0, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee34e30, 0x24420001, 0x10470007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10620005, 
-0x0, 0x8001a6e, 0x0, 0x14600005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400010, 
-0xac800000, 0x8001a81, 0x0, 0x8ee24e30, 
-0x24420001, 0x50470003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0xac880000, 0xac8a0004, 
-0x56000006, 0x240b0001, 0x8f820054, 0x1221023, 
-0x2c420033, 0x1440ffa6, 0x0, 0x316300ff, 
-0x24020001, 0x10620022, 0x0, 0x3c040001, 
-0x248452a4, 0xafa00010, 0xafa00014, 0x8f860120, 
-0x8f870124, 0x3c050009, 0xc002403, 0x34a5f011, 
-0x8001aad, 0x0, 0x3c040001, 0x248452b0, 
-0xafa00014, 0x8f860120, 0x8f870124, 0x3c050009, 
-0xc002403, 0x34a5f010, 0x8001aad, 0x0, 
-0x3c040001, 0x248452bc, 0xafa00014, 0x8ee60608, 
-0x8f470228, 0x3c050009, 0xc002403, 0x34a5f00f, 
-0x8ee201ac, 0x24420001, 0xaee201ac, 0x8ee201ac, 
-0x8ee2015c, 0x24420001, 0xaee2015c, 0x8ee2015c, 
-0x8ee204d4, 0x30420001, 0x10400055, 0x0, 
-0x8f420218, 0x30420080, 0x10400029, 0x0, 
-0x8f820044, 0x34420040, 0xaf820044, 0x8ee27b7c, 
-0x402821, 0x8ee200c0, 0x8ee300c4, 0x24060000, 
-0x2407ffff, 0x2021, 0x461024, 0x1444000d, 
-0x671824, 0x1465000b, 0x0, 0x8ee27b80, 
-0x402821, 0x8ee200e0, 0x8ee300e4, 0x2021, 
-0x461024, 0x14440003, 0x671824, 0x1065000b, 
-0x0, 0x8ee200c0, 0x8ee300c4, 0x8ee400e0, 
-0x8ee500e4, 0xaee37b7c, 0xaee57b80, 0x8f820044, 
-0x38420020, 0x8001b38, 0xaf820044, 0x8f820044, 
-0x2403ffdf, 0x431024, 0x8001b38, 0xaf820044, 
-0x8f820044, 0x2403ffdf, 0x431024, 0xaf820044, 
-0x8ee27b7c, 0x402821, 0x8ee200c0, 0x8ee300c4, 
-0x24060000, 0x2407ffff, 0x2021, 0x461024, 
-0x1444000d, 0x671824, 0x1465000b, 0x0, 
-0x8ee27b80, 0x402821, 0x8ee200e0, 0x8ee300e4, 
-0x2021, 0x461024, 0x14440003, 0x671824, 
-0x1065000b, 0x0, 0x8ee200c0, 0x8ee300c4, 
-0x8ee400e0, 0x8ee500e4, 0xaee37b7c, 0xaee57b80, 
-0x8f820044, 0x38420040, 0x8001b38, 0xaf820044, 
-0x8f820044, 0x34420040, 0x8001b38, 0xaf820044, 
-0x8f820044, 0x34420040, 0xaf820044, 0x8ee27b8c, 
-0x24430001, 0x28420015, 0x14400028, 0xaee37b8c, 
-0x8f820044, 0x38420020, 0xaf820044, 0x8001b38, 
-0xaee07b8c, 0x8ee204d4, 0x30420001, 0x10400011, 
-0x0, 0x8f420218, 0x30420080, 0x10400009, 
-0x0, 0x8f820044, 0x34420020, 0xaf820044, 
-0x8f820044, 0x2403ffbf, 0x431024, 0x8001b36, 
-0xaf820044, 0x8f820044, 0x34420060, 0x8001b36, 
-0xaf820044, 0x8f820044, 0x34420040, 0xaf820044, 
-0x8ee27b88, 0x24430001, 0x28421389, 0x14400005, 
-0xaee37b88, 0x8f820044, 0x38420020, 0xaf820044, 
-0xaee07b88, 0xc004603, 0x0, 0x8fbf0024, 
-0x8fb00020, 0x3e00008, 0x27bd0028, 0x27bdffb8, 
-0xafbf0044, 0xafb60040, 0xafb5003c, 0xafb40038, 
-0xafb30034, 0xafb20030, 0xafb1002c, 0xafb00028, 
-0x8f960064, 0x32c20004, 0x1040000c, 0x24020004, 
-0xaf820064, 0x8f420114, 0xaee204e0, 0x8f820060, 
-0x34420008, 0xaf820060, 0x8ee2016c, 0x24420001, 
-0xaee2016c, 0x80022f4, 0x8ee2016c, 0x32c20001, 
-0x10400004, 0x24020001, 0xaf820064, 0x80022f4, 
-0x0, 0x32c20002, 0x1440000c, 0x3c050003, 
-0x3c040001, 0x24845354, 0x34a50001, 0x2c03021, 
-0x3821, 0xafa00010, 0xc002403, 0xafa00014, 
-0x2402fff8, 0x80022f4, 0xaf820064, 0x8f43022c, 
-0x8f42010c, 0x5062000c, 0xafa00010, 0x8f42022c, 
-0x21080, 0x5a1021, 0x8c420300, 0xafa20020, 
-0x8f42022c, 0x24070001, 0x24420001, 0x3042003f, 
-0x8001b80, 0xaf42022c, 0x3c040001, 0x24845360, 
-0xafa00014, 0x8f46022c, 0x8f47010c, 0x3c050003, 
-0xc002403, 0x34a5f01f, 0x3821, 0x14e00003, 
-0x0, 0x80022ed, 0xaf960064, 0x93a20020, 
-0x2443ffff, 0x2c620011, 0x10400658, 0x31080, 
-0x3c010001, 0x220821, 0x8c225418, 0x400008, 
-0x0, 0x8fa20020, 0x30420fff, 0xaee20e0c, 
-0x8f820060, 0x34420200, 0xaf820060, 0x8ee20118, 
-0x24420001, 0xaee20118, 0x80022e8, 0x8ee20118, 
-0x8fa20020, 0x24030001, 0x3c010001, 0x370821, 
-0xa02383b1, 0x30420fff, 0xaee25238, 0x8f820060, 
-0x34420100, 0xaf820060, 0x8ee20144, 0x24420001, 
-0xaee20144, 0x80022e8, 0x8ee20144, 0x8fa20020, 
-0x21200, 0x22502, 0x24020001, 0x10820005, 
-0x24020002, 0x10820009, 0x2402fffe, 0x8001bc9, 
-0xafa00010, 0x8ee204d4, 0xaee40070, 0xaee40074, 
-0x34420001, 0x8001bbd, 0xaee204d4, 0x8ee304d4, 
-0xaee40070, 0xaee40074, 0x621824, 0xaee304d4, 
-0x8f840054, 0x41442, 0x41c82, 0x431021, 
-0x41cc2, 0x431023, 0x41d02, 0x431021, 
-0x41d42, 0x431023, 0x8001bd0, 0xaee20078, 
-0x3c040001, 0x2484536c, 0xafa00014, 0x8fa60020, 
-0x3c050003, 0xc002403, 0x34a50004, 0x8ee20110, 
-0x24420001, 0xaee20110, 0x80022e8, 0x8ee20110, 
-0x27440212, 0xc0022fe, 0x24050006, 0x3049001f, 
-0x920c0, 0x2e41021, 0x9442727c, 0x30424000, 
-0x1040000a, 0x971021, 0x97430212, 0xa443727e, 
-0x8f430214, 0x971021, 0xac437280, 0x2e41821, 
-0x34028000, 0x8001c79, 0xa462727c, 0x9443727e, 
-0x97420212, 0x14620006, 0x2e41021, 0x971021, 
-0x8c437280, 0x8f420214, 0x1062009f, 0x2e41021, 
-0x9442727c, 0x30428000, 0x1040002a, 0x2406ffff, 
-0x2021, 0x410c0, 0x2e21021, 0x9442737c, 
-0x30424000, 0x54400005, 0x803021, 0x24840001, 
-0x2c820080, 0x1440fff8, 0x410c0, 0x4c10010, 
-0x618c0, 0x610c0, 0x571821, 0x8c63737c, 
-0x571021, 0xafa30010, 0x8c427380, 0x3c040001, 
-0x24845378, 0xafa20014, 0x8f470214, 0x3c050003, 
-0xc002403, 0x34a50013, 0x8001c90, 0x3c020800, 
-0x97440212, 0x771021, 0xa444737e, 0x8f440214, 
-0x771021, 0x2e31821, 0xac447380, 0x34028000, 
-0xa462737c, 0x910c0, 0x2e21021, 0x8001c79, 
-0xa446727c, 0x2e41021, 0x9445727c, 0x8001c2e, 
-0x510c0, 0x9443737e, 0x97420212, 0x14620006, 
-0x510c0, 0x971021, 0x8c437380, 0x8f420214, 
-0x10620065, 0x510c0, 0x2e21021, 0x9445737c, 
-0x510c0, 0x2e21021, 0x9442737c, 0x30428000, 
-0x1040fff0, 0x971021, 0x520c0, 0x971021, 
-0x9443737e, 0x97420212, 0x14620006, 0x2406ffff, 
-0x971021, 0x8c437380, 0x8f420214, 0x10620053, 
-0x3c020800, 0x2021, 0x410c0, 0x2e21021, 
-0x9442737c, 0x30424000, 0x54400005, 0x803021, 
-0x24840001, 0x2c820080, 0x1440fff8, 0x410c0, 
-0x4c10023, 0x618c0, 0x910c0, 0x571821, 
-0x8c63727c, 0x571021, 0xafa30010, 0x8c427280, 
-0x3c040001, 0x24845384, 0xafa20014, 0x8f470214, 
-0x3c050003, 0xc002403, 0x34a5f017, 0x8001c90, 
-0x3c020800, 0x8f430210, 0xb71021, 0xac43777c, 
-0x8f430214, 0xb71021, 0xac437780, 0x3c020001, 
-0x571021, 0x8c4283b4, 0x24420001, 0x3c010001, 
-0x370821, 0xac2283b4, 0x3c030001, 0x771821, 
-0x8c6383b4, 0x2e51021, 0x8001c82, 0xa443777c, 
-0x97440212, 0x771021, 0xa444737e, 0x8f440214, 
-0x771021, 0x2e31821, 0xac447380, 0x34028000, 
-0xa462737c, 0x510c0, 0x2e21021, 0xa446737c, 
-0x2021, 0x428c0, 0x2e51021, 0x9442777c, 
-0x1040ffdc, 0x24840001, 0x2c820080, 0x5440fffa, 
-0x428c0, 0x92e204d8, 0x10400006, 0x24020001, 
-0x8ee304dc, 0x1221004, 0x621825, 0x8001c8f, 
-0xaee304dc, 0x8f830228, 0x24020001, 0x1221004, 
-0x621825, 0xaf830228, 0x3c020800, 0x34421000, 
-0xafa20018, 0x8ee20608, 0x8f430228, 0x24420001, 
-0x304a00ff, 0x514300fd, 0xafa00010, 0x8ee20608, 
-0x210c0, 0x571021, 0x8fa30018, 0x8fa4001c, 
-0xac43060c, 0xac440610, 0x8f830054, 0x8f820054, 
-0x24690032, 0x1221023, 0x2c420033, 0x1040006a, 
-0x5821, 0x24100008, 0x240f000d, 0x240d0007, 
-0x240c0040, 0x240e0001, 0x8f870120, 0x27623800, 
-0x24e80020, 0x102102b, 0x50400001, 0x27683000, 
-0x8f820128, 0x11020004, 0x0, 0x8f820124, 
-0x15020007, 0x1021, 0x8ee201a4, 0x3821, 
-0x24420001, 0xaee201a4, 0x8001d08, 0x8ee201a4, 
-0x8ee40608, 0x420c0, 0x801821, 0x8ee40430, 
-0x8ee50434, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xace40000, 0xace50004, 0x8ee20608, 
-0xa4f0000e, 0xacef0018, 0xacea001c, 0x210c0, 
-0x2442060c, 0x2e21021, 0xace20008, 0x8ee204c4, 
-0xace20010, 0xaf880120, 0x92e24e20, 0x14400033, 
-0x24070001, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c820000, 0x144d001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee34e30, 0x24420001, 0x104c0007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10620005, 0x0, 
-0x8001cf5, 0x0, 0x14600005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400010, 0xac800000, 
-0x8001d08, 0x0, 0x8ee24e30, 0x24420001, 
-0x504c0003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0xac8d0000, 0xac8e0004, 0x54e00006, 
-0x240b0001, 0x8f820054, 0x1221023, 0x2c420033, 
-0x1440ff9d, 0x0, 0x316300ff, 0x24020001, 
-0x54620078, 0xafa00010, 0xaeea0608, 0x8f830054, 
-0x8f820054, 0x24690032, 0x1221023, 0x2c420033, 
-0x10400061, 0x5821, 0x240e0008, 0x240d0011, 
-0x240a0012, 0x24080040, 0x240c0001, 0x8f830120, 
-0x27623800, 0x24660020, 0xc2102b, 0x50400001, 
-0x27663000, 0x8f820128, 0x10c20004, 0x0, 
-0x8f820124, 0x14c20007, 0x0, 0x8ee201a4, 
-0x3821, 0x24420001, 0xaee201a4, 0x8001d74, 
-0x8ee201a4, 0x8ee20608, 0xac62001c, 0x8ee404a0, 
-0x8ee504a4, 0x2462001c, 0xac620008, 0xa46e000e, 
-0xac6d0018, 0xac640000, 0xac650004, 0x8ee204c4, 
-0xac620010, 0xaf860120, 0x92e24e20, 0x14400033, 
-0x24070001, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c820000, 0x144a001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee34e30, 0x24420001, 0x10480007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10620005, 0x0, 
-0x8001d61, 0x0, 0x14600005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400010, 0xac800000, 
-0x8001d74, 0x0, 0x8ee24e30, 0x24420001, 
-0x50480003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0xac8a0000, 0xac8c0004, 0x54e00006, 
-0x240b0001, 0x8f820054, 0x1221023, 0x2c420033, 
-0x1440ffa6, 0x0, 0x316300ff, 0x24020001, 
-0x10620022, 0x0, 0x3c040001, 0x24845390, 
-0xafa00010, 0xafa00014, 0x8f860120, 0x8f870124, 
-0x3c050009, 0xc002403, 0x34a5f011, 0x8001da0, 
-0x0, 0x3c040001, 0x2484539c, 0xafa00014, 
-0x8f860120, 0x8f870124, 0x3c050009, 0xc002403, 
-0x34a5f010, 0x8001da0, 0x0, 0x3c040001, 
-0x248453a8, 0xafa00014, 0x8ee60608, 0x8f470228, 
-0x3c050009, 0xc002403, 0x34a5f00f, 0x8ee201ac, 
-0x24420001, 0xaee201ac, 0x8ee201ac, 0x8ee20124, 
-0x24420001, 0xaee20124, 0x8001f97, 0x8ee20124, 
-0x27440212, 0xc0022fe, 0x24050006, 0x3049001f, 
-0x928c0, 0x2e51021, 0x9442727c, 0x30428000, 
-0x1040002f, 0x2e51021, 0x9442727c, 0x30424000, 
-0x1440001c, 0xb71021, 0x9443727e, 0x97420212, 
-0x14620018, 0xb71021, 0x8c437280, 0x8f420214, 
-0x54620016, 0xafa20010, 0x92e204d8, 0x10400007, 
-0x24020001, 0x8ee304dc, 0x1221004, 0x21027, 
-0x621824, 0x8001dc9, 0xaee304dc, 0x8f830228, 
-0x1221004, 0x21027, 0x621824, 0xaf830228, 
-0x910c0, 0x2e21821, 0x3402c000, 0x8001e4e, 
-0xa462727c, 0x8f420214, 0xafa20010, 0x910c0, 
-0x571021, 0x8c42727c, 0x3c040001, 0x248453b4, 
-0x3c050003, 0xafa20014, 0x8f470210, 0x34a5f01c, 
-0xc002403, 0x1203021, 0x8001e83, 0x3c020800, 
-0xb71021, 0x9443727e, 0x97420212, 0x14620019, 
-0x918c0, 0xb71021, 0x8c437280, 0x8f420214, 
-0x14620014, 0x918c0, 0x2e51021, 0x9447727c, 
-0x720c0, 0x971021, 0x9443737e, 0xb71021, 
-0xa443727e, 0x971021, 0x8c437380, 0xb71021, 
-0xac437280, 0x2e41021, 0x9443737c, 0x2e51021, 
-0xa443727c, 0x2e41821, 0x3402c000, 0x8001e4e, 
-0xa462737c, 0x2e31021, 0x9447727c, 0x3021, 
-0x720c0, 0x2e41021, 0x9442737c, 0x4021, 
-0x30428000, 0x14400025, 0xe02821, 0x605021, 
-0x340bc000, 0x971021, 0x9443737e, 0x97420212, 
-0x54620015, 0xe02821, 0x971021, 0x8c437380, 
-0x8f420214, 0x54620010, 0xe02821, 0x11000006, 
-0x2e41021, 0x9443737c, 0x510c0, 0x2e21021, 
-0x8001e1a, 0xa443737c, 0x9443737c, 0x2ea1021, 
-0xa443727c, 0x710c0, 0x2e21021, 0xa44b737c, 
-0x8001e28, 0x24060001, 0x510c0, 0x2e21021, 
-0x9447737c, 0x720c0, 0x2e41021, 0x9442737c, 
-0x30428000, 0x1040ffdf, 0x25080001, 0x30c200ff, 
-0x14400025, 0x2021, 0x720c0, 0x971021, 
-0x9443737e, 0x97420212, 0x1462000f, 0x910c0, 
-0x971021, 0x8c437380, 0x8f420214, 0x1462000a, 
-0x910c0, 0x2e41821, 0x3402c000, 0x15000015, 
-0xa462737c, 0x910c0, 0x2e21821, 0x34028000, 
-0x8001e4e, 0xa462727c, 0x571021, 0x8c42727c, 
-0x3c040001, 0x248453c0, 0x3c050003, 0xafa20010, 
-0x710c0, 0x571021, 0x8c42737c, 0x34a5001e, 
-0x1203021, 0xc002403, 0xafa20014, 0x8001e83, 
-0x3c020800, 0x2021, 0x428c0, 0xb71021, 
-0x9443777e, 0x97420212, 0x5462002b, 0x24840001, 
-0xb71021, 0x8c437780, 0x8f420214, 0x54620026, 
-0x24840001, 0x3c020001, 0x571021, 0x8c4283b4, 
-0x2442ffff, 0x3c010001, 0x370821, 0xac2283b4, 
-0x3c020001, 0x571021, 0x8c4283b4, 0x809021, 
-0x242102b, 0x1040000e, 0x24b1777c, 0x24b07784, 
-0x2f02021, 0x2f12821, 0xc002490, 0x24060008, 
-0x26310008, 0x3c020001, 0x571021, 0x8c4283b4, 
-0x26520001, 0x242102b, 0x1440fff5, 0x26100008, 
-0x3c040001, 0x972021, 0x8c8483b4, 0x24050008, 
-0x420c0, 0x2484777c, 0xc002488, 0x2e42021, 
-0x8001e83, 0x3c020800, 0x2c820080, 0x1440ffcf, 
-0x428c0, 0x3c020800, 0x34422000, 0xafa20018, 
-0x8ee20608, 0x8f430228, 0x24420001, 0x304a00ff, 
-0x514300fd, 0xafa00010, 0x8ee20608, 0x210c0, 
-0x571021, 0x8fa30018, 0x8fa4001c, 0xac43060c, 
-0xac440610, 0x8f830054, 0x8f820054, 0x24690032, 
-0x1221023, 0x2c420033, 0x1040006a, 0x5821, 
-0x24100008, 0x240f000d, 0x240d0007, 0x240c0040, 
-0x240e0001, 0x8f870120, 0x27623800, 0x24e80020, 
-0x102102b, 0x50400001, 0x27683000, 0x8f820128, 
-0x11020004, 0x0, 0x8f820124, 0x15020007, 
-0x1021, 0x8ee201a4, 0x3821, 0x24420001, 
-0xaee201a4, 0x8001efb, 0x8ee201a4, 0x8ee40608, 
-0x420c0, 0x801821, 0x8ee40430, 0x8ee50434, 
-0xa32821, 0xa3302b, 0x822021, 0x862021, 
-0xace40000, 0xace50004, 0x8ee20608, 0xa4f0000e, 
-0xacef0018, 0xacea001c, 0x210c0, 0x2442060c, 
-0x2e21021, 0xace20008, 0x8ee204c4, 0xace20010, 
-0xaf880120, 0x92e24e20, 0x14400033, 0x24070001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c820000, 0x144d001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x104c0007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x8001ee8, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400010, 0xac800000, 0x8001efb, 
-0x0, 0x8ee24e30, 0x24420001, 0x504c0003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0xac8d0000, 0xac8e0004, 0x54e00006, 0x240b0001, 
-0x8f820054, 0x1221023, 0x2c420033, 0x1440ff9d, 
-0x0, 0x316300ff, 0x24020001, 0x54620078, 
-0xafa00010, 0xaeea0608, 0x8f830054, 0x8f820054, 
-0x24690032, 0x1221023, 0x2c420033, 0x10400061, 
-0x5821, 0x240e0008, 0x240d0011, 0x240a0012, 
-0x24080040, 0x240c0001, 0x8f830120, 0x27623800, 
-0x24660020, 0xc2102b, 0x50400001, 0x27663000, 
-0x8f820128, 0x10c20004, 0x0, 0x8f820124, 
-0x14c20007, 0x0, 0x8ee201a4, 0x3821, 
-0x24420001, 0xaee201a4, 0x8001f67, 0x8ee201a4, 
-0x8ee20608, 0xac62001c, 0x8ee404a0, 0x8ee504a4, 
-0x2462001c, 0xac620008, 0xa46e000e, 0xac6d0018, 
-0xac640000, 0xac650004, 0x8ee204c4, 0xac620010, 
-0xaf860120, 0x92e24e20, 0x14400033, 0x24070001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c820000, 0x144a001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x10480007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x8001f54, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400010, 0xac800000, 0x8001f67, 
-0x0, 0x8ee24e30, 0x24420001, 0x50480003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0xac8a0000, 0xac8c0004, 0x54e00006, 0x240b0001, 
-0x8f820054, 0x1221023, 0x2c420033, 0x1440ffa6, 
-0x0, 0x316300ff, 0x24020001, 0x10620022, 
-0x0, 0x3c040001, 0x24845390, 0xafa00010, 
-0xafa00014, 0x8f860120, 0x8f870124, 0x3c050009, 
-0xc002403, 0x34a5f011, 0x8001f93, 0x0, 
-0x3c040001, 0x2484539c, 0xafa00014, 0x8f860120, 
-0x8f870124, 0x3c050009, 0xc002403, 0x34a5f010, 
-0x8001f93, 0x0, 0x3c040001, 0x248453a8, 
-0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009, 
-0xc002403, 0x34a5f00f, 0x8ee201ac, 0x24420001, 
-0xaee201ac, 0x8ee201ac, 0x8ee20128, 0x24420001, 
-0xaee20128, 0x8ee20128, 0x8ee20164, 0x24420001, 
-0xaee20164, 0x80022e8, 0x8ee20164, 0x8fa20020, 
-0x21200, 0x21d02, 0x24020001, 0x10620005, 
-0x24020002, 0x1062000d, 0x0, 0x8001fb7, 
-0xafa00010, 0x92e204d8, 0x14400006, 0x24020001, 
-0x8f820228, 0xaee204dc, 0x2402ffff, 0xaf820228, 
-0x24020001, 0x8001fbe, 0xa2e204d8, 0x92e204d8, 
-0x5040000c, 0xa2e004d8, 0x8ee204dc, 0xaf820228, 
-0x8001fbe, 0xa2e004d8, 0x3c040001, 0x248453c8, 
-0xafa00014, 0x8fa60020, 0x3c050003, 0xc002403, 
-0x34a5f009, 0x8ee2013c, 0x24420001, 0xaee2013c, 
-0x80022e8, 0x8ee2013c, 0x8fa20020, 0x21200, 
-0x22502, 0x24020001, 0x10820005, 0x24020002, 
-0x1082000f, 0x0, 0x8001fe3, 0xafa00010, 
-0x8f820220, 0x3c0308ff, 0x3463ffff, 0x431024, 
-0x34420008, 0xaf820220, 0x24020001, 0x3c010001, 
-0x370821, 0xa02283b2, 0x8001fea, 0xaee40108, 
-0x8f820220, 0x3c0308ff, 0x3463fff7, 0x431024, 
-0xaf820220, 0x3c010001, 0x370821, 0xa02083b2, 
-0x8001fea, 0xaee40108, 0x3c040001, 0x248453d4, 
-0xafa00014, 0x8fa60020, 0x3c050003, 0xc002403, 
-0x34a5f00a, 0x8ee2012c, 0x24420001, 0xaee2012c, 
-0x80022e8, 0x8ee2012c, 0x8fa20020, 0x21200, 
-0x21d02, 0x24020001, 0x10620005, 0x24020002, 
-0x1062000e, 0x0, 0x8002011, 0xafa00010, 
-0x8f820220, 0x3c0308ff, 0x3463ffff, 0x431024, 
-0x34420008, 0xaf820220, 0x24020001, 0x3c010001, 
-0x370821, 0x8002018, 0xa02283b3, 0x3c020001, 
-0x571021, 0x904283b2, 0x3c010001, 0x370821, 
-0x1440000e, 0xa02083b3, 0x8f820220, 0x3c0308ff, 
-0x3463fff7, 0x431024, 0x8002018, 0xaf820220, 
-0x3c040001, 0x248453e0, 0xafa00014, 0x8fa60020, 
-0x3c050003, 0xc002403, 0x34a5f00b, 0x8ee20114, 
-0x24420001, 0xaee20114, 0x80022e8, 0x8ee20114, 
-0x27840208, 0x27450200, 0xc00249a, 0x24060008, 
-0x26e40094, 0x27450200, 0xc00249a, 0x24060008, 
-0x8ee20134, 0x24420001, 0xaee20134, 0x80022e8, 
-0x8ee20134, 0x8f460248, 0x2021, 0xc005108, 
-0x24050004, 0x8ee20130, 0x24420001, 0xaee20130, 
-0x80022e8, 0x8ee20130, 0x8ef301cc, 0x8ef401d0, 
-0x8ef501d8, 0x8ee20140, 0x26e40030, 0x24420001, 
-0xaee20140, 0x8ef00140, 0x8ef10074, 0x8ef20070, 
-0xc002488, 0x24050400, 0xaef301cc, 0xaef401d0, 
-0xaef501d8, 0xaef00140, 0xaef10074, 0xaef20070, 
-0x8f42025c, 0x26e40094, 0xaee20060, 0x8f420260, 
-0x27450200, 0x24060008, 0xaee20068, 0x24020006, 
-0xc00249a, 0xaee20064, 0x3c023b9a, 0x3442ca00, 
-0xaee2006c, 0x240203e8, 0x24040002, 0x24030001, 
-0xaee20104, 0xaee40100, 0xaee3010c, 0x8f820220, 
-0x30420008, 0x10400004, 0x0, 0xaee30108, 
-0x8002061, 0x2021, 0xaee40108, 0x2021, 
-0x3c030001, 0x641821, 0x90635c30, 0x2e41021, 
-0x24840001, 0xa043009c, 0x2c82000f, 0x1440fff8, 
-0x0, 0x8f820040, 0x2e41821, 0x24840001, 
-0x21702, 0x24420030, 0xa062009c, 0x2e41021, 
-0x80022e8, 0xa040009c, 0x24020001, 0x3c010001, 
-0x370821, 0xa02283e0, 0x240b0400, 0x24080014, 
-0x240a0040, 0x24090001, 0x8f830100, 0x27623000, 
-0x24660020, 0xc2102b, 0x50400001, 0x27662800, 
-0x8f820108, 0x10c20004, 0x0, 0x8f820104, 
-0x14c20007, 0x26e20030, 0x8ee201a8, 0x3821, 
-0x24420001, 0xaee201a8, 0x80020a8, 0x8ee201a8, 
-0x8ee404b8, 0x8ee504bc, 0xac620008, 0xa46b000e, 
-0xac680018, 0xac60001c, 0xac640000, 0xac650004, 
-0x8ee204cc, 0xac620010, 0xaf860100, 0x92e204ec, 
-0x1440000e, 0x24070001, 0x8ee24e28, 0x24420001, 
-0x504a0003, 0x1021, 0x8ee24e28, 0x24420001, 
-0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38, 
-0x2e21021, 0xac480000, 0xac490004, 0x10e0ffd2, 
-0x0, 0x80022e8, 0x0, 0x3c020900, 
-0xaee05238, 0xaee0523c, 0xaee05240, 0xaee05244, 
-0xaee001d0, 0x3c010001, 0x370821, 0xa02083b1, 
-0xafa20018, 0x8ee20608, 0x8f430228, 0x24420001, 
-0x304a00ff, 0x514300fd, 0xafa00010, 0x8ee20608, 
-0x210c0, 0x571021, 0x8fa30018, 0x8fa4001c, 
-0xac43060c, 0xac440610, 0x8f830054, 0x8f820054, 
-0x24690032, 0x1221023, 0x2c420033, 0x1040006a, 
-0x5821, 0x24100008, 0x240f000d, 0x240d0007, 
-0x240c0040, 0x240e0001, 0x8f870120, 0x27623800, 
-0x24e80020, 0x102102b, 0x50400001, 0x27683000, 
-0x8f820128, 0x11020004, 0x0, 0x8f820124, 
-0x15020007, 0x1021, 0x8ee201a4, 0x3821, 
-0x24420001, 0xaee201a4, 0x800212c, 0x8ee201a4, 
-0x8ee40608, 0x420c0, 0x801821, 0x8ee40430, 
-0x8ee50434, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xace40000, 0xace50004, 0x8ee20608, 
-0xa4f0000e, 0xacef0018, 0xacea001c, 0x210c0, 
-0x2442060c, 0x2e21021, 0xace20008, 0x8ee204c4, 
-0xace20010, 0xaf880120, 0x92e24e20, 0x14400033, 
-0x24070001, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c820000, 0x144d001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee34e30, 0x24420001, 0x104c0007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10620005, 0x0, 
-0x8002119, 0x0, 0x14600005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400010, 0xac800000, 
-0x800212c, 0x0, 0x8ee24e30, 0x24420001, 
-0x504c0003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0xac8d0000, 0xac8e0004, 0x54e00006, 
-0x240b0001, 0x8f820054, 0x1221023, 0x2c420033, 
-0x1440ff9d, 0x0, 0x316300ff, 0x24020001, 
-0x54620078, 0xafa00010, 0xaeea0608, 0x8f830054, 
-0x8f820054, 0x24690032, 0x1221023, 0x2c420033, 
-0x10400061, 0x5821, 0x240e0008, 0x240d0011, 
-0x240a0012, 0x24080040, 0x240c0001, 0x8f830120, 
-0x27623800, 0x24660020, 0xc2102b, 0x50400001, 
-0x27663000, 0x8f820128, 0x10c20004, 0x0, 
-0x8f820124, 0x14c20007, 0x0, 0x8ee201a4, 
-0x3821, 0x24420001, 0xaee201a4, 0x8002198, 
-0x8ee201a4, 0x8ee20608, 0xac62001c, 0x8ee404a0, 
-0x8ee504a4, 0x2462001c, 0xac620008, 0xa46e000e, 
-0xac6d0018, 0xac640000, 0xac650004, 0x8ee204c4, 
-0xac620010, 0xaf860120, 0x92e24e20, 0x14400033, 
-0x24070001, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c820000, 0x144a001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee34e30, 0x24420001, 0x10480007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10620005, 0x0, 
-0x8002185, 0x0, 0x14600005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400010, 0xac800000, 
-0x8002198, 0x0, 0x8ee24e30, 0x24420001, 
-0x50480003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0xac8a0000, 0xac8c0004, 0x54e00006, 
-0x240b0001, 0x8f820054, 0x1221023, 0x2c420033, 
-0x1440ffa6, 0x0, 0x316300ff, 0x24020001, 
-0x10620022, 0x0, 0x3c040001, 0x24845390, 
-0xafa00010, 0xafa00014, 0x8f860120, 0x8f870124, 
-0x3c050009, 0xc002403, 0x34a5f011, 0x80021c4, 
-0x0, 0x3c040001, 0x2484539c, 0xafa00014, 
-0x8f860120, 0x8f870124, 0x3c050009, 0xc002403, 
-0x34a5f010, 0x80021c4, 0x0, 0x3c040001, 
-0x248453a8, 0xafa00014, 0x8ee60608, 0x8f470228, 
-0x3c050009, 0xc002403, 0x34a5f00f, 0x8ee201ac, 
-0x24420001, 0xaee201ac, 0x8ee201ac, 0x8ee20120, 
-0x24420001, 0xaee20120, 0x8ee20120, 0x8ee20168, 
-0x24420001, 0xaee20168, 0x80022e8, 0x8ee20168, 
-0x8f42025c, 0x26e40094, 0xaee20060, 0x8f420260, 
-0x27450200, 0x24060008, 0xc00249a, 0xaee20068, 
-0x8f820220, 0x30420008, 0x14400002, 0x24020001, 
-0x24020002, 0xaee20108, 0x8ee2011c, 0x24420001, 
-0xaee2011c, 0x80022e8, 0x8ee2011c, 0x3c040001, 
-0x248453ec, 0xafa00010, 0xafa00014, 0x8fa60020, 
-0x3c050003, 0xc002403, 0x34a5f00f, 0x93a20020, 
-0x3c030700, 0x34631000, 0x431025, 0xafa20018, 
-0x8ee20608, 0x8f430228, 0x24420001, 0x304900ff, 
-0x512300e2, 0xafa00010, 0x8ee20608, 0x210c0, 
-0x571021, 0x8fa30018, 0x8fa4001c, 0xac43060c, 
-0xac440610, 0x8f870120, 0x27623800, 0x24e80020, 
-0x102102b, 0x50400001, 0x27683000, 0x8f820128, 
-0x11020004, 0x0, 0x8f820124, 0x15020007, 
-0x1021, 0x8ee201a4, 0x3821, 0x24420001, 
-0xaee201a4, 0x800225d, 0x8ee201a4, 0x8ee40608, 
-0x420c0, 0x801821, 0x8ee40430, 0x8ee50434, 
-0xa32821, 0xa3302b, 0x822021, 0x862021, 
-0xace40000, 0xace50004, 0x8ee30608, 0x24020008, 
-0xa4e2000e, 0x2402000d, 0xace20018, 0xace9001c, 
-0x318c0, 0x2463060c, 0x2e31021, 0xace20008, 
-0x8ee204c4, 0xace20010, 0xaf880120, 0x92e24e20, 
-0x14400037, 0x24070001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c830000, 0x24020007, 
-0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34, 
-0x1062001b, 0x24030040, 0x8c820004, 0x24420001, 
-0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001, 
-0x10430007, 0x0, 0x8ee24e34, 0x24420001, 
-0x10a20005, 0x0, 0x8002247, 0x0, 
-0x14a00005, 0x0, 0x8f820128, 0x24420020, 
-0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011, 
-0x50400013, 0xac800000, 0x800225d, 0x0, 
-0x8ee24e30, 0x24030040, 0x24420001, 0x50430003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x24020007, 0xac820000, 0x24020001, 0xac820004, 
-0x54e0000c, 0xaee90608, 0x3c040001, 0x248453f4, 
-0xafa00010, 0xafa00014, 0x8ee60608, 0x8f470228, 
-0x3c050009, 0xc002403, 0x34a5f000, 0x80022e0, 
-0x0, 0x8f830120, 0x27623800, 0x24660020, 
-0xc2102b, 0x50400001, 0x27663000, 0x8f820128, 
-0x10c20004, 0x0, 0x8f820124, 0x14c20007, 
-0x0, 0x8ee201a4, 0x3821, 0x24420001, 
-0xaee201a4, 0x80022c4, 0x8ee201a4, 0x8ee20608, 
-0xac62001c, 0x8ee404a0, 0x8ee504a4, 0x2462001c, 
-0xac620008, 0x24020008, 0xa462000e, 0x24020011, 
-0xac620018, 0xac640000, 0xac650004, 0x8ee204c4, 
-0xac620010, 0xaf860120, 0x92e24e20, 0x14400037, 
-0x24070001, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c830000, 0x24020012, 0x1462001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x24030040, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee54e30, 0x24420001, 0x10430007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10a20005, 
-0x0, 0x80022ae, 0x0, 0x14a00005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400013, 
-0xac800000, 0x80022c4, 0x0, 0x8ee24e30, 
-0x24030040, 0x24420001, 0x50430003, 0x1021, 
-0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x24020012, 
-0xac820000, 0x24020001, 0xac820004, 0x14e0001b, 
-0x0, 0x3c040001, 0x248453fc, 0xafa00010, 
-0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009, 
-0xc002403, 0x34a5f001, 0x8ee201b0, 0x24420001, 
-0xaee201b0, 0x80022e0, 0x8ee201b0, 0x3c040001, 
-0x24845408, 0xafa00014, 0x8ee60608, 0x8f470228, 
-0x3c050009, 0xc002403, 0x34a5f005, 0x8ee201ac, 
-0x24420001, 0xaee201ac, 0x8ee201ac, 0x8ee20150, 
-0x24420001, 0xaee20150, 0x8ee20150, 0x8ee20160, 
-0x24420001, 0xaee20160, 0x8ee20160, 0x8f43022c, 
-0x8f42010c, 0x14620009, 0x24020002, 0xaf820064, 
-0x8f820064, 0x14400005, 0x0, 0x8f43022c, 
-0x8f42010c, 0x1462f875, 0x0, 0x8fbf0044, 
-0x8fb60040, 0x8fb5003c, 0x8fb40038, 0x8fb30034, 
-0x8fb20030, 0x8fb1002c, 0x8fb00028, 0x3e00008, 
-0x27bd0048, 0x27bdfff8, 0x2408ffff, 0x10a00014, 
-0x4821, 0x3c0aedb8, 0x354a8320, 0x90870000, 
-0x24840001, 0x3021, 0x1071026, 0x30420001, 
-0x10400002, 0x81842, 0x6a1826, 0x604021, 
-0x24c60001, 0x2cc20008, 0x1440fff7, 0x73842, 
-0x25290001, 0x125102b, 0x1440fff0, 0x0, 
-0x1001021, 0x3e00008, 0x27bd0008, 0x27bdffe8, 
-0x27642800, 0xafbf0010, 0xc002488, 0x24051000, 
-0x24020021, 0xaf800100, 0xaf800104, 0xaf800108, 
-0xaf800110, 0xaf800114, 0xaf800118, 0xaf800120, 
-0xaf800124, 0xaf800128, 0xaf800130, 0xaf800134, 
-0xaf800138, 0xaee04e28, 0xaee04e2c, 0xaee04e30, 
-0xaee04e34, 0xaf82011c, 0x8f420218, 0x30420040, 
-0x10400004, 0x0, 0x8f82011c, 0x34420004, 
-0xaf82011c, 0x8fbf0010, 0x3e00008, 0x27bd0018, 
-0x27bdffe0, 0xafbf0018, 0x8f820104, 0xafa20010, 
-0x8f820100, 0x3c050002, 0xafa20014, 0x8f8600b0, 
-0x8f87011c, 0x3c040001, 0x248454c0, 0xc002403, 
-0x34a5f000, 0x8f8300b0, 0x3c027f00, 0x621824, 
-0x3c020400, 0x10620029, 0x43102b, 0x14400008, 
-0x3c022000, 0x3c020100, 0x10620024, 0x3c020200, 
-0x10620011, 0x0, 0x8002374, 0x0, 
-0x10620008, 0x3c024000, 0x1462001c, 0x0, 
-0x8ee20190, 0x24420001, 0xaee20190, 0x8002374, 
-0x8ee20190, 0x8ee2018c, 0x24420001, 0xaee2018c, 
-0x8002374, 0x8ee2018c, 0x8f82011c, 0x34420002, 
-0xaf82011c, 0x8f830104, 0x8f8200b0, 0x34420001, 
-0xaf8200b0, 0xaf830104, 0x8f82011c, 0x2403fffd, 
-0x431024, 0xaf82011c, 0x8ee201a0, 0x24420001, 
-0xaee201a0, 0x8002377, 0x8ee201a0, 0x8f8200b0, 
-0x34420001, 0xaf8200b0, 0x8fbf0018, 0x3e00008, 
-0x27bd0020, 0x27bdffe0, 0xafbf001c, 0xafb00018, 
-0x8f820120, 0xafa20010, 0x8f820124, 0x3c050001, 
-0xafa20014, 0x8f8600a0, 0x8f87011c, 0x3c040001, 
-0x248454cc, 0xc002403, 0x34a5f000, 0x8f8300a0, 
-0x3c027f00, 0x621824, 0x3c020400, 0x10620053, 
-0x8021, 0x43102b, 0x14400008, 0x3c042000, 
-0x3c020100, 0x1062004d, 0x3c020200, 0x1062003a, 
-0x0, 0x80023e0, 0x0, 0x10640003, 
-0x3c024000, 0x14620045, 0x0, 0x8f8200a0, 
-0x441024, 0x10400006, 0x0, 0x8ee20194, 
-0x24420001, 0xaee20194, 0x80023a9, 0x8ee20194, 
-0x8ee20198, 0x24420001, 0xaee20198, 0x8ee20198, 
-0x8f82011c, 0x34420002, 0xaf82011c, 0x8f82011c, 
-0x30420200, 0x1040001b, 0x0, 0x8f8300a0, 
-0x8f840124, 0x8f8200ac, 0x14400007, 0x24020001, 
-0x3c020001, 0x3442f000, 0x621024, 0x50400001, 
-0x24100001, 0x24020001, 0x1200000d, 0xaf8200a0, 
-0x8f820124, 0x2442ffe0, 0xaf820124, 0x8f820124, 
-0x8f820124, 0x27633000, 0x43102b, 0x10400005, 
-0x276237e0, 0xaf820124, 0x80023ca, 0x0, 
-0xaf840124, 0x8f82011c, 0x2403fffd, 0x431024, 
-0x80023e3, 0xaf82011c, 0x8f82011c, 0x34420002, 
-0xaf82011c, 0x8f830124, 0x8f8200a0, 0x34420001, 
-0xaf8200a0, 0xaf830124, 0x8f82011c, 0x2403fffd, 
-0x431024, 0xaf82011c, 0x8ee2019c, 0x24420001, 
-0xaee2019c, 0x80023e3, 0x8ee2019c, 0x8f8200a0, 
-0x34420001, 0xaf8200a0, 0x8fbf001c, 0x8fb00018, 
-0x3e00008, 0x27bd0020, 0x0, 0x3c020001, 
-0x8c425c58, 0x27bdffe8, 0xafbf0014, 0x14400012, 
-0xafb00010, 0x3c100001, 0x26105dd0, 0x2002021, 
-0xc002488, 0x24052000, 0x26021fe0, 0x3c010001, 
-0xac225d94, 0x3c010001, 0xac225d90, 0xaf420250, 
-0x24022000, 0xaf500254, 0xaf420258, 0x24020001, 
-0x3c010001, 0xac225c58, 0x8fbf0014, 0x8fb00010, 
-0x3e00008, 0x27bd0018, 0x3c030001, 0x8c635d94, 
-0x8c820000, 0x8fa80010, 0x8fa90014, 0xac620000, 
-0x3c020001, 0x8c425d94, 0x8c830004, 0xac430004, 
-0xac450008, 0x8f840054, 0x2443ffe0, 0xac460010, 
-0xac470014, 0xac480018, 0xac49001c, 0x3c010001, 
-0xac235d94, 0xac44000c, 0x3c020001, 0x24425dd0, 
-0x62182b, 0x10600005, 0x0, 0x3c020001, 
-0x8c425d90, 0x3c010001, 0xac225d94, 0x3c030001, 
-0x8c635d94, 0x3c020001, 0x8c425c40, 0xac620000, 
-0x3c030001, 0x8c635d94, 0x3c020001, 0x8c425c40, 
-0xac620004, 0x3e00008, 0xaf430250, 0x3c030001, 
-0x8c635d94, 0x3c020001, 0x8c425c40, 0x27bdffd0, 
-0xafb40020, 0x8fb40040, 0xafb00010, 0x808021, 
-0xafb50024, 0x8fb50044, 0x8fa40048, 0xafb10014, 
-0xa08821, 0xafbf0028, 0xafb3001c, 0xafb20018, 
-0xac620000, 0x3c050001, 0x8ca55d94, 0x3c020001, 
-0x8c425c40, 0xc09021, 0xe09821, 0x10800006, 
-0xaca20004, 0x24a50008, 0xc002490, 0x24060018, 
-0x800244e, 0x0, 0x24a40008, 0xc002488, 
-0x24050018, 0x3c020001, 0x8c425d94, 0x3c050001, 
-0x24a55dd0, 0x2442ffe0, 0x3c010001, 0xac225d94, 
-0x45102b, 0x10400005, 0x0, 0x3c020001, 
-0x8c425d90, 0x3c010001, 0xac225d94, 0x3c030001, 
-0x8c635d94, 0x8e020000, 0xac620000, 0x3c030001, 
-0x8c635d94, 0x8e020004, 0xac620004, 0xac710008, 
-0x8f840054, 0x2462ffe0, 0x3c010001, 0xac225d94, 
-0x45102b, 0xac720010, 0xac730014, 0xac740018, 
-0xac75001c, 0x10400005, 0xac64000c, 0x3c020001, 
-0x8c425d90, 0x3c010001, 0xac225d94, 0x3c030001, 
-0x8c635d94, 0x3c020001, 0x8c425c40, 0xac620000, 
-0x3c030001, 0x8c635d94, 0x3c020001, 0x8c425c40, 
-0xac620004, 0xaf430250, 0x8fbf0028, 0x8fb50024, 
-0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014, 
-0x8fb00010, 0x3e00008, 0x27bd0030, 0x10a00005, 
-0x0, 0xac800000, 0x24a5fffc, 0x14a0fffd, 
-0x24840004, 0x3e00008, 0x0, 0x10c00007, 
-0x0, 0x8c820000, 0x24840004, 0x24c6fffc, 
-0xaca20000, 0x14c0fffb, 0x24a50004, 0x3e00008, 
-0x0, 0x10c00007, 0x0, 0x8ca20000, 
-0x24a50004, 0x24c6fffc, 0xac820000, 0x14c0fffb, 
-0x24840004, 0x3e00008, 0x0, 0x3e00008, 
-0x0, 0x27bdffd8, 0xafbf0020, 0x8ee304e4, 
-0x8ee204e0, 0x10620436, 0x0, 0x8ee204e4, 
-0x8ee304fc, 0x21100, 0x626021, 0x95870008, 
-0x8d8a0000, 0x8d8b0004, 0x958d000a, 0x8ee2725c, 
-0x8ee3726c, 0x30e4ffff, 0x441021, 0x62182b, 
-0x10600015, 0x31a20004, 0x8f8200d8, 0x8ee37258, 
-0x431023, 0xaee2726c, 0x8ee2726c, 0x1c400003, 
-0x3c030001, 0x431021, 0xaee2726c, 0x8ee2725c, 
-0x8ee3726c, 0x441021, 0x62182b, 0x10600006, 
-0x31a20004, 0x8ee201b8, 0x24420001, 0xaee201b8, 
-0x80028e1, 0x8ee201b8, 0x10400240, 0x31a20200, 
-0x1040014d, 0x4821, 0x96e2045a, 0x30420010, 
-0x10400149, 0x0, 0x8f840100, 0x27623000, 
-0x24850020, 0xa2102b, 0x50400001, 0x27652800, 
-0x8f820108, 0x10a20004, 0x0, 0x8f820104, 
-0x14a20006, 0x2402000c, 0x8ee201a8, 0x24420001, 
-0xaee201a8, 0x800252c, 0x8ee201a8, 0xac8a0000, 
-0xac8b0004, 0x8ee37264, 0x24060005, 0xa482000e, 
-0xac860018, 0xac830008, 0x8ee204e4, 0xac82001c, 
-0x8ee204c8, 0xac820010, 0xaf850100, 0x92e204ec, 
-0x14400036, 0x24090001, 0x8ee24e28, 0x210c0, 
-0x24424e38, 0x2e22021, 0x8c820000, 0x1446001f, 
-0x0, 0x8ee34e28, 0x8ee24e2c, 0x1062001b, 
-0x24030040, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e2c, 0x8ee54e28, 0x24420001, 0x10430007, 
-0x0, 0x8ee24e2c, 0x24420001, 0x10a20005, 
-0x0, 0x8002516, 0x0, 0x14a00005, 
-0x0, 0x8f820108, 0x24420020, 0xaf820108, 
-0x8f820108, 0x8c820004, 0x2c420011, 0x50400013, 
-0xac800000, 0x800252c, 0x0, 0x8ee24e28, 
-0x24030040, 0x24420001, 0x50430003, 0x1021, 
-0x8ee24e28, 0x24420001, 0xaee24e28, 0x8ee24e28, 
-0x210c0, 0x24424e38, 0x2e22021, 0x24020005, 
-0xac820000, 0x24020001, 0xac820004, 0x1520000a, 
-0x3c040001, 0xafab0010, 0x8ee27264, 0x3c040001, 
-0x24845730, 0x3c050004, 0xafa20014, 0x8ee604e4, 
-0x80028be, 0x34a5f114, 0x8ee27264, 0x34843800, 
-0x3641821, 0x24420010, 0x43102b, 0x14400073, 
-0x0, 0x8ee27264, 0x24480010, 0x3641021, 
-0x102102b, 0x14400002, 0x3c02ffff, 0x1024021, 
-0x8f850100, 0x27623000, 0x24a60020, 0xc2102b, 
-0x50400001, 0x27662800, 0x8f820108, 0x10c20004, 
-0x0, 0x8f820104, 0x14c20007, 0x2563000c, 
-0x8ee201a8, 0x4821, 0x24420001, 0xaee201a8, 
-0x80025a0, 0x8ee201a8, 0x2c64000c, 0x1441021, 
-0xaca20000, 0xaca30004, 0x24e2fff4, 0xa4a2000e, 
-0x24020006, 0xaca80008, 0xaca20018, 0x8ee204e4, 
-0xaca2001c, 0x8ee204c8, 0x3c030002, 0x431025, 
-0xaca20010, 0xaf860100, 0x92e204ec, 0x14400037, 
-0x24090001, 0x8ee24e28, 0x210c0, 0x24424e38, 
-0x2e22021, 0x8c830000, 0x24020005, 0x1462001f, 
-0x0, 0x8ee34e28, 0x8ee24e2c, 0x1062001b, 
-0x24030040, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e2c, 0x8ee54e28, 0x24420001, 0x10430007, 
-0x0, 0x8ee24e2c, 0x24420001, 0x10a20005, 
-0x0, 0x800258a, 0x0, 0x14a00005, 
-0x0, 0x8f820108, 0x24420020, 0xaf820108, 
-0x8f820108, 0x8c820004, 0x2c420011, 0x50400013, 
-0xac800000, 0x80025a0, 0x0, 0x8ee24e28, 
-0x24030040, 0x24420001, 0x50430003, 0x1021, 
-0x8ee24e28, 0x24420001, 0xaee24e28, 0x8ee24e28, 
-0x210c0, 0x24424e38, 0x2e22021, 0x24020005, 
-0xac820000, 0x24020001, 0xac820004, 0x1520000a, 
-0x2508fffc, 0xafab0010, 0x8ee27264, 0x3c040001, 
-0x24845730, 0x3c050004, 0xafa20014, 0x8ee604e4, 
-0x80028be, 0x34a5f125, 0x34028100, 0xa5020000, 
-0x9582000e, 0x800261d, 0xa5020002, 0x8f850100, 
-0x27623000, 0x24a60020, 0xc2102b, 0x50400001, 
-0x27662800, 0x8f820108, 0x10c20004, 0x0, 
-0x8f820104, 0x14c20007, 0x2563000c, 0x8ee201a8, 
-0x4821, 0x24420001, 0xaee201a8, 0x800260d, 
-0x8ee201a8, 0x2c64000c, 0x1441021, 0xaca20000, 
-0xaca30004, 0x8ee37264, 0x24e2fff4, 0xa4a2000e, 
-0x24020006, 0xaca20018, 0x24630010, 0xaca30008, 
-0x8ee204e4, 0xaca2001c, 0x8ee204c8, 0x3c030002, 
-0x431025, 0xaca20010, 0xaf860100, 0x92e204ec, 
-0x14400037, 0x24090001, 0x8ee24e28, 0x210c0, 
-0x24424e38, 0x2e22021, 0x8c830000, 0x24020005, 
-0x1462001f, 0x0, 0x8ee34e28, 0x8ee24e2c, 
-0x1062001b, 0x24030040, 0x8c820004, 0x24420001, 
-0xac820004, 0x8ee24e2c, 0x8ee54e28, 0x24420001, 
-0x10430007, 0x0, 0x8ee24e2c, 0x24420001, 
-0x10a20005, 0x0, 0x80025f7, 0x0, 
-0x14a00005, 0x0, 0x8f820108, 0x24420020, 
-0xaf820108, 0x8f820108, 0x8c820004, 0x2c420011, 
-0x50400013, 0xac800000, 0x800260d, 0x0, 
-0x8ee24e28, 0x24030040, 0x24420001, 0x50430003, 
-0x1021, 0x8ee24e28, 0x24420001, 0xaee24e28, 
-0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021, 
-0x24020005, 0xac820000, 0x24020001, 0xac820004, 
-0x1520000a, 0x34028100, 0xafab0010, 0x8ee27264, 
-0x3c040001, 0x24845730, 0x3c050004, 0xafa20014, 
-0x8ee604e4, 0x80028be, 0x34a5f015, 0x8ee37264, 
-0xa462000c, 0x8ee37264, 0x9582000e, 0xa462000e, 
-0x8002681, 0x24e70004, 0x8f840100, 0x27623000, 
-0x24850020, 0xa2102b, 0x50400001, 0x27652800, 
-0x8f820108, 0x10a20004, 0x0, 0x8f820104, 
-0x14a20007, 0x24020006, 0x8ee201a8, 0x4821, 
-0x24420001, 0xaee201a8, 0x8002677, 0x8ee201a8, 
-0xac8a0000, 0xac8b0004, 0x8ee37264, 0xa487000e, 
-0xac820018, 0xac830008, 0x8ee204e4, 0xac82001c, 
-0x8ee204c8, 0x3c030002, 0x431025, 0xac820010, 
-0xaf850100, 0x92e204ec, 0x14400037, 0x24090001, 
-0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021, 
-0x8c830000, 0x24020005, 0x1462001f, 0x0, 
-0x8ee34e28, 0x8ee24e2c, 0x1062001b, 0x24030040, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e2c, 
-0x8ee54e28, 0x24420001, 0x10430007, 0x0, 
-0x8ee24e2c, 0x24420001, 0x10a20005, 0x0, 
-0x8002661, 0x0, 0x14a00005, 0x0, 
-0x8f820108, 0x24420020, 0xaf820108, 0x8f820108, 
-0x8c820004, 0x2c420011, 0x50400013, 0xac800000, 
-0x8002677, 0x0, 0x8ee24e28, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee24e28, 
-0x24420001, 0xaee24e28, 0x8ee24e28, 0x210c0, 
-0x24424e38, 0x2e22021, 0x24020005, 0xac820000, 
-0x24020001, 0xac820004, 0x15200009, 0x3c050004, 
-0xafab0010, 0x8ee27264, 0x3c040001, 0x24845730, 
-0xafa20014, 0x8ee604e4, 0x80028be, 0x34a5f004, 
-0x8ee2725c, 0x30e7ffff, 0x471021, 0xaee2725c, 
-0x8ee204e4, 0x8ee304fc, 0x8ee47258, 0x21100, 
-0x431021, 0xac44000c, 0x8ee27258, 0xafa20018, 
-0x8ee3725c, 0xafa3001c, 0x8ee2725c, 0x2c42003c, 
-0x10400004, 0x24620001, 0x2403fffe, 0x431024, 
-0xafa2001c, 0x8ee27264, 0x3c060001, 0x34c63800, 
-0x8ee3725c, 0x2405fff8, 0x471021, 0x24420007, 
-0x451024, 0x24630007, 0xaee27258, 0x8ee2726c, 
-0x8ee47258, 0x651824, 0x431023, 0xaee2726c, 
-0x3661021, 0x82202b, 0x14800004, 0x3c03ffff, 
-0x8ee27258, 0x431021, 0xaee27258, 0x8ee27258, 
-0xaee27264, 0x8f8200f0, 0x24470008, 0x27621800, 
-0xe2102b, 0x50400001, 0x27671000, 0x8f8200f4, 
-0x14e20007, 0x0, 0x8ee201b4, 0x4821, 
-0x24420001, 0xaee201b4, 0x80026c4, 0x8ee201b4, 
-0x8f8200f0, 0x24090001, 0x8fa30018, 0x8fa4001c, 
-0xac430000, 0xac440004, 0xaf8700f0, 0x15200012, 
-0xd1142, 0x8f8200f0, 0xafa20010, 0x8f8200f4, 
-0x3c040001, 0x2484573c, 0xafa20014, 0x8fa60018, 
-0x8fa7001c, 0x3c050004, 0xc002403, 0x34a5f005, 
-0x8ee20088, 0x24420001, 0xaee20088, 0x8ee20088, 
-0x80028d3, 0xaee0725c, 0x30430003, 0x24020002, 
-0x10620016, 0x28620003, 0x10400005, 0x24020001, 
-0x10620008, 0x0, 0x8002703, 0x0, 
-0x24020003, 0x10620017, 0x0, 0x8002703, 
-0x0, 0x8ee200e8, 0x8ee300ec, 0x24630001, 
-0x2c640001, 0x441021, 0xaee200e8, 0xaee300ec, 
-0x8ee200e8, 0x8002703, 0x8ee300ec, 0x8ee200f0, 
-0x8ee300f4, 0x24630001, 0x2c640001, 0x441021, 
-0xaee200f0, 0xaee300f4, 0x8ee200f0, 0x8002703, 
-0x8ee300f4, 0x8ee200f8, 0x8ee300fc, 0x24630001, 
-0x2c640001, 0x441021, 0xaee200f8, 0xaee300fc, 
-0x8ee200f8, 0x8ee300fc, 0x8ee2725c, 0x8ee400e0, 
-0x8ee500e4, 0x401821, 0x1021, 0xa32821, 
-0xa3302b, 0x822021, 0x862021, 0xaee400e0, 
-0xaee500e4, 0x80028d3, 0xaee0725c, 0x30e2ffff, 
-0x104001c1, 0x31a20200, 0x1040014d, 0x4821, 
-0x96e2045a, 0x30420010, 0x10400149, 0x0, 
-0x8f840100, 0x27623000, 0x24850020, 0xa2102b, 
-0x50400001, 0x27652800, 0x8f820108, 0x10a20004, 
-0x0, 0x8f820104, 0x14a20006, 0x2402000c, 
-0x8ee201a8, 0x24420001, 0xaee201a8, 0x800276e, 
-0x8ee201a8, 0xac8a0000, 0xac8b0004, 0x8ee37264, 
-0x24060005, 0xa482000e, 0xac860018, 0xac830008, 
-0x8ee204e4, 0xac82001c, 0x8ee204c8, 0xac820010, 
-0xaf850100, 0x92e204ec, 0x14400036, 0x24090001, 
-0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021, 
-0x8c820000, 0x1446001f, 0x0, 0x8ee34e28, 
-0x8ee24e2c, 0x1062001b, 0x24030040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e2c, 0x8ee54e28, 
-0x24420001, 0x10430007, 0x0, 0x8ee24e2c, 
-0x24420001, 0x10a20005, 0x0, 0x8002758, 
-0x0, 0x14a00005, 0x0, 0x8f820108, 
-0x24420020, 0xaf820108, 0x8f820108, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x800276e, 
-0x0, 0x8ee24e28, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e28, 0x24420001, 
-0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38, 
-0x2e22021, 0x24020005, 0xac820000, 0x24020001, 
-0xac820004, 0x1520000a, 0x3c040001, 0xafab0010, 
-0x8ee27264, 0x3c040001, 0x24845730, 0x3c050004, 
-0xafa20014, 0x8ee604e4, 0x80028be, 0x34a5f014, 
-0x8ee27264, 0x34843800, 0x3641821, 0x24420010, 
-0x43102b, 0x14400073, 0x0, 0x8ee27264, 
-0x24480010, 0x3641021, 0x102102b, 0x14400002, 
-0x3c02ffff, 0x1024021, 0x8f850100, 0x27623000, 
-0x24a60020, 0xc2102b, 0x50400001, 0x27662800, 
-0x8f820108, 0x10c20004, 0x0, 0x8f820104, 
-0x14c20007, 0x2563000c, 0x8ee201a8, 0x4821, 
-0x24420001, 0xaee201a8, 0x80027e2, 0x8ee201a8, 
-0x2c64000c, 0x1441021, 0xaca20000, 0xaca30004, 
-0x24e2fff4, 0xa4a2000e, 0x24020006, 0xaca80008, 
-0xaca20018, 0x8ee204e4, 0xaca2001c, 0x8ee204c8, 
-0x3c030002, 0x431025, 0xaca20010, 0xaf860100, 
-0x92e204ec, 0x14400037, 0x24090001, 0x8ee24e28, 
-0x210c0, 0x24424e38, 0x2e22021, 0x8c830000, 
-0x24020005, 0x1462001f, 0x0, 0x8ee34e28, 
-0x8ee24e2c, 0x1062001b, 0x24030040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e2c, 0x8ee54e28, 
-0x24420001, 0x10430007, 0x0, 0x8ee24e2c, 
-0x24420001, 0x10a20005, 0x0, 0x80027cc, 
-0x0, 0x14a00005, 0x0, 0x8f820108, 
-0x24420020, 0xaf820108, 0x8f820108, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x80027e2, 
-0x0, 0x8ee24e28, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e28, 0x24420001, 
-0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38, 
-0x2e22021, 0x24020005, 0xac820000, 0x24020001, 
-0xac820004, 0x1520000a, 0x2508fffc, 0xafab0010, 
-0x8ee27264, 0x3c040001, 0x24845730, 0x3c050004, 
-0xafa20014, 0x8ee604e4, 0x80028be, 0x34a5f015, 
-0x34028100, 0xa5020000, 0x9582000e, 0x800285f, 
-0xa5020002, 0x8f850100, 0x27623000, 0x24a60020, 
-0xc2102b, 0x50400001, 0x27662800, 0x8f820108, 
-0x10c20004, 0x0, 0x8f820104, 0x14c20007, 
-0x2563000c, 0x8ee201a8, 0x4821, 0x24420001, 
-0xaee201a8, 0x800284f, 0x8ee201a8, 0x2c64000c, 
-0x1441021, 0xaca20000, 0xaca30004, 0x8ee37264, 
-0x24e2fff4, 0xa4a2000e, 0x24020006, 0xaca20018, 
-0x24630010, 0xaca30008, 0x8ee204e4, 0xaca2001c, 
-0x8ee204c8, 0x3c030002, 0x431025, 0xaca20010, 
-0xaf860100, 0x92e204ec, 0x14400037, 0x24090001, 
-0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021, 
-0x8c830000, 0x24020005, 0x1462001f, 0x0, 
-0x8ee34e28, 0x8ee24e2c, 0x1062001b, 0x24030040, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e2c, 
-0x8ee54e28, 0x24420001, 0x10430007, 0x0, 
-0x8ee24e2c, 0x24420001, 0x10a20005, 0x0, 
-0x8002839, 0x0, 0x14a00005, 0x0, 
-0x8f820108, 0x24420020, 0xaf820108, 0x8f820108, 
-0x8c820004, 0x2c420011, 0x50400013, 0xac800000, 
-0x800284f, 0x0, 0x8ee24e28, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee24e28, 
-0x24420001, 0xaee24e28, 0x8ee24e28, 0x210c0, 
-0x24424e38, 0x2e22021, 0x24020005, 0xac820000, 
-0x24020001, 0xac820004, 0x1520000a, 0x34028100, 
-0xafab0010, 0x8ee27264, 0x3c040001, 0x24845730, 
-0x3c050004, 0xafa20014, 0x8ee604e4, 0x80028be, 
-0x34a5f016, 0x8ee37264, 0xa462000c, 0x8ee37264, 
-0x9582000e, 0xa462000e, 0x80028c2, 0x24e70004, 
-0x8f830100, 0x27623000, 0x24640020, 0x82102b, 
-0x50400001, 0x27642800, 0x8f820108, 0x10820004, 
-0x0, 0x8f820104, 0x14820007, 0x24050005, 
-0x8ee201a8, 0x4821, 0x24420001, 0xaee201a8, 
-0x80028b6, 0x8ee201a8, 0xac6a0000, 0xac6b0004, 
-0x8ee27264, 0xa467000e, 0xac650018, 0xac620008, 
-0x8ee204e4, 0xac62001c, 0x8ee204c8, 0xac620010, 
-0xaf840100, 0x92e204ec, 0x14400036, 0x24090001, 
-0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021, 
-0x8c820000, 0x1445001f, 0x0, 0x8ee34e28, 
-0x8ee24e2c, 0x1062001b, 0x24030040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e2c, 0x8ee54e28, 
-0x24420001, 0x10430007, 0x0, 0x8ee24e2c, 
-0x24420001, 0x10a20005, 0x0, 0x80028a0, 
-0x0, 0x14a00005, 0x0, 0x8f820108, 
-0x24420020, 0xaf820108, 0x8f820108, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x80028b6, 
-0x0, 0x8ee24e28, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e28, 0x24420001, 
-0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38, 
-0x2e22021, 0x24020005, 0xac820000, 0x24020001, 
-0xac820004, 0x1520000b, 0x3c050004, 0x3c040001, 
-0x24845748, 0xafab0010, 0xafa00014, 0x8ee604e4, 
-0x34a5f017, 0xc002403, 0x30e7ffff, 0x80028e1, 
-0x0, 0x8ee27264, 0x3c050001, 0x30e4ffff, 
-0x441021, 0xaee27264, 0x8ee2725c, 0x8ee37264, 
-0x34a53800, 0x441021, 0xaee2725c, 0x3651021, 
-0x62182b, 0x14600004, 0x3c03ffff, 0x8ee27264, 
-0x431021, 0xaee27264, 0x8ee304e4, 0x96e20458, 
-0x24630001, 0x2442ffff, 0x621824, 0xaee304e4, 
-0x8ee304e4, 0x8ee204e0, 0x14620005, 0x0, 
-0x8f820060, 0x2403fff7, 0x431024, 0xaf820060, 
-0x8fbf0020, 0x3e00008, 0x27bd0028, 0x27bdffe0, 
-0xafbf0018, 0x8ee304e8, 0x8ee204e0, 0x10620189, 
-0x0, 0x8ee204e8, 0x8ee304fc, 0x21100, 
-0x621821, 0x94670008, 0x92e204ed, 0x8c680000, 
-0x8c690004, 0x10400023, 0x946a000a, 0x8ee204c8, 
-0x34460400, 0x31420200, 0x1040001f, 0x0, 
-0x96e2045a, 0x30420010, 0x1040001b, 0x3c028000, 
-0x3c010001, 0x370821, 0xac2283d8, 0x8ee27264, 
-0x9464000e, 0x3c050001, 0x34a53800, 0x24420004, 
-0xaee27264, 0x8ee37264, 0x42400, 0x3651021, 
-0x3c010001, 0x370821, 0xac2483dc, 0x62182b, 
-0x14600005, 0x24e70004, 0x8ee27264, 0x3c03ffff, 
-0x431021, 0xaee27264, 0x8ee27264, 0x8002917, 
-0xaee27258, 0x8ee604c8, 0x8ee2726c, 0x30e4ffff, 
-0x44102a, 0x10400015, 0x0, 0x8f8200d8, 
-0x8ee37258, 0x431023, 0xaee2726c, 0x8ee2726c, 
-0x1c400007, 0x44102a, 0x8ee2726c, 0x3c030001, 
-0x431021, 0xaee2726c, 0x8ee2726c, 0x44102a, 
-0x10400006, 0x0, 0x8ee201b8, 0x24420001, 
-0xaee201b8, 0x8002a72, 0x8ee201b8, 0x3c020001, 
-0x571021, 0x8c4283d8, 0x54400001, 0x24e7fffc, 
-0x31420004, 0x104000b9, 0x30e2ffff, 0x3c020001, 
-0x571021, 0x8c4283d8, 0x1040002f, 0x5021, 
-0x8f840100, 0x27623000, 0x24850020, 0xa2102b, 
-0x50400001, 0x27652800, 0x8f820108, 0x10a20032, 
-0x0, 0x8f820104, 0x10a2002f, 0x24020015, 
-0xac880000, 0xac890004, 0x8ee37264, 0xa487000e, 
-0xac820018, 0xac830008, 0x8ee204e8, 0x3c030001, 
-0x771821, 0x8c6383dc, 0xac860010, 0x431025, 
-0xac82001c, 0xaf850100, 0x92e204ec, 0x14400066, 
-0x240a0001, 0x8ee24e28, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e28, 0x24420001, 
-0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38, 
-0x2e21821, 0x24020015, 0xac620000, 0x24020001, 
-0x80029bf, 0xac620004, 0x8f840100, 0x27623000, 
-0x24850020, 0xa2102b, 0x50400001, 0x27652800, 
-0x8f820108, 0x10a20004, 0x0, 0x8f820104, 
-0x14a20006, 0x24020006, 0x8ee201a8, 0x24420001, 
-0xaee201a8, 0x80029bf, 0x8ee201a8, 0xac880000, 
-0xac890004, 0x8ee37264, 0xa487000e, 0xac820018, 
-0xac830008, 0x8ee204e8, 0xac860010, 0xac82001c, 
-0xaf850100, 0x92e204ec, 0x14400037, 0x240a0001, 
-0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021, 
-0x8c830000, 0x24020005, 0x1462001f, 0x0, 
-0x8ee34e28, 0x8ee24e2c, 0x1062001b, 0x24030040, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e2c, 
-0x8ee54e28, 0x24420001, 0x10430007, 0x0, 
-0x8ee24e2c, 0x24420001, 0x10a20005, 0x0, 
-0x80029a9, 0x0, 0x14a00005, 0x0, 
-0x8f820108, 0x24420020, 0xaf820108, 0x8f820108, 
-0x8c820004, 0x2c420011, 0x50400013, 0xac800000, 
-0x80029bf, 0x0, 0x8ee24e28, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee24e28, 
-0x24420001, 0xaee24e28, 0x8ee24e28, 0x210c0, 
-0x24424e38, 0x2e22021, 0x24020005, 0xac820000, 
-0x24020001, 0xac820004, 0x1540000a, 0x24020001, 
-0xafa90010, 0x8ee27264, 0x3c040001, 0x24845730, 
-0x3c050004, 0xafa20014, 0x8ee604e4, 0x8002a4f, 
-0x34a5f204, 0xa2e204ed, 0x8ee204e8, 0x8ee304fc, 
-0x8ee47258, 0x3c060001, 0x34c63800, 0x3c010001, 
-0x370821, 0xac2083d8, 0x3c010001, 0x370821, 
-0xac2083dc, 0x21100, 0x431021, 0xac44000c, 
-0x8ee27264, 0x2405fff8, 0x30e3ffff, 0x431021, 
-0x24420007, 0x451024, 0x24630007, 0xaee27258, 
-0x8ee2726c, 0x8ee47258, 0x651824, 0x431023, 
-0xaee2726c, 0x3661021, 0x82202b, 0x14800004, 
-0x3c03ffff, 0x8ee27258, 0x431021, 0xaee27258, 
-0x8ee27258, 0x8002a64, 0xaee27264, 0x10400073, 
-0x0, 0x8f830100, 0x27623000, 0x24640020, 
-0x82102b, 0x14400002, 0x5021, 0x27642800, 
-0x8f820108, 0x10820004, 0x0, 0x8f820104, 
-0x14820006, 0x24050005, 0x8ee201a8, 0x24420001, 
-0xaee201a8, 0x8002a46, 0x8ee201a8, 0xac680000, 
-0xac690004, 0x8ee27264, 0xa467000e, 0xac650018, 
-0xac620008, 0x8ee204e8, 0xac660010, 0xac62001c, 
-0xaf840100, 0x92e204ec, 0x14400036, 0x240a0001, 
-0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021, 
-0x8c820000, 0x1445001f, 0x0, 0x8ee34e28, 
-0x8ee24e2c, 0x1062001b, 0x24030040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e2c, 0x8ee54e28, 
-0x24420001, 0x10430007, 0x0, 0x8ee24e2c, 
-0x24420001, 0x10a20005, 0x0, 0x8002a30, 
-0x0, 0x14a00005, 0x0, 0x8f820108, 
-0x24420020, 0xaf820108, 0x8f820108, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x8002a46, 
-0x0, 0x8ee24e28, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e28, 0x24420001, 
-0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38, 
-0x2e22021, 0x24020005, 0xac820000, 0x24020001, 
-0xac820004, 0x1540000c, 0x30e5ffff, 0x3c040001, 
-0x24845748, 0x3c050004, 0xafa90010, 0xafa00014, 
-0x8ee604e4, 0x34a5f237, 0xc002403, 0x30e7ffff, 
-0x8002a72, 0x0, 0x8ee27264, 0x451021, 
-0xaee27264, 0x8ee2726c, 0x8ee37264, 0x3c040001, 
-0x34843800, 0xa2e004ed, 0x451023, 0xaee2726c, 
-0x3641021, 0x62182b, 0x14600004, 0x3c03ffff, 
-0x8ee27264, 0x431021, 0xaee27264, 0x8ee304e8, 
-0x96e20458, 0x24630001, 0x2442ffff, 0x621824, 
-0xaee304e8, 0x8ee304e8, 0x8ee204e0, 0x14620005, 
-0x0, 0x8f820060, 0x2403fff7, 0x431024, 
-0xaf820060, 0x8fbf0018, 0x3e00008, 0x27bd0020, 
-0x27bdffe0, 0xafbf001c, 0xafb00018, 0x8f820100, 
-0x8ee34e2c, 0x8f820104, 0x8f850108, 0x24020040, 
-0x24630001, 0x50620003, 0x1021, 0x8ee24e2c, 
-0x24420001, 0xaee24e2c, 0x8ee24e2c, 0x8ee34e2c, 
-0x210c0, 0x24424e38, 0x2e22021, 0x8ee24e28, 
-0x8c870004, 0x14620007, 0xa03021, 0x8f820108, 
-0x24420020, 0xaf820108, 0x8f820108, 0x8002aa2, 
-0xac800000, 0x8ee24e2c, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e2c, 0x24420001, 
-0x210c0, 0x24424e38, 0x2e22021, 0x8c820004, 
-0x8f830108, 0x21140, 0x621821, 0xaf830108, 
-0xac800000, 0x8cc20018, 0x2443fffe, 0x2c620013, 
-0x104000c1, 0x31080, 0x3c010001, 0x220821, 
-0x8c225770, 0x400008, 0x0, 0x8ee204f0, 
-0x471021, 0xaee204f0, 0x8ee204f0, 0x8f43023c, 
-0x43102b, 0x144000be, 0x0, 0x8ee304e4, 
-0x8ee204f8, 0x506200ba, 0xa2e004f4, 0x8f830120, 
-0x27623800, 0x24660020, 0xc2102b, 0x50400001, 
-0x27663000, 0x8f820128, 0x10c20004, 0x0, 
-0x8f820124, 0x14c20007, 0x0, 0x8ee201a4, 
-0x8021, 0x24420001, 0xaee201a4, 0x8002b12, 
-0x8ee201a4, 0x8ee204e4, 0xac62001c, 0x8ee404b0, 
-0x8ee504b4, 0x2462001c, 0xac620008, 0x24020008, 
-0xa462000e, 0x24020011, 0xac620018, 0xac640000, 
-0xac650004, 0x8ee204c4, 0xac620010, 0xaf860120, 
-0x92e24e20, 0x14400037, 0x24100001, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c830000, 
-0x24020012, 0x1462001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x24030040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee54e30, 
-0x24420001, 0x10430007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10a20005, 0x0, 0x8002afc, 
-0x0, 0x14a00005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x8002b12, 
-0x0, 0x8ee24e30, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x24020012, 0xac820000, 0x24020001, 
-0xac820004, 0x5600000b, 0x24100001, 0x8ee204e4, 
-0x3c040001, 0x24845754, 0xafa00014, 0xafa20010, 
-0x8ee60608, 0x8f470228, 0x3c050009, 0xc002403, 
-0x34a5f006, 0x16000003, 0x24020001, 0x8002b71, 
-0xa2e204f4, 0x8ee20170, 0x24420001, 0xaee20170, 
-0x8ee20170, 0x8ee204e4, 0xa2e004f4, 0xaee004f0, 
-0xaee204f8, 0x8f42023c, 0x50400045, 0xaee07274, 
-0x8ee20184, 0x24420001, 0xaee20184, 0x8ee20184, 
-0x8002b71, 0xaee07274, 0x8ee20504, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee20504, 
-0x24420001, 0xaee20504, 0x8ee20504, 0x8cc30018, 
-0x21080, 0x571021, 0x8c440508, 0x24020003, 
-0x1462000f, 0x0, 0x3c020001, 0x571021, 
-0x904283b1, 0x10400014, 0x0, 0x8ee201d0, 
-0x8ee35240, 0x441021, 0xaee201d0, 0x8ee201d8, 
-0x641821, 0x306300ff, 0x8002b59, 0xaee35240, 
-0x8ee201cc, 0x8ee30e10, 0x441021, 0xaee201cc, 
-0x8ee201d8, 0x641821, 0x306301ff, 0xaee30e10, 
-0x441021, 0xaee201d8, 0x8ee20000, 0x34420040, 
-0x8002b71, 0xaee20000, 0x8ee2014c, 0x3c010001, 
-0x370821, 0xa02083e0, 0x24420001, 0xaee2014c, 
-0x8002b71, 0x8ee2014c, 0x94c7000e, 0x8cc2001c, 
-0x3c040001, 0x24845760, 0xafa60014, 0xafa20010, 
-0x8cc60018, 0x3c050008, 0xc002403, 0x34a50910, 
-0x8fbf001c, 0x8fb00018, 0x3e00008, 0x27bd0020, 
-0x27bdff98, 0xafbf0060, 0xafbe005c, 0xafb60058, 
-0xafb50054, 0xafb40050, 0xafb3004c, 0xafb20048, 
-0xafb10044, 0xafb00040, 0x8f830108, 0x8f820104, 
-0xafa00024, 0x106203e7, 0xafa0002c, 0x3c1e0001, 
-0x37de3800, 0x3c0bffff, 0x8f930108, 0x8e620018, 
-0x8f830104, 0x2443fffe, 0x2c620014, 0x104003cf, 
-0x31080, 0x3c010001, 0x220821, 0x8c2257c0, 
-0x400008, 0x0, 0x9663000e, 0x8ee2725c, 
-0x8ee404f0, 0x431021, 0xaee2725c, 0x8e63001c, 
-0x96e20458, 0x24840001, 0xaee404f0, 0x24630001, 
-0x2442ffff, 0x621824, 0xaee304e4, 0x8f42023c, 
-0x82202b, 0x148003b9, 0x0, 0x8f830120, 
-0x27623800, 0x24660020, 0xc2102b, 0x50400001, 
-0x27663000, 0x8f820128, 0x10c20004, 0x0, 
-0x8f820124, 0x14c20007, 0x0, 0x8ee201a4, 
-0x8021, 0x24420001, 0xaee201a4, 0x8002bfe, 
-0x8ee201a4, 0x8ee204e4, 0xac62001c, 0x8ee404b0, 
-0x8ee504b4, 0x2462001c, 0xac620008, 0x24020008, 
-0xa462000e, 0x24020011, 0xac620018, 0xac640000, 
-0xac650004, 0x8ee204c4, 0xac620010, 0xaf860120, 
-0x92e24e20, 0x14400037, 0x24100001, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c830000, 
-0x24020012, 0x1462001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x240c0040, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x104c0007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x8002be8, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400013, 0xac800000, 0x8002bfe, 
-0x0, 0x8ee24e30, 0x240c0040, 0x24420001, 
-0x504c0003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x24020012, 0x240c0001, 0xac820000, 
-0xac8c0004, 0x5600000d, 0x24100001, 0x8ee204e4, 
-0x3c040001, 0x24845754, 0xafa00014, 0xafa20010, 
-0x8ee60608, 0x8f470228, 0x3c050009, 0x34a5f006, 
-0xc002403, 0xafab0038, 0x8fab0038, 0x1200030a, 
-0x240c0001, 0x8002f19, 0x0, 0x966c001c, 
-0xafac002c, 0x9662001e, 0x3c0c8000, 0xafac0024, 
-0xae62001c, 0x8e75001c, 0x8ee204fc, 0x8ee404fc, 
-0x151900, 0x621021, 0x8c52000c, 0x92e27b98, 
-0x641821, 0x9476000a, 0x14400003, 0x32c20002, 
-0xaef27ba4, 0xaef57b9c, 0x1040004b, 0x8021, 
-0x96e2045a, 0x30420002, 0x10400047, 0x0, 
-0x8e63001c, 0x8ee204fc, 0x32100, 0x821021, 
-0x8c42000c, 0x37e1821, 0x24420022, 0x43102b, 
-0x1440000a, 0x24050014, 0x8ee204fc, 0x821021, 
-0x8c44000c, 0xafab0038, 0xc002f75, 0x2484000e, 
-0x8fab0038, 0x8002c52, 0x3050ffff, 0x8ee204fc, 
-0x821021, 0x8c42000c, 0x9450000e, 0x94430010, 
-0x94440012, 0x94450014, 0x2038021, 0x2048021, 
-0x2058021, 0x94430016, 0x94440018, 0x9445001a, 
-0x2038021, 0x2048021, 0x2058021, 0x9443001c, 
-0x9444001e, 0x94420020, 0x2038021, 0x2048021, 
-0x2028021, 0x101c02, 0x3202ffff, 0x628021, 
-0x8e63001c, 0x8ee204fc, 0x102402, 0x32900, 
-0xa21021, 0x8c43000c, 0x3202ffff, 0x828021, 
-0x37e1021, 0x24630018, 0x62182b, 0x14600009, 
-0x0, 0x8ee204fc, 0xa21021, 0x8c43000c, 
-0x101027, 0x3c01ffff, 0x230821, 0x8002c6f, 
-0xa4220018, 0x8ee204fc, 0xa21021, 0x8c43000c, 
-0x101027, 0xa4620018, 0x96e2045a, 0x8821, 
-0x30420008, 0x14400063, 0xa021, 0x8e63001c, 
-0x8ee204fc, 0x33100, 0xc21021, 0x8c42000c, 
-0x37e1821, 0x24420022, 0x43102b, 0x14400035, 
-0x0, 0x8ee204fc, 0xc21021, 0x8c42000c, 
-0x24470010, 0x37e1021, 0xe2102b, 0x50400001, 
-0xeb3821, 0x8ee204fc, 0x94f10000, 0xc21021, 
-0x8c42000c, 0x24470016, 0x37e1021, 0xe2102b, 
-0x14400002, 0x2634ffec, 0xeb3821, 0x8ee204fc, 
-0x90e30001, 0xc21021, 0x8c42000c, 0x2447001a, 
-0x37e1021, 0xe2102b, 0x14400002, 0x2838821, 
-0xeb3821, 0x94e20000, 0x24e70002, 0x2228821, 
-0x37e1021, 0xe2102b, 0x50400001, 0xeb3821, 
-0x94e20000, 0x24e70002, 0x2228821, 0x37e1021, 
-0xe2102b, 0x50400001, 0xeb3821, 0x94e20000, 
-0x24e70002, 0x2228821, 0x37e1021, 0xe2102b, 
-0x50400001, 0xeb3821, 0x94e20000, 0x8002cd0, 
-0x2228821, 0x8ee204fc, 0xc21021, 0x8c43000c, 
-0x8ee204fc, 0x94710010, 0x8ee304fc, 0xc21021, 
-0x8c44000c, 0xc31821, 0x8c62000c, 0x2634ffec, 
-0x90840017, 0x8ee304fc, 0x9442001a, 0x2848821, 
-0xc31821, 0x8c65000c, 0x8ee304fc, 0x2228821, 
-0x8ee204fc, 0xc31821, 0xc21021, 0x8c44000c, 
-0x8c62000c, 0x94a3001c, 0x9484001e, 0x94420020, 
-0x2238821, 0x2248821, 0x2228821, 0x111c02, 
-0x3222ffff, 0x628821, 0x111c02, 0x3222ffff, 
-0x628821, 0x32c20001, 0x104000b2, 0x0, 
-0x96e2045a, 0x30420001, 0x104000ae, 0x32c20080, 
-0x10400008, 0x0, 0x92e27b98, 0x14400005, 
-0x0, 0x240c0001, 0xa2ec7b98, 0xaef57b9c, 
-0xaef27ba4, 0x8ee304fc, 0x151100, 0x431021, 
-0x8c47000c, 0x37e1821, 0x24e2000e, 0x43102b, 
-0x14400008, 0xe02021, 0x2405000e, 0xc002f75, 
-0xafab0038, 0x3042ffff, 0x8fab0038, 0x8002d09, 
-0x2028021, 0x94e60000, 0x24e70002, 0x94e50000, 
-0x24e70002, 0x94e30000, 0x24e70002, 0x94e20000, 
-0x24e70002, 0x94e40000, 0x24e70002, 0x2068021, 
-0x2058021, 0x2038021, 0x2028021, 0x94e20000, 
-0x94e30002, 0x2048021, 0x2028021, 0x2038021, 
-0x101c02, 0x3202ffff, 0x628021, 0x101c02, 
-0x3202ffff, 0x8ee47b9c, 0x628021, 0x14950004, 
-0x3205ffff, 0x96620016, 0x8002d17, 0x512021, 
-0x96620016, 0x542021, 0x41402, 0x3083ffff, 
-0x432021, 0x852023, 0x41402, 0x822021, 
-0x3084ffff, 0x50800001, 0x3404ffff, 0x8ee27ba4, 
-0x24430017, 0x37e1021, 0x62102b, 0x50400001, 
-0x6b1821, 0x90630000, 0x24020011, 0x14620031, 
-0x24020006, 0x8ee27ba4, 0x37e1821, 0x24420028, 
-0x43102b, 0x14400018, 0x0, 0x8ee27b9c, 
-0x12a2000a, 0x32c20100, 0x8ee27ba4, 0x3c01ffff, 
-0x220821, 0x94220028, 0x822021, 0x41c02, 
-0x3082ffff, 0x622021, 0x32c20100, 0x14400004, 
-0x41027, 0x92e27b98, 0x14400002, 0x41027, 
-0x3044ffff, 0x8ee27ba4, 0x3c01ffff, 0x220821, 
-0x8002d8a, 0xa4240028, 0x8ee27b9c, 0x12a20008, 
-0x32c20100, 0x8ee27ba4, 0x94420028, 0x822021, 
-0x41c02, 0x3082ffff, 0x622021, 0x32c20100, 
-0x14400004, 0x41027, 0x92e27b98, 0x14400002, 
-0x41027, 0x3044ffff, 0x8ee27ba4, 0x8002d8a, 
-0xa4440028, 0x1462002f, 0x37e1821, 0x8ee27ba4, 
-0x24420032, 0x43102b, 0x14400018, 0x0, 
-0x8ee27b9c, 0x12a2000a, 0x32c20100, 0x8ee27ba4, 
-0x3c01ffff, 0x220821, 0x94220032, 0x822021, 
-0x41c02, 0x3082ffff, 0x622021, 0x32c20100, 
-0x14400004, 0x41027, 0x92e27b98, 0x14400002, 
-0x41027, 0x3044ffff, 0x8ee27ba4, 0x3c01ffff, 
-0x220821, 0x8002d8a, 0xa4240032, 0x8ee27b9c, 
-0x12a20008, 0x32c20100, 0x8ee27ba4, 0x94420032, 
-0x822021, 0x41c02, 0x3082ffff, 0x622021, 
-0x32c20100, 0x14400004, 0x41027, 0x92e27b98, 
-0x14400002, 0x41027, 0x3044ffff, 0x8ee27ba4, 
-0xa4440032, 0x8fac0024, 0x1180002c, 0x37e1821, 
-0x8e420000, 0xae42fffc, 0x2642000a, 0x43102b, 
-0x1440001b, 0x34038100, 0x26430004, 0x37e1021, 
-0x62102b, 0x14400003, 0x602021, 0x6b1821, 
-0x602021, 0x8c620000, 0x24630004, 0xae420000, 
-0x37e1021, 0x62102b, 0x50400001, 0x6b1821, 
-0x8c620000, 0xac820000, 0x34028100, 0xa4620000, 
-0x24630002, 0x37e1021, 0x62102b, 0x50400001, 
-0x6b1821, 0x97ac002e, 0x8002db4, 0xa46c0000, 
-0x8e420004, 0x8e440008, 0xa6430008, 0x97ac002e, 
-0xa64c000a, 0xae420000, 0xae440004, 0x9662000e, 
-0x2652fffc, 0x24420004, 0xa662000e, 0x9662000e, 
-0x8ee3725c, 0x621821, 0xaee3725c, 0xafb20018, 
-0x8ee3725c, 0xafa3001c, 0x8ee2725c, 0x2c42003c, 
-0x10400004, 0x24620001, 0x2403fffe, 0x431024, 
-0xafa2001c, 0x32c20080, 0x1040000c, 0x32c20100, 
-0x8ee27ba8, 0x24430001, 0x210c0, 0x571021, 
-0xaee37ba8, 0x8fa30018, 0x8fa4001c, 0xac437bac, 
-0xac447bb0, 0x8002ea0, 0xaee0725c, 0x10400072, 
-0x0, 0x8ee27ba8, 0x24430001, 0x210c0, 
-0x571021, 0xaee37ba8, 0x8fa30018, 0x8fa4001c, 
-0xac437bac, 0xac447bb0, 0x8ee27ba8, 0x10400063, 
-0x4821, 0x5021, 0x8f8200f0, 0x24480008, 
-0x27621800, 0x102102b, 0x50400001, 0x27681000, 
-0x8f8200f4, 0x15020007, 0x0, 0x8ee201b4, 
-0x8021, 0x24420001, 0xaee201b4, 0x8002dfa, 
-0x8ee201b4, 0x8f8300f0, 0x24100001, 0x1571021, 
-0x8c447bac, 0x8c457bb0, 0xac640000, 0xac650004, 
-0xaf8800f0, 0x16000006, 0x2ea1021, 0x8ee20088, 
-0x24420001, 0xaee20088, 0x8002e3f, 0x8ee20088, 
-0x8c427bb0, 0x8ee400e0, 0x8ee500e4, 0x8ee67b9c, 
-0x401821, 0x1021, 0xa32821, 0xa3382b, 
-0x822021, 0x872021, 0x8ee204fc, 0xc93021, 
-0x63100, 0xaee400e0, 0xaee500e4, 0xc23021, 
-0x94c2000a, 0x240c0002, 0x21142, 0x30430003, 
-0x106c0016, 0x28620003, 0x10400005, 0x240c0001, 
-0x106c0008, 0x0, 0x8002e3f, 0x0, 
-0x240c0003, 0x106c0017, 0x0, 0x8002e3f, 
-0x0, 0x8ee200e8, 0x8ee300ec, 0x24630001, 
-0x2c640001, 0x441021, 0xaee200e8, 0xaee300ec, 
-0x8ee200e8, 0x8002e3f, 0x8ee300ec, 0x8ee200f0, 
-0x8ee300f4, 0x24630001, 0x2c640001, 0x441021, 
-0xaee200f0, 0xaee300f4, 0x8ee200f0, 0x8002e3f, 
-0x8ee300f4, 0x8ee200f8, 0x8ee300fc, 0x24630001, 
-0x2c640001, 0x441021, 0xaee200f8, 0xaee300fc, 
-0x8ee200f8, 0x8ee300fc, 0x8ee27ba8, 0x25290001, 
-0x122102b, 0x1440ffa0, 0x254a0008, 0xa2e07b98, 
-0x8002e9f, 0xaee07ba8, 0x8f8200f0, 0x24470008, 
-0x27621800, 0xe2102b, 0x50400001, 0x27671000, 
-0x8f8200f4, 0x14e20007, 0x0, 0x8ee201b4, 
-0x8021, 0x24420001, 0xaee201b4, 0x8002e5d, 
-0x8ee201b4, 0x8f8200f0, 0x24100001, 0x8fa30018, 
-0x8fa4001c, 0xac430000, 0xac440004, 0xaf8700f0, 
-0x16000007, 0x0, 0x8ee20088, 0x24420001, 
-0xaee20088, 0x8ee20088, 0x8002ea0, 0xaee0725c, 
-0x8ee2725c, 0x8ee400e0, 0x8ee500e4, 0x240c0002, 
-0x401821, 0x1021, 0xa32821, 0xa3302b, 
-0x822021, 0x862021, 0x161142, 0x30430003, 
-0xaee400e0, 0xaee500e4, 0x106c0017, 0x2c620003, 
-0x10400005, 0x240c0001, 0x106c0008, 0x0, 
-0x8002ea0, 0xaee0725c, 0x240c0003, 0x106c0019, 
-0x0, 0x8002ea0, 0xaee0725c, 0x8ee200e8, 
-0x8ee300ec, 0x24630001, 0x2c640001, 0x441021, 
-0xaee200e8, 0xaee300ec, 0x8ee200e8, 0x8ee300ec, 
-0x8002ea0, 0xaee0725c, 0x8ee200f0, 0x8ee300f4, 
-0x24630001, 0x2c640001, 0x441021, 0xaee200f0, 
-0xaee300f4, 0x8ee200f0, 0x8ee300f4, 0x8002ea0, 
-0xaee0725c, 0x8ee200f8, 0x8ee300fc, 0x24630001, 
-0x2c640001, 0x441021, 0xaee200f8, 0xaee300fc, 
-0x8ee200f8, 0x8ee300fc, 0xaee0725c, 0x8e62001c, 
-0x96e30458, 0x8ee404f0, 0x24420001, 0x2463ffff, 
-0x431024, 0x24840001, 0xaee204e4, 0xaee404f0, 
-0x8f42023c, 0x82202b, 0x148000b0, 0x0, 
-0x8f830120, 0x27623800, 0x24660020, 0xc2102b, 
-0x50400001, 0x27663000, 0x8f820128, 0x10c20004, 
-0x0, 0x8f820124, 0x14c20007, 0x0, 
-0x8ee201a4, 0x8021, 0x24420001, 0xaee201a4, 
-0x8002f07, 0x8ee201a4, 0x8ee204e4, 0xac62001c, 
-0x8ee404b0, 0x8ee504b4, 0x2462001c, 0xac620008, 
-0x24020008, 0xa462000e, 0x24020011, 0xac620018, 
-0xac640000, 0xac650004, 0x8ee204c4, 0xac620010, 
-0xaf860120, 0x92e24e20, 0x14400037, 0x24100001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c830000, 0x24020012, 0x1462001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x240c0040, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee34e30, 0x24420001, 0x104c0007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10620005, 0x0, 
-0x8002ef1, 0x0, 0x14600005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400013, 0xac800000, 
-0x8002f07, 0x0, 0x8ee24e30, 0x240c0040, 
-0x24420001, 0x504c0003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x24020012, 0x240c0001, 
-0xac820000, 0xac8c0004, 0x5600000d, 0x24100001, 
-0x8ee204e4, 0x3c040001, 0x24845754, 0xafa00014, 
-0xafa20010, 0x8ee60608, 0x8f470228, 0x3c050009, 
-0x34a5f006, 0xc002403, 0xafab0038, 0x8fab0038, 
-0x16000003, 0x240c0001, 0x8002f5c, 0xa2ec04f4, 
-0x8ee20170, 0x24420001, 0xaee20170, 0x8ee20170, 
-0x8ee204e4, 0xa2e004f4, 0xaee004f0, 0xaee07274, 
-0xaee204f8, 0x8f42023c, 0x10400038, 0x0, 
-0x8ee20184, 0x24420001, 0xaee20184, 0x8002f5c, 
-0x8ee20184, 0x8ee20504, 0x240c0040, 0x24420001, 
-0x504c0003, 0x1021, 0x8ee20504, 0x24420001, 
-0xaee20504, 0x8ee20504, 0x8e630018, 0x240c0003, 
-0x21080, 0x571021, 0x146c000f, 0x8c440508, 
-0x3c020001, 0x571021, 0x904283b1, 0x10400014, 
-0x0, 0x8ee201d0, 0x8ee35240, 0x441021, 
-0xaee201d0, 0x8ee201d8, 0x641821, 0x306300ff, 
-0x8002f4f, 0xaee35240, 0x8ee201cc, 0x8ee30e10, 
-0x441021, 0xaee201cc, 0x8ee201d8, 0x641821, 
-0x306301ff, 0xaee30e10, 0x441021, 0xaee201d8, 
-0x8ee20000, 0x34420040, 0x8002f5c, 0xaee20000, 
-0x8ee2014c, 0x3c010001, 0x370821, 0xa02083e0, 
-0x24420001, 0xaee2014c, 0x8ee2014c, 0x8f820108, 
-0x24420020, 0xaf820108, 0x8f820108, 0x8f820108, 
-0x27633000, 0x43102b, 0x14400002, 0x27622800, 
-0xaf820108, 0x8f830108, 0x8f820104, 0x1462fc1e, 
-0x0, 0x8fbf0060, 0x8fbe005c, 0x8fb60058, 
-0x8fb50054, 0x8fb40050, 0x8fb3004c, 0x8fb20048, 
-0x8fb10044, 0x8fb00040, 0x3e00008, 0x27bd0068, 
-0x52843, 0x10a0000d, 0x3021, 0x3c030001, 
-0x34633800, 0x3c07ffff, 0x3631021, 0x82102b, 
-0x50400001, 0x872021, 0x94820000, 0x24840002, 
-0x24a5ffff, 0x14a0fff8, 0xc23021, 0x61c02, 
-0x30c2ffff, 0x623021, 0x61c02, 0x30c2ffff, 
-0x623021, 0x3e00008, 0x30c2ffff, 0x27bdff88, 
-0x240f0001, 0xafbf0070, 0xafbe006c, 0xafb60068, 
-0xafb50064, 0xafb40060, 0xafb3005c, 0xafb20058, 
-0xafb10054, 0xafb00050, 0xa3a00027, 0xafaf002c, 
-0x8ee204d4, 0x8021, 0x30420001, 0x1440002a, 
-0xa3a00037, 0x8f8700e0, 0x8f8800c4, 0x8f8200e8, 
-0xe22023, 0x2c821000, 0x50400001, 0x24841000, 
-0x420c2, 0x801821, 0x8ee400c8, 0x8ee500cc, 
-0x1021, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xaee400c8, 0xaee500cc, 0x8f8300c8, 
-0x3c02000a, 0x3442efff, 0x1032023, 0x44102b, 
-0x10400003, 0x3c02000a, 0x3442f000, 0x822021, 
-0x801821, 0x8ee400c0, 0x8ee500c4, 0x1021, 
-0xa32821, 0xa3302b, 0x822021, 0x862021, 
-0xaee400c0, 0xaee500c4, 0xaf8800c8, 0xaf8700e4, 
-0x80034cc, 0xaf8700e8, 0x3c020001, 0x571021, 
-0x904283c0, 0x1040000b, 0x0, 0x3c140001, 
-0x297a021, 0x8e9483c4, 0x3c130001, 0x2779821, 
-0x8e7383c8, 0x3c120001, 0x2579021, 0x8003193, 
-0x8e5283cc, 0x8f8300e0, 0x8f8200e4, 0x10430007, 
-0x8821, 0x8f8200e4, 0x24110001, 0x8c430000, 
-0x8c440004, 0xafa30018, 0xafa4001c, 0x1620000e, 
-0x3c02ffff, 0x8f8200c4, 0xafa20010, 0x8f8200c8, 
-0x3c040001, 0x24845870, 0xafa20014, 0x8f8600e0, 
-0x8f8700e4, 0x3c050006, 0xc002403, 0x34a5f000, 
-0x80034cc, 0x0, 0x8fa3001c, 0x8fb20018, 
-0x3074ffff, 0x2694fffc, 0x621024, 0x10400058, 
-0x2409821, 0x3c020080, 0x621024, 0x1040000a, 
-0x3c040040, 0x8ee2007c, 0x24420001, 0xaee2007c, 
-0x8ee2007c, 0x8ee201fc, 0x24420001, 0xaee201fc, 
-0x80034c6, 0x8ee201fc, 0x3c060004, 0x3c0b0001, 
-0x3c0a0002, 0x3c050010, 0x3c090008, 0x8ee20080, 
-0x3c080020, 0x34078000, 0x24420001, 0xaee20080, 
-0x8ee20080, 0x8fa2001c, 0x441824, 0x10660021, 
-0xc3102b, 0x14400007, 0x0, 0x106b0011, 
-0x0, 0x106a0015, 0x0, 0x8003049, 
-0x42042, 0x10650023, 0xa3102b, 0x14400005, 
-0x0, 0x10690019, 0x0, 0x8003049, 
-0x42042, 0x10680021, 0x0, 0x8003049, 
-0x42042, 0x8ee20034, 0x24420001, 0xaee20034, 
-0x8ee20034, 0x8003049, 0x42042, 0x8ee201ec, 
-0x24420001, 0xaee201ec, 0x8ee201ec, 0x8003049, 
-0x42042, 0x8ee201f0, 0x24420001, 0xaee201f0, 
-0x8ee201f0, 0x8003049, 0x42042, 0x8ee201f4, 
-0x24420001, 0xaee201f4, 0x8ee201f4, 0x8003049, 
-0x42042, 0x8ee20030, 0x24420001, 0xaee20030, 
-0x8ee20030, 0x8003049, 0x42042, 0x8ee201f8, 
-0x24420001, 0xaee201f8, 0x8ee201f8, 0x42042, 
-0x1087047c, 0x0, 0x800300e, 0x0, 
-0x3c020001, 0x571021, 0x904283b2, 0x14400084, 
-0x24020001, 0x3c030001, 0x771821, 0x906383b3, 
-0x1462007f, 0x3c020100, 0x8e430000, 0x621024, 
-0x1040006f, 0x2402ffff, 0x14620005, 0x24100001, 
-0x96430004, 0x3402ffff, 0x10620075, 0x0, 
-0x92e204d8, 0x14400072, 0x0, 0x3c020001, 
-0x571021, 0x8c4283b4, 0x28420005, 0x10400020, 
-0x3821, 0x3c020001, 0x571021, 0x8c4283b4, 
-0x18400016, 0x2821, 0x96660000, 0x520c0, 
-0x971021, 0x9442777e, 0x14460009, 0x971021, 
-0x94437780, 0x96620002, 0x14620005, 0x971021, 
-0x94437782, 0x96620004, 0x50620008, 0x24070001, 
-0x3c020001, 0x571021, 0x8c4283b4, 0x24a50001, 
-0xa2102a, 0x5440ffee, 0x520c0, 0x30e200ff, 
-0x10400440, 0x0, 0x80030d5, 0x0, 
-0x2402021, 0xc0022fe, 0x24050006, 0x3044001f, 
-0x428c0, 0x2e51021, 0x9442727c, 0x30424000, 
-0x14400434, 0xb71021, 0x9443727e, 0x96620000, 
-0x1462000b, 0x418c0, 0xb71021, 0x94437280, 
-0x96620002, 0x14620006, 0x418c0, 0xb71021, 
-0x94437282, 0x96620004, 0x10620035, 0x418c0, 
-0x2e31021, 0x9442727c, 0x30428000, 0x14400421, 
-0x2e31021, 0x944b727c, 0x96670000, 0xb28c0, 
-0xb71021, 0x9442737e, 0x80030b7, 0x3021, 
-0x420c0, 0x2e41021, 0x9443737c, 0x2e41021, 
-0x944b737c, 0x30638000, 0x14600010, 0xb28c0, 
-0xb71021, 0x9442737e, 0x1447fff5, 0x1602021, 
-0xb71021, 0x94437380, 0x96620002, 0x5462fff1, 
-0x420c0, 0xb71021, 0x94437382, 0x96620004, 
-0x5462ffec, 0x420c0, 0x24060001, 0x30c200ff, 
-0x10400400, 0x0, 0x80030d5, 0x0, 
-0x97430202, 0x96420000, 0x146203fa, 0x0, 
-0x97430204, 0x96420002, 0x146203f6, 0x0, 
-0x97430206, 0x96420004, 0x146203f2, 0x0, 
-0x92420000, 0x3a030001, 0x30420001, 0x431024, 
-0x10400074, 0x2402ffff, 0x8e630000, 0x14620004, 
-0x3402ffff, 0x96630004, 0x1062006f, 0x240f0002, 
-0x3c020001, 0x571021, 0x904283b2, 0x1440006a, 
-0x240f0003, 0x92e204d8, 0x54400068, 0xafaf002c, 
-0x3c020001, 0x571021, 0x8c4283b4, 0x28420005, 
-0x10400020, 0x3821, 0x3c020001, 0x571021, 
-0x8c4283b4, 0x18400016, 0x2821, 0x96660000, 
-0x520c0, 0x971021, 0x9442777e, 0x14460009, 
-0x971021, 0x94437780, 0x96620002, 0x14620005, 
-0x971021, 0x94437782, 0x96620004, 0x50620008, 
-0x24070001, 0x3c020001, 0x571021, 0x8c4283b4, 
-0x24a50001, 0xa2102a, 0x5440ffee, 0x520c0, 
-0x30e200ff, 0x14400044, 0x240f0003, 0x80034c6, 
-0x0, 0x2402021, 0xc0022fe, 0x24050006, 
-0x3044001f, 0x428c0, 0x2e51021, 0x9442727c, 
-0x30424000, 0x144003af, 0xb71021, 0x9443727e, 
-0x96620000, 0x1462000b, 0x418c0, 0xb71021, 
-0x94437280, 0x96620002, 0x14620006, 0x418c0, 
-0xb71021, 0x94437282, 0x96620004, 0x10620027, 
-0x418c0, 0x2e31021, 0x9442727c, 0x30428000, 
-0x1440039c, 0x2e31021, 0x944b727c, 0x96670000, 
-0xb28c0, 0xb71021, 0x9442737e, 0x800313c, 
-0x3021, 0x420c0, 0x2e41021, 0x9443737c, 
-0x2e41021, 0x944b737c, 0x30638000, 0x14600010, 
-0xb28c0, 0xb71021, 0x9442737e, 0x1447fff5, 
-0x1602021, 0xb71021, 0x94437380, 0x96620002, 
-0x5462fff1, 0x420c0, 0xb71021, 0x94437382, 
-0x96620004, 0x5462ffec, 0x420c0, 0x24060001, 
-0x30c200ff, 0x1040037b, 0x0, 0x800314f, 
-0x240f0003, 0x240f0001, 0xafaf002c, 0x8f420260, 
-0x54102b, 0x1040003a, 0x0, 0x8f8300e4, 
-0x8f8200e0, 0x10620003, 0x24630008, 0xaf8300e4, 
-0xaf8300e8, 0x8ee400c0, 0x8ee500c4, 0x2801821, 
-0x1021, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xaee400c0, 0xaee500c4, 0x8ee20058, 
-0x24420001, 0xaee20058, 0x8ee20058, 0x8ee2007c, 
-0x24420001, 0xaee2007c, 0x8ee2007c, 0x8f8200e0, 
-0xafa20010, 0x8f8200e4, 0x3c040001, 0x24845878, 
-0xafa20014, 0x8fa60018, 0x8fa7001c, 0x3c050006, 
-0xc002403, 0x34a5f003, 0x80034cc, 0x0, 
-0x8ee25240, 0xafa20010, 0x8ee25244, 0x3c040001, 
-0x24845884, 0xafa20014, 0x8ee60e10, 0x8ee70e18, 
-0x3c050006, 0xc002403, 0x34a5f002, 0x8ee201c0, 
-0x24420001, 0xaee201c0, 0x8ee20000, 0x8ee301c0, 
-0x2403ffbf, 0x431024, 0x8003470, 0xaee20000, 
-0x96e20468, 0x54102b, 0x10400003, 0x0, 
-0x240f0001, 0xa3af0027, 0x12800301, 0x24160007, 
-0x24150040, 0x241e0001, 0x240e0012, 0x8ee2724c, 
-0x8f430280, 0x24420001, 0x304207ff, 0x106202d3, 
-0x0, 0x93a20027, 0x10400014, 0x0, 
-0x8ee35240, 0x8ee25244, 0x10620009, 0x26ed5244, 
-0x8ee65244, 0x8ee35244, 0x21140, 0x24425248, 
-0x2e28021, 0x24630001, 0x80031bf, 0x306b00ff, 
-0x92e27248, 0x1440ffca, 0x0, 0x8ee201e0, 
-0x24420001, 0xaee201e0, 0x8ee201e0, 0x8ee30e10, 
-0x8ee20e18, 0x1062ffc2, 0x26ed0e18, 0x8ee60e18, 
-0x8ee30e18, 0x21140, 0x24420e20, 0x2e28021, 
-0x24630001, 0x306b01ff, 0x96e2046a, 0x30420010, 
-0x10400019, 0x0, 0x9642000c, 0x340f8100, 
-0x144f0015, 0x0, 0x3c020001, 0x571021, 
-0x904283c0, 0x14400010, 0x0, 0x9642000e, 
-0xa6020016, 0x8e420008, 0x8e430004, 0x8e440000, 
-0x2694fffc, 0xae42000c, 0xae430008, 0xae440004, 
-0x9602000e, 0x26730004, 0x240f0001, 0xa3af0037, 
-0x34420200, 0xa602000e, 0x8e020000, 0x8e030004, 
-0x3c040001, 0x34843800, 0x306a0007, 0x26a9823, 
-0x3641021, 0x262102b, 0x10400005, 0x28aa021, 
-0x2641023, 0x3621823, 0x3c020020, 0x439823, 
-0x26820007, 0x2404fff8, 0x9603000a, 0x446024, 
-0x6a1821, 0x6c102b, 0x10400002, 0x1803821, 
-0x603821, 0xae130018, 0x8f880120, 0x24e20007, 
-0x443824, 0x27623800, 0x25090020, 0x122102b, 
-0x50400001, 0x27693000, 0x8f820128, 0x11220004, 
-0x0, 0x8f820124, 0x15220007, 0x1401821, 
-0x8ee201a4, 0x8821, 0x24420001, 0xaee201a4, 
-0x800324c, 0x8ee201a4, 0x8e040000, 0x8e050004, 
-0x1021, 0xad130008, 0xa507000e, 0xad160018, 
-0xad06001c, 0xa3302b, 0xa32823, 0x822023, 
-0x862023, 0xad040000, 0xad050004, 0x8ee204c0, 
-0xad020010, 0xaf890120, 0x92e24e20, 0x14400033, 
-0x24110001, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c820000, 0x1456001f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee34e30, 0x24420001, 0x10550007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10620005, 0x0, 
-0x8003239, 0x0, 0x14600005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400010, 0xac800000, 
-0x800324c, 0x0, 0x8ee24e30, 0x24420001, 
-0x50550003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0xac960000, 0xac9e0004, 0x16200018, 
-0x3c050006, 0x8e020018, 0x3c040001, 0x24845890, 
-0xafa20010, 0x8e020000, 0x8e030004, 0x34a5f009, 
-0x2003021, 0xc002403, 0xafa30014, 0x93a20037, 
-0x10400216, 0x340f8100, 0x8e420004, 0x8e430008, 
-0x8e44000c, 0xa64f000c, 0xae420000, 0xae430004, 
-0xae440008, 0x96020016, 0x8003470, 0xa642000e, 
-0x14ec0168, 0x28a1823, 0x960c000a, 0x9603000e, 
-0x28a1023, 0xa602000a, 0x34620004, 0xa602000e, 
-0x8f880120, 0x27623800, 0x25090020, 0x122102b, 
-0x14400002, 0x306affff, 0x27693000, 0x8f820128, 
-0x11220004, 0x0, 0x8f820124, 0x15220007, 
-0x24040020, 0x8ee201a4, 0x8821, 0x24420001, 
-0xaee201a4, 0x80032ca, 0x8ee201a4, 0x8ee5724c, 
-0x8ee60490, 0x8ee70494, 0xa504000e, 0x24040004, 
-0xad100008, 0xad040018, 0x52940, 0xa01821, 
-0x1021, 0xe33821, 0xe3202b, 0xc23021, 
-0xc43021, 0xad060000, 0xad070004, 0x8ee2724c, 
-0xad02001c, 0x8ee204c4, 0xad020010, 0xaf890120, 
-0x92e24e20, 0x14400033, 0x24110001, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c820000, 
-0x1456001f, 0x0, 0x8ee34e30, 0x8ee24e34, 
-0x1062001b, 0x0, 0x8c820004, 0x24420001, 
-0xac820004, 0x8ee24e34, 0x8ee34e30, 0x24420001, 
-0x10550007, 0x0, 0x8ee24e34, 0x24420001, 
-0x10620005, 0x0, 0x80032b7, 0x0, 
-0x14600005, 0x0, 0x8f820128, 0x24420020, 
-0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011, 
-0x50400010, 0xac800000, 0x80032ca, 0x0, 
-0x8ee24e30, 0x24420001, 0x50550003, 0x1021, 
-0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0xac960000, 
-0xac9e0004, 0x1620000d, 0x0, 0xa60c000a, 
-0xa60a000e, 0x8f820100, 0xafa20010, 0x8f820104, 
-0x3c040001, 0x2484589c, 0x3c050006, 0xafa20014, 
-0x8ee6724c, 0x800343b, 0x34a5f00b, 0x3c010001, 
-0x370821, 0xa02083c0, 0xadab0000, 0x8ee201d8, 
-0x8ee3724c, 0x2442ffff, 0xaee201d8, 0x8ee201d8, 
-0x24630001, 0x306307ff, 0x26e25244, 0x15a20006, 
-0xaee3724c, 0x8ee201d0, 0x2442ffff, 0xaee201d0, 
-0x80032ef, 0x8ee201d0, 0x8ee201cc, 0x2442ffff, 
-0xaee201cc, 0x8ee201cc, 0x8f420240, 0x10400073, 
-0x0, 0x8ee20e1c, 0x24420001, 0xaee20e1c, 
-0x8f430240, 0x43102b, 0x14400176, 0xa021, 
-0x8f830120, 0x27623800, 0x24660020, 0xc2102b, 
-0x50400001, 0x27663000, 0x8f820128, 0x10c20004, 
-0x0, 0x8f820124, 0x14c20007, 0x0, 
-0x8ee201a4, 0x8821, 0x24420001, 0xaee201a4, 
-0x800334f, 0x8ee201a4, 0x8ee2724c, 0xac62001c, 
-0x8ee404a8, 0x8ee504ac, 0x2462001c, 0xac620008, 
-0x24020008, 0xa462000e, 0x24020011, 0xac620018, 
-0xac640000, 0xac650004, 0x8ee204c4, 0xac620010, 
-0xaf860120, 0x92e24e20, 0x14400033, 0x24110001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c820000, 0x144e001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x10550007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x800333c, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400010, 0xac800000, 0x800334f, 
-0x0, 0x8ee24e30, 0x24420001, 0x50550003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0xac8e0000, 0xac9e0004, 0x5620000d, 0x24110001, 
-0x8ee2724c, 0x3c040001, 0x248458a8, 0xafa00014, 
-0xafa20010, 0x8ee6724c, 0x8f470280, 0x3c050009, 
-0x34a5f008, 0xc002403, 0xafae0048, 0x8fae0048, 
-0x56200001, 0xaee00e1c, 0x8ee20188, 0x24420001, 
-0xaee20188, 0x80033c8, 0x8ee20188, 0x8f830120, 
-0x27623800, 0x24660020, 0xc2102b, 0x50400001, 
-0x27663000, 0x8f820128, 0x10c20004, 0x0, 
-0x8f820124, 0x14c20007, 0x0, 0x8ee201a4, 
-0x8821, 0x24420001, 0xaee201a4, 0x80033ba, 
-0x8ee201a4, 0x8ee2724c, 0xac62001c, 0x8ee404a8, 
-0x8ee504ac, 0x2462001c, 0xac620008, 0x24020008, 
-0xa462000e, 0x24020011, 0xac620018, 0xac640000, 
-0xac650004, 0x8ee204c4, 0xac620010, 0xaf860120, 
-0x92e24e20, 0x14400033, 0x24110001, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c820000, 
-0x144e001f, 0x0, 0x8ee34e30, 0x8ee24e34, 
-0x1062001b, 0x0, 0x8c820004, 0x24420001, 
-0xac820004, 0x8ee24e34, 0x8ee34e30, 0x24420001, 
-0x10550007, 0x0, 0x8ee24e34, 0x24420001, 
-0x10620005, 0x0, 0x80033a7, 0x0, 
-0x14600005, 0x0, 0x8f820128, 0x24420020, 
-0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011, 
-0x50400010, 0xac800000, 0x80033ba, 0x0, 
-0x8ee24e30, 0x24420001, 0x50550003, 0x1021, 
-0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0xac8e0000, 
-0xac9e0004, 0x1620000d, 0x0, 0x8ee2724c, 
-0x3c040001, 0x248458a8, 0xafa00014, 0xafa20010, 
-0x8ee6724c, 0x8f470280, 0x3c050009, 0x34a5f008, 
-0xc002403, 0xafae0048, 0x8fae0048, 0x8ee20174, 
-0x24420001, 0xaee20174, 0x8ee20174, 0x800346e, 
-0xa021, 0x960c000a, 0x183102b, 0x54400001, 
-0x1801821, 0xa603000a, 0x8f880120, 0x27623800, 
-0x25090020, 0x122102b, 0x50400001, 0x27693000, 
-0x8f820128, 0x11220004, 0x0, 0x8f820124, 
-0x15220007, 0x24040020, 0x8ee201a4, 0x8821, 
-0x24420001, 0xaee201a4, 0x800342f, 0x8ee201a4, 
-0x8ee5724c, 0x8ee60490, 0x8ee70494, 0xa504000e, 
-0x24040004, 0xad100008, 0xad040018, 0x52940, 
-0xa01821, 0x1021, 0xe33821, 0xe3202b, 
-0xc23021, 0xc43021, 0xad060000, 0xad070004, 
-0x8ee2724c, 0xad02001c, 0x8ee204c4, 0xad020010, 
-0xaf890120, 0x92e24e20, 0x14400033, 0x24110001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c820000, 0x1456001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x10550007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x800341c, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400010, 0xac800000, 0x800342f, 
-0x0, 0x8ee24e30, 0x24420001, 0x50550003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0xac960000, 0xac9e0004, 0x1620001d, 0x0, 
-0xa60c000a, 0x8f820100, 0xafa20010, 0x8f820104, 
-0x3c040001, 0x2484589c, 0x3c050006, 0xafa20014, 
-0x8ee6724c, 0x34a5f00d, 0xc002403, 0x2003821, 
-0x93a20037, 0x10400031, 0x340f8100, 0x8e420004, 
-0x8e430008, 0x8e44000c, 0xa64f000c, 0xae420000, 
-0xae430004, 0xae440008, 0x96020016, 0xa642000e, 
-0x9602000e, 0x3042fdff, 0x8003470, 0xa602000e, 
-0x8ee201d8, 0x2442ffff, 0xaee201d8, 0x8ee201d8, 
-0x8ee201cc, 0x3c04001f, 0x3c010001, 0x370821, 
-0xa03e83c0, 0x2442ffff, 0xaee201cc, 0x9603000a, 
-0x3484ffff, 0x8ee201cc, 0x6a1821, 0x2639821, 
-0x93202b, 0x10800003, 0x3c02fff5, 0x34421000, 
-0x2629821, 0xadab0000, 0x8ee2724c, 0x24420001, 
-0x304207ff, 0xaee2724c, 0x8f420240, 0x10400004, 
-0x283a023, 0x8ee20e1c, 0x24420001, 0xaee20e1c, 
-0xa3a00027, 0x1680fd29, 0x0, 0x12800024, 
-0x0, 0x3c010001, 0x370821, 0xac3483c4, 
-0x3c010001, 0x370821, 0xac3383c8, 0x3c010001, 
-0x370821, 0xac3283cc, 0x93a20037, 0x10400008, 
-0x0, 0x3c020001, 0x571021, 0x8c4283cc, 
-0x24420004, 0x3c010001, 0x370821, 0xac2283cc, 
-0x8ee2724c, 0x8f430280, 0x24420001, 0x304207ff, 
-0x14620006, 0x0, 0x8ee201c4, 0x24420001, 
-0xaee201c4, 0x80034cc, 0x8ee201c4, 0x8ee201bc, 
-0x24420001, 0xaee201bc, 0x80034cc, 0x8ee201bc, 
-0x97a4001e, 0x2484fffc, 0x801821, 0x8ee400c0, 
-0x8ee500c4, 0x1021, 0xa32821, 0xa3302b, 
-0x822021, 0x862021, 0xaee400c0, 0xaee500c4, 
-0x8faf002c, 0x24020002, 0x11e2000f, 0x29e20003, 
-0x14400017, 0x24020003, 0x15e20015, 0x0, 
-0x8ee200d0, 0x8ee300d4, 0x24630001, 0x2c640001, 
-0x441021, 0xaee200d0, 0xaee300d4, 0x8ee200d0, 
-0x80034c6, 0x8ee300d4, 0x8ee200d8, 0x8ee300dc, 
-0x24630001, 0x2c640001, 0x441021, 0xaee200d8, 
-0xaee300dc, 0x8ee200d8, 0x80034c6, 0x8ee300dc, 
-0x8ee200c8, 0x8ee300cc, 0x24630001, 0x2c640001, 
-0x441021, 0xaee200c8, 0xaee300cc, 0x8ee200c8, 
-0x8ee300cc, 0x8f8300e4, 0x8f8200e0, 0x10620003, 
-0x24630008, 0xaf8300e4, 0xaf8300e8, 0x8fbf0070, 
-0x8fbe006c, 0x8fb60068, 0x8fb50064, 0x8fb40060, 
-0x8fb3005c, 0x8fb20058, 0x8fb10054, 0x8fb00050, 
-0x3e00008, 0x27bd0078, 0x27bdffb0, 0xafb50044, 
-0xa821, 0xafb00030, 0x8021, 0xafbf004c, 
-0xafb60048, 0xafb40040, 0xafb3003c, 0xafb20038, 
-0xafb10034, 0x8ee204d4, 0x24140001, 0x30420001, 
-0x1440002a, 0xb021, 0x8f8700e0, 0x8f8800c4, 
-0x8f8200e8, 0xe22023, 0x2c821000, 0x50400001, 
-0x24841000, 0x420c2, 0x801821, 0x8ee400c8, 
-0x8ee500cc, 0x1021, 0xa32821, 0xa3302b, 
-0x822021, 0x862021, 0xaee400c8, 0xaee500cc, 
-0x8f8300c8, 0x3c02000a, 0x3442efff, 0x1032023, 
-0x44102b, 0x10400003, 0x3c02000a, 0x3442f000, 
-0x822021, 0x801821, 0x8ee400c0, 0x8ee500c4, 
-0x1021, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xaee400c0, 0xaee500c4, 0xaf8800c8, 
-0xaf8700e4, 0x8003850, 0xaf8700e8, 0x3c020001, 
-0x571021, 0x904283c0, 0x1040000b, 0x0, 
-0x3c130001, 0x2779821, 0x8e7383c4, 0x3c110001, 
-0x2378821, 0x8e3183c8, 0x3c120001, 0x2579021, 
-0x80036e8, 0x8e5283cc, 0x8f8300e0, 0x8f8200e4, 
-0x10430007, 0x4821, 0x8f8200e4, 0x24090001, 
-0x8c430000, 0x8c440004, 0xafa30018, 0xafa4001c, 
-0x1520000e, 0x3c02ffff, 0x8f8200c4, 0xafa20010, 
-0x8f8200c8, 0x3c040001, 0x24845870, 0xafa20014, 
-0x8f8600e0, 0x8f8700e4, 0x3c050006, 0xc002403, 
-0x34a5f000, 0x8003850, 0x0, 0x8fa3001c, 
-0x8fb20018, 0x3073ffff, 0x2673fffc, 0x621024, 
-0x10400058, 0x2408821, 0x3c020080, 0x621024, 
-0x1040000a, 0x3c040040, 0x8ee2007c, 0x24420001, 
-0xaee2007c, 0x8ee2007c, 0x8ee201fc, 0x24420001, 
-0xaee201fc, 0x800384a, 0x8ee201fc, 0x3c060004, 
-0x3c0b0001, 0x3c0a0002, 0x3c050010, 0x3c090008, 
-0x8ee20080, 0x3c080020, 0x34078000, 0x24420001, 
-0xaee20080, 0x8ee20080, 0x8fa2001c, 0x441824, 
-0x10660021, 0xc3102b, 0x14400007, 0x0, 
-0x106b0011, 0x0, 0x106a0015, 0x0, 
-0x8003592, 0x42042, 0x10650023, 0xa3102b, 
-0x14400005, 0x0, 0x10690019, 0x0, 
-0x8003592, 0x42042, 0x10680021, 0x0, 
-0x8003592, 0x42042, 0x8ee20034, 0x24420001, 
-0xaee20034, 0x8ee20034, 0x8003592, 0x42042, 
-0x8ee201ec, 0x24420001, 0xaee201ec, 0x8ee201ec, 
-0x8003592, 0x42042, 0x8ee201f0, 0x24420001, 
-0xaee201f0, 0x8ee201f0, 0x8003592, 0x42042, 
-0x8ee201f4, 0x24420001, 0xaee201f4, 0x8ee201f4, 
-0x8003592, 0x42042, 0x8ee20030, 0x24420001, 
-0xaee20030, 0x8ee20030, 0x8003592, 0x42042, 
-0x8ee201f8, 0x24420001, 0xaee201f8, 0x8ee201f8, 
-0x42042, 0x108702b7, 0x0, 0x8003557, 
-0x0, 0x3c020001, 0x571021, 0x904283b2, 
-0x14400084, 0x24020001, 0x3c030001, 0x771821, 
-0x906383b3, 0x1462007f, 0x3c020100, 0x8e430000, 
-0x621024, 0x1040006f, 0x2402ffff, 0x14620005, 
-0x24100001, 0x96430004, 0x3402ffff, 0x10620075, 
-0x0, 0x92e204d8, 0x14400072, 0x0, 
-0x3c020001, 0x571021, 0x8c4283b4, 0x28420005, 
-0x10400020, 0x3821, 0x3c020001, 0x571021, 
-0x8c4283b4, 0x18400016, 0x2821, 0x96260000, 
-0x520c0, 0x971021, 0x9442777e, 0x14460009, 
-0x971021, 0x94437780, 0x96220002, 0x14620005, 
-0x971021, 0x94437782, 0x96220004, 0x50620008, 
-0x24070001, 0x3c020001, 0x571021, 0x8c4283b4, 
-0x24a50001, 0xa2102a, 0x5440ffee, 0x520c0, 
-0x30e200ff, 0x1040027b, 0x0, 0x800361e, 
-0x0, 0x2402021, 0xc0022fe, 0x24050006, 
-0x3044001f, 0x428c0, 0x2e51021, 0x9442727c, 
-0x30424000, 0x1440026f, 0xb71021, 0x9443727e, 
-0x96220000, 0x1462000b, 0x418c0, 0xb71021, 
-0x94437280, 0x96220002, 0x14620006, 0x418c0, 
-0xb71021, 0x94437282, 0x96220004, 0x10620035, 
-0x418c0, 0x2e31021, 0x9442727c, 0x30428000, 
-0x1440025c, 0x2e31021, 0x9448727c, 0x96270000, 
-0x828c0, 0xb71021, 0x9442737e, 0x8003600, 
-0x3021, 0x420c0, 0x2e41021, 0x9443737c, 
-0x2e41021, 0x9448737c, 0x30638000, 0x14600010, 
-0x828c0, 0xb71021, 0x9442737e, 0x1447fff5, 
-0x1002021, 0xb71021, 0x94437380, 0x96220002, 
-0x5462fff1, 0x420c0, 0xb71021, 0x94437382, 
-0x96220004, 0x5462ffec, 0x420c0, 0x24060001, 
-0x30c200ff, 0x1040023b, 0x0, 0x800361e, 
-0x0, 0x97430202, 0x96420000, 0x14620235, 
-0x0, 0x97430204, 0x96420002, 0x14620231, 
-0x0, 0x97430206, 0x96420004, 0x1462022d, 
-0x0, 0x92420000, 0x3a030001, 0x30420001, 
-0x431024, 0x10400074, 0x2402ffff, 0x8e230000, 
-0x14620004, 0x3402ffff, 0x96230004, 0x1062006f, 
-0x24140002, 0x3c020001, 0x571021, 0x904283b2, 
-0x1440006a, 0x24140003, 0x92e204d8, 0x14400067, 
-0x0, 0x3c020001, 0x571021, 0x8c4283b4, 
-0x28420005, 0x10400020, 0x3821, 0x3c020001, 
-0x571021, 0x8c4283b4, 0x18400016, 0x2821, 
-0x96260000, 0x520c0, 0x971021, 0x9442777e, 
-0x14460009, 0x971021, 0x94437780, 0x96220002, 
-0x14620005, 0x971021, 0x94437782, 0x96220004, 
-0x50620008, 0x24070001, 0x3c020001, 0x571021, 
-0x8c4283b4, 0x24a50001, 0xa2102a, 0x5440ffee, 
-0x520c0, 0x30e200ff, 0x14400044, 0x24140003, 
-0x800384a, 0x0, 0x2402021, 0xc0022fe, 
-0x24050006, 0x3044001f, 0x428c0, 0x2e51021, 
-0x9442727c, 0x30424000, 0x144001ea, 0xb71021, 
-0x9443727e, 0x96220000, 0x1462000b, 0x418c0, 
-0xb71021, 0x94437280, 0x96220002, 0x14620006, 
-0x418c0, 0xb71021, 0x94437282, 0x96220004, 
-0x10620027, 0x418c0, 0x2e31021, 0x9442727c, 
-0x30428000, 0x144001d7, 0x2e31021, 0x9448727c, 
-0x96270000, 0x828c0, 0xb71021, 0x9442737e, 
-0x8003685, 0x3021, 0x420c0, 0x2e41021, 
-0x9443737c, 0x2e41021, 0x9448737c, 0x30638000, 
-0x14600010, 0x828c0, 0xb71021, 0x9442737e, 
-0x1447fff5, 0x1002021, 0xb71021, 0x94437380, 
-0x96220002, 0x5462fff1, 0x420c0, 0xb71021, 
-0x94437382, 0x96220004, 0x5462ffec, 0x420c0, 
-0x24060001, 0x30c200ff, 0x104001b6, 0x0, 
-0x8003698, 0x24140003, 0x24140001, 0x8f420260, 
-0x53102b, 0x10400049, 0x0, 0x8f8300e4, 
-0x8f8200e0, 0x10620003, 0x24630008, 0xaf8300e4, 
-0xaf8300e8, 0x8ee400c0, 0x8ee500c4, 0x2601821, 
-0x1021, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xaee400c0, 0xaee500c4, 0x8ee20058, 
-0x24420001, 0xaee20058, 0x8ee20058, 0x8ee2007c, 
-0x24420001, 0xaee2007c, 0x8ee2007c, 0x8f8200e0, 
-0xafa20010, 0x8f8200e4, 0x3c040001, 0x24845878, 
-0xafa20014, 0x8fa60018, 0x8fa7001c, 0x3c050006, 
-0xc002403, 0x34a5f003, 0x8003850, 0x0, 
-0x8ee25240, 0xafa20010, 0x8ee25244, 0x3c040001, 
-0x24845884, 0xafa20014, 0x8ee60e10, 0x8ee70e18, 
-0xc002403, 0x34a5f002, 0x8ee201c0, 0x24420001, 
-0xaee201c0, 0x8ee20000, 0x8ee301c0, 0x2403ffbf, 
-0x431024, 0x80037f8, 0xaee20000, 0x8ee25240, 
-0xafa20010, 0x8ee25244, 0x3c040001, 0x24845884, 
-0xafa20014, 0x8ee60e10, 0x8ee70e18, 0x3c050006, 
-0xc002403, 0x34a5f002, 0x8ee201c0, 0x24420001, 
-0xaee201c0, 0x80037f8, 0x8ee201c0, 0x96e20468, 
-0x53102b, 0x54400001, 0x3c158000, 0x12600131, 
-0x3c0c001f, 0x358cffff, 0x8ee2724c, 0x8f430280, 
-0x24420001, 0x304207ff, 0x10620108, 0x0, 
-0x12a00014, 0x0, 0x8ee35240, 0x8ee25244, 
-0x10620009, 0x26ee5244, 0x8eeb5244, 0x8ee35244, 
-0x21140, 0x24425248, 0x2e28021, 0x24630001, 
-0x8003712, 0x306800ff, 0x92e27248, 0x1440ffc0, 
-0x3c050006, 0x8ee201e0, 0x24420001, 0xaee201e0, 
-0x8ee201e0, 0x8ee30e10, 0x8ee20e18, 0x1062ffcb, 
-0x26ee0e18, 0x8eeb0e18, 0xa821, 0x8ee30e18, 
-0x21140, 0x24420e20, 0x2e28021, 0x24630001, 
-0x306801ff, 0x96e2046a, 0x30420010, 0x10400017, 
-0x34028100, 0x9643000c, 0x14620014, 0x0, 
-0x3c020001, 0x571021, 0x904283c0, 0x1440000f, 
-0x0, 0x9642000e, 0xa6020016, 0x8e420008, 
-0x8e430004, 0x8e440000, 0x2673fffc, 0xae42000c, 
-0xae430008, 0xae440004, 0x9602000e, 0x26310004, 
-0x24160001, 0x34420200, 0xa602000e, 0x9603000a, 
-0x2605021, 0x73102b, 0x10400002, 0x2606821, 
-0x605021, 0x2d42003d, 0x1040002a, 0x3821, 
-0x9623000c, 0x24020800, 0x54620027, 0xae110018, 
-0x3c020001, 0x571021, 0x904283c0, 0x54400022, 
-0xae110018, 0x26220017, 0x182102b, 0x10400013, 
-0x0, 0x3c02fff5, 0x511021, 0x90421017, 
-0x38430006, 0x2c630001, 0x38420011, 0x2c420001, 
-0x621825, 0x10600013, 0x26220010, 0x182102b, 
-0x1040000e, 0x0, 0x3c07fff5, 0xf13821, 
-0x94e71010, 0x800375e, 0x24e7000e, 0x92220017, 
-0x38430006, 0x2c630001, 0x38420011, 0x2c420001, 
-0x621825, 0x50600004, 0xae110018, 0x96270010, 
-0x24e7000e, 0xae110018, 0x3c020001, 0x571021, 
-0x904283c0, 0x2102b, 0x14e00002, 0x24ec0, 
-0x1403821, 0x8f830120, 0x27623800, 0x24660020, 
-0xc2102b, 0x50400001, 0x27663000, 0x8f820128, 
-0x10c20004, 0x0, 0x8f820124, 0x14c20007, 
-0x2402000b, 0x8ee201a4, 0x4821, 0x24420001, 
-0xaee201a4, 0x80037bf, 0x8ee201a4, 0x8e040000, 
-0x8e050004, 0xac620018, 0x1751025, 0x491025, 
-0xac710008, 0xa467000e, 0xac62001c, 0xac640000, 
-0xac650004, 0x8ee204c0, 0xac620010, 0xaf860120, 
-0x92e24e20, 0x14400038, 0x24090001, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c830000, 
-0x24020007, 0x14620020, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001c, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee34e34, 0x8ee54e30, 
-0x24020040, 0x24630001, 0x10620007, 0x0, 
-0x8ee24e34, 0x24420001, 0x10a20005, 0x0, 
-0x80037a9, 0x0, 0x14a00005, 0x0, 
-0x8f820128, 0x24420020, 0xaf820128, 0x8f820128, 
-0x8c820004, 0x2c420011, 0x50400013, 0xac800000, 
-0x80037bf, 0x0, 0x8ee24e30, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x24020007, 0xac820000, 
-0x24020001, 0xac820004, 0x15200018, 0x3c050006, 
-0x8e020018, 0x3c040001, 0x24845890, 0xafa20010, 
-0x8e020000, 0x8e030004, 0x34a5f009, 0x2003021, 
-0xc002403, 0xafa30014, 0x32c200ff, 0x1040002b, 
-0x34028100, 0x8e430004, 0x8e440008, 0x8e45000c, 
-0xa642000c, 0xae430000, 0xae440004, 0xae450008, 
-0x96020016, 0x80037f8, 0xa642000e, 0x154d000a, 
-0x0, 0x9602000e, 0xa613000a, 0x34420004, 
-0xa602000e, 0x3c010001, 0x370821, 0xa02083c0, 
-0x80037f6, 0x9821, 0x9604000a, 0x93102b, 
-0x10400002, 0x2601821, 0x801821, 0x24020001, 
-0xa603000a, 0x3c010001, 0x370821, 0xa02283c0, 
-0x9604000a, 0x2248821, 0x191102b, 0x10400003, 
-0x3c02fff5, 0x34421000, 0x2228821, 0x2649823, 
-0xa821, 0x1660fef4, 0xadc80000, 0x12600021, 
-0x32c200ff, 0x3c010001, 0x370821, 0xac3383c4, 
-0x3c010001, 0x370821, 0xac3183c8, 0x3c010001, 
-0x370821, 0x10400008, 0xac3283cc, 0x3c020001, 
-0x571021, 0x8c4283cc, 0x24420004, 0x3c010001, 
-0x370821, 0xac2283cc, 0x8ee2724c, 0x8f430280, 
-0x24420001, 0x14620006, 0x0, 0x8ee201c4, 
-0x24420001, 0xaee201c4, 0x8003850, 0x8ee201c4, 
-0x8ee201bc, 0x24420001, 0xaee201bc, 0x8003850, 
-0x8ee201bc, 0x97a4001e, 0x2484fffc, 0x801821, 
-0x8ee400c0, 0x8ee500c4, 0x1021, 0xa32821, 
-0xa3302b, 0x822021, 0x862021, 0x24020002, 
-0xaee400c0, 0xaee500c4, 0x1282000f, 0x2a820003, 
-0x14400017, 0x24020003, 0x16820015, 0x0, 
-0x8ee200d0, 0x8ee300d4, 0x24630001, 0x2c640001, 
-0x441021, 0xaee200d0, 0xaee300d4, 0x8ee200d0, 
-0x800384a, 0x8ee300d4, 0x8ee200d8, 0x8ee300dc, 
-0x24630001, 0x2c640001, 0x441021, 0xaee200d8, 
-0xaee300dc, 0x8ee200d8, 0x800384a, 0x8ee300dc, 
-0x8ee200c8, 0x8ee300cc, 0x24630001, 0x2c640001, 
-0x441021, 0xaee200c8, 0xaee300cc, 0x8ee200c8, 
-0x8ee300cc, 0x8f8300e4, 0x8f8200e0, 0x10620003, 
-0x24630008, 0xaf8300e4, 0xaf8300e8, 0x8fbf004c, 
-0x8fb60048, 0x8fb50044, 0x8fb40040, 0x8fb3003c, 
-0x8fb20038, 0x8fb10034, 0x8fb00030, 0x3e00008, 
-0x27bd0050, 0x27bdff90, 0xafb60060, 0xb021, 
-0xafbf0068, 0xafbe0064, 0xafb5005c, 0xafb40058, 
-0xafb30054, 0xafb20050, 0xafb1004c, 0xafb00048, 
-0x8ee204d4, 0x8821, 0x24150001, 0x30420001, 
-0x1440002a, 0xa3a0002f, 0x8f8700e0, 0x8f8800c4, 
-0x8f8200e8, 0xe22023, 0x2c821000, 0x50400001, 
-0x24841000, 0x420c2, 0x801821, 0x8ee400c8, 
-0x8ee500cc, 0x1021, 0xa32821, 0xa3302b, 
-0x822021, 0x862021, 0xaee400c8, 0xaee500cc, 
-0x8f8300c8, 0x3c02000a, 0x3442efff, 0x1032023, 
-0x44102b, 0x10400003, 0x3c02000a, 0x3442f000, 
-0x822021, 0x801821, 0x8ee400c0, 0x8ee500c4, 
-0x1021, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xaee400c0, 0xaee500c4, 0xaf8800c8, 
-0xaf8700e4, 0x8003c5b, 0xaf8700e8, 0x3c020001, 
-0x571021, 0x904283c0, 0x1040000b, 0x0, 
-0x3c130001, 0x2779821, 0x8e7383c4, 0x3c100001, 
-0x2178021, 0x8e1083c8, 0x3c120001, 0x2579021, 
-0x8003a59, 0x8e5283cc, 0x8f8300e0, 0x8f8200e4, 
-0x10430007, 0x3821, 0x8f8200e4, 0x24070001, 
-0x8c430000, 0x8c440004, 0xafa30018, 0xafa4001c, 
-0x14e0000e, 0x3c02ffff, 0x8f8200c4, 0xafa20010, 
-0x8f8200c8, 0x3c040001, 0x248458b4, 0xafa20014, 
-0x8f8600e0, 0x8f8700e4, 0x3c050006, 0xc002403, 
-0x34a5f200, 0x8003c5b, 0x0, 0x8fa3001c, 
-0x8fb20018, 0x3073ffff, 0x2673fffc, 0x621024, 
-0x10400058, 0x2408021, 0x3c020080, 0x621024, 
-0x1040000a, 0x3c040040, 0x8ee2007c, 0x24420001, 
-0xaee2007c, 0x8ee2007c, 0x8ee201fc, 0x24420001, 
-0xaee201fc, 0x8003c55, 0x8ee201fc, 0x3c060004, 
-0x3c0b0001, 0x3c0a0002, 0x3c050010, 0x3c090008, 
-0x8ee20080, 0x3c080020, 0x34078000, 0x24420001, 
-0xaee20080, 0x8ee20080, 0x8fa2001c, 0x441824, 
-0x10660021, 0xc3102b, 0x14400007, 0x0, 
-0x106b0011, 0x0, 0x106a0015, 0x0, 
-0x8003916, 0x42042, 0x10650023, 0xa3102b, 
-0x14400005, 0x0, 0x10690019, 0x0, 
-0x8003916, 0x42042, 0x10680021, 0x0, 
-0x8003916, 0x42042, 0x8ee20034, 0x24420001, 
-0xaee20034, 0x8ee20034, 0x8003916, 0x42042, 
-0x8ee201ec, 0x24420001, 0xaee201ec, 0x8ee201ec, 
-0x8003916, 0x42042, 0x8ee201f0, 0x24420001, 
-0xaee201f0, 0x8ee201f0, 0x8003916, 0x42042, 
-0x8ee201f4, 0x24420001, 0xaee201f4, 0x8ee201f4, 
-0x8003916, 0x42042, 0x8ee20030, 0x24420001, 
-0xaee20030, 0x8ee20030, 0x8003916, 0x42042, 
-0x8ee201f8, 0x24420001, 0xaee201f8, 0x8ee201f8, 
-0x42042, 0x1087033e, 0x0, 0x80038db, 
-0x0, 0x3c020001, 0x571021, 0x904283b2, 
-0x14400084, 0x24020001, 0x3c030001, 0x771821, 
-0x906383b3, 0x1462007f, 0x3c020100, 0x8e430000, 
-0x621024, 0x1040006f, 0x2402ffff, 0x14620005, 
-0x24110001, 0x96430004, 0x3402ffff, 0x10620075, 
-0x0, 0x92e204d8, 0x14400072, 0x0, 
-0x3c020001, 0x571021, 0x8c4283b4, 0x28420005, 
-0x10400020, 0x3821, 0x3c020001, 0x571021, 
-0x8c4283b4, 0x18400016, 0x2821, 0x96060000, 
-0x520c0, 0x971021, 0x9442777e, 0x14460009, 
-0x971021, 0x94437780, 0x96020002, 0x14620005, 
-0x971021, 0x94437782, 0x96020004, 0x50620008, 
-0x24070001, 0x3c020001, 0x571021, 0x8c4283b4, 
-0x24a50001, 0xa2102a, 0x5440ffee, 0x520c0, 
-0x30e200ff, 0x10400302, 0x0, 0x80039a2, 
-0x0, 0x2402021, 0xc0022fe, 0x24050006, 
-0x3044001f, 0x428c0, 0x2e51021, 0x9442727c, 
-0x30424000, 0x144002f6, 0xb71021, 0x9443727e, 
-0x96020000, 0x1462000b, 0x418c0, 0xb71021, 
-0x94437280, 0x96020002, 0x14620006, 0x418c0, 
-0xb71021, 0x94437282, 0x96020004, 0x10620035, 
-0x418c0, 0x2e31021, 0x9442727c, 0x30428000, 
-0x144002e3, 0x2e31021, 0x944d727c, 0x96070000, 
-0xd28c0, 0xb71021, 0x9442737e, 0x8003984, 
-0x3021, 0x420c0, 0x2e41021, 0x9443737c, 
-0x2e41021, 0x944d737c, 0x30638000, 0x14600010, 
-0xd28c0, 0xb71021, 0x9442737e, 0x1447fff5, 
-0x1a02021, 0xb71021, 0x94437380, 0x96020002, 
-0x5462fff1, 0x420c0, 0xb71021, 0x94437382, 
-0x96020004, 0x5462ffec, 0x420c0, 0x24060001, 
-0x30c200ff, 0x104002c2, 0x0, 0x80039a2, 
-0x0, 0x97430202, 0x96420000, 0x146202bc, 
-0x0, 0x97430204, 0x96420002, 0x146202b8, 
-0x0, 0x97430206, 0x96420004, 0x146202b4, 
-0x0, 0x92420000, 0x3a230001, 0x30420001, 
-0x431024, 0x10400074, 0x2402ffff, 0x8e030000, 
-0x14620004, 0x3402ffff, 0x96030004, 0x1062006f, 
-0x24150002, 0x3c020001, 0x571021, 0x904283b2, 
-0x1440006a, 0x24150003, 0x92e204d8, 0x14400067, 
-0x0, 0x3c020001, 0x571021, 0x8c4283b4, 
-0x28420005, 0x10400020, 0x3821, 0x3c020001, 
-0x571021, 0x8c4283b4, 0x18400016, 0x2821, 
-0x96060000, 0x520c0, 0x971021, 0x9442777e, 
-0x14460009, 0x971021, 0x94437780, 0x96020002, 
-0x14620005, 0x971021, 0x94437782, 0x96020004, 
-0x50620008, 0x24070001, 0x3c020001, 0x571021, 
-0x8c4283b4, 0x24a50001, 0xa2102a, 0x5440ffee, 
-0x520c0, 0x30e200ff, 0x14400044, 0x24150003, 
-0x8003c55, 0x0, 0x2402021, 0xc0022fe, 
-0x24050006, 0x3044001f, 0x428c0, 0x2e51021, 
-0x9442727c, 0x30424000, 0x14400271, 0xb71021, 
-0x9443727e, 0x96020000, 0x1462000b, 0x418c0, 
-0xb71021, 0x94437280, 0x96020002, 0x14620006, 
-0x418c0, 0xb71021, 0x94437282, 0x96020004, 
-0x10620027, 0x418c0, 0x2e31021, 0x9442727c, 
-0x30428000, 0x1440025e, 0x2e31021, 0x944d727c, 
-0x96070000, 0xd28c0, 0xb71021, 0x9442737e, 
-0x8003a09, 0x3021, 0x420c0, 0x2e41021, 
-0x9443737c, 0x2e41021, 0x944d737c, 0x30638000, 
-0x14600010, 0xd28c0, 0xb71021, 0x9442737e, 
-0x1447fff5, 0x1a02021, 0xb71021, 0x94437380, 
-0x96020002, 0x5462fff1, 0x420c0, 0xb71021, 
-0x94437382, 0x96020004, 0x5462ffec, 0x420c0, 
-0x24060001, 0x30c200ff, 0x1040023d, 0x0, 
-0x8003a1c, 0x24150003, 0x24150001, 0x8f420260, 
-0x53102b, 0x10400036, 0x0, 0x8f8300e4, 
-0x8f8200e0, 0x10620003, 0x24630008, 0xaf8300e4, 
-0xaf8300e8, 0x8ee400c0, 0x8ee500c4, 0x2601821, 
-0x1021, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xaee400c0, 0xaee500c4, 0x8ee20058, 
-0x24420001, 0xaee20058, 0x8ee20058, 0x8ee2007c, 
-0x24420001, 0xaee2007c, 0x8ee2007c, 0x8f8200e0, 
-0xafa20010, 0x8f8200e4, 0x3c040001, 0x248458c0, 
-0xafa20014, 0x8fa60018, 0x8fa7001c, 0x3c050006, 
-0xc002403, 0x34a5f203, 0x8003c5b, 0x0, 
-0x8ee25240, 0xafa20010, 0x8ee25244, 0x3c040001, 
-0x248458cc, 0xafa20014, 0x8ee60e10, 0x8ee70e18, 
-0x3c050006, 0xc002403, 0x34a5f202, 0x8ee201c0, 
-0x24420001, 0xaee201c0, 0x8003c02, 0x8ee201c0, 
-0x96e20468, 0x53102b, 0x54400001, 0x3c168000, 
-0x126001cb, 0x3c0e001f, 0x35ceffff, 0x3c0ffff5, 
-0x35ef1000, 0x241e0040, 0x8ee2724c, 0x8f430280, 
-0x24420001, 0x304207ff, 0x1062019e, 0x0, 
-0x12c00012, 0x0, 0x8ee35240, 0x8ee25244, 
-0x1062000a, 0x26f85244, 0x8ef45244, 0xafb80024, 
-0x8ee35244, 0x21140, 0x24425248, 0x2e28821, 
-0x24630001, 0x8003a85, 0x306d00ff, 0x8ee201e0, 
-0x24420001, 0xaee201e0, 0x8ee201e0, 0x8ee30e10, 
-0x8ee20e18, 0x1062ffca, 0x26f80e18, 0x8ef40e18, 
-0xb021, 0xafb80024, 0x8ee30e18, 0x21140, 
-0x24420e20, 0x2e28821, 0x24630001, 0x306d01ff, 
-0x96e2046a, 0x30420010, 0x10400018, 0x34028100, 
-0x9643000c, 0x14620015, 0x0, 0x3c020001, 
-0x571021, 0x904283c0, 0x14400010, 0x0, 
-0x9642000e, 0xa6220016, 0x8e420008, 0x8e430004, 
-0x8e440000, 0x2673fffc, 0xae42000c, 0xae430008, 
-0xae440004, 0x9622000e, 0x26100004, 0x24180001, 
-0xa3b8002f, 0x34420200, 0xa622000e, 0x8e220000, 
-0x8e230004, 0x3c040001, 0x34843800, 0x2003021, 
-0x306a0007, 0x20a8023, 0x3641021, 0x202102b, 
-0x10400005, 0x26a9821, 0x2041023, 0x3621823, 
-0x3c020020, 0x438023, 0x26620007, 0x9623000a, 
-0x2418fff8, 0x58c824, 0x6a1821, 0x79102b, 
-0x10400002, 0x3206021, 0x606021, 0x1801821, 
-0x24620007, 0x2418fff8, 0x586024, 0x26c102b, 
-0x14400004, 0x1932823, 0x1832823, 0x8003ac3, 
-0xc31021, 0xd31021, 0x4a2023, 0x1c4102b, 
-0x54400001, 0x8f2021, 0x25420040, 0x4c102b, 
-0x14400035, 0x5821, 0x94c3000c, 0x24020800, 
-0x54620032, 0xae260018, 0x3c020001, 0x571021, 
-0x904283c0, 0x5440002d, 0xae260018, 0x24c20017, 
-0x1c2102b, 0x10400013, 0x0, 0x3c02fff5, 
-0x461021, 0x90421017, 0x38430006, 0x2c630001, 
-0x38420011, 0x2c420001, 0x621825, 0x10600014, 
-0x24c20010, 0x1c2102b, 0x1040000e, 0x0, 
-0x3c0bfff5, 0x1665821, 0x956b1010, 0x8003af4, 
-0x2562000e, 0x90c20017, 0x38430006, 0x2c630001, 
-0x38420011, 0x2c420001, 0x621825, 0x10600005, 
-0x1601821, 0x94cb0010, 0x2562000e, 0x4a5821, 
-0x1601821, 0x24620007, 0x2418fff8, 0x585824, 
-0xc31021, 0x4a2023, 0x1c4102b, 0x10400002, 
-0x1632823, 0x8f2021, 0xae260018, 0x3c020001, 
-0x571021, 0x904283c0, 0x2102b, 0x216c0, 
-0x15600002, 0xafa20044, 0x1805821, 0x30820001, 
-0x10400007, 0x4021, 0x90880000, 0x24840001, 
-0x1c4102b, 0x10400002, 0x24a5ffff, 0x8f2021, 
-0x50a00012, 0x81c02, 0x2ca20002, 0x54400009, 
-0x24a5ffff, 0x94820000, 0x24840002, 0x1024021, 
-0x1c4102b, 0x10400006, 0x24a5fffe, 0x8003b21, 
-0x8f2021, 0x90820000, 0x21200, 0x1024021, 
-0x14a0fff2, 0x2ca20002, 0x81c02, 0x3102ffff, 
-0x624021, 0x3108ffff, 0x1402821, 0x11400011, 
-0x2002021, 0x2ca20002, 0x54400009, 0x24a5ffff, 
-0x94820000, 0x24840002, 0x1024021, 0x1c4102b, 
-0x10400006, 0x24a5fffe, 0x8003b38, 0x8f2021, 
-0x90820000, 0x21200, 0x1024021, 0x14a0fff2, 
-0x2ca20002, 0x81c02, 0x3102ffff, 0x624021, 
-0x81c02, 0x3102ffff, 0x8f890120, 0x624021, 
-0x27623800, 0x25230020, 0x62102b, 0x14400002, 
-0x3108ffff, 0x27633000, 0x8f820128, 0x10620004, 
-0x0, 0x8f820124, 0x14620007, 0x1402821, 
-0x8ee201a4, 0x3821, 0x24420001, 0xaee201a4, 
-0x8003bc9, 0x8ee201a4, 0x8e260000, 0x8e270004, 
-0x81400, 0x3448000b, 0xad300008, 0xa52b000e, 
-0xad280018, 0x8fb80044, 0x2021, 0x2961025, 
-0x581025, 0xad22001c, 0xe5102b, 0xe53823, 
-0xc43023, 0xc23023, 0xad260000, 0xad270004, 
-0x8ee204c0, 0xad220010, 0xaf830120, 0x92e24e20, 
-0x1440005f, 0x24070001, 0x2502ffee, 0x2c420002, 
-0x14400003, 0x24020011, 0x15020024, 0x0, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c830000, 0x24020012, 0x1462000f, 0x0, 
-0x8ee34e30, 0x8ee24e34, 0x1062000b, 0x0, 
-0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34, 
-0x8ee34e30, 0x24420001, 0x105e002a, 0x0, 
-0x8003ba8, 0x0, 0x8ee24e30, 0x24420001, 
-0x505e0003, 0x1021, 0x8ee24e30, 0x24420001, 
-0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8003bc6, 0x24020012, 0x8ee24e30, 
-0x210c0, 0x24425038, 0x2e22021, 0x8c830000, 
-0x24020007, 0x1462001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x105e0007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x8003bb4, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400012, 0xac800000, 0x8003bc9, 
-0x0, 0x8ee24e30, 0x24420001, 0x505e0003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x24020007, 0xac820000, 0x24020001, 0xac820004, 
-0x14e00019, 0x3c050006, 0x3c040001, 0x24845890, 
-0x8e220018, 0x34a5f209, 0xafa20010, 0x8e220000, 
-0x8e230004, 0x2203021, 0x1603821, 0xc002403, 
-0xafa30014, 0x93a2002f, 0x1040002a, 0x34028100, 
-0x8e430004, 0x8e440008, 0x8e45000c, 0xa642000c, 
-0xae430000, 0xae440004, 0xae450008, 0x96220016, 
-0x8003c02, 0xa642000e, 0x1599000a, 0x26a1823, 
-0x9622000e, 0xa623000a, 0x34420004, 0xa622000e, 
-0x3c010001, 0x370821, 0xa02083c0, 0x8003bff, 
-0x9821, 0x9624000a, 0x83102b, 0x54400001, 
-0x801821, 0x24020001, 0xa623000a, 0x3c010001, 
-0x370821, 0xa02283c0, 0x9622000a, 0x4a1821, 
-0x2038021, 0x1d0102b, 0x54400001, 0x20f8021, 
-0x2639823, 0xb021, 0x8fb80024, 0x1660fe5e, 
-0xaf0d0000, 0x12600022, 0x0, 0x3c010001, 
-0x370821, 0xac3383c4, 0x3c010001, 0x370821, 
-0xac3083c8, 0x3c010001, 0x370821, 0xac3283cc, 
-0x93a2002f, 0x10400008, 0x0, 0x3c020001, 
-0x571021, 0x8c4283cc, 0x24420004, 0x3c010001, 
-0x370821, 0xac2283cc, 0x8f430280, 0x8ee2724c, 
-0x14620006, 0x0, 0x8ee201c4, 0x24420001, 
-0xaee201c4, 0x8003c5b, 0x8ee201c4, 0x8ee201bc, 
-0x24420001, 0xaee201bc, 0x8003c5b, 0x8ee201bc, 
-0x97a4001e, 0x2484fffc, 0x801821, 0x8ee400c0, 
-0x8ee500c4, 0x1021, 0xa32821, 0xa3302b, 
-0x822021, 0x862021, 0x24020002, 0xaee400c0, 
-0xaee500c4, 0x12a2000f, 0x2aa20003, 0x14400017, 
-0x24020003, 0x16a20015, 0x0, 0x8ee200d0, 
-0x8ee300d4, 0x24630001, 0x2c640001, 0x441021, 
-0xaee200d0, 0xaee300d4, 0x8ee200d0, 0x8003c55, 
-0x8ee300d4, 0x8ee200d8, 0x8ee300dc, 0x24630001, 
-0x2c640001, 0x441021, 0xaee200d8, 0xaee300dc, 
-0x8ee200d8, 0x8003c55, 0x8ee300dc, 0x8ee200c8, 
-0x8ee300cc, 0x24630001, 0x2c640001, 0x441021, 
-0xaee200c8, 0xaee300cc, 0x8ee200c8, 0x8ee300cc, 
-0x8f8300e4, 0x8f8200e0, 0x10620003, 0x24630008, 
-0xaf8300e4, 0xaf8300e8, 0x8fbf0068, 0x8fbe0064, 
-0x8fb60060, 0x8fb5005c, 0x8fb40058, 0x8fb30054, 
-0x8fb20050, 0x8fb1004c, 0x8fb00048, 0x3e00008, 
-0x27bd0070, 0x27bdffe0, 0xafbf0018, 0x8ee30e14, 
-0x8ee20e0c, 0x10620074, 0x0, 0x8ee30e0c, 
-0x8ee20e14, 0x622023, 0x4820001, 0x24840200, 
-0x8ee30e18, 0x8ee20e14, 0x43102b, 0x14400004, 
-0x24020200, 0x8ee30e14, 0x8003c7d, 0x431823, 
-0x8ee20e18, 0x8ee30e14, 0x431023, 0x2443ffff, 
-0x804821, 0x69102a, 0x54400001, 0x604821, 
-0x8f870100, 0x27623000, 0x24e80020, 0x102102b, 
-0x50400001, 0x27682800, 0x8f820108, 0x11020004, 
-0x0, 0x8f820104, 0x15020007, 0x1021, 
-0x8ee201a8, 0x2021, 0x24420001, 0xaee201a8, 
-0x8003cbf, 0x8ee201a8, 0x8ee40e14, 0x42140, 
-0x801821, 0x8ee40460, 0x8ee50464, 0xa32821, 
-0xa3302b, 0x822021, 0x862021, 0xace40000, 
-0xace50004, 0x8ee30e14, 0x91140, 0xa4e2000e, 
-0x24020002, 0xace20018, 0x31940, 0x24630e20, 
-0x2e31021, 0xace20008, 0x8ee20e14, 0xace2001c, 
-0x8ee204cc, 0xace20010, 0xaf880100, 0x92e204ec, 
-0x14400011, 0x24040001, 0x8ee24e28, 0x24030040, 
-0x24420001, 0x50430003, 0x1021, 0x8ee24e28, 
-0x24420001, 0xaee24e28, 0x8ee24e28, 0x210c0, 
-0x24424e38, 0x2e21821, 0x24020002, 0xac620000, 
-0x24020001, 0xac620004, 0x1480000e, 0x24030040, 
-0x8ee20e14, 0xafa20010, 0x8ee20e18, 0x3c050007, 
-0xafa20014, 0x8ee60e0c, 0x8ee70e10, 0x3c040001, 
-0x248458d4, 0xc002403, 0x34a5f001, 0x8003cdd, 
-0x0, 0x8ee20500, 0x24420001, 0x50430003, 
-0x1021, 0x8ee20500, 0x24420001, 0xaee20500, 
-0x8ee20500, 0x21080, 0x571021, 0xac490508, 
-0x8ee20e14, 0x491021, 0x304201ff, 0xaee20e14, 
-0x8ee30e14, 0x8ee20e0c, 0x14620005, 0x0, 
-0x8f820060, 0x2403fdff, 0x431024, 0xaf820060, 
-0x8fbf0018, 0x3e00008, 0x27bd0020, 0x27bdffe0, 
-0xafbf0018, 0x8ee3523c, 0x8ee25238, 0x10620074, 
-0x0, 0x8ee35238, 0x8ee2523c, 0x622023, 
-0x4820001, 0x24840100, 0x8ee35244, 0x8ee2523c, 
-0x43102b, 0x14400004, 0x24020100, 0x8ee3523c, 
-0x8003cff, 0x431823, 0x8ee25244, 0x8ee3523c, 
-0x431023, 0x2443ffff, 0x804821, 0x69102a, 
-0x54400001, 0x604821, 0x8f870100, 0x27623000, 
-0x24e80020, 0x102102b, 0x50400001, 0x27682800, 
-0x8f820108, 0x11020004, 0x0, 0x8f820104, 
-0x15020007, 0x1021, 0x8ee201a8, 0x2021, 
-0x24420001, 0xaee201a8, 0x8003d41, 0x8ee201a8, 
-0x8ee4523c, 0x42140, 0x801821, 0x8ee40470, 
-0x8ee50474, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xace40000, 0xace50004, 0x8ee3523c, 
-0x91140, 0xa4e2000e, 0x24020003, 0xace20018, 
-0x31940, 0x24635248, 0x2e31021, 0xace20008, 
-0x8ee2523c, 0xace2001c, 0x8ee204cc, 0xace20010, 
-0xaf880100, 0x92e204ec, 0x14400011, 0x24040001, 
-0x8ee24e28, 0x24030040, 0x24420001, 0x50430003, 
-0x1021, 0x8ee24e28, 0x24420001, 0xaee24e28, 
-0x8ee24e28, 0x210c0, 0x24424e38, 0x2e21821, 
-0x24020003, 0xac620000, 0x24020001, 0xac620004, 
-0x1480000e, 0x24030040, 0x8ee2523c, 0xafa20010, 
-0x8ee25244, 0x3c050007, 0xafa20014, 0x8ee65238, 
-0x8ee75240, 0x3c040001, 0x248458e0, 0xc002403, 
-0x34a5f010, 0x8003d5f, 0x0, 0x8ee20500, 
-0x24420001, 0x50430003, 0x1021, 0x8ee20500, 
-0x24420001, 0xaee20500, 0x8ee20500, 0x21080, 
-0x571021, 0xac490508, 0x8ee2523c, 0x491021, 
-0x304200ff, 0xaee2523c, 0x8ee3523c, 0x8ee25238, 
-0x14620005, 0x0, 0x8f820060, 0x2403feff, 
-0x431024, 0xaf820060, 0x8fbf0018, 0x3e00008, 
-0x27bd0020, 0x8f820120, 0x8ee34e34, 0x8f820124, 
-0x8f860128, 0x24020040, 0x24630001, 0x50620003, 
-0x1021, 0x8ee24e34, 0x24420001, 0xaee24e34, 
-0x8ee24e34, 0x8ee44e34, 0x8ee34e30, 0x210c0, 
-0x24425038, 0x14830007, 0x2e22821, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8003d92, 
-0xaca00000, 0x8ee24e34, 0x24030040, 0x24420001, 
-0x50430003, 0x1021, 0x8ee24e34, 0x24420001, 
-0x210c0, 0x24425038, 0x2e22821, 0x8ca20004, 
-0x8f830128, 0x21140, 0x621821, 0xaf830128, 
-0xaca00000, 0x8cc20018, 0x2443fffe, 0x2c620012, 
-0x10400008, 0x31080, 0x3c010001, 0x220821, 
-0x8c2258f0, 0x400008, 0x0, 0x24020001, 
-0xaee24e24, 0x3e00008, 0x0, 0x27bdffc8, 
-0xafbf0030, 0xafb5002c, 0xafb40028, 0xafb30024, 
-0xafb20020, 0xafb1001c, 0xafb00018, 0x8f830128, 
-0x8f820124, 0x106202b0, 0x9821, 0x3c11001f, 
-0x3631ffff, 0x3c12fff5, 0x36521000, 0x24150012, 
-0x24140040, 0x8f8c0128, 0x8f820128, 0x24420020, 
-0xaf820128, 0x9182001b, 0x8f830128, 0x2443fffe, 
-0x2c620012, 0x1040029c, 0x31080, 0x3c010001, 
-0x220821, 0x8c225948, 0x400008, 0x0, 
-0x8f420218, 0x30420100, 0x10400007, 0x0, 
-0x95830016, 0x95820018, 0x621823, 0x31402, 
-0x431021, 0xa5820016, 0x8d82001c, 0x3c038000, 
-0x3044ffff, 0x436824, 0x3c030800, 0x431824, 
-0x11a00004, 0xad84001c, 0x41140, 0x8003dd8, 
-0x24425248, 0x41140, 0x24420e20, 0x2e25821, 
-0x9562000e, 0x3042fffc, 0x10600004, 0xa562000e, 
-0x95840016, 0x8003ec0, 0x0, 0x8d690018, 
-0x4021, 0x952a0000, 0x25290002, 0x95270000, 
-0x25290002, 0x95260000, 0x25290002, 0x95250000, 
-0x25290002, 0x95240000, 0x25290002, 0x95230000, 
-0x25290002, 0x95220000, 0x25290002, 0x1475021, 
-0x1465021, 0x1455021, 0x1445021, 0x1435021, 
-0x1425021, 0xa1c02, 0x3142ffff, 0x625021, 
-0xa1c02, 0x3142ffff, 0x625021, 0x96e2046a, 
-0x314effff, 0x30420002, 0x10400044, 0x5021, 
-0x25220014, 0x222102b, 0x10400014, 0x1201821, 
-0x2405000a, 0x2021, 0x223102b, 0x54400001, 
-0x721821, 0x94620000, 0x24630002, 0x24a5ffff, 
-0x14a0fff9, 0x822021, 0x41c02, 0x3082ffff, 
-0x622021, 0x41402, 0x3083ffff, 0x431021, 
-0x3042ffff, 0x8003e33, 0x1425021, 0x952a0000, 
-0x25290002, 0x95280000, 0x25290002, 0x95270000, 
-0x25290002, 0x95260000, 0x25290002, 0x95250000, 
-0x25290002, 0x95230000, 0x25290002, 0x95220000, 
-0x25290002, 0x95240000, 0x25290002, 0x1485021, 
-0x1475021, 0x1465021, 0x1455021, 0x1435021, 
-0x1425021, 0x95220000, 0x95230002, 0x1445021, 
-0x1425021, 0x1435021, 0xa1c02, 0x3142ffff, 
-0x625021, 0xa1c02, 0x3142ffff, 0x625021, 
-0x3148ffff, 0x51000001, 0x3408ffff, 0x8d620018, 
-0x9443000c, 0x24020800, 0x54620005, 0xa5680010, 
-0x9562000e, 0x34420002, 0xa562000e, 0xa5680010, 
-0x96e2046a, 0x2821, 0x30420008, 0x14400056, 
-0x3021, 0x8d630018, 0x24620024, 0x222102b, 
-0x10400034, 0x24690010, 0x229102b, 0x54400001, 
-0x1324821, 0x95250000, 0x24690014, 0x229102b, 
-0x10400002, 0x24a5ffec, 0x1324821, 0x95220000, 
-0x30420fff, 0x14400003, 0x25290002, 0x8003e60, 
-0x24130001, 0x9821, 0xa03021, 0x229102b, 
-0x54400001, 0x1324821, 0x91220001, 0x25290002, 
-0xa22821, 0x229102b, 0x54400001, 0x1324821, 
-0x25290002, 0x229102b, 0x54400001, 0x1324821, 
-0x95220000, 0x25290002, 0xa22821, 0x229102b, 
-0x54400001, 0x1324821, 0x95220000, 0x25290002, 
-0xa22821, 0x229102b, 0x54400001, 0x1324821, 
-0x95220000, 0x25290002, 0xa22821, 0x229102b, 
-0x54400001, 0x1324821, 0x95220000, 0x8003e99, 
-0xa22821, 0x94650010, 0x94620014, 0x24690016, 
-0x30420fff, 0x14400003, 0x24a5ffec, 0x8003e8c, 
-0x24130001, 0x9821, 0xa03021, 0x91230001, 
-0x25290004, 0x95220000, 0x25290002, 0x95240000, 
-0x25290002, 0xa32821, 0xa22821, 0x95220000, 
-0x95230002, 0xa42821, 0xa22821, 0xa32821, 
-0x51c02, 0x30a2ffff, 0x622821, 0x51c02, 
-0x30a2ffff, 0x622821, 0x96e2046a, 0x30420001, 
-0x1040001e, 0x2021, 0x95820016, 0x4e2023, 
-0x41402, 0x822021, 0x326200ff, 0x50400002, 
-0x862021, 0x852021, 0x41402, 0x822021, 
-0x3084ffff, 0x50800001, 0x3404ffff, 0x8d620018, 
-0x24430017, 0x223102b, 0x54400001, 0x721821, 
-0x90620000, 0x38430011, 0x2c630001, 0x38420006, 
-0x2c420001, 0x621825, 0x10600004, 0x0, 
-0x9562000e, 0x34420001, 0xa562000e, 0x9562000e, 
-0x240a0002, 0x30420004, 0x10400002, 0xa5640012, 
-0x240a0004, 0x8f880120, 0x27623800, 0x25090020, 
-0x122102b, 0x50400001, 0x27693000, 0x8f820128, 
-0x11220004, 0x0, 0x8f820124, 0x15220007, 
-0x24040020, 0x8ee201a4, 0x8021, 0x24420001, 
-0xaee201a4, 0x8003f4f, 0x8ee201a4, 0x8ee5724c, 
-0x8ee60490, 0x8ee70494, 0xad0b0008, 0xa504000e, 
-0xad0a0018, 0x52940, 0xa01821, 0x1021, 
-0xe33821, 0xe3202b, 0xc23021, 0xc43021, 
-0xad060000, 0xad070004, 0x8ee2724c, 0x4d1025, 
-0xad02001c, 0x8ee204c4, 0xad020010, 0xaf890120, 
-0x92e24e20, 0x14400060, 0x24100001, 0x2543ffee, 
-0x2c630002, 0x39420011, 0x2c420001, 0x621825, 
-0x10600024, 0x0, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c820000, 0x1455000f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062000b, 
-0x0, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee34e30, 0x24420001, 0x1054002b, 
-0x0, 0x8003f2e, 0x0, 0x8ee24e30, 
-0x24420001, 0x50540003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x24020001, 0x8003f4e, 
-0xac950000, 0x8ee24e30, 0x210c0, 0x24425038, 
-0x2e22021, 0x8c830000, 0x24020007, 0x1462001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x0, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee34e30, 0x24420001, 0x10540007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10620005, 
-0x0, 0x8003f3a, 0x0, 0x14600005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400012, 
-0xac800000, 0x8003f4f, 0x0, 0x8ee24e30, 
-0x24420001, 0x50540003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x24020007, 0xac820000, 
-0x24020001, 0xac820004, 0x1600000d, 0x0, 
-0x8f820120, 0x3c040001, 0x24845938, 0xafa00014, 
-0xafa20010, 0x8d86001c, 0x8f870124, 0x3c050008, 
-0xc002403, 0x34a50001, 0x8004057, 0x0, 
-0x8ee2724c, 0x24420001, 0x304207ff, 0x11a00006, 
-0xaee2724c, 0x8ee201d0, 0x2442ffff, 0xaee201d0, 
-0x8003f6b, 0x8ee201d0, 0x8ee201cc, 0x2442ffff, 
-0xaee201cc, 0x8ee201cc, 0x8ee201d8, 0x2442ffff, 
-0xaee201d8, 0x8004057, 0x8ee201d8, 0x8f420240, 
-0x104000e5, 0x0, 0x8ee20e1c, 0x24420001, 
-0x8004057, 0xaee20e1c, 0x9582001e, 0xad82001c, 
-0x8f420240, 0x10400072, 0x0, 0x8ee20e1c, 
-0x24420001, 0xaee20e1c, 0x8f430240, 0x43102b, 
-0x144000d5, 0x0, 0x8f830120, 0x27623800, 
-0x24660020, 0xc2102b, 0x50400001, 0x27663000, 
-0x8f820128, 0x10c20004, 0x0, 0x8f820124, 
-0x14c20007, 0x0, 0x8ee201a4, 0x8021, 
-0x24420001, 0xaee201a4, 0x8003fda, 0x8ee201a4, 
-0x8ee2724c, 0xac62001c, 0x8ee404a8, 0x8ee504ac, 
-0x2462001c, 0xac620008, 0x24020008, 0xa462000e, 
-0x24020011, 0xac620018, 0xac640000, 0xac650004, 
-0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20, 
-0x14400034, 0x24100001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c820000, 0x1455001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x0, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee34e30, 0x24420001, 0x10540007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10620005, 
-0x0, 0x8003fc6, 0x0, 0x14600005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400011, 
-0xac800000, 0x8003fda, 0x0, 0x8ee24e30, 
-0x24420001, 0x50540003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x24020001, 0xac950000, 
-0xac820004, 0x5600000b, 0x24100001, 0x8ee2724c, 
-0x3c040001, 0x248458a8, 0xafa00014, 0xafa20010, 
-0x8ee6724c, 0x8f470280, 0x3c050009, 0xc002403, 
-0x34a5f008, 0x56000001, 0xaee00e1c, 0x8ee20188, 
-0x24420001, 0xaee20188, 0x8004050, 0x8ee20188, 
-0x8f830120, 0x27623800, 0x24660020, 0xc2102b, 
-0x50400001, 0x27663000, 0x8f820128, 0x10c20004, 
-0x0, 0x8f820124, 0x14c20007, 0x0, 
-0x8ee201a4, 0x8021, 0x24420001, 0xaee201a4, 
-0x8004044, 0x8ee201a4, 0x8ee2724c, 0xac62001c, 
-0x8ee404a8, 0x8ee504ac, 0x2462001c, 0xac620008, 
-0x24020008, 0xa462000e, 0x24020011, 0xac620018, 
-0xac640000, 0xac650004, 0x8ee204c4, 0xac620010, 
-0xaf860120, 0x92e24e20, 0x14400034, 0x24100001, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x8c820000, 0x1455001f, 0x0, 0x8ee34e30, 
-0x8ee24e34, 0x1062001b, 0x0, 0x8c820004, 
-0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30, 
-0x24420001, 0x10540007, 0x0, 0x8ee24e34, 
-0x24420001, 0x10620005, 0x0, 0x8004030, 
-0x0, 0x14600005, 0x0, 0x8f820128, 
-0x24420020, 0xaf820128, 0x8f820128, 0x8c820004, 
-0x2c420011, 0x50400011, 0xac800000, 0x8004044, 
-0x0, 0x8ee24e30, 0x24420001, 0x50540003, 
-0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30, 
-0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021, 
-0x24020001, 0xac950000, 0xac820004, 0x1600000b, 
-0x0, 0x8ee2724c, 0x3c040001, 0x248458a8, 
-0xafa00014, 0xafa20010, 0x8ee6724c, 0x8f470280, 
-0x3c050009, 0xc002403, 0x34a5f008, 0x8ee20174, 
-0x24420001, 0xaee20174, 0x8004057, 0x8ee20174, 
-0x24020001, 0xaee24e24, 0x8f830128, 0x8f820124, 
-0x1462fd58, 0x0, 0x8fbf0030, 0x8fb5002c, 
-0x8fb40028, 0x8fb30024, 0x8fb20020, 0x8fb1001c, 
-0x8fb00018, 0x3e00008, 0x27bd0038, 0x27bdffe8, 
-0x27840208, 0x27450200, 0x24060008, 0xafbf0014, 
-0xc00249a, 0xafb00010, 0x2021, 0x24100001, 
-0x2402241f, 0xaf900210, 0xaf900200, 0xaf800204, 
-0xaf820214, 0x8f460248, 0x24030004, 0x3c020040, 
-0x3c010001, 0xac235cc4, 0x3c010001, 0xac235cc8, 
-0x3c010001, 0xac205d9c, 0x3c010001, 0xac225cc0, 
-0x3c010001, 0xac235cc8, 0xc005108, 0x24050004, 
-0xc004822, 0x0, 0x8ee20000, 0x3c03feff, 
-0x3463fffd, 0x431024, 0xaee20000, 0x3c023c00, 
-0xaf82021c, 0x3c010001, 0x370821, 0xac3083ac, 
-0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018, 
-0x27bdffe0, 0x3c050008, 0x34a50400, 0xafbf0018, 
-0xafa00010, 0xafa00014, 0x8f860200, 0x3c040001, 
-0x248459f0, 0xc002403, 0x3821, 0x8ee20280, 
-0x24420001, 0xaee20280, 0x8ee20280, 0x8f830200, 
-0x3c023f00, 0x621824, 0x8fbf0018, 0x3c020400, 
-0x3e00008, 0x27bd0020, 0x27bdffd8, 0xafbf0020, 
-0xafb1001c, 0xafb00018, 0x8f900220, 0x8ee20214, 
-0x3821, 0x24420001, 0xaee20214, 0x8ee20214, 
-0x3c020300, 0x2021024, 0x10400027, 0x3c110400, 
-0xc00429b, 0x0, 0x3c020100, 0x2021024, 
-0x10400007, 0x0, 0x8ee20218, 0x24420001, 
-0xaee20218, 0x8ee20218, 0x80040c6, 0x3c03fdff, 
-0x8ee2021c, 0x24420001, 0xaee2021c, 0x8ee2021c, 
-0x3c03fdff, 0x3463ffff, 0x3c0808ff, 0x3508ffff, 
-0x8ee20000, 0x3c040001, 0x248459fc, 0x3c050008, 
-0x2003021, 0x431024, 0xaee20000, 0x8f820220, 
-0x3821, 0x3c030300, 0x481024, 0x431025, 
-0xaf820220, 0xafa00010, 0xc002403, 0xafa00014, 
-0x8004296, 0x0, 0x2111024, 0x1040001f, 
-0x3c024000, 0x8f830224, 0x24021402, 0x1462000b, 
-0x3c03fdff, 0x3c040001, 0x24845a08, 0x3c050008, 
-0xafa00010, 0xafa00014, 0x8f860224, 0x34a5ffff, 
-0xc002403, 0x3821, 0x3c03fdff, 0x8ee20000, 
-0x3463ffff, 0x2002021, 0x431024, 0xc004e54, 
-0xaee20000, 0x8ee20220, 0x24420001, 0xaee20220, 
-0x8ee20220, 0x8f820220, 0x3c0308ff, 0x3463ffff, 
-0x431024, 0x8004295, 0x511025, 0x2021024, 
-0x10400142, 0x0, 0x8ee2022c, 0x24420001, 
-0xaee2022c, 0x8ee2022c, 0x8f820220, 0x3c0308ff, 
-0x3463ffff, 0x431024, 0x34420004, 0xaf820220, 
-0x8f830054, 0x8f820054, 0x800410e, 0x24630002, 
-0x8f820054, 0x621023, 0x2c420003, 0x1440fffc, 
-0x0, 0x8f8600e0, 0x8f8400e4, 0x30c20007, 
-0x10400012, 0x0, 0x8f8300e4, 0x2402fff8, 
-0xc21024, 0x1043000d, 0x0, 0x8f820054, 
-0x8f8300e0, 0x14c30009, 0x24440050, 0x8f820054, 
-0x821023, 0x2c420051, 0x10400004, 0x0, 
-0x8f8200e0, 0x10c2fff9, 0x0, 0x8f820220, 
-0x3c0308ff, 0x3463fffd, 0x431024, 0xaf820220, 
-0x8f8600e0, 0x30c20007, 0x10400003, 0x2402fff8, 
-0xc23024, 0xaf8600e0, 0x8f8300c4, 0x3c02001f, 
-0x3442ffff, 0x24680008, 0x48102b, 0x10400003, 
-0x3c02fff5, 0x34421000, 0x1024021, 0x8f8b00c8, 
-0x8f850120, 0x8f840124, 0x8004145, 0x6021, 
-0x27623800, 0x82102b, 0x50400001, 0x27643000, 
-0x10a40010, 0x318200ff, 0x8c820018, 0x38430007, 
-0x2c630001, 0x3842000b, 0x2c420001, 0x621825, 
-0x5060fff3, 0x24840020, 0x8ee20240, 0x240c0001, 
-0x24420001, 0xaee20240, 0x8ee20240, 0x8c8b0008, 
-0x318200ff, 0x14400065, 0x0, 0x3c020001, 
-0x571021, 0x904283c0, 0x14400060, 0x0, 
-0x8f8400e4, 0xc41023, 0x218c3, 0x4620001, 
-0x24630200, 0x8f8900c4, 0x10600005, 0x24020001, 
-0x10620009, 0x0, 0x8004187, 0x0, 
-0x8ee20230, 0x1205821, 0x24420001, 0xaee20230, 
-0x80041bc, 0x8ee20230, 0x8ee20234, 0x3c05000a, 
-0x24420001, 0xaee20234, 0x8c8b0000, 0x34a5f000, 
-0x8ee20234, 0x12b1823, 0xa3102b, 0x54400001, 
-0x651821, 0x2c62233f, 0x14400040, 0x0, 
-0x8f8200e8, 0x24420008, 0xaf8200e8, 0x8f8200e8, 
-0x8f8200e4, 0x1205821, 0x24420008, 0xaf8200e4, 
-0x80041bc, 0x8f8200e4, 0x8ee20238, 0x3c03000a, 
-0x24420001, 0xaee20238, 0x8c840000, 0x3463f000, 
-0x8ee20238, 0x883823, 0x67102b, 0x54400001, 
-0xe33821, 0x3c020003, 0x34420d40, 0x47102b, 
-0x10400003, 0x0, 0x80041bc, 0x805821, 
-0x8f8200e4, 0x24440008, 0xaf8400e4, 0x8f8400e4, 
-0x10860018, 0x3c05000a, 0x34a5f000, 0x3c0a0003, 
-0x354a0d40, 0x8ee2007c, 0x24420001, 0xaee2007c, 
-0x8c830000, 0x8ee2007c, 0x683823, 0xa7102b, 
-0x54400001, 0xe53821, 0x147102b, 0x54400007, 
-0x605821, 0x8f8200e4, 0x24440008, 0xaf8400e4, 
-0x8f8400e4, 0x1486ffef, 0x0, 0x14860005, 
-0x0, 0x1205821, 0xaf8600e4, 0x80041bc, 
-0xaf8600e8, 0xaf8400e4, 0xaf8400e8, 0x8f8200c8, 
-0x3c03000a, 0x3463f000, 0x483823, 0x67102b, 
-0x54400001, 0xe33821, 0x3c020003, 0x34420d3f, 
-0x47102b, 0x54400007, 0x6021, 0x1683823, 
-0x67102b, 0x54400003, 0xe33821, 0x80041cf, 
-0x3c020003, 0x3c020003, 0x34420d3f, 0x47102b, 
-0x14400016, 0x318200ff, 0x14400006, 0x0, 
-0x3c020001, 0x571021, 0x904283c0, 0x1040000f, 
-0x0, 0x8ee2023c, 0x3c04fdff, 0x8ee30000, 
-0x3484ffff, 0x24420001, 0xaee2023c, 0x8ee2023c, 
-0x24020001, 0x641824, 0x3c010001, 0x370821, 
-0xa02283b8, 0x800422c, 0xaee30000, 0xaf8b00c8, 
-0x8f8300c8, 0x8f8200c4, 0x3c04000a, 0x3484f000, 
-0x623823, 0x87102b, 0x54400001, 0xe43821, 
-0x3c020003, 0x34420d40, 0x47102b, 0x2ce30001, 
-0x431025, 0x10400008, 0x0, 0x8f820220, 
-0x3c0308ff, 0x3463ffff, 0x431024, 0x3c034000, 
-0x431025, 0xaf820220, 0x8f8600e0, 0x8f8400e4, 
-0x10c4002a, 0x0, 0x8ee2007c, 0x24420001, 
-0xaee2007c, 0x8ee2007c, 0x24c2fff8, 0xaf8200e0, 
-0x3c020001, 0x8c427e30, 0x3c030008, 0x8f8600e0, 
-0x431024, 0x1040001d, 0x0, 0x10c4001b, 
-0x240dfff8, 0x3c0a000a, 0x354af000, 0x3c0c0080, 
-0x24850008, 0x27622800, 0x50a20001, 0x27651800, 
-0x8c880004, 0x8c820000, 0x8ca90000, 0x3103ffff, 
-0x431021, 0x4d1024, 0x24430010, 0x6b102b, 
-0x54400001, 0x6a1821, 0x12b102b, 0x54400001, 
-0x12a4821, 0x10690002, 0x10c1025, 0xac820004, 
-0xa02021, 0x14c4ffeb, 0x24850008, 0x8f820220, 
-0x3c0308ff, 0x3463ffff, 0x431024, 0x34420002, 
-0xaf820220, 0x8f830054, 0x8f820054, 0x8004237, 
-0x24630001, 0x8f820054, 0x621023, 0x2c420002, 
-0x1440fffc, 0x0, 0x8f820220, 0x3c0308ff, 
-0x3463fffb, 0x431024, 0xaf820220, 0x6010055, 
-0x0, 0x8ee20228, 0x24420001, 0xaee20228, 
-0x8ee20228, 0x8f820220, 0x3c0308ff, 0x3463ffff, 
-0x431024, 0x34420004, 0xaf820220, 0x8f830054, 
-0x8f820054, 0x8004251, 0x24630002, 0x8f820054, 
-0x621023, 0x2c420003, 0x1440fffc, 0x0, 
-0x8f8600e0, 0x30c20007, 0x10400012, 0x0, 
-0x8f8300e4, 0x2402fff8, 0xc21024, 0x1043000d, 
-0x0, 0x8f820054, 0x8f8300e0, 0x14c30009, 
-0x24440032, 0x8f820054, 0x821023, 0x2c420033, 
-0x10400004, 0x0, 0x8f8200e0, 0x10c2fff9, 
-0x0, 0x8f820220, 0x3c0308ff, 0x3463fffd, 
-0x431024, 0xaf820220, 0x8f8600e0, 0x30c20007, 
-0x10400003, 0x2402fff8, 0xc23024, 0xaf8600e0, 
-0x240301f5, 0x8f8200e8, 0x673823, 0x718c0, 
-0x431021, 0xaf8200e8, 0x8f8200e8, 0xaf8200e4, 
-0x8ee2007c, 0x3c0408ff, 0x3484ffff, 0x471021, 
-0xaee2007c, 0x8f820220, 0x3c038000, 0x34630002, 
-0x441024, 0x431025, 0xaf820220, 0x8f830054, 
-0x8f820054, 0x800428d, 0x24630001, 0x8f820054, 
-0x621023, 0x2c420002, 0x1440fffc, 0x0, 
-0x8f820220, 0x3c0308ff, 0x3463fffb, 0x431024, 
-0xaf820220, 0x8fbf0020, 0x8fb1001c, 0x8fb00018, 
-0x3e00008, 0x27bd0028, 0x3c020001, 0x8c425cd8, 
-0x27bdffd8, 0x10400012, 0xafbf0020, 0x3c040001, 
-0x24845a14, 0x3c050008, 0x24020001, 0x3c010001, 
-0x370821, 0xac2283ac, 0xafa00010, 0xafa00014, 
-0x8f860220, 0x34a50498, 0x3c010001, 0xac205cd8, 
-0x3c010001, 0xac225ccc, 0xc002403, 0x3821, 
-0x8f420268, 0x3c037fff, 0x3463ffff, 0x431024, 
-0xaf420268, 0x8ee204d0, 0x8ee404d4, 0x2403fffe, 
-0x431024, 0x30840002, 0x1080011e, 0xaee204d0, 
-0x8ee204d4, 0x2403fffd, 0x431024, 0xaee204d4, 
-0x8f820044, 0x3c030600, 0x34632000, 0x34420020, 
-0xaf820044, 0xafa30018, 0x8ee20608, 0x8f430228, 
-0x24420001, 0x304a00ff, 0x514300fe, 0xafa00010, 
-0x8ee20608, 0x210c0, 0x571021, 0x8fa30018, 
-0x8fa4001c, 0xac43060c, 0xac440610, 0x8f830054, 
-0x8f820054, 0x24690032, 0x1221023, 0x2c420033, 
-0x1040006a, 0x5821, 0x24180008, 0x240f000d, 
-0x240d0007, 0x240c0040, 0x240e0001, 0x8f870120, 
-0x27623800, 0x24e80020, 0x102102b, 0x50400001, 
-0x27683000, 0x8f820128, 0x11020004, 0x0, 
-0x8f820124, 0x15020007, 0x1021, 0x8ee201a4, 
-0x2821, 0x24420001, 0xaee201a4, 0x800433d, 
-0x8ee201a4, 0x8ee40608, 0x420c0, 0x801821, 
-0x8ee40430, 0x8ee50434, 0xa32821, 0xa3302b, 
-0x822021, 0x862021, 0xace40000, 0xace50004, 
-0x8ee20608, 0xa4f8000e, 0xacef0018, 0xacea001c, 
-0x210c0, 0x2442060c, 0x2e21021, 0xace20008, 
-0x8ee204c4, 0xace20010, 0xaf880120, 0x92e24e20, 
-0x14400033, 0x24050001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c820000, 0x144d001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x0, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee34e30, 0x24420001, 0x104c0007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10620005, 
-0x0, 0x800432a, 0x0, 0x14600005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400010, 
-0xac800000, 0x800433d, 0x0, 0x8ee24e30, 
-0x24420001, 0x504c0003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0xac8d0000, 0xac8e0004, 
-0x54a00006, 0x240b0001, 0x8f820054, 0x1221023, 
-0x2c420033, 0x1440ff9d, 0x0, 0x316300ff, 
-0x24020001, 0x54620079, 0xafa00010, 0xaeea0608, 
-0x8f830054, 0x8f820054, 0x24690032, 0x1221023, 
-0x2c420033, 0x10400061, 0x5821, 0x240d0008, 
-0x240c0011, 0x24080012, 0x24070040, 0x240a0001, 
-0x8f830120, 0x27623800, 0x24660020, 0xc2102b, 
-0x50400001, 0x27663000, 0x8f820128, 0x10c20004, 
-0x0, 0x8f820124, 0x14c20007, 0x0, 
-0x8ee201a4, 0x2821, 0x24420001, 0xaee201a4, 
-0x80043a9, 0x8ee201a4, 0x8ee20608, 0xac62001c, 
-0x8ee404a0, 0x8ee504a4, 0x2462001c, 0xac620008, 
-0xa46d000e, 0xac6c0018, 0xac640000, 0xac650004, 
-0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20, 
-0x14400033, 0x24050001, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0x8c820000, 0x1448001f, 
-0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b, 
-0x0, 0x8c820004, 0x24420001, 0xac820004, 
-0x8ee24e34, 0x8ee34e30, 0x24420001, 0x10470007, 
-0x0, 0x8ee24e34, 0x24420001, 0x10620005, 
-0x0, 0x8004396, 0x0, 0x14600005, 
-0x0, 0x8f820128, 0x24420020, 0xaf820128, 
-0x8f820128, 0x8c820004, 0x2c420011, 0x50400010, 
-0xac800000, 0x80043a9, 0x0, 0x8ee24e30, 
-0x24420001, 0x50470003, 0x1021, 0x8ee24e30, 
-0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0, 
-0x24425038, 0x2e22021, 0xac880000, 0xac8a0004, 
-0x54a00006, 0x240b0001, 0x8f820054, 0x1221023, 
-0x2c420033, 0x1440ffa6, 0x0, 0x316300ff, 
-0x24020001, 0x54620003, 0xafa00010, 0x80043d6, 
-0x0, 0x3c040001, 0x24845a20, 0xafa00014, 
-0x8f860120, 0x8f870124, 0x3c050009, 0xc002403, 
-0x34a5f011, 0x80043d6, 0x0, 0x3c040001, 
-0x24845a2c, 0xafa00014, 0x8f860120, 0x8f870124, 
-0x3c050009, 0xc002403, 0x34a5f010, 0x80043d6, 
-0x0, 0x3c040001, 0x24845a38, 0xafa00014, 
-0x8ee60608, 0x8f470228, 0x3c050009, 0xc002403, 
-0x34a5f00f, 0x8ee201ac, 0x24420001, 0xaee201ac, 
-0x8ee201ac, 0x8ee2015c, 0x24420001, 0xaee2015c, 
-0x8ee2015c, 0x8fbf0020, 0x3e00008, 0x27bd0028, 
-0x3c020001, 0x8c425cd8, 0x27bdffe0, 0x1440000d, 
-0xafbf0018, 0x3c040001, 0x24845a44, 0x3c050008, 
-0xafa00010, 0xafa00014, 0x8f860220, 0x34a50499, 
-0x24020001, 0x3c010001, 0xac225cd8, 0xc002403, 
-0x3821, 0x8ee204d0, 0x3c030001, 0x771821, 
-0x946383b2, 0x34420001, 0x10600007, 0xaee204d0, 
-0x8f820220, 0x3c0308ff, 0x3463ffff, 0x431024, 
-0x34420008, 0xaf820220, 0x2021, 0xc0052a2, 
-0x24050004, 0xaf420268, 0x8fbf0018, 0x3e00008, 
-0x27bd0020, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x3c120001, 
-0x26521200, 0x3c140001, 0x8e945c50, 0x3c100001, 
-0x26101120, 0x3c15c000, 0x36b50060, 0x8e8a0000, 
-0x8eb30000, 0x26a400b, 0x248000a, 0x200f821, 
-0x0, 0xd, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x80014d6, 
-0x0, 0x80014d8, 0x3c0a0001, 0x80014d8, 
-0x3c0a0002, 0x80014d8, 0x0, 0x80024a6, 
-0x0, 0x80014d8, 0x3c0a0003, 0x80014d8, 
-0x3c0a0004, 0x8002f8c, 0x0, 0x80014d8, 
-0x3c0a0005, 0x8003ce8, 0x0, 0x8003c66, 
-0x0, 0x80014d8, 0x3c0a0006, 0x80014d8, 
-0x3c0a0007, 0x80014d8, 0x0, 0x80014d8, 
-0x0, 0x80014d8, 0x0, 0x8002a75, 
-0x0, 0x80014d8, 0x3c0a000b, 0x80014d8, 
-0x3c0a000c, 0x80014d8, 0x3c0a000d, 0x800237a, 
-0x0, 0x8002339, 0x0, 0x80014d8, 
-0x3c0a000e, 0x8001b3c, 0x0, 0x80024a4, 
-0x0, 0x80014d8, 0x3c0a000f, 0x80040a7, 
-0x0, 0x8004091, 0x0, 0x80014d8, 
-0x3c0a0010, 0x80014ee, 0x0, 0x80014d8, 
-0x3c0a0011, 0x80014d8, 0x3c0a0012, 0x80014d8, 
-0x3c0a0013, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x3c030001, 
-0x34633800, 0x24050080, 0x2404001f, 0x2406ffff, 
-0x24020001, 0xaf80021c, 0xaf820200, 0xaf820220, 
-0x3631021, 0xaf8200c0, 0x3631021, 0xaf8200c4, 
-0x3631021, 0xaf8200c8, 0x27623800, 0xaf8200d0, 
-0x27623800, 0xaf8200d4, 0x27623800, 0xaf8200d8, 
-0x27621800, 0xaf8200e0, 0x27621800, 0xaf8200e4, 
-0x27621800, 0xaf8200e8, 0x27621000, 0xaf8200f0, 
-0x27621000, 0xaf8200f4, 0x27621000, 0xaf8200f8, 
-0xaca00000, 0x2484ffff, 0x1486fffd, 0x24a50004, 
-0x8f830040, 0x3c02f000, 0x621824, 0x3c025000, 
-0x1062000c, 0x43102b, 0x14400006, 0x3c026000, 
-0x3c024000, 0x10620008, 0x24020800, 0x8004539, 
-0x0, 0x10620004, 0x24020800, 0x8004539, 
-0x0, 0x24020700, 0x3c010001, 0xac225cdc, 
-0x3e00008, 0x0, 0x27bdffd8, 0xafbf0024, 
-0xafb00020, 0x8f830054, 0x8f820054, 0x3c010001, 
-0xac205cc4, 0x8004545, 0x24630064, 0x8f820054, 
-0x621023, 0x2c420065, 0x1440fffc, 0x0, 
-0xc004d71, 0x0, 0x24040001, 0x2821, 
-0x27a60018, 0x34028000, 0xc00498e, 0xa7a20018, 
-0x8f830054, 0x8f820054, 0x8004556, 0x24630064, 
-0x8f820054, 0x621023, 0x2c420065, 0x1440fffc, 
-0x24040001, 0x24050001, 0xc00494c, 0x27a60018, 
-0x8f830054, 0x8f820054, 0x8004562, 0x24630064, 
-0x8f820054, 0x621023, 0x2c420065, 0x1440fffc, 
-0x24040001, 0x24050001, 0xc00494c, 0x27a60018, 
-0x8f830054, 0x8f820054, 0x800456e, 0x24630064, 
-0x8f820054, 0x621023, 0x2c420065, 0x1440fffc, 
-0x24040001, 0x3c060001, 0x24c65da0, 0xc00494c, 
-0x24050002, 0x8f830054, 0x8f820054, 0x800457b, 
-0x24630064, 0x8f820054, 0x621023, 0x2c420065, 
-0x1440fffc, 0x24040001, 0x24050003, 0x3c100001, 
-0x26105da2, 0xc00494c, 0x2003021, 0x97a60018, 
-0x3c070001, 0x94e75da0, 0x3c040001, 0x24845ab0, 
-0xafa00014, 0x96020000, 0x3c05000d, 0x34a50100, 
-0xc002403, 0xafa20010, 0x97a20018, 0x1040004c, 
-0x24036040, 0x96020000, 0x3042fff0, 0x1443000a, 
-0x24020020, 0x3c030001, 0x94635da0, 0x54620009, 
-0x24027830, 0x24020003, 0x3c010001, 0xac225cc4, 
-0x80045ac, 0x24020005, 0x3c030001, 0x94635da0, 
-0x24027830, 0x1462000f, 0x24030010, 0x3c020001, 
-0x94425da2, 0x3042fff0, 0x1443000a, 0x24020003, 
-0x3c010001, 0xac225cc4, 0x24020006, 0x3c010001, 
-0xac225db0, 0x3c010001, 0xac225dbc, 0x80045e6, 
-0x3c09fff0, 0x3c020001, 0x8c425cc4, 0x3c030001, 
-0x94635da0, 0x34420001, 0x3c010001, 0xac225cc4, 
-0x24020015, 0x1462000f, 0x0, 0x3c020001, 
-0x94425da2, 0x3042fff0, 0x3843f420, 0x2c630001, 
-0x3842f430, 0x2c420001, 0x621825, 0x10600005, 
-0x24020003, 0x3c010001, 0xac225dbc, 0x80045e6, 
-0x3c09fff0, 0x3c030001, 0x94635da0, 0x24027810, 
-0x1462000b, 0x24020002, 0x3c020001, 0x94425da2, 
-0x3042fff0, 0x14400006, 0x24020002, 0x24020004, 
-0x3c010001, 0xac225dbc, 0x80045e6, 0x3c09fff0, 
-0x3c010001, 0xac225dbc, 0x80045e6, 0x3c09fff0, 
-0x3c020001, 0x8c425cc4, 0x24030001, 0x3c010001, 
-0xac235dbc, 0x34420004, 0x3c010001, 0xac225cc4, 
-0x3c09fff0, 0x3529bdc0, 0x3c060001, 0x8cc65cc4, 
-0x3c040001, 0x24845ab0, 0x24020001, 0x3c010001, 
-0xac225ccc, 0x8f820054, 0x3c070001, 0x8ce75dbc, 
-0x3c030001, 0x94635da0, 0x3c080001, 0x95085da2, 
-0x3c05000d, 0x34a50100, 0x3c010001, 0xac205cc8, 
-0x491021, 0x3c010001, 0xac225dac, 0xafa30010, 
-0xc002403, 0xafa80014, 0x8fbf0024, 0x8fb00020, 
-0x3e00008, 0x27bd0028, 0x27bdffe8, 0x3c050001, 
-0x8ca55cc8, 0x24060004, 0x24020001, 0x14a20014, 
-0xafbf0010, 0x3c020001, 0x8c427e3c, 0x30428000, 
-0x10400005, 0x3c04000f, 0x3c030001, 0x8c635dbc, 
-0x8004617, 0x34844240, 0x3c040004, 0x3c030001, 
-0x8c635dbc, 0x348493e0, 0x24020005, 0x14620016, 
-0x0, 0x3c04003d, 0x800462f, 0x34840900, 
-0x3c020001, 0x8c427e38, 0x30428000, 0x10400005, 
-0x3c04001e, 0x3c030001, 0x8c635dbc, 0x800462a, 
-0x34848480, 0x3c04000f, 0x3c030001, 0x8c635dbc, 
-0x34844240, 0x24020005, 0x14620003, 0x0, 
-0x3c04007a, 0x34841200, 0x3c020001, 0x8c425dac, 
-0x8f830054, 0x441021, 0x431023, 0x44102b, 
-0x14400037, 0x0, 0x3c020001, 0x8c425cd0, 
-0x14400033, 0x0, 0x3c010001, 0x10c00025, 
-0xac205ce0, 0x3c090001, 0x8d295cc4, 0x24070001, 
-0x3c044000, 0x3c080001, 0x25087e3c, 0x250afffc, 
-0x52842, 0x14a00002, 0x24c6ffff, 0x24050008, 
-0xa91024, 0x10400010, 0x0, 0x14a70008, 
-0x0, 0x8d020000, 0x441024, 0x1040000a, 
-0x0, 0x3c010001, 0x800465b, 0xac255ce0, 
-0x8d420000, 0x441024, 0x10400003, 0x0, 
-0x3c010001, 0xac275ce0, 0x3c020001, 0x8c425ce0, 
-0x6182b, 0x2c420001, 0x431024, 0x5440ffe5, 
-0x52842, 0x8f820054, 0x3c030001, 0x8c635ce0, 
-0x3c010001, 0xac225dac, 0x1060002a, 0x24020001, 
-0x3c010001, 0xac255cc8, 0x3c010001, 0xac225ccc, 
-0x3c020001, 0x8c425ce0, 0x10400022, 0x0, 
-0x3c020001, 0x8c425ccc, 0x1040000a, 0x24020001, 
-0x3c010001, 0xac205ccc, 0x3c010001, 0x370821, 
-0xac2283ac, 0x3c010001, 0xac205d4c, 0x3c010001, 
-0xac225d04, 0x3c030001, 0x771821, 0x8c6383ac, 
-0x24020008, 0x10620005, 0x24020001, 0xc004695, 
-0x0, 0x8004692, 0x0, 0x3c030001, 
-0x8c635cc8, 0x10620007, 0x2402000e, 0x3c030001, 
-0x8c637dd0, 0x10620003, 0x0, 0xc004e54, 
-0x8f840220, 0x8fbf0010, 0x3e00008, 0x27bd0018, 
-0x27bdffe0, 0x3c02fdff, 0xafbf0018, 0x8ee30000, 
-0x3c050001, 0x8ca55cc8, 0x3c040001, 0x8c845cf0, 
-0x3442ffff, 0x621824, 0x14a40008, 0xaee30000, 
-0x3c030001, 0x771821, 0x8c6383ac, 0x3c020001, 
-0x8c425cf4, 0x10620008, 0x0, 0x3c020001, 
-0x571021, 0x8c4283ac, 0x3c010001, 0xac255cf0, 
-0x3c010001, 0xac225cf4, 0x3c030001, 0x8c635cc8, 
-0x24020002, 0x10620169, 0x2c620003, 0x10400005, 
-0x24020001, 0x10620008, 0x0, 0x800481c, 
-0x0, 0x24020004, 0x106200b1, 0x24020001, 
-0x800481d, 0x0, 0x3c020001, 0x571021, 
-0x8c4283ac, 0x2443ffff, 0x2c620008, 0x1040015a, 
-0x31080, 0x3c010001, 0x220821, 0x8c225ac8, 
-0x400008, 0x0, 0x3c030001, 0x8c635dbc, 
-0x24020005, 0x14620014, 0x0, 0x3c020001, 
-0x8c425cd4, 0x1040000a, 0x24020003, 0xc004822, 
-0x0, 0x24020002, 0x3c010001, 0x370821, 
-0xac2283ac, 0x3c010001, 0x80046e0, 0xac205cd4, 
-0x3c010001, 0x370821, 0xac2283ac, 0x3c010001, 
-0x800481f, 0xac205c60, 0xc004822, 0x0, 
-0x3c020001, 0x8c425cd4, 0x3c010001, 0xac205c60, 
-0x104000dd, 0x24020002, 0x3c010001, 0x370821, 
-0xac2283ac, 0x3c010001, 0x800481f, 0xac205cd4, 
-0x3c030001, 0x8c635dbc, 0x24020005, 0x14620003, 
-0x24020001, 0x3c010001, 0xac225d00, 0xc0049cf, 
-0x0, 0x3c030001, 0x8c635d00, 0x800478e, 
-0x24020011, 0x3c050001, 0x8ca55cc8, 0x3c060001, 
-0x8cc67e3c, 0xc005108, 0x2021, 0x24020005, 
-0x3c010001, 0xac205cd4, 0x3c010001, 0x370821, 
-0x800481f, 0xac2283ac, 0x3c040001, 0x24845abc, 
-0x3c05000f, 0x34a50100, 0x3021, 0x3821, 
-0xafa00010, 0xc002403, 0xafa00014, 0x800481f, 
-0x0, 0x8f820220, 0x3c03f700, 0x431025, 
-0x80047b7, 0xaf820220, 0x8f820220, 0x3c030004, 
-0x431024, 0x144000a9, 0x24020007, 0x8f830054, 
-0x3c020001, 0x8c425da4, 0x2463d8f0, 0x431023, 
-0x2c422710, 0x144000f8, 0x24020001, 0x800481d, 
-0x0, 0x3c050001, 0x8ca55cc8, 0xc0052a2, 
-0x2021, 0xc005386, 0x2021, 0x3c030001, 
-0x8c637e34, 0x46100ea, 0x24020001, 0x3c020008, 
-0x621024, 0x10400006, 0x0, 0x8f820214, 
-0x3c03ffff, 0x431024, 0x8004741, 0x3442251f, 
-0x8f820214, 0x3c03ffff, 0x431024, 0x3442241f, 
-0xaf820214, 0x8ee20000, 0x3c030200, 0x431025, 
-0xaee20000, 0x8f820220, 0x2403fffb, 0x431024, 
-0xaf820220, 0x8f820220, 0x34420002, 0xaf820220, 
-0x24020008, 0x3c010001, 0x370821, 0xac2283ac, 
-0x8f820220, 0x3c030004, 0x431024, 0x14400005, 
-0x0, 0x8f820220, 0x3c03f700, 0x431025, 
-0xaf820220, 0x3c030001, 0x8c635dbc, 0x24020005, 
-0x1462000a, 0x0, 0x3c020001, 0x94425da2, 
-0x24429fbc, 0x2c420004, 0x10400004, 0x24040018, 
-0x24050002, 0xc004d93, 0x24060020, 0xc0043dd, 
-0x0, 0x3c010001, 0x800481f, 0xac205d50, 
-0x3c020001, 0x571021, 0x8c4283ac, 0x2443ffff, 
-0x2c620008, 0x104000ac, 0x31080, 0x3c010001, 
-0x220821, 0x8c225ae8, 0x400008, 0x0, 
-0xc00429b, 0x0, 0x3c010001, 0xac205ccc, 
-0xaf800204, 0x3c010001, 0xc004822, 0xac207e20, 
-0x24020001, 0x3c010001, 0xac225ce4, 0x24020002, 
-0x3c010001, 0x370821, 0x800481f, 0xac2283ac, 
-0xc00489f, 0x0, 0x3c030001, 0x8c635ce4, 
-0x24020009, 0x14620090, 0x24020003, 0x3c010001, 
-0x370821, 0x800481f, 0xac2283ac, 0x3c020001, 
-0x8c427e38, 0x30424000, 0x10400005, 0x0, 
-0x8f820044, 0x3c03ffff, 0x800479f, 0x34637fff, 
-0x8f820044, 0x2403ff7f, 0x431024, 0xaf820044, 
-0x8f830054, 0x80047b9, 0x24020004, 0x8f830054, 
-0x3c020001, 0x8c425da4, 0x2463d8f0, 0x431023, 
-0x2c422710, 0x14400074, 0x24020005, 0x3c010001, 
-0x370821, 0x800481f, 0xac2283ac, 0x8f820220, 
-0x3c03f700, 0x431025, 0xaf820220, 0xaf800204, 
-0x3c010001, 0xac207e20, 0x8f830054, 0x24020006, 
-0x3c010001, 0x370821, 0xac2283ac, 0x3c010001, 
-0x800481f, 0xac235da4, 0x8f830054, 0x3c020001, 
-0x8c425da4, 0x2463fff6, 0x431023, 0x2c42000a, 
-0x14400059, 0x0, 0x24020007, 0x3c010001, 
-0x370821, 0x800481f, 0xac2283ac, 0x8f820220, 
-0x3c04f700, 0x441025, 0xaf820220, 0x8f820220, 
-0x3c030300, 0x431024, 0x14400005, 0x1821, 
-0x8f820220, 0x24030001, 0x441025, 0xaf820220, 
-0x10600043, 0x24020001, 0x8f820214, 0x3c03ffff, 
-0x3c040001, 0x8c845d98, 0x431024, 0x3442251f, 
-0xaf820214, 0x24020008, 0x3c010001, 0x370821, 
-0x1080000b, 0xac2283ac, 0x3c020001, 0x8c425d74, 
-0x14400007, 0x24020001, 0x3c010001, 0xac227dd0, 
-0xc004e54, 0x8f840220, 0x800480c, 0x0, 
-0x8f820220, 0x3c030008, 0x431024, 0x14400017, 
-0x2402000e, 0x3c010001, 0xac227dd0, 0x8ee20000, 
-0x2021, 0x3c030200, 0x431025, 0xc005386, 
-0xaee20000, 0x8f820220, 0x2403fffb, 0x431024, 
-0xaf820220, 0x8f820220, 0x34420002, 0xc0043dd, 
-0xaf820220, 0x3c050001, 0x8ca55cc8, 0xc0052a2, 
-0x2021, 0x800481f, 0x0, 0x3c020001, 
-0x8c425d74, 0x10400010, 0x0, 0x3c020001, 
-0x8c425d70, 0x2442ffff, 0x3c010001, 0xac225d70, 
-0x14400009, 0x24020002, 0x3c010001, 0xac205d74, 
-0x3c010001, 0x800481f, 0xac225d70, 0x24020001, 
-0x3c010001, 0xac225ccc, 0x8fbf0018, 0x3e00008, 
-0x27bd0020, 0x8f820200, 0x8f820220, 0x8f820220, 
-0x34420004, 0xaf820220, 0x8f820200, 0x3c060001, 
-0x8cc65cc8, 0x34420004, 0xaf820200, 0x24020002, 
-0x10c2003a, 0x2cc20003, 0x10400005, 0x24020001, 
-0x10c20008, 0x0, 0x8004868, 0x0, 
-0x24020004, 0x10c20013, 0x24020001, 0x8004868, 
-0x0, 0x3c030001, 0x8c635cb8, 0x3c020001, 
-0x8c425cc0, 0x3c040001, 0x8c845cdc, 0x3c050001, 
-0x8ca55cbc, 0xaf860200, 0xaf860220, 0x34630022, 
-0x441025, 0x451025, 0x34420002, 0x8004867, 
-0xaf830200, 0x3c030001, 0x8c635d98, 0xaf820200, 
-0x10600009, 0xaf820220, 0x3c020001, 0x8c425d74, 
-0x14400005, 0x3c033f00, 0x3c020001, 0x8c425cb0, 
-0x800485b, 0x346300e0, 0x3c020001, 0x8c425cb0, 
-0x3c033f00, 0x346300e2, 0x431025, 0xaf820200, 
-0x3c030001, 0x8c635cb4, 0x3c04f700, 0x3c020001, 
-0x8c425cc0, 0x3c050001, 0x8ca55cdc, 0x641825, 
-0x431025, 0x451025, 0xaf820220, 0x3e00008, 
-0x0, 0x8f820220, 0x3c030001, 0x8c635cc8, 
-0x34420004, 0xaf820220, 0x24020001, 0x1062000f, 
-0x0, 0x8f830054, 0x8f820054, 0x24630002, 
-0x621023, 0x2c420003, 0x10400011, 0x0, 
-0x8f820054, 0x621023, 0x2c420003, 0x1040000c, 
-0x0, 0x8004879, 0x0, 0x8f830054, 
-0x8f820054, 0x8004885, 0x24630007, 0x8f820054, 
-0x621023, 0x2c420008, 0x1440fffc, 0x0, 
-0x8f8400e0, 0x30820007, 0x1040000d, 0x0, 
-0x8f820054, 0x8f8300e0, 0x14830009, 0x24450032, 
-0x8f820054, 0xa21023, 0x2c420033, 0x10400004, 
-0x0, 0x8f8200e0, 0x1082fff9, 0x0, 
-0x8f820220, 0x2403fffd, 0x431024, 0xaf820220, 
-0x3e00008, 0x0, 0x3c030001, 0x8c635ce4, 
-0x3c020001, 0x8c425ce8, 0x50620004, 0x2463ffff, 
-0x3c010001, 0xac235ce8, 0x2463ffff, 0x2c620009, 
-0x1040009d, 0x31080, 0x3c010001, 0x220821, 
-0x8c225b08, 0x400008, 0x0, 0x8f820044, 
-0x34428080, 0xaf820044, 0x8f830054, 0x8004938, 
-0x24020002, 0x8f830054, 0x3c020001, 0x8c425da8, 
-0x2463d8f0, 0x431023, 0x2c422710, 0x1440008a, 
-0x24020003, 0x8004945, 0x0, 0x8f820044, 
-0x3c03ffff, 0x34637fff, 0x431024, 0xaf820044, 
-0x8f830054, 0x8004938, 0x24020004, 0x8f830054, 
-0x3c020001, 0x8c425da8, 0x2463fff6, 0x431023, 
-0x2c42000a, 0x14400078, 0x24020005, 0x8004945, 
-0x0, 0x8f820220, 0x3c03f700, 0x431025, 
-0xaf820220, 0x8f820220, 0x2403fffb, 0x431024, 
-0xaf820220, 0x8f820220, 0x34420002, 0xaf820220, 
-0x3c023f00, 0x344200e0, 0xaf820200, 0x8f820200, 
-0x2403fffd, 0x431024, 0xaf820200, 0x24040001, 
-0x3405ffff, 0xaf840204, 0x8f830054, 0x8f820054, 
-0x80048ec, 0x24630001, 0x8f820054, 0x621023, 
-0x2c420002, 0x1440fffc, 0x0, 0x8f820224, 
-0x42040, 0xa4102b, 0x1040fff2, 0x0, 
-0x8f820220, 0x3c03f700, 0x431025, 0xaf820220, 
-0x8f820214, 0x3c03ffff, 0x431024, 0x3442251f, 
-0xaf820214, 0x8f820220, 0x2403fffb, 0x431024, 
-0xaf820220, 0x8f820220, 0x3c04f700, 0x34840008, 
-0x34420002, 0xaf820220, 0x8f820220, 0x3c033f00, 
-0x346300e2, 0x441025, 0xaf820220, 0xaf830200, 
-0x8f8400f0, 0x276217f8, 0x14820002, 0x24850008, 
-0x27651000, 0x8f8200f4, 0x10a20007, 0x3c038000, 
-0x34630040, 0x3c020001, 0x24425c70, 0xac820000, 
-0xac830004, 0xaf8500f0, 0x8f830054, 0x8004938, 
-0x24020006, 0x8f830054, 0x3c020001, 0x8c425da8, 
-0x2463fff6, 0x431023, 0x2c42000a, 0x14400022, 
-0x24020007, 0x8004945, 0x0, 0x8f8200e0, 
-0xaf8200e4, 0x8f8200e0, 0xaf8200e8, 0x8f820220, 
-0x34420004, 0xaf820220, 0x8f820220, 0x2403fff7, 
-0x431024, 0xaf820220, 0x8f820044, 0x34428080, 
-0xaf820044, 0x8f830054, 0x24020008, 0x3c010001, 
-0xac225ce4, 0x3c010001, 0x8004947, 0xac235da8, 
-0x8f830054, 0x3c020001, 0x8c425da8, 0x2463d8f0, 
-0x431023, 0x2c422710, 0x14400003, 0x24020009, 
-0x3c010001, 0xac225ce4, 0x3e00008, 0x0, 
-0x0, 0x0, 0x0, 0x27bdffd8, 
-0xafb20018, 0x809021, 0xafb3001c, 0xa09821, 
-0xafb10014, 0xc08821, 0xafb00010, 0x8021, 
-0xafbf0020, 0xa6200000, 0xc004d4b, 0x24040001, 
-0x26100001, 0x2e020020, 0x1440fffb, 0x0, 
-0xc004d4b, 0x2021, 0xc004d4b, 0x24040001, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0x24100010, 0x2501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d4b, 0x108042, 0x1600fffa, 
-0x2501024, 0x24100010, 0x2701024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fffa, 0x2701024, 0xc004d71, 0x34108000, 
-0xc004d71, 0x0, 0xc004d2b, 0x0, 
-0x50400005, 0x108042, 0x96220000, 0x501025, 
-0xa6220000, 0x108042, 0x1600fff7, 0x0, 
-0xc004d71, 0x0, 0x8fbf0020, 0x8fb3001c, 
-0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008, 
-0x27bd0028, 0x27bdffd8, 0xafb10014, 0x808821, 
-0xafb20018, 0xa09021, 0xafb3001c, 0xc09821, 
-0xafb00010, 0x8021, 0xafbf0020, 0xc004d4b, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0x24100010, 0x2301024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fffa, 0x2301024, 0x24100010, 0x2501024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x2501024, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0x34108000, 
-0x96620000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d4b, 0x108042, 0x1600fff8, 
-0x0, 0xc004d71, 0x0, 0x8fbf0020, 
-0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 
-0x3e00008, 0x27bd0028, 0x3c030001, 0x8c635d00, 
-0x3c020001, 0x8c425d48, 0x27bdffd8, 0xafbf0020, 
-0xafb1001c, 0x10620003, 0xafb00018, 0x3c010001, 
-0xac235d48, 0x2463ffff, 0x2c620013, 0x10400349, 
-0x31080, 0x3c010001, 0x220821, 0x8c225b30, 
-0x400008, 0x0, 0xc004d71, 0x8021, 
-0x34028000, 0xa7a20010, 0x27b10010, 0xc004d4b, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0xc004d4b, 
-0x2021, 0x108042, 0x1600fffc, 0x0, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fff8, 0x0, 0xc004d71, 0x0, 
-0x8004d24, 0x24020002, 0x27b10010, 0xa7a00010, 
-0x8021, 0xc004d4b, 0x24040001, 0x26100001, 
-0x2e020020, 0x1440fffb, 0x0, 0xc004d4b, 
-0x2021, 0xc004d4b, 0x24040001, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0x24100010, 
-0x32020001, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020001, 
-0x24100010, 0xc004d4b, 0x2021, 0x108042, 
-0x1600fffc, 0x0, 0xc004d71, 0x34108000, 
-0xc004d71, 0x0, 0xc004d2b, 0x0, 
-0x50400005, 0x108042, 0x96220000, 0x501025, 
-0xa6220000, 0x108042, 0x1600fff7, 0x0, 
-0xc004d71, 0x0, 0x97a20010, 0x30428000, 
-0x144002dc, 0x24020003, 0x8004d24, 0x0, 
-0x24021200, 0xa7a20010, 0x27b10010, 0x8021, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0xc004d4b, 0x2021, 0x108042, 0x1600fffc, 
-0x0, 0xc004d4b, 0x24040001, 0xc004d4b, 
-0x2021, 0x34108000, 0x96220000, 0x501024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fff8, 0x0, 0xc004d71, 
-0x0, 0x8f830054, 0x8004d16, 0x24020004, 
-0x8f830054, 0x3c020001, 0x8c425db8, 0x2463ff9c, 
-0x431023, 0x2c420064, 0x1440029e, 0x24020002, 
-0x3c030001, 0x8c635dbc, 0x10620297, 0x2c620003, 
-0x14400296, 0x24020011, 0x24020003, 0x10620005, 
-0x24020004, 0x10620291, 0x2402000f, 0x8004d24, 
-0x24020011, 0x8004d24, 0x24020005, 0x24020014, 
-0xa7a20010, 0x27b10010, 0x8021, 0xc004d4b, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x32020012, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020012, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0x34108000, 
-0x96220000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d4b, 0x108042, 0x1600fff8, 
-0x0, 0xc004d71, 0x0, 0x8f830054, 
-0x8004d16, 0x24020006, 0x8f830054, 0x3c020001, 
-0x8c425db8, 0x2463ff9c, 0x431023, 0x2c420064, 
-0x14400250, 0x24020007, 0x8004d24, 0x0, 
-0x24020006, 0xa7a20010, 0x27b10010, 0x8021, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020013, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020013, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fff8, 0x0, 0xc004d71, 0x0, 
-0x8f830054, 0x8004d16, 0x24020008, 0x8f830054, 
-0x3c020001, 0x8c425db8, 0x2463ff9c, 0x431023, 
-0x2c420064, 0x1440020f, 0x24020009, 0x8004d24, 
-0x0, 0x27b10010, 0xa7a00010, 0x8021, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x24040001, 
-0xc004d4b, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004d71, 0x34108000, 0xc004d71, 0x0, 
-0xc004d2b, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004d71, 0x8021, 
-0x97a20010, 0x27b10010, 0x34420001, 0xa7a20010, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fff8, 0x0, 0xc004d71, 0x0, 
-0x8f830054, 0x8004d16, 0x2402000a, 0x8f830054, 
-0x3c020001, 0x8c425db8, 0x2463ff9c, 0x431023, 
-0x2c420064, 0x1440019b, 0x2402000b, 0x8004d24, 
-0x0, 0x27b10010, 0xa7a00010, 0x8021, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x24040001, 
-0xc004d4b, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020017, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020017, 
-0xc004d71, 0x34108000, 0xc004d71, 0x0, 
-0xc004d2b, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004d71, 0x8021, 
-0x97a20010, 0x27b10010, 0x34420700, 0xa7a20010, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020017, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020017, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fff8, 0x0, 0xc004d71, 0x0, 
-0x8f830054, 0x8004d16, 0x2402000c, 0x8f830054, 
-0x3c020001, 0x8c425db8, 0x2463ff9c, 0x431023, 
-0x2c420064, 0x14400127, 0x24020012, 0x8004d24, 
-0x0, 0x27b10010, 0xa7a00010, 0x8021, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x24040001, 
-0xc004d4b, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020014, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020014, 
-0xc004d71, 0x34108000, 0xc004d71, 0x0, 
-0xc004d2b, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004d71, 0x8021, 
-0x97a20010, 0x27b10010, 0x34420010, 0xa7a20010, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020014, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020014, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fff8, 0x0, 0xc004d71, 0x0, 
-0x8f830054, 0x8004d16, 0x24020013, 0x8f830054, 
-0x3c020001, 0x8c425db8, 0x2463ff9c, 0x431023, 
-0x2c420064, 0x144000b3, 0x2402000d, 0x8004d24, 
-0x0, 0x27b10010, 0xa7a00010, 0x8021, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x24040001, 
-0xc004d4b, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004d71, 0x34108000, 0xc004d71, 0x0, 
-0xc004d2b, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004d71, 0x8021, 
-0x97a20010, 0x27b10010, 0x3042fffe, 0xa7a20010, 
-0xc004d4b, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0xc004d4b, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d4b, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004d4b, 0x24040001, 0xc004d4b, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fff8, 0x0, 0xc004d71, 0x0, 
-0x8f830054, 0x8004d16, 0x2402000e, 0x24020840, 
-0xa7a20010, 0x27b10010, 0x8021, 0xc004d4b, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x32020013, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x32020013, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0x34108000, 
-0x96220000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d4b, 0x108042, 0x1600fff8, 
-0x0, 0xc004d71, 0x0, 0x8f830054, 
-0x24020010, 0x3c010001, 0xac225d00, 0x3c010001, 
-0x8004d26, 0xac235db8, 0x8f830054, 0x3c020001, 
-0x8c425db8, 0x2463ff9c, 0x431023, 0x2c420064, 
-0x14400004, 0x0, 0x24020011, 0x3c010001, 
-0xac225d00, 0x8fbf0020, 0x8fb1001c, 0x8fb00018, 
-0x3e00008, 0x27bd0028, 0x8f850044, 0x8f820044, 
-0x3c030001, 0x431025, 0x3c030008, 0xaf820044, 
-0x8f840054, 0x8f820054, 0xa32824, 0x8004d37, 
-0x24840001, 0x8f820054, 0x821023, 0x2c420002, 
-0x1440fffc, 0x0, 0x8f820044, 0x3c03fffe, 
-0x3463ffff, 0x431024, 0xaf820044, 0x8f830054, 
-0x8f820054, 0x8004d45, 0x24630001, 0x8f820054, 
-0x621023, 0x2c420002, 0x1440fffc, 0x0, 
-0x3e00008, 0xa01021, 0x8f830044, 0x3c02fff0, 
-0x3442ffff, 0x42480, 0x621824, 0x3c020002, 
-0x822025, 0x641825, 0xaf830044, 0x8f820044, 
-0x3c03fffe, 0x3463ffff, 0x431024, 0xaf820044, 
-0x8f830054, 0x8f820054, 0x8004d5e, 0x24630001, 
-0x8f820054, 0x621023, 0x2c420002, 0x1440fffc, 
-0x0, 0x8f820044, 0x3c030001, 0x431025, 
-0xaf820044, 0x8f830054, 0x8f820054, 0x8004d6b, 
-0x24630001, 0x8f820054, 0x621023, 0x2c420002, 
-0x1440fffc, 0x0, 0x3e00008, 0x0, 
-0x8f820044, 0x3c03fff0, 0x3463ffff, 0x431024, 
-0xaf820044, 0x8f820044, 0x3c030001, 0x431025, 
-0xaf820044, 0x8f830054, 0x8f820054, 0x8004d7f, 
-0x24630001, 0x8f820054, 0x621023, 0x2c420002, 
-0x1440fffc, 0x0, 0x8f820044, 0x3c03fffe, 
-0x3463ffff, 0x431024, 0xaf820044, 0x8f830054, 
-0x8f820054, 0x8004d8d, 0x24630001, 0x8f820054, 
-0x621023, 0x2c420002, 0x1440fffc, 0x0, 
-0x3e00008, 0x0, 0x27bdffc8, 0xafb30024, 
-0x809821, 0xafb5002c, 0xa0a821, 0xafb20020, 
-0xc09021, 0x32a2ffff, 0xafbf0030, 0xafb40028, 
-0xafb1001c, 0xafb00018, 0x14400034, 0xa7b20010, 
-0x3271ffff, 0x27b20010, 0x8021, 0xc004d4b, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x2301024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x2301024, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0x34108000, 
-0x96420000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d4b, 0x108042, 0x12000075, 
-0x0, 0x8004dc9, 0x0, 0x3274ffff, 
-0x27b10010, 0xa7a00010, 0x8021, 0xc004d4b, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x24040001, 0xc004d4b, 
-0x2021, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x2901024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x2901024, 0xc004d71, 
-0x34108000, 0xc004d71, 0x0, 0xc004d2b, 
-0x0, 0x50400005, 0x108042, 0x96220000, 
-0x501025, 0xa6220000, 0x108042, 0x1600fff7, 
-0x0, 0xc004d71, 0x0, 0x32a5ffff, 
-0x24020001, 0x54a20004, 0x24020002, 0x97a20010, 
-0x8004e14, 0x521025, 0x14a20006, 0x3271ffff, 
-0x97a20010, 0x121827, 0x431024, 0xa7a20010, 
-0x3271ffff, 0x27b20010, 0x8021, 0xc004d4b, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0xc004d4b, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d4b, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x2301024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d4b, 
-0x108042, 0x1600fffa, 0x2301024, 0xc004d4b, 
-0x24040001, 0xc004d4b, 0x2021, 0x34108000, 
-0x96420000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d4b, 0x108042, 0x1600fff8, 
-0x0, 0xc004d71, 0x0, 0x8fbf0030, 
-0x8fb5002c, 0x8fb40028, 0x8fb30024, 0x8fb20020, 
-0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0038, 
-0x0, 0x0, 0x0, 0x27bdffe8, 
-0xafbf0010, 0x3c030001, 0x771821, 0x8c6383ac, 
-0x24020008, 0x1462022c, 0x803021, 0x3c020001, 
-0x8c425d98, 0x14400033, 0x0, 0x8f850224, 
-0x38a30020, 0x2c630001, 0x38a20010, 0x2c420001, 
-0x621825, 0x1460000d, 0x38a30030, 0x2c630001, 
-0x38a20400, 0x2c420001, 0x621825, 0x14600007, 
-0x38a30402, 0x2c630001, 0x38a20404, 0x2c420001, 
-0x621825, 0x10600005, 0x0, 0xc00429b, 
-0x0, 0x8004e8d, 0x2402000e, 0xc0043dd, 
-0x0, 0x3c050001, 0x8ca55cc8, 0xc0052a2, 
-0x2021, 0x3c030001, 0x8c635cc8, 0x24020004, 
-0x14620005, 0x2403fffb, 0x3c020001, 0x8c425cc4, 
-0x8004e89, 0x2403fff7, 0x3c020001, 0x8c425cc4, 
-0x431024, 0x3c010001, 0xac225cc4, 0x2402000e, 
-0x3c010001, 0xc00429b, 0xac227dd0, 0x8005087, 
-0x0, 0x8f820220, 0x3c030400, 0x431024, 
-0x10400027, 0x2403ffbf, 0x8f850224, 0x3c020001, 
-0x8c427ddc, 0xa32024, 0x431024, 0x1482000c, 
-0x0, 0x3c020001, 0x8c427de0, 0x24420001, 
-0x3c010001, 0xac227de0, 0x2c420002, 0x14400008, 
-0x24020001, 0x3c010001, 0x8004ead, 0xac227e00, 
-0x3c010001, 0xac207de0, 0x3c010001, 0xac207e00, 
-0x3c020001, 0x8c427e00, 0x10400006, 0x30a20040, 
-0x10400004, 0x24020001, 0x3c010001, 0x8004eb8, 
-0xac227e04, 0x3c010001, 0xac207e04, 0x3c010001, 
-0xac257ddc, 0x3c010001, 0x8004ec8, 0xac207e10, 
-0x24020001, 0x3c010001, 0xac227e10, 0x3c010001, 
-0xac207e00, 0x3c010001, 0xac207de0, 0x3c010001, 
-0xac207e04, 0x3c010001, 0xac207ddc, 0x3c030001, 
-0x8c637dd0, 0x3c020001, 0x8c427dd4, 0x10620003, 
-0x3c020200, 0x3c010001, 0xac237dd4, 0xc21024, 
-0x10400007, 0x2463ffff, 0x8f820220, 0x24030001, 
-0x3c010001, 0xac235ccc, 0x8005085, 0x3c03f700, 
-0x2c62000e, 0x104001a8, 0x31080, 0x3c010001, 
-0x220821, 0x8c225b80, 0x400008, 0x0, 
-0x3c010001, 0xac207e00, 0x3c010001, 0xac207de0, 
-0x3c010001, 0xac207ddc, 0x3c010001, 0xac207e04, 
-0x3c010001, 0xac207df8, 0x3c010001, 0xac207df0, 
-0xc00486a, 0xaf800224, 0x24020002, 0x3c010001, 
-0xac227dd0, 0x3c020001, 0x8c427e10, 0x14400056, 
-0x3c03fdff, 0x8ee20000, 0x3463ffff, 0x431024, 
-0xc00429b, 0xaee20000, 0xaf800204, 0x8f820200, 
-0x2403fffd, 0x431024, 0xaf820200, 0x3c010001, 
-0xac207e20, 0x8f830054, 0x3c020001, 0x8c427df8, 
-0x24040001, 0x3c010001, 0xac247e0c, 0x24420001, 
-0x3c010001, 0xac227df8, 0x2c420004, 0x3c010001, 
-0xac237df4, 0x14400006, 0x24020003, 0x3c010001, 
-0xac245ccc, 0x3c010001, 0x8005083, 0xac207df8, 
-0x3c010001, 0x8005083, 0xac227dd0, 0x8f830054, 
-0x3c020001, 0x8c427df4, 0x2463d8f0, 0x431023, 
-0x2c422710, 0x14400003, 0x24020004, 0x3c010001, 
-0xac227dd0, 0x3c020001, 0x8c427e10, 0x14400026, 
-0x3c03fdff, 0x8ee20000, 0x3463ffff, 0x431024, 
-0x8005083, 0xaee20000, 0x3c040001, 0x8c845d9c, 
-0x3c010001, 0xc00508a, 0xac207de8, 0x3c020001, 
-0x8c427e1c, 0xaf820204, 0x3c020001, 0x8c427e10, 
-0x14400015, 0x3c03fdff, 0x8ee20000, 0x3463ffff, 
-0x431024, 0xaee20000, 0x8f820204, 0x30420030, 
-0x1440013c, 0x24020002, 0x3c030001, 0x8c637e1c, 
-0x24020005, 0x3c010001, 0xac227dd0, 0x3c010001, 
-0x8005083, 0xac237e20, 0x3c020001, 0x8c427e10, 
-0x10400010, 0x3c03fdff, 0x3c020001, 0x8c425d6c, 
-0x24420001, 0x3c010001, 0xac225d6c, 0x2c420002, 
-0x14400131, 0x24020001, 0x3c010001, 0xac225d74, 
-0x3c010001, 0xac205d6c, 0x3c010001, 0x8005083, 
-0xac225ccc, 0x8ee20000, 0x3463ffff, 0x431024, 
-0xaee20000, 0x3c020001, 0x8c427e00, 0x10400122, 
-0x0, 0x3c020001, 0x8c427ddc, 0x1040011e, 
-0x0, 0x3c010001, 0xac227e08, 0x24020003, 
-0x3c010001, 0xac227de0, 0x8005024, 0x24020006, 
-0x3c010001, 0xac207de8, 0x8f820204, 0x34420040, 
-0xaf820204, 0x3c020001, 0x8c427e20, 0x24030007, 
-0x3c010001, 0xac237dd0, 0x34420040, 0x3c010001, 
-0xac227e20, 0x3c020001, 0x8c427e00, 0x10400005, 
-0x0, 0x3c020001, 0x8c427ddc, 0x104000f9, 
-0x24020002, 0x3c050001, 0x24a57de0, 0x8ca20000, 
-0x2c424e21, 0x104000f3, 0x24020002, 0x3c020001, 
-0x8c427e04, 0x104000f8, 0x2404ffbf, 0x3c020001, 
-0x8c427ddc, 0x3c030001, 0x8c637e08, 0x441024, 
-0x641824, 0x10430004, 0x24020001, 0x3c010001, 
-0x8005083, 0xac227dd0, 0x24020003, 0xaca20000, 
-0x24020008, 0x3c010001, 0xac227dd0, 0x3c020001, 
-0x8c427e0c, 0x1040000c, 0x24020001, 0x3c040001, 
-0xc005097, 0x8c847ddc, 0x3c020001, 0x8c427e28, 
-0x14400005, 0x24020001, 0x3c020001, 0x8c427e24, 
-0x10400006, 0x24020001, 0x3c010001, 0xac225ccc, 
-0x3c010001, 0x8005083, 0xac207df8, 0x3c020001, 
-0x8c427df0, 0x3c030001, 0x8c637ddc, 0x2c420001, 
-0x210c0, 0x30630008, 0x3c010001, 0xac227df0, 
-0x3c010001, 0xac237dec, 0x8f830054, 0x24020009, 
-0x3c010001, 0xac227dd0, 0x3c010001, 0x8005083, 
-0xac237df4, 0x8f830054, 0x3c020001, 0x8c427df4, 
-0x2463d8f0, 0x431023, 0x2c422710, 0x144000a8, 
-0x0, 0x3c020001, 0x8c427e00, 0x10400005, 
-0x0, 0x3c020001, 0x8c427ddc, 0x104000a9, 
-0x24020002, 0x3c030001, 0x24637de0, 0x8c620000, 
-0x2c424e21, 0x104000a3, 0x24020002, 0x3c020001, 
-0x8c427e0c, 0x1040000e, 0x0, 0x3c020001, 
-0x8c427ddc, 0x3c010001, 0xac207e0c, 0x30420080, 
-0x1040002f, 0x2402000c, 0x8f820204, 0x30420080, 
-0x1440000c, 0x24020003, 0x8005011, 0x2402000c, 
-0x3c020001, 0x8c427ddc, 0x30420080, 0x14400005, 
-0x24020003, 0x8f820204, 0x30420080, 0x1040001f, 
-0x24020003, 0xac620000, 0x2402000a, 0x3c010001, 
-0xac227dd0, 0x3c040001, 0x24847e18, 0x8c820000, 
-0x3c030001, 0x8c637df0, 0x431025, 0xaf820204, 
-0x8c830000, 0x3c040001, 0x8c847df0, 0x2402000b, 
-0x3c010001, 0xac227dd0, 0x641825, 0x3c010001, 
-0xac237e20, 0x3c050001, 0x24a57de0, 0x8ca20000, 
-0x2c424e21, 0x1040006f, 0x24020002, 0x3c020001, 
-0x8c427e10, 0x10400005, 0x0, 0x2402000c, 
-0x3c010001, 0x8005083, 0xac227dd0, 0x3c020001, 
-0x8c427e00, 0x1040006c, 0x0, 0x3c040001, 
-0x8c847ddc, 0x1080005e, 0x30820008, 0x3c030001, 
-0x8c637dec, 0x10620064, 0x24020003, 0x3c010001, 
-0xac247e08, 0xaca20000, 0x24020006, 0x3c010001, 
-0x8005083, 0xac227dd0, 0x8f820200, 0x34420002, 
-0xaf820200, 0x8f830054, 0x2402000d, 0x3c010001, 
-0xac227dd0, 0x3c010001, 0xac237df4, 0x8f830054, 
-0x3c020001, 0x8c427df4, 0x2463d8f0, 0x431023, 
-0x2c422710, 0x1440003a, 0x0, 0x3c020001, 
-0x8c427e10, 0x10400029, 0x2402000e, 0x3c030001, 
-0x8c637e24, 0x3c010001, 0x14600015, 0xac227dd0, 
-0xc0043dd, 0x0, 0x3c050001, 0x8ca55cc8, 
-0xc0052a2, 0x2021, 0x3c030001, 0x8c635cc8, 
-0x24020004, 0x14620005, 0x2403fffb, 0x3c020001, 
-0x8c425cc4, 0x8005052, 0x2403fff7, 0x3c020001, 
-0x8c425cc4, 0x431024, 0x3c010001, 0xac225cc4, 
-0x8ee20000, 0x3c030200, 0x431025, 0xaee20000, 
-0x8f820224, 0x3c010001, 0xac227e2c, 0x8f820220, 
-0x2403fffb, 0x431024, 0xaf820220, 0x8f820220, 
-0x34420002, 0x8005083, 0xaf820220, 0x3c020001, 
-0x8c427e00, 0x10400005, 0x0, 0x3c020001, 
-0x8c427ddc, 0x1040000f, 0x24020002, 0x3c020001, 
-0x8c427de0, 0x2c424e21, 0x1040000a, 0x24020002, 
-0x3c020001, 0x8c427e00, 0x1040000f, 0x0, 
-0x3c020001, 0x8c427ddc, 0x1440000b, 0x0, 
-0x24020002, 0x3c010001, 0x8005083, 0xac227dd0, 
-0x3c020001, 0x8c427e00, 0x10400003, 0x0, 
-0xc00429b, 0x0, 0x8f820220, 0x3c03f700, 
-0x431025, 0xaf820220, 0x8fbf0010, 0x3e00008, 
-0x27bd0018, 0x3c030001, 0x24637e28, 0x8c620000, 
-0x10400005, 0x34422000, 0x3c010001, 0xac227e1c, 
-0x8005095, 0xac600000, 0x3c010001, 0xac247e1c, 
-0x3e00008, 0x0, 0x27bdffe0, 0x30820030, 
-0xafbf0018, 0x3c010001, 0xac227e24, 0x14400067, 
-0x3c02ffff, 0x34421f0e, 0x821024, 0x14400061, 
-0x24020030, 0x30822000, 0x1040005d, 0x30838000, 
-0x31a02, 0x30820001, 0x21200, 0x3c040001, 
-0x8c845d9c, 0x621825, 0x331c2, 0x3c030001, 
-0x24635d78, 0x30828000, 0x21202, 0x30840001, 
-0x42200, 0x441025, 0x239c2, 0x61080, 
-0x431021, 0x471021, 0x90430000, 0x24020001, 
-0x10620025, 0x0, 0x10600007, 0x24020002, 
-0x10620013, 0x24020003, 0x1062002c, 0x3c05000f, 
-0x80050f9, 0x0, 0x8f820200, 0x2403feff, 
-0x431024, 0xaf820200, 0x8f820220, 0x3c03fffe, 
-0x3463ffff, 0x431024, 0xaf820220, 0x3c010001, 
-0xac207e44, 0x3c010001, 0x8005104, 0xac207e4c, 
-0x8f820200, 0x34420100, 0xaf820200, 0x8f820220, 
-0x3c03fffe, 0x3463ffff, 0x431024, 0xaf820220, 
-0x24020100, 0x3c010001, 0xac227e44, 0x3c010001, 
-0x8005104, 0xac207e4c, 0x8f820200, 0x2403feff, 
-0x431024, 0xaf820200, 0x8f820220, 0x3c030001, 
-0x431025, 0xaf820220, 0x3c010001, 0xac207e44, 
-0x3c010001, 0x8005104, 0xac237e4c, 0x8f820200, 
-0x34420100, 0xaf820200, 0x8f820220, 0x3c030001, 
-0x431025, 0xaf820220, 0x24020100, 0x3c010001, 
-0xac227e44, 0x3c010001, 0x8005104, 0xac237e4c, 
-0x34a5ffff, 0x3c040001, 0x24845bb8, 0xafa30010, 
-0xc002403, 0xafa00014, 0x8005104, 0x0, 
-0x24020030, 0x3c010001, 0xac227e28, 0x8fbf0018, 
-0x3e00008, 0x27bd0020, 0x0, 0x27bdffc8, 
-0xafb20028, 0x809021, 0xafb3002c, 0xa09821, 
-0xafb00020, 0xc08021, 0x3c040001, 0x24845bd0, 
-0x3c050009, 0x3c020001, 0x8c425cc8, 0x34a59001, 
-0x2403021, 0x2603821, 0xafbf0030, 0xafb10024, 
-0xa7a0001a, 0xafb00014, 0xc002403, 0xafa20010, 
-0x24020002, 0x12620083, 0x2e620003, 0x10400005, 
-0x24020001, 0x1262000a, 0x0, 0x800529b, 
-0x0, 0x24020004, 0x126200fa, 0x24020008, 
-0x126200f9, 0x3c02ffec, 0x800529b, 0x0, 
-0x3c020001, 0x8c425cc4, 0x30420002, 0x14400004, 
-0x128940, 0x3c02fffb, 0x3442ffff, 0x2028024, 
-0x3c010001, 0x310821, 0xac307e3c, 0x3c024000, 
-0x2021024, 0x1040004e, 0x1023c2, 0x30840030, 
-0x101382, 0x3042001c, 0x3c030001, 0x24635d08, 
-0x431021, 0x823821, 0x3c020020, 0x2021024, 
-0x10400006, 0x24020100, 0x3c010001, 0x310821, 
-0xac227e40, 0x8005150, 0x3c020080, 0x3c010001, 
-0x310821, 0xac207e40, 0x3c020080, 0x2021024, 
-0x10400006, 0x121940, 0x3c020001, 0x3c010001, 
-0x230821, 0x800515c, 0xac227e48, 0x121140, 
-0x3c010001, 0x220821, 0xac207e48, 0x94e40000, 
-0x3c030001, 0x8c635dbc, 0x24020005, 0x10620010, 
-0xa7a40018, 0x32024000, 0x10400002, 0x34824000, 
-0xa7a20018, 0x24040001, 0x94e20002, 0x24050004, 
-0x24e60002, 0x34420001, 0xc00498e, 0xa4e20002, 
-0x24040001, 0x2821, 0xc00498e, 0x27a60018, 
-0x3c020001, 0x8c425cc8, 0x24110001, 0x3c010001, 
-0xac315cd4, 0x14530004, 0x32028000, 0xc00429b, 
-0x0, 0x32028000, 0x1040011f, 0x0, 
-0xc00429b, 0x0, 0x3c030001, 0x8c635dbc, 
-0x24020005, 0x10620118, 0x24020002, 0x3c010001, 
-0xac315ccc, 0x3c010001, 0x800529b, 0xac225cc8, 
-0x24040001, 0x24050004, 0x27b0001a, 0xc00498e, 
-0x2003021, 0x24040001, 0x2821, 0xc00498e, 
-0x2003021, 0x3c020001, 0x511021, 0x8c427e34, 
-0x3c040001, 0x8c845cc8, 0x3c03bfff, 0x3463ffff, 
-0x3c010001, 0xac335cd4, 0x431024, 0x3c010001, 
-0x310821, 0x109300fa, 0xac227e34, 0x800529b, 
-0x0, 0x3c022000, 0x2021024, 0x10400005, 
-0x24020001, 0x3c010001, 0xac225d98, 0x80051ad, 
-0x128940, 0x3c010001, 0xac205d98, 0x128940, 
-0x3c010001, 0x310821, 0xac307e38, 0x3c024000, 
-0x2021024, 0x14400016, 0x0, 0x3c020001, 
-0x8c425d98, 0x10400008, 0x24040004, 0x24050001, 
-0xc004d93, 0x24062000, 0x24020001, 0x3c010001, 
-0x370821, 0xac2283ac, 0x3c020001, 0x511021, 
-0x8c427e30, 0x3c03bfff, 0x3463ffff, 0x431024, 
-0x3c010001, 0x310821, 0x8005299, 0xac227e30, 
-0x3c020001, 0x8c425d98, 0x10400028, 0x3c0300a0, 
-0x2031024, 0x5443000d, 0x3c020020, 0x3c020001, 
-0x8c425d9c, 0x24030100, 0x3c010001, 0x310821, 
-0xac237e44, 0x3c030001, 0x3c010001, 0x310821, 
-0xac237e4c, 0x80051f0, 0x34420400, 0x2021024, 
-0x10400008, 0x24030100, 0x3c020001, 0x8c425d9c, 
-0x3c010001, 0x310821, 0xac237e44, 0x80051f0, 
-0x34420800, 0x3c020080, 0x2021024, 0x1040002e, 
-0x3c030001, 0x3c020001, 0x8c425d9c, 0x3c010001, 
-0x310821, 0xac237e4c, 0x34420c00, 0x3c010001, 
-0xac225d9c, 0x8005218, 0x24040001, 0x3c020020, 
-0x2021024, 0x10400006, 0x24020100, 0x3c010001, 
-0x310821, 0xac227e44, 0x8005201, 0x3c020080, 
-0x3c010001, 0x310821, 0xac207e44, 0x3c020080, 
-0x2021024, 0x10400007, 0x121940, 0x3c020001, 
-0x3c010001, 0x230821, 0xac227e4c, 0x800520f, 
-0x24040001, 0x121140, 0x3c010001, 0x220821, 
-0xac207e4c, 0x24040001, 0x2821, 0x27b0001e, 
-0xc00494c, 0x2003021, 0x24040001, 0x2821, 
-0xc00494c, 0x2003021, 0x24040001, 0x24050001, 
-0x27b0001c, 0xc00494c, 0x2003021, 0x24040001, 
-0x24050001, 0xc00494c, 0x2003021, 0x8005299, 
-0x0, 0x3c02ffec, 0x3442ffff, 0x2028024, 
-0x3c020008, 0x2028025, 0x121140, 0x3c010001, 
-0x220821, 0xac307e38, 0x3c022000, 0x2021024, 
-0x10400009, 0x0, 0x3c020001, 0x8c425d74, 
-0x14400005, 0x24020001, 0x3c010001, 0xac225d98, 
-0x800523a, 0x3c024000, 0x3c010001, 0xac205d98, 
-0x3c024000, 0x2021024, 0x1440001e, 0x0, 
-0x3c020001, 0x8c425d98, 0x3c010001, 0xac205ce0, 
-0x10400007, 0x24022020, 0x3c010001, 0xac225d9c, 
-0x24020001, 0x3c010001, 0x370821, 0xac2283ac, 
-0x3c04bfff, 0x121940, 0x3c020001, 0x431021, 
-0x8c427e30, 0x3c050001, 0x8ca55cc8, 0x3484ffff, 
-0x441024, 0x3c010001, 0x230821, 0xac227e30, 
-0x24020001, 0x10a20044, 0x0, 0x8005299, 
-0x0, 0x3c020001, 0x8c425d98, 0x1040001c, 
-0x24022000, 0x3c010001, 0xac225d9c, 0x3c0300a0, 
-0x2031024, 0x14430005, 0x121140, 0x3402a000, 
-0x3c010001, 0x8005294, 0xac225d9c, 0x3c030001, 
-0x621821, 0x8c637e38, 0x3c020020, 0x621024, 
-0x10400004, 0x24022001, 0x3c010001, 0x8005294, 
-0xac225d9c, 0x3c020080, 0x621024, 0x1040001f, 
-0x3402a001, 0x3c010001, 0x8005294, 0xac225d9c, 
-0x3c020020, 0x2021024, 0x10400007, 0x121940, 
-0x24020100, 0x3c010001, 0x230821, 0xac227e44, 
-0x8005288, 0x3c020080, 0x121140, 0x3c010001, 
-0x220821, 0xac207e44, 0x3c020080, 0x2021024, 
-0x10400006, 0x121940, 0x3c020001, 0x3c010001, 
-0x230821, 0x8005294, 0xac227e4c, 0x121140, 
-0x3c010001, 0x220821, 0xac207e4c, 0x3c030001, 
-0x8c635cc8, 0x24020001, 0x10620003, 0x0, 
-0xc00429b, 0x0, 0x8fbf0030, 0x8fb3002c, 
-0x8fb20028, 0x8fb10024, 0x8fb00020, 0x3e00008, 
-0x27bd0038, 0x27bdffd8, 0xafb20020, 0x809021, 
-0xafb1001c, 0x8821, 0x24020002, 0xafbf0024, 
-0xafb00018, 0xa7a00012, 0x10a200d3, 0xa7a00010, 
-0x2ca20003, 0x10400005, 0x24020001, 0x10a2000a, 
-0x128140, 0x8005380, 0x2201021, 0x24020004, 
-0x10a2007d, 0x24020008, 0x10a2007c, 0x122940, 
-0x8005380, 0x2201021, 0x3c030001, 0x701821, 
-0x8c637e3c, 0x3c024000, 0x621024, 0x14400009, 
-0x24040001, 0x3c027fff, 0x3442ffff, 0x628824, 
-0x3c010001, 0x300821, 0xac317e34, 0x8005380, 
-0x2201021, 0x24050001, 0xc00494c, 0x27a60010, 
-0x24040001, 0x24050001, 0xc00494c, 0x27a60010, 
-0x97a20010, 0x30420004, 0x10400034, 0x3c114000, 
-0x3c020001, 0x8c425dbc, 0x2443ffff, 0x2c620006, 
-0x10400034, 0x31080, 0x3c010001, 0x220821, 
-0x8c225be0, 0x400008, 0x0, 0x24040001, 
-0x24050011, 0x27b00012, 0xc00494c, 0x2003021, 
-0x24040001, 0x24050011, 0xc00494c, 0x2003021, 
-0x97a50012, 0x30a24000, 0x10400002, 0x3c040010, 
-0x3c040008, 0x3c030001, 0x8005301, 0x30a28000, 
-0x24040001, 0x24050014, 0x27b00012, 0xc00494c, 
-0x2003021, 0x24040001, 0x24050014, 0xc00494c, 
-0x2003021, 0x97a50012, 0x30a21000, 0x10400002, 
-0x3c040010, 0x3c040008, 0x3c030001, 0x30a20800, 
-0x54400001, 0x3c030002, 0x3c028000, 0x2221025, 
-0x641825, 0x800530e, 0x438825, 0x3c110001, 
-0x2308821, 0x8e317e3c, 0x3c027fff, 0x3442ffff, 
-0x2228824, 0x3c020001, 0x8c425cd8, 0x1040001d, 
-0x121140, 0x3c020001, 0x8c425d98, 0x10400002, 
-0x3c022000, 0x2228825, 0x121140, 0x3c010001, 
-0x220821, 0x8c227e40, 0x10400003, 0x3c020020, 
-0x8005322, 0x2228825, 0x3c02ffdf, 0x3442ffff, 
-0x2228824, 0x121140, 0x3c010001, 0x220821, 
-0x8c227e48, 0x10400003, 0x3c020080, 0x800532d, 
-0x2228825, 0x3c02ff7f, 0x3442ffff, 0x2228824, 
-0x121140, 0x3c010001, 0x220821, 0xac317e34, 
-0x8005380, 0x2201021, 0x122940, 0x3c030001, 
-0x651821, 0x8c637e38, 0x3c024000, 0x621024, 
-0x14400008, 0x3c027fff, 0x3442ffff, 0x628824, 
-0x3c010001, 0x250821, 0xac317e30, 0x8005380, 
-0x2201021, 0x3c020001, 0x8c425cd8, 0x10400033, 
-0x3c11c00c, 0x3c020001, 0x8c425d74, 0x3c04c00c, 
-0x34842000, 0x3c030001, 0x8c635d98, 0x2102b, 
-0x21023, 0x441024, 0x10600003, 0x518825, 
-0x3c022000, 0x2228825, 0x3c020001, 0x451021, 
-0x8c427e44, 0x10400003, 0x3c020020, 0x800535d, 
-0x2228825, 0x3c02ffdf, 0x3442ffff, 0x2228824, 
-0x121140, 0x3c010001, 0x220821, 0x8c227e4c, 
-0x10400003, 0x3c020080, 0x8005368, 0x2228825, 
-0x3c02ff7f, 0x3442ffff, 0x2228824, 0x3c020001, 
-0x8c425d60, 0x10400002, 0x3c020800, 0x2228825, 
-0x3c020001, 0x8c425d64, 0x10400002, 0x3c020400, 
-0x2228825, 0x3c020001, 0x8c425d68, 0x10400006, 
-0x3c020100, 0x800537b, 0x2228825, 0x3c027fff, 
-0x3442ffff, 0x628824, 0x121140, 0x3c010001, 
-0x220821, 0xac317e30, 0x2201021, 0x8fbf0024, 
-0x8fb20020, 0x8fb1001c, 0x8fb00018, 0x3e00008, 
-0x27bd0028, 0x27bdffd8, 0xafb40020, 0x80a021, 
-0xafbf0024, 0xafb3001c, 0xafb20018, 0xafb10014, 
-0xafb00010, 0x8f900200, 0x3c030001, 0x8c635cc8, 
-0x8f930220, 0x24020002, 0x10620063, 0x2c620003, 
-0x10400005, 0x24020001, 0x1062000a, 0x141940, 
-0x8005448, 0x0, 0x24020004, 0x1062005a, 
-0x24020008, 0x10620059, 0x149140, 0x8005448, 
-0x0, 0x3c040001, 0x832021, 0x8c847e3c, 
-0x3c110001, 0x2238821, 0x8e317e34, 0x3c024000, 
-0x821024, 0x1040003e, 0x3c020008, 0x2221024, 
-0x10400020, 0x36100002, 0x3c020001, 0x431021, 
-0x8c427e40, 0x10400005, 0x36100020, 0x36100100, 
-0x3c020020, 0x80053bd, 0x2228825, 0x2402feff, 
-0x2028024, 0x3c02ffdf, 0x3442ffff, 0x2228824, 
-0x141140, 0x3c010001, 0x220821, 0x8c227e48, 
-0x10400005, 0x3c020001, 0x2629825, 0x3c020080, 
-0x80053dc, 0x2228825, 0x3c02fffe, 0x3442ffff, 
-0x2629824, 0x3c02ff7f, 0x3442ffff, 0x80053dc, 
-0x2228824, 0x2402fedf, 0x2028024, 0x3c02fffe, 
-0x3442ffff, 0x2629824, 0x3c02ff5f, 0x3442ffff, 
-0x2228824, 0x3c010001, 0x230821, 0xac207e40, 
-0x3c010001, 0x230821, 0xac207e48, 0xc00486a, 
-0x0, 0xaf900200, 0xaf930220, 0x8f820220, 
-0x2403fffb, 0x431024, 0xaf820220, 0x8f820220, 
-0x34420002, 0xaf820220, 0x80053f3, 0x141140, 
-0x8f820200, 0x2403fffd, 0x431024, 0xc00486a, 
-0xaf820200, 0x3c02bfff, 0x3442ffff, 0xc00429b, 
-0x2228824, 0x141140, 0x3c010001, 0x220821, 
-0x8005448, 0xac317e34, 0x149140, 0x3c040001, 
-0x922021, 0x8c847e38, 0x3c110001, 0x2328821, 
-0x8e317e30, 0x3c024000, 0x821024, 0x14400011, 
-0x0, 0x3c020001, 0x8c425d98, 0x14400006, 
-0x3c02bfff, 0x8f820200, 0x34420002, 0xc00486a, 
-0xaf820200, 0x3c02bfff, 0x3442ffff, 0xc00429b, 
-0x2228824, 0x3c010001, 0x320821, 0x8005448, 
-0xac317e30, 0x3c020001, 0x8c425d98, 0x10400005, 
-0x3c020020, 0x3c020001, 0x8c425d74, 0x1040002b, 
-0x3c020020, 0x821024, 0x10400007, 0x36100020, 
-0x24020100, 0x3c010001, 0x320821, 0xac227e44, 
-0x8005428, 0x36100100, 0x3c010001, 0x320821, 
-0xac207e44, 0x2402feff, 0x2028024, 0x3c020080, 
-0x821024, 0x10400007, 0x141940, 0x3c020001, 
-0x3c010001, 0x230821, 0xac227e4c, 0x8005439, 
-0x2629825, 0x141140, 0x3c010001, 0x220821, 
-0xac207e4c, 0x3c02fffe, 0x3442ffff, 0x2629824, 
-0xc00486a, 0x0, 0xaf900200, 0xaf930220, 
-0x8f820220, 0x2403fffb, 0x431024, 0xaf820220, 
-0x8f820220, 0x34420002, 0xaf820220, 0x141140, 
-0x3c010001, 0x220821, 0xac317e30, 0x8fbf0024, 
-0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014, 
+0x10000003,
+0x0, 0xd, 0xd, 0x3c1d0001,
+0x8fbd5c54, 0x3a0f021, 0x3c100000, 0x26104000,
+0xc00100c, 0x0, 0xd, 0x27bdffd8,
+0x3c1cc000, 0x3c1b0013, 0x377bd800, 0xd021,
+0x3c170013, 0x36f75418, 0x2e02021, 0x340583e8,
+0xafbf0024, 0xc002488, 0xafb00020, 0xc0023e8,
+0x0, 0x3c040001, 0x248451a4, 0x24050001,
+0x2e03021, 0x3821, 0x3c100001, 0x26107e50,
+0xafb00010, 0xc002403, 0xafbb0014, 0x3c02000f,
+0x3442ffff, 0x2021024, 0x362102b, 0x10400009,
+0x24050003, 0x3c040001, 0x248451b0, 0x2003021,
+0x3603821, 0x3c020010, 0xafa20010, 0xc002403,
+0xafa00014, 0x2021, 0x3405c000, 0x3c010001,
+0x370821, 0xa02083b0, 0x3c010001, 0x370821,
+0xa02083b2, 0x3c010001, 0x370821, 0xa02083b3,
+0x3c010001, 0x370821, 0xac2083b4, 0xa2e004d8,
+0x418c0, 0x24840001, 0x771021, 0xac40727c,
+0x771021, 0xac407280, 0x2e31021, 0xa445727c,
+0x2c820020, 0x1440fff7, 0x418c0, 0x2021,
+0x3405c000, 0x418c0, 0x24840001, 0x771021,
+0xac40737c, 0x771021, 0xac407380, 0x2e31021,
+0xa445737c, 0x2c820080, 0x5440fff7, 0x418c0,
+0xaf800054, 0xaf80011c, 0x8f820044, 0x34420040,
+0xaf820044, 0x8f820044, 0x34420020, 0xaf820044,
+0x8f420218, 0x30420002, 0x10400009, 0x0,
+0x8f420220, 0x3c030002, 0x34630004, 0x431025,
+0xaee204c4, 0x8f42021c, 0x8001074, 0x34420004,
+0x8f420220, 0x3c030002, 0x34630006, 0x431025,
+0xaee204c4, 0x8f42021c, 0x34420006, 0xaee204cc,
+0x8f420218, 0x30420010, 0x1040000a, 0x0,
+0x8f42021c, 0x34420004, 0xaee204c8, 0x8f420220,
+0x3c03000a, 0x34630004, 0x431025, 0x800108a,
+0xaee204c0, 0x8f420220, 0x3c03000a, 0x34630006,
+0x431025, 0xaee204c0, 0x8f42021c, 0x34420006,
+0xaee204c8, 0x8f420218, 0x30420200, 0x10400003,
+0x24020001, 0x8001091, 0xa2e27248, 0xa2e07248,
+0x24020001, 0xaf8200a0, 0xaf8200b0, 0x8f830054,
+0x8f820054, 0x8001099, 0x24630064, 0x8f820054,
+0x621023, 0x2c420065, 0x1440fffc, 0x0,
+0xaf800044, 0x8f420208, 0x8f43020c, 0xaee20010,
+0xaee30014, 0x8ee40010, 0x8ee50014, 0x26e20030,
+0xaee20028, 0x24020490, 0xaee20018, 0xaf840090,
+0xaf850094, 0x8ee20028, 0xaf8200b4, 0x96e2001a,
+0xaf82009c, 0x8f8200b0, 0x8ee304cc, 0x431025,
+0xaf8200b0, 0x8f8200b0, 0x30420004, 0x1440fffd,
+0x0, 0x8ee20450, 0x8ee30454, 0xaee304fc,
+0x8ee204fc, 0x2442e000, 0x2c422001, 0x1440000d,
+0x26e40030, 0x8ee20450, 0x8ee30454, 0x3c040001,
+0x248451bc, 0x3c050001, 0xafa00010, 0xafa00014,
+0x8ee704fc, 0x34a5f000, 0xc002403, 0x603021,
+0x26e40030, 0xc002488, 0x24050400, 0x27440080,
+0xc002488, 0x24050080, 0x26e4777c, 0xc002488,
+0x24050400, 0x8f42025c, 0x26e40094, 0xaee20060,
+0x8f420260, 0x27450200, 0x24060008, 0xaee20068,
+0x24020006, 0xc00249a, 0xaee20064, 0x3c023b9a,
+0x3442ca00, 0x2021, 0x24030002, 0xaee30074,
+0xaee30070, 0xaee2006c, 0x240203e8, 0xaee20104,
+0x24020001, 0xaee30100, 0xaee2010c, 0x3c030001,
+0x641821, 0x90635c20, 0x2e41021, 0x24840001,
+0xa043009c, 0x2c82000f, 0x1440fff8, 0x0,
+0x8f820040, 0x2e41821, 0x24840001, 0x21702,
+0x24420030, 0xa062009c, 0x2e41021, 0xa040009c,
+0x96e2046a, 0x30420003, 0x14400009, 0x0,
+0x96e2047a, 0x30420003, 0x50400131, 0x3c030800,
+0x96e2046a, 0x30420003, 0x1040002a, 0x3c020700,
+0x96e2047a, 0x30420003, 0x10400026, 0x3c020700,
+0x96e3047a, 0x96e2046a, 0x14620022, 0x3c020700,
+0x8ee204c0, 0x24030001, 0xa2e34e20, 0x34420e00,
+0xaee204c0, 0x8f420218, 0x30420100, 0x10400005,
+0x0, 0x3c020001, 0x2442e168, 0x800111d,
+0x21100, 0x3c020001, 0x2442d35c, 0x21100,
+0x21182, 0x3c030800, 0x431025, 0x3c010001,
+0xac221238, 0x3c020001, 0x2442f680, 0x21100,
+0x21182, 0x3c030800, 0x431025, 0x3c010001,
+0xac221278, 0x8ee20000, 0x34424000, 0x8001238,
+0xaee20000, 0x34423000, 0xafa20018, 0x8ee20608,
+0x8f430228, 0x24420001, 0x304900ff, 0x512300e2,
+0xafa00010, 0x8ee20608, 0x210c0, 0x571021,
+0x8fa30018, 0x8fa4001c, 0xac43060c, 0xac440610,
+0x8f870120, 0x27623800, 0x24e80020, 0x102102b,
+0x50400001, 0x27683000, 0x8f820128, 0x11020004,
+0x0, 0x8f820124, 0x15020007, 0x1021,
+0x8ee201a4, 0x3021, 0x24420001, 0xaee201a4,
+0x80011a0, 0x8ee201a4, 0x8ee40608, 0x420c0,
+0x801821, 0x8ee40430, 0x8ee50434, 0xa32821,
+0xa3302b, 0x822021, 0x862021, 0xace40000,
+0xace50004, 0x8ee30608, 0x24020008, 0xa4e2000e,
+0x2402000d, 0xace20018, 0xace9001c, 0x318c0,
+0x2463060c, 0x2e31021, 0xace20008, 0x8ee204c4,
+0xace20010, 0xaf880120, 0x92e24e20, 0x14400037,
+0x24060001, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c830000, 0x24020007, 0x1462001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x24030040, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee54e30, 0x24420001, 0x10430007,
+0x0, 0x8ee24e34, 0x24420001, 0x10a20005,
+0x0, 0x800118a, 0x0, 0x14a00005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400013,
+0xac800000, 0x80011a0, 0x0, 0x8ee24e30,
+0x24030040, 0x24420001, 0x50430003, 0x1021,
+0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x24020007,
+0xac820000, 0x24020001, 0xac820004, 0x54c0000c,
+0xaee90608, 0x3c040001, 0x248451c8, 0xafa00010,
+0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009,
+0xc002403, 0x34a5f000, 0x8001223, 0x0,
+0x8f830120, 0x27623800, 0x24660020, 0xc2102b,
+0x50400001, 0x27663000, 0x8f820128, 0x10c20004,
+0x0, 0x8f820124, 0x14c20007, 0x0,
+0x8ee201a4, 0x3021, 0x24420001, 0xaee201a4,
+0x8001207, 0x8ee201a4, 0x8ee20608, 0xac62001c,
+0x8ee404a0, 0x8ee504a4, 0x2462001c, 0xac620008,
+0x24020008, 0xa462000e, 0x24020011, 0xac620018,
+0xac640000, 0xac650004, 0x8ee204c4, 0xac620010,
+0xaf860120, 0x92e24e20, 0x14400037, 0x24060001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c830000, 0x24020012, 0x1462001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x24030040,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee54e30, 0x24420001, 0x10430007, 0x0,
+0x8ee24e34, 0x24420001, 0x10a20005, 0x0,
+0x80011f1, 0x0, 0x14a00005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400013, 0xac800000,
+0x8001207, 0x0, 0x8ee24e30, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x24020012, 0xac820000,
+0x24020001, 0xac820004, 0x14c0001b, 0x0,
+0x3c040001, 0x248451d0, 0xafa00010, 0xafa00014,
+0x8ee60608, 0x8f470228, 0x3c050009, 0xc002403,
+0x34a5f001, 0x8ee201b0, 0x24420001, 0xaee201b0,
+0x8001223, 0x8ee201b0, 0x3c040001, 0x248451dc,
+0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009,
+0xc002403, 0x34a5f005, 0x8ee201ac, 0x24420001,
+0xaee201ac, 0x8ee201ac, 0x8ee20160, 0x3c040001,
+0x248451e8, 0x3405f001, 0x24420001, 0xaee20160,
+0x8ee20160, 0x3021, 0x3821, 0xafa00010,
+0xc002403, 0xafa00014, 0x8001238, 0x0,
+0x3c020001, 0x2442f5a8, 0x21100, 0x21182,
+0x431025, 0x3c010001, 0xac221278, 0x96e2045a,
+0x30420003, 0x10400025, 0x3c050fff, 0x8ee204c8,
+0x34a5ffff, 0x34420a00, 0xaee204c8, 0x8ee304c8,
+0x3c040001, 0x248451f4, 0x24020001, 0xa2e204ec,
+0xa2e204ed, 0x3c020002, 0x621825, 0x3c020001,
+0x2442a390, 0x451024, 0x21082, 0xaee304c8,
+0x3c030800, 0x431025, 0x3c010001, 0xac221220,
+0x3c020001, 0x2442add4, 0x451024, 0x21082,
+0x431025, 0x3c010001, 0xac221280, 0x96e6045a,
+0x3821, 0x24050011, 0xafa00010, 0xc002403,
+0xafa00014, 0x8001268, 0x0, 0x3c020001,
+0x2442a9d4, 0x21100, 0x21182, 0x3c030800,
+0x431025, 0x3c010001, 0xac221280, 0x96e2046a,
+0x30420010, 0x14400009, 0x0, 0x96e2047a,
+0x30420010, 0x10400112, 0x0, 0x96e2046a,
+0x30420010, 0x10400005, 0x3c020700, 0x96e2047a,
+0x30420010, 0x14400102, 0x3c020700, 0x34423000,
+0xafa20018, 0x8ee20608, 0x8f430228, 0x24420001,
+0x304900ff, 0x512300e2, 0xafa00010, 0x8ee20608,
+0x210c0, 0x571021, 0x8fa30018, 0x8fa4001c,
+0xac43060c, 0xac440610, 0x8f870120, 0x27623800,
+0x24e80020, 0x102102b, 0x50400001, 0x27683000,
+0x8f820128, 0x11020004, 0x0, 0x8f820124,
+0x15020007, 0x1021, 0x8ee201a4, 0x3021,
+0x24420001, 0xaee201a4, 0x80012ea, 0x8ee201a4,
+0x8ee40608, 0x420c0, 0x801821, 0x8ee40430,
+0x8ee50434, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xace40000, 0xace50004, 0x8ee30608,
+0x24020008, 0xa4e2000e, 0x2402000d, 0xace20018,
+0xace9001c, 0x318c0, 0x2463060c, 0x2e31021,
+0xace20008, 0x8ee204c4, 0xace20010, 0xaf880120,
+0x92e24e20, 0x14400037, 0x24060001, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c830000,
+0x24020007, 0x1462001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x24030040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee54e30,
+0x24420001, 0x10430007, 0x0, 0x8ee24e34,
+0x24420001, 0x10a20005, 0x0, 0x80012d4,
+0x0, 0x14a00005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x80012ea,
+0x0, 0x8ee24e30, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x24020007, 0xac820000, 0x24020001,
+0xac820004, 0x54c0000c, 0xaee90608, 0x3c040001,
+0x248451c8, 0xafa00010, 0xafa00014, 0x8ee60608,
+0x8f470228, 0x3c050009, 0xc002403, 0x34a5f000,
+0x800136d, 0x0, 0x8f830120, 0x27623800,
+0x24660020, 0xc2102b, 0x50400001, 0x27663000,
+0x8f820128, 0x10c20004, 0x0, 0x8f820124,
+0x14c20007, 0x0, 0x8ee201a4, 0x3021,
+0x24420001, 0xaee201a4, 0x8001351, 0x8ee201a4,
+0x8ee20608, 0xac62001c, 0x8ee404a0, 0x8ee504a4,
+0x2462001c, 0xac620008, 0x24020008, 0xa462000e,
+0x24020011, 0xac620018, 0xac640000, 0xac650004,
+0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20,
+0x14400037, 0x24060001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c830000, 0x24020012,
+0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34,
+0x1062001b, 0x24030040, 0x8c820004, 0x24420001,
+0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001,
+0x10430007, 0x0, 0x8ee24e34, 0x24420001,
+0x10a20005, 0x0, 0x800133b, 0x0,
+0x14a00005, 0x0, 0x8f820128, 0x24420020,
+0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011,
+0x50400013, 0xac800000, 0x8001351, 0x0,
+0x8ee24e30, 0x24030040, 0x24420001, 0x50430003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x24020012, 0xac820000, 0x24020001, 0xac820004,
+0x14c0001b, 0x0, 0x3c040001, 0x248451d0,
+0xafa00010, 0xafa00014, 0x8ee60608, 0x8f470228,
+0x3c050009, 0xc002403, 0x34a5f001, 0x8ee201b0,
+0x24420001, 0xaee201b0, 0x800136d, 0x8ee201b0,
+0x3c040001, 0x248451dc, 0xafa00014, 0x8ee60608,
+0x8f470228, 0x3c050009, 0xc002403, 0x34a5f005,
+0x8ee201ac, 0x24420001, 0xaee201ac, 0x8ee201ac,
+0x8ee20160, 0x3c040001, 0x248451e8, 0x3405f002,
+0x24420001, 0xaee20160, 0x8ee20160, 0x3021,
+0x3821, 0xafa00010, 0xc002403, 0xafa00014,
+0x96e6047a, 0x96e7046a, 0x3c040001, 0x24845200,
+0x24050012, 0xafa00010, 0xc002403, 0xafa00014,
+0xc004500, 0x0, 0xc002318, 0x0,
+0x3c060001, 0x34c63800, 0xaee00608, 0xaf400228,
+0xaf40022c, 0x96e30458, 0x8ee40000, 0x3c0512d8,
+0x34a5c358, 0x27623800, 0xaee27258, 0x27623800,
+0xaee27260, 0x27623800, 0xaee27264, 0x3661021,
+0xaee27270, 0x2402ffff, 0xaee004d4, 0xaee004e0,
+0xaee004e4, 0xaee004f0, 0xa2e004f4, 0xaee00e0c,
+0xaee00e18, 0xaee00e10, 0xaee00e14, 0xaee00e1c,
+0xaee0724c, 0xaee05244, 0xaee05240, 0xaee0523c,
+0xaee07250, 0xaee07254, 0xaee0725c, 0xaee07268,
+0xaee004d0, 0x2463ffff, 0x852025, 0xaee304f8,
+0xaee40000, 0xaf800060, 0xaf820064, 0x3c020100,
+0xafa20018, 0x8ee20608, 0x8f430228, 0x24420001,
+0x304900ff, 0x512300e2, 0xafa00010, 0x8ee20608,
+0x210c0, 0x571021, 0x8fa30018, 0x8fa4001c,
+0xac43060c, 0xac440610, 0x8f870120, 0x27623800,
+0x24e80020, 0x102102b, 0x50400001, 0x27683000,
+0x8f820128, 0x11020004, 0x0, 0x8f820124,
+0x15020007, 0x1021, 0x8ee201a4, 0x3021,
+0x24420001, 0xaee201a4, 0x8001422, 0x8ee201a4,
+0x8ee40608, 0x420c0, 0x801821, 0x8ee40430,
+0x8ee50434, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xace40000, 0xace50004, 0x8ee30608,
+0x24020008, 0xa4e2000e, 0x2402000d, 0xace20018,
+0xace9001c, 0x318c0, 0x2463060c, 0x2e31021,
+0xace20008, 0x8ee204c4, 0xace20010, 0xaf880120,
+0x92e24e20, 0x14400037, 0x24060001, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c830000,
+0x24020007, 0x1462001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x24030040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee54e30,
+0x24420001, 0x10430007, 0x0, 0x8ee24e34,
+0x24420001, 0x10a20005, 0x0, 0x800140c,
+0x0, 0x14a00005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x8001422,
+0x0, 0x8ee24e30, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x24020007, 0xac820000, 0x24020001,
+0xac820004, 0x54c0000c, 0xaee90608, 0x3c040001,
+0x248451c8, 0xafa00010, 0xafa00014, 0x8ee60608,
+0x8f470228, 0x3c050009, 0xc002403, 0x34a5f000,
+0x80014a5, 0x0, 0x8f830120, 0x27623800,
+0x24660020, 0xc2102b, 0x50400001, 0x27663000,
+0x8f820128, 0x10c20004, 0x0, 0x8f820124,
+0x14c20007, 0x0, 0x8ee201a4, 0x3021,
+0x24420001, 0xaee201a4, 0x8001489, 0x8ee201a4,
+0x8ee20608, 0xac62001c, 0x8ee404a0, 0x8ee504a4,
+0x2462001c, 0xac620008, 0x24020008, 0xa462000e,
+0x24020011, 0xac620018, 0xac640000, 0xac650004,
+0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20,
+0x14400037, 0x24060001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c830000, 0x24020012,
+0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34,
+0x1062001b, 0x24030040, 0x8c820004, 0x24420001,
+0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001,
+0x10430007, 0x0, 0x8ee24e34, 0x24420001,
+0x10a20005, 0x0, 0x8001473, 0x0,
+0x14a00005, 0x0, 0x8f820128, 0x24420020,
+0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011,
+0x50400013, 0xac800000, 0x8001489, 0x0,
+0x8ee24e30, 0x24030040, 0x24420001, 0x50430003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x24020012, 0xac820000, 0x24020001, 0xac820004,
+0x14c0001b, 0x0, 0x3c040001, 0x248451d0,
+0xafa00010, 0xafa00014, 0x8ee60608, 0x8f470228,
+0x3c050009, 0xc002403, 0x34a5f001, 0x8ee201b0,
+0x24420001, 0xaee201b0, 0x80014a5, 0x8ee201b0,
+0x3c040001, 0x248451dc, 0xafa00014, 0x8ee60608,
+0x8f470228, 0x3c050009, 0xc002403, 0x34a5f005,
+0x8ee201ac, 0x24420001, 0xaee201ac, 0x8ee201ac,
+0x8ee20154, 0x24420001, 0xaee20154, 0xc0014dc,
+0x8ee20154, 0x8f8200a0, 0x30420004, 0x1440fffd,
+0x0, 0x8f820040, 0x30420001, 0x14400008,
+0x0, 0x8f430104, 0x24020001, 0x10620004,
+0x0, 0x8f420264, 0x10400006, 0x0,
+0x8ee2017c, 0x24420001, 0xaee2017c, 0x80014c5,
+0x8ee2017c, 0x8f820044, 0x34420004, 0xaf820044,
+0x8ee20178, 0x24420001, 0xaee20178, 0x8ee20178,
+0x8f8200d8, 0x8f8300d4, 0x431023, 0xaee2726c,
+0x8ee2726c, 0x1c400003, 0x3c030001, 0x431021,
+0xaee2726c, 0xc004064, 0x0, 0xc004440,
+0xaf800228, 0x8fbf0024, 0x8fb00020, 0x3e00008,
+0x27bd0028, 0x3e00008, 0x0, 0x3e00008,
+0x0, 0x0, 0x0, 0x2402002c,
+0xaf820050, 0xaee07274, 0x8f420238, 0xaee27278,
+0x8f820054, 0x24420067, 0xaf820058, 0xaee07b88,
+0xaee07b8c, 0xaee07b84, 0x3c010001, 0x370821,
+0xac2083bc, 0x3c010001, 0x370821, 0x3e00008,
+0xa02083b9, 0x27bdffd8, 0xafbf0024, 0xafb00020,
+0x8f820054, 0x3c030001, 0x8c635cd8, 0x24420067,
+0x1060000d, 0xaf820058, 0x3c020001, 0x571021,
+0x904283b8, 0x10400005, 0x3c030200, 0x3c010001,
+0x370821, 0x8001503, 0xa02083b8, 0x8ee20000,
+0x431025, 0xaee20000, 0x8f420218, 0x30420100,
+0x104000c6, 0x0, 0x8f8200b0, 0x30420004,
+0x104000c2, 0x0, 0x3c030001, 0x771821,
+0x8c6383d0, 0x8f820104, 0x146200b4, 0x0,
+0x3c030001, 0x771821, 0x8c6383d4, 0x8f8200b4,
+0x146200ae, 0x0, 0x8f8200b0, 0x3c030080,
+0x431024, 0x1040000d, 0x0, 0x8f82011c,
+0x34420002, 0xaf82011c, 0x8f8200b0, 0x2403fffb,
+0x431024, 0xaf8200b0, 0x8f82011c, 0x2403fffd,
+0x431024, 0x80015cc, 0xaf82011c, 0x3c030001,
+0x771821, 0x8c6383d0, 0x8f820104, 0x14620082,
+0x0, 0x3c030001, 0x771821, 0x8c6383d4,
+0x8f8200b4, 0x1462007c, 0x0, 0x3c070001,
+0xf73821, 0x8ce783d0, 0x8f8200b0, 0x3c040001,
+0x24845270, 0xafa00014, 0xafa20010, 0x8f8600b0,
+0x3c050005, 0xc002403, 0x34a50900, 0x8f82011c,
+0x34420002, 0xaf82011c, 0x8f830104, 0x8f8200b0,
+0x34420001, 0xaf8200b0, 0xaf830104, 0x8f830120,
+0x27623800, 0x24660020, 0xc2102b, 0x50400001,
+0x27663000, 0x8f820128, 0x10c20004, 0x0,
+0x8f820124, 0x14c20006, 0x0, 0x8ee201a4,
+0x24420001, 0xaee201a4, 0x80015a0, 0x8ee201a4,
+0x8f440208, 0x8f45020c, 0x26e20030, 0xac620008,
+0x24020400, 0xa462000e, 0x2402000f, 0xac620018,
+0xac60001c, 0xac640000, 0xac650004, 0x8ee204c4,
+0xac620010, 0xaf860120, 0x92e24e20, 0x14400037,
+0x0, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c830000, 0x24020007, 0x1462001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x24030040, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee54e30, 0x24420001, 0x10430007,
+0x0, 0x8ee24e34, 0x24420001, 0x10a20005,
+0x0, 0x800158a, 0x0, 0x14a00005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400013,
+0xac800000, 0x80015a0, 0x0, 0x8ee24e30,
+0x24030040, 0x24420001, 0x50430003, 0x1021,
+0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x24020007,
+0xac820000, 0x24020001, 0xac820004, 0x8f82011c,
+0x2403fffd, 0x431024, 0xaf82011c, 0x8ee201e4,
+0x3c070001, 0xf73821, 0x8ce783d0, 0x24420001,
+0xaee201e4, 0x8ee201e4, 0x3c040001, 0x2484527c,
+0x80015bd, 0xafa00010, 0x8f820104, 0x3c010001,
+0x370821, 0xac2283d0, 0x8f8200b4, 0x3c070001,
+0xf73821, 0x8ce783d0, 0x3c040001, 0x24845284,
+0x3c010001, 0x370821, 0xac2283d4, 0xafa00010,
+0xafa00014, 0x8f8600b0, 0x3c050005, 0xc002403,
+0x34a50900, 0x80015cc, 0x0, 0x8f820104,
+0x3c010001, 0x370821, 0xac2283d0, 0x8f8200b4,
+0x3c010001, 0x370821, 0xac2283d4, 0x8ee27274,
+0x92e304f4, 0x24420067, 0x14600006, 0xaee27274,
+0x8ee27274, 0x8f430234, 0x43102b, 0x1440007b,
+0x0, 0x8ee304e4, 0x8ee204f8, 0x14620004,
+0x0, 0x92e204f4, 0x50400074, 0xa2e004f4,
+0x8f830120, 0x27623800, 0x24660020, 0xc2102b,
+0x50400001, 0x27663000, 0x8f820128, 0x10c20004,
+0x0, 0x8f820124, 0x14c20007, 0x0,
+0x8ee201a4, 0x8021, 0x24420001, 0xaee201a4,
+0x8001637, 0x8ee201a4, 0x8ee204e4, 0xac62001c,
+0x8ee404b0, 0x8ee504b4, 0x2462001c, 0xac620008,
+0x24020008, 0xa462000e, 0x24020011, 0xac620018,
+0xac640000, 0xac650004, 0x8ee204c4, 0xac620010,
+0xaf860120, 0x92e24e20, 0x14400037, 0x24100001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c830000, 0x24020012, 0x1462001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x24030040,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee54e30, 0x24420001, 0x10430007, 0x0,
+0x8ee24e34, 0x24420001, 0x10a20005, 0x0,
+0x8001621, 0x0, 0x14a00005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400013, 0xac800000,
+0x8001637, 0x0, 0x8ee24e30, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x24020012, 0xac820000,
+0x24020001, 0xac820004, 0x5600000b, 0x24100001,
+0x8ee204e4, 0x3c040001, 0x2484528c, 0xafa00014,
+0xafa20010, 0x8ee60608, 0x8f470228, 0x3c050009,
+0xc002403, 0x34a5f006, 0x16000003, 0x24020001,
+0x8001650, 0xa2e204f4, 0x8ee20170, 0x24420001,
+0xaee20170, 0x8ee20170, 0x8ee204e4, 0xa2e004f4,
+0xaee004f0, 0xaee07274, 0xaee204f8, 0x8ee20e1c,
+0x1040006d, 0x0, 0x8f830120, 0x27623800,
+0x24660020, 0xc2102b, 0x50400001, 0x27663000,
+0x8f820128, 0x10c20004, 0x0, 0x8f820124,
+0x14c20007, 0x0, 0x8ee201a4, 0x8021,
+0x24420001, 0xaee201a4, 0x80016ad, 0x8ee201a4,
+0x8ee2724c, 0xac62001c, 0x8ee404a8, 0x8ee504ac,
+0x2462001c, 0xac620008, 0x24020008, 0xa462000e,
+0x24020011, 0xac620018, 0xac640000, 0xac650004,
+0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20,
+0x14400037, 0x24100001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c830000, 0x24020012,
+0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34,
+0x1062001b, 0x24030040, 0x8c820004, 0x24420001,
+0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001,
+0x10430007, 0x0, 0x8ee24e34, 0x24420001,
+0x10a20005, 0x0, 0x8001697, 0x0,
+0x14a00005, 0x0, 0x8f820128, 0x24420020,
+0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011,
+0x50400013, 0xac800000, 0x80016ad, 0x0,
+0x8ee24e30, 0x24030040, 0x24420001, 0x50430003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x24020012, 0xac820000, 0x24020001, 0xac820004,
+0x5600000b, 0x24100001, 0x8ee2724c, 0x3c040001,
+0x24845298, 0xafa00014, 0xafa20010, 0x8ee6724c,
+0x8f470280, 0x3c050009, 0xc002403, 0x34a5f008,
+0x56000001, 0xaee00e1c, 0x8ee20174, 0x24420001,
+0xaee20174, 0x8ee20174, 0x8ee24e24, 0x10400019,
+0x0, 0xaee04e24, 0x8f820040, 0x30420001,
+0x14400008, 0x0, 0x8f430104, 0x24020001,
+0x10620004, 0x0, 0x8f420264, 0x10400006,
+0x0, 0x8ee2017c, 0x24420001, 0xaee2017c,
+0x80016da, 0x8ee2017c, 0x8f820044, 0x34420004,
+0xaf820044, 0x8ee20178, 0x24420001, 0xaee20178,
+0x8ee20178, 0x8ee27278, 0x2442ff99, 0xaee27278,
+0x8ee27278, 0x1c4002ad, 0x0, 0x8f420238,
+0x104002aa, 0x0, 0x3c020001, 0x571021,
+0x904283e0, 0x144002a5, 0x0, 0x8f420080,
+0xaee2004c, 0x8f4200c0, 0xaee20048, 0x8f420084,
+0xaee20038, 0x8f420084, 0xaee20244, 0x8f420088,
+0xaee20248, 0x8f42008c, 0xaee2024c, 0x8f420090,
+0xaee20250, 0x8f420094, 0xaee20254, 0x8f420098,
+0xaee20258, 0x8f42009c, 0xaee2025c, 0x8f4200a0,
+0xaee20260, 0x8f4200a4, 0xaee20264, 0x8f4200a8,
+0xaee20268, 0x8f4200ac, 0xaee2026c, 0x8f4200b0,
+0xaee20270, 0x8f4200b4, 0xaee20274, 0x8f4200b8,
+0xaee20278, 0x8f4200bc, 0x24040001, 0xaee2027c,
+0xaee0003c, 0x41080, 0x571021, 0x8ee3003c,
+0x8c420244, 0x24840001, 0x621821, 0x2c82000f,
+0xaee3003c, 0x1440fff8, 0x41080, 0x8f4200cc,
+0xaee20050, 0x8f4200d0, 0xaee20054, 0x8f830120,
+0x27623800, 0x24660020, 0xc2102b, 0x50400001,
+0x27663000, 0x8f820128, 0x10c20004, 0x0,
+0x8f820124, 0x14c20007, 0x0, 0x8ee201a4,
+0x8021, 0x24420001, 0xaee201a4, 0x8001775,
+0x8ee201a4, 0x8f440208, 0x8f45020c, 0x26e20030,
+0xac620008, 0x24020400, 0xa462000e, 0x2402000f,
+0xac620018, 0xac60001c, 0xac640000, 0xac650004,
+0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20,
+0x14400037, 0x24100001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c830000, 0x24020007,
+0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34,
+0x1062001b, 0x24030040, 0x8c820004, 0x24420001,
+0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001,
+0x10430007, 0x0, 0x8ee24e34, 0x24420001,
+0x10a20005, 0x0, 0x800175f, 0x0,
+0x14a00005, 0x0, 0x8f820128, 0x24420020,
+0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011,
+0x50400013, 0xac800000, 0x8001775, 0x0,
+0x8ee24e30, 0x24030040, 0x24420001, 0x50430003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x24020007, 0xac820000, 0x24020001, 0xac820004,
+0x12000212, 0x3c020400, 0xafa20018, 0x3c020001,
+0x571021, 0x904283b0, 0x1040010b, 0x0,
+0x8ee20608, 0x8f430228, 0x24420001, 0x304a00ff,
+0x514300fd, 0xafa00010, 0x8ee20608, 0x210c0,
+0x571021, 0x8fa30018, 0x8fa4001c, 0xac43060c,
+0xac440610, 0x8f830054, 0x8f820054, 0x24690032,
+0x1221023, 0x2c420033, 0x1040006a, 0x5821,
+0x24180008, 0x240f000d, 0x240d0007, 0x240c0040,
+0x240e0001, 0x8f870120, 0x27623800, 0x24e80020,
+0x102102b, 0x50400001, 0x27683000, 0x8f820128,
+0x11020004, 0x0, 0x8f820124, 0x15020007,
+0x1021, 0x8ee201a4, 0x8021, 0x24420001,
+0xaee201a4, 0x80017f3, 0x8ee201a4, 0x8ee40608,
+0x420c0, 0x801821, 0x8ee40430, 0x8ee50434,
+0xa32821, 0xa3302b, 0x822021, 0x862021,
+0xace40000, 0xace50004, 0x8ee20608, 0xa4f8000e,
+0xacef0018, 0xacea001c, 0x210c0, 0x2442060c,
+0x2e21021, 0xace20008, 0x8ee204c4, 0xace20010,
+0xaf880120, 0x92e24e20, 0x14400033, 0x24100001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c820000, 0x144d001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x104c0007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x80017e0,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400010, 0xac800000, 0x80017f3,
+0x0, 0x8ee24e30, 0x24420001, 0x504c0003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0xac8d0000, 0xac8e0004, 0x56000006, 0x240b0001,
+0x8f820054, 0x1221023, 0x2c420033, 0x1440ff9d,
+0x0, 0x316300ff, 0x24020001, 0x14620077,
+0x3c050009, 0xaeea0608, 0x8f830054, 0x8f820054,
+0x24690032, 0x1221023, 0x2c420033, 0x10400061,
+0x5821, 0x240d0008, 0x240c0011, 0x24080012,
+0x24070040, 0x240a0001, 0x8f830120, 0x27623800,
+0x24660020, 0xc2102b, 0x50400001, 0x27663000,
+0x8f820128, 0x10c20004, 0x0, 0x8f820124,
+0x14c20007, 0x0, 0x8ee201a4, 0x8021,
+0x24420001, 0xaee201a4, 0x800185f, 0x8ee201a4,
+0x8ee20608, 0xac62001c, 0x8ee404a0, 0x8ee504a4,
+0x2462001c, 0xac620008, 0xa46d000e, 0xac6c0018,
+0xac640000, 0xac650004, 0x8ee204c4, 0xac620010,
+0xaf860120, 0x92e24e20, 0x14400033, 0x24100001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c820000, 0x1448001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x10470007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x800184c,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400010, 0xac800000, 0x800185f,
+0x0, 0x8ee24e30, 0x24420001, 0x50470003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0xac880000, 0xac8a0004, 0x56000006, 0x240b0001,
+0x8f820054, 0x1221023, 0x2c420033, 0x1440ffa6,
+0x0, 0x316300ff, 0x24020001, 0x14620003,
+0x3c050009, 0x800197c, 0x24100001, 0x3c040001,
+0x248452a4, 0xafa00010, 0xafa00014, 0x8f860120,
+0x8f870124, 0x800187b, 0x34a5f011, 0x3c040001,
+0x248452b0, 0xafa00010, 0xafa00014, 0x8f860120,
+0x8f870124, 0x34a5f010, 0xc002403, 0x8021,
+0x800197c, 0x0, 0x3c040001, 0x248452bc,
+0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009,
+0x8001975, 0x34a5f00f, 0x8ee20608, 0x8f430228,
+0x24420001, 0x304900ff, 0x512300e2, 0xafa00010,
+0x8ee20608, 0x210c0, 0x571021, 0x8fa30018,
+0x8fa4001c, 0xac43060c, 0xac440610, 0x8f870120,
+0x27623800, 0x24e80020, 0x102102b, 0x50400001,
+0x27683000, 0x8f820128, 0x11020004, 0x0,
+0x8f820124, 0x15020007, 0x1021, 0x8ee201a4,
+0x8021, 0x24420001, 0xaee201a4, 0x80018f7,
+0x8ee201a4, 0x8ee40608, 0x420c0, 0x801821,
+0x8ee40430, 0x8ee50434, 0xa32821, 0xa3302b,
+0x822021, 0x862021, 0xace40000, 0xace50004,
+0x8ee30608, 0x24020008, 0xa4e2000e, 0x2402000d,
+0xace20018, 0xace9001c, 0x318c0, 0x2463060c,
+0x2e31021, 0xace20008, 0x8ee204c4, 0xace20010,
+0xaf880120, 0x92e24e20, 0x14400037, 0x24100001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c830000, 0x24020007, 0x1462001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x24030040,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee54e30, 0x24420001, 0x10430007, 0x0,
+0x8ee24e34, 0x24420001, 0x10a20005, 0x0,
+0x80018e1, 0x0, 0x14a00005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400013, 0xac800000,
+0x80018f7, 0x0, 0x8ee24e30, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x24020007, 0xac820000,
+0x24020001, 0xac820004, 0x5600000c, 0xaee90608,
+0x3c040001, 0x248452c8, 0xafa00010, 0xafa00014,
+0x8ee60608, 0x8f470228, 0x3c050009, 0xc002403,
+0x34a5f000, 0x800197c, 0x0, 0x8f830120,
+0x27623800, 0x24660020, 0xc2102b, 0x50400001,
+0x27663000, 0x8f820128, 0x10c20004, 0x0,
+0x8f820124, 0x14c20007, 0x0, 0x8ee201a4,
+0x8021, 0x24420001, 0xaee201a4, 0x800195e,
+0x8ee201a4, 0x8ee20608, 0xac62001c, 0x8ee404a0,
+0x8ee504a4, 0x2462001c, 0xac620008, 0x24020008,
+0xa462000e, 0x24020011, 0xac620018, 0xac640000,
+0xac650004, 0x8ee204c4, 0xac620010, 0xaf860120,
+0x92e24e20, 0x14400037, 0x24100001, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c830000,
+0x24020012, 0x1462001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x24030040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee54e30,
+0x24420001, 0x10430007, 0x0, 0x8ee24e34,
+0x24420001, 0x10a20005, 0x0, 0x8001948,
+0x0, 0x14a00005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x800195e,
+0x0, 0x8ee24e30, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x24020012, 0xac820000, 0x24020001,
+0xac820004, 0x5600001d, 0x24100001, 0x3c040001,
+0x248452d0, 0xafa00010, 0xafa00014, 0x8ee60608,
+0x8f470228, 0x3c050009, 0xc002403, 0x34a5f001,
+0x8ee201b0, 0x24420001, 0xaee201b0, 0x800197c,
+0x8ee201b0, 0x3c040001, 0x248452dc, 0xafa00014,
+0x8ee60608, 0x8f470228, 0x3c050009, 0x34a5f005,
+0xc002403, 0x0, 0x8ee201ac, 0x8021,
+0x24420001, 0xaee201ac, 0x8ee201ac, 0x1200000c,
+0x24020001, 0x3c010001, 0x370821, 0xa02083b0,
+0x8f420238, 0x8ee30158, 0x24630001, 0xaee30158,
+0x8ee30158, 0x800198c, 0xaee27278, 0x24020001,
+0x3c010001, 0x370821, 0xa02283b0, 0x3c020001,
+0x8c425cd8, 0x10400187, 0x0, 0x8ee27b84,
+0x24430001, 0x284200c9, 0x144001a4, 0xaee37b84,
+0x8ee204d4, 0x30420002, 0x14400119, 0xaee07b84,
+0x8ee204d4, 0x3c030600, 0x34631000, 0x34420002,
+0xaee204d4, 0xafa30018, 0x8ee20608, 0x8f430228,
+0x24420001, 0x304a00ff, 0x514300fd, 0xafa00010,
+0x8ee20608, 0x210c0, 0x571021, 0x8fa30018,
+0x8fa4001c, 0xac43060c, 0xac440610, 0x8f830054,
+0x8f820054, 0x24690032, 0x1221023, 0x2c420033,
+0x1040006a, 0x5821, 0x24180008, 0x240f000d,
+0x240d0007, 0x240c0040, 0x240e0001, 0x8f870120,
+0x27623800, 0x24e80020, 0x102102b, 0x50400001,
+0x27683000, 0x8f820128, 0x11020004, 0x0,
+0x8f820124, 0x15020007, 0x1021, 0x8ee201a4,
+0x8021, 0x24420001, 0xaee201a4, 0x8001a15,
+0x8ee201a4, 0x8ee40608, 0x420c0, 0x801821,
+0x8ee40430, 0x8ee50434, 0xa32821, 0xa3302b,
+0x822021, 0x862021, 0xace40000, 0xace50004,
+0x8ee20608, 0xa4f8000e, 0xacef0018, 0xacea001c,
+0x210c0, 0x2442060c, 0x2e21021, 0xace20008,
+0x8ee204c4, 0xace20010, 0xaf880120, 0x92e24e20,
+0x14400033, 0x24100001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c820000, 0x144d001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x0, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee34e30, 0x24420001, 0x104c0007,
+0x0, 0x8ee24e34, 0x24420001, 0x10620005,
+0x0, 0x8001a02, 0x0, 0x14600005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400010,
+0xac800000, 0x8001a15, 0x0, 0x8ee24e30,
+0x24420001, 0x504c0003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0xac8d0000, 0xac8e0004,
+0x56000006, 0x240b0001, 0x8f820054, 0x1221023,
+0x2c420033, 0x1440ff9d, 0x0, 0x316300ff,
+0x24020001, 0x54620078, 0xafa00010, 0xaeea0608,
+0x8f830054, 0x8f820054, 0x24690032, 0x1221023,
+0x2c420033, 0x10400061, 0x5821, 0x240d0008,
+0x240c0011, 0x24080012, 0x24070040, 0x240a0001,
+0x8f830120, 0x27623800, 0x24660020, 0xc2102b,
+0x50400001, 0x27663000, 0x8f820128, 0x10c20004,
+0x0, 0x8f820124, 0x14c20007, 0x0,
+0x8ee201a4, 0x8021, 0x24420001, 0xaee201a4,
+0x8001a81, 0x8ee201a4, 0x8ee20608, 0xac62001c,
+0x8ee404a0, 0x8ee504a4, 0x2462001c, 0xac620008,
+0xa46d000e, 0xac6c0018, 0xac640000, 0xac650004,
+0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20,
+0x14400033, 0x24100001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c820000, 0x1448001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x0, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee34e30, 0x24420001, 0x10470007,
+0x0, 0x8ee24e34, 0x24420001, 0x10620005,
+0x0, 0x8001a6e, 0x0, 0x14600005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400010,
+0xac800000, 0x8001a81, 0x0, 0x8ee24e30,
+0x24420001, 0x50470003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0xac880000, 0xac8a0004,
+0x56000006, 0x240b0001, 0x8f820054, 0x1221023,
+0x2c420033, 0x1440ffa6, 0x0, 0x316300ff,
+0x24020001, 0x10620022, 0x0, 0x3c040001,
+0x248452a4, 0xafa00010, 0xafa00014, 0x8f860120,
+0x8f870124, 0x3c050009, 0xc002403, 0x34a5f011,
+0x8001aad, 0x0, 0x3c040001, 0x248452b0,
+0xafa00014, 0x8f860120, 0x8f870124, 0x3c050009,
+0xc002403, 0x34a5f010, 0x8001aad, 0x0,
+0x3c040001, 0x248452bc, 0xafa00014, 0x8ee60608,
+0x8f470228, 0x3c050009, 0xc002403, 0x34a5f00f,
+0x8ee201ac, 0x24420001, 0xaee201ac, 0x8ee201ac,
+0x8ee2015c, 0x24420001, 0xaee2015c, 0x8ee2015c,
+0x8ee204d4, 0x30420001, 0x10400055, 0x0,
+0x8f420218, 0x30420080, 0x10400029, 0x0,
+0x8f820044, 0x34420040, 0xaf820044, 0x8ee27b7c,
+0x402821, 0x8ee200c0, 0x8ee300c4, 0x24060000,
+0x2407ffff, 0x2021, 0x461024, 0x1444000d,
+0x671824, 0x1465000b, 0x0, 0x8ee27b80,
+0x402821, 0x8ee200e0, 0x8ee300e4, 0x2021,
+0x461024, 0x14440003, 0x671824, 0x1065000b,
+0x0, 0x8ee200c0, 0x8ee300c4, 0x8ee400e0,
+0x8ee500e4, 0xaee37b7c, 0xaee57b80, 0x8f820044,
+0x38420020, 0x8001b38, 0xaf820044, 0x8f820044,
+0x2403ffdf, 0x431024, 0x8001b38, 0xaf820044,
+0x8f820044, 0x2403ffdf, 0x431024, 0xaf820044,
+0x8ee27b7c, 0x402821, 0x8ee200c0, 0x8ee300c4,
+0x24060000, 0x2407ffff, 0x2021, 0x461024,
+0x1444000d, 0x671824, 0x1465000b, 0x0,
+0x8ee27b80, 0x402821, 0x8ee200e0, 0x8ee300e4,
+0x2021, 0x461024, 0x14440003, 0x671824,
+0x1065000b, 0x0, 0x8ee200c0, 0x8ee300c4,
+0x8ee400e0, 0x8ee500e4, 0xaee37b7c, 0xaee57b80,
+0x8f820044, 0x38420040, 0x8001b38, 0xaf820044,
+0x8f820044, 0x34420040, 0x8001b38, 0xaf820044,
+0x8f820044, 0x34420040, 0xaf820044, 0x8ee27b8c,
+0x24430001, 0x28420015, 0x14400028, 0xaee37b8c,
+0x8f820044, 0x38420020, 0xaf820044, 0x8001b38,
+0xaee07b8c, 0x8ee204d4, 0x30420001, 0x10400011,
+0x0, 0x8f420218, 0x30420080, 0x10400009,
+0x0, 0x8f820044, 0x34420020, 0xaf820044,
+0x8f820044, 0x2403ffbf, 0x431024, 0x8001b36,
+0xaf820044, 0x8f820044, 0x34420060, 0x8001b36,
+0xaf820044, 0x8f820044, 0x34420040, 0xaf820044,
+0x8ee27b88, 0x24430001, 0x28421389, 0x14400005,
+0xaee37b88, 0x8f820044, 0x38420020, 0xaf820044,
+0xaee07b88, 0xc004603, 0x0, 0x8fbf0024,
+0x8fb00020, 0x3e00008, 0x27bd0028, 0x27bdffb8,
+0xafbf0044, 0xafb60040, 0xafb5003c, 0xafb40038,
+0xafb30034, 0xafb20030, 0xafb1002c, 0xafb00028,
+0x8f960064, 0x32c20004, 0x1040000c, 0x24020004,
+0xaf820064, 0x8f420114, 0xaee204e0, 0x8f820060,
+0x34420008, 0xaf820060, 0x8ee2016c, 0x24420001,
+0xaee2016c, 0x80022f4, 0x8ee2016c, 0x32c20001,
+0x10400004, 0x24020001, 0xaf820064, 0x80022f4,
+0x0, 0x32c20002, 0x1440000c, 0x3c050003,
+0x3c040001, 0x24845354, 0x34a50001, 0x2c03021,
+0x3821, 0xafa00010, 0xc002403, 0xafa00014,
+0x2402fff8, 0x80022f4, 0xaf820064, 0x8f43022c,
+0x8f42010c, 0x5062000c, 0xafa00010, 0x8f42022c,
+0x21080, 0x5a1021, 0x8c420300, 0xafa20020,
+0x8f42022c, 0x24070001, 0x24420001, 0x3042003f,
+0x8001b80, 0xaf42022c, 0x3c040001, 0x24845360,
+0xafa00014, 0x8f46022c, 0x8f47010c, 0x3c050003,
+0xc002403, 0x34a5f01f, 0x3821, 0x14e00003,
+0x0, 0x80022ed, 0xaf960064, 0x93a20020,
+0x2443ffff, 0x2c620011, 0x10400658, 0x31080,
+0x3c010001, 0x220821, 0x8c225418, 0x400008,
+0x0, 0x8fa20020, 0x30420fff, 0xaee20e0c,
+0x8f820060, 0x34420200, 0xaf820060, 0x8ee20118,
+0x24420001, 0xaee20118, 0x80022e8, 0x8ee20118,
+0x8fa20020, 0x24030001, 0x3c010001, 0x370821,
+0xa02383b1, 0x30420fff, 0xaee25238, 0x8f820060,
+0x34420100, 0xaf820060, 0x8ee20144, 0x24420001,
+0xaee20144, 0x80022e8, 0x8ee20144, 0x8fa20020,
+0x21200, 0x22502, 0x24020001, 0x10820005,
+0x24020002, 0x10820009, 0x2402fffe, 0x8001bc9,
+0xafa00010, 0x8ee204d4, 0xaee40070, 0xaee40074,
+0x34420001, 0x8001bbd, 0xaee204d4, 0x8ee304d4,
+0xaee40070, 0xaee40074, 0x621824, 0xaee304d4,
+0x8f840054, 0x41442, 0x41c82, 0x431021,
+0x41cc2, 0x431023, 0x41d02, 0x431021,
+0x41d42, 0x431023, 0x8001bd0, 0xaee20078,
+0x3c040001, 0x2484536c, 0xafa00014, 0x8fa60020,
+0x3c050003, 0xc002403, 0x34a50004, 0x8ee20110,
+0x24420001, 0xaee20110, 0x80022e8, 0x8ee20110,
+0x27440212, 0xc0022fe, 0x24050006, 0x3049001f,
+0x920c0, 0x2e41021, 0x9442727c, 0x30424000,
+0x1040000a, 0x971021, 0x97430212, 0xa443727e,
+0x8f430214, 0x971021, 0xac437280, 0x2e41821,
+0x34028000, 0x8001c79, 0xa462727c, 0x9443727e,
+0x97420212, 0x14620006, 0x2e41021, 0x971021,
+0x8c437280, 0x8f420214, 0x1062009f, 0x2e41021,
+0x9442727c, 0x30428000, 0x1040002a, 0x2406ffff,
+0x2021, 0x410c0, 0x2e21021, 0x9442737c,
+0x30424000, 0x54400005, 0x803021, 0x24840001,
+0x2c820080, 0x1440fff8, 0x410c0, 0x4c10010,
+0x618c0, 0x610c0, 0x571821, 0x8c63737c,
+0x571021, 0xafa30010, 0x8c427380, 0x3c040001,
+0x24845378, 0xafa20014, 0x8f470214, 0x3c050003,
+0xc002403, 0x34a50013, 0x8001c90, 0x3c020800,
+0x97440212, 0x771021, 0xa444737e, 0x8f440214,
+0x771021, 0x2e31821, 0xac447380, 0x34028000,
+0xa462737c, 0x910c0, 0x2e21021, 0x8001c79,
+0xa446727c, 0x2e41021, 0x9445727c, 0x8001c2e,
+0x510c0, 0x9443737e, 0x97420212, 0x14620006,
+0x510c0, 0x971021, 0x8c437380, 0x8f420214,
+0x10620065, 0x510c0, 0x2e21021, 0x9445737c,
+0x510c0, 0x2e21021, 0x9442737c, 0x30428000,
+0x1040fff0, 0x971021, 0x520c0, 0x971021,
+0x9443737e, 0x97420212, 0x14620006, 0x2406ffff,
+0x971021, 0x8c437380, 0x8f420214, 0x10620053,
+0x3c020800, 0x2021, 0x410c0, 0x2e21021,
+0x9442737c, 0x30424000, 0x54400005, 0x803021,
+0x24840001, 0x2c820080, 0x1440fff8, 0x410c0,
+0x4c10023, 0x618c0, 0x910c0, 0x571821,
+0x8c63727c, 0x571021, 0xafa30010, 0x8c427280,
+0x3c040001, 0x24845384, 0xafa20014, 0x8f470214,
+0x3c050003, 0xc002403, 0x34a5f017, 0x8001c90,
+0x3c020800, 0x8f430210, 0xb71021, 0xac43777c,
+0x8f430214, 0xb71021, 0xac437780, 0x3c020001,
+0x571021, 0x8c4283b4, 0x24420001, 0x3c010001,
+0x370821, 0xac2283b4, 0x3c030001, 0x771821,
+0x8c6383b4, 0x2e51021, 0x8001c82, 0xa443777c,
+0x97440212, 0x771021, 0xa444737e, 0x8f440214,
+0x771021, 0x2e31821, 0xac447380, 0x34028000,
+0xa462737c, 0x510c0, 0x2e21021, 0xa446737c,
+0x2021, 0x428c0, 0x2e51021, 0x9442777c,
+0x1040ffdc, 0x24840001, 0x2c820080, 0x5440fffa,
+0x428c0, 0x92e204d8, 0x10400006, 0x24020001,
+0x8ee304dc, 0x1221004, 0x621825, 0x8001c8f,
+0xaee304dc, 0x8f830228, 0x24020001, 0x1221004,
+0x621825, 0xaf830228, 0x3c020800, 0x34421000,
+0xafa20018, 0x8ee20608, 0x8f430228, 0x24420001,
+0x304a00ff, 0x514300fd, 0xafa00010, 0x8ee20608,
+0x210c0, 0x571021, 0x8fa30018, 0x8fa4001c,
+0xac43060c, 0xac440610, 0x8f830054, 0x8f820054,
+0x24690032, 0x1221023, 0x2c420033, 0x1040006a,
+0x5821, 0x24100008, 0x240f000d, 0x240d0007,
+0x240c0040, 0x240e0001, 0x8f870120, 0x27623800,
+0x24e80020, 0x102102b, 0x50400001, 0x27683000,
+0x8f820128, 0x11020004, 0x0, 0x8f820124,
+0x15020007, 0x1021, 0x8ee201a4, 0x3821,
+0x24420001, 0xaee201a4, 0x8001d08, 0x8ee201a4,
+0x8ee40608, 0x420c0, 0x801821, 0x8ee40430,
+0x8ee50434, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xace40000, 0xace50004, 0x8ee20608,
+0xa4f0000e, 0xacef0018, 0xacea001c, 0x210c0,
+0x2442060c, 0x2e21021, 0xace20008, 0x8ee204c4,
+0xace20010, 0xaf880120, 0x92e24e20, 0x14400033,
+0x24070001, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c820000, 0x144d001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee34e30, 0x24420001, 0x104c0007, 0x0,
+0x8ee24e34, 0x24420001, 0x10620005, 0x0,
+0x8001cf5, 0x0, 0x14600005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400010, 0xac800000,
+0x8001d08, 0x0, 0x8ee24e30, 0x24420001,
+0x504c0003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0xac8d0000, 0xac8e0004, 0x54e00006,
+0x240b0001, 0x8f820054, 0x1221023, 0x2c420033,
+0x1440ff9d, 0x0, 0x316300ff, 0x24020001,
+0x54620078, 0xafa00010, 0xaeea0608, 0x8f830054,
+0x8f820054, 0x24690032, 0x1221023, 0x2c420033,
+0x10400061, 0x5821, 0x240e0008, 0x240d0011,
+0x240a0012, 0x24080040, 0x240c0001, 0x8f830120,
+0x27623800, 0x24660020, 0xc2102b, 0x50400001,
+0x27663000, 0x8f820128, 0x10c20004, 0x0,
+0x8f820124, 0x14c20007, 0x0, 0x8ee201a4,
+0x3821, 0x24420001, 0xaee201a4, 0x8001d74,
+0x8ee201a4, 0x8ee20608, 0xac62001c, 0x8ee404a0,
+0x8ee504a4, 0x2462001c, 0xac620008, 0xa46e000e,
+0xac6d0018, 0xac640000, 0xac650004, 0x8ee204c4,
+0xac620010, 0xaf860120, 0x92e24e20, 0x14400033,
+0x24070001, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c820000, 0x144a001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee34e30, 0x24420001, 0x10480007, 0x0,
+0x8ee24e34, 0x24420001, 0x10620005, 0x0,
+0x8001d61, 0x0, 0x14600005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400010, 0xac800000,
+0x8001d74, 0x0, 0x8ee24e30, 0x24420001,
+0x50480003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0xac8a0000, 0xac8c0004, 0x54e00006,
+0x240b0001, 0x8f820054, 0x1221023, 0x2c420033,
+0x1440ffa6, 0x0, 0x316300ff, 0x24020001,
+0x10620022, 0x0, 0x3c040001, 0x24845390,
+0xafa00010, 0xafa00014, 0x8f860120, 0x8f870124,
+0x3c050009, 0xc002403, 0x34a5f011, 0x8001da0,
+0x0, 0x3c040001, 0x2484539c, 0xafa00014,
+0x8f860120, 0x8f870124, 0x3c050009, 0xc002403,
+0x34a5f010, 0x8001da0, 0x0, 0x3c040001,
+0x248453a8, 0xafa00014, 0x8ee60608, 0x8f470228,
+0x3c050009, 0xc002403, 0x34a5f00f, 0x8ee201ac,
+0x24420001, 0xaee201ac, 0x8ee201ac, 0x8ee20124,
+0x24420001, 0xaee20124, 0x8001f97, 0x8ee20124,
+0x27440212, 0xc0022fe, 0x24050006, 0x3049001f,
+0x928c0, 0x2e51021, 0x9442727c, 0x30428000,
+0x1040002f, 0x2e51021, 0x9442727c, 0x30424000,
+0x1440001c, 0xb71021, 0x9443727e, 0x97420212,
+0x14620018, 0xb71021, 0x8c437280, 0x8f420214,
+0x54620016, 0xafa20010, 0x92e204d8, 0x10400007,
+0x24020001, 0x8ee304dc, 0x1221004, 0x21027,
+0x621824, 0x8001dc9, 0xaee304dc, 0x8f830228,
+0x1221004, 0x21027, 0x621824, 0xaf830228,
+0x910c0, 0x2e21821, 0x3402c000, 0x8001e4e,
+0xa462727c, 0x8f420214, 0xafa20010, 0x910c0,
+0x571021, 0x8c42727c, 0x3c040001, 0x248453b4,
+0x3c050003, 0xafa20014, 0x8f470210, 0x34a5f01c,
+0xc002403, 0x1203021, 0x8001e83, 0x3c020800,
+0xb71021, 0x9443727e, 0x97420212, 0x14620019,
+0x918c0, 0xb71021, 0x8c437280, 0x8f420214,
+0x14620014, 0x918c0, 0x2e51021, 0x9447727c,
+0x720c0, 0x971021, 0x9443737e, 0xb71021,
+0xa443727e, 0x971021, 0x8c437380, 0xb71021,
+0xac437280, 0x2e41021, 0x9443737c, 0x2e51021,
+0xa443727c, 0x2e41821, 0x3402c000, 0x8001e4e,
+0xa462737c, 0x2e31021, 0x9447727c, 0x3021,
+0x720c0, 0x2e41021, 0x9442737c, 0x4021,
+0x30428000, 0x14400025, 0xe02821, 0x605021,
+0x340bc000, 0x971021, 0x9443737e, 0x97420212,
+0x54620015, 0xe02821, 0x971021, 0x8c437380,
+0x8f420214, 0x54620010, 0xe02821, 0x11000006,
+0x2e41021, 0x9443737c, 0x510c0, 0x2e21021,
+0x8001e1a, 0xa443737c, 0x9443737c, 0x2ea1021,
+0xa443727c, 0x710c0, 0x2e21021, 0xa44b737c,
+0x8001e28, 0x24060001, 0x510c0, 0x2e21021,
+0x9447737c, 0x720c0, 0x2e41021, 0x9442737c,
+0x30428000, 0x1040ffdf, 0x25080001, 0x30c200ff,
+0x14400025, 0x2021, 0x720c0, 0x971021,
+0x9443737e, 0x97420212, 0x1462000f, 0x910c0,
+0x971021, 0x8c437380, 0x8f420214, 0x1462000a,
+0x910c0, 0x2e41821, 0x3402c000, 0x15000015,
+0xa462737c, 0x910c0, 0x2e21821, 0x34028000,
+0x8001e4e, 0xa462727c, 0x571021, 0x8c42727c,
+0x3c040001, 0x248453c0, 0x3c050003, 0xafa20010,
+0x710c0, 0x571021, 0x8c42737c, 0x34a5001e,
+0x1203021, 0xc002403, 0xafa20014, 0x8001e83,
+0x3c020800, 0x2021, 0x428c0, 0xb71021,
+0x9443777e, 0x97420212, 0x5462002b, 0x24840001,
+0xb71021, 0x8c437780, 0x8f420214, 0x54620026,
+0x24840001, 0x3c020001, 0x571021, 0x8c4283b4,
+0x2442ffff, 0x3c010001, 0x370821, 0xac2283b4,
+0x3c020001, 0x571021, 0x8c4283b4, 0x809021,
+0x242102b, 0x1040000e, 0x24b1777c, 0x24b07784,
+0x2f02021, 0x2f12821, 0xc002490, 0x24060008,
+0x26310008, 0x3c020001, 0x571021, 0x8c4283b4,
+0x26520001, 0x242102b, 0x1440fff5, 0x26100008,
+0x3c040001, 0x972021, 0x8c8483b4, 0x24050008,
+0x420c0, 0x2484777c, 0xc002488, 0x2e42021,
+0x8001e83, 0x3c020800, 0x2c820080, 0x1440ffcf,
+0x428c0, 0x3c020800, 0x34422000, 0xafa20018,
+0x8ee20608, 0x8f430228, 0x24420001, 0x304a00ff,
+0x514300fd, 0xafa00010, 0x8ee20608, 0x210c0,
+0x571021, 0x8fa30018, 0x8fa4001c, 0xac43060c,
+0xac440610, 0x8f830054, 0x8f820054, 0x24690032,
+0x1221023, 0x2c420033, 0x1040006a, 0x5821,
+0x24100008, 0x240f000d, 0x240d0007, 0x240c0040,
+0x240e0001, 0x8f870120, 0x27623800, 0x24e80020,
+0x102102b, 0x50400001, 0x27683000, 0x8f820128,
+0x11020004, 0x0, 0x8f820124, 0x15020007,
+0x1021, 0x8ee201a4, 0x3821, 0x24420001,
+0xaee201a4, 0x8001efb, 0x8ee201a4, 0x8ee40608,
+0x420c0, 0x801821, 0x8ee40430, 0x8ee50434,
+0xa32821, 0xa3302b, 0x822021, 0x862021,
+0xace40000, 0xace50004, 0x8ee20608, 0xa4f0000e,
+0xacef0018, 0xacea001c, 0x210c0, 0x2442060c,
+0x2e21021, 0xace20008, 0x8ee204c4, 0xace20010,
+0xaf880120, 0x92e24e20, 0x14400033, 0x24070001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c820000, 0x144d001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x104c0007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x8001ee8,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400010, 0xac800000, 0x8001efb,
+0x0, 0x8ee24e30, 0x24420001, 0x504c0003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0xac8d0000, 0xac8e0004, 0x54e00006, 0x240b0001,
+0x8f820054, 0x1221023, 0x2c420033, 0x1440ff9d,
+0x0, 0x316300ff, 0x24020001, 0x54620078,
+0xafa00010, 0xaeea0608, 0x8f830054, 0x8f820054,
+0x24690032, 0x1221023, 0x2c420033, 0x10400061,
+0x5821, 0x240e0008, 0x240d0011, 0x240a0012,
+0x24080040, 0x240c0001, 0x8f830120, 0x27623800,
+0x24660020, 0xc2102b, 0x50400001, 0x27663000,
+0x8f820128, 0x10c20004, 0x0, 0x8f820124,
+0x14c20007, 0x0, 0x8ee201a4, 0x3821,
+0x24420001, 0xaee201a4, 0x8001f67, 0x8ee201a4,
+0x8ee20608, 0xac62001c, 0x8ee404a0, 0x8ee504a4,
+0x2462001c, 0xac620008, 0xa46e000e, 0xac6d0018,
+0xac640000, 0xac650004, 0x8ee204c4, 0xac620010,
+0xaf860120, 0x92e24e20, 0x14400033, 0x24070001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c820000, 0x144a001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x10480007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x8001f54,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400010, 0xac800000, 0x8001f67,
+0x0, 0x8ee24e30, 0x24420001, 0x50480003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0xac8a0000, 0xac8c0004, 0x54e00006, 0x240b0001,
+0x8f820054, 0x1221023, 0x2c420033, 0x1440ffa6,
+0x0, 0x316300ff, 0x24020001, 0x10620022,
+0x0, 0x3c040001, 0x24845390, 0xafa00010,
+0xafa00014, 0x8f860120, 0x8f870124, 0x3c050009,
+0xc002403, 0x34a5f011, 0x8001f93, 0x0,
+0x3c040001, 0x2484539c, 0xafa00014, 0x8f860120,
+0x8f870124, 0x3c050009, 0xc002403, 0x34a5f010,
+0x8001f93, 0x0, 0x3c040001, 0x248453a8,
+0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009,
+0xc002403, 0x34a5f00f, 0x8ee201ac, 0x24420001,
+0xaee201ac, 0x8ee201ac, 0x8ee20128, 0x24420001,
+0xaee20128, 0x8ee20128, 0x8ee20164, 0x24420001,
+0xaee20164, 0x80022e8, 0x8ee20164, 0x8fa20020,
+0x21200, 0x21d02, 0x24020001, 0x10620005,
+0x24020002, 0x1062000d, 0x0, 0x8001fb7,
+0xafa00010, 0x92e204d8, 0x14400006, 0x24020001,
+0x8f820228, 0xaee204dc, 0x2402ffff, 0xaf820228,
+0x24020001, 0x8001fbe, 0xa2e204d8, 0x92e204d8,
+0x5040000c, 0xa2e004d8, 0x8ee204dc, 0xaf820228,
+0x8001fbe, 0xa2e004d8, 0x3c040001, 0x248453c8,
+0xafa00014, 0x8fa60020, 0x3c050003, 0xc002403,
+0x34a5f009, 0x8ee2013c, 0x24420001, 0xaee2013c,
+0x80022e8, 0x8ee2013c, 0x8fa20020, 0x21200,
+0x22502, 0x24020001, 0x10820005, 0x24020002,
+0x1082000f, 0x0, 0x8001fe3, 0xafa00010,
+0x8f820220, 0x3c0308ff, 0x3463ffff, 0x431024,
+0x34420008, 0xaf820220, 0x24020001, 0x3c010001,
+0x370821, 0xa02283b2, 0x8001fea, 0xaee40108,
+0x8f820220, 0x3c0308ff, 0x3463fff7, 0x431024,
+0xaf820220, 0x3c010001, 0x370821, 0xa02083b2,
+0x8001fea, 0xaee40108, 0x3c040001, 0x248453d4,
+0xafa00014, 0x8fa60020, 0x3c050003, 0xc002403,
+0x34a5f00a, 0x8ee2012c, 0x24420001, 0xaee2012c,
+0x80022e8, 0x8ee2012c, 0x8fa20020, 0x21200,
+0x21d02, 0x24020001, 0x10620005, 0x24020002,
+0x1062000e, 0x0, 0x8002011, 0xafa00010,
+0x8f820220, 0x3c0308ff, 0x3463ffff, 0x431024,
+0x34420008, 0xaf820220, 0x24020001, 0x3c010001,
+0x370821, 0x8002018, 0xa02283b3, 0x3c020001,
+0x571021, 0x904283b2, 0x3c010001, 0x370821,
+0x1440000e, 0xa02083b3, 0x8f820220, 0x3c0308ff,
+0x3463fff7, 0x431024, 0x8002018, 0xaf820220,
+0x3c040001, 0x248453e0, 0xafa00014, 0x8fa60020,
+0x3c050003, 0xc002403, 0x34a5f00b, 0x8ee20114,
+0x24420001, 0xaee20114, 0x80022e8, 0x8ee20114,
+0x27840208, 0x27450200, 0xc00249a, 0x24060008,
+0x26e40094, 0x27450200, 0xc00249a, 0x24060008,
+0x8ee20134, 0x24420001, 0xaee20134, 0x80022e8,
+0x8ee20134, 0x8f460248, 0x2021, 0xc005108,
+0x24050004, 0x8ee20130, 0x24420001, 0xaee20130,
+0x80022e8, 0x8ee20130, 0x8ef301cc, 0x8ef401d0,
+0x8ef501d8, 0x8ee20140, 0x26e40030, 0x24420001,
+0xaee20140, 0x8ef00140, 0x8ef10074, 0x8ef20070,
+0xc002488, 0x24050400, 0xaef301cc, 0xaef401d0,
+0xaef501d8, 0xaef00140, 0xaef10074, 0xaef20070,
+0x8f42025c, 0x26e40094, 0xaee20060, 0x8f420260,
+0x27450200, 0x24060008, 0xaee20068, 0x24020006,
+0xc00249a, 0xaee20064, 0x3c023b9a, 0x3442ca00,
+0xaee2006c, 0x240203e8, 0x24040002, 0x24030001,
+0xaee20104, 0xaee40100, 0xaee3010c, 0x8f820220,
+0x30420008, 0x10400004, 0x0, 0xaee30108,
+0x8002061, 0x2021, 0xaee40108, 0x2021,
+0x3c030001, 0x641821, 0x90635c30, 0x2e41021,
+0x24840001, 0xa043009c, 0x2c82000f, 0x1440fff8,
+0x0, 0x8f820040, 0x2e41821, 0x24840001,
+0x21702, 0x24420030, 0xa062009c, 0x2e41021,
+0x80022e8, 0xa040009c, 0x24020001, 0x3c010001,
+0x370821, 0xa02283e0, 0x240b0400, 0x24080014,
+0x240a0040, 0x24090001, 0x8f830100, 0x27623000,
+0x24660020, 0xc2102b, 0x50400001, 0x27662800,
+0x8f820108, 0x10c20004, 0x0, 0x8f820104,
+0x14c20007, 0x26e20030, 0x8ee201a8, 0x3821,
+0x24420001, 0xaee201a8, 0x80020a8, 0x8ee201a8,
+0x8ee404b8, 0x8ee504bc, 0xac620008, 0xa46b000e,
+0xac680018, 0xac60001c, 0xac640000, 0xac650004,
+0x8ee204cc, 0xac620010, 0xaf860100, 0x92e204ec,
+0x1440000e, 0x24070001, 0x8ee24e28, 0x24420001,
+0x504a0003, 0x1021, 0x8ee24e28, 0x24420001,
+0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38,
+0x2e21021, 0xac480000, 0xac490004, 0x10e0ffd2,
+0x0, 0x80022e8, 0x0, 0x3c020900,
+0xaee05238, 0xaee0523c, 0xaee05240, 0xaee05244,
+0xaee001d0, 0x3c010001, 0x370821, 0xa02083b1,
+0xafa20018, 0x8ee20608, 0x8f430228, 0x24420001,
+0x304a00ff, 0x514300fd, 0xafa00010, 0x8ee20608,
+0x210c0, 0x571021, 0x8fa30018, 0x8fa4001c,
+0xac43060c, 0xac440610, 0x8f830054, 0x8f820054,
+0x24690032, 0x1221023, 0x2c420033, 0x1040006a,
+0x5821, 0x24100008, 0x240f000d, 0x240d0007,
+0x240c0040, 0x240e0001, 0x8f870120, 0x27623800,
+0x24e80020, 0x102102b, 0x50400001, 0x27683000,
+0x8f820128, 0x11020004, 0x0, 0x8f820124,
+0x15020007, 0x1021, 0x8ee201a4, 0x3821,
+0x24420001, 0xaee201a4, 0x800212c, 0x8ee201a4,
+0x8ee40608, 0x420c0, 0x801821, 0x8ee40430,
+0x8ee50434, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xace40000, 0xace50004, 0x8ee20608,
+0xa4f0000e, 0xacef0018, 0xacea001c, 0x210c0,
+0x2442060c, 0x2e21021, 0xace20008, 0x8ee204c4,
+0xace20010, 0xaf880120, 0x92e24e20, 0x14400033,
+0x24070001, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c820000, 0x144d001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee34e30, 0x24420001, 0x104c0007, 0x0,
+0x8ee24e34, 0x24420001, 0x10620005, 0x0,
+0x8002119, 0x0, 0x14600005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400010, 0xac800000,
+0x800212c, 0x0, 0x8ee24e30, 0x24420001,
+0x504c0003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0xac8d0000, 0xac8e0004, 0x54e00006,
+0x240b0001, 0x8f820054, 0x1221023, 0x2c420033,
+0x1440ff9d, 0x0, 0x316300ff, 0x24020001,
+0x54620078, 0xafa00010, 0xaeea0608, 0x8f830054,
+0x8f820054, 0x24690032, 0x1221023, 0x2c420033,
+0x10400061, 0x5821, 0x240e0008, 0x240d0011,
+0x240a0012, 0x24080040, 0x240c0001, 0x8f830120,
+0x27623800, 0x24660020, 0xc2102b, 0x50400001,
+0x27663000, 0x8f820128, 0x10c20004, 0x0,
+0x8f820124, 0x14c20007, 0x0, 0x8ee201a4,
+0x3821, 0x24420001, 0xaee201a4, 0x8002198,
+0x8ee201a4, 0x8ee20608, 0xac62001c, 0x8ee404a0,
+0x8ee504a4, 0x2462001c, 0xac620008, 0xa46e000e,
+0xac6d0018, 0xac640000, 0xac650004, 0x8ee204c4,
+0xac620010, 0xaf860120, 0x92e24e20, 0x14400033,
+0x24070001, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c820000, 0x144a001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee34e30, 0x24420001, 0x10480007, 0x0,
+0x8ee24e34, 0x24420001, 0x10620005, 0x0,
+0x8002185, 0x0, 0x14600005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400010, 0xac800000,
+0x8002198, 0x0, 0x8ee24e30, 0x24420001,
+0x50480003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0xac8a0000, 0xac8c0004, 0x54e00006,
+0x240b0001, 0x8f820054, 0x1221023, 0x2c420033,
+0x1440ffa6, 0x0, 0x316300ff, 0x24020001,
+0x10620022, 0x0, 0x3c040001, 0x24845390,
+0xafa00010, 0xafa00014, 0x8f860120, 0x8f870124,
+0x3c050009, 0xc002403, 0x34a5f011, 0x80021c4,
+0x0, 0x3c040001, 0x2484539c, 0xafa00014,
+0x8f860120, 0x8f870124, 0x3c050009, 0xc002403,
+0x34a5f010, 0x80021c4, 0x0, 0x3c040001,
+0x248453a8, 0xafa00014, 0x8ee60608, 0x8f470228,
+0x3c050009, 0xc002403, 0x34a5f00f, 0x8ee201ac,
+0x24420001, 0xaee201ac, 0x8ee201ac, 0x8ee20120,
+0x24420001, 0xaee20120, 0x8ee20120, 0x8ee20168,
+0x24420001, 0xaee20168, 0x80022e8, 0x8ee20168,
+0x8f42025c, 0x26e40094, 0xaee20060, 0x8f420260,
+0x27450200, 0x24060008, 0xc00249a, 0xaee20068,
+0x8f820220, 0x30420008, 0x14400002, 0x24020001,
+0x24020002, 0xaee20108, 0x8ee2011c, 0x24420001,
+0xaee2011c, 0x80022e8, 0x8ee2011c, 0x3c040001,
+0x248453ec, 0xafa00010, 0xafa00014, 0x8fa60020,
+0x3c050003, 0xc002403, 0x34a5f00f, 0x93a20020,
+0x3c030700, 0x34631000, 0x431025, 0xafa20018,
+0x8ee20608, 0x8f430228, 0x24420001, 0x304900ff,
+0x512300e2, 0xafa00010, 0x8ee20608, 0x210c0,
+0x571021, 0x8fa30018, 0x8fa4001c, 0xac43060c,
+0xac440610, 0x8f870120, 0x27623800, 0x24e80020,
+0x102102b, 0x50400001, 0x27683000, 0x8f820128,
+0x11020004, 0x0, 0x8f820124, 0x15020007,
+0x1021, 0x8ee201a4, 0x3821, 0x24420001,
+0xaee201a4, 0x800225d, 0x8ee201a4, 0x8ee40608,
+0x420c0, 0x801821, 0x8ee40430, 0x8ee50434,
+0xa32821, 0xa3302b, 0x822021, 0x862021,
+0xace40000, 0xace50004, 0x8ee30608, 0x24020008,
+0xa4e2000e, 0x2402000d, 0xace20018, 0xace9001c,
+0x318c0, 0x2463060c, 0x2e31021, 0xace20008,
+0x8ee204c4, 0xace20010, 0xaf880120, 0x92e24e20,
+0x14400037, 0x24070001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c830000, 0x24020007,
+0x1462001f, 0x0, 0x8ee34e30, 0x8ee24e34,
+0x1062001b, 0x24030040, 0x8c820004, 0x24420001,
+0xac820004, 0x8ee24e34, 0x8ee54e30, 0x24420001,
+0x10430007, 0x0, 0x8ee24e34, 0x24420001,
+0x10a20005, 0x0, 0x8002247, 0x0,
+0x14a00005, 0x0, 0x8f820128, 0x24420020,
+0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011,
+0x50400013, 0xac800000, 0x800225d, 0x0,
+0x8ee24e30, 0x24030040, 0x24420001, 0x50430003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x24020007, 0xac820000, 0x24020001, 0xac820004,
+0x54e0000c, 0xaee90608, 0x3c040001, 0x248453f4,
+0xafa00010, 0xafa00014, 0x8ee60608, 0x8f470228,
+0x3c050009, 0xc002403, 0x34a5f000, 0x80022e0,
+0x0, 0x8f830120, 0x27623800, 0x24660020,
+0xc2102b, 0x50400001, 0x27663000, 0x8f820128,
+0x10c20004, 0x0, 0x8f820124, 0x14c20007,
+0x0, 0x8ee201a4, 0x3821, 0x24420001,
+0xaee201a4, 0x80022c4, 0x8ee201a4, 0x8ee20608,
+0xac62001c, 0x8ee404a0, 0x8ee504a4, 0x2462001c,
+0xac620008, 0x24020008, 0xa462000e, 0x24020011,
+0xac620018, 0xac640000, 0xac650004, 0x8ee204c4,
+0xac620010, 0xaf860120, 0x92e24e20, 0x14400037,
+0x24070001, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c830000, 0x24020012, 0x1462001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x24030040, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee54e30, 0x24420001, 0x10430007,
+0x0, 0x8ee24e34, 0x24420001, 0x10a20005,
+0x0, 0x80022ae, 0x0, 0x14a00005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400013,
+0xac800000, 0x80022c4, 0x0, 0x8ee24e30,
+0x24030040, 0x24420001, 0x50430003, 0x1021,
+0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x24020012,
+0xac820000, 0x24020001, 0xac820004, 0x14e0001b,
+0x0, 0x3c040001, 0x248453fc, 0xafa00010,
+0xafa00014, 0x8ee60608, 0x8f470228, 0x3c050009,
+0xc002403, 0x34a5f001, 0x8ee201b0, 0x24420001,
+0xaee201b0, 0x80022e0, 0x8ee201b0, 0x3c040001,
+0x24845408, 0xafa00014, 0x8ee60608, 0x8f470228,
+0x3c050009, 0xc002403, 0x34a5f005, 0x8ee201ac,
+0x24420001, 0xaee201ac, 0x8ee201ac, 0x8ee20150,
+0x24420001, 0xaee20150, 0x8ee20150, 0x8ee20160,
+0x24420001, 0xaee20160, 0x8ee20160, 0x8f43022c,
+0x8f42010c, 0x14620009, 0x24020002, 0xaf820064,
+0x8f820064, 0x14400005, 0x0, 0x8f43022c,
+0x8f42010c, 0x1462f875, 0x0, 0x8fbf0044,
+0x8fb60040, 0x8fb5003c, 0x8fb40038, 0x8fb30034,
+0x8fb20030, 0x8fb1002c, 0x8fb00028, 0x3e00008,
+0x27bd0048, 0x27bdfff8, 0x2408ffff, 0x10a00014,
+0x4821, 0x3c0aedb8, 0x354a8320, 0x90870000,
+0x24840001, 0x3021, 0x1071026, 0x30420001,
+0x10400002, 0x81842, 0x6a1826, 0x604021,
+0x24c60001, 0x2cc20008, 0x1440fff7, 0x73842,
+0x25290001, 0x125102b, 0x1440fff0, 0x0,
+0x1001021, 0x3e00008, 0x27bd0008, 0x27bdffe8,
+0x27642800, 0xafbf0010, 0xc002488, 0x24051000,
+0x24020021, 0xaf800100, 0xaf800104, 0xaf800108,
+0xaf800110, 0xaf800114, 0xaf800118, 0xaf800120,
+0xaf800124, 0xaf800128, 0xaf800130, 0xaf800134,
+0xaf800138, 0xaee04e28, 0xaee04e2c, 0xaee04e30,
+0xaee04e34, 0xaf82011c, 0x8f420218, 0x30420040,
+0x10400004, 0x0, 0x8f82011c, 0x34420004,
+0xaf82011c, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffe0, 0xafbf0018, 0x8f820104, 0xafa20010,
+0x8f820100, 0x3c050002, 0xafa20014, 0x8f8600b0,
+0x8f87011c, 0x3c040001, 0x248454c0, 0xc002403,
+0x34a5f000, 0x8f8300b0, 0x3c027f00, 0x621824,
+0x3c020400, 0x10620029, 0x43102b, 0x14400008,
+0x3c022000, 0x3c020100, 0x10620024, 0x3c020200,
+0x10620011, 0x0, 0x8002374, 0x0,
+0x10620008, 0x3c024000, 0x1462001c, 0x0,
+0x8ee20190, 0x24420001, 0xaee20190, 0x8002374,
+0x8ee20190, 0x8ee2018c, 0x24420001, 0xaee2018c,
+0x8002374, 0x8ee2018c, 0x8f82011c, 0x34420002,
+0xaf82011c, 0x8f830104, 0x8f8200b0, 0x34420001,
+0xaf8200b0, 0xaf830104, 0x8f82011c, 0x2403fffd,
+0x431024, 0xaf82011c, 0x8ee201a0, 0x24420001,
+0xaee201a0, 0x8002377, 0x8ee201a0, 0x8f8200b0,
+0x34420001, 0xaf8200b0, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x27bdffe0, 0xafbf001c, 0xafb00018,
+0x8f820120, 0xafa20010, 0x8f820124, 0x3c050001,
+0xafa20014, 0x8f8600a0, 0x8f87011c, 0x3c040001,
+0x248454cc, 0xc002403, 0x34a5f000, 0x8f8300a0,
+0x3c027f00, 0x621824, 0x3c020400, 0x10620053,
+0x8021, 0x43102b, 0x14400008, 0x3c042000,
+0x3c020100, 0x1062004d, 0x3c020200, 0x1062003a,
+0x0, 0x80023e0, 0x0, 0x10640003,
+0x3c024000, 0x14620045, 0x0, 0x8f8200a0,
+0x441024, 0x10400006, 0x0, 0x8ee20194,
+0x24420001, 0xaee20194, 0x80023a9, 0x8ee20194,
+0x8ee20198, 0x24420001, 0xaee20198, 0x8ee20198,
+0x8f82011c, 0x34420002, 0xaf82011c, 0x8f82011c,
+0x30420200, 0x1040001b, 0x0, 0x8f8300a0,
+0x8f840124, 0x8f8200ac, 0x14400007, 0x24020001,
+0x3c020001, 0x3442f000, 0x621024, 0x50400001,
+0x24100001, 0x24020001, 0x1200000d, 0xaf8200a0,
+0x8f820124, 0x2442ffe0, 0xaf820124, 0x8f820124,
+0x8f820124, 0x27633000, 0x43102b, 0x10400005,
+0x276237e0, 0xaf820124, 0x80023ca, 0x0,
+0xaf840124, 0x8f82011c, 0x2403fffd, 0x431024,
+0x80023e3, 0xaf82011c, 0x8f82011c, 0x34420002,
+0xaf82011c, 0x8f830124, 0x8f8200a0, 0x34420001,
+0xaf8200a0, 0xaf830124, 0x8f82011c, 0x2403fffd,
+0x431024, 0xaf82011c, 0x8ee2019c, 0x24420001,
+0xaee2019c, 0x80023e3, 0x8ee2019c, 0x8f8200a0,
+0x34420001, 0xaf8200a0, 0x8fbf001c, 0x8fb00018,
+0x3e00008, 0x27bd0020, 0x0, 0x3c020001,
+0x8c425c58, 0x27bdffe8, 0xafbf0014, 0x14400012,
+0xafb00010, 0x3c100001, 0x26105dd0, 0x2002021,
+0xc002488, 0x24052000, 0x26021fe0, 0x3c010001,
+0xac225d94, 0x3c010001, 0xac225d90, 0xaf420250,
+0x24022000, 0xaf500254, 0xaf420258, 0x24020001,
+0x3c010001, 0xac225c58, 0x8fbf0014, 0x8fb00010,
+0x3e00008, 0x27bd0018, 0x3c030001, 0x8c635d94,
+0x8c820000, 0x8fa80010, 0x8fa90014, 0xac620000,
+0x3c020001, 0x8c425d94, 0x8c830004, 0xac430004,
+0xac450008, 0x8f840054, 0x2443ffe0, 0xac460010,
+0xac470014, 0xac480018, 0xac49001c, 0x3c010001,
+0xac235d94, 0xac44000c, 0x3c020001, 0x24425dd0,
+0x62182b, 0x10600005, 0x0, 0x3c020001,
+0x8c425d90, 0x3c010001, 0xac225d94, 0x3c030001,
+0x8c635d94, 0x3c020001, 0x8c425c40, 0xac620000,
+0x3c030001, 0x8c635d94, 0x3c020001, 0x8c425c40,
+0xac620004, 0x3e00008, 0xaf430250, 0x3c030001,
+0x8c635d94, 0x3c020001, 0x8c425c40, 0x27bdffd0,
+0xafb40020, 0x8fb40040, 0xafb00010, 0x808021,
+0xafb50024, 0x8fb50044, 0x8fa40048, 0xafb10014,
+0xa08821, 0xafbf0028, 0xafb3001c, 0xafb20018,
+0xac620000, 0x3c050001, 0x8ca55d94, 0x3c020001,
+0x8c425c40, 0xc09021, 0xe09821, 0x10800006,
+0xaca20004, 0x24a50008, 0xc002490, 0x24060018,
+0x800244e, 0x0, 0x24a40008, 0xc002488,
+0x24050018, 0x3c020001, 0x8c425d94, 0x3c050001,
+0x24a55dd0, 0x2442ffe0, 0x3c010001, 0xac225d94,
+0x45102b, 0x10400005, 0x0, 0x3c020001,
+0x8c425d90, 0x3c010001, 0xac225d94, 0x3c030001,
+0x8c635d94, 0x8e020000, 0xac620000, 0x3c030001,
+0x8c635d94, 0x8e020004, 0xac620004, 0xac710008,
+0x8f840054, 0x2462ffe0, 0x3c010001, 0xac225d94,
+0x45102b, 0xac720010, 0xac730014, 0xac740018,
+0xac75001c, 0x10400005, 0xac64000c, 0x3c020001,
+0x8c425d90, 0x3c010001, 0xac225d94, 0x3c030001,
+0x8c635d94, 0x3c020001, 0x8c425c40, 0xac620000,
+0x3c030001, 0x8c635d94, 0x3c020001, 0x8c425c40,
+0xac620004, 0xaf430250, 0x8fbf0028, 0x8fb50024,
+0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0030, 0x10a00005,
+0x0, 0xac800000, 0x24a5fffc, 0x14a0fffd,
+0x24840004, 0x3e00008, 0x0, 0x10c00007,
+0x0, 0x8c820000, 0x24840004, 0x24c6fffc,
+0xaca20000, 0x14c0fffb, 0x24a50004, 0x3e00008,
+0x0, 0x10c00007, 0x0, 0x8ca20000,
+0x24a50004, 0x24c6fffc, 0xac820000, 0x14c0fffb,
+0x24840004, 0x3e00008, 0x0, 0x3e00008,
+0x0, 0x27bdffd8, 0xafbf0020, 0x8ee304e4,
+0x8ee204e0, 0x10620436, 0x0, 0x8ee204e4,
+0x8ee304fc, 0x21100, 0x626021, 0x95870008,
+0x8d8a0000, 0x8d8b0004, 0x958d000a, 0x8ee2725c,
+0x8ee3726c, 0x30e4ffff, 0x441021, 0x62182b,
+0x10600015, 0x31a20004, 0x8f8200d8, 0x8ee37258,
+0x431023, 0xaee2726c, 0x8ee2726c, 0x1c400003,
+0x3c030001, 0x431021, 0xaee2726c, 0x8ee2725c,
+0x8ee3726c, 0x441021, 0x62182b, 0x10600006,
+0x31a20004, 0x8ee201b8, 0x24420001, 0xaee201b8,
+0x80028e1, 0x8ee201b8, 0x10400240, 0x31a20200,
+0x1040014d, 0x4821, 0x96e2045a, 0x30420010,
+0x10400149, 0x0, 0x8f840100, 0x27623000,
+0x24850020, 0xa2102b, 0x50400001, 0x27652800,
+0x8f820108, 0x10a20004, 0x0, 0x8f820104,
+0x14a20006, 0x2402000c, 0x8ee201a8, 0x24420001,
+0xaee201a8, 0x800252c, 0x8ee201a8, 0xac8a0000,
+0xac8b0004, 0x8ee37264, 0x24060005, 0xa482000e,
+0xac860018, 0xac830008, 0x8ee204e4, 0xac82001c,
+0x8ee204c8, 0xac820010, 0xaf850100, 0x92e204ec,
+0x14400036, 0x24090001, 0x8ee24e28, 0x210c0,
+0x24424e38, 0x2e22021, 0x8c820000, 0x1446001f,
+0x0, 0x8ee34e28, 0x8ee24e2c, 0x1062001b,
+0x24030040, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e2c, 0x8ee54e28, 0x24420001, 0x10430007,
+0x0, 0x8ee24e2c, 0x24420001, 0x10a20005,
+0x0, 0x8002516, 0x0, 0x14a00005,
+0x0, 0x8f820108, 0x24420020, 0xaf820108,
+0x8f820108, 0x8c820004, 0x2c420011, 0x50400013,
+0xac800000, 0x800252c, 0x0, 0x8ee24e28,
+0x24030040, 0x24420001, 0x50430003, 0x1021,
+0x8ee24e28, 0x24420001, 0xaee24e28, 0x8ee24e28,
+0x210c0, 0x24424e38, 0x2e22021, 0x24020005,
+0xac820000, 0x24020001, 0xac820004, 0x1520000a,
+0x3c040001, 0xafab0010, 0x8ee27264, 0x3c040001,
+0x24845730, 0x3c050004, 0xafa20014, 0x8ee604e4,
+0x80028be, 0x34a5f114, 0x8ee27264, 0x34843800,
+0x3641821, 0x24420010, 0x43102b, 0x14400073,
+0x0, 0x8ee27264, 0x24480010, 0x3641021,
+0x102102b, 0x14400002, 0x3c02ffff, 0x1024021,
+0x8f850100, 0x27623000, 0x24a60020, 0xc2102b,
+0x50400001, 0x27662800, 0x8f820108, 0x10c20004,
+0x0, 0x8f820104, 0x14c20007, 0x2563000c,
+0x8ee201a8, 0x4821, 0x24420001, 0xaee201a8,
+0x80025a0, 0x8ee201a8, 0x2c64000c, 0x1441021,
+0xaca20000, 0xaca30004, 0x24e2fff4, 0xa4a2000e,
+0x24020006, 0xaca80008, 0xaca20018, 0x8ee204e4,
+0xaca2001c, 0x8ee204c8, 0x3c030002, 0x431025,
+0xaca20010, 0xaf860100, 0x92e204ec, 0x14400037,
+0x24090001, 0x8ee24e28, 0x210c0, 0x24424e38,
+0x2e22021, 0x8c830000, 0x24020005, 0x1462001f,
+0x0, 0x8ee34e28, 0x8ee24e2c, 0x1062001b,
+0x24030040, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e2c, 0x8ee54e28, 0x24420001, 0x10430007,
+0x0, 0x8ee24e2c, 0x24420001, 0x10a20005,
+0x0, 0x800258a, 0x0, 0x14a00005,
+0x0, 0x8f820108, 0x24420020, 0xaf820108,
+0x8f820108, 0x8c820004, 0x2c420011, 0x50400013,
+0xac800000, 0x80025a0, 0x0, 0x8ee24e28,
+0x24030040, 0x24420001, 0x50430003, 0x1021,
+0x8ee24e28, 0x24420001, 0xaee24e28, 0x8ee24e28,
+0x210c0, 0x24424e38, 0x2e22021, 0x24020005,
+0xac820000, 0x24020001, 0xac820004, 0x1520000a,
+0x2508fffc, 0xafab0010, 0x8ee27264, 0x3c040001,
+0x24845730, 0x3c050004, 0xafa20014, 0x8ee604e4,
+0x80028be, 0x34a5f125, 0x34028100, 0xa5020000,
+0x9582000e, 0x800261d, 0xa5020002, 0x8f850100,
+0x27623000, 0x24a60020, 0xc2102b, 0x50400001,
+0x27662800, 0x8f820108, 0x10c20004, 0x0,
+0x8f820104, 0x14c20007, 0x2563000c, 0x8ee201a8,
+0x4821, 0x24420001, 0xaee201a8, 0x800260d,
+0x8ee201a8, 0x2c64000c, 0x1441021, 0xaca20000,
+0xaca30004, 0x8ee37264, 0x24e2fff4, 0xa4a2000e,
+0x24020006, 0xaca20018, 0x24630010, 0xaca30008,
+0x8ee204e4, 0xaca2001c, 0x8ee204c8, 0x3c030002,
+0x431025, 0xaca20010, 0xaf860100, 0x92e204ec,
+0x14400037, 0x24090001, 0x8ee24e28, 0x210c0,
+0x24424e38, 0x2e22021, 0x8c830000, 0x24020005,
+0x1462001f, 0x0, 0x8ee34e28, 0x8ee24e2c,
+0x1062001b, 0x24030040, 0x8c820004, 0x24420001,
+0xac820004, 0x8ee24e2c, 0x8ee54e28, 0x24420001,
+0x10430007, 0x0, 0x8ee24e2c, 0x24420001,
+0x10a20005, 0x0, 0x80025f7, 0x0,
+0x14a00005, 0x0, 0x8f820108, 0x24420020,
+0xaf820108, 0x8f820108, 0x8c820004, 0x2c420011,
+0x50400013, 0xac800000, 0x800260d, 0x0,
+0x8ee24e28, 0x24030040, 0x24420001, 0x50430003,
+0x1021, 0x8ee24e28, 0x24420001, 0xaee24e28,
+0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021,
+0x24020005, 0xac820000, 0x24020001, 0xac820004,
+0x1520000a, 0x34028100, 0xafab0010, 0x8ee27264,
+0x3c040001, 0x24845730, 0x3c050004, 0xafa20014,
+0x8ee604e4, 0x80028be, 0x34a5f015, 0x8ee37264,
+0xa462000c, 0x8ee37264, 0x9582000e, 0xa462000e,
+0x8002681, 0x24e70004, 0x8f840100, 0x27623000,
+0x24850020, 0xa2102b, 0x50400001, 0x27652800,
+0x8f820108, 0x10a20004, 0x0, 0x8f820104,
+0x14a20007, 0x24020006, 0x8ee201a8, 0x4821,
+0x24420001, 0xaee201a8, 0x8002677, 0x8ee201a8,
+0xac8a0000, 0xac8b0004, 0x8ee37264, 0xa487000e,
+0xac820018, 0xac830008, 0x8ee204e4, 0xac82001c,
+0x8ee204c8, 0x3c030002, 0x431025, 0xac820010,
+0xaf850100, 0x92e204ec, 0x14400037, 0x24090001,
+0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021,
+0x8c830000, 0x24020005, 0x1462001f, 0x0,
+0x8ee34e28, 0x8ee24e2c, 0x1062001b, 0x24030040,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e2c,
+0x8ee54e28, 0x24420001, 0x10430007, 0x0,
+0x8ee24e2c, 0x24420001, 0x10a20005, 0x0,
+0x8002661, 0x0, 0x14a00005, 0x0,
+0x8f820108, 0x24420020, 0xaf820108, 0x8f820108,
+0x8c820004, 0x2c420011, 0x50400013, 0xac800000,
+0x8002677, 0x0, 0x8ee24e28, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee24e28,
+0x24420001, 0xaee24e28, 0x8ee24e28, 0x210c0,
+0x24424e38, 0x2e22021, 0x24020005, 0xac820000,
+0x24020001, 0xac820004, 0x15200009, 0x3c050004,
+0xafab0010, 0x8ee27264, 0x3c040001, 0x24845730,
+0xafa20014, 0x8ee604e4, 0x80028be, 0x34a5f004,
+0x8ee2725c, 0x30e7ffff, 0x471021, 0xaee2725c,
+0x8ee204e4, 0x8ee304fc, 0x8ee47258, 0x21100,
+0x431021, 0xac44000c, 0x8ee27258, 0xafa20018,
+0x8ee3725c, 0xafa3001c, 0x8ee2725c, 0x2c42003c,
+0x10400004, 0x24620001, 0x2403fffe, 0x431024,
+0xafa2001c, 0x8ee27264, 0x3c060001, 0x34c63800,
+0x8ee3725c, 0x2405fff8, 0x471021, 0x24420007,
+0x451024, 0x24630007, 0xaee27258, 0x8ee2726c,
+0x8ee47258, 0x651824, 0x431023, 0xaee2726c,
+0x3661021, 0x82202b, 0x14800004, 0x3c03ffff,
+0x8ee27258, 0x431021, 0xaee27258, 0x8ee27258,
+0xaee27264, 0x8f8200f0, 0x24470008, 0x27621800,
+0xe2102b, 0x50400001, 0x27671000, 0x8f8200f4,
+0x14e20007, 0x0, 0x8ee201b4, 0x4821,
+0x24420001, 0xaee201b4, 0x80026c4, 0x8ee201b4,
+0x8f8200f0, 0x24090001, 0x8fa30018, 0x8fa4001c,
+0xac430000, 0xac440004, 0xaf8700f0, 0x15200012,
+0xd1142, 0x8f8200f0, 0xafa20010, 0x8f8200f4,
+0x3c040001, 0x2484573c, 0xafa20014, 0x8fa60018,
+0x8fa7001c, 0x3c050004, 0xc002403, 0x34a5f005,
+0x8ee20088, 0x24420001, 0xaee20088, 0x8ee20088,
+0x80028d3, 0xaee0725c, 0x30430003, 0x24020002,
+0x10620016, 0x28620003, 0x10400005, 0x24020001,
+0x10620008, 0x0, 0x8002703, 0x0,
+0x24020003, 0x10620017, 0x0, 0x8002703,
+0x0, 0x8ee200e8, 0x8ee300ec, 0x24630001,
+0x2c640001, 0x441021, 0xaee200e8, 0xaee300ec,
+0x8ee200e8, 0x8002703, 0x8ee300ec, 0x8ee200f0,
+0x8ee300f4, 0x24630001, 0x2c640001, 0x441021,
+0xaee200f0, 0xaee300f4, 0x8ee200f0, 0x8002703,
+0x8ee300f4, 0x8ee200f8, 0x8ee300fc, 0x24630001,
+0x2c640001, 0x441021, 0xaee200f8, 0xaee300fc,
+0x8ee200f8, 0x8ee300fc, 0x8ee2725c, 0x8ee400e0,
+0x8ee500e4, 0x401821, 0x1021, 0xa32821,
+0xa3302b, 0x822021, 0x862021, 0xaee400e0,
+0xaee500e4, 0x80028d3, 0xaee0725c, 0x30e2ffff,
+0x104001c1, 0x31a20200, 0x1040014d, 0x4821,
+0x96e2045a, 0x30420010, 0x10400149, 0x0,
+0x8f840100, 0x27623000, 0x24850020, 0xa2102b,
+0x50400001, 0x27652800, 0x8f820108, 0x10a20004,
+0x0, 0x8f820104, 0x14a20006, 0x2402000c,
+0x8ee201a8, 0x24420001, 0xaee201a8, 0x800276e,
+0x8ee201a8, 0xac8a0000, 0xac8b0004, 0x8ee37264,
+0x24060005, 0xa482000e, 0xac860018, 0xac830008,
+0x8ee204e4, 0xac82001c, 0x8ee204c8, 0xac820010,
+0xaf850100, 0x92e204ec, 0x14400036, 0x24090001,
+0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021,
+0x8c820000, 0x1446001f, 0x0, 0x8ee34e28,
+0x8ee24e2c, 0x1062001b, 0x24030040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e2c, 0x8ee54e28,
+0x24420001, 0x10430007, 0x0, 0x8ee24e2c,
+0x24420001, 0x10a20005, 0x0, 0x8002758,
+0x0, 0x14a00005, 0x0, 0x8f820108,
+0x24420020, 0xaf820108, 0x8f820108, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x800276e,
+0x0, 0x8ee24e28, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e28, 0x24420001,
+0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38,
+0x2e22021, 0x24020005, 0xac820000, 0x24020001,
+0xac820004, 0x1520000a, 0x3c040001, 0xafab0010,
+0x8ee27264, 0x3c040001, 0x24845730, 0x3c050004,
+0xafa20014, 0x8ee604e4, 0x80028be, 0x34a5f014,
+0x8ee27264, 0x34843800, 0x3641821, 0x24420010,
+0x43102b, 0x14400073, 0x0, 0x8ee27264,
+0x24480010, 0x3641021, 0x102102b, 0x14400002,
+0x3c02ffff, 0x1024021, 0x8f850100, 0x27623000,
+0x24a60020, 0xc2102b, 0x50400001, 0x27662800,
+0x8f820108, 0x10c20004, 0x0, 0x8f820104,
+0x14c20007, 0x2563000c, 0x8ee201a8, 0x4821,
+0x24420001, 0xaee201a8, 0x80027e2, 0x8ee201a8,
+0x2c64000c, 0x1441021, 0xaca20000, 0xaca30004,
+0x24e2fff4, 0xa4a2000e, 0x24020006, 0xaca80008,
+0xaca20018, 0x8ee204e4, 0xaca2001c, 0x8ee204c8,
+0x3c030002, 0x431025, 0xaca20010, 0xaf860100,
+0x92e204ec, 0x14400037, 0x24090001, 0x8ee24e28,
+0x210c0, 0x24424e38, 0x2e22021, 0x8c830000,
+0x24020005, 0x1462001f, 0x0, 0x8ee34e28,
+0x8ee24e2c, 0x1062001b, 0x24030040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e2c, 0x8ee54e28,
+0x24420001, 0x10430007, 0x0, 0x8ee24e2c,
+0x24420001, 0x10a20005, 0x0, 0x80027cc,
+0x0, 0x14a00005, 0x0, 0x8f820108,
+0x24420020, 0xaf820108, 0x8f820108, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x80027e2,
+0x0, 0x8ee24e28, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e28, 0x24420001,
+0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38,
+0x2e22021, 0x24020005, 0xac820000, 0x24020001,
+0xac820004, 0x1520000a, 0x2508fffc, 0xafab0010,
+0x8ee27264, 0x3c040001, 0x24845730, 0x3c050004,
+0xafa20014, 0x8ee604e4, 0x80028be, 0x34a5f015,
+0x34028100, 0xa5020000, 0x9582000e, 0x800285f,
+0xa5020002, 0x8f850100, 0x27623000, 0x24a60020,
+0xc2102b, 0x50400001, 0x27662800, 0x8f820108,
+0x10c20004, 0x0, 0x8f820104, 0x14c20007,
+0x2563000c, 0x8ee201a8, 0x4821, 0x24420001,
+0xaee201a8, 0x800284f, 0x8ee201a8, 0x2c64000c,
+0x1441021, 0xaca20000, 0xaca30004, 0x8ee37264,
+0x24e2fff4, 0xa4a2000e, 0x24020006, 0xaca20018,
+0x24630010, 0xaca30008, 0x8ee204e4, 0xaca2001c,
+0x8ee204c8, 0x3c030002, 0x431025, 0xaca20010,
+0xaf860100, 0x92e204ec, 0x14400037, 0x24090001,
+0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021,
+0x8c830000, 0x24020005, 0x1462001f, 0x0,
+0x8ee34e28, 0x8ee24e2c, 0x1062001b, 0x24030040,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e2c,
+0x8ee54e28, 0x24420001, 0x10430007, 0x0,
+0x8ee24e2c, 0x24420001, 0x10a20005, 0x0,
+0x8002839, 0x0, 0x14a00005, 0x0,
+0x8f820108, 0x24420020, 0xaf820108, 0x8f820108,
+0x8c820004, 0x2c420011, 0x50400013, 0xac800000,
+0x800284f, 0x0, 0x8ee24e28, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee24e28,
+0x24420001, 0xaee24e28, 0x8ee24e28, 0x210c0,
+0x24424e38, 0x2e22021, 0x24020005, 0xac820000,
+0x24020001, 0xac820004, 0x1520000a, 0x34028100,
+0xafab0010, 0x8ee27264, 0x3c040001, 0x24845730,
+0x3c050004, 0xafa20014, 0x8ee604e4, 0x80028be,
+0x34a5f016, 0x8ee37264, 0xa462000c, 0x8ee37264,
+0x9582000e, 0xa462000e, 0x80028c2, 0x24e70004,
+0x8f830100, 0x27623000, 0x24640020, 0x82102b,
+0x50400001, 0x27642800, 0x8f820108, 0x10820004,
+0x0, 0x8f820104, 0x14820007, 0x24050005,
+0x8ee201a8, 0x4821, 0x24420001, 0xaee201a8,
+0x80028b6, 0x8ee201a8, 0xac6a0000, 0xac6b0004,
+0x8ee27264, 0xa467000e, 0xac650018, 0xac620008,
+0x8ee204e4, 0xac62001c, 0x8ee204c8, 0xac620010,
+0xaf840100, 0x92e204ec, 0x14400036, 0x24090001,
+0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021,
+0x8c820000, 0x1445001f, 0x0, 0x8ee34e28,
+0x8ee24e2c, 0x1062001b, 0x24030040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e2c, 0x8ee54e28,
+0x24420001, 0x10430007, 0x0, 0x8ee24e2c,
+0x24420001, 0x10a20005, 0x0, 0x80028a0,
+0x0, 0x14a00005, 0x0, 0x8f820108,
+0x24420020, 0xaf820108, 0x8f820108, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x80028b6,
+0x0, 0x8ee24e28, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e28, 0x24420001,
+0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38,
+0x2e22021, 0x24020005, 0xac820000, 0x24020001,
+0xac820004, 0x1520000b, 0x3c050004, 0x3c040001,
+0x24845748, 0xafab0010, 0xafa00014, 0x8ee604e4,
+0x34a5f017, 0xc002403, 0x30e7ffff, 0x80028e1,
+0x0, 0x8ee27264, 0x3c050001, 0x30e4ffff,
+0x441021, 0xaee27264, 0x8ee2725c, 0x8ee37264,
+0x34a53800, 0x441021, 0xaee2725c, 0x3651021,
+0x62182b, 0x14600004, 0x3c03ffff, 0x8ee27264,
+0x431021, 0xaee27264, 0x8ee304e4, 0x96e20458,
+0x24630001, 0x2442ffff, 0x621824, 0xaee304e4,
+0x8ee304e4, 0x8ee204e0, 0x14620005, 0x0,
+0x8f820060, 0x2403fff7, 0x431024, 0xaf820060,
+0x8fbf0020, 0x3e00008, 0x27bd0028, 0x27bdffe0,
+0xafbf0018, 0x8ee304e8, 0x8ee204e0, 0x10620189,
+0x0, 0x8ee204e8, 0x8ee304fc, 0x21100,
+0x621821, 0x94670008, 0x92e204ed, 0x8c680000,
+0x8c690004, 0x10400023, 0x946a000a, 0x8ee204c8,
+0x34460400, 0x31420200, 0x1040001f, 0x0,
+0x96e2045a, 0x30420010, 0x1040001b, 0x3c028000,
+0x3c010001, 0x370821, 0xac2283d8, 0x8ee27264,
+0x9464000e, 0x3c050001, 0x34a53800, 0x24420004,
+0xaee27264, 0x8ee37264, 0x42400, 0x3651021,
+0x3c010001, 0x370821, 0xac2483dc, 0x62182b,
+0x14600005, 0x24e70004, 0x8ee27264, 0x3c03ffff,
+0x431021, 0xaee27264, 0x8ee27264, 0x8002917,
+0xaee27258, 0x8ee604c8, 0x8ee2726c, 0x30e4ffff,
+0x44102a, 0x10400015, 0x0, 0x8f8200d8,
+0x8ee37258, 0x431023, 0xaee2726c, 0x8ee2726c,
+0x1c400007, 0x44102a, 0x8ee2726c, 0x3c030001,
+0x431021, 0xaee2726c, 0x8ee2726c, 0x44102a,
+0x10400006, 0x0, 0x8ee201b8, 0x24420001,
+0xaee201b8, 0x8002a72, 0x8ee201b8, 0x3c020001,
+0x571021, 0x8c4283d8, 0x54400001, 0x24e7fffc,
+0x31420004, 0x104000b9, 0x30e2ffff, 0x3c020001,
+0x571021, 0x8c4283d8, 0x1040002f, 0x5021,
+0x8f840100, 0x27623000, 0x24850020, 0xa2102b,
+0x50400001, 0x27652800, 0x8f820108, 0x10a20032,
+0x0, 0x8f820104, 0x10a2002f, 0x24020015,
+0xac880000, 0xac890004, 0x8ee37264, 0xa487000e,
+0xac820018, 0xac830008, 0x8ee204e8, 0x3c030001,
+0x771821, 0x8c6383dc, 0xac860010, 0x431025,
+0xac82001c, 0xaf850100, 0x92e204ec, 0x14400066,
+0x240a0001, 0x8ee24e28, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e28, 0x24420001,
+0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38,
+0x2e21821, 0x24020015, 0xac620000, 0x24020001,
+0x80029bf, 0xac620004, 0x8f840100, 0x27623000,
+0x24850020, 0xa2102b, 0x50400001, 0x27652800,
+0x8f820108, 0x10a20004, 0x0, 0x8f820104,
+0x14a20006, 0x24020006, 0x8ee201a8, 0x24420001,
+0xaee201a8, 0x80029bf, 0x8ee201a8, 0xac880000,
+0xac890004, 0x8ee37264, 0xa487000e, 0xac820018,
+0xac830008, 0x8ee204e8, 0xac860010, 0xac82001c,
+0xaf850100, 0x92e204ec, 0x14400037, 0x240a0001,
+0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021,
+0x8c830000, 0x24020005, 0x1462001f, 0x0,
+0x8ee34e28, 0x8ee24e2c, 0x1062001b, 0x24030040,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e2c,
+0x8ee54e28, 0x24420001, 0x10430007, 0x0,
+0x8ee24e2c, 0x24420001, 0x10a20005, 0x0,
+0x80029a9, 0x0, 0x14a00005, 0x0,
+0x8f820108, 0x24420020, 0xaf820108, 0x8f820108,
+0x8c820004, 0x2c420011, 0x50400013, 0xac800000,
+0x80029bf, 0x0, 0x8ee24e28, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee24e28,
+0x24420001, 0xaee24e28, 0x8ee24e28, 0x210c0,
+0x24424e38, 0x2e22021, 0x24020005, 0xac820000,
+0x24020001, 0xac820004, 0x1540000a, 0x24020001,
+0xafa90010, 0x8ee27264, 0x3c040001, 0x24845730,
+0x3c050004, 0xafa20014, 0x8ee604e4, 0x8002a4f,
+0x34a5f204, 0xa2e204ed, 0x8ee204e8, 0x8ee304fc,
+0x8ee47258, 0x3c060001, 0x34c63800, 0x3c010001,
+0x370821, 0xac2083d8, 0x3c010001, 0x370821,
+0xac2083dc, 0x21100, 0x431021, 0xac44000c,
+0x8ee27264, 0x2405fff8, 0x30e3ffff, 0x431021,
+0x24420007, 0x451024, 0x24630007, 0xaee27258,
+0x8ee2726c, 0x8ee47258, 0x651824, 0x431023,
+0xaee2726c, 0x3661021, 0x82202b, 0x14800004,
+0x3c03ffff, 0x8ee27258, 0x431021, 0xaee27258,
+0x8ee27258, 0x8002a64, 0xaee27264, 0x10400073,
+0x0, 0x8f830100, 0x27623000, 0x24640020,
+0x82102b, 0x14400002, 0x5021, 0x27642800,
+0x8f820108, 0x10820004, 0x0, 0x8f820104,
+0x14820006, 0x24050005, 0x8ee201a8, 0x24420001,
+0xaee201a8, 0x8002a46, 0x8ee201a8, 0xac680000,
+0xac690004, 0x8ee27264, 0xa467000e, 0xac650018,
+0xac620008, 0x8ee204e8, 0xac660010, 0xac62001c,
+0xaf840100, 0x92e204ec, 0x14400036, 0x240a0001,
+0x8ee24e28, 0x210c0, 0x24424e38, 0x2e22021,
+0x8c820000, 0x1445001f, 0x0, 0x8ee34e28,
+0x8ee24e2c, 0x1062001b, 0x24030040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e2c, 0x8ee54e28,
+0x24420001, 0x10430007, 0x0, 0x8ee24e2c,
+0x24420001, 0x10a20005, 0x0, 0x8002a30,
+0x0, 0x14a00005, 0x0, 0x8f820108,
+0x24420020, 0xaf820108, 0x8f820108, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x8002a46,
+0x0, 0x8ee24e28, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e28, 0x24420001,
+0xaee24e28, 0x8ee24e28, 0x210c0, 0x24424e38,
+0x2e22021, 0x24020005, 0xac820000, 0x24020001,
+0xac820004, 0x1540000c, 0x30e5ffff, 0x3c040001,
+0x24845748, 0x3c050004, 0xafa90010, 0xafa00014,
+0x8ee604e4, 0x34a5f237, 0xc002403, 0x30e7ffff,
+0x8002a72, 0x0, 0x8ee27264, 0x451021,
+0xaee27264, 0x8ee2726c, 0x8ee37264, 0x3c040001,
+0x34843800, 0xa2e004ed, 0x451023, 0xaee2726c,
+0x3641021, 0x62182b, 0x14600004, 0x3c03ffff,
+0x8ee27264, 0x431021, 0xaee27264, 0x8ee304e8,
+0x96e20458, 0x24630001, 0x2442ffff, 0x621824,
+0xaee304e8, 0x8ee304e8, 0x8ee204e0, 0x14620005,
+0x0, 0x8f820060, 0x2403fff7, 0x431024,
+0xaf820060, 0x8fbf0018, 0x3e00008, 0x27bd0020,
+0x27bdffe0, 0xafbf001c, 0xafb00018, 0x8f820100,
+0x8ee34e2c, 0x8f820104, 0x8f850108, 0x24020040,
+0x24630001, 0x50620003, 0x1021, 0x8ee24e2c,
+0x24420001, 0xaee24e2c, 0x8ee24e2c, 0x8ee34e2c,
+0x210c0, 0x24424e38, 0x2e22021, 0x8ee24e28,
+0x8c870004, 0x14620007, 0xa03021, 0x8f820108,
+0x24420020, 0xaf820108, 0x8f820108, 0x8002aa2,
+0xac800000, 0x8ee24e2c, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e2c, 0x24420001,
+0x210c0, 0x24424e38, 0x2e22021, 0x8c820004,
+0x8f830108, 0x21140, 0x621821, 0xaf830108,
+0xac800000, 0x8cc20018, 0x2443fffe, 0x2c620013,
+0x104000c1, 0x31080, 0x3c010001, 0x220821,
+0x8c225770, 0x400008, 0x0, 0x8ee204f0,
+0x471021, 0xaee204f0, 0x8ee204f0, 0x8f43023c,
+0x43102b, 0x144000be, 0x0, 0x8ee304e4,
+0x8ee204f8, 0x506200ba, 0xa2e004f4, 0x8f830120,
+0x27623800, 0x24660020, 0xc2102b, 0x50400001,
+0x27663000, 0x8f820128, 0x10c20004, 0x0,
+0x8f820124, 0x14c20007, 0x0, 0x8ee201a4,
+0x8021, 0x24420001, 0xaee201a4, 0x8002b12,
+0x8ee201a4, 0x8ee204e4, 0xac62001c, 0x8ee404b0,
+0x8ee504b4, 0x2462001c, 0xac620008, 0x24020008,
+0xa462000e, 0x24020011, 0xac620018, 0xac640000,
+0xac650004, 0x8ee204c4, 0xac620010, 0xaf860120,
+0x92e24e20, 0x14400037, 0x24100001, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c830000,
+0x24020012, 0x1462001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x24030040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee54e30,
+0x24420001, 0x10430007, 0x0, 0x8ee24e34,
+0x24420001, 0x10a20005, 0x0, 0x8002afc,
+0x0, 0x14a00005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x8002b12,
+0x0, 0x8ee24e30, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x24020012, 0xac820000, 0x24020001,
+0xac820004, 0x5600000b, 0x24100001, 0x8ee204e4,
+0x3c040001, 0x24845754, 0xafa00014, 0xafa20010,
+0x8ee60608, 0x8f470228, 0x3c050009, 0xc002403,
+0x34a5f006, 0x16000003, 0x24020001, 0x8002b71,
+0xa2e204f4, 0x8ee20170, 0x24420001, 0xaee20170,
+0x8ee20170, 0x8ee204e4, 0xa2e004f4, 0xaee004f0,
+0xaee204f8, 0x8f42023c, 0x50400045, 0xaee07274,
+0x8ee20184, 0x24420001, 0xaee20184, 0x8ee20184,
+0x8002b71, 0xaee07274, 0x8ee20504, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee20504,
+0x24420001, 0xaee20504, 0x8ee20504, 0x8cc30018,
+0x21080, 0x571021, 0x8c440508, 0x24020003,
+0x1462000f, 0x0, 0x3c020001, 0x571021,
+0x904283b1, 0x10400014, 0x0, 0x8ee201d0,
+0x8ee35240, 0x441021, 0xaee201d0, 0x8ee201d8,
+0x641821, 0x306300ff, 0x8002b59, 0xaee35240,
+0x8ee201cc, 0x8ee30e10, 0x441021, 0xaee201cc,
+0x8ee201d8, 0x641821, 0x306301ff, 0xaee30e10,
+0x441021, 0xaee201d8, 0x8ee20000, 0x34420040,
+0x8002b71, 0xaee20000, 0x8ee2014c, 0x3c010001,
+0x370821, 0xa02083e0, 0x24420001, 0xaee2014c,
+0x8002b71, 0x8ee2014c, 0x94c7000e, 0x8cc2001c,
+0x3c040001, 0x24845760, 0xafa60014, 0xafa20010,
+0x8cc60018, 0x3c050008, 0xc002403, 0x34a50910,
+0x8fbf001c, 0x8fb00018, 0x3e00008, 0x27bd0020,
+0x27bdff98, 0xafbf0060, 0xafbe005c, 0xafb60058,
+0xafb50054, 0xafb40050, 0xafb3004c, 0xafb20048,
+0xafb10044, 0xafb00040, 0x8f830108, 0x8f820104,
+0xafa00024, 0x106203e7, 0xafa0002c, 0x3c1e0001,
+0x37de3800, 0x3c0bffff, 0x8f930108, 0x8e620018,
+0x8f830104, 0x2443fffe, 0x2c620014, 0x104003cf,
+0x31080, 0x3c010001, 0x220821, 0x8c2257c0,
+0x400008, 0x0, 0x9663000e, 0x8ee2725c,
+0x8ee404f0, 0x431021, 0xaee2725c, 0x8e63001c,
+0x96e20458, 0x24840001, 0xaee404f0, 0x24630001,
+0x2442ffff, 0x621824, 0xaee304e4, 0x8f42023c,
+0x82202b, 0x148003b9, 0x0, 0x8f830120,
+0x27623800, 0x24660020, 0xc2102b, 0x50400001,
+0x27663000, 0x8f820128, 0x10c20004, 0x0,
+0x8f820124, 0x14c20007, 0x0, 0x8ee201a4,
+0x8021, 0x24420001, 0xaee201a4, 0x8002bfe,
+0x8ee201a4, 0x8ee204e4, 0xac62001c, 0x8ee404b0,
+0x8ee504b4, 0x2462001c, 0xac620008, 0x24020008,
+0xa462000e, 0x24020011, 0xac620018, 0xac640000,
+0xac650004, 0x8ee204c4, 0xac620010, 0xaf860120,
+0x92e24e20, 0x14400037, 0x24100001, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c830000,
+0x24020012, 0x1462001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x240c0040, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x104c0007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x8002be8,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400013, 0xac800000, 0x8002bfe,
+0x0, 0x8ee24e30, 0x240c0040, 0x24420001,
+0x504c0003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x24020012, 0x240c0001, 0xac820000,
+0xac8c0004, 0x5600000d, 0x24100001, 0x8ee204e4,
+0x3c040001, 0x24845754, 0xafa00014, 0xafa20010,
+0x8ee60608, 0x8f470228, 0x3c050009, 0x34a5f006,
+0xc002403, 0xafab0038, 0x8fab0038, 0x1200030a,
+0x240c0001, 0x8002f19, 0x0, 0x966c001c,
+0xafac002c, 0x9662001e, 0x3c0c8000, 0xafac0024,
+0xae62001c, 0x8e75001c, 0x8ee204fc, 0x8ee404fc,
+0x151900, 0x621021, 0x8c52000c, 0x92e27b98,
+0x641821, 0x9476000a, 0x14400003, 0x32c20002,
+0xaef27ba4, 0xaef57b9c, 0x1040004b, 0x8021,
+0x96e2045a, 0x30420002, 0x10400047, 0x0,
+0x8e63001c, 0x8ee204fc, 0x32100, 0x821021,
+0x8c42000c, 0x37e1821, 0x24420022, 0x43102b,
+0x1440000a, 0x24050014, 0x8ee204fc, 0x821021,
+0x8c44000c, 0xafab0038, 0xc002f75, 0x2484000e,
+0x8fab0038, 0x8002c52, 0x3050ffff, 0x8ee204fc,
+0x821021, 0x8c42000c, 0x9450000e, 0x94430010,
+0x94440012, 0x94450014, 0x2038021, 0x2048021,
+0x2058021, 0x94430016, 0x94440018, 0x9445001a,
+0x2038021, 0x2048021, 0x2058021, 0x9443001c,
+0x9444001e, 0x94420020, 0x2038021, 0x2048021,
+0x2028021, 0x101c02, 0x3202ffff, 0x628021,
+0x8e63001c, 0x8ee204fc, 0x102402, 0x32900,
+0xa21021, 0x8c43000c, 0x3202ffff, 0x828021,
+0x37e1021, 0x24630018, 0x62182b, 0x14600009,
+0x0, 0x8ee204fc, 0xa21021, 0x8c43000c,
+0x101027, 0x3c01ffff, 0x230821, 0x8002c6f,
+0xa4220018, 0x8ee204fc, 0xa21021, 0x8c43000c,
+0x101027, 0xa4620018, 0x96e2045a, 0x8821,
+0x30420008, 0x14400063, 0xa021, 0x8e63001c,
+0x8ee204fc, 0x33100, 0xc21021, 0x8c42000c,
+0x37e1821, 0x24420022, 0x43102b, 0x14400035,
+0x0, 0x8ee204fc, 0xc21021, 0x8c42000c,
+0x24470010, 0x37e1021, 0xe2102b, 0x50400001,
+0xeb3821, 0x8ee204fc, 0x94f10000, 0xc21021,
+0x8c42000c, 0x24470016, 0x37e1021, 0xe2102b,
+0x14400002, 0x2634ffec, 0xeb3821, 0x8ee204fc,
+0x90e30001, 0xc21021, 0x8c42000c, 0x2447001a,
+0x37e1021, 0xe2102b, 0x14400002, 0x2838821,
+0xeb3821, 0x94e20000, 0x24e70002, 0x2228821,
+0x37e1021, 0xe2102b, 0x50400001, 0xeb3821,
+0x94e20000, 0x24e70002, 0x2228821, 0x37e1021,
+0xe2102b, 0x50400001, 0xeb3821, 0x94e20000,
+0x24e70002, 0x2228821, 0x37e1021, 0xe2102b,
+0x50400001, 0xeb3821, 0x94e20000, 0x8002cd0,
+0x2228821, 0x8ee204fc, 0xc21021, 0x8c43000c,
+0x8ee204fc, 0x94710010, 0x8ee304fc, 0xc21021,
+0x8c44000c, 0xc31821, 0x8c62000c, 0x2634ffec,
+0x90840017, 0x8ee304fc, 0x9442001a, 0x2848821,
+0xc31821, 0x8c65000c, 0x8ee304fc, 0x2228821,
+0x8ee204fc, 0xc31821, 0xc21021, 0x8c44000c,
+0x8c62000c, 0x94a3001c, 0x9484001e, 0x94420020,
+0x2238821, 0x2248821, 0x2228821, 0x111c02,
+0x3222ffff, 0x628821, 0x111c02, 0x3222ffff,
+0x628821, 0x32c20001, 0x104000b2, 0x0,
+0x96e2045a, 0x30420001, 0x104000ae, 0x32c20080,
+0x10400008, 0x0, 0x92e27b98, 0x14400005,
+0x0, 0x240c0001, 0xa2ec7b98, 0xaef57b9c,
+0xaef27ba4, 0x8ee304fc, 0x151100, 0x431021,
+0x8c47000c, 0x37e1821, 0x24e2000e, 0x43102b,
+0x14400008, 0xe02021, 0x2405000e, 0xc002f75,
+0xafab0038, 0x3042ffff, 0x8fab0038, 0x8002d09,
+0x2028021, 0x94e60000, 0x24e70002, 0x94e50000,
+0x24e70002, 0x94e30000, 0x24e70002, 0x94e20000,
+0x24e70002, 0x94e40000, 0x24e70002, 0x2068021,
+0x2058021, 0x2038021, 0x2028021, 0x94e20000,
+0x94e30002, 0x2048021, 0x2028021, 0x2038021,
+0x101c02, 0x3202ffff, 0x628021, 0x101c02,
+0x3202ffff, 0x8ee47b9c, 0x628021, 0x14950004,
+0x3205ffff, 0x96620016, 0x8002d17, 0x512021,
+0x96620016, 0x542021, 0x41402, 0x3083ffff,
+0x432021, 0x852023, 0x41402, 0x822021,
+0x3084ffff, 0x50800001, 0x3404ffff, 0x8ee27ba4,
+0x24430017, 0x37e1021, 0x62102b, 0x50400001,
+0x6b1821, 0x90630000, 0x24020011, 0x14620031,
+0x24020006, 0x8ee27ba4, 0x37e1821, 0x24420028,
+0x43102b, 0x14400018, 0x0, 0x8ee27b9c,
+0x12a2000a, 0x32c20100, 0x8ee27ba4, 0x3c01ffff,
+0x220821, 0x94220028, 0x822021, 0x41c02,
+0x3082ffff, 0x622021, 0x32c20100, 0x14400004,
+0x41027, 0x92e27b98, 0x14400002, 0x41027,
+0x3044ffff, 0x8ee27ba4, 0x3c01ffff, 0x220821,
+0x8002d8a, 0xa4240028, 0x8ee27b9c, 0x12a20008,
+0x32c20100, 0x8ee27ba4, 0x94420028, 0x822021,
+0x41c02, 0x3082ffff, 0x622021, 0x32c20100,
+0x14400004, 0x41027, 0x92e27b98, 0x14400002,
+0x41027, 0x3044ffff, 0x8ee27ba4, 0x8002d8a,
+0xa4440028, 0x1462002f, 0x37e1821, 0x8ee27ba4,
+0x24420032, 0x43102b, 0x14400018, 0x0,
+0x8ee27b9c, 0x12a2000a, 0x32c20100, 0x8ee27ba4,
+0x3c01ffff, 0x220821, 0x94220032, 0x822021,
+0x41c02, 0x3082ffff, 0x622021, 0x32c20100,
+0x14400004, 0x41027, 0x92e27b98, 0x14400002,
+0x41027, 0x3044ffff, 0x8ee27ba4, 0x3c01ffff,
+0x220821, 0x8002d8a, 0xa4240032, 0x8ee27b9c,
+0x12a20008, 0x32c20100, 0x8ee27ba4, 0x94420032,
+0x822021, 0x41c02, 0x3082ffff, 0x622021,
+0x32c20100, 0x14400004, 0x41027, 0x92e27b98,
+0x14400002, 0x41027, 0x3044ffff, 0x8ee27ba4,
+0xa4440032, 0x8fac0024, 0x1180002c, 0x37e1821,
+0x8e420000, 0xae42fffc, 0x2642000a, 0x43102b,
+0x1440001b, 0x34038100, 0x26430004, 0x37e1021,
+0x62102b, 0x14400003, 0x602021, 0x6b1821,
+0x602021, 0x8c620000, 0x24630004, 0xae420000,
+0x37e1021, 0x62102b, 0x50400001, 0x6b1821,
+0x8c620000, 0xac820000, 0x34028100, 0xa4620000,
+0x24630002, 0x37e1021, 0x62102b, 0x50400001,
+0x6b1821, 0x97ac002e, 0x8002db4, 0xa46c0000,
+0x8e420004, 0x8e440008, 0xa6430008, 0x97ac002e,
+0xa64c000a, 0xae420000, 0xae440004, 0x9662000e,
+0x2652fffc, 0x24420004, 0xa662000e, 0x9662000e,
+0x8ee3725c, 0x621821, 0xaee3725c, 0xafb20018,
+0x8ee3725c, 0xafa3001c, 0x8ee2725c, 0x2c42003c,
+0x10400004, 0x24620001, 0x2403fffe, 0x431024,
+0xafa2001c, 0x32c20080, 0x1040000c, 0x32c20100,
+0x8ee27ba8, 0x24430001, 0x210c0, 0x571021,
+0xaee37ba8, 0x8fa30018, 0x8fa4001c, 0xac437bac,
+0xac447bb0, 0x8002ea0, 0xaee0725c, 0x10400072,
+0x0, 0x8ee27ba8, 0x24430001, 0x210c0,
+0x571021, 0xaee37ba8, 0x8fa30018, 0x8fa4001c,
+0xac437bac, 0xac447bb0, 0x8ee27ba8, 0x10400063,
+0x4821, 0x5021, 0x8f8200f0, 0x24480008,
+0x27621800, 0x102102b, 0x50400001, 0x27681000,
+0x8f8200f4, 0x15020007, 0x0, 0x8ee201b4,
+0x8021, 0x24420001, 0xaee201b4, 0x8002dfa,
+0x8ee201b4, 0x8f8300f0, 0x24100001, 0x1571021,
+0x8c447bac, 0x8c457bb0, 0xac640000, 0xac650004,
+0xaf8800f0, 0x16000006, 0x2ea1021, 0x8ee20088,
+0x24420001, 0xaee20088, 0x8002e3f, 0x8ee20088,
+0x8c427bb0, 0x8ee400e0, 0x8ee500e4, 0x8ee67b9c,
+0x401821, 0x1021, 0xa32821, 0xa3382b,
+0x822021, 0x872021, 0x8ee204fc, 0xc93021,
+0x63100, 0xaee400e0, 0xaee500e4, 0xc23021,
+0x94c2000a, 0x240c0002, 0x21142, 0x30430003,
+0x106c0016, 0x28620003, 0x10400005, 0x240c0001,
+0x106c0008, 0x0, 0x8002e3f, 0x0,
+0x240c0003, 0x106c0017, 0x0, 0x8002e3f,
+0x0, 0x8ee200e8, 0x8ee300ec, 0x24630001,
+0x2c640001, 0x441021, 0xaee200e8, 0xaee300ec,
+0x8ee200e8, 0x8002e3f, 0x8ee300ec, 0x8ee200f0,
+0x8ee300f4, 0x24630001, 0x2c640001, 0x441021,
+0xaee200f0, 0xaee300f4, 0x8ee200f0, 0x8002e3f,
+0x8ee300f4, 0x8ee200f8, 0x8ee300fc, 0x24630001,
+0x2c640001, 0x441021, 0xaee200f8, 0xaee300fc,
+0x8ee200f8, 0x8ee300fc, 0x8ee27ba8, 0x25290001,
+0x122102b, 0x1440ffa0, 0x254a0008, 0xa2e07b98,
+0x8002e9f, 0xaee07ba8, 0x8f8200f0, 0x24470008,
+0x27621800, 0xe2102b, 0x50400001, 0x27671000,
+0x8f8200f4, 0x14e20007, 0x0, 0x8ee201b4,
+0x8021, 0x24420001, 0xaee201b4, 0x8002e5d,
+0x8ee201b4, 0x8f8200f0, 0x24100001, 0x8fa30018,
+0x8fa4001c, 0xac430000, 0xac440004, 0xaf8700f0,
+0x16000007, 0x0, 0x8ee20088, 0x24420001,
+0xaee20088, 0x8ee20088, 0x8002ea0, 0xaee0725c,
+0x8ee2725c, 0x8ee400e0, 0x8ee500e4, 0x240c0002,
+0x401821, 0x1021, 0xa32821, 0xa3302b,
+0x822021, 0x862021, 0x161142, 0x30430003,
+0xaee400e0, 0xaee500e4, 0x106c0017, 0x2c620003,
+0x10400005, 0x240c0001, 0x106c0008, 0x0,
+0x8002ea0, 0xaee0725c, 0x240c0003, 0x106c0019,
+0x0, 0x8002ea0, 0xaee0725c, 0x8ee200e8,
+0x8ee300ec, 0x24630001, 0x2c640001, 0x441021,
+0xaee200e8, 0xaee300ec, 0x8ee200e8, 0x8ee300ec,
+0x8002ea0, 0xaee0725c, 0x8ee200f0, 0x8ee300f4,
+0x24630001, 0x2c640001, 0x441021, 0xaee200f0,
+0xaee300f4, 0x8ee200f0, 0x8ee300f4, 0x8002ea0,
+0xaee0725c, 0x8ee200f8, 0x8ee300fc, 0x24630001,
+0x2c640001, 0x441021, 0xaee200f8, 0xaee300fc,
+0x8ee200f8, 0x8ee300fc, 0xaee0725c, 0x8e62001c,
+0x96e30458, 0x8ee404f0, 0x24420001, 0x2463ffff,
+0x431024, 0x24840001, 0xaee204e4, 0xaee404f0,
+0x8f42023c, 0x82202b, 0x148000b0, 0x0,
+0x8f830120, 0x27623800, 0x24660020, 0xc2102b,
+0x50400001, 0x27663000, 0x8f820128, 0x10c20004,
+0x0, 0x8f820124, 0x14c20007, 0x0,
+0x8ee201a4, 0x8021, 0x24420001, 0xaee201a4,
+0x8002f07, 0x8ee201a4, 0x8ee204e4, 0xac62001c,
+0x8ee404b0, 0x8ee504b4, 0x2462001c, 0xac620008,
+0x24020008, 0xa462000e, 0x24020011, 0xac620018,
+0xac640000, 0xac650004, 0x8ee204c4, 0xac620010,
+0xaf860120, 0x92e24e20, 0x14400037, 0x24100001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c830000, 0x24020012, 0x1462001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x240c0040,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee34e30, 0x24420001, 0x104c0007, 0x0,
+0x8ee24e34, 0x24420001, 0x10620005, 0x0,
+0x8002ef1, 0x0, 0x14600005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400013, 0xac800000,
+0x8002f07, 0x0, 0x8ee24e30, 0x240c0040,
+0x24420001, 0x504c0003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x24020012, 0x240c0001,
+0xac820000, 0xac8c0004, 0x5600000d, 0x24100001,
+0x8ee204e4, 0x3c040001, 0x24845754, 0xafa00014,
+0xafa20010, 0x8ee60608, 0x8f470228, 0x3c050009,
+0x34a5f006, 0xc002403, 0xafab0038, 0x8fab0038,
+0x16000003, 0x240c0001, 0x8002f5c, 0xa2ec04f4,
+0x8ee20170, 0x24420001, 0xaee20170, 0x8ee20170,
+0x8ee204e4, 0xa2e004f4, 0xaee004f0, 0xaee07274,
+0xaee204f8, 0x8f42023c, 0x10400038, 0x0,
+0x8ee20184, 0x24420001, 0xaee20184, 0x8002f5c,
+0x8ee20184, 0x8ee20504, 0x240c0040, 0x24420001,
+0x504c0003, 0x1021, 0x8ee20504, 0x24420001,
+0xaee20504, 0x8ee20504, 0x8e630018, 0x240c0003,
+0x21080, 0x571021, 0x146c000f, 0x8c440508,
+0x3c020001, 0x571021, 0x904283b1, 0x10400014,
+0x0, 0x8ee201d0, 0x8ee35240, 0x441021,
+0xaee201d0, 0x8ee201d8, 0x641821, 0x306300ff,
+0x8002f4f, 0xaee35240, 0x8ee201cc, 0x8ee30e10,
+0x441021, 0xaee201cc, 0x8ee201d8, 0x641821,
+0x306301ff, 0xaee30e10, 0x441021, 0xaee201d8,
+0x8ee20000, 0x34420040, 0x8002f5c, 0xaee20000,
+0x8ee2014c, 0x3c010001, 0x370821, 0xa02083e0,
+0x24420001, 0xaee2014c, 0x8ee2014c, 0x8f820108,
+0x24420020, 0xaf820108, 0x8f820108, 0x8f820108,
+0x27633000, 0x43102b, 0x14400002, 0x27622800,
+0xaf820108, 0x8f830108, 0x8f820104, 0x1462fc1e,
+0x0, 0x8fbf0060, 0x8fbe005c, 0x8fb60058,
+0x8fb50054, 0x8fb40050, 0x8fb3004c, 0x8fb20048,
+0x8fb10044, 0x8fb00040, 0x3e00008, 0x27bd0068,
+0x52843, 0x10a0000d, 0x3021, 0x3c030001,
+0x34633800, 0x3c07ffff, 0x3631021, 0x82102b,
+0x50400001, 0x872021, 0x94820000, 0x24840002,
+0x24a5ffff, 0x14a0fff8, 0xc23021, 0x61c02,
+0x30c2ffff, 0x623021, 0x61c02, 0x30c2ffff,
+0x623021, 0x3e00008, 0x30c2ffff, 0x27bdff88,
+0x240f0001, 0xafbf0070, 0xafbe006c, 0xafb60068,
+0xafb50064, 0xafb40060, 0xafb3005c, 0xafb20058,
+0xafb10054, 0xafb00050, 0xa3a00027, 0xafaf002c,
+0x8ee204d4, 0x8021, 0x30420001, 0x1440002a,
+0xa3a00037, 0x8f8700e0, 0x8f8800c4, 0x8f8200e8,
+0xe22023, 0x2c821000, 0x50400001, 0x24841000,
+0x420c2, 0x801821, 0x8ee400c8, 0x8ee500cc,
+0x1021, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xaee400c8, 0xaee500cc, 0x8f8300c8,
+0x3c02000a, 0x3442efff, 0x1032023, 0x44102b,
+0x10400003, 0x3c02000a, 0x3442f000, 0x822021,
+0x801821, 0x8ee400c0, 0x8ee500c4, 0x1021,
+0xa32821, 0xa3302b, 0x822021, 0x862021,
+0xaee400c0, 0xaee500c4, 0xaf8800c8, 0xaf8700e4,
+0x80034cc, 0xaf8700e8, 0x3c020001, 0x571021,
+0x904283c0, 0x1040000b, 0x0, 0x3c140001,
+0x297a021, 0x8e9483c4, 0x3c130001, 0x2779821,
+0x8e7383c8, 0x3c120001, 0x2579021, 0x8003193,
+0x8e5283cc, 0x8f8300e0, 0x8f8200e4, 0x10430007,
+0x8821, 0x8f8200e4, 0x24110001, 0x8c430000,
+0x8c440004, 0xafa30018, 0xafa4001c, 0x1620000e,
+0x3c02ffff, 0x8f8200c4, 0xafa20010, 0x8f8200c8,
+0x3c040001, 0x24845870, 0xafa20014, 0x8f8600e0,
+0x8f8700e4, 0x3c050006, 0xc002403, 0x34a5f000,
+0x80034cc, 0x0, 0x8fa3001c, 0x8fb20018,
+0x3074ffff, 0x2694fffc, 0x621024, 0x10400058,
+0x2409821, 0x3c020080, 0x621024, 0x1040000a,
+0x3c040040, 0x8ee2007c, 0x24420001, 0xaee2007c,
+0x8ee2007c, 0x8ee201fc, 0x24420001, 0xaee201fc,
+0x80034c6, 0x8ee201fc, 0x3c060004, 0x3c0b0001,
+0x3c0a0002, 0x3c050010, 0x3c090008, 0x8ee20080,
+0x3c080020, 0x34078000, 0x24420001, 0xaee20080,
+0x8ee20080, 0x8fa2001c, 0x441824, 0x10660021,
+0xc3102b, 0x14400007, 0x0, 0x106b0011,
+0x0, 0x106a0015, 0x0, 0x8003049,
+0x42042, 0x10650023, 0xa3102b, 0x14400005,
+0x0, 0x10690019, 0x0, 0x8003049,
+0x42042, 0x10680021, 0x0, 0x8003049,
+0x42042, 0x8ee20034, 0x24420001, 0xaee20034,
+0x8ee20034, 0x8003049, 0x42042, 0x8ee201ec,
+0x24420001, 0xaee201ec, 0x8ee201ec, 0x8003049,
+0x42042, 0x8ee201f0, 0x24420001, 0xaee201f0,
+0x8ee201f0, 0x8003049, 0x42042, 0x8ee201f4,
+0x24420001, 0xaee201f4, 0x8ee201f4, 0x8003049,
+0x42042, 0x8ee20030, 0x24420001, 0xaee20030,
+0x8ee20030, 0x8003049, 0x42042, 0x8ee201f8,
+0x24420001, 0xaee201f8, 0x8ee201f8, 0x42042,
+0x1087047c, 0x0, 0x800300e, 0x0,
+0x3c020001, 0x571021, 0x904283b2, 0x14400084,
+0x24020001, 0x3c030001, 0x771821, 0x906383b3,
+0x1462007f, 0x3c020100, 0x8e430000, 0x621024,
+0x1040006f, 0x2402ffff, 0x14620005, 0x24100001,
+0x96430004, 0x3402ffff, 0x10620075, 0x0,
+0x92e204d8, 0x14400072, 0x0, 0x3c020001,
+0x571021, 0x8c4283b4, 0x28420005, 0x10400020,
+0x3821, 0x3c020001, 0x571021, 0x8c4283b4,
+0x18400016, 0x2821, 0x96660000, 0x520c0,
+0x971021, 0x9442777e, 0x14460009, 0x971021,
+0x94437780, 0x96620002, 0x14620005, 0x971021,
+0x94437782, 0x96620004, 0x50620008, 0x24070001,
+0x3c020001, 0x571021, 0x8c4283b4, 0x24a50001,
+0xa2102a, 0x5440ffee, 0x520c0, 0x30e200ff,
+0x10400440, 0x0, 0x80030d5, 0x0,
+0x2402021, 0xc0022fe, 0x24050006, 0x3044001f,
+0x428c0, 0x2e51021, 0x9442727c, 0x30424000,
+0x14400434, 0xb71021, 0x9443727e, 0x96620000,
+0x1462000b, 0x418c0, 0xb71021, 0x94437280,
+0x96620002, 0x14620006, 0x418c0, 0xb71021,
+0x94437282, 0x96620004, 0x10620035, 0x418c0,
+0x2e31021, 0x9442727c, 0x30428000, 0x14400421,
+0x2e31021, 0x944b727c, 0x96670000, 0xb28c0,
+0xb71021, 0x9442737e, 0x80030b7, 0x3021,
+0x420c0, 0x2e41021, 0x9443737c, 0x2e41021,
+0x944b737c, 0x30638000, 0x14600010, 0xb28c0,
+0xb71021, 0x9442737e, 0x1447fff5, 0x1602021,
+0xb71021, 0x94437380, 0x96620002, 0x5462fff1,
+0x420c0, 0xb71021, 0x94437382, 0x96620004,
+0x5462ffec, 0x420c0, 0x24060001, 0x30c200ff,
+0x10400400, 0x0, 0x80030d5, 0x0,
+0x97430202, 0x96420000, 0x146203fa, 0x0,
+0x97430204, 0x96420002, 0x146203f6, 0x0,
+0x97430206, 0x96420004, 0x146203f2, 0x0,
+0x92420000, 0x3a030001, 0x30420001, 0x431024,
+0x10400074, 0x2402ffff, 0x8e630000, 0x14620004,
+0x3402ffff, 0x96630004, 0x1062006f, 0x240f0002,
+0x3c020001, 0x571021, 0x904283b2, 0x1440006a,
+0x240f0003, 0x92e204d8, 0x54400068, 0xafaf002c,
+0x3c020001, 0x571021, 0x8c4283b4, 0x28420005,
+0x10400020, 0x3821, 0x3c020001, 0x571021,
+0x8c4283b4, 0x18400016, 0x2821, 0x96660000,
+0x520c0, 0x971021, 0x9442777e, 0x14460009,
+0x971021, 0x94437780, 0x96620002, 0x14620005,
+0x971021, 0x94437782, 0x96620004, 0x50620008,
+0x24070001, 0x3c020001, 0x571021, 0x8c4283b4,
+0x24a50001, 0xa2102a, 0x5440ffee, 0x520c0,
+0x30e200ff, 0x14400044, 0x240f0003, 0x80034c6,
+0x0, 0x2402021, 0xc0022fe, 0x24050006,
+0x3044001f, 0x428c0, 0x2e51021, 0x9442727c,
+0x30424000, 0x144003af, 0xb71021, 0x9443727e,
+0x96620000, 0x1462000b, 0x418c0, 0xb71021,
+0x94437280, 0x96620002, 0x14620006, 0x418c0,
+0xb71021, 0x94437282, 0x96620004, 0x10620027,
+0x418c0, 0x2e31021, 0x9442727c, 0x30428000,
+0x1440039c, 0x2e31021, 0x944b727c, 0x96670000,
+0xb28c0, 0xb71021, 0x9442737e, 0x800313c,
+0x3021, 0x420c0, 0x2e41021, 0x9443737c,
+0x2e41021, 0x944b737c, 0x30638000, 0x14600010,
+0xb28c0, 0xb71021, 0x9442737e, 0x1447fff5,
+0x1602021, 0xb71021, 0x94437380, 0x96620002,
+0x5462fff1, 0x420c0, 0xb71021, 0x94437382,
+0x96620004, 0x5462ffec, 0x420c0, 0x24060001,
+0x30c200ff, 0x1040037b, 0x0, 0x800314f,
+0x240f0003, 0x240f0001, 0xafaf002c, 0x8f420260,
+0x54102b, 0x1040003a, 0x0, 0x8f8300e4,
+0x8f8200e0, 0x10620003, 0x24630008, 0xaf8300e4,
+0xaf8300e8, 0x8ee400c0, 0x8ee500c4, 0x2801821,
+0x1021, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xaee400c0, 0xaee500c4, 0x8ee20058,
+0x24420001, 0xaee20058, 0x8ee20058, 0x8ee2007c,
+0x24420001, 0xaee2007c, 0x8ee2007c, 0x8f8200e0,
+0xafa20010, 0x8f8200e4, 0x3c040001, 0x24845878,
+0xafa20014, 0x8fa60018, 0x8fa7001c, 0x3c050006,
+0xc002403, 0x34a5f003, 0x80034cc, 0x0,
+0x8ee25240, 0xafa20010, 0x8ee25244, 0x3c040001,
+0x24845884, 0xafa20014, 0x8ee60e10, 0x8ee70e18,
+0x3c050006, 0xc002403, 0x34a5f002, 0x8ee201c0,
+0x24420001, 0xaee201c0, 0x8ee20000, 0x8ee301c0,
+0x2403ffbf, 0x431024, 0x8003470, 0xaee20000,
+0x96e20468, 0x54102b, 0x10400003, 0x0,
+0x240f0001, 0xa3af0027, 0x12800301, 0x24160007,
+0x24150040, 0x241e0001, 0x240e0012, 0x8ee2724c,
+0x8f430280, 0x24420001, 0x304207ff, 0x106202d3,
+0x0, 0x93a20027, 0x10400014, 0x0,
+0x8ee35240, 0x8ee25244, 0x10620009, 0x26ed5244,
+0x8ee65244, 0x8ee35244, 0x21140, 0x24425248,
+0x2e28021, 0x24630001, 0x80031bf, 0x306b00ff,
+0x92e27248, 0x1440ffca, 0x0, 0x8ee201e0,
+0x24420001, 0xaee201e0, 0x8ee201e0, 0x8ee30e10,
+0x8ee20e18, 0x1062ffc2, 0x26ed0e18, 0x8ee60e18,
+0x8ee30e18, 0x21140, 0x24420e20, 0x2e28021,
+0x24630001, 0x306b01ff, 0x96e2046a, 0x30420010,
+0x10400019, 0x0, 0x9642000c, 0x340f8100,
+0x144f0015, 0x0, 0x3c020001, 0x571021,
+0x904283c0, 0x14400010, 0x0, 0x9642000e,
+0xa6020016, 0x8e420008, 0x8e430004, 0x8e440000,
+0x2694fffc, 0xae42000c, 0xae430008, 0xae440004,
+0x9602000e, 0x26730004, 0x240f0001, 0xa3af0037,
+0x34420200, 0xa602000e, 0x8e020000, 0x8e030004,
+0x3c040001, 0x34843800, 0x306a0007, 0x26a9823,
+0x3641021, 0x262102b, 0x10400005, 0x28aa021,
+0x2641023, 0x3621823, 0x3c020020, 0x439823,
+0x26820007, 0x2404fff8, 0x9603000a, 0x446024,
+0x6a1821, 0x6c102b, 0x10400002, 0x1803821,
+0x603821, 0xae130018, 0x8f880120, 0x24e20007,
+0x443824, 0x27623800, 0x25090020, 0x122102b,
+0x50400001, 0x27693000, 0x8f820128, 0x11220004,
+0x0, 0x8f820124, 0x15220007, 0x1401821,
+0x8ee201a4, 0x8821, 0x24420001, 0xaee201a4,
+0x800324c, 0x8ee201a4, 0x8e040000, 0x8e050004,
+0x1021, 0xad130008, 0xa507000e, 0xad160018,
+0xad06001c, 0xa3302b, 0xa32823, 0x822023,
+0x862023, 0xad040000, 0xad050004, 0x8ee204c0,
+0xad020010, 0xaf890120, 0x92e24e20, 0x14400033,
+0x24110001, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c820000, 0x1456001f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062001b, 0x0,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee34e30, 0x24420001, 0x10550007, 0x0,
+0x8ee24e34, 0x24420001, 0x10620005, 0x0,
+0x8003239, 0x0, 0x14600005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400010, 0xac800000,
+0x800324c, 0x0, 0x8ee24e30, 0x24420001,
+0x50550003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0xac960000, 0xac9e0004, 0x16200018,
+0x3c050006, 0x8e020018, 0x3c040001, 0x24845890,
+0xafa20010, 0x8e020000, 0x8e030004, 0x34a5f009,
+0x2003021, 0xc002403, 0xafa30014, 0x93a20037,
+0x10400216, 0x340f8100, 0x8e420004, 0x8e430008,
+0x8e44000c, 0xa64f000c, 0xae420000, 0xae430004,
+0xae440008, 0x96020016, 0x8003470, 0xa642000e,
+0x14ec0168, 0x28a1823, 0x960c000a, 0x9603000e,
+0x28a1023, 0xa602000a, 0x34620004, 0xa602000e,
+0x8f880120, 0x27623800, 0x25090020, 0x122102b,
+0x14400002, 0x306affff, 0x27693000, 0x8f820128,
+0x11220004, 0x0, 0x8f820124, 0x15220007,
+0x24040020, 0x8ee201a4, 0x8821, 0x24420001,
+0xaee201a4, 0x80032ca, 0x8ee201a4, 0x8ee5724c,
+0x8ee60490, 0x8ee70494, 0xa504000e, 0x24040004,
+0xad100008, 0xad040018, 0x52940, 0xa01821,
+0x1021, 0xe33821, 0xe3202b, 0xc23021,
+0xc43021, 0xad060000, 0xad070004, 0x8ee2724c,
+0xad02001c, 0x8ee204c4, 0xad020010, 0xaf890120,
+0x92e24e20, 0x14400033, 0x24110001, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c820000,
+0x1456001f, 0x0, 0x8ee34e30, 0x8ee24e34,
+0x1062001b, 0x0, 0x8c820004, 0x24420001,
+0xac820004, 0x8ee24e34, 0x8ee34e30, 0x24420001,
+0x10550007, 0x0, 0x8ee24e34, 0x24420001,
+0x10620005, 0x0, 0x80032b7, 0x0,
+0x14600005, 0x0, 0x8f820128, 0x24420020,
+0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011,
+0x50400010, 0xac800000, 0x80032ca, 0x0,
+0x8ee24e30, 0x24420001, 0x50550003, 0x1021,
+0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0xac960000,
+0xac9e0004, 0x1620000d, 0x0, 0xa60c000a,
+0xa60a000e, 0x8f820100, 0xafa20010, 0x8f820104,
+0x3c040001, 0x2484589c, 0x3c050006, 0xafa20014,
+0x8ee6724c, 0x800343b, 0x34a5f00b, 0x3c010001,
+0x370821, 0xa02083c0, 0xadab0000, 0x8ee201d8,
+0x8ee3724c, 0x2442ffff, 0xaee201d8, 0x8ee201d8,
+0x24630001, 0x306307ff, 0x26e25244, 0x15a20006,
+0xaee3724c, 0x8ee201d0, 0x2442ffff, 0xaee201d0,
+0x80032ef, 0x8ee201d0, 0x8ee201cc, 0x2442ffff,
+0xaee201cc, 0x8ee201cc, 0x8f420240, 0x10400073,
+0x0, 0x8ee20e1c, 0x24420001, 0xaee20e1c,
+0x8f430240, 0x43102b, 0x14400176, 0xa021,
+0x8f830120, 0x27623800, 0x24660020, 0xc2102b,
+0x50400001, 0x27663000, 0x8f820128, 0x10c20004,
+0x0, 0x8f820124, 0x14c20007, 0x0,
+0x8ee201a4, 0x8821, 0x24420001, 0xaee201a4,
+0x800334f, 0x8ee201a4, 0x8ee2724c, 0xac62001c,
+0x8ee404a8, 0x8ee504ac, 0x2462001c, 0xac620008,
+0x24020008, 0xa462000e, 0x24020011, 0xac620018,
+0xac640000, 0xac650004, 0x8ee204c4, 0xac620010,
+0xaf860120, 0x92e24e20, 0x14400033, 0x24110001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c820000, 0x144e001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x10550007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x800333c,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400010, 0xac800000, 0x800334f,
+0x0, 0x8ee24e30, 0x24420001, 0x50550003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0xac8e0000, 0xac9e0004, 0x5620000d, 0x24110001,
+0x8ee2724c, 0x3c040001, 0x248458a8, 0xafa00014,
+0xafa20010, 0x8ee6724c, 0x8f470280, 0x3c050009,
+0x34a5f008, 0xc002403, 0xafae0048, 0x8fae0048,
+0x56200001, 0xaee00e1c, 0x8ee20188, 0x24420001,
+0xaee20188, 0x80033c8, 0x8ee20188, 0x8f830120,
+0x27623800, 0x24660020, 0xc2102b, 0x50400001,
+0x27663000, 0x8f820128, 0x10c20004, 0x0,
+0x8f820124, 0x14c20007, 0x0, 0x8ee201a4,
+0x8821, 0x24420001, 0xaee201a4, 0x80033ba,
+0x8ee201a4, 0x8ee2724c, 0xac62001c, 0x8ee404a8,
+0x8ee504ac, 0x2462001c, 0xac620008, 0x24020008,
+0xa462000e, 0x24020011, 0xac620018, 0xac640000,
+0xac650004, 0x8ee204c4, 0xac620010, 0xaf860120,
+0x92e24e20, 0x14400033, 0x24110001, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c820000,
+0x144e001f, 0x0, 0x8ee34e30, 0x8ee24e34,
+0x1062001b, 0x0, 0x8c820004, 0x24420001,
+0xac820004, 0x8ee24e34, 0x8ee34e30, 0x24420001,
+0x10550007, 0x0, 0x8ee24e34, 0x24420001,
+0x10620005, 0x0, 0x80033a7, 0x0,
+0x14600005, 0x0, 0x8f820128, 0x24420020,
+0xaf820128, 0x8f820128, 0x8c820004, 0x2c420011,
+0x50400010, 0xac800000, 0x80033ba, 0x0,
+0x8ee24e30, 0x24420001, 0x50550003, 0x1021,
+0x8ee24e30, 0x24420001, 0xaee24e30, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0xac8e0000,
+0xac9e0004, 0x1620000d, 0x0, 0x8ee2724c,
+0x3c040001, 0x248458a8, 0xafa00014, 0xafa20010,
+0x8ee6724c, 0x8f470280, 0x3c050009, 0x34a5f008,
+0xc002403, 0xafae0048, 0x8fae0048, 0x8ee20174,
+0x24420001, 0xaee20174, 0x8ee20174, 0x800346e,
+0xa021, 0x960c000a, 0x183102b, 0x54400001,
+0x1801821, 0xa603000a, 0x8f880120, 0x27623800,
+0x25090020, 0x122102b, 0x50400001, 0x27693000,
+0x8f820128, 0x11220004, 0x0, 0x8f820124,
+0x15220007, 0x24040020, 0x8ee201a4, 0x8821,
+0x24420001, 0xaee201a4, 0x800342f, 0x8ee201a4,
+0x8ee5724c, 0x8ee60490, 0x8ee70494, 0xa504000e,
+0x24040004, 0xad100008, 0xad040018, 0x52940,
+0xa01821, 0x1021, 0xe33821, 0xe3202b,
+0xc23021, 0xc43021, 0xad060000, 0xad070004,
+0x8ee2724c, 0xad02001c, 0x8ee204c4, 0xad020010,
+0xaf890120, 0x92e24e20, 0x14400033, 0x24110001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c820000, 0x1456001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x10550007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x800341c,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400010, 0xac800000, 0x800342f,
+0x0, 0x8ee24e30, 0x24420001, 0x50550003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0xac960000, 0xac9e0004, 0x1620001d, 0x0,
+0xa60c000a, 0x8f820100, 0xafa20010, 0x8f820104,
+0x3c040001, 0x2484589c, 0x3c050006, 0xafa20014,
+0x8ee6724c, 0x34a5f00d, 0xc002403, 0x2003821,
+0x93a20037, 0x10400031, 0x340f8100, 0x8e420004,
+0x8e430008, 0x8e44000c, 0xa64f000c, 0xae420000,
+0xae430004, 0xae440008, 0x96020016, 0xa642000e,
+0x9602000e, 0x3042fdff, 0x8003470, 0xa602000e,
+0x8ee201d8, 0x2442ffff, 0xaee201d8, 0x8ee201d8,
+0x8ee201cc, 0x3c04001f, 0x3c010001, 0x370821,
+0xa03e83c0, 0x2442ffff, 0xaee201cc, 0x9603000a,
+0x3484ffff, 0x8ee201cc, 0x6a1821, 0x2639821,
+0x93202b, 0x10800003, 0x3c02fff5, 0x34421000,
+0x2629821, 0xadab0000, 0x8ee2724c, 0x24420001,
+0x304207ff, 0xaee2724c, 0x8f420240, 0x10400004,
+0x283a023, 0x8ee20e1c, 0x24420001, 0xaee20e1c,
+0xa3a00027, 0x1680fd29, 0x0, 0x12800024,
+0x0, 0x3c010001, 0x370821, 0xac3483c4,
+0x3c010001, 0x370821, 0xac3383c8, 0x3c010001,
+0x370821, 0xac3283cc, 0x93a20037, 0x10400008,
+0x0, 0x3c020001, 0x571021, 0x8c4283cc,
+0x24420004, 0x3c010001, 0x370821, 0xac2283cc,
+0x8ee2724c, 0x8f430280, 0x24420001, 0x304207ff,
+0x14620006, 0x0, 0x8ee201c4, 0x24420001,
+0xaee201c4, 0x80034cc, 0x8ee201c4, 0x8ee201bc,
+0x24420001, 0xaee201bc, 0x80034cc, 0x8ee201bc,
+0x97a4001e, 0x2484fffc, 0x801821, 0x8ee400c0,
+0x8ee500c4, 0x1021, 0xa32821, 0xa3302b,
+0x822021, 0x862021, 0xaee400c0, 0xaee500c4,
+0x8faf002c, 0x24020002, 0x11e2000f, 0x29e20003,
+0x14400017, 0x24020003, 0x15e20015, 0x0,
+0x8ee200d0, 0x8ee300d4, 0x24630001, 0x2c640001,
+0x441021, 0xaee200d0, 0xaee300d4, 0x8ee200d0,
+0x80034c6, 0x8ee300d4, 0x8ee200d8, 0x8ee300dc,
+0x24630001, 0x2c640001, 0x441021, 0xaee200d8,
+0xaee300dc, 0x8ee200d8, 0x80034c6, 0x8ee300dc,
+0x8ee200c8, 0x8ee300cc, 0x24630001, 0x2c640001,
+0x441021, 0xaee200c8, 0xaee300cc, 0x8ee200c8,
+0x8ee300cc, 0x8f8300e4, 0x8f8200e0, 0x10620003,
+0x24630008, 0xaf8300e4, 0xaf8300e8, 0x8fbf0070,
+0x8fbe006c, 0x8fb60068, 0x8fb50064, 0x8fb40060,
+0x8fb3005c, 0x8fb20058, 0x8fb10054, 0x8fb00050,
+0x3e00008, 0x27bd0078, 0x27bdffb0, 0xafb50044,
+0xa821, 0xafb00030, 0x8021, 0xafbf004c,
+0xafb60048, 0xafb40040, 0xafb3003c, 0xafb20038,
+0xafb10034, 0x8ee204d4, 0x24140001, 0x30420001,
+0x1440002a, 0xb021, 0x8f8700e0, 0x8f8800c4,
+0x8f8200e8, 0xe22023, 0x2c821000, 0x50400001,
+0x24841000, 0x420c2, 0x801821, 0x8ee400c8,
+0x8ee500cc, 0x1021, 0xa32821, 0xa3302b,
+0x822021, 0x862021, 0xaee400c8, 0xaee500cc,
+0x8f8300c8, 0x3c02000a, 0x3442efff, 0x1032023,
+0x44102b, 0x10400003, 0x3c02000a, 0x3442f000,
+0x822021, 0x801821, 0x8ee400c0, 0x8ee500c4,
+0x1021, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xaee400c0, 0xaee500c4, 0xaf8800c8,
+0xaf8700e4, 0x8003850, 0xaf8700e8, 0x3c020001,
+0x571021, 0x904283c0, 0x1040000b, 0x0,
+0x3c130001, 0x2779821, 0x8e7383c4, 0x3c110001,
+0x2378821, 0x8e3183c8, 0x3c120001, 0x2579021,
+0x80036e8, 0x8e5283cc, 0x8f8300e0, 0x8f8200e4,
+0x10430007, 0x4821, 0x8f8200e4, 0x24090001,
+0x8c430000, 0x8c440004, 0xafa30018, 0xafa4001c,
+0x1520000e, 0x3c02ffff, 0x8f8200c4, 0xafa20010,
+0x8f8200c8, 0x3c040001, 0x24845870, 0xafa20014,
+0x8f8600e0, 0x8f8700e4, 0x3c050006, 0xc002403,
+0x34a5f000, 0x8003850, 0x0, 0x8fa3001c,
+0x8fb20018, 0x3073ffff, 0x2673fffc, 0x621024,
+0x10400058, 0x2408821, 0x3c020080, 0x621024,
+0x1040000a, 0x3c040040, 0x8ee2007c, 0x24420001,
+0xaee2007c, 0x8ee2007c, 0x8ee201fc, 0x24420001,
+0xaee201fc, 0x800384a, 0x8ee201fc, 0x3c060004,
+0x3c0b0001, 0x3c0a0002, 0x3c050010, 0x3c090008,
+0x8ee20080, 0x3c080020, 0x34078000, 0x24420001,
+0xaee20080, 0x8ee20080, 0x8fa2001c, 0x441824,
+0x10660021, 0xc3102b, 0x14400007, 0x0,
+0x106b0011, 0x0, 0x106a0015, 0x0,
+0x8003592, 0x42042, 0x10650023, 0xa3102b,
+0x14400005, 0x0, 0x10690019, 0x0,
+0x8003592, 0x42042, 0x10680021, 0x0,
+0x8003592, 0x42042, 0x8ee20034, 0x24420001,
+0xaee20034, 0x8ee20034, 0x8003592, 0x42042,
+0x8ee201ec, 0x24420001, 0xaee201ec, 0x8ee201ec,
+0x8003592, 0x42042, 0x8ee201f0, 0x24420001,
+0xaee201f0, 0x8ee201f0, 0x8003592, 0x42042,
+0x8ee201f4, 0x24420001, 0xaee201f4, 0x8ee201f4,
+0x8003592, 0x42042, 0x8ee20030, 0x24420001,
+0xaee20030, 0x8ee20030, 0x8003592, 0x42042,
+0x8ee201f8, 0x24420001, 0xaee201f8, 0x8ee201f8,
+0x42042, 0x108702b7, 0x0, 0x8003557,
+0x0, 0x3c020001, 0x571021, 0x904283b2,
+0x14400084, 0x24020001, 0x3c030001, 0x771821,
+0x906383b3, 0x1462007f, 0x3c020100, 0x8e430000,
+0x621024, 0x1040006f, 0x2402ffff, 0x14620005,
+0x24100001, 0x96430004, 0x3402ffff, 0x10620075,
+0x0, 0x92e204d8, 0x14400072, 0x0,
+0x3c020001, 0x571021, 0x8c4283b4, 0x28420005,
+0x10400020, 0x3821, 0x3c020001, 0x571021,
+0x8c4283b4, 0x18400016, 0x2821, 0x96260000,
+0x520c0, 0x971021, 0x9442777e, 0x14460009,
+0x971021, 0x94437780, 0x96220002, 0x14620005,
+0x971021, 0x94437782, 0x96220004, 0x50620008,
+0x24070001, 0x3c020001, 0x571021, 0x8c4283b4,
+0x24a50001, 0xa2102a, 0x5440ffee, 0x520c0,
+0x30e200ff, 0x1040027b, 0x0, 0x800361e,
+0x0, 0x2402021, 0xc0022fe, 0x24050006,
+0x3044001f, 0x428c0, 0x2e51021, 0x9442727c,
+0x30424000, 0x1440026f, 0xb71021, 0x9443727e,
+0x96220000, 0x1462000b, 0x418c0, 0xb71021,
+0x94437280, 0x96220002, 0x14620006, 0x418c0,
+0xb71021, 0x94437282, 0x96220004, 0x10620035,
+0x418c0, 0x2e31021, 0x9442727c, 0x30428000,
+0x1440025c, 0x2e31021, 0x9448727c, 0x96270000,
+0x828c0, 0xb71021, 0x9442737e, 0x8003600,
+0x3021, 0x420c0, 0x2e41021, 0x9443737c,
+0x2e41021, 0x9448737c, 0x30638000, 0x14600010,
+0x828c0, 0xb71021, 0x9442737e, 0x1447fff5,
+0x1002021, 0xb71021, 0x94437380, 0x96220002,
+0x5462fff1, 0x420c0, 0xb71021, 0x94437382,
+0x96220004, 0x5462ffec, 0x420c0, 0x24060001,
+0x30c200ff, 0x1040023b, 0x0, 0x800361e,
+0x0, 0x97430202, 0x96420000, 0x14620235,
+0x0, 0x97430204, 0x96420002, 0x14620231,
+0x0, 0x97430206, 0x96420004, 0x1462022d,
+0x0, 0x92420000, 0x3a030001, 0x30420001,
+0x431024, 0x10400074, 0x2402ffff, 0x8e230000,
+0x14620004, 0x3402ffff, 0x96230004, 0x1062006f,
+0x24140002, 0x3c020001, 0x571021, 0x904283b2,
+0x1440006a, 0x24140003, 0x92e204d8, 0x14400067,
+0x0, 0x3c020001, 0x571021, 0x8c4283b4,
+0x28420005, 0x10400020, 0x3821, 0x3c020001,
+0x571021, 0x8c4283b4, 0x18400016, 0x2821,
+0x96260000, 0x520c0, 0x971021, 0x9442777e,
+0x14460009, 0x971021, 0x94437780, 0x96220002,
+0x14620005, 0x971021, 0x94437782, 0x96220004,
+0x50620008, 0x24070001, 0x3c020001, 0x571021,
+0x8c4283b4, 0x24a50001, 0xa2102a, 0x5440ffee,
+0x520c0, 0x30e200ff, 0x14400044, 0x24140003,
+0x800384a, 0x0, 0x2402021, 0xc0022fe,
+0x24050006, 0x3044001f, 0x428c0, 0x2e51021,
+0x9442727c, 0x30424000, 0x144001ea, 0xb71021,
+0x9443727e, 0x96220000, 0x1462000b, 0x418c0,
+0xb71021, 0x94437280, 0x96220002, 0x14620006,
+0x418c0, 0xb71021, 0x94437282, 0x96220004,
+0x10620027, 0x418c0, 0x2e31021, 0x9442727c,
+0x30428000, 0x144001d7, 0x2e31021, 0x9448727c,
+0x96270000, 0x828c0, 0xb71021, 0x9442737e,
+0x8003685, 0x3021, 0x420c0, 0x2e41021,
+0x9443737c, 0x2e41021, 0x9448737c, 0x30638000,
+0x14600010, 0x828c0, 0xb71021, 0x9442737e,
+0x1447fff5, 0x1002021, 0xb71021, 0x94437380,
+0x96220002, 0x5462fff1, 0x420c0, 0xb71021,
+0x94437382, 0x96220004, 0x5462ffec, 0x420c0,
+0x24060001, 0x30c200ff, 0x104001b6, 0x0,
+0x8003698, 0x24140003, 0x24140001, 0x8f420260,
+0x53102b, 0x10400049, 0x0, 0x8f8300e4,
+0x8f8200e0, 0x10620003, 0x24630008, 0xaf8300e4,
+0xaf8300e8, 0x8ee400c0, 0x8ee500c4, 0x2601821,
+0x1021, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xaee400c0, 0xaee500c4, 0x8ee20058,
+0x24420001, 0xaee20058, 0x8ee20058, 0x8ee2007c,
+0x24420001, 0xaee2007c, 0x8ee2007c, 0x8f8200e0,
+0xafa20010, 0x8f8200e4, 0x3c040001, 0x24845878,
+0xafa20014, 0x8fa60018, 0x8fa7001c, 0x3c050006,
+0xc002403, 0x34a5f003, 0x8003850, 0x0,
+0x8ee25240, 0xafa20010, 0x8ee25244, 0x3c040001,
+0x24845884, 0xafa20014, 0x8ee60e10, 0x8ee70e18,
+0xc002403, 0x34a5f002, 0x8ee201c0, 0x24420001,
+0xaee201c0, 0x8ee20000, 0x8ee301c0, 0x2403ffbf,
+0x431024, 0x80037f8, 0xaee20000, 0x8ee25240,
+0xafa20010, 0x8ee25244, 0x3c040001, 0x24845884,
+0xafa20014, 0x8ee60e10, 0x8ee70e18, 0x3c050006,
+0xc002403, 0x34a5f002, 0x8ee201c0, 0x24420001,
+0xaee201c0, 0x80037f8, 0x8ee201c0, 0x96e20468,
+0x53102b, 0x54400001, 0x3c158000, 0x12600131,
+0x3c0c001f, 0x358cffff, 0x8ee2724c, 0x8f430280,
+0x24420001, 0x304207ff, 0x10620108, 0x0,
+0x12a00014, 0x0, 0x8ee35240, 0x8ee25244,
+0x10620009, 0x26ee5244, 0x8eeb5244, 0x8ee35244,
+0x21140, 0x24425248, 0x2e28021, 0x24630001,
+0x8003712, 0x306800ff, 0x92e27248, 0x1440ffc0,
+0x3c050006, 0x8ee201e0, 0x24420001, 0xaee201e0,
+0x8ee201e0, 0x8ee30e10, 0x8ee20e18, 0x1062ffcb,
+0x26ee0e18, 0x8eeb0e18, 0xa821, 0x8ee30e18,
+0x21140, 0x24420e20, 0x2e28021, 0x24630001,
+0x306801ff, 0x96e2046a, 0x30420010, 0x10400017,
+0x34028100, 0x9643000c, 0x14620014, 0x0,
+0x3c020001, 0x571021, 0x904283c0, 0x1440000f,
+0x0, 0x9642000e, 0xa6020016, 0x8e420008,
+0x8e430004, 0x8e440000, 0x2673fffc, 0xae42000c,
+0xae430008, 0xae440004, 0x9602000e, 0x26310004,
+0x24160001, 0x34420200, 0xa602000e, 0x9603000a,
+0x2605021, 0x73102b, 0x10400002, 0x2606821,
+0x605021, 0x2d42003d, 0x1040002a, 0x3821,
+0x9623000c, 0x24020800, 0x54620027, 0xae110018,
+0x3c020001, 0x571021, 0x904283c0, 0x54400022,
+0xae110018, 0x26220017, 0x182102b, 0x10400013,
+0x0, 0x3c02fff5, 0x511021, 0x90421017,
+0x38430006, 0x2c630001, 0x38420011, 0x2c420001,
+0x621825, 0x10600013, 0x26220010, 0x182102b,
+0x1040000e, 0x0, 0x3c07fff5, 0xf13821,
+0x94e71010, 0x800375e, 0x24e7000e, 0x92220017,
+0x38430006, 0x2c630001, 0x38420011, 0x2c420001,
+0x621825, 0x50600004, 0xae110018, 0x96270010,
+0x24e7000e, 0xae110018, 0x3c020001, 0x571021,
+0x904283c0, 0x2102b, 0x14e00002, 0x24ec0,
+0x1403821, 0x8f830120, 0x27623800, 0x24660020,
+0xc2102b, 0x50400001, 0x27663000, 0x8f820128,
+0x10c20004, 0x0, 0x8f820124, 0x14c20007,
+0x2402000b, 0x8ee201a4, 0x4821, 0x24420001,
+0xaee201a4, 0x80037bf, 0x8ee201a4, 0x8e040000,
+0x8e050004, 0xac620018, 0x1751025, 0x491025,
+0xac710008, 0xa467000e, 0xac62001c, 0xac640000,
+0xac650004, 0x8ee204c0, 0xac620010, 0xaf860120,
+0x92e24e20, 0x14400038, 0x24090001, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c830000,
+0x24020007, 0x14620020, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001c, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee34e34, 0x8ee54e30,
+0x24020040, 0x24630001, 0x10620007, 0x0,
+0x8ee24e34, 0x24420001, 0x10a20005, 0x0,
+0x80037a9, 0x0, 0x14a00005, 0x0,
+0x8f820128, 0x24420020, 0xaf820128, 0x8f820128,
+0x8c820004, 0x2c420011, 0x50400013, 0xac800000,
+0x80037bf, 0x0, 0x8ee24e30, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x24020007, 0xac820000,
+0x24020001, 0xac820004, 0x15200018, 0x3c050006,
+0x8e020018, 0x3c040001, 0x24845890, 0xafa20010,
+0x8e020000, 0x8e030004, 0x34a5f009, 0x2003021,
+0xc002403, 0xafa30014, 0x32c200ff, 0x1040002b,
+0x34028100, 0x8e430004, 0x8e440008, 0x8e45000c,
+0xa642000c, 0xae430000, 0xae440004, 0xae450008,
+0x96020016, 0x80037f8, 0xa642000e, 0x154d000a,
+0x0, 0x9602000e, 0xa613000a, 0x34420004,
+0xa602000e, 0x3c010001, 0x370821, 0xa02083c0,
+0x80037f6, 0x9821, 0x9604000a, 0x93102b,
+0x10400002, 0x2601821, 0x801821, 0x24020001,
+0xa603000a, 0x3c010001, 0x370821, 0xa02283c0,
+0x9604000a, 0x2248821, 0x191102b, 0x10400003,
+0x3c02fff5, 0x34421000, 0x2228821, 0x2649823,
+0xa821, 0x1660fef4, 0xadc80000, 0x12600021,
+0x32c200ff, 0x3c010001, 0x370821, 0xac3383c4,
+0x3c010001, 0x370821, 0xac3183c8, 0x3c010001,
+0x370821, 0x10400008, 0xac3283cc, 0x3c020001,
+0x571021, 0x8c4283cc, 0x24420004, 0x3c010001,
+0x370821, 0xac2283cc, 0x8ee2724c, 0x8f430280,
+0x24420001, 0x14620006, 0x0, 0x8ee201c4,
+0x24420001, 0xaee201c4, 0x8003850, 0x8ee201c4,
+0x8ee201bc, 0x24420001, 0xaee201bc, 0x8003850,
+0x8ee201bc, 0x97a4001e, 0x2484fffc, 0x801821,
+0x8ee400c0, 0x8ee500c4, 0x1021, 0xa32821,
+0xa3302b, 0x822021, 0x862021, 0x24020002,
+0xaee400c0, 0xaee500c4, 0x1282000f, 0x2a820003,
+0x14400017, 0x24020003, 0x16820015, 0x0,
+0x8ee200d0, 0x8ee300d4, 0x24630001, 0x2c640001,
+0x441021, 0xaee200d0, 0xaee300d4, 0x8ee200d0,
+0x800384a, 0x8ee300d4, 0x8ee200d8, 0x8ee300dc,
+0x24630001, 0x2c640001, 0x441021, 0xaee200d8,
+0xaee300dc, 0x8ee200d8, 0x800384a, 0x8ee300dc,
+0x8ee200c8, 0x8ee300cc, 0x24630001, 0x2c640001,
+0x441021, 0xaee200c8, 0xaee300cc, 0x8ee200c8,
+0x8ee300cc, 0x8f8300e4, 0x8f8200e0, 0x10620003,
+0x24630008, 0xaf8300e4, 0xaf8300e8, 0x8fbf004c,
+0x8fb60048, 0x8fb50044, 0x8fb40040, 0x8fb3003c,
+0x8fb20038, 0x8fb10034, 0x8fb00030, 0x3e00008,
+0x27bd0050, 0x27bdff90, 0xafb60060, 0xb021,
+0xafbf0068, 0xafbe0064, 0xafb5005c, 0xafb40058,
+0xafb30054, 0xafb20050, 0xafb1004c, 0xafb00048,
+0x8ee204d4, 0x8821, 0x24150001, 0x30420001,
+0x1440002a, 0xa3a0002f, 0x8f8700e0, 0x8f8800c4,
+0x8f8200e8, 0xe22023, 0x2c821000, 0x50400001,
+0x24841000, 0x420c2, 0x801821, 0x8ee400c8,
+0x8ee500cc, 0x1021, 0xa32821, 0xa3302b,
+0x822021, 0x862021, 0xaee400c8, 0xaee500cc,
+0x8f8300c8, 0x3c02000a, 0x3442efff, 0x1032023,
+0x44102b, 0x10400003, 0x3c02000a, 0x3442f000,
+0x822021, 0x801821, 0x8ee400c0, 0x8ee500c4,
+0x1021, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xaee400c0, 0xaee500c4, 0xaf8800c8,
+0xaf8700e4, 0x8003c5b, 0xaf8700e8, 0x3c020001,
+0x571021, 0x904283c0, 0x1040000b, 0x0,
+0x3c130001, 0x2779821, 0x8e7383c4, 0x3c100001,
+0x2178021, 0x8e1083c8, 0x3c120001, 0x2579021,
+0x8003a59, 0x8e5283cc, 0x8f8300e0, 0x8f8200e4,
+0x10430007, 0x3821, 0x8f8200e4, 0x24070001,
+0x8c430000, 0x8c440004, 0xafa30018, 0xafa4001c,
+0x14e0000e, 0x3c02ffff, 0x8f8200c4, 0xafa20010,
+0x8f8200c8, 0x3c040001, 0x248458b4, 0xafa20014,
+0x8f8600e0, 0x8f8700e4, 0x3c050006, 0xc002403,
+0x34a5f200, 0x8003c5b, 0x0, 0x8fa3001c,
+0x8fb20018, 0x3073ffff, 0x2673fffc, 0x621024,
+0x10400058, 0x2408021, 0x3c020080, 0x621024,
+0x1040000a, 0x3c040040, 0x8ee2007c, 0x24420001,
+0xaee2007c, 0x8ee2007c, 0x8ee201fc, 0x24420001,
+0xaee201fc, 0x8003c55, 0x8ee201fc, 0x3c060004,
+0x3c0b0001, 0x3c0a0002, 0x3c050010, 0x3c090008,
+0x8ee20080, 0x3c080020, 0x34078000, 0x24420001,
+0xaee20080, 0x8ee20080, 0x8fa2001c, 0x441824,
+0x10660021, 0xc3102b, 0x14400007, 0x0,
+0x106b0011, 0x0, 0x106a0015, 0x0,
+0x8003916, 0x42042, 0x10650023, 0xa3102b,
+0x14400005, 0x0, 0x10690019, 0x0,
+0x8003916, 0x42042, 0x10680021, 0x0,
+0x8003916, 0x42042, 0x8ee20034, 0x24420001,
+0xaee20034, 0x8ee20034, 0x8003916, 0x42042,
+0x8ee201ec, 0x24420001, 0xaee201ec, 0x8ee201ec,
+0x8003916, 0x42042, 0x8ee201f0, 0x24420001,
+0xaee201f0, 0x8ee201f0, 0x8003916, 0x42042,
+0x8ee201f4, 0x24420001, 0xaee201f4, 0x8ee201f4,
+0x8003916, 0x42042, 0x8ee20030, 0x24420001,
+0xaee20030, 0x8ee20030, 0x8003916, 0x42042,
+0x8ee201f8, 0x24420001, 0xaee201f8, 0x8ee201f8,
+0x42042, 0x1087033e, 0x0, 0x80038db,
+0x0, 0x3c020001, 0x571021, 0x904283b2,
+0x14400084, 0x24020001, 0x3c030001, 0x771821,
+0x906383b3, 0x1462007f, 0x3c020100, 0x8e430000,
+0x621024, 0x1040006f, 0x2402ffff, 0x14620005,
+0x24110001, 0x96430004, 0x3402ffff, 0x10620075,
+0x0, 0x92e204d8, 0x14400072, 0x0,
+0x3c020001, 0x571021, 0x8c4283b4, 0x28420005,
+0x10400020, 0x3821, 0x3c020001, 0x571021,
+0x8c4283b4, 0x18400016, 0x2821, 0x96060000,
+0x520c0, 0x971021, 0x9442777e, 0x14460009,
+0x971021, 0x94437780, 0x96020002, 0x14620005,
+0x971021, 0x94437782, 0x96020004, 0x50620008,
+0x24070001, 0x3c020001, 0x571021, 0x8c4283b4,
+0x24a50001, 0xa2102a, 0x5440ffee, 0x520c0,
+0x30e200ff, 0x10400302, 0x0, 0x80039a2,
+0x0, 0x2402021, 0xc0022fe, 0x24050006,
+0x3044001f, 0x428c0, 0x2e51021, 0x9442727c,
+0x30424000, 0x144002f6, 0xb71021, 0x9443727e,
+0x96020000, 0x1462000b, 0x418c0, 0xb71021,
+0x94437280, 0x96020002, 0x14620006, 0x418c0,
+0xb71021, 0x94437282, 0x96020004, 0x10620035,
+0x418c0, 0x2e31021, 0x9442727c, 0x30428000,
+0x144002e3, 0x2e31021, 0x944d727c, 0x96070000,
+0xd28c0, 0xb71021, 0x9442737e, 0x8003984,
+0x3021, 0x420c0, 0x2e41021, 0x9443737c,
+0x2e41021, 0x944d737c, 0x30638000, 0x14600010,
+0xd28c0, 0xb71021, 0x9442737e, 0x1447fff5,
+0x1a02021, 0xb71021, 0x94437380, 0x96020002,
+0x5462fff1, 0x420c0, 0xb71021, 0x94437382,
+0x96020004, 0x5462ffec, 0x420c0, 0x24060001,
+0x30c200ff, 0x104002c2, 0x0, 0x80039a2,
+0x0, 0x97430202, 0x96420000, 0x146202bc,
+0x0, 0x97430204, 0x96420002, 0x146202b8,
+0x0, 0x97430206, 0x96420004, 0x146202b4,
+0x0, 0x92420000, 0x3a230001, 0x30420001,
+0x431024, 0x10400074, 0x2402ffff, 0x8e030000,
+0x14620004, 0x3402ffff, 0x96030004, 0x1062006f,
+0x24150002, 0x3c020001, 0x571021, 0x904283b2,
+0x1440006a, 0x24150003, 0x92e204d8, 0x14400067,
+0x0, 0x3c020001, 0x571021, 0x8c4283b4,
+0x28420005, 0x10400020, 0x3821, 0x3c020001,
+0x571021, 0x8c4283b4, 0x18400016, 0x2821,
+0x96060000, 0x520c0, 0x971021, 0x9442777e,
+0x14460009, 0x971021, 0x94437780, 0x96020002,
+0x14620005, 0x971021, 0x94437782, 0x96020004,
+0x50620008, 0x24070001, 0x3c020001, 0x571021,
+0x8c4283b4, 0x24a50001, 0xa2102a, 0x5440ffee,
+0x520c0, 0x30e200ff, 0x14400044, 0x24150003,
+0x8003c55, 0x0, 0x2402021, 0xc0022fe,
+0x24050006, 0x3044001f, 0x428c0, 0x2e51021,
+0x9442727c, 0x30424000, 0x14400271, 0xb71021,
+0x9443727e, 0x96020000, 0x1462000b, 0x418c0,
+0xb71021, 0x94437280, 0x96020002, 0x14620006,
+0x418c0, 0xb71021, 0x94437282, 0x96020004,
+0x10620027, 0x418c0, 0x2e31021, 0x9442727c,
+0x30428000, 0x1440025e, 0x2e31021, 0x944d727c,
+0x96070000, 0xd28c0, 0xb71021, 0x9442737e,
+0x8003a09, 0x3021, 0x420c0, 0x2e41021,
+0x9443737c, 0x2e41021, 0x944d737c, 0x30638000,
+0x14600010, 0xd28c0, 0xb71021, 0x9442737e,
+0x1447fff5, 0x1a02021, 0xb71021, 0x94437380,
+0x96020002, 0x5462fff1, 0x420c0, 0xb71021,
+0x94437382, 0x96020004, 0x5462ffec, 0x420c0,
+0x24060001, 0x30c200ff, 0x1040023d, 0x0,
+0x8003a1c, 0x24150003, 0x24150001, 0x8f420260,
+0x53102b, 0x10400036, 0x0, 0x8f8300e4,
+0x8f8200e0, 0x10620003, 0x24630008, 0xaf8300e4,
+0xaf8300e8, 0x8ee400c0, 0x8ee500c4, 0x2601821,
+0x1021, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xaee400c0, 0xaee500c4, 0x8ee20058,
+0x24420001, 0xaee20058, 0x8ee20058, 0x8ee2007c,
+0x24420001, 0xaee2007c, 0x8ee2007c, 0x8f8200e0,
+0xafa20010, 0x8f8200e4, 0x3c040001, 0x248458c0,
+0xafa20014, 0x8fa60018, 0x8fa7001c, 0x3c050006,
+0xc002403, 0x34a5f203, 0x8003c5b, 0x0,
+0x8ee25240, 0xafa20010, 0x8ee25244, 0x3c040001,
+0x248458cc, 0xafa20014, 0x8ee60e10, 0x8ee70e18,
+0x3c050006, 0xc002403, 0x34a5f202, 0x8ee201c0,
+0x24420001, 0xaee201c0, 0x8003c02, 0x8ee201c0,
+0x96e20468, 0x53102b, 0x54400001, 0x3c168000,
+0x126001cb, 0x3c0e001f, 0x35ceffff, 0x3c0ffff5,
+0x35ef1000, 0x241e0040, 0x8ee2724c, 0x8f430280,
+0x24420001, 0x304207ff, 0x1062019e, 0x0,
+0x12c00012, 0x0, 0x8ee35240, 0x8ee25244,
+0x1062000a, 0x26f85244, 0x8ef45244, 0xafb80024,
+0x8ee35244, 0x21140, 0x24425248, 0x2e28821,
+0x24630001, 0x8003a85, 0x306d00ff, 0x8ee201e0,
+0x24420001, 0xaee201e0, 0x8ee201e0, 0x8ee30e10,
+0x8ee20e18, 0x1062ffca, 0x26f80e18, 0x8ef40e18,
+0xb021, 0xafb80024, 0x8ee30e18, 0x21140,
+0x24420e20, 0x2e28821, 0x24630001, 0x306d01ff,
+0x96e2046a, 0x30420010, 0x10400018, 0x34028100,
+0x9643000c, 0x14620015, 0x0, 0x3c020001,
+0x571021, 0x904283c0, 0x14400010, 0x0,
+0x9642000e, 0xa6220016, 0x8e420008, 0x8e430004,
+0x8e440000, 0x2673fffc, 0xae42000c, 0xae430008,
+0xae440004, 0x9622000e, 0x26100004, 0x24180001,
+0xa3b8002f, 0x34420200, 0xa622000e, 0x8e220000,
+0x8e230004, 0x3c040001, 0x34843800, 0x2003021,
+0x306a0007, 0x20a8023, 0x3641021, 0x202102b,
+0x10400005, 0x26a9821, 0x2041023, 0x3621823,
+0x3c020020, 0x438023, 0x26620007, 0x9623000a,
+0x2418fff8, 0x58c824, 0x6a1821, 0x79102b,
+0x10400002, 0x3206021, 0x606021, 0x1801821,
+0x24620007, 0x2418fff8, 0x586024, 0x26c102b,
+0x14400004, 0x1932823, 0x1832823, 0x8003ac3,
+0xc31021, 0xd31021, 0x4a2023, 0x1c4102b,
+0x54400001, 0x8f2021, 0x25420040, 0x4c102b,
+0x14400035, 0x5821, 0x94c3000c, 0x24020800,
+0x54620032, 0xae260018, 0x3c020001, 0x571021,
+0x904283c0, 0x5440002d, 0xae260018, 0x24c20017,
+0x1c2102b, 0x10400013, 0x0, 0x3c02fff5,
+0x461021, 0x90421017, 0x38430006, 0x2c630001,
+0x38420011, 0x2c420001, 0x621825, 0x10600014,
+0x24c20010, 0x1c2102b, 0x1040000e, 0x0,
+0x3c0bfff5, 0x1665821, 0x956b1010, 0x8003af4,
+0x2562000e, 0x90c20017, 0x38430006, 0x2c630001,
+0x38420011, 0x2c420001, 0x621825, 0x10600005,
+0x1601821, 0x94cb0010, 0x2562000e, 0x4a5821,
+0x1601821, 0x24620007, 0x2418fff8, 0x585824,
+0xc31021, 0x4a2023, 0x1c4102b, 0x10400002,
+0x1632823, 0x8f2021, 0xae260018, 0x3c020001,
+0x571021, 0x904283c0, 0x2102b, 0x216c0,
+0x15600002, 0xafa20044, 0x1805821, 0x30820001,
+0x10400007, 0x4021, 0x90880000, 0x24840001,
+0x1c4102b, 0x10400002, 0x24a5ffff, 0x8f2021,
+0x50a00012, 0x81c02, 0x2ca20002, 0x54400009,
+0x24a5ffff, 0x94820000, 0x24840002, 0x1024021,
+0x1c4102b, 0x10400006, 0x24a5fffe, 0x8003b21,
+0x8f2021, 0x90820000, 0x21200, 0x1024021,
+0x14a0fff2, 0x2ca20002, 0x81c02, 0x3102ffff,
+0x624021, 0x3108ffff, 0x1402821, 0x11400011,
+0x2002021, 0x2ca20002, 0x54400009, 0x24a5ffff,
+0x94820000, 0x24840002, 0x1024021, 0x1c4102b,
+0x10400006, 0x24a5fffe, 0x8003b38, 0x8f2021,
+0x90820000, 0x21200, 0x1024021, 0x14a0fff2,
+0x2ca20002, 0x81c02, 0x3102ffff, 0x624021,
+0x81c02, 0x3102ffff, 0x8f890120, 0x624021,
+0x27623800, 0x25230020, 0x62102b, 0x14400002,
+0x3108ffff, 0x27633000, 0x8f820128, 0x10620004,
+0x0, 0x8f820124, 0x14620007, 0x1402821,
+0x8ee201a4, 0x3821, 0x24420001, 0xaee201a4,
+0x8003bc9, 0x8ee201a4, 0x8e260000, 0x8e270004,
+0x81400, 0x3448000b, 0xad300008, 0xa52b000e,
+0xad280018, 0x8fb80044, 0x2021, 0x2961025,
+0x581025, 0xad22001c, 0xe5102b, 0xe53823,
+0xc43023, 0xc23023, 0xad260000, 0xad270004,
+0x8ee204c0, 0xad220010, 0xaf830120, 0x92e24e20,
+0x1440005f, 0x24070001, 0x2502ffee, 0x2c420002,
+0x14400003, 0x24020011, 0x15020024, 0x0,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c830000, 0x24020012, 0x1462000f, 0x0,
+0x8ee34e30, 0x8ee24e34, 0x1062000b, 0x0,
+0x8c820004, 0x24420001, 0xac820004, 0x8ee24e34,
+0x8ee34e30, 0x24420001, 0x105e002a, 0x0,
+0x8003ba8, 0x0, 0x8ee24e30, 0x24420001,
+0x505e0003, 0x1021, 0x8ee24e30, 0x24420001,
+0xaee24e30, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8003bc6, 0x24020012, 0x8ee24e30,
+0x210c0, 0x24425038, 0x2e22021, 0x8c830000,
+0x24020007, 0x1462001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x105e0007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x8003bb4,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400012, 0xac800000, 0x8003bc9,
+0x0, 0x8ee24e30, 0x24420001, 0x505e0003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x24020007, 0xac820000, 0x24020001, 0xac820004,
+0x14e00019, 0x3c050006, 0x3c040001, 0x24845890,
+0x8e220018, 0x34a5f209, 0xafa20010, 0x8e220000,
+0x8e230004, 0x2203021, 0x1603821, 0xc002403,
+0xafa30014, 0x93a2002f, 0x1040002a, 0x34028100,
+0x8e430004, 0x8e440008, 0x8e45000c, 0xa642000c,
+0xae430000, 0xae440004, 0xae450008, 0x96220016,
+0x8003c02, 0xa642000e, 0x1599000a, 0x26a1823,
+0x9622000e, 0xa623000a, 0x34420004, 0xa622000e,
+0x3c010001, 0x370821, 0xa02083c0, 0x8003bff,
+0x9821, 0x9624000a, 0x83102b, 0x54400001,
+0x801821, 0x24020001, 0xa623000a, 0x3c010001,
+0x370821, 0xa02283c0, 0x9622000a, 0x4a1821,
+0x2038021, 0x1d0102b, 0x54400001, 0x20f8021,
+0x2639823, 0xb021, 0x8fb80024, 0x1660fe5e,
+0xaf0d0000, 0x12600022, 0x0, 0x3c010001,
+0x370821, 0xac3383c4, 0x3c010001, 0x370821,
+0xac3083c8, 0x3c010001, 0x370821, 0xac3283cc,
+0x93a2002f, 0x10400008, 0x0, 0x3c020001,
+0x571021, 0x8c4283cc, 0x24420004, 0x3c010001,
+0x370821, 0xac2283cc, 0x8f430280, 0x8ee2724c,
+0x14620006, 0x0, 0x8ee201c4, 0x24420001,
+0xaee201c4, 0x8003c5b, 0x8ee201c4, 0x8ee201bc,
+0x24420001, 0xaee201bc, 0x8003c5b, 0x8ee201bc,
+0x97a4001e, 0x2484fffc, 0x801821, 0x8ee400c0,
+0x8ee500c4, 0x1021, 0xa32821, 0xa3302b,
+0x822021, 0x862021, 0x24020002, 0xaee400c0,
+0xaee500c4, 0x12a2000f, 0x2aa20003, 0x14400017,
+0x24020003, 0x16a20015, 0x0, 0x8ee200d0,
+0x8ee300d4, 0x24630001, 0x2c640001, 0x441021,
+0xaee200d0, 0xaee300d4, 0x8ee200d0, 0x8003c55,
+0x8ee300d4, 0x8ee200d8, 0x8ee300dc, 0x24630001,
+0x2c640001, 0x441021, 0xaee200d8, 0xaee300dc,
+0x8ee200d8, 0x8003c55, 0x8ee300dc, 0x8ee200c8,
+0x8ee300cc, 0x24630001, 0x2c640001, 0x441021,
+0xaee200c8, 0xaee300cc, 0x8ee200c8, 0x8ee300cc,
+0x8f8300e4, 0x8f8200e0, 0x10620003, 0x24630008,
+0xaf8300e4, 0xaf8300e8, 0x8fbf0068, 0x8fbe0064,
+0x8fb60060, 0x8fb5005c, 0x8fb40058, 0x8fb30054,
+0x8fb20050, 0x8fb1004c, 0x8fb00048, 0x3e00008,
+0x27bd0070, 0x27bdffe0, 0xafbf0018, 0x8ee30e14,
+0x8ee20e0c, 0x10620074, 0x0, 0x8ee30e0c,
+0x8ee20e14, 0x622023, 0x4820001, 0x24840200,
+0x8ee30e18, 0x8ee20e14, 0x43102b, 0x14400004,
+0x24020200, 0x8ee30e14, 0x8003c7d, 0x431823,
+0x8ee20e18, 0x8ee30e14, 0x431023, 0x2443ffff,
+0x804821, 0x69102a, 0x54400001, 0x604821,
+0x8f870100, 0x27623000, 0x24e80020, 0x102102b,
+0x50400001, 0x27682800, 0x8f820108, 0x11020004,
+0x0, 0x8f820104, 0x15020007, 0x1021,
+0x8ee201a8, 0x2021, 0x24420001, 0xaee201a8,
+0x8003cbf, 0x8ee201a8, 0x8ee40e14, 0x42140,
+0x801821, 0x8ee40460, 0x8ee50464, 0xa32821,
+0xa3302b, 0x822021, 0x862021, 0xace40000,
+0xace50004, 0x8ee30e14, 0x91140, 0xa4e2000e,
+0x24020002, 0xace20018, 0x31940, 0x24630e20,
+0x2e31021, 0xace20008, 0x8ee20e14, 0xace2001c,
+0x8ee204cc, 0xace20010, 0xaf880100, 0x92e204ec,
+0x14400011, 0x24040001, 0x8ee24e28, 0x24030040,
+0x24420001, 0x50430003, 0x1021, 0x8ee24e28,
+0x24420001, 0xaee24e28, 0x8ee24e28, 0x210c0,
+0x24424e38, 0x2e21821, 0x24020002, 0xac620000,
+0x24020001, 0xac620004, 0x1480000e, 0x24030040,
+0x8ee20e14, 0xafa20010, 0x8ee20e18, 0x3c050007,
+0xafa20014, 0x8ee60e0c, 0x8ee70e10, 0x3c040001,
+0x248458d4, 0xc002403, 0x34a5f001, 0x8003cdd,
+0x0, 0x8ee20500, 0x24420001, 0x50430003,
+0x1021, 0x8ee20500, 0x24420001, 0xaee20500,
+0x8ee20500, 0x21080, 0x571021, 0xac490508,
+0x8ee20e14, 0x491021, 0x304201ff, 0xaee20e14,
+0x8ee30e14, 0x8ee20e0c, 0x14620005, 0x0,
+0x8f820060, 0x2403fdff, 0x431024, 0xaf820060,
+0x8fbf0018, 0x3e00008, 0x27bd0020, 0x27bdffe0,
+0xafbf0018, 0x8ee3523c, 0x8ee25238, 0x10620074,
+0x0, 0x8ee35238, 0x8ee2523c, 0x622023,
+0x4820001, 0x24840100, 0x8ee35244, 0x8ee2523c,
+0x43102b, 0x14400004, 0x24020100, 0x8ee3523c,
+0x8003cff, 0x431823, 0x8ee25244, 0x8ee3523c,
+0x431023, 0x2443ffff, 0x804821, 0x69102a,
+0x54400001, 0x604821, 0x8f870100, 0x27623000,
+0x24e80020, 0x102102b, 0x50400001, 0x27682800,
+0x8f820108, 0x11020004, 0x0, 0x8f820104,
+0x15020007, 0x1021, 0x8ee201a8, 0x2021,
+0x24420001, 0xaee201a8, 0x8003d41, 0x8ee201a8,
+0x8ee4523c, 0x42140, 0x801821, 0x8ee40470,
+0x8ee50474, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xace40000, 0xace50004, 0x8ee3523c,
+0x91140, 0xa4e2000e, 0x24020003, 0xace20018,
+0x31940, 0x24635248, 0x2e31021, 0xace20008,
+0x8ee2523c, 0xace2001c, 0x8ee204cc, 0xace20010,
+0xaf880100, 0x92e204ec, 0x14400011, 0x24040001,
+0x8ee24e28, 0x24030040, 0x24420001, 0x50430003,
+0x1021, 0x8ee24e28, 0x24420001, 0xaee24e28,
+0x8ee24e28, 0x210c0, 0x24424e38, 0x2e21821,
+0x24020003, 0xac620000, 0x24020001, 0xac620004,
+0x1480000e, 0x24030040, 0x8ee2523c, 0xafa20010,
+0x8ee25244, 0x3c050007, 0xafa20014, 0x8ee65238,
+0x8ee75240, 0x3c040001, 0x248458e0, 0xc002403,
+0x34a5f010, 0x8003d5f, 0x0, 0x8ee20500,
+0x24420001, 0x50430003, 0x1021, 0x8ee20500,
+0x24420001, 0xaee20500, 0x8ee20500, 0x21080,
+0x571021, 0xac490508, 0x8ee2523c, 0x491021,
+0x304200ff, 0xaee2523c, 0x8ee3523c, 0x8ee25238,
+0x14620005, 0x0, 0x8f820060, 0x2403feff,
+0x431024, 0xaf820060, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x8f820120, 0x8ee34e34, 0x8f820124,
+0x8f860128, 0x24020040, 0x24630001, 0x50620003,
+0x1021, 0x8ee24e34, 0x24420001, 0xaee24e34,
+0x8ee24e34, 0x8ee44e34, 0x8ee34e30, 0x210c0,
+0x24425038, 0x14830007, 0x2e22821, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8003d92,
+0xaca00000, 0x8ee24e34, 0x24030040, 0x24420001,
+0x50430003, 0x1021, 0x8ee24e34, 0x24420001,
+0x210c0, 0x24425038, 0x2e22821, 0x8ca20004,
+0x8f830128, 0x21140, 0x621821, 0xaf830128,
+0xaca00000, 0x8cc20018, 0x2443fffe, 0x2c620012,
+0x10400008, 0x31080, 0x3c010001, 0x220821,
+0x8c2258f0, 0x400008, 0x0, 0x24020001,
+0xaee24e24, 0x3e00008, 0x0, 0x27bdffc8,
+0xafbf0030, 0xafb5002c, 0xafb40028, 0xafb30024,
+0xafb20020, 0xafb1001c, 0xafb00018, 0x8f830128,
+0x8f820124, 0x106202b0, 0x9821, 0x3c11001f,
+0x3631ffff, 0x3c12fff5, 0x36521000, 0x24150012,
+0x24140040, 0x8f8c0128, 0x8f820128, 0x24420020,
+0xaf820128, 0x9182001b, 0x8f830128, 0x2443fffe,
+0x2c620012, 0x1040029c, 0x31080, 0x3c010001,
+0x220821, 0x8c225948, 0x400008, 0x0,
+0x8f420218, 0x30420100, 0x10400007, 0x0,
+0x95830016, 0x95820018, 0x621823, 0x31402,
+0x431021, 0xa5820016, 0x8d82001c, 0x3c038000,
+0x3044ffff, 0x436824, 0x3c030800, 0x431824,
+0x11a00004, 0xad84001c, 0x41140, 0x8003dd8,
+0x24425248, 0x41140, 0x24420e20, 0x2e25821,
+0x9562000e, 0x3042fffc, 0x10600004, 0xa562000e,
+0x95840016, 0x8003ec0, 0x0, 0x8d690018,
+0x4021, 0x952a0000, 0x25290002, 0x95270000,
+0x25290002, 0x95260000, 0x25290002, 0x95250000,
+0x25290002, 0x95240000, 0x25290002, 0x95230000,
+0x25290002, 0x95220000, 0x25290002, 0x1475021,
+0x1465021, 0x1455021, 0x1445021, 0x1435021,
+0x1425021, 0xa1c02, 0x3142ffff, 0x625021,
+0xa1c02, 0x3142ffff, 0x625021, 0x96e2046a,
+0x314effff, 0x30420002, 0x10400044, 0x5021,
+0x25220014, 0x222102b, 0x10400014, 0x1201821,
+0x2405000a, 0x2021, 0x223102b, 0x54400001,
+0x721821, 0x94620000, 0x24630002, 0x24a5ffff,
+0x14a0fff9, 0x822021, 0x41c02, 0x3082ffff,
+0x622021, 0x41402, 0x3083ffff, 0x431021,
+0x3042ffff, 0x8003e33, 0x1425021, 0x952a0000,
+0x25290002, 0x95280000, 0x25290002, 0x95270000,
+0x25290002, 0x95260000, 0x25290002, 0x95250000,
+0x25290002, 0x95230000, 0x25290002, 0x95220000,
+0x25290002, 0x95240000, 0x25290002, 0x1485021,
+0x1475021, 0x1465021, 0x1455021, 0x1435021,
+0x1425021, 0x95220000, 0x95230002, 0x1445021,
+0x1425021, 0x1435021, 0xa1c02, 0x3142ffff,
+0x625021, 0xa1c02, 0x3142ffff, 0x625021,
+0x3148ffff, 0x51000001, 0x3408ffff, 0x8d620018,
+0x9443000c, 0x24020800, 0x54620005, 0xa5680010,
+0x9562000e, 0x34420002, 0xa562000e, 0xa5680010,
+0x96e2046a, 0x2821, 0x30420008, 0x14400056,
+0x3021, 0x8d630018, 0x24620024, 0x222102b,
+0x10400034, 0x24690010, 0x229102b, 0x54400001,
+0x1324821, 0x95250000, 0x24690014, 0x229102b,
+0x10400002, 0x24a5ffec, 0x1324821, 0x95220000,
+0x30420fff, 0x14400003, 0x25290002, 0x8003e60,
+0x24130001, 0x9821, 0xa03021, 0x229102b,
+0x54400001, 0x1324821, 0x91220001, 0x25290002,
+0xa22821, 0x229102b, 0x54400001, 0x1324821,
+0x25290002, 0x229102b, 0x54400001, 0x1324821,
+0x95220000, 0x25290002, 0xa22821, 0x229102b,
+0x54400001, 0x1324821, 0x95220000, 0x25290002,
+0xa22821, 0x229102b, 0x54400001, 0x1324821,
+0x95220000, 0x25290002, 0xa22821, 0x229102b,
+0x54400001, 0x1324821, 0x95220000, 0x8003e99,
+0xa22821, 0x94650010, 0x94620014, 0x24690016,
+0x30420fff, 0x14400003, 0x24a5ffec, 0x8003e8c,
+0x24130001, 0x9821, 0xa03021, 0x91230001,
+0x25290004, 0x95220000, 0x25290002, 0x95240000,
+0x25290002, 0xa32821, 0xa22821, 0x95220000,
+0x95230002, 0xa42821, 0xa22821, 0xa32821,
+0x51c02, 0x30a2ffff, 0x622821, 0x51c02,
+0x30a2ffff, 0x622821, 0x96e2046a, 0x30420001,
+0x1040001e, 0x2021, 0x95820016, 0x4e2023,
+0x41402, 0x822021, 0x326200ff, 0x50400002,
+0x862021, 0x852021, 0x41402, 0x822021,
+0x3084ffff, 0x50800001, 0x3404ffff, 0x8d620018,
+0x24430017, 0x223102b, 0x54400001, 0x721821,
+0x90620000, 0x38430011, 0x2c630001, 0x38420006,
+0x2c420001, 0x621825, 0x10600004, 0x0,
+0x9562000e, 0x34420001, 0xa562000e, 0x9562000e,
+0x240a0002, 0x30420004, 0x10400002, 0xa5640012,
+0x240a0004, 0x8f880120, 0x27623800, 0x25090020,
+0x122102b, 0x50400001, 0x27693000, 0x8f820128,
+0x11220004, 0x0, 0x8f820124, 0x15220007,
+0x24040020, 0x8ee201a4, 0x8021, 0x24420001,
+0xaee201a4, 0x8003f4f, 0x8ee201a4, 0x8ee5724c,
+0x8ee60490, 0x8ee70494, 0xad0b0008, 0xa504000e,
+0xad0a0018, 0x52940, 0xa01821, 0x1021,
+0xe33821, 0xe3202b, 0xc23021, 0xc43021,
+0xad060000, 0xad070004, 0x8ee2724c, 0x4d1025,
+0xad02001c, 0x8ee204c4, 0xad020010, 0xaf890120,
+0x92e24e20, 0x14400060, 0x24100001, 0x2543ffee,
+0x2c630002, 0x39420011, 0x2c420001, 0x621825,
+0x10600024, 0x0, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c820000, 0x1455000f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062000b,
+0x0, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee34e30, 0x24420001, 0x1054002b,
+0x0, 0x8003f2e, 0x0, 0x8ee24e30,
+0x24420001, 0x50540003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x24020001, 0x8003f4e,
+0xac950000, 0x8ee24e30, 0x210c0, 0x24425038,
+0x2e22021, 0x8c830000, 0x24020007, 0x1462001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x0, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee34e30, 0x24420001, 0x10540007,
+0x0, 0x8ee24e34, 0x24420001, 0x10620005,
+0x0, 0x8003f3a, 0x0, 0x14600005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400012,
+0xac800000, 0x8003f4f, 0x0, 0x8ee24e30,
+0x24420001, 0x50540003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x24020007, 0xac820000,
+0x24020001, 0xac820004, 0x1600000d, 0x0,
+0x8f820120, 0x3c040001, 0x24845938, 0xafa00014,
+0xafa20010, 0x8d86001c, 0x8f870124, 0x3c050008,
+0xc002403, 0x34a50001, 0x8004057, 0x0,
+0x8ee2724c, 0x24420001, 0x304207ff, 0x11a00006,
+0xaee2724c, 0x8ee201d0, 0x2442ffff, 0xaee201d0,
+0x8003f6b, 0x8ee201d0, 0x8ee201cc, 0x2442ffff,
+0xaee201cc, 0x8ee201cc, 0x8ee201d8, 0x2442ffff,
+0xaee201d8, 0x8004057, 0x8ee201d8, 0x8f420240,
+0x104000e5, 0x0, 0x8ee20e1c, 0x24420001,
+0x8004057, 0xaee20e1c, 0x9582001e, 0xad82001c,
+0x8f420240, 0x10400072, 0x0, 0x8ee20e1c,
+0x24420001, 0xaee20e1c, 0x8f430240, 0x43102b,
+0x144000d5, 0x0, 0x8f830120, 0x27623800,
+0x24660020, 0xc2102b, 0x50400001, 0x27663000,
+0x8f820128, 0x10c20004, 0x0, 0x8f820124,
+0x14c20007, 0x0, 0x8ee201a4, 0x8021,
+0x24420001, 0xaee201a4, 0x8003fda, 0x8ee201a4,
+0x8ee2724c, 0xac62001c, 0x8ee404a8, 0x8ee504ac,
+0x2462001c, 0xac620008, 0x24020008, 0xa462000e,
+0x24020011, 0xac620018, 0xac640000, 0xac650004,
+0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20,
+0x14400034, 0x24100001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c820000, 0x1455001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x0, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee34e30, 0x24420001, 0x10540007,
+0x0, 0x8ee24e34, 0x24420001, 0x10620005,
+0x0, 0x8003fc6, 0x0, 0x14600005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400011,
+0xac800000, 0x8003fda, 0x0, 0x8ee24e30,
+0x24420001, 0x50540003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x24020001, 0xac950000,
+0xac820004, 0x5600000b, 0x24100001, 0x8ee2724c,
+0x3c040001, 0x248458a8, 0xafa00014, 0xafa20010,
+0x8ee6724c, 0x8f470280, 0x3c050009, 0xc002403,
+0x34a5f008, 0x56000001, 0xaee00e1c, 0x8ee20188,
+0x24420001, 0xaee20188, 0x8004050, 0x8ee20188,
+0x8f830120, 0x27623800, 0x24660020, 0xc2102b,
+0x50400001, 0x27663000, 0x8f820128, 0x10c20004,
+0x0, 0x8f820124, 0x14c20007, 0x0,
+0x8ee201a4, 0x8021, 0x24420001, 0xaee201a4,
+0x8004044, 0x8ee201a4, 0x8ee2724c, 0xac62001c,
+0x8ee404a8, 0x8ee504ac, 0x2462001c, 0xac620008,
+0x24020008, 0xa462000e, 0x24020011, 0xac620018,
+0xac640000, 0xac650004, 0x8ee204c4, 0xac620010,
+0xaf860120, 0x92e24e20, 0x14400034, 0x24100001,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x8c820000, 0x1455001f, 0x0, 0x8ee34e30,
+0x8ee24e34, 0x1062001b, 0x0, 0x8c820004,
+0x24420001, 0xac820004, 0x8ee24e34, 0x8ee34e30,
+0x24420001, 0x10540007, 0x0, 0x8ee24e34,
+0x24420001, 0x10620005, 0x0, 0x8004030,
+0x0, 0x14600005, 0x0, 0x8f820128,
+0x24420020, 0xaf820128, 0x8f820128, 0x8c820004,
+0x2c420011, 0x50400011, 0xac800000, 0x8004044,
+0x0, 0x8ee24e30, 0x24420001, 0x50540003,
+0x1021, 0x8ee24e30, 0x24420001, 0xaee24e30,
+0x8ee24e30, 0x210c0, 0x24425038, 0x2e22021,
+0x24020001, 0xac950000, 0xac820004, 0x1600000b,
+0x0, 0x8ee2724c, 0x3c040001, 0x248458a8,
+0xafa00014, 0xafa20010, 0x8ee6724c, 0x8f470280,
+0x3c050009, 0xc002403, 0x34a5f008, 0x8ee20174,
+0x24420001, 0xaee20174, 0x8004057, 0x8ee20174,
+0x24020001, 0xaee24e24, 0x8f830128, 0x8f820124,
+0x1462fd58, 0x0, 0x8fbf0030, 0x8fb5002c,
+0x8fb40028, 0x8fb30024, 0x8fb20020, 0x8fb1001c,
+0x8fb00018, 0x3e00008, 0x27bd0038, 0x27bdffe8,
+0x27840208, 0x27450200, 0x24060008, 0xafbf0014,
+0xc00249a, 0xafb00010, 0x2021, 0x24100001,
+0x2402241f, 0xaf900210, 0xaf900200, 0xaf800204,
+0xaf820214, 0x8f460248, 0x24030004, 0x3c020040,
+0x3c010001, 0xac235cc4, 0x3c010001, 0xac235cc8,
+0x3c010001, 0xac205d9c, 0x3c010001, 0xac225cc0,
+0x3c010001, 0xac235cc8, 0xc005108, 0x24050004,
+0xc004822, 0x0, 0x8ee20000, 0x3c03feff,
+0x3463fffd, 0x431024, 0xaee20000, 0x3c023c00,
+0xaf82021c, 0x3c010001, 0x370821, 0xac3083ac,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x27bdffe0, 0x3c050008, 0x34a50400, 0xafbf0018,
+0xafa00010, 0xafa00014, 0x8f860200, 0x3c040001,
+0x248459f0, 0xc002403, 0x3821, 0x8ee20280,
+0x24420001, 0xaee20280, 0x8ee20280, 0x8f830200,
+0x3c023f00, 0x621824, 0x8fbf0018, 0x3c020400,
+0x3e00008, 0x27bd0020, 0x27bdffd8, 0xafbf0020,
+0xafb1001c, 0xafb00018, 0x8f900220, 0x8ee20214,
+0x3821, 0x24420001, 0xaee20214, 0x8ee20214,
+0x3c020300, 0x2021024, 0x10400027, 0x3c110400,
+0xc00429b, 0x0, 0x3c020100, 0x2021024,
+0x10400007, 0x0, 0x8ee20218, 0x24420001,
+0xaee20218, 0x8ee20218, 0x80040c6, 0x3c03fdff,
+0x8ee2021c, 0x24420001, 0xaee2021c, 0x8ee2021c,
+0x3c03fdff, 0x3463ffff, 0x3c0808ff, 0x3508ffff,
+0x8ee20000, 0x3c040001, 0x248459fc, 0x3c050008,
+0x2003021, 0x431024, 0xaee20000, 0x8f820220,
+0x3821, 0x3c030300, 0x481024, 0x431025,
+0xaf820220, 0xafa00010, 0xc002403, 0xafa00014,
+0x8004296, 0x0, 0x2111024, 0x1040001f,
+0x3c024000, 0x8f830224, 0x24021402, 0x1462000b,
+0x3c03fdff, 0x3c040001, 0x24845a08, 0x3c050008,
+0xafa00010, 0xafa00014, 0x8f860224, 0x34a5ffff,
+0xc002403, 0x3821, 0x3c03fdff, 0x8ee20000,
+0x3463ffff, 0x2002021, 0x431024, 0xc004e54,
+0xaee20000, 0x8ee20220, 0x24420001, 0xaee20220,
+0x8ee20220, 0x8f820220, 0x3c0308ff, 0x3463ffff,
+0x431024, 0x8004295, 0x511025, 0x2021024,
+0x10400142, 0x0, 0x8ee2022c, 0x24420001,
+0xaee2022c, 0x8ee2022c, 0x8f820220, 0x3c0308ff,
+0x3463ffff, 0x431024, 0x34420004, 0xaf820220,
+0x8f830054, 0x8f820054, 0x800410e, 0x24630002,
+0x8f820054, 0x621023, 0x2c420003, 0x1440fffc,
+0x0, 0x8f8600e0, 0x8f8400e4, 0x30c20007,
+0x10400012, 0x0, 0x8f8300e4, 0x2402fff8,
+0xc21024, 0x1043000d, 0x0, 0x8f820054,
+0x8f8300e0, 0x14c30009, 0x24440050, 0x8f820054,
+0x821023, 0x2c420051, 0x10400004, 0x0,
+0x8f8200e0, 0x10c2fff9, 0x0, 0x8f820220,
+0x3c0308ff, 0x3463fffd, 0x431024, 0xaf820220,
+0x8f8600e0, 0x30c20007, 0x10400003, 0x2402fff8,
+0xc23024, 0xaf8600e0, 0x8f8300c4, 0x3c02001f,
+0x3442ffff, 0x24680008, 0x48102b, 0x10400003,
+0x3c02fff5, 0x34421000, 0x1024021, 0x8f8b00c8,
+0x8f850120, 0x8f840124, 0x8004145, 0x6021,
+0x27623800, 0x82102b, 0x50400001, 0x27643000,
+0x10a40010, 0x318200ff, 0x8c820018, 0x38430007,
+0x2c630001, 0x3842000b, 0x2c420001, 0x621825,
+0x5060fff3, 0x24840020, 0x8ee20240, 0x240c0001,
+0x24420001, 0xaee20240, 0x8ee20240, 0x8c8b0008,
+0x318200ff, 0x14400065, 0x0, 0x3c020001,
+0x571021, 0x904283c0, 0x14400060, 0x0,
+0x8f8400e4, 0xc41023, 0x218c3, 0x4620001,
+0x24630200, 0x8f8900c4, 0x10600005, 0x24020001,
+0x10620009, 0x0, 0x8004187, 0x0,
+0x8ee20230, 0x1205821, 0x24420001, 0xaee20230,
+0x80041bc, 0x8ee20230, 0x8ee20234, 0x3c05000a,
+0x24420001, 0xaee20234, 0x8c8b0000, 0x34a5f000,
+0x8ee20234, 0x12b1823, 0xa3102b, 0x54400001,
+0x651821, 0x2c62233f, 0x14400040, 0x0,
+0x8f8200e8, 0x24420008, 0xaf8200e8, 0x8f8200e8,
+0x8f8200e4, 0x1205821, 0x24420008, 0xaf8200e4,
+0x80041bc, 0x8f8200e4, 0x8ee20238, 0x3c03000a,
+0x24420001, 0xaee20238, 0x8c840000, 0x3463f000,
+0x8ee20238, 0x883823, 0x67102b, 0x54400001,
+0xe33821, 0x3c020003, 0x34420d40, 0x47102b,
+0x10400003, 0x0, 0x80041bc, 0x805821,
+0x8f8200e4, 0x24440008, 0xaf8400e4, 0x8f8400e4,
+0x10860018, 0x3c05000a, 0x34a5f000, 0x3c0a0003,
+0x354a0d40, 0x8ee2007c, 0x24420001, 0xaee2007c,
+0x8c830000, 0x8ee2007c, 0x683823, 0xa7102b,
+0x54400001, 0xe53821, 0x147102b, 0x54400007,
+0x605821, 0x8f8200e4, 0x24440008, 0xaf8400e4,
+0x8f8400e4, 0x1486ffef, 0x0, 0x14860005,
+0x0, 0x1205821, 0xaf8600e4, 0x80041bc,
+0xaf8600e8, 0xaf8400e4, 0xaf8400e8, 0x8f8200c8,
+0x3c03000a, 0x3463f000, 0x483823, 0x67102b,
+0x54400001, 0xe33821, 0x3c020003, 0x34420d3f,
+0x47102b, 0x54400007, 0x6021, 0x1683823,
+0x67102b, 0x54400003, 0xe33821, 0x80041cf,
+0x3c020003, 0x3c020003, 0x34420d3f, 0x47102b,
+0x14400016, 0x318200ff, 0x14400006, 0x0,
+0x3c020001, 0x571021, 0x904283c0, 0x1040000f,
+0x0, 0x8ee2023c, 0x3c04fdff, 0x8ee30000,
+0x3484ffff, 0x24420001, 0xaee2023c, 0x8ee2023c,
+0x24020001, 0x641824, 0x3c010001, 0x370821,
+0xa02283b8, 0x800422c, 0xaee30000, 0xaf8b00c8,
+0x8f8300c8, 0x8f8200c4, 0x3c04000a, 0x3484f000,
+0x623823, 0x87102b, 0x54400001, 0xe43821,
+0x3c020003, 0x34420d40, 0x47102b, 0x2ce30001,
+0x431025, 0x10400008, 0x0, 0x8f820220,
+0x3c0308ff, 0x3463ffff, 0x431024, 0x3c034000,
+0x431025, 0xaf820220, 0x8f8600e0, 0x8f8400e4,
+0x10c4002a, 0x0, 0x8ee2007c, 0x24420001,
+0xaee2007c, 0x8ee2007c, 0x24c2fff8, 0xaf8200e0,
+0x3c020001, 0x8c427e30, 0x3c030008, 0x8f8600e0,
+0x431024, 0x1040001d, 0x0, 0x10c4001b,
+0x240dfff8, 0x3c0a000a, 0x354af000, 0x3c0c0080,
+0x24850008, 0x27622800, 0x50a20001, 0x27651800,
+0x8c880004, 0x8c820000, 0x8ca90000, 0x3103ffff,
+0x431021, 0x4d1024, 0x24430010, 0x6b102b,
+0x54400001, 0x6a1821, 0x12b102b, 0x54400001,
+0x12a4821, 0x10690002, 0x10c1025, 0xac820004,
+0xa02021, 0x14c4ffeb, 0x24850008, 0x8f820220,
+0x3c0308ff, 0x3463ffff, 0x431024, 0x34420002,
+0xaf820220, 0x8f830054, 0x8f820054, 0x8004237,
+0x24630001, 0x8f820054, 0x621023, 0x2c420002,
+0x1440fffc, 0x0, 0x8f820220, 0x3c0308ff,
+0x3463fffb, 0x431024, 0xaf820220, 0x6010055,
+0x0, 0x8ee20228, 0x24420001, 0xaee20228,
+0x8ee20228, 0x8f820220, 0x3c0308ff, 0x3463ffff,
+0x431024, 0x34420004, 0xaf820220, 0x8f830054,
+0x8f820054, 0x8004251, 0x24630002, 0x8f820054,
+0x621023, 0x2c420003, 0x1440fffc, 0x0,
+0x8f8600e0, 0x30c20007, 0x10400012, 0x0,
+0x8f8300e4, 0x2402fff8, 0xc21024, 0x1043000d,
+0x0, 0x8f820054, 0x8f8300e0, 0x14c30009,
+0x24440032, 0x8f820054, 0x821023, 0x2c420033,
+0x10400004, 0x0, 0x8f8200e0, 0x10c2fff9,
+0x0, 0x8f820220, 0x3c0308ff, 0x3463fffd,
+0x431024, 0xaf820220, 0x8f8600e0, 0x30c20007,
+0x10400003, 0x2402fff8, 0xc23024, 0xaf8600e0,
+0x240301f5, 0x8f8200e8, 0x673823, 0x718c0,
+0x431021, 0xaf8200e8, 0x8f8200e8, 0xaf8200e4,
+0x8ee2007c, 0x3c0408ff, 0x3484ffff, 0x471021,
+0xaee2007c, 0x8f820220, 0x3c038000, 0x34630002,
+0x441024, 0x431025, 0xaf820220, 0x8f830054,
+0x8f820054, 0x800428d, 0x24630001, 0x8f820054,
+0x621023, 0x2c420002, 0x1440fffc, 0x0,
+0x8f820220, 0x3c0308ff, 0x3463fffb, 0x431024,
+0xaf820220, 0x8fbf0020, 0x8fb1001c, 0x8fb00018,
+0x3e00008, 0x27bd0028, 0x3c020001, 0x8c425cd8,
+0x27bdffd8, 0x10400012, 0xafbf0020, 0x3c040001,
+0x24845a14, 0x3c050008, 0x24020001, 0x3c010001,
+0x370821, 0xac2283ac, 0xafa00010, 0xafa00014,
+0x8f860220, 0x34a50498, 0x3c010001, 0xac205cd8,
+0x3c010001, 0xac225ccc, 0xc002403, 0x3821,
+0x8f420268, 0x3c037fff, 0x3463ffff, 0x431024,
+0xaf420268, 0x8ee204d0, 0x8ee404d4, 0x2403fffe,
+0x431024, 0x30840002, 0x1080011e, 0xaee204d0,
+0x8ee204d4, 0x2403fffd, 0x431024, 0xaee204d4,
+0x8f820044, 0x3c030600, 0x34632000, 0x34420020,
+0xaf820044, 0xafa30018, 0x8ee20608, 0x8f430228,
+0x24420001, 0x304a00ff, 0x514300fe, 0xafa00010,
+0x8ee20608, 0x210c0, 0x571021, 0x8fa30018,
+0x8fa4001c, 0xac43060c, 0xac440610, 0x8f830054,
+0x8f820054, 0x24690032, 0x1221023, 0x2c420033,
+0x1040006a, 0x5821, 0x24180008, 0x240f000d,
+0x240d0007, 0x240c0040, 0x240e0001, 0x8f870120,
+0x27623800, 0x24e80020, 0x102102b, 0x50400001,
+0x27683000, 0x8f820128, 0x11020004, 0x0,
+0x8f820124, 0x15020007, 0x1021, 0x8ee201a4,
+0x2821, 0x24420001, 0xaee201a4, 0x800433d,
+0x8ee201a4, 0x8ee40608, 0x420c0, 0x801821,
+0x8ee40430, 0x8ee50434, 0xa32821, 0xa3302b,
+0x822021, 0x862021, 0xace40000, 0xace50004,
+0x8ee20608, 0xa4f8000e, 0xacef0018, 0xacea001c,
+0x210c0, 0x2442060c, 0x2e21021, 0xace20008,
+0x8ee204c4, 0xace20010, 0xaf880120, 0x92e24e20,
+0x14400033, 0x24050001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c820000, 0x144d001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x0, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee34e30, 0x24420001, 0x104c0007,
+0x0, 0x8ee24e34, 0x24420001, 0x10620005,
+0x0, 0x800432a, 0x0, 0x14600005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400010,
+0xac800000, 0x800433d, 0x0, 0x8ee24e30,
+0x24420001, 0x504c0003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0xac8d0000, 0xac8e0004,
+0x54a00006, 0x240b0001, 0x8f820054, 0x1221023,
+0x2c420033, 0x1440ff9d, 0x0, 0x316300ff,
+0x24020001, 0x54620079, 0xafa00010, 0xaeea0608,
+0x8f830054, 0x8f820054, 0x24690032, 0x1221023,
+0x2c420033, 0x10400061, 0x5821, 0x240d0008,
+0x240c0011, 0x24080012, 0x24070040, 0x240a0001,
+0x8f830120, 0x27623800, 0x24660020, 0xc2102b,
+0x50400001, 0x27663000, 0x8f820128, 0x10c20004,
+0x0, 0x8f820124, 0x14c20007, 0x0,
+0x8ee201a4, 0x2821, 0x24420001, 0xaee201a4,
+0x80043a9, 0x8ee201a4, 0x8ee20608, 0xac62001c,
+0x8ee404a0, 0x8ee504a4, 0x2462001c, 0xac620008,
+0xa46d000e, 0xac6c0018, 0xac640000, 0xac650004,
+0x8ee204c4, 0xac620010, 0xaf860120, 0x92e24e20,
+0x14400033, 0x24050001, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0x8c820000, 0x1448001f,
+0x0, 0x8ee34e30, 0x8ee24e34, 0x1062001b,
+0x0, 0x8c820004, 0x24420001, 0xac820004,
+0x8ee24e34, 0x8ee34e30, 0x24420001, 0x10470007,
+0x0, 0x8ee24e34, 0x24420001, 0x10620005,
+0x0, 0x8004396, 0x0, 0x14600005,
+0x0, 0x8f820128, 0x24420020, 0xaf820128,
+0x8f820128, 0x8c820004, 0x2c420011, 0x50400010,
+0xac800000, 0x80043a9, 0x0, 0x8ee24e30,
+0x24420001, 0x50470003, 0x1021, 0x8ee24e30,
+0x24420001, 0xaee24e30, 0x8ee24e30, 0x210c0,
+0x24425038, 0x2e22021, 0xac880000, 0xac8a0004,
+0x54a00006, 0x240b0001, 0x8f820054, 0x1221023,
+0x2c420033, 0x1440ffa6, 0x0, 0x316300ff,
+0x24020001, 0x54620003, 0xafa00010, 0x80043d6,
+0x0, 0x3c040001, 0x24845a20, 0xafa00014,
+0x8f860120, 0x8f870124, 0x3c050009, 0xc002403,
+0x34a5f011, 0x80043d6, 0x0, 0x3c040001,
+0x24845a2c, 0xafa00014, 0x8f860120, 0x8f870124,
+0x3c050009, 0xc002403, 0x34a5f010, 0x80043d6,
+0x0, 0x3c040001, 0x24845a38, 0xafa00014,
+0x8ee60608, 0x8f470228, 0x3c050009, 0xc002403,
+0x34a5f00f, 0x8ee201ac, 0x24420001, 0xaee201ac,
+0x8ee201ac, 0x8ee2015c, 0x24420001, 0xaee2015c,
+0x8ee2015c, 0x8fbf0020, 0x3e00008, 0x27bd0028,
+0x3c020001, 0x8c425cd8, 0x27bdffe0, 0x1440000d,
+0xafbf0018, 0x3c040001, 0x24845a44, 0x3c050008,
+0xafa00010, 0xafa00014, 0x8f860220, 0x34a50499,
+0x24020001, 0x3c010001, 0xac225cd8, 0xc002403,
+0x3821, 0x8ee204d0, 0x3c030001, 0x771821,
+0x946383b2, 0x34420001, 0x10600007, 0xaee204d0,
+0x8f820220, 0x3c0308ff, 0x3463ffff, 0x431024,
+0x34420008, 0xaf820220, 0x2021, 0xc0052a2,
+0x24050004, 0xaf420268, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x3c120001,
+0x26521200, 0x3c140001, 0x8e945c50, 0x3c100001,
+0x26101120, 0x3c15c000, 0x36b50060, 0x8e8a0000,
+0x8eb30000, 0x26a400b, 0x248000a, 0x200f821,
+0x0, 0xd, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x80014d6,
+0x0, 0x80014d8, 0x3c0a0001, 0x80014d8,
+0x3c0a0002, 0x80014d8, 0x0, 0x80024a6,
+0x0, 0x80014d8, 0x3c0a0003, 0x80014d8,
+0x3c0a0004, 0x8002f8c, 0x0, 0x80014d8,
+0x3c0a0005, 0x8003ce8, 0x0, 0x8003c66,
+0x0, 0x80014d8, 0x3c0a0006, 0x80014d8,
+0x3c0a0007, 0x80014d8, 0x0, 0x80014d8,
+0x0, 0x80014d8, 0x0, 0x8002a75,
+0x0, 0x80014d8, 0x3c0a000b, 0x80014d8,
+0x3c0a000c, 0x80014d8, 0x3c0a000d, 0x800237a,
+0x0, 0x8002339, 0x0, 0x80014d8,
+0x3c0a000e, 0x8001b3c, 0x0, 0x80024a4,
+0x0, 0x80014d8, 0x3c0a000f, 0x80040a7,
+0x0, 0x8004091, 0x0, 0x80014d8,
+0x3c0a0010, 0x80014ee, 0x0, 0x80014d8,
+0x3c0a0011, 0x80014d8, 0x3c0a0012, 0x80014d8,
+0x3c0a0013, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x3c030001,
+0x34633800, 0x24050080, 0x2404001f, 0x2406ffff,
+0x24020001, 0xaf80021c, 0xaf820200, 0xaf820220,
+0x3631021, 0xaf8200c0, 0x3631021, 0xaf8200c4,
+0x3631021, 0xaf8200c8, 0x27623800, 0xaf8200d0,
+0x27623800, 0xaf8200d4, 0x27623800, 0xaf8200d8,
+0x27621800, 0xaf8200e0, 0x27621800, 0xaf8200e4,
+0x27621800, 0xaf8200e8, 0x27621000, 0xaf8200f0,
+0x27621000, 0xaf8200f4, 0x27621000, 0xaf8200f8,
+0xaca00000, 0x2484ffff, 0x1486fffd, 0x24a50004,
+0x8f830040, 0x3c02f000, 0x621824, 0x3c025000,
+0x1062000c, 0x43102b, 0x14400006, 0x3c026000,
+0x3c024000, 0x10620008, 0x24020800, 0x8004539,
+0x0, 0x10620004, 0x24020800, 0x8004539,
+0x0, 0x24020700, 0x3c010001, 0xac225cdc,
+0x3e00008, 0x0, 0x27bdffd8, 0xafbf0024,
+0xafb00020, 0x8f830054, 0x8f820054, 0x3c010001,
+0xac205cc4, 0x8004545, 0x24630064, 0x8f820054,
+0x621023, 0x2c420065, 0x1440fffc, 0x0,
+0xc004d71, 0x0, 0x24040001, 0x2821,
+0x27a60018, 0x34028000, 0xc00498e, 0xa7a20018,
+0x8f830054, 0x8f820054, 0x8004556, 0x24630064,
+0x8f820054, 0x621023, 0x2c420065, 0x1440fffc,
+0x24040001, 0x24050001, 0xc00494c, 0x27a60018,
+0x8f830054, 0x8f820054, 0x8004562, 0x24630064,
+0x8f820054, 0x621023, 0x2c420065, 0x1440fffc,
+0x24040001, 0x24050001, 0xc00494c, 0x27a60018,
+0x8f830054, 0x8f820054, 0x800456e, 0x24630064,
+0x8f820054, 0x621023, 0x2c420065, 0x1440fffc,
+0x24040001, 0x3c060001, 0x24c65da0, 0xc00494c,
+0x24050002, 0x8f830054, 0x8f820054, 0x800457b,
+0x24630064, 0x8f820054, 0x621023, 0x2c420065,
+0x1440fffc, 0x24040001, 0x24050003, 0x3c100001,
+0x26105da2, 0xc00494c, 0x2003021, 0x97a60018,
+0x3c070001, 0x94e75da0, 0x3c040001, 0x24845ab0,
+0xafa00014, 0x96020000, 0x3c05000d, 0x34a50100,
+0xc002403, 0xafa20010, 0x97a20018, 0x1040004c,
+0x24036040, 0x96020000, 0x3042fff0, 0x1443000a,
+0x24020020, 0x3c030001, 0x94635da0, 0x54620009,
+0x24027830, 0x24020003, 0x3c010001, 0xac225cc4,
+0x80045ac, 0x24020005, 0x3c030001, 0x94635da0,
+0x24027830, 0x1462000f, 0x24030010, 0x3c020001,
+0x94425da2, 0x3042fff0, 0x1443000a, 0x24020003,
+0x3c010001, 0xac225cc4, 0x24020006, 0x3c010001,
+0xac225db0, 0x3c010001, 0xac225dbc, 0x80045e6,
+0x3c09fff0, 0x3c020001, 0x8c425cc4, 0x3c030001,
+0x94635da0, 0x34420001, 0x3c010001, 0xac225cc4,
+0x24020015, 0x1462000f, 0x0, 0x3c020001,
+0x94425da2, 0x3042fff0, 0x3843f420, 0x2c630001,
+0x3842f430, 0x2c420001, 0x621825, 0x10600005,
+0x24020003, 0x3c010001, 0xac225dbc, 0x80045e6,
+0x3c09fff0, 0x3c030001, 0x94635da0, 0x24027810,
+0x1462000b, 0x24020002, 0x3c020001, 0x94425da2,
+0x3042fff0, 0x14400006, 0x24020002, 0x24020004,
+0x3c010001, 0xac225dbc, 0x80045e6, 0x3c09fff0,
+0x3c010001, 0xac225dbc, 0x80045e6, 0x3c09fff0,
+0x3c020001, 0x8c425cc4, 0x24030001, 0x3c010001,
+0xac235dbc, 0x34420004, 0x3c010001, 0xac225cc4,
+0x3c09fff0, 0x3529bdc0, 0x3c060001, 0x8cc65cc4,
+0x3c040001, 0x24845ab0, 0x24020001, 0x3c010001,
+0xac225ccc, 0x8f820054, 0x3c070001, 0x8ce75dbc,
+0x3c030001, 0x94635da0, 0x3c080001, 0x95085da2,
+0x3c05000d, 0x34a50100, 0x3c010001, 0xac205cc8,
+0x491021, 0x3c010001, 0xac225dac, 0xafa30010,
+0xc002403, 0xafa80014, 0x8fbf0024, 0x8fb00020,
+0x3e00008, 0x27bd0028, 0x27bdffe8, 0x3c050001,
+0x8ca55cc8, 0x24060004, 0x24020001, 0x14a20014,
+0xafbf0010, 0x3c020001, 0x8c427e3c, 0x30428000,
+0x10400005, 0x3c04000f, 0x3c030001, 0x8c635dbc,
+0x8004617, 0x34844240, 0x3c040004, 0x3c030001,
+0x8c635dbc, 0x348493e0, 0x24020005, 0x14620016,
+0x0, 0x3c04003d, 0x800462f, 0x34840900,
+0x3c020001, 0x8c427e38, 0x30428000, 0x10400005,
+0x3c04001e, 0x3c030001, 0x8c635dbc, 0x800462a,
+0x34848480, 0x3c04000f, 0x3c030001, 0x8c635dbc,
+0x34844240, 0x24020005, 0x14620003, 0x0,
+0x3c04007a, 0x34841200, 0x3c020001, 0x8c425dac,
+0x8f830054, 0x441021, 0x431023, 0x44102b,
+0x14400037, 0x0, 0x3c020001, 0x8c425cd0,
+0x14400033, 0x0, 0x3c010001, 0x10c00025,
+0xac205ce0, 0x3c090001, 0x8d295cc4, 0x24070001,
+0x3c044000, 0x3c080001, 0x25087e3c, 0x250afffc,
+0x52842, 0x14a00002, 0x24c6ffff, 0x24050008,
+0xa91024, 0x10400010, 0x0, 0x14a70008,
+0x0, 0x8d020000, 0x441024, 0x1040000a,
+0x0, 0x3c010001, 0x800465b, 0xac255ce0,
+0x8d420000, 0x441024, 0x10400003, 0x0,
+0x3c010001, 0xac275ce0, 0x3c020001, 0x8c425ce0,
+0x6182b, 0x2c420001, 0x431024, 0x5440ffe5,
+0x52842, 0x8f820054, 0x3c030001, 0x8c635ce0,
+0x3c010001, 0xac225dac, 0x1060002a, 0x24020001,
+0x3c010001, 0xac255cc8, 0x3c010001, 0xac225ccc,
+0x3c020001, 0x8c425ce0, 0x10400022, 0x0,
+0x3c020001, 0x8c425ccc, 0x1040000a, 0x24020001,
+0x3c010001, 0xac205ccc, 0x3c010001, 0x370821,
+0xac2283ac, 0x3c010001, 0xac205d4c, 0x3c010001,
+0xac225d04, 0x3c030001, 0x771821, 0x8c6383ac,
+0x24020008, 0x10620005, 0x24020001, 0xc004695,
+0x0, 0x8004692, 0x0, 0x3c030001,
+0x8c635cc8, 0x10620007, 0x2402000e, 0x3c030001,
+0x8c637dd0, 0x10620003, 0x0, 0xc004e54,
+0x8f840220, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffe0, 0x3c02fdff, 0xafbf0018, 0x8ee30000,
+0x3c050001, 0x8ca55cc8, 0x3c040001, 0x8c845cf0,
+0x3442ffff, 0x621824, 0x14a40008, 0xaee30000,
+0x3c030001, 0x771821, 0x8c6383ac, 0x3c020001,
+0x8c425cf4, 0x10620008, 0x0, 0x3c020001,
+0x571021, 0x8c4283ac, 0x3c010001, 0xac255cf0,
+0x3c010001, 0xac225cf4, 0x3c030001, 0x8c635cc8,
+0x24020002, 0x10620169, 0x2c620003, 0x10400005,
+0x24020001, 0x10620008, 0x0, 0x800481c,
+0x0, 0x24020004, 0x106200b1, 0x24020001,
+0x800481d, 0x0, 0x3c020001, 0x571021,
+0x8c4283ac, 0x2443ffff, 0x2c620008, 0x1040015a,
+0x31080, 0x3c010001, 0x220821, 0x8c225ac8,
+0x400008, 0x0, 0x3c030001, 0x8c635dbc,
+0x24020005, 0x14620014, 0x0, 0x3c020001,
+0x8c425cd4, 0x1040000a, 0x24020003, 0xc004822,
+0x0, 0x24020002, 0x3c010001, 0x370821,
+0xac2283ac, 0x3c010001, 0x80046e0, 0xac205cd4,
+0x3c010001, 0x370821, 0xac2283ac, 0x3c010001,
+0x800481f, 0xac205c60, 0xc004822, 0x0,
+0x3c020001, 0x8c425cd4, 0x3c010001, 0xac205c60,
+0x104000dd, 0x24020002, 0x3c010001, 0x370821,
+0xac2283ac, 0x3c010001, 0x800481f, 0xac205cd4,
+0x3c030001, 0x8c635dbc, 0x24020005, 0x14620003,
+0x24020001, 0x3c010001, 0xac225d00, 0xc0049cf,
+0x0, 0x3c030001, 0x8c635d00, 0x800478e,
+0x24020011, 0x3c050001, 0x8ca55cc8, 0x3c060001,
+0x8cc67e3c, 0xc005108, 0x2021, 0x24020005,
+0x3c010001, 0xac205cd4, 0x3c010001, 0x370821,
+0x800481f, 0xac2283ac, 0x3c040001, 0x24845abc,
+0x3c05000f, 0x34a50100, 0x3021, 0x3821,
+0xafa00010, 0xc002403, 0xafa00014, 0x800481f,
+0x0, 0x8f820220, 0x3c03f700, 0x431025,
+0x80047b7, 0xaf820220, 0x8f820220, 0x3c030004,
+0x431024, 0x144000a9, 0x24020007, 0x8f830054,
+0x3c020001, 0x8c425da4, 0x2463d8f0, 0x431023,
+0x2c422710, 0x144000f8, 0x24020001, 0x800481d,
+0x0, 0x3c050001, 0x8ca55cc8, 0xc0052a2,
+0x2021, 0xc005386, 0x2021, 0x3c030001,
+0x8c637e34, 0x46100ea, 0x24020001, 0x3c020008,
+0x621024, 0x10400006, 0x0, 0x8f820214,
+0x3c03ffff, 0x431024, 0x8004741, 0x3442251f,
+0x8f820214, 0x3c03ffff, 0x431024, 0x3442241f,
+0xaf820214, 0x8ee20000, 0x3c030200, 0x431025,
+0xaee20000, 0x8f820220, 0x2403fffb, 0x431024,
+0xaf820220, 0x8f820220, 0x34420002, 0xaf820220,
+0x24020008, 0x3c010001, 0x370821, 0xac2283ac,
+0x8f820220, 0x3c030004, 0x431024, 0x14400005,
+0x0, 0x8f820220, 0x3c03f700, 0x431025,
+0xaf820220, 0x3c030001, 0x8c635dbc, 0x24020005,
+0x1462000a, 0x0, 0x3c020001, 0x94425da2,
+0x24429fbc, 0x2c420004, 0x10400004, 0x24040018,
+0x24050002, 0xc004d93, 0x24060020, 0xc0043dd,
+0x0, 0x3c010001, 0x800481f, 0xac205d50,
+0x3c020001, 0x571021, 0x8c4283ac, 0x2443ffff,
+0x2c620008, 0x104000ac, 0x31080, 0x3c010001,
+0x220821, 0x8c225ae8, 0x400008, 0x0,
+0xc00429b, 0x0, 0x3c010001, 0xac205ccc,
+0xaf800204, 0x3c010001, 0xc004822, 0xac207e20,
+0x24020001, 0x3c010001, 0xac225ce4, 0x24020002,
+0x3c010001, 0x370821, 0x800481f, 0xac2283ac,
+0xc00489f, 0x0, 0x3c030001, 0x8c635ce4,
+0x24020009, 0x14620090, 0x24020003, 0x3c010001,
+0x370821, 0x800481f, 0xac2283ac, 0x3c020001,
+0x8c427e38, 0x30424000, 0x10400005, 0x0,
+0x8f820044, 0x3c03ffff, 0x800479f, 0x34637fff,
+0x8f820044, 0x2403ff7f, 0x431024, 0xaf820044,
+0x8f830054, 0x80047b9, 0x24020004, 0x8f830054,
+0x3c020001, 0x8c425da4, 0x2463d8f0, 0x431023,
+0x2c422710, 0x14400074, 0x24020005, 0x3c010001,
+0x370821, 0x800481f, 0xac2283ac, 0x8f820220,
+0x3c03f700, 0x431025, 0xaf820220, 0xaf800204,
+0x3c010001, 0xac207e20, 0x8f830054, 0x24020006,
+0x3c010001, 0x370821, 0xac2283ac, 0x3c010001,
+0x800481f, 0xac235da4, 0x8f830054, 0x3c020001,
+0x8c425da4, 0x2463fff6, 0x431023, 0x2c42000a,
+0x14400059, 0x0, 0x24020007, 0x3c010001,
+0x370821, 0x800481f, 0xac2283ac, 0x8f820220,
+0x3c04f700, 0x441025, 0xaf820220, 0x8f820220,
+0x3c030300, 0x431024, 0x14400005, 0x1821,
+0x8f820220, 0x24030001, 0x441025, 0xaf820220,
+0x10600043, 0x24020001, 0x8f820214, 0x3c03ffff,
+0x3c040001, 0x8c845d98, 0x431024, 0x3442251f,
+0xaf820214, 0x24020008, 0x3c010001, 0x370821,
+0x1080000b, 0xac2283ac, 0x3c020001, 0x8c425d74,
+0x14400007, 0x24020001, 0x3c010001, 0xac227dd0,
+0xc004e54, 0x8f840220, 0x800480c, 0x0,
+0x8f820220, 0x3c030008, 0x431024, 0x14400017,
+0x2402000e, 0x3c010001, 0xac227dd0, 0x8ee20000,
+0x2021, 0x3c030200, 0x431025, 0xc005386,
+0xaee20000, 0x8f820220, 0x2403fffb, 0x431024,
+0xaf820220, 0x8f820220, 0x34420002, 0xc0043dd,
+0xaf820220, 0x3c050001, 0x8ca55cc8, 0xc0052a2,
+0x2021, 0x800481f, 0x0, 0x3c020001,
+0x8c425d74, 0x10400010, 0x0, 0x3c020001,
+0x8c425d70, 0x2442ffff, 0x3c010001, 0xac225d70,
+0x14400009, 0x24020002, 0x3c010001, 0xac205d74,
+0x3c010001, 0x800481f, 0xac225d70, 0x24020001,
+0x3c010001, 0xac225ccc, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x8f820200, 0x8f820220, 0x8f820220,
+0x34420004, 0xaf820220, 0x8f820200, 0x3c060001,
+0x8cc65cc8, 0x34420004, 0xaf820200, 0x24020002,
+0x10c2003a, 0x2cc20003, 0x10400005, 0x24020001,
+0x10c20008, 0x0, 0x8004868, 0x0,
+0x24020004, 0x10c20013, 0x24020001, 0x8004868,
+0x0, 0x3c030001, 0x8c635cb8, 0x3c020001,
+0x8c425cc0, 0x3c040001, 0x8c845cdc, 0x3c050001,
+0x8ca55cbc, 0xaf860200, 0xaf860220, 0x34630022,
+0x441025, 0x451025, 0x34420002, 0x8004867,
+0xaf830200, 0x3c030001, 0x8c635d98, 0xaf820200,
+0x10600009, 0xaf820220, 0x3c020001, 0x8c425d74,
+0x14400005, 0x3c033f00, 0x3c020001, 0x8c425cb0,
+0x800485b, 0x346300e0, 0x3c020001, 0x8c425cb0,
+0x3c033f00, 0x346300e2, 0x431025, 0xaf820200,
+0x3c030001, 0x8c635cb4, 0x3c04f700, 0x3c020001,
+0x8c425cc0, 0x3c050001, 0x8ca55cdc, 0x641825,
+0x431025, 0x451025, 0xaf820220, 0x3e00008,
+0x0, 0x8f820220, 0x3c030001, 0x8c635cc8,
+0x34420004, 0xaf820220, 0x24020001, 0x1062000f,
+0x0, 0x8f830054, 0x8f820054, 0x24630002,
+0x621023, 0x2c420003, 0x10400011, 0x0,
+0x8f820054, 0x621023, 0x2c420003, 0x1040000c,
+0x0, 0x8004879, 0x0, 0x8f830054,
+0x8f820054, 0x8004885, 0x24630007, 0x8f820054,
+0x621023, 0x2c420008, 0x1440fffc, 0x0,
+0x8f8400e0, 0x30820007, 0x1040000d, 0x0,
+0x8f820054, 0x8f8300e0, 0x14830009, 0x24450032,
+0x8f820054, 0xa21023, 0x2c420033, 0x10400004,
+0x0, 0x8f8200e0, 0x1082fff9, 0x0,
+0x8f820220, 0x2403fffd, 0x431024, 0xaf820220,
+0x3e00008, 0x0, 0x3c030001, 0x8c635ce4,
+0x3c020001, 0x8c425ce8, 0x50620004, 0x2463ffff,
+0x3c010001, 0xac235ce8, 0x2463ffff, 0x2c620009,
+0x1040009d, 0x31080, 0x3c010001, 0x220821,
+0x8c225b08, 0x400008, 0x0, 0x8f820044,
+0x34428080, 0xaf820044, 0x8f830054, 0x8004938,
+0x24020002, 0x8f830054, 0x3c020001, 0x8c425da8,
+0x2463d8f0, 0x431023, 0x2c422710, 0x1440008a,
+0x24020003, 0x8004945, 0x0, 0x8f820044,
+0x3c03ffff, 0x34637fff, 0x431024, 0xaf820044,
+0x8f830054, 0x8004938, 0x24020004, 0x8f830054,
+0x3c020001, 0x8c425da8, 0x2463fff6, 0x431023,
+0x2c42000a, 0x14400078, 0x24020005, 0x8004945,
+0x0, 0x8f820220, 0x3c03f700, 0x431025,
+0xaf820220, 0x8f820220, 0x2403fffb, 0x431024,
+0xaf820220, 0x8f820220, 0x34420002, 0xaf820220,
+0x3c023f00, 0x344200e0, 0xaf820200, 0x8f820200,
+0x2403fffd, 0x431024, 0xaf820200, 0x24040001,
+0x3405ffff, 0xaf840204, 0x8f830054, 0x8f820054,
+0x80048ec, 0x24630001, 0x8f820054, 0x621023,
+0x2c420002, 0x1440fffc, 0x0, 0x8f820224,
+0x42040, 0xa4102b, 0x1040fff2, 0x0,
+0x8f820220, 0x3c03f700, 0x431025, 0xaf820220,
+0x8f820214, 0x3c03ffff, 0x431024, 0x3442251f,
+0xaf820214, 0x8f820220, 0x2403fffb, 0x431024,
+0xaf820220, 0x8f820220, 0x3c04f700, 0x34840008,
+0x34420002, 0xaf820220, 0x8f820220, 0x3c033f00,
+0x346300e2, 0x441025, 0xaf820220, 0xaf830200,
+0x8f8400f0, 0x276217f8, 0x14820002, 0x24850008,
+0x27651000, 0x8f8200f4, 0x10a20007, 0x3c038000,
+0x34630040, 0x3c020001, 0x24425c70, 0xac820000,
+0xac830004, 0xaf8500f0, 0x8f830054, 0x8004938,
+0x24020006, 0x8f830054, 0x3c020001, 0x8c425da8,
+0x2463fff6, 0x431023, 0x2c42000a, 0x14400022,
+0x24020007, 0x8004945, 0x0, 0x8f8200e0,
+0xaf8200e4, 0x8f8200e0, 0xaf8200e8, 0x8f820220,
+0x34420004, 0xaf820220, 0x8f820220, 0x2403fff7,
+0x431024, 0xaf820220, 0x8f820044, 0x34428080,
+0xaf820044, 0x8f830054, 0x24020008, 0x3c010001,
+0xac225ce4, 0x3c010001, 0x8004947, 0xac235da8,
+0x8f830054, 0x3c020001, 0x8c425da8, 0x2463d8f0,
+0x431023, 0x2c422710, 0x14400003, 0x24020009,
+0x3c010001, 0xac225ce4, 0x3e00008, 0x0,
+0x0, 0x0, 0x0, 0x27bdffd8,
+0xafb20018, 0x809021, 0xafb3001c, 0xa09821,
+0xafb10014, 0xc08821, 0xafb00010, 0x8021,
+0xafbf0020, 0xa6200000, 0xc004d4b, 0x24040001,
+0x26100001, 0x2e020020, 0x1440fffb, 0x0,
+0xc004d4b, 0x2021, 0xc004d4b, 0x24040001,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0x24100010, 0x2501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d4b, 0x108042, 0x1600fffa,
+0x2501024, 0x24100010, 0x2701024, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fffa, 0x2701024, 0xc004d71, 0x34108000,
+0xc004d71, 0x0, 0xc004d2b, 0x0,
+0x50400005, 0x108042, 0x96220000, 0x501025,
+0xa6220000, 0x108042, 0x1600fff7, 0x0,
+0xc004d71, 0x0, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0028, 0x27bdffd8, 0xafb10014, 0x808821,
+0xafb20018, 0xa09021, 0xafb3001c, 0xc09821,
+0xafb00010, 0x8021, 0xafbf0020, 0xc004d4b,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0x24100010, 0x2301024, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fffa, 0x2301024, 0x24100010, 0x2501024,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x2501024, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0x34108000,
+0x96620000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d4b, 0x108042, 0x1600fff8,
+0x0, 0xc004d71, 0x0, 0x8fbf0020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0028, 0x3c030001, 0x8c635d00,
+0x3c020001, 0x8c425d48, 0x27bdffd8, 0xafbf0020,
+0xafb1001c, 0x10620003, 0xafb00018, 0x3c010001,
+0xac235d48, 0x2463ffff, 0x2c620013, 0x10400349,
+0x31080, 0x3c010001, 0x220821, 0x8c225b30,
+0x400008, 0x0, 0xc004d71, 0x8021,
+0x34028000, 0xa7a20010, 0x27b10010, 0xc004d4b,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0xc004d4b,
+0x2021, 0x108042, 0x1600fffc, 0x0,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fff8, 0x0, 0xc004d71, 0x0,
+0x8004d24, 0x24020002, 0x27b10010, 0xa7a00010,
+0x8021, 0xc004d4b, 0x24040001, 0x26100001,
+0x2e020020, 0x1440fffb, 0x0, 0xc004d4b,
+0x2021, 0xc004d4b, 0x24040001, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0x24100010,
+0x32020001, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020001,
+0x24100010, 0xc004d4b, 0x2021, 0x108042,
+0x1600fffc, 0x0, 0xc004d71, 0x34108000,
+0xc004d71, 0x0, 0xc004d2b, 0x0,
+0x50400005, 0x108042, 0x96220000, 0x501025,
+0xa6220000, 0x108042, 0x1600fff7, 0x0,
+0xc004d71, 0x0, 0x97a20010, 0x30428000,
+0x144002dc, 0x24020003, 0x8004d24, 0x0,
+0x24021200, 0xa7a20010, 0x27b10010, 0x8021,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0xc004d4b, 0x2021, 0x108042, 0x1600fffc,
+0x0, 0xc004d4b, 0x24040001, 0xc004d4b,
+0x2021, 0x34108000, 0x96220000, 0x501024,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fff8, 0x0, 0xc004d71,
+0x0, 0x8f830054, 0x8004d16, 0x24020004,
+0x8f830054, 0x3c020001, 0x8c425db8, 0x2463ff9c,
+0x431023, 0x2c420064, 0x1440029e, 0x24020002,
+0x3c030001, 0x8c635dbc, 0x10620297, 0x2c620003,
+0x14400296, 0x24020011, 0x24020003, 0x10620005,
+0x24020004, 0x10620291, 0x2402000f, 0x8004d24,
+0x24020011, 0x8004d24, 0x24020005, 0x24020014,
+0xa7a20010, 0x27b10010, 0x8021, 0xc004d4b,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x32020012,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020012, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0x34108000,
+0x96220000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d4b, 0x108042, 0x1600fff8,
+0x0, 0xc004d71, 0x0, 0x8f830054,
+0x8004d16, 0x24020006, 0x8f830054, 0x3c020001,
+0x8c425db8, 0x2463ff9c, 0x431023, 0x2c420064,
+0x14400250, 0x24020007, 0x8004d24, 0x0,
+0x24020006, 0xa7a20010, 0x27b10010, 0x8021,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020013, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020013,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fff8, 0x0, 0xc004d71, 0x0,
+0x8f830054, 0x8004d16, 0x24020008, 0x8f830054,
+0x3c020001, 0x8c425db8, 0x2463ff9c, 0x431023,
+0x2c420064, 0x1440020f, 0x24020009, 0x8004d24,
+0x0, 0x27b10010, 0xa7a00010, 0x8021,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x24040001,
+0xc004d4b, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020018,
+0xc004d71, 0x34108000, 0xc004d71, 0x0,
+0xc004d2b, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004d71, 0x8021,
+0x97a20010, 0x27b10010, 0x34420001, 0xa7a20010,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020018,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fff8, 0x0, 0xc004d71, 0x0,
+0x8f830054, 0x8004d16, 0x2402000a, 0x8f830054,
+0x3c020001, 0x8c425db8, 0x2463ff9c, 0x431023,
+0x2c420064, 0x1440019b, 0x2402000b, 0x8004d24,
+0x0, 0x27b10010, 0xa7a00010, 0x8021,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x24040001,
+0xc004d4b, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020017, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020017,
+0xc004d71, 0x34108000, 0xc004d71, 0x0,
+0xc004d2b, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004d71, 0x8021,
+0x97a20010, 0x27b10010, 0x34420700, 0xa7a20010,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020017, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020017,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fff8, 0x0, 0xc004d71, 0x0,
+0x8f830054, 0x8004d16, 0x2402000c, 0x8f830054,
+0x3c020001, 0x8c425db8, 0x2463ff9c, 0x431023,
+0x2c420064, 0x14400127, 0x24020012, 0x8004d24,
+0x0, 0x27b10010, 0xa7a00010, 0x8021,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x24040001,
+0xc004d4b, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020014, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020014,
+0xc004d71, 0x34108000, 0xc004d71, 0x0,
+0xc004d2b, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004d71, 0x8021,
+0x97a20010, 0x27b10010, 0x34420010, 0xa7a20010,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020014, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020014,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fff8, 0x0, 0xc004d71, 0x0,
+0x8f830054, 0x8004d16, 0x24020013, 0x8f830054,
+0x3c020001, 0x8c425db8, 0x2463ff9c, 0x431023,
+0x2c420064, 0x144000b3, 0x2402000d, 0x8004d24,
+0x0, 0x27b10010, 0xa7a00010, 0x8021,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x24040001,
+0xc004d4b, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020018,
+0xc004d71, 0x34108000, 0xc004d71, 0x0,
+0xc004d2b, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004d71, 0x8021,
+0x97a20010, 0x27b10010, 0x3042fffe, 0xa7a20010,
+0xc004d4b, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0xc004d4b, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d4b, 0x108042, 0x1600fffa, 0x32020018,
+0xc004d4b, 0x24040001, 0xc004d4b, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fff8, 0x0, 0xc004d71, 0x0,
+0x8f830054, 0x8004d16, 0x2402000e, 0x24020840,
+0xa7a20010, 0x27b10010, 0x8021, 0xc004d4b,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x32020013,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x32020013, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0x34108000,
+0x96220000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d4b, 0x108042, 0x1600fff8,
+0x0, 0xc004d71, 0x0, 0x8f830054,
+0x24020010, 0x3c010001, 0xac225d00, 0x3c010001,
+0x8004d26, 0xac235db8, 0x8f830054, 0x3c020001,
+0x8c425db8, 0x2463ff9c, 0x431023, 0x2c420064,
+0x14400004, 0x0, 0x24020011, 0x3c010001,
+0xac225d00, 0x8fbf0020, 0x8fb1001c, 0x8fb00018,
+0x3e00008, 0x27bd0028, 0x8f850044, 0x8f820044,
+0x3c030001, 0x431025, 0x3c030008, 0xaf820044,
+0x8f840054, 0x8f820054, 0xa32824, 0x8004d37,
+0x24840001, 0x8f820054, 0x821023, 0x2c420002,
+0x1440fffc, 0x0, 0x8f820044, 0x3c03fffe,
+0x3463ffff, 0x431024, 0xaf820044, 0x8f830054,
+0x8f820054, 0x8004d45, 0x24630001, 0x8f820054,
+0x621023, 0x2c420002, 0x1440fffc, 0x0,
+0x3e00008, 0xa01021, 0x8f830044, 0x3c02fff0,
+0x3442ffff, 0x42480, 0x621824, 0x3c020002,
+0x822025, 0x641825, 0xaf830044, 0x8f820044,
+0x3c03fffe, 0x3463ffff, 0x431024, 0xaf820044,
+0x8f830054, 0x8f820054, 0x8004d5e, 0x24630001,
+0x8f820054, 0x621023, 0x2c420002, 0x1440fffc,
+0x0, 0x8f820044, 0x3c030001, 0x431025,
+0xaf820044, 0x8f830054, 0x8f820054, 0x8004d6b,
+0x24630001, 0x8f820054, 0x621023, 0x2c420002,
+0x1440fffc, 0x0, 0x3e00008, 0x0,
+0x8f820044, 0x3c03fff0, 0x3463ffff, 0x431024,
+0xaf820044, 0x8f820044, 0x3c030001, 0x431025,
+0xaf820044, 0x8f830054, 0x8f820054, 0x8004d7f,
+0x24630001, 0x8f820054, 0x621023, 0x2c420002,
+0x1440fffc, 0x0, 0x8f820044, 0x3c03fffe,
+0x3463ffff, 0x431024, 0xaf820044, 0x8f830054,
+0x8f820054, 0x8004d8d, 0x24630001, 0x8f820054,
+0x621023, 0x2c420002, 0x1440fffc, 0x0,
+0x3e00008, 0x0, 0x27bdffc8, 0xafb30024,
+0x809821, 0xafb5002c, 0xa0a821, 0xafb20020,
+0xc09021, 0x32a2ffff, 0xafbf0030, 0xafb40028,
+0xafb1001c, 0xafb00018, 0x14400034, 0xa7b20010,
+0x3271ffff, 0x27b20010, 0x8021, 0xc004d4b,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x2301024,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x2301024, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0x34108000,
+0x96420000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d4b, 0x108042, 0x12000075,
+0x0, 0x8004dc9, 0x0, 0x3274ffff,
+0x27b10010, 0xa7a00010, 0x8021, 0xc004d4b,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x24040001, 0xc004d4b,
+0x2021, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x2901024,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x2901024, 0xc004d71,
+0x34108000, 0xc004d71, 0x0, 0xc004d2b,
+0x0, 0x50400005, 0x108042, 0x96220000,
+0x501025, 0xa6220000, 0x108042, 0x1600fff7,
+0x0, 0xc004d71, 0x0, 0x32a5ffff,
+0x24020001, 0x54a20004, 0x24020002, 0x97a20010,
+0x8004e14, 0x521025, 0x14a20006, 0x3271ffff,
+0x97a20010, 0x121827, 0x431024, 0xa7a20010,
+0x3271ffff, 0x27b20010, 0x8021, 0xc004d4b,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0xc004d4b,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d4b, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x2301024,
+0x10400002, 0x2021, 0x24040001, 0xc004d4b,
+0x108042, 0x1600fffa, 0x2301024, 0xc004d4b,
+0x24040001, 0xc004d4b, 0x2021, 0x34108000,
+0x96420000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d4b, 0x108042, 0x1600fff8,
+0x0, 0xc004d71, 0x0, 0x8fbf0030,
+0x8fb5002c, 0x8fb40028, 0x8fb30024, 0x8fb20020,
+0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0038,
+0x0, 0x0, 0x0, 0x27bdffe8,
+0xafbf0010, 0x3c030001, 0x771821, 0x8c6383ac,
+0x24020008, 0x1462022c, 0x803021, 0x3c020001,
+0x8c425d98, 0x14400033, 0x0, 0x8f850224,
+0x38a30020, 0x2c630001, 0x38a20010, 0x2c420001,
+0x621825, 0x1460000d, 0x38a30030, 0x2c630001,
+0x38a20400, 0x2c420001, 0x621825, 0x14600007,
+0x38a30402, 0x2c630001, 0x38a20404, 0x2c420001,
+0x621825, 0x10600005, 0x0, 0xc00429b,
+0x0, 0x8004e8d, 0x2402000e, 0xc0043dd,
+0x0, 0x3c050001, 0x8ca55cc8, 0xc0052a2,
+0x2021, 0x3c030001, 0x8c635cc8, 0x24020004,
+0x14620005, 0x2403fffb, 0x3c020001, 0x8c425cc4,
+0x8004e89, 0x2403fff7, 0x3c020001, 0x8c425cc4,
+0x431024, 0x3c010001, 0xac225cc4, 0x2402000e,
+0x3c010001, 0xc00429b, 0xac227dd0, 0x8005087,
+0x0, 0x8f820220, 0x3c030400, 0x431024,
+0x10400027, 0x2403ffbf, 0x8f850224, 0x3c020001,
+0x8c427ddc, 0xa32024, 0x431024, 0x1482000c,
+0x0, 0x3c020001, 0x8c427de0, 0x24420001,
+0x3c010001, 0xac227de0, 0x2c420002, 0x14400008,
+0x24020001, 0x3c010001, 0x8004ead, 0xac227e00,
+0x3c010001, 0xac207de0, 0x3c010001, 0xac207e00,
+0x3c020001, 0x8c427e00, 0x10400006, 0x30a20040,
+0x10400004, 0x24020001, 0x3c010001, 0x8004eb8,
+0xac227e04, 0x3c010001, 0xac207e04, 0x3c010001,
+0xac257ddc, 0x3c010001, 0x8004ec8, 0xac207e10,
+0x24020001, 0x3c010001, 0xac227e10, 0x3c010001,
+0xac207e00, 0x3c010001, 0xac207de0, 0x3c010001,
+0xac207e04, 0x3c010001, 0xac207ddc, 0x3c030001,
+0x8c637dd0, 0x3c020001, 0x8c427dd4, 0x10620003,
+0x3c020200, 0x3c010001, 0xac237dd4, 0xc21024,
+0x10400007, 0x2463ffff, 0x8f820220, 0x24030001,
+0x3c010001, 0xac235ccc, 0x8005085, 0x3c03f700,
+0x2c62000e, 0x104001a8, 0x31080, 0x3c010001,
+0x220821, 0x8c225b80, 0x400008, 0x0,
+0x3c010001, 0xac207e00, 0x3c010001, 0xac207de0,
+0x3c010001, 0xac207ddc, 0x3c010001, 0xac207e04,
+0x3c010001, 0xac207df8, 0x3c010001, 0xac207df0,
+0xc00486a, 0xaf800224, 0x24020002, 0x3c010001,
+0xac227dd0, 0x3c020001, 0x8c427e10, 0x14400056,
+0x3c03fdff, 0x8ee20000, 0x3463ffff, 0x431024,
+0xc00429b, 0xaee20000, 0xaf800204, 0x8f820200,
+0x2403fffd, 0x431024, 0xaf820200, 0x3c010001,
+0xac207e20, 0x8f830054, 0x3c020001, 0x8c427df8,
+0x24040001, 0x3c010001, 0xac247e0c, 0x24420001,
+0x3c010001, 0xac227df8, 0x2c420004, 0x3c010001,
+0xac237df4, 0x14400006, 0x24020003, 0x3c010001,
+0xac245ccc, 0x3c010001, 0x8005083, 0xac207df8,
+0x3c010001, 0x8005083, 0xac227dd0, 0x8f830054,
+0x3c020001, 0x8c427df4, 0x2463d8f0, 0x431023,
+0x2c422710, 0x14400003, 0x24020004, 0x3c010001,
+0xac227dd0, 0x3c020001, 0x8c427e10, 0x14400026,
+0x3c03fdff, 0x8ee20000, 0x3463ffff, 0x431024,
+0x8005083, 0xaee20000, 0x3c040001, 0x8c845d9c,
+0x3c010001, 0xc00508a, 0xac207de8, 0x3c020001,
+0x8c427e1c, 0xaf820204, 0x3c020001, 0x8c427e10,
+0x14400015, 0x3c03fdff, 0x8ee20000, 0x3463ffff,
+0x431024, 0xaee20000, 0x8f820204, 0x30420030,
+0x1440013c, 0x24020002, 0x3c030001, 0x8c637e1c,
+0x24020005, 0x3c010001, 0xac227dd0, 0x3c010001,
+0x8005083, 0xac237e20, 0x3c020001, 0x8c427e10,
+0x10400010, 0x3c03fdff, 0x3c020001, 0x8c425d6c,
+0x24420001, 0x3c010001, 0xac225d6c, 0x2c420002,
+0x14400131, 0x24020001, 0x3c010001, 0xac225d74,
+0x3c010001, 0xac205d6c, 0x3c010001, 0x8005083,
+0xac225ccc, 0x8ee20000, 0x3463ffff, 0x431024,
+0xaee20000, 0x3c020001, 0x8c427e00, 0x10400122,
+0x0, 0x3c020001, 0x8c427ddc, 0x1040011e,
+0x0, 0x3c010001, 0xac227e08, 0x24020003,
+0x3c010001, 0xac227de0, 0x8005024, 0x24020006,
+0x3c010001, 0xac207de8, 0x8f820204, 0x34420040,
+0xaf820204, 0x3c020001, 0x8c427e20, 0x24030007,
+0x3c010001, 0xac237dd0, 0x34420040, 0x3c010001,
+0xac227e20, 0x3c020001, 0x8c427e00, 0x10400005,
+0x0, 0x3c020001, 0x8c427ddc, 0x104000f9,
+0x24020002, 0x3c050001, 0x24a57de0, 0x8ca20000,
+0x2c424e21, 0x104000f3, 0x24020002, 0x3c020001,
+0x8c427e04, 0x104000f8, 0x2404ffbf, 0x3c020001,
+0x8c427ddc, 0x3c030001, 0x8c637e08, 0x441024,
+0x641824, 0x10430004, 0x24020001, 0x3c010001,
+0x8005083, 0xac227dd0, 0x24020003, 0xaca20000,
+0x24020008, 0x3c010001, 0xac227dd0, 0x3c020001,
+0x8c427e0c, 0x1040000c, 0x24020001, 0x3c040001,
+0xc005097, 0x8c847ddc, 0x3c020001, 0x8c427e28,
+0x14400005, 0x24020001, 0x3c020001, 0x8c427e24,
+0x10400006, 0x24020001, 0x3c010001, 0xac225ccc,
+0x3c010001, 0x8005083, 0xac207df8, 0x3c020001,
+0x8c427df0, 0x3c030001, 0x8c637ddc, 0x2c420001,
+0x210c0, 0x30630008, 0x3c010001, 0xac227df0,
+0x3c010001, 0xac237dec, 0x8f830054, 0x24020009,
+0x3c010001, 0xac227dd0, 0x3c010001, 0x8005083,
+0xac237df4, 0x8f830054, 0x3c020001, 0x8c427df4,
+0x2463d8f0, 0x431023, 0x2c422710, 0x144000a8,
+0x0, 0x3c020001, 0x8c427e00, 0x10400005,
+0x0, 0x3c020001, 0x8c427ddc, 0x104000a9,
+0x24020002, 0x3c030001, 0x24637de0, 0x8c620000,
+0x2c424e21, 0x104000a3, 0x24020002, 0x3c020001,
+0x8c427e0c, 0x1040000e, 0x0, 0x3c020001,
+0x8c427ddc, 0x3c010001, 0xac207e0c, 0x30420080,
+0x1040002f, 0x2402000c, 0x8f820204, 0x30420080,
+0x1440000c, 0x24020003, 0x8005011, 0x2402000c,
+0x3c020001, 0x8c427ddc, 0x30420080, 0x14400005,
+0x24020003, 0x8f820204, 0x30420080, 0x1040001f,
+0x24020003, 0xac620000, 0x2402000a, 0x3c010001,
+0xac227dd0, 0x3c040001, 0x24847e18, 0x8c820000,
+0x3c030001, 0x8c637df0, 0x431025, 0xaf820204,
+0x8c830000, 0x3c040001, 0x8c847df0, 0x2402000b,
+0x3c010001, 0xac227dd0, 0x641825, 0x3c010001,
+0xac237e20, 0x3c050001, 0x24a57de0, 0x8ca20000,
+0x2c424e21, 0x1040006f, 0x24020002, 0x3c020001,
+0x8c427e10, 0x10400005, 0x0, 0x2402000c,
+0x3c010001, 0x8005083, 0xac227dd0, 0x3c020001,
+0x8c427e00, 0x1040006c, 0x0, 0x3c040001,
+0x8c847ddc, 0x1080005e, 0x30820008, 0x3c030001,
+0x8c637dec, 0x10620064, 0x24020003, 0x3c010001,
+0xac247e08, 0xaca20000, 0x24020006, 0x3c010001,
+0x8005083, 0xac227dd0, 0x8f820200, 0x34420002,
+0xaf820200, 0x8f830054, 0x2402000d, 0x3c010001,
+0xac227dd0, 0x3c010001, 0xac237df4, 0x8f830054,
+0x3c020001, 0x8c427df4, 0x2463d8f0, 0x431023,
+0x2c422710, 0x1440003a, 0x0, 0x3c020001,
+0x8c427e10, 0x10400029, 0x2402000e, 0x3c030001,
+0x8c637e24, 0x3c010001, 0x14600015, 0xac227dd0,
+0xc0043dd, 0x0, 0x3c050001, 0x8ca55cc8,
+0xc0052a2, 0x2021, 0x3c030001, 0x8c635cc8,
+0x24020004, 0x14620005, 0x2403fffb, 0x3c020001,
+0x8c425cc4, 0x8005052, 0x2403fff7, 0x3c020001,
+0x8c425cc4, 0x431024, 0x3c010001, 0xac225cc4,
+0x8ee20000, 0x3c030200, 0x431025, 0xaee20000,
+0x8f820224, 0x3c010001, 0xac227e2c, 0x8f820220,
+0x2403fffb, 0x431024, 0xaf820220, 0x8f820220,
+0x34420002, 0x8005083, 0xaf820220, 0x3c020001,
+0x8c427e00, 0x10400005, 0x0, 0x3c020001,
+0x8c427ddc, 0x1040000f, 0x24020002, 0x3c020001,
+0x8c427de0, 0x2c424e21, 0x1040000a, 0x24020002,
+0x3c020001, 0x8c427e00, 0x1040000f, 0x0,
+0x3c020001, 0x8c427ddc, 0x1440000b, 0x0,
+0x24020002, 0x3c010001, 0x8005083, 0xac227dd0,
+0x3c020001, 0x8c427e00, 0x10400003, 0x0,
+0xc00429b, 0x0, 0x8f820220, 0x3c03f700,
+0x431025, 0xaf820220, 0x8fbf0010, 0x3e00008,
+0x27bd0018, 0x3c030001, 0x24637e28, 0x8c620000,
+0x10400005, 0x34422000, 0x3c010001, 0xac227e1c,
+0x8005095, 0xac600000, 0x3c010001, 0xac247e1c,
+0x3e00008, 0x0, 0x27bdffe0, 0x30820030,
+0xafbf0018, 0x3c010001, 0xac227e24, 0x14400067,
+0x3c02ffff, 0x34421f0e, 0x821024, 0x14400061,
+0x24020030, 0x30822000, 0x1040005d, 0x30838000,
+0x31a02, 0x30820001, 0x21200, 0x3c040001,
+0x8c845d9c, 0x621825, 0x331c2, 0x3c030001,
+0x24635d78, 0x30828000, 0x21202, 0x30840001,
+0x42200, 0x441025, 0x239c2, 0x61080,
+0x431021, 0x471021, 0x90430000, 0x24020001,
+0x10620025, 0x0, 0x10600007, 0x24020002,
+0x10620013, 0x24020003, 0x1062002c, 0x3c05000f,
+0x80050f9, 0x0, 0x8f820200, 0x2403feff,
+0x431024, 0xaf820200, 0x8f820220, 0x3c03fffe,
+0x3463ffff, 0x431024, 0xaf820220, 0x3c010001,
+0xac207e44, 0x3c010001, 0x8005104, 0xac207e4c,
+0x8f820200, 0x34420100, 0xaf820200, 0x8f820220,
+0x3c03fffe, 0x3463ffff, 0x431024, 0xaf820220,
+0x24020100, 0x3c010001, 0xac227e44, 0x3c010001,
+0x8005104, 0xac207e4c, 0x8f820200, 0x2403feff,
+0x431024, 0xaf820200, 0x8f820220, 0x3c030001,
+0x431025, 0xaf820220, 0x3c010001, 0xac207e44,
+0x3c010001, 0x8005104, 0xac237e4c, 0x8f820200,
+0x34420100, 0xaf820200, 0x8f820220, 0x3c030001,
+0x431025, 0xaf820220, 0x24020100, 0x3c010001,
+0xac227e44, 0x3c010001, 0x8005104, 0xac237e4c,
+0x34a5ffff, 0x3c040001, 0x24845bb8, 0xafa30010,
+0xc002403, 0xafa00014, 0x8005104, 0x0,
+0x24020030, 0x3c010001, 0xac227e28, 0x8fbf0018,
+0x3e00008, 0x27bd0020, 0x0, 0x27bdffc8,
+0xafb20028, 0x809021, 0xafb3002c, 0xa09821,
+0xafb00020, 0xc08021, 0x3c040001, 0x24845bd0,
+0x3c050009, 0x3c020001, 0x8c425cc8, 0x34a59001,
+0x2403021, 0x2603821, 0xafbf0030, 0xafb10024,
+0xa7a0001a, 0xafb00014, 0xc002403, 0xafa20010,
+0x24020002, 0x12620083, 0x2e620003, 0x10400005,
+0x24020001, 0x1262000a, 0x0, 0x800529b,
+0x0, 0x24020004, 0x126200fa, 0x24020008,
+0x126200f9, 0x3c02ffec, 0x800529b, 0x0,
+0x3c020001, 0x8c425cc4, 0x30420002, 0x14400004,
+0x128940, 0x3c02fffb, 0x3442ffff, 0x2028024,
+0x3c010001, 0x310821, 0xac307e3c, 0x3c024000,
+0x2021024, 0x1040004e, 0x1023c2, 0x30840030,
+0x101382, 0x3042001c, 0x3c030001, 0x24635d08,
+0x431021, 0x823821, 0x3c020020, 0x2021024,
+0x10400006, 0x24020100, 0x3c010001, 0x310821,
+0xac227e40, 0x8005150, 0x3c020080, 0x3c010001,
+0x310821, 0xac207e40, 0x3c020080, 0x2021024,
+0x10400006, 0x121940, 0x3c020001, 0x3c010001,
+0x230821, 0x800515c, 0xac227e48, 0x121140,
+0x3c010001, 0x220821, 0xac207e48, 0x94e40000,
+0x3c030001, 0x8c635dbc, 0x24020005, 0x10620010,
+0xa7a40018, 0x32024000, 0x10400002, 0x34824000,
+0xa7a20018, 0x24040001, 0x94e20002, 0x24050004,
+0x24e60002, 0x34420001, 0xc00498e, 0xa4e20002,
+0x24040001, 0x2821, 0xc00498e, 0x27a60018,
+0x3c020001, 0x8c425cc8, 0x24110001, 0x3c010001,
+0xac315cd4, 0x14530004, 0x32028000, 0xc00429b,
+0x0, 0x32028000, 0x1040011f, 0x0,
+0xc00429b, 0x0, 0x3c030001, 0x8c635dbc,
+0x24020005, 0x10620118, 0x24020002, 0x3c010001,
+0xac315ccc, 0x3c010001, 0x800529b, 0xac225cc8,
+0x24040001, 0x24050004, 0x27b0001a, 0xc00498e,
+0x2003021, 0x24040001, 0x2821, 0xc00498e,
+0x2003021, 0x3c020001, 0x511021, 0x8c427e34,
+0x3c040001, 0x8c845cc8, 0x3c03bfff, 0x3463ffff,
+0x3c010001, 0xac335cd4, 0x431024, 0x3c010001,
+0x310821, 0x109300fa, 0xac227e34, 0x800529b,
+0x0, 0x3c022000, 0x2021024, 0x10400005,
+0x24020001, 0x3c010001, 0xac225d98, 0x80051ad,
+0x128940, 0x3c010001, 0xac205d98, 0x128940,
+0x3c010001, 0x310821, 0xac307e38, 0x3c024000,
+0x2021024, 0x14400016, 0x0, 0x3c020001,
+0x8c425d98, 0x10400008, 0x24040004, 0x24050001,
+0xc004d93, 0x24062000, 0x24020001, 0x3c010001,
+0x370821, 0xac2283ac, 0x3c020001, 0x511021,
+0x8c427e30, 0x3c03bfff, 0x3463ffff, 0x431024,
+0x3c010001, 0x310821, 0x8005299, 0xac227e30,
+0x3c020001, 0x8c425d98, 0x10400028, 0x3c0300a0,
+0x2031024, 0x5443000d, 0x3c020020, 0x3c020001,
+0x8c425d9c, 0x24030100, 0x3c010001, 0x310821,
+0xac237e44, 0x3c030001, 0x3c010001, 0x310821,
+0xac237e4c, 0x80051f0, 0x34420400, 0x2021024,
+0x10400008, 0x24030100, 0x3c020001, 0x8c425d9c,
+0x3c010001, 0x310821, 0xac237e44, 0x80051f0,
+0x34420800, 0x3c020080, 0x2021024, 0x1040002e,
+0x3c030001, 0x3c020001, 0x8c425d9c, 0x3c010001,
+0x310821, 0xac237e4c, 0x34420c00, 0x3c010001,
+0xac225d9c, 0x8005218, 0x24040001, 0x3c020020,
+0x2021024, 0x10400006, 0x24020100, 0x3c010001,
+0x310821, 0xac227e44, 0x8005201, 0x3c020080,
+0x3c010001, 0x310821, 0xac207e44, 0x3c020080,
+0x2021024, 0x10400007, 0x121940, 0x3c020001,
+0x3c010001, 0x230821, 0xac227e4c, 0x800520f,
+0x24040001, 0x121140, 0x3c010001, 0x220821,
+0xac207e4c, 0x24040001, 0x2821, 0x27b0001e,
+0xc00494c, 0x2003021, 0x24040001, 0x2821,
+0xc00494c, 0x2003021, 0x24040001, 0x24050001,
+0x27b0001c, 0xc00494c, 0x2003021, 0x24040001,
+0x24050001, 0xc00494c, 0x2003021, 0x8005299,
+0x0, 0x3c02ffec, 0x3442ffff, 0x2028024,
+0x3c020008, 0x2028025, 0x121140, 0x3c010001,
+0x220821, 0xac307e38, 0x3c022000, 0x2021024,
+0x10400009, 0x0, 0x3c020001, 0x8c425d74,
+0x14400005, 0x24020001, 0x3c010001, 0xac225d98,
+0x800523a, 0x3c024000, 0x3c010001, 0xac205d98,
+0x3c024000, 0x2021024, 0x1440001e, 0x0,
+0x3c020001, 0x8c425d98, 0x3c010001, 0xac205ce0,
+0x10400007, 0x24022020, 0x3c010001, 0xac225d9c,
+0x24020001, 0x3c010001, 0x370821, 0xac2283ac,
+0x3c04bfff, 0x121940, 0x3c020001, 0x431021,
+0x8c427e30, 0x3c050001, 0x8ca55cc8, 0x3484ffff,
+0x441024, 0x3c010001, 0x230821, 0xac227e30,
+0x24020001, 0x10a20044, 0x0, 0x8005299,
+0x0, 0x3c020001, 0x8c425d98, 0x1040001c,
+0x24022000, 0x3c010001, 0xac225d9c, 0x3c0300a0,
+0x2031024, 0x14430005, 0x121140, 0x3402a000,
+0x3c010001, 0x8005294, 0xac225d9c, 0x3c030001,
+0x621821, 0x8c637e38, 0x3c020020, 0x621024,
+0x10400004, 0x24022001, 0x3c010001, 0x8005294,
+0xac225d9c, 0x3c020080, 0x621024, 0x1040001f,
+0x3402a001, 0x3c010001, 0x8005294, 0xac225d9c,
+0x3c020020, 0x2021024, 0x10400007, 0x121940,
+0x24020100, 0x3c010001, 0x230821, 0xac227e44,
+0x8005288, 0x3c020080, 0x121140, 0x3c010001,
+0x220821, 0xac207e44, 0x3c020080, 0x2021024,
+0x10400006, 0x121940, 0x3c020001, 0x3c010001,
+0x230821, 0x8005294, 0xac227e4c, 0x121140,
+0x3c010001, 0x220821, 0xac207e4c, 0x3c030001,
+0x8c635cc8, 0x24020001, 0x10620003, 0x0,
+0xc00429b, 0x0, 0x8fbf0030, 0x8fb3002c,
+0x8fb20028, 0x8fb10024, 0x8fb00020, 0x3e00008,
+0x27bd0038, 0x27bdffd8, 0xafb20020, 0x809021,
+0xafb1001c, 0x8821, 0x24020002, 0xafbf0024,
+0xafb00018, 0xa7a00012, 0x10a200d3, 0xa7a00010,
+0x2ca20003, 0x10400005, 0x24020001, 0x10a2000a,
+0x128140, 0x8005380, 0x2201021, 0x24020004,
+0x10a2007d, 0x24020008, 0x10a2007c, 0x122940,
+0x8005380, 0x2201021, 0x3c030001, 0x701821,
+0x8c637e3c, 0x3c024000, 0x621024, 0x14400009,
+0x24040001, 0x3c027fff, 0x3442ffff, 0x628824,
+0x3c010001, 0x300821, 0xac317e34, 0x8005380,
+0x2201021, 0x24050001, 0xc00494c, 0x27a60010,
+0x24040001, 0x24050001, 0xc00494c, 0x27a60010,
+0x97a20010, 0x30420004, 0x10400034, 0x3c114000,
+0x3c020001, 0x8c425dbc, 0x2443ffff, 0x2c620006,
+0x10400034, 0x31080, 0x3c010001, 0x220821,
+0x8c225be0, 0x400008, 0x0, 0x24040001,
+0x24050011, 0x27b00012, 0xc00494c, 0x2003021,
+0x24040001, 0x24050011, 0xc00494c, 0x2003021,
+0x97a50012, 0x30a24000, 0x10400002, 0x3c040010,
+0x3c040008, 0x3c030001, 0x8005301, 0x30a28000,
+0x24040001, 0x24050014, 0x27b00012, 0xc00494c,
+0x2003021, 0x24040001, 0x24050014, 0xc00494c,
+0x2003021, 0x97a50012, 0x30a21000, 0x10400002,
+0x3c040010, 0x3c040008, 0x3c030001, 0x30a20800,
+0x54400001, 0x3c030002, 0x3c028000, 0x2221025,
+0x641825, 0x800530e, 0x438825, 0x3c110001,
+0x2308821, 0x8e317e3c, 0x3c027fff, 0x3442ffff,
+0x2228824, 0x3c020001, 0x8c425cd8, 0x1040001d,
+0x121140, 0x3c020001, 0x8c425d98, 0x10400002,
+0x3c022000, 0x2228825, 0x121140, 0x3c010001,
+0x220821, 0x8c227e40, 0x10400003, 0x3c020020,
+0x8005322, 0x2228825, 0x3c02ffdf, 0x3442ffff,
+0x2228824, 0x121140, 0x3c010001, 0x220821,
+0x8c227e48, 0x10400003, 0x3c020080, 0x800532d,
+0x2228825, 0x3c02ff7f, 0x3442ffff, 0x2228824,
+0x121140, 0x3c010001, 0x220821, 0xac317e34,
+0x8005380, 0x2201021, 0x122940, 0x3c030001,
+0x651821, 0x8c637e38, 0x3c024000, 0x621024,
+0x14400008, 0x3c027fff, 0x3442ffff, 0x628824,
+0x3c010001, 0x250821, 0xac317e30, 0x8005380,
+0x2201021, 0x3c020001, 0x8c425cd8, 0x10400033,
+0x3c11c00c, 0x3c020001, 0x8c425d74, 0x3c04c00c,
+0x34842000, 0x3c030001, 0x8c635d98, 0x2102b,
+0x21023, 0x441024, 0x10600003, 0x518825,
+0x3c022000, 0x2228825, 0x3c020001, 0x451021,
+0x8c427e44, 0x10400003, 0x3c020020, 0x800535d,
+0x2228825, 0x3c02ffdf, 0x3442ffff, 0x2228824,
+0x121140, 0x3c010001, 0x220821, 0x8c227e4c,
+0x10400003, 0x3c020080, 0x8005368, 0x2228825,
+0x3c02ff7f, 0x3442ffff, 0x2228824, 0x3c020001,
+0x8c425d60, 0x10400002, 0x3c020800, 0x2228825,
+0x3c020001, 0x8c425d64, 0x10400002, 0x3c020400,
+0x2228825, 0x3c020001, 0x8c425d68, 0x10400006,
+0x3c020100, 0x800537b, 0x2228825, 0x3c027fff,
+0x3442ffff, 0x628824, 0x121140, 0x3c010001,
+0x220821, 0xac317e30, 0x2201021, 0x8fbf0024,
+0x8fb20020, 0x8fb1001c, 0x8fb00018, 0x3e00008,
+0x27bd0028, 0x27bdffd8, 0xafb40020, 0x80a021,
+0xafbf0024, 0xafb3001c, 0xafb20018, 0xafb10014,
+0xafb00010, 0x8f900200, 0x3c030001, 0x8c635cc8,
+0x8f930220, 0x24020002, 0x10620063, 0x2c620003,
+0x10400005, 0x24020001, 0x1062000a, 0x141940,
+0x8005448, 0x0, 0x24020004, 0x1062005a,
+0x24020008, 0x10620059, 0x149140, 0x8005448,
+0x0, 0x3c040001, 0x832021, 0x8c847e3c,
+0x3c110001, 0x2238821, 0x8e317e34, 0x3c024000,
+0x821024, 0x1040003e, 0x3c020008, 0x2221024,
+0x10400020, 0x36100002, 0x3c020001, 0x431021,
+0x8c427e40, 0x10400005, 0x36100020, 0x36100100,
+0x3c020020, 0x80053bd, 0x2228825, 0x2402feff,
+0x2028024, 0x3c02ffdf, 0x3442ffff, 0x2228824,
+0x141140, 0x3c010001, 0x220821, 0x8c227e48,
+0x10400005, 0x3c020001, 0x2629825, 0x3c020080,
+0x80053dc, 0x2228825, 0x3c02fffe, 0x3442ffff,
+0x2629824, 0x3c02ff7f, 0x3442ffff, 0x80053dc,
+0x2228824, 0x2402fedf, 0x2028024, 0x3c02fffe,
+0x3442ffff, 0x2629824, 0x3c02ff5f, 0x3442ffff,
+0x2228824, 0x3c010001, 0x230821, 0xac207e40,
+0x3c010001, 0x230821, 0xac207e48, 0xc00486a,
+0x0, 0xaf900200, 0xaf930220, 0x8f820220,
+0x2403fffb, 0x431024, 0xaf820220, 0x8f820220,
+0x34420002, 0xaf820220, 0x80053f3, 0x141140,
+0x8f820200, 0x2403fffd, 0x431024, 0xc00486a,
+0xaf820200, 0x3c02bfff, 0x3442ffff, 0xc00429b,
+0x2228824, 0x141140, 0x3c010001, 0x220821,
+0x8005448, 0xac317e34, 0x149140, 0x3c040001,
+0x922021, 0x8c847e38, 0x3c110001, 0x2328821,
+0x8e317e30, 0x3c024000, 0x821024, 0x14400011,
+0x0, 0x3c020001, 0x8c425d98, 0x14400006,
+0x3c02bfff, 0x8f820200, 0x34420002, 0xc00486a,
+0xaf820200, 0x3c02bfff, 0x3442ffff, 0xc00429b,
+0x2228824, 0x3c010001, 0x320821, 0x8005448,
+0xac317e30, 0x3c020001, 0x8c425d98, 0x10400005,
+0x3c020020, 0x3c020001, 0x8c425d74, 0x1040002b,
+0x3c020020, 0x821024, 0x10400007, 0x36100020,
+0x24020100, 0x3c010001, 0x320821, 0xac227e44,
+0x8005428, 0x36100100, 0x3c010001, 0x320821,
+0xac207e44, 0x2402feff, 0x2028024, 0x3c020080,
+0x821024, 0x10400007, 0x141940, 0x3c020001,
+0x3c010001, 0x230821, 0xac227e4c, 0x8005439,
+0x2629825, 0x141140, 0x3c010001, 0x220821,
+0xac207e4c, 0x3c02fffe, 0x3442ffff, 0x2629824,
+0xc00486a, 0x0, 0xaf900200, 0xaf930220,
+0x8f820220, 0x2403fffb, 0x431024, 0xaf820220,
+0x8f820220, 0x34420002, 0xaf820220, 0x141140,
+0x3c010001, 0x220821, 0xac317e30, 0x8fbf0024,
+0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
 0x8fb00010, 0x3e00008, 0x27bd0028, 0x0 };
 static u32 tigonFwRodata[(MAX_RODATA_LEN/4) + 1] __devinitdata = {
-0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f66776d, 0x61696e2e, 0x632c7620, 0x312e312e, 
-0x322e3131, 0x20313939, 0x382f3034, 0x2f323720, 
-0x32323a31, 0x333a3432, 0x20736875, 0x616e6720, 
-0x45787020, 0x24000000, 0x7468655f, 0x4441574e, 
-0x0, 0x53544143, 0x4b5f3120, 0x0, 
-0x42616453, 0x6e64526e, 0x67000000, 0x3f456e71, 
-0x45767400, 0x3f6e6f51, 0x64457650, 0x0, 
-0x6576526e, 0x6746756c, 0x6c000000, 0x496c6c43, 
-0x6f6e6652, 0x78000000, 0x53656e64, 0x436b5375, 
-0x6d000000, 0x52656376, 0x566c616e, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f74696d, 0x65722e63, 0x2c762031, 0x2e312e32, 
-0x2e382031, 0x3939382f, 0x30372f33, 0x31203137, 
-0x3a35383a, 0x34352073, 0x6875616e, 0x67204578, 
-0x70202400, 0x542d446d, 0x61526431, 0x0, 
-0x542d446d, 0x61424200, 0x542d446d, 0x61320000, 
-0x3f6e6f51, 0x64547845, 0x0, 0x3f6e6f51, 
-0x64527845, 0x0, 0x656e714d, 0x45765046, 
-0x61696c00, 0x656e714d, 0x45764661, 0x696c0000, 
-0x6661696c, 0x456e454d, 0x0, 0x3f456e71, 
-0x45767400, 0x3f6e6f51, 0x64457650, 0x0, 
-0x6576526e, 0x6746756c, 0x6c000000, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f636f6d, 0x6d616e64, 0x2e632c76, 0x20312e31, 
-0x2e322e31, 0x30203139, 0x39382f31, 0x312f3138, 
-0x2031373a, 0x31313a31, 0x38207368, 0x75616e67, 
-0x20457870, 0x20240000, 0x3f4d626f, 0x78457674, 
-0x0, 0x4e4f636f, 0x6d616e64, 0x0, 
-0x68737465, 0x5f455252, 0x0, 0x412d4572, 
-0x72427563, 0x0, 0x4552524f, 0x522d4164, 
-0x64000000, 0x656e714d, 0x45765046, 0x61696c00, 
-0x656e714d, 0x45764661, 0x696c0000, 0x6661696c, 
-0x456e454d, 0x0, 0x442d4572, 0x724c6173, 
-0x74000000, 0x442d4572, 0x72320000, 0x6d437374, 
-0x4d644552, 0x52000000, 0x70726f6d, 0x4d644552, 
-0x52000000, 0x46696c74, 0x4d644552, 0x52000000, 
-0x636d645f, 0x45525200, 0x3f456e71, 0x45767400, 
-0x3f6e6f51, 0x64457650, 0x0, 0x6576526e, 
-0x6746756c, 0x6c000000, 0x0, 0x6ea0, 
-0x7fbc, 0x6e38, 0x8734, 0x82b0, 
-0x8780, 0x8780, 0x6f54, 0x7694, 
-0x7f0c, 0x80a8, 0x8074, 0x8780, 
-0x7e70, 0x80cc, 0x6e64, 0x81cc, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f646d61, 0x2e632c76, 0x20312e31, 0x2e322e33, 
-0x20313939, 0x382f3034, 0x2f323720, 0x32323a31, 
-0x333a3431, 0x20736875, 0x616e6720, 0x45787020, 
-0x24000000, 0x646d6172, 0x6441544e, 0x0, 
-0x646d6177, 0x7241544e, 0x0, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f747261, 0x63652e63, 0x2c762031, 0x2e312e32, 
-0x2e322031, 0x3939382f, 0x30342f32, 0x37203232, 
-0x3a31333a, 0x35302073, 0x6875616e, 0x67204578, 
-0x70202400, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f646174, 0x612e632c, 0x7620312e, 0x312e322e, 
-0x32203139, 0x39382f30, 0x342f3237, 0x2032323a, 
-0x31333a34, 0x30207368, 0x75616e67, 0x20457870, 
-0x20240000, 0x46575f56, 0x45525349, 0x4f4e3a20, 
-0x23312046, 0x72692041, 0x70722037, 0x2031373a, 
-0x35353a34, 0x38205044, 0x54203230, 0x30300000, 
-0x46575f43, 0x4f4d5049, 0x4c455f54, 0x494d453a, 
-0x2031373a, 0x35353a34, 0x38000000, 0x46575f43, 
-0x4f4d5049, 0x4c455f42, 0x593a2064, 0x65767263, 
-0x73000000, 0x46575f43, 0x4f4d5049, 0x4c455f48, 
-0x4f53543a, 0x20636f6d, 0x70757465, 0x0, 
-0x46575f43, 0x4f4d5049, 0x4c455f44, 0x4f4d4149, 
-0x4e3a2065, 0x6e672e61, 0x6374656f, 0x6e2e636f, 
-0x6d000000, 0x46575f43, 0x4f4d5049, 0x4c45523a, 
-0x20676363, 0x20766572, 0x73696f6e, 0x20322e37, 
-0x2e320000, 0x0, 0x0, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f6d656d, 0x2e632c76, 0x20312e31, 0x2e322e32, 
-0x20313939, 0x382f3034, 0x2f323720, 0x32323a31, 
-0x333a3434, 0x20736875, 0x616e6720, 0x45787020, 
-0x24000000, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f73656e, 0x642e632c, 0x7620312e, 0x312e322e, 
-0x31312031, 0x3939382f, 0x31322f32, 0x32203137, 
-0x3a31373a, 0x35352073, 0x6875616e, 0x67204578, 
-0x70202400, 0x736e6464, 0x654e6f51, 0x20000000, 
-0x6e6f454e, 0x515f5458, 0x0, 0x736e6464, 
-0x744e6f51, 0x20000000, 0x3f6e6f51, 0x64547845, 
-0x0, 0x756e6b72, 0x64747970, 0x65000000, 
-0x0, 0xaccc, 0xaccc, 0xad9c, 
-0xaab0, 0xaab0, 0xad9c, 0xad9c, 
-0xad9c, 0xad9c, 0xad9c, 0xad9c, 
-0xad9c, 0xad9c, 0xad9c, 0xad9c, 
-0xad9c, 0xad9c, 0xad9c, 0xad7c, 
-0x0, 0xbca8, 0xbca8, 0xbd70, 
-0xae4c, 0xb058, 0xbd70, 0xbd70, 
-0xbd70, 0xbd70, 0xbd70, 0xbd70, 
-0xbd70, 0xbd70, 0xbd70, 0xbd70, 
-0xbd70, 0xbd70, 0xbd70, 0xbd54, 
-0xb040, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f726563, 0x762e632c, 0x7620312e, 0x312e322e, 
-0x31392031, 0x3939382f, 0x30372f32, 0x34203231, 
-0x3a33303a, 0x30352073, 0x6875616e, 0x67204578, 
-0x70202400, 0x706b5278, 0x45525200, 0x66726d32, 
-0x4c617267, 0x65000000, 0x72784e6f, 0x52784264, 
-0x0, 0x72785144, 0x6d614446, 0x0, 
-0x72785144, 0x6d614246, 0x0, 0x3f6e6f51, 
-0x64527845, 0x0, 0x706b5278, 0x45525273, 
-0x0, 0x66726d32, 0x4c726753, 0x0, 
-0x72784e6f, 0x42645300, 0x3f724264, 0x446d6146, 
-0x0, 0x3f724a42, 0x64446d46, 0x0, 
-0x0, 0xf678, 0xf678, 0xf678, 
-0xf678, 0xf678, 0xf678, 0xf678, 
-0xf678, 0xf678, 0xf678, 0xf678, 
-0xf678, 0xf678, 0xf678, 0xf678, 
-0xf670, 0xf670, 0xf670, 0x572d444d, 
-0x41456e46, 0x0, 0x0, 0xfdc0, 
-0x1015c, 0xfddc, 0x1015c, 0x1015c, 
-0x1015c, 0x1015c, 0x1015c, 0x1015c, 
-0xf704, 0x1015c, 0x1015c, 0x1015c, 
-0x1015c, 0x1015c, 0x10154, 0x10154, 
-0x10154, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f6d6163, 0x2e632c76, 0x20312e31, 0x2e322e31, 
-0x32203139, 0x39382f30, 0x342f3237, 0x2032323a, 
-0x31333a34, 0x32207368, 0x75616e67, 0x20457870, 
-0x20240000, 0x6d616374, 0x7841544e, 0x0, 
-0x4e745379, 0x6e264c6b, 0x0, 0x72656d61, 
-0x73737274, 0x0, 0x6c696e6b, 0x444f574e, 
-0x0, 0x656e714d, 0x45765046, 0x61696c00, 
-0x656e714d, 0x45764661, 0x696c0000, 0x6661696c, 
-0x456e454d, 0x0, 0x6c696e6b, 0x55500000, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e, 
-0x2f636b73, 0x756d2e63, 0x2c762031, 0x2e312e32, 
-0x2e322031, 0x3939382f, 0x30342f32, 0x37203232, 
-0x3a31333a, 0x33392073, 0x6875616e, 0x67204578, 
-0x70202400, 0x50726f62, 0x65506879, 0x0, 
-0x6c6e6b41, 0x53535254, 0x0, 0x11b2c, 
-0x11bc4, 0x11bf8, 0x11c2c, 0x11c58, 
-0x11c6c, 0x11ca8, 0x1207c, 0x11de4, 
-0x11e24, 0x11e50, 0x11e90, 0x11ec0, 
-0x11efc, 0x11f30, 0x1207c, 0x122c0, 
-0x122d8, 0x12300, 0x12320, 0x12348, 
-0x12478, 0x124a0, 0x124f4, 0x1251c, 
-0x0, 0x1278c, 0x1285c, 0x12934, 
-0x12a04, 0x12a60, 0x12b3c, 0x12b64, 
-0x12c40, 0x12c68, 0x12e10, 0x12e38, 
-0x12fe0, 0x131d8, 0x1346c, 0x13380, 
-0x1346c, 0x13498, 0x13008, 0x131b0, 
-0x0, 0x13b84, 0x13bc8, 0x13c60, 
-0x13cac, 0x13d1c, 0x13db4, 0x13de8, 
-0x13e70, 0x13f08, 0x13fd8, 0x14018, 
-0x1409c, 0x140c0, 0x141f4, 0x646f4261, 
-0x73655067, 0x0, 0x0, 0x0, 
-0x0, 0x73746d61, 0x634c4e4b, 0x0, 
-0x0, 0x14c38, 0x14c38, 0x14b80, 
-0x14bc4, 0x14c38, 0x14c38, 0x0, 
+0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f66776d, 0x61696e2e, 0x632c7620, 0x312e312e,
+0x322e3131, 0x20313939, 0x382f3034, 0x2f323720,
+0x32323a31, 0x333a3432, 0x20736875, 0x616e6720,
+0x45787020, 0x24000000, 0x7468655f, 0x4441574e,
+0x0, 0x53544143, 0x4b5f3120, 0x0,
+0x42616453, 0x6e64526e, 0x67000000, 0x3f456e71,
+0x45767400, 0x3f6e6f51, 0x64457650, 0x0,
+0x6576526e, 0x6746756c, 0x6c000000, 0x496c6c43,
+0x6f6e6652, 0x78000000, 0x53656e64, 0x436b5375,
+0x6d000000, 0x52656376, 0x566c616e, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f74696d, 0x65722e63, 0x2c762031, 0x2e312e32,
+0x2e382031, 0x3939382f, 0x30372f33, 0x31203137,
+0x3a35383a, 0x34352073, 0x6875616e, 0x67204578,
+0x70202400, 0x542d446d, 0x61526431, 0x0,
+0x542d446d, 0x61424200, 0x542d446d, 0x61320000,
+0x3f6e6f51, 0x64547845, 0x0, 0x3f6e6f51,
+0x64527845, 0x0, 0x656e714d, 0x45765046,
+0x61696c00, 0x656e714d, 0x45764661, 0x696c0000,
+0x6661696c, 0x456e454d, 0x0, 0x3f456e71,
+0x45767400, 0x3f6e6f51, 0x64457650, 0x0,
+0x6576526e, 0x6746756c, 0x6c000000, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f636f6d, 0x6d616e64, 0x2e632c76, 0x20312e31,
+0x2e322e31, 0x30203139, 0x39382f31, 0x312f3138,
+0x2031373a, 0x31313a31, 0x38207368, 0x75616e67,
+0x20457870, 0x20240000, 0x3f4d626f, 0x78457674,
+0x0, 0x4e4f636f, 0x6d616e64, 0x0,
+0x68737465, 0x5f455252, 0x0, 0x412d4572,
+0x72427563, 0x0, 0x4552524f, 0x522d4164,
+0x64000000, 0x656e714d, 0x45765046, 0x61696c00,
+0x656e714d, 0x45764661, 0x696c0000, 0x6661696c,
+0x456e454d, 0x0, 0x442d4572, 0x724c6173,
+0x74000000, 0x442d4572, 0x72320000, 0x6d437374,
+0x4d644552, 0x52000000, 0x70726f6d, 0x4d644552,
+0x52000000, 0x46696c74, 0x4d644552, 0x52000000,
+0x636d645f, 0x45525200, 0x3f456e71, 0x45767400,
+0x3f6e6f51, 0x64457650, 0x0, 0x6576526e,
+0x6746756c, 0x6c000000, 0x0, 0x6ea0,
+0x7fbc, 0x6e38, 0x8734, 0x82b0,
+0x8780, 0x8780, 0x6f54, 0x7694,
+0x7f0c, 0x80a8, 0x8074, 0x8780,
+0x7e70, 0x80cc, 0x6e64, 0x81cc,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f646d61, 0x2e632c76, 0x20312e31, 0x2e322e33,
+0x20313939, 0x382f3034, 0x2f323720, 0x32323a31,
+0x333a3431, 0x20736875, 0x616e6720, 0x45787020,
+0x24000000, 0x646d6172, 0x6441544e, 0x0,
+0x646d6177, 0x7241544e, 0x0, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f747261, 0x63652e63, 0x2c762031, 0x2e312e32,
+0x2e322031, 0x3939382f, 0x30342f32, 0x37203232,
+0x3a31333a, 0x35302073, 0x6875616e, 0x67204578,
+0x70202400, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f646174, 0x612e632c, 0x7620312e, 0x312e322e,
+0x32203139, 0x39382f30, 0x342f3237, 0x2032323a,
+0x31333a34, 0x30207368, 0x75616e67, 0x20457870,
+0x20240000, 0x46575f56, 0x45525349, 0x4f4e3a20,
+0x23312046, 0x72692041, 0x70722037, 0x2031373a,
+0x35353a34, 0x38205044, 0x54203230, 0x30300000,
+0x46575f43, 0x4f4d5049, 0x4c455f54, 0x494d453a,
+0x2031373a, 0x35353a34, 0x38000000, 0x46575f43,
+0x4f4d5049, 0x4c455f42, 0x593a2064, 0x65767263,
+0x73000000, 0x46575f43, 0x4f4d5049, 0x4c455f48,
+0x4f53543a, 0x20636f6d, 0x70757465, 0x0,
+0x46575f43, 0x4f4d5049, 0x4c455f44, 0x4f4d4149,
+0x4e3a2065, 0x6e672e61, 0x6374656f, 0x6e2e636f,
+0x6d000000, 0x46575f43, 0x4f4d5049, 0x4c45523a,
+0x20676363, 0x20766572, 0x73696f6e, 0x20322e37,
+0x2e320000, 0x0, 0x0, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f6d656d, 0x2e632c76, 0x20312e31, 0x2e322e32,
+0x20313939, 0x382f3034, 0x2f323720, 0x32323a31,
+0x333a3434, 0x20736875, 0x616e6720, 0x45787020,
+0x24000000, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f73656e, 0x642e632c, 0x7620312e, 0x312e322e,
+0x31312031, 0x3939382f, 0x31322f32, 0x32203137,
+0x3a31373a, 0x35352073, 0x6875616e, 0x67204578,
+0x70202400, 0x736e6464, 0x654e6f51, 0x20000000,
+0x6e6f454e, 0x515f5458, 0x0, 0x736e6464,
+0x744e6f51, 0x20000000, 0x3f6e6f51, 0x64547845,
+0x0, 0x756e6b72, 0x64747970, 0x65000000,
+0x0, 0xaccc, 0xaccc, 0xad9c,
+0xaab0, 0xaab0, 0xad9c, 0xad9c,
+0xad9c, 0xad9c, 0xad9c, 0xad9c,
+0xad9c, 0xad9c, 0xad9c, 0xad9c,
+0xad9c, 0xad9c, 0xad9c, 0xad7c,
+0x0, 0xbca8, 0xbca8, 0xbd70,
+0xae4c, 0xb058, 0xbd70, 0xbd70,
+0xbd70, 0xbd70, 0xbd70, 0xbd70,
+0xbd70, 0xbd70, 0xbd70, 0xbd70,
+0xbd70, 0xbd70, 0xbd70, 0xbd54,
+0xb040, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f726563, 0x762e632c, 0x7620312e, 0x312e322e,
+0x31392031, 0x3939382f, 0x30372f32, 0x34203231,
+0x3a33303a, 0x30352073, 0x6875616e, 0x67204578,
+0x70202400, 0x706b5278, 0x45525200, 0x66726d32,
+0x4c617267, 0x65000000, 0x72784e6f, 0x52784264,
+0x0, 0x72785144, 0x6d614446, 0x0,
+0x72785144, 0x6d614246, 0x0, 0x3f6e6f51,
+0x64527845, 0x0, 0x706b5278, 0x45525273,
+0x0, 0x66726d32, 0x4c726753, 0x0,
+0x72784e6f, 0x42645300, 0x3f724264, 0x446d6146,
+0x0, 0x3f724a42, 0x64446d46, 0x0,
+0x0, 0xf678, 0xf678, 0xf678,
+0xf678, 0xf678, 0xf678, 0xf678,
+0xf678, 0xf678, 0xf678, 0xf678,
+0xf678, 0xf678, 0xf678, 0xf678,
+0xf670, 0xf670, 0xf670, 0x572d444d,
+0x41456e46, 0x0, 0x0, 0xfdc0,
+0x1015c, 0xfddc, 0x1015c, 0x1015c,
+0x1015c, 0x1015c, 0x1015c, 0x1015c,
+0xf704, 0x1015c, 0x1015c, 0x1015c,
+0x1015c, 0x1015c, 0x10154, 0x10154,
+0x10154, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f6d6163, 0x2e632c76, 0x20312e31, 0x2e322e31,
+0x32203139, 0x39382f30, 0x342f3237, 0x2032323a,
+0x31333a34, 0x32207368, 0x75616e67, 0x20457870,
+0x20240000, 0x6d616374, 0x7841544e, 0x0,
+0x4e745379, 0x6e264c6b, 0x0, 0x72656d61,
+0x73737274, 0x0, 0x6c696e6b, 0x444f574e,
+0x0, 0x656e714d, 0x45765046, 0x61696c00,
+0x656e714d, 0x45764661, 0x696c0000, 0x6661696c,
+0x456e454d, 0x0, 0x6c696e6b, 0x55500000,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x772f636f, 0x6d6d6f6e,
+0x2f636b73, 0x756d2e63, 0x2c762031, 0x2e312e32,
+0x2e322031, 0x3939382f, 0x30342f32, 0x37203232,
+0x3a31333a, 0x33392073, 0x6875616e, 0x67204578,
+0x70202400, 0x50726f62, 0x65506879, 0x0,
+0x6c6e6b41, 0x53535254, 0x0, 0x11b2c,
+0x11bc4, 0x11bf8, 0x11c2c, 0x11c58,
+0x11c6c, 0x11ca8, 0x1207c, 0x11de4,
+0x11e24, 0x11e50, 0x11e90, 0x11ec0,
+0x11efc, 0x11f30, 0x1207c, 0x122c0,
+0x122d8, 0x12300, 0x12320, 0x12348,
+0x12478, 0x124a0, 0x124f4, 0x1251c,
+0x0, 0x1278c, 0x1285c, 0x12934,
+0x12a04, 0x12a60, 0x12b3c, 0x12b64,
+0x12c40, 0x12c68, 0x12e10, 0x12e38,
+0x12fe0, 0x131d8, 0x1346c, 0x13380,
+0x1346c, 0x13498, 0x13008, 0x131b0,
+0x0, 0x13b84, 0x13bc8, 0x13c60,
+0x13cac, 0x13d1c, 0x13db4, 0x13de8,
+0x13e70, 0x13f08, 0x13fd8, 0x14018,
+0x1409c, 0x140c0, 0x141f4, 0x646f4261,
+0x73655067, 0x0, 0x0, 0x0,
+0x0, 0x73746d61, 0x634c4e4b, 0x0,
+0x0, 0x14c38, 0x14c38, 0x14b80,
+0x14bc4, 0x14c38, 0x14c38, 0x0,
 0x0, 0x0 };
 static u32 tigonFwData[(MAX_DATA_LEN/4) + 1] __devinitdata = {
-0x416c7465, 
-0x6f6e2041, 0x63654e49, 0x43205600, 0x416c7465, 
-0x6f6e2041, 0x63654e49, 0x43205600, 0x42424242, 
-0x0, 0x0, 0x0, 0x135418, 
-0x13e7fc, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x60cf00, 
-0x60, 0xcf000000, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x3, 0x0, 
-0x1, 0x0, 0x0, 0x0, 
-0x1, 0x0, 0x1, 0x0, 
-0x0, 0x0, 0x0, 0x1, 
-0x1, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x1000000, 0x21000000, 
-0x12000140, 0x0, 0x0, 0x20000000, 
-0x120000a0, 0x0, 0x12000060, 0x12000180, 
-0x120001e0, 0x0, 0x0, 0x0, 
-0x1, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x2, 
-0x0, 0x0, 0x30001, 0x1, 
+0x416c7465,
+0x6f6e2041, 0x63654e49, 0x43205600, 0x416c7465,
+0x6f6e2041, 0x63654e49, 0x43205600, 0x42424242,
+0x0, 0x0, 0x0, 0x135418,
+0x13e7fc, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x60cf00,
+0x60, 0xcf000000, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x3, 0x0,
+0x1, 0x0, 0x0, 0x0,
+0x1, 0x0, 0x1, 0x0,
+0x0, 0x0, 0x0, 0x1,
+0x1, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x1000000, 0x21000000,
+0x12000140, 0x0, 0x0, 0x20000000,
+0x120000a0, 0x0, 0x12000060, 0x12000180,
+0x120001e0, 0x0, 0x0, 0x0,
+0x1, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x2,
+0x0, 0x0, 0x30001, 0x1,
 0x30201, 0x0, 0x0, 0x0 };
 #endif
 /* Generated by genfw.c */
@@ -4612,4845 +4612,4845 @@ static u32 tigonFwData[(MAX_DATA_LEN/4) + 1] __devinitdata = {
 #define tigon2FwBssAddr 0x00016f50
 #define tigon2FwBssLen 0x20c0
 static u32 tigon2FwText[(MAX_TEXT_LEN/4) + 1] __devinitdata = {
-0x0, 
-0x10000003, 0x0, 0xd, 0xd, 
-0x3c1d0001, 0x8fbd6d20, 0x3a0f021, 0x3c100000, 
-0x26104000, 0xc0010c0, 0x0, 0xd, 
-0x3c1d0001, 0x8fbd6d24, 0x3a0f021, 0x3c100000, 
-0x26104000, 0xc0017e0, 0x0, 0xd, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x2000008, 
-0x0, 0x800172f, 0x3c0a0001, 0x800172f, 
-0x3c0a0002, 0x800172f, 0x0, 0x8002cac, 
-0x0, 0x8002c4f, 0x0, 0x800172f, 
-0x3c0a0004, 0x800328a, 0x0, 0x8001a52, 
-0x0, 0x800394d, 0x0, 0x80038f4, 
-0x0, 0x800172f, 0x3c0a0006, 0x80039bb, 
-0x3c0a0007, 0x800172f, 0x3c0a0008, 0x800172f, 
-0x3c0a0009, 0x8003a13, 0x0, 0x8002ea6, 
-0x0, 0x800172f, 0x3c0a000b, 0x800172f, 
-0x3c0a000c, 0x800172f, 0x3c0a000d, 0x80028fb, 
-0x0, 0x8002890, 0x0, 0x800172f, 
-0x3c0a000e, 0x800208c, 0x0, 0x8001964, 
-0x0, 0x8001a04, 0x0, 0x8003ca6, 
-0x0, 0x8003c94, 0x0, 0x800172f, 
-0x0, 0x800191a, 0x0, 0x800172f, 
-0x0, 0x800172f, 0x3c0a0013, 0x800172f, 
-0x3c0a0014, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x27bdffe0, 
-0x3c1cc000, 0xafbf001c, 0xafb00018, 0x8f820140, 
-0x24030003, 0xaf8300ec, 0x34420004, 0xc002b20, 
-0xaf820140, 0x3c0100c0, 0xc001763, 0xac203ffc, 
-0x401821, 0x3c020010, 0x3c010001, 0xac236e9c, 
-0x10620011, 0x43102b, 0x14400002, 0x3c020020, 
-0x3c020008, 0x1062000c, 0x24050100, 0x3c060001, 
-0x8cc66e9c, 0x3c040001, 0x24845c74, 0x3821, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x3c020020, 
-0x3c010001, 0xac226e9c, 0x24020008, 0x3c010001, 
-0xac226eb4, 0x2402001f, 0x3c010001, 0xac226ec4, 
-0x24020016, 0x3c010001, 0xac226e98, 0x3c05fffe, 
-0x34a56f08, 0x3c020001, 0x8c426e9c, 0x3c030002, 
-0x24639010, 0x3c040001, 0x8c846cc4, 0x431023, 
-0x14800002, 0x458021, 0x2610fa38, 0x2402f000, 
-0x2028024, 0xc001785, 0x2002021, 0x2022823, 
-0x3c040020, 0x821823, 0x651823, 0x247bb000, 
-0x3c03fffe, 0x3463bf08, 0x363b821, 0x3c0600bf, 
-0x34c6f000, 0x3c070001, 0x8ce76cc0, 0x3c0300bf, 
-0x3463e000, 0x852023, 0x3c010001, 0xac246ea8, 
-0x822023, 0x3c010001, 0xac256e90, 0x52842, 
-0x3c010001, 0xac226e84, 0x27620ffc, 0x3c010001, 
-0xac226d20, 0x27621ffc, 0xdb3023, 0x7b1823, 
-0x3c010001, 0xac246e88, 0x3c010001, 0xac256eac, 
-0x3c010001, 0xac226d24, 0xaf860150, 0x10e00011, 
-0xaf830250, 0x3c1d0001, 0x8fbd6ccc, 0x3a0f021, 
-0xc001749, 0x0, 0x3c020001, 0x8c426cd0, 
-0x3c030001, 0x8c636cd4, 0x2442fe00, 0x24630200, 
-0x3c010001, 0xac226cd0, 0x3c010001, 0x10000004, 
-0xac236cd4, 0x3c1d0001, 0x8fbd6d20, 0x3a0f021, 
-0x3c020001, 0x8c426cc4, 0x1040000d, 0x26fafa38, 
-0x3c020001, 0x8c426cd0, 0x3c030001, 0x8c636cd4, 
-0x3c1a0001, 0x8f5a6cd4, 0x2442fa38, 0x246305c8, 
-0x3c010001, 0xac226cd0, 0x3c010001, 0xac236cd4, 
-0x3c020001, 0x8c426cc8, 0x14400003, 0x0, 
-0x3c010001, 0xac206cd0, 0xc001151, 0x0, 
-0x8fbf001c, 0x8fb00018, 0x3e00008, 0x27bd0020, 
-0x3c020001, 0x8c426cd0, 0x3c030001, 0x8c636cd4, 
-0x27bdff98, 0xafb00048, 0x3c100001, 0x8e1066b8, 
-0xafb20050, 0x3c120000, 0x26524100, 0xafbf0060, 
-0xafbe005c, 0xafb50058, 0xafb30054, 0xafb1004c, 
-0xafa20034, 0xafa30030, 0xafa00010, 0xafa00014, 
-0x8f860040, 0x3c040001, 0x24845c80, 0x24050200, 
-0x3c010001, 0xac326e80, 0xc002b3b, 0x2003821, 
-0x8f830040, 0x3c02f000, 0x621824, 0x3c026000, 
-0x1062000b, 0xa3a0003f, 0x240e0001, 0x3c040001, 
-0x24845c88, 0xa3ae003f, 0xafa00010, 0xafa00014, 
-0x8f860040, 0x24050300, 0xc002b3b, 0x2003821, 
-0x8f820240, 0x3c030001, 0x431025, 0xaf820240, 
-0xaf800048, 0x8f820048, 0x14400005, 0x0, 
-0xaf800048, 0x8f820048, 0x10400004, 0x0, 
-0xaf800048, 0x10000003, 0x2e02021, 0xaf80004c, 
-0x2e02021, 0x3c050001, 0xc002ba8, 0x34a540f8, 
-0x3402021, 0xc002ba8, 0x240505c8, 0x3c020001, 
-0x8c426ea8, 0x3c0d0001, 0x8dad6e88, 0x3c030001, 
-0x8c636e84, 0x3c080001, 0x8d086e90, 0x3c090001, 
-0x8d296eac, 0x3c0a0001, 0x8d4a6eb4, 0x3c0b0001, 
-0x8d6b6ec4, 0x3c0c0001, 0x8d8c6e98, 0x3c040001, 
-0x24845c94, 0x24050400, 0xaf42013c, 0x8f42013c, 
-0x24060001, 0x24070001, 0xaf400000, 0xaf4d0138, 
-0xaf430144, 0xaf480148, 0xaf49014c, 0xaf4a0150, 
-0xaf4b0154, 0xaf4c0158, 0x2442ff80, 0xaf420140, 
-0x24020001, 0xafa20010, 0xc002b3b, 0xafa00014, 
-0x8f420138, 0xafa20010, 0x8f42013c, 0xafa20014, 
-0x8f460144, 0x8f470148, 0x3c040001, 0x24845ca0, 
-0xc002b3b, 0x24050500, 0xafb70010, 0xafba0014, 
-0x8f46014c, 0x8f470150, 0x3c040001, 0x24845cac, 
-0xc002b3b, 0x24050600, 0x3c020001, 0x8c426e9c, 
-0x3603821, 0x3c060002, 0x24c69010, 0x2448ffff, 
-0x1061824, 0xe81024, 0x43102b, 0x10400006, 
-0x24050900, 0x3c040001, 0x24845cb8, 0xafa80010, 
-0xc002b3b, 0xafa00014, 0x8f82000c, 0xafa20010, 
-0x8f82003c, 0xafa20014, 0x8f860000, 0x8f870004, 
-0x3c040001, 0x24845cc4, 0xc002b3b, 0x24051000, 
-0x8c020220, 0x8c030224, 0x8c060218, 0x8c07021c, 
-0x3c040001, 0x24845ccc, 0x24051100, 0xafa20010, 
-0xc002b3b, 0xafa30014, 0xaf800054, 0xaf80011c, 
-0x8c020218, 0x30420002, 0x10400009, 0x0, 
-0x8c020220, 0x3c030002, 0x34630004, 0x431025, 
-0xaf42000c, 0x8c02021c, 0x10000008, 0x34420004, 
-0x8c020220, 0x3c030002, 0x34630006, 0x431025, 
-0xaf42000c, 0x8c02021c, 0x34420006, 0xaf420014, 
-0x8c020218, 0x30420010, 0x1040000a, 0x0, 
-0x8c02021c, 0x34420004, 0xaf420010, 0x8c020220, 
-0x3c03000a, 0x34630004, 0x431025, 0x10000009, 
-0xaf420008, 0x8c020220, 0x3c03000a, 0x34630006, 
-0x431025, 0xaf420008, 0x8c02021c, 0x34420006, 
-0xaf420010, 0x24020001, 0xaf8200a0, 0xaf8200b0, 
-0x8f830054, 0x8f820054, 0xaf8000d0, 0xaf8000c0, 
-0x10000002, 0x24630064, 0x8f820054, 0x621023, 
-0x2c420065, 0x1440fffc, 0x0, 0x8c040208, 
-0x8c05020c, 0x26e20028, 0xaee20020, 0x24020490, 
-0xaee20010, 0xaee40008, 0xaee5000c, 0x26e40008, 
-0x8c820000, 0x8c830004, 0xaf820090, 0xaf830094, 
-0x8c820018, 0xaf8200b4, 0x9482000a, 0xaf82009c, 
-0x8f420014, 0xaf8200b0, 0x8f8200b0, 0x30420004, 
-0x1440fffd, 0x0, 0x8f8200b0, 0x3c03ef00, 
-0x431024, 0x10400021, 0x0, 0x8f8200b4, 
-0xafa20010, 0x8f820090, 0x8f830094, 0x3c040001, 
-0x24845cd4, 0xafa30014, 0x8f8600b0, 0x8f87009c, 
-0x3c050001, 0xc002b3b, 0x34a5200d, 0x3c040001, 
-0x24845ce0, 0x240203c0, 0xafa20010, 0xafa00014, 
-0x8f860144, 0x3c070001, 0x24e75ce8, 0xc002b3b, 
-0x3405dead, 0x8f82011c, 0x34420002, 0xaf82011c, 
-0x8f820220, 0x34420004, 0xaf820220, 0x8f820140, 
-0x3c030001, 0x431025, 0xaf820140, 0x96e20472, 
-0x96e60452, 0x96e70462, 0xafa20010, 0x96e20482, 
-0x3c040001, 0x24845d14, 0x24051200, 0xc002b3b, 
-0xafa20014, 0x96f00452, 0x32020001, 0x10400002, 
-0xb021, 0x24160001, 0x32020002, 0x54400001, 
-0x36d60002, 0x32020008, 0x54400001, 0x36d60004, 
-0x32020010, 0x54400001, 0x36d60008, 0x32020020, 
-0x54400001, 0x36d60010, 0x32020040, 0x54400001, 
-0x36d60020, 0x32020080, 0x54400001, 0x36d60040, 
-0x96e60482, 0x30c20200, 0x54400001, 0x36d64000, 
-0x96e30472, 0x30620200, 0x10400003, 0x30620100, 
-0x10000003, 0x36d62000, 0x54400001, 0x36d61000, 
-0x96f00462, 0x32c24000, 0x14400004, 0x3207009b, 
-0x30c2009b, 0x14e20007, 0x240e0001, 0x32c22000, 
-0x1440000d, 0x32020001, 0x3062009b, 0x10e20009, 
-0x240e0001, 0x3c040001, 0x24845d20, 0x24051300, 
-0x2003821, 0xa3ae003f, 0xafa30010, 0xc002b3b, 
-0xafa00014, 0x32020001, 0x54400001, 0x36d60080, 
-0x32020002, 0x54400001, 0x36d60100, 0x32020008, 
-0x54400001, 0x36d60200, 0x32020010, 0x54400001, 
-0x36d60400, 0x32020080, 0x54400001, 0x36d60800, 
-0x8c020218, 0x30420200, 0x10400002, 0x3c020008, 
-0x2c2b025, 0x8c020218, 0x30420800, 0x10400002, 
-0x3c020080, 0x2c2b025, 0x8c020218, 0x30420400, 
-0x10400002, 0x3c020100, 0x2c2b025, 0x8c020218, 
-0x30420100, 0x10400002, 0x3c020200, 0x2c2b025, 
-0x8c020218, 0x30420080, 0x10400002, 0x3c020400, 
-0x2c2b025, 0x8c020218, 0x30422000, 0x10400002, 
-0x3c020010, 0x2c2b025, 0x8c020218, 0x30424000, 
-0x10400002, 0x3c020020, 0x2c2b025, 0x8c020218, 
-0x30421000, 0x10400002, 0x3c020040, 0x2c2b025, 
-0x8ee20498, 0x8ee3049c, 0xaf420160, 0xaf430164, 
-0x8ee204a0, 0x8ee304a4, 0xaf420168, 0xaf43016c, 
-0x8ee204a8, 0x8ee304ac, 0xaf420170, 0xaf430174, 
-0x8ee20428, 0x8ee3042c, 0xaf420178, 0xaf43017c, 
-0x8ee20448, 0x8ee3044c, 0xaf420180, 0xaf430184, 
-0x8ee20458, 0x8ee3045c, 0xaf420188, 0xaf43018c, 
-0x8ee20468, 0x8ee3046c, 0xaf420190, 0xaf430194, 
-0x8ee20478, 0x8ee3047c, 0xaf420198, 0xaf43019c, 
-0x8ee20488, 0x8ee3048c, 0xaf4201a0, 0xaf4301a4, 
-0x8ee204b0, 0x8ee304b4, 0x24040080, 0xaf4201a8, 
-0xaf4301ac, 0xc002ba8, 0x24050080, 0x8c02025c, 
-0x27440224, 0xaf4201f0, 0x8c020260, 0x24050200, 
-0x24060008, 0xc002bbf, 0xaf4201f8, 0x3c043b9a, 
-0x3484ca00, 0x3821, 0x24020006, 0x24030002, 
-0xaf4201f4, 0x240203e8, 0xaf430204, 0xaf430200, 
-0xaf4401fc, 0xaf420294, 0x24020001, 0xaf430290, 
-0xaf42029c, 0x3c030001, 0x671821, 0x90636cd8, 
-0x3471021, 0x24e70001, 0xa043022c, 0x2ce2000f, 
-0x1440fff8, 0x3471821, 0x24e70001, 0x3c080001, 
-0x350840f8, 0x8f820040, 0x3c040001, 0x24845d2c, 
-0x24051400, 0x21702, 0x24420030, 0xa062022c, 
-0x3471021, 0xa040022c, 0x8c070218, 0x2c03021, 
-0x240205c8, 0xafa20010, 0xc002b3b, 0xafa80014, 
-0x3c040001, 0x24845d38, 0x3c050000, 0x24a55c80, 
-0x24060010, 0x27b10030, 0x2203821, 0x27b30034, 
-0xc0017a3, 0xafb30010, 0x3c030001, 0x8c636cc8, 
-0x1060000a, 0x408021, 0x8fa30030, 0x2405ff00, 
-0x8fa20034, 0x246400ff, 0x852024, 0x831823, 
-0x431023, 0xafa20034, 0xafa40030, 0x3c040001, 
-0x24845d44, 0x3c050000, 0x24a54100, 0x24060108, 
-0x2203821, 0xc0017a3, 0xafb30010, 0x409021, 
-0x32c20003, 0x3c010001, 0xac326e80, 0x10400045, 
-0x2203821, 0x8f820050, 0x3c030010, 0x431024, 
-0x10400016, 0x0, 0x8c020218, 0x30420040, 
-0x1040000f, 0x24020001, 0x8f820050, 0x8c030218, 
-0x240e0001, 0x3c040001, 0x24845d50, 0xa3ae003f, 
-0xafa20010, 0xafa30014, 0x8f870040, 0x24051500, 
-0xc002b3b, 0x2c03021, 0x10000004, 0x0, 
-0x3c010001, 0x370821, 0xa02240f4, 0x3c040001, 
-0x24845d5c, 0x3c050001, 0x24a55b40, 0x3c060001, 
-0x24c65bac, 0xc53023, 0x8f420010, 0x27b30030, 
-0x2603821, 0x27b10034, 0x34420a00, 0xaf420010, 
-0xc0017a3, 0xafb10010, 0x3c040001, 0x24845d70, 
-0x3c050001, 0x24a5b714, 0x3c060001, 0x24c6ba90, 
-0xc53023, 0x2603821, 0xaf420108, 0xc0017a3, 
-0xafb10010, 0x3c040001, 0x24845d8c, 0x3c050001, 
-0x24a5be58, 0x3c060001, 0x24c6c900, 0xc53023, 
-0x2603821, 0x3c010001, 0xac226ef4, 0xc0017a3, 
-0xafb10010, 0x3c040001, 0x24845da4, 0x10000024, 
-0x24051600, 0x3c040001, 0x24845dac, 0x3c050001, 
-0x24a5a10c, 0x3c060001, 0x24c6a238, 0xc53023, 
-0xc0017a3, 0xafb30010, 0x3c040001, 0x24845dbc, 
-0x3c050001, 0x24a5b2b0, 0x3c060001, 0x24c6b70c, 
-0xc53023, 0x2203821, 0xaf420108, 0xc0017a3, 
-0xafb30010, 0x3c040001, 0x24845dd0, 0x3c050001, 
-0x24a5ba98, 0x3c060001, 0x24c6be50, 0xc53023, 
-0x2203821, 0x3c010001, 0xac226ef4, 0xc0017a3, 
-0xafb30010, 0x3c040001, 0x24845de4, 0x24051650, 
-0x2c03021, 0x3821, 0x3c010001, 0xac226ef8, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x32c20020, 
-0x10400021, 0x27a70030, 0x3c040001, 0x24845df0, 
-0x3c050001, 0x24a5b13c, 0x3c060001, 0x24c6b2a8, 
-0xc53023, 0x24022000, 0xaf42001c, 0x27a20034, 
-0xc0017a3, 0xafa20010, 0x21900, 0x31982, 
-0x3c040800, 0x641825, 0xae430028, 0x24030010, 
-0xaf43003c, 0x96e30450, 0xaf430040, 0x8f430040, 
-0x3c040001, 0x24845e04, 0xafa00014, 0xafa30010, 
-0x8f47001c, 0x24051660, 0x3c010001, 0xac226ef0, 
-0x10000025, 0x32c60020, 0x8ee20448, 0x8ee3044c, 
-0xaf43001c, 0x8f42001c, 0x2442e000, 0x2c422001, 
-0x1440000a, 0x240e0001, 0x3c040001, 0x24845e10, 
-0xa3ae003f, 0xafa00010, 0xafa00014, 0x8f46001c, 
-0x24051700, 0xc002b3b, 0x3821, 0x3c020000, 
-0x24425cbc, 0x21100, 0x21182, 0x3c030800, 
-0x431025, 0xae420028, 0x24020008, 0xaf42003c, 
-0x96e20450, 0xaf420040, 0x8f420040, 0x3c040001, 
-0x24845e1c, 0xafa00014, 0xafa20010, 0x8f47001c, 
-0x24051800, 0x32c60020, 0xc002b3b, 0x0, 
-0x3c050fff, 0x3c030001, 0x8c636ef4, 0x34a5ffff, 
-0x2403021, 0x3c020001, 0x8c426ef8, 0x3c040800, 
-0x651824, 0x31882, 0x641825, 0x451024, 
-0x21082, 0x441025, 0xacc20080, 0x32c20180, 
-0x10400056, 0xacc30020, 0x8f82005c, 0x3c030080, 
-0x431024, 0x1040000d, 0x0, 0x8f820050, 
-0xafa20010, 0x8f82005c, 0x240e0001, 0x3c040001, 
-0x24845e28, 0xa3ae003f, 0xafa20014, 0x8f870040, 
-0x24051900, 0xc002b3b, 0x2c03021, 0x8f820050, 
-0x3c030010, 0x431024, 0x10400016, 0x0, 
-0x8c020218, 0x30420040, 0x1040000f, 0x24020001, 
-0x8f820050, 0x8c030218, 0x240e0001, 0x3c040001, 
-0x24845d50, 0xa3ae003f, 0xafa20010, 0xafa30014, 
-0x8f870040, 0x24052000, 0xc002b3b, 0x2c03021, 
-0x10000004, 0x0, 0x3c010001, 0x370821, 
-0xa02240f4, 0x3c040001, 0x24845e34, 0x3c050001, 
-0x24a55ac0, 0x3c060001, 0x24c65b38, 0xc53023, 
-0x8f420008, 0x27b30030, 0x2603821, 0x27b10034, 
-0x34420e00, 0xaf420008, 0xc0017a3, 0xafb10010, 
-0x3c040001, 0x24845e4c, 0x3c050001, 0x24a5d8b4, 
-0x3c060001, 0x24c6e3c8, 0xc53023, 0x2603821, 
-0xaf42010c, 0xc0017a3, 0xafb10010, 0x3c040001, 
-0x24845e64, 0x3c050001, 0x24a5e9ac, 0x3c060001, 
-0x24c6f0f0, 0xc53023, 0x2603821, 0x3c010001, 
-0xac226f04, 0xc0017a3, 0xafb10010, 0x3c040001, 
-0x24845e7c, 0x10000027, 0x24052100, 0x3c040001, 
-0x24845e84, 0x3c050001, 0x24a59fc8, 0x3c060001, 
-0x24c6a104, 0xc53023, 0x27b10030, 0x2203821, 
-0x27b30034, 0xc0017a3, 0xafb30010, 0x3c040001, 
-0x24845e94, 0x3c050001, 0x24a5cad4, 0x3c060001, 
-0x24c6d8ac, 0xc53023, 0x2203821, 0xaf42010c, 
-0xc0017a3, 0xafb30010, 0x3c040001, 0x24845ea4, 
-0x3c050001, 0x24a5e84c, 0x3c060001, 0x24c6e9a4, 
-0xc53023, 0x2203821, 0x3c010001, 0xac226f04, 
-0xc0017a3, 0xafb30010, 0x3c040001, 0x24845eb8, 
-0x24052150, 0x2c03021, 0x3821, 0x3c010001, 
-0xac226f10, 0xafa00010, 0xc002b3b, 0xafa00014, 
-0x3c110fff, 0x3c030001, 0x8c636f04, 0x3631ffff, 
-0x2409821, 0x3c020001, 0x8c426f10, 0x3c0e0800, 
-0x711824, 0x31882, 0x6e1825, 0x511024, 
-0x21082, 0x4e1025, 0xae630038, 0xae620078, 
-0x8c020218, 0x30420040, 0x14400004, 0x24020001, 
-0x3c010001, 0x370821, 0xa02240f4, 0x3c040001, 
-0x24845ec4, 0x3c050001, 0x24a5e3d0, 0x3c060001, 
-0x24c6e52c, 0xc53023, 0x27be0030, 0x3c03821, 
-0x27b50034, 0xc0017a3, 0xafb50010, 0x3c010001, 
-0xac226efc, 0x511024, 0x21082, 0x3c0e0800, 
-0x4e1025, 0xae620050, 0x32c22000, 0x10400006, 
-0x3c03821, 0x3c020000, 0x24425cbc, 0x2221024, 
-0x1000000f, 0x21082, 0x3c040001, 0x24845ed8, 
-0x3c050001, 0x24a5e534, 0x3c060001, 0x24c6e6e4, 
-0xc53023, 0xc0017a3, 0xafb50010, 0x3c010001, 
-0xac226f14, 0x511024, 0x21082, 0x3c0e0800, 
-0x4e1025, 0xae620048, 0x32c24000, 0x10400005, 
-0x27a70030, 0x3c020000, 0x24425cbc, 0x1000000e, 
-0x21100, 0x3c040001, 0x24845ef0, 0x3c050001, 
-0x24a5e6ec, 0x3c060001, 0x24c6e844, 0xc53023, 
-0x27a20034, 0xc0017a3, 0xafa20010, 0x3c010001, 
-0xac226f08, 0x21100, 0x21182, 0x3c030800, 
-0x431025, 0xae420060, 0x3c040001, 0x24845f08, 
-0x3c050001, 0x24a58230, 0x3c060001, 0x24c68650, 
-0xc53023, 0x27b10030, 0x2203821, 0x27b30034, 
-0xc0017a3, 0xafb30010, 0x3c0e0fff, 0x35ceffff, 
-0x3c040001, 0x24845f14, 0x3c050000, 0x24a56468, 
-0x3c060000, 0x24c66588, 0xc53023, 0x2203821, 
-0x240f021, 0x3c010001, 0xac226edc, 0x4e1024, 
-0x21082, 0x3c150800, 0x551025, 0xafae0044, 
-0xafc200b8, 0xc0017a3, 0xafb30010, 0x3c040001, 
-0x24845f20, 0x3c050000, 0x24a56590, 0x3c060000, 
-0x24c66808, 0x8fae0044, 0xc53023, 0x2203821, 
-0x3c010001, 0xac226ed0, 0x4e1024, 0x21082, 
-0x551025, 0xafc200e8, 0xc0017a3, 0xafb30010, 
-0x3c040001, 0x24845f38, 0x3c050000, 0x24a56810, 
-0x3c060000, 0x24c66940, 0x8fae0044, 0xc53023, 
-0x2203821, 0x3c010001, 0xac226ec8, 0x4e1024, 
-0x21082, 0x551025, 0xafc200c0, 0xc0017a3, 
-0xafb30010, 0x3c040001, 0x24845f50, 0x3c050001, 
-0x24a5fad0, 0x3c060001, 0x24c6fba8, 0x8fae0044, 
-0xc53023, 0x2203821, 0x3c010001, 0xac226ed4, 
-0x4e1024, 0x21082, 0x551025, 0xafc200c8, 
-0xc0017a3, 0xafb30010, 0x3c040001, 0x24845f5c, 
-0x3c050001, 0x24a5c93c, 0x3c060001, 0x24c6ca20, 
-0xc53023, 0x2203821, 0xaf420110, 0xc0017a3, 
-0xafb30010, 0x3c040001, 0x24845f6c, 0x3c050001, 
-0x24a5c910, 0x3c060001, 0x24c6c934, 0xc53023, 
-0x2203821, 0xaf420124, 0xc0017a3, 0xafb30010, 
-0x3c040001, 0x24845f7c, 0x3c050001, 0x24a55a80, 
-0x3c060001, 0x24c65aac, 0xc53023, 0x2203821, 
-0xaf420120, 0xaf420114, 0xc0017a3, 0xafb30010, 
-0x3c040001, 0x24845f88, 0x3c050001, 0x24a5f298, 
-0x3c060001, 0x24c6f6b4, 0xc53023, 0x2203821, 
-0xaf420118, 0xc0017a3, 0xafb30010, 0x8fae0044, 
-0x3c010001, 0xac226f18, 0x4e1024, 0x21082, 
-0x551025, 0xc003fc3, 0xafc200d0, 0xc003c40, 
-0x0, 0xc0027a8, 0x0, 0xac000228, 
-0xac00022c, 0x96e20450, 0x2442ffff, 0xaf420038, 
-0x96e20460, 0xaf420080, 0x32c24000, 0x14400003, 
-0x0, 0x96e20480, 0xaf420084, 0x96e70490, 
-0x50e00001, 0x24070800, 0x24e2ffff, 0xaf420088, 
-0xaf42007c, 0x24020800, 0x10e2000f, 0x32c24000, 
-0x10400003, 0x24020400, 0x10e2000b, 0x0, 
-0x240e0001, 0x3c040001, 0x24845f98, 0xa3ae003f, 
-0x96e60490, 0x24052170, 0x2c03821, 0xafa00010, 
-0xc002b3b, 0xafa00014, 0x8f430138, 0x8f440138, 
-0x24020001, 0xa34205c2, 0xaf430094, 0xaf440098, 
-0xafa00010, 0xafa00014, 0x8f460080, 0x8f470084, 
-0x3c040001, 0x24845fa4, 0xc002b3b, 0x24052200, 
-0xc0024a4, 0x3c110800, 0x3c1433d8, 0x3694cb58, 
-0x3c020800, 0x34420080, 0x3c040001, 0x24845fb0, 
-0x3c050000, 0x24a55d00, 0x3c060000, 0x24c65d1c, 
-0xc53023, 0x27a70030, 0xaf820060, 0x2402ffff, 
-0xaf820064, 0x27a20034, 0xc0017a3, 0xafa20010, 
-0x3c010001, 0xac226eb8, 0x21100, 0x21182, 
-0x511025, 0xc0018fc, 0xae420000, 0x8f820240, 
-0x3c030001, 0x431025, 0xaf820240, 0x3c020000, 
-0x24424034, 0xaf820244, 0xaf800240, 0x8f820060, 
-0x511024, 0x14400005, 0x3c030800, 0x8f820060, 
-0x431024, 0x1040fffd, 0x0, 0xc003c4d, 
-0x8821, 0x3c020100, 0xafa20020, 0x8f530018, 
-0x240200ff, 0x56620001, 0x26710001, 0x8c020228, 
-0x1622000e, 0x1330c0, 0x8f42033c, 0x24420001, 
-0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001, 
-0x24845c24, 0x3c050009, 0xafa00014, 0xafa20010, 
-0x8fa60020, 0x1000003f, 0x34a50100, 0xd71021, 
-0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4, 
-0xc01821, 0x8f440178, 0x8f45017c, 0x1021, 
-0x24070004, 0xafa70010, 0xafb10014, 0x8f48000c, 
-0x24c604c0, 0x2e63021, 0xafa80018, 0x8f48010c, 
-0x24070008, 0xa32821, 0xa3482b, 0x822021, 
-0x100f809, 0x892021, 0x1440000b, 0x24070008, 
-0x8f820120, 0xafa20010, 0x8f820124, 0x3c040001, 
-0x24845c2c, 0x3c050009, 0xafa20014, 0x8fa60020, 
-0x1000001c, 0x34a50200, 0x8f440160, 0x8f450164, 
-0x8f43000c, 0xaf510018, 0x8f860120, 0x24020010, 
-0xafa20010, 0xafb10014, 0xafa30018, 0x8f42010c, 
-0x40f809, 0x24c6001c, 0x14400010, 0x0, 
-0x8f420340, 0x24420001, 0xaf420340, 0x8f420340, 
-0x8f820120, 0xafa20010, 0x8f820124, 0x3c040001, 
-0x24845c34, 0x3c050009, 0xafa20014, 0x8fa60020, 
-0x34a50300, 0xc002b3b, 0x2603821, 0x8f4202e4, 
-0x24420001, 0xaf4202e4, 0x8f4202e4, 0x93a2003f, 
-0x10400069, 0x3c020700, 0x34423000, 0xafa20028, 
-0x8f530018, 0x240200ff, 0x12620002, 0x8821, 
-0x26710001, 0x8c020228, 0x1622000e, 0x1330c0, 
-0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c, 
-0x8c020228, 0x3c040001, 0x24845c24, 0x3c050009, 
-0xafa00014, 0xafa20010, 0x8fa60028, 0x1000003f, 
-0x34a50100, 0xd71021, 0x8fa30028, 0x8fa4002c, 
-0xac4304c0, 0xac4404c4, 0xc01821, 0x8f440178, 
-0x8f45017c, 0x1021, 0x24070004, 0xafa70010, 
-0xafb10014, 0x8f48000c, 0x24c604c0, 0x2e63021, 
-0xafa80018, 0x8f48010c, 0x24070008, 0xa32821, 
-0xa3482b, 0x822021, 0x100f809, 0x892021, 
-0x1440000b, 0x24070008, 0x8f820120, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x24845c2c, 0x3c050009, 
-0xafa20014, 0x8fa60028, 0x1000001c, 0x34a50200, 
-0x8f440160, 0x8f450164, 0x8f43000c, 0xaf510018, 
-0x8f860120, 0x24020010, 0xafa20010, 0xafb10014, 
-0xafa30018, 0x8f42010c, 0x40f809, 0x24c6001c, 
-0x14400010, 0x0, 0x8f420340, 0x24420001, 
-0xaf420340, 0x8f420340, 0x8f820120, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x24845c34, 0x3c050009, 
-0xafa20014, 0x8fa60028, 0x34a50300, 0xc002b3b, 
-0x2603821, 0x8f4202f0, 0x24420001, 0xaf4202f0, 
-0x8f4202f0, 0x3c040001, 0x24845fc0, 0xafa00010, 
-0xafa00014, 0x8fa60028, 0x24052300, 0xc002b3b, 
-0x3821, 0x10000004, 0x0, 0x8c020264, 
-0x10400005, 0x0, 0x8f8200a0, 0x30420004, 
-0x1440fffa, 0x0, 0x8f820044, 0x34420004, 
-0xaf820044, 0x8f420308, 0x24420001, 0xaf420308, 
-0x8f420308, 0x8f8200d8, 0x8f8300d4, 0x431023, 
-0x2442ff80, 0xaf420090, 0x8f420090, 0x2842ff81, 
-0x10400006, 0x24020001, 0x8f420090, 0x8f430144, 
-0x431021, 0xaf420090, 0x24020001, 0xaf42008c, 
-0x32c20008, 0x10400006, 0x0, 0x8f820214, 
-0x3c038100, 0x3042ffff, 0x431025, 0xaf820214, 
-0x3c030001, 0x8c636d94, 0x30620002, 0x10400009, 
-0x30620001, 0x3c040001, 0x24845fcc, 0x3c050000, 
-0x24a56d50, 0x3c060000, 0x24c671c8, 0x10000012, 
-0xc53023, 0x10400009, 0x0, 0x3c040001, 
-0x24845fdc, 0x3c050000, 0x24a571d0, 0x3c060000, 
-0x24c67678, 0x10000008, 0xc53023, 0x3c040001, 
-0x24845fec, 0x3c050000, 0x24a56948, 0x3c060000, 
-0x24c66d48, 0xc53023, 0x27a70030, 0x27a20034, 
-0xc0017a3, 0xafa20010, 0x3c010001, 0xac226ecc, 
-0x3c020001, 0x8c426ecc, 0x3c030800, 0x21100, 
-0x21182, 0x431025, 0xae420040, 0x8f8200a0, 
-0xafa20010, 0x8f8200b0, 0xafa20014, 0x8f86005c, 
-0x8f87011c, 0x3c040001, 0x24845ffc, 0x3c010001, 
-0xac366ea4, 0x3c010001, 0xac206e94, 0x3c010001, 
-0xac3c6e8c, 0x3c010001, 0xac3b6ebc, 0x3c010001, 
-0xac376ec0, 0x3c010001, 0xac3a6ea0, 0xc002b3b, 
-0x24052400, 0x8f820200, 0xafa20010, 0x8f820220, 
-0xafa20014, 0x8f860044, 0x8f870050, 0x3c040001, 
-0x24846008, 0xc002b3b, 0x24052500, 0x8f830060, 
-0x74100b, 0x242000a, 0x200f821, 0x0, 
-0xd, 0x8fbf0060, 0x8fbe005c, 0x8fb50058, 
-0x8fb30054, 0x8fb20050, 0x8fb1004c, 0x8fb00048, 
-0x3e00008, 0x27bd0068, 0x27bdffe0, 0x3c040001, 
-0x24846014, 0x24052600, 0x3021, 0x3821, 
-0xafbf0018, 0xafa00010, 0xc002b3b, 0xafa00014, 
-0x8fbf0018, 0x3e00008, 0x27bd0020, 0x3e00008, 
-0x0, 0x3e00008, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x3e00008, 0x0, 0x3e00008, 0x0, 
-0x27bdfde0, 0x27a50018, 0x3c04dead, 0x3484beef, 
-0xafbf0218, 0x8f820150, 0x3c03001f, 0x3463ffff, 
-0xafa40018, 0xa22823, 0xa32824, 0x8ca20000, 
-0x1044000a, 0x0, 0xafa50010, 0x8ca20000, 
-0xafa20014, 0x8f860150, 0x8f870250, 0x3c040001, 
-0x2484601c, 0xc002b3b, 0x24052700, 0x8fbf0218, 
-0x3e00008, 0x27bd0220, 0x27bdffe0, 0x3c06abba, 
-0x34c6babe, 0xafb00018, 0x3c100004, 0x3c07007f, 
-0x34e7ffff, 0xafbf001c, 0x102840, 0x8e040000, 
-0x8ca30000, 0xaca00000, 0xae060000, 0x8ca20000, 
-0xaca30000, 0x10460005, 0xae040000, 0xa08021, 
-0xf0102b, 0x1040fff5, 0x102840, 0x3c040001, 
-0x24846028, 0x24052800, 0x2003021, 0x3821, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x2001021, 
-0x8fbf001c, 0x8fb00018, 0x3e00008, 0x27bd0020, 
-0x8c020224, 0x3047003f, 0x10e00010, 0x803021, 
-0x2821, 0x24030020, 0xe31024, 0x10400002, 
-0x63042, 0xa62821, 0x31842, 0x1460fffb, 
-0xe31024, 0x2402f000, 0xa22824, 0x3402ffff, 
-0x45102b, 0x14400003, 0x3c020001, 0x10000008, 
-0x3c020001, 0x3442ffff, 0x851823, 0x43102b, 
-0x14400003, 0xa01021, 0x3c02fffe, 0x821021, 
-0x3e00008, 0x0, 0x27bdffd0, 0xafb50028, 
-0x8fb50040, 0xafb20020, 0xa09021, 0xafb1001c, 
-0x24c60003, 0xafbf002c, 0xafb30024, 0xafb00018, 
-0x8ea20000, 0x2403fffc, 0xc38024, 0x50102b, 
-0x1440001b, 0xe08821, 0x8e330000, 0xafb00010, 
-0x8ea20000, 0xafa20014, 0x8e270000, 0x24053000, 
-0xc002b3b, 0x2403021, 0x8e230000, 0x702021, 
-0x64102b, 0x10400007, 0x2402821, 0x8ca20000, 
-0xac620000, 0x24630004, 0x64102b, 0x1440fffb, 
-0x24a50004, 0x8ea20000, 0x501023, 0xaea20000, 
-0x8e220000, 0x501021, 0x1000000b, 0xae220000, 
-0x2402002d, 0xa0820000, 0xafb00010, 0x8ea20000, 
-0x2409821, 0xafa20014, 0x8e270000, 0x24053100, 
-0xc002b3b, 0x2603021, 0x2601021, 0x8fbf002c, 
-0x8fb50028, 0x8fb30024, 0x8fb20020, 0x8fb1001c, 
-0x8fb00018, 0x3e00008, 0x27bd0030, 0x27bdffe8, 
-0x3c1cc000, 0x3c05fffe, 0x3c030001, 0x8c636e84, 
-0x3c040001, 0x8c846e90, 0x34a5bf08, 0x24021ffc, 
-0x3c010001, 0xac226cd0, 0x3c0200c0, 0x3c010001, 
-0xac226cd4, 0x3c020020, 0xafbf0010, 0x3c0100c0, 
-0xac201ffc, 0x431023, 0x441023, 0x245bb000, 
-0x365b821, 0x3c1d0001, 0x8fbd6ccc, 0x3a0f021, 
-0x3c0400c0, 0x34840200, 0x3c1a00c0, 0x3c0300c0, 
-0x346307c8, 0x24021dfc, 0x3c010001, 0xac226cd0, 
-0x24021834, 0x3c010001, 0xac246cd4, 0x3c010001, 
-0xac226cd0, 0x3c010001, 0xac236cd4, 0xc00180d, 
-0x375a0200, 0x8fbf0010, 0x3e00008, 0x27bd0018, 
-0x27bdffc8, 0x3c040001, 0x24846034, 0x24053200, 
-0x3c020001, 0x8c426cd0, 0x3c030001, 0x8c636cd4, 
-0x3021, 0x3603821, 0xafbf0030, 0xafb3002c, 
-0xafb20028, 0xafb10024, 0xafb00020, 0xafa2001c, 
-0xafa30018, 0xafb70010, 0xc002b3b, 0xafba0014, 
-0xc001916, 0x0, 0x8f820240, 0x34420004, 
-0xaf820240, 0x24020001, 0xaf420000, 0x3c020001, 
-0x571021, 0x904240f4, 0x10400092, 0x2403fffc, 
-0x3c100001, 0x2610ac73, 0x3c120001, 0x2652a84c, 
-0x2121023, 0x438024, 0x8fa3001c, 0x3c040001, 
-0x24846040, 0x70102b, 0x1440001a, 0x27b30018, 
-0x8fb10018, 0x24053000, 0x2403021, 0xafb00010, 
-0xafa30014, 0xc002b3b, 0x2203821, 0x8fa30018, 
-0x702021, 0x64102b, 0x10400007, 0x2403021, 
-0x8cc20000, 0xac620000, 0x24630004, 0x64102b, 
-0x1440fffb, 0x24c60004, 0x8fa2001c, 0x501023, 
-0xafa2001c, 0x8e620000, 0x501021, 0x1000000a, 
-0xae620000, 0x2408821, 0x24053100, 0xafb00010, 
-0xafa30014, 0x8fa70018, 0x2203021, 0x2402002d, 
-0xc002b3b, 0xa0820000, 0x24070020, 0x8fa3001c, 
-0x3c040001, 0x2484605c, 0x24120020, 0x3c010001, 
-0xac316eb0, 0x2c620020, 0x1440001d, 0x27b10018, 
-0x8fb00018, 0x24053000, 0x3c060001, 0x24c66f50, 
-0xafa70010, 0xafa30014, 0xc002b3b, 0x2003821, 
-0x8fa30018, 0x3c040001, 0x24846f50, 0x24650020, 
-0x65102b, 0x10400007, 0x0, 0x8c820000, 
-0xac620000, 0x24630004, 0x65102b, 0x1440fffb, 
-0x24840004, 0x8fa2001c, 0x521023, 0xafa2001c, 
-0x8e220000, 0x521021, 0x1000000b, 0xae220000, 
-0x3c100001, 0x26106f50, 0x24053100, 0xafa70010, 
-0xafa30014, 0x8fa70018, 0x2003021, 0x2402002d, 
-0xc002b3b, 0xa0820000, 0x24070020, 0x3c040001, 
-0x24846070, 0x8fa3001c, 0x24120020, 0x3c010001, 
-0xac306ee4, 0x2c620020, 0x1440001d, 0x27b10018, 
-0x8fb00018, 0x24053000, 0x3c060001, 0x24c66f70, 
-0xafa70010, 0xafa30014, 0xc002b3b, 0x2003821, 
-0x8fa30018, 0x3c040001, 0x24846f70, 0x24650020, 
-0x65102b, 0x10400007, 0x0, 0x8c820000, 
-0xac620000, 0x24630004, 0x65102b, 0x1440fffb, 
-0x24840004, 0x8fa2001c, 0x521023, 0xafa2001c, 
-0x8e220000, 0x521021, 0x1000000b, 0xae220000, 
-0x3c100001, 0x26106f70, 0x24053100, 0xafa70010, 
-0xafa30014, 0x8fa70018, 0x2003021, 0x2402002d, 
-0xc002b3b, 0xa0820000, 0x3c010001, 0x10000031, 
-0xac306ee0, 0x3c100001, 0x2610821f, 0x3c120001, 
-0x2652809c, 0x2121023, 0x438024, 0x8fa3001c, 
-0x3c040001, 0x24846084, 0x70102b, 0x1440001a, 
-0x27b30018, 0x8fb10018, 0x24053000, 0x2403021, 
-0xafb00010, 0xafa30014, 0xc002b3b, 0x2203821, 
-0x8fa30018, 0x702021, 0x64102b, 0x10400007, 
-0x2403021, 0x8cc20000, 0xac620000, 0x24630004, 
-0x64102b, 0x1440fffb, 0x24c60004, 0x8fa2001c, 
-0x501023, 0xafa2001c, 0x8e620000, 0x501021, 
-0x1000000a, 0xae620000, 0x2408821, 0x24053100, 
-0xafb00010, 0xafa30014, 0x8fa70018, 0x2203021, 
-0x2402002d, 0xc002b3b, 0xa0820000, 0x3c010001, 
-0xac316eb0, 0x3c030001, 0x8c636eb0, 0x24020400, 
-0x60f809, 0xaf820070, 0x8fbf0030, 0x8fb3002c, 
-0x8fb20028, 0x8fb10024, 0x8fb00020, 0x3e00008, 
-0x27bd0038, 0x0, 0x0, 0x8f820040, 
-0x3c03f000, 0x431024, 0x3c036000, 0x14430006, 
-0x0, 0x8f820050, 0x2403ff80, 0x431024, 
-0x34420055, 0xaf820050, 0x8f820054, 0x244203e8, 
-0xaf820058, 0x240201f4, 0xaf4200e0, 0x24020004, 
-0xaf4200e8, 0x24020002, 0xaf4001b0, 0xaf4000e4, 
-0xaf4200dc, 0xaf4000d8, 0xaf4000d4, 0x3e00008, 
-0xaf4000d0, 0x8f820054, 0x24420005, 0x3e00008, 
-0xaf820078, 0x27bdffe8, 0xafbf0010, 0x8f820054, 
-0x244203e8, 0xaf820058, 0x3c020800, 0x2c21024, 
-0x10400004, 0x3c02f7ff, 0x3442ffff, 0x2c2b024, 
-0x36940040, 0x3c020001, 0x8c426da8, 0x10400017, 
-0x3c020200, 0x3c030001, 0x8c636f1c, 0x10600016, 
-0x282a025, 0x3c020001, 0x8c426e44, 0x14400012, 
-0x3c020200, 0x3c020001, 0x8c426d94, 0x30420003, 
-0x1440000d, 0x3c020200, 0x8f830224, 0x3c020002, 
-0x8c428fec, 0x10620008, 0x3c020200, 0xc003daf, 
-0x0, 0x10000004, 0x3c020200, 0xc004196, 
-0x0, 0x3c020200, 0x2c21024, 0x10400003, 
-0x0, 0xc001f4b, 0x0, 0x8f4200d8, 
-0x8f4300dc, 0x24420001, 0xaf4200d8, 0x43102b, 
-0x14400003, 0x0, 0xaf4000d8, 0x36940080, 
-0x8c030238, 0x1060000c, 0x0, 0x8f4201b0, 
-0x244203e8, 0xaf4201b0, 0x43102b, 0x14400006, 
-0x0, 0x934205c5, 0x14400003, 0x0, 
-0xc001da0, 0x0, 0x8fbf0010, 0x3e00008, 
-0x27bd0018, 0x3e00008, 0x0, 0x27bdffd8, 
-0xafbf0020, 0x8f43002c, 0x8f420038, 0x10620059, 
-0x0, 0x3c020001, 0x571021, 0x904240f0, 
-0x10400026, 0x24070008, 0x8f440170, 0x8f450174, 
-0x8f48000c, 0x8f860120, 0x24020020, 0xafa20010, 
-0xafa30014, 0xafa80018, 0x8f42010c, 0x40f809, 
-0x24c6001c, 0x14400011, 0x24020001, 0x3c010001, 
-0x370821, 0xa02240f0, 0x8f820124, 0xafa20010, 
-0x8f820128, 0x3c040001, 0x24846128, 0xafa20014, 
-0x8f46002c, 0x8f870120, 0x3c050009, 0xc002b3b, 
-0x34a50900, 0x1000005c, 0x0, 0x8f420300, 
-0x24420001, 0xaf420300, 0x8f420300, 0x8f42002c, 
-0xa34005c1, 0x10000027, 0xaf420038, 0x8f440170, 
-0x8f450174, 0x8f43002c, 0x8f48000c, 0x8f860120, 
-0x24020080, 0xafa20010, 0xafa30014, 0xafa80018, 
-0x8f42010c, 0x40f809, 0x24c6001c, 0x14400011, 
-0x24020001, 0x3c010001, 0x370821, 0xa02240f1, 
-0x8f820124, 0xafa20010, 0x8f820128, 0x3c040001, 
-0x24846134, 0xafa20014, 0x8f46002c, 0x8f870120, 
-0x3c050009, 0xc002b3b, 0x34a51100, 0x10000036, 
-0x0, 0x8f420300, 0x8f43002c, 0x24420001, 
-0xaf420300, 0x8f420300, 0x24020001, 0xa34205c1, 
-0xaf430038, 0x3c010001, 0x370821, 0xa02040f1, 
-0x3c010001, 0x370821, 0xa02040f0, 0x10000026, 
-0xaf400034, 0x934205c1, 0x1040001d, 0x0, 
-0xa34005c1, 0x8f820040, 0x30420001, 0x14400008, 
-0x2021, 0x8c030104, 0x24020001, 0x50620005, 
-0x24040001, 0x8c020264, 0x10400003, 0x801021, 
-0x24040001, 0x801021, 0x10400006, 0x0, 
-0x8f42030c, 0x24420001, 0xaf42030c, 0x10000008, 
-0x8f42030c, 0x8f820044, 0x34420004, 0xaf820044, 
-0x8f420308, 0x24420001, 0xaf420308, 0x8f420308, 
-0x3c010001, 0x370821, 0xa02040f0, 0x3c010001, 
-0x370821, 0xa02040f1, 0x8f420000, 0x10400007, 
-0x0, 0xaf80004c, 0x8f82004c, 0x1040fffd, 
-0x0, 0x10000005, 0x0, 0xaf800048, 
-0x8f820048, 0x1040fffd, 0x0, 0x8f820060, 
-0x3c03ff7f, 0x3463ffff, 0x431024, 0xaf820060, 
-0x8f420000, 0x10400003, 0x0, 0x10000002, 
-0xaf80004c, 0xaf800048, 0x8fbf0020, 0x3e00008, 
-0x27bd0028, 0x3e00008, 0x0, 0x27bdffd8, 
-0xafbf0020, 0x8f430044, 0x8f42007c, 0x10620029, 
-0x24070008, 0x8f440168, 0x8f45016c, 0x8f48000c, 
-0x8f860120, 0x24020040, 0xafa20010, 0xafa30014, 
-0xafa80018, 0x8f42010c, 0x40f809, 0x24c6001c, 
-0x14400011, 0x24020001, 0x3c010001, 0x370821, 
-0xa02240f2, 0x8f820124, 0xafa20010, 0x8f820128, 
-0x3c040001, 0x2484613c, 0xafa20014, 0x8f460044, 
-0x8f870120, 0x3c050009, 0xc002b3b, 0x34a51300, 
-0x1000000f, 0x0, 0x8f420304, 0x24420001, 
-0xaf420304, 0x8f420304, 0x8f420044, 0xaf42007c, 
-0x3c010001, 0x370821, 0xa02040f2, 0x10000004, 
-0xaf400078, 0x3c010001, 0x370821, 0xa02040f2, 
-0x8f420000, 0x10400007, 0x0, 0xaf80004c, 
-0x8f82004c, 0x1040fffd, 0x0, 0x10000005, 
-0x0, 0xaf800048, 0x8f820048, 0x1040fffd, 
-0x0, 0x8f820060, 0x3c03feff, 0x3463ffff, 
-0x431024, 0xaf820060, 0x8f420000, 0x10400003, 
-0x0, 0x10000002, 0xaf80004c, 0xaf800048, 
-0x8fbf0020, 0x3e00008, 0x27bd0028, 0x3e00008, 
-0x0, 0x3c020001, 0x8c426da8, 0x27bdffa8, 
-0xafbf0050, 0xafbe004c, 0xafb50048, 0xafb30044, 
-0xafb20040, 0xafb1003c, 0xafb00038, 0x104000d5, 
-0x8f900044, 0x8f4200d0, 0x24430001, 0x2842000b, 
-0x144000e4, 0xaf4300d0, 0x8f420004, 0x30420002, 
-0x1440009c, 0xaf4000d0, 0x8f420004, 0x3c030001, 
-0x8c636d98, 0x34420002, 0xaf420004, 0x24020001, 
-0x14620003, 0x3c020600, 0x10000002, 0x34423000, 
-0x34421000, 0xafa20020, 0x8f4a0018, 0xafaa0034, 
-0x27aa0020, 0xafaa002c, 0x8faa0034, 0x240200ff, 
-0x11420002, 0x1821, 0x25430001, 0x8c020228, 
-0x609821, 0x1662000e, 0x3c050009, 0x8f42033c, 
-0x24420001, 0xaf42033c, 0x8f42033c, 0x8c020228, 
-0x8fa70034, 0x3c040001, 0x2484610c, 0xafa00014, 
-0xafa20010, 0x8fa60020, 0x10000070, 0x34a50500, 
-0x8faa0034, 0xa38c0, 0xf71021, 0x8fa30020, 
-0x8fa40024, 0xac4304c0, 0xac4404c4, 0x8f830054, 
-0x8f820054, 0x247103e8, 0x2221023, 0x2c4203e9, 
-0x1040001b, 0xa821, 0xe09021, 0x265e04c0, 
-0x8f440178, 0x8f45017c, 0x2401821, 0x240a0004, 
-0xafaa0010, 0xafb30014, 0x8f48000c, 0x1021, 
-0x2fe3021, 0xafa80018, 0x8f48010c, 0x24070008, 
-0xa32821, 0xa3482b, 0x822021, 0x100f809, 
-0x892021, 0x54400006, 0x24150001, 0x8f820054, 
-0x2221023, 0x2c4203e9, 0x1440ffe9, 0x0, 
-0x32a200ff, 0x54400018, 0xaf530018, 0x8f420378, 
-0x24420001, 0xaf420378, 0x8f420378, 0x8f820120, 
-0x8faa002c, 0x8fa70034, 0xafa20010, 0x8f820124, 
-0x3c040001, 0x24846118, 0xafa20014, 0x8d460000, 
-0x3c050009, 0x10000035, 0x34a50600, 0x8f420308, 
-0x24150001, 0x24420001, 0xaf420308, 0x8f420308, 
-0x1000001e, 0x32a200ff, 0x8f830054, 0x8f820054, 
-0x247103e8, 0x2221023, 0x2c4203e9, 0x10400016, 
-0xa821, 0x3c1e0020, 0x24120010, 0x8f42000c, 
-0x8f440160, 0x8f450164, 0x8f860120, 0xafb20010, 
-0xafb30014, 0x5e1025, 0xafa20018, 0x8f42010c, 
-0x24070008, 0x40f809, 0x24c6001c, 0x1440ffe3, 
-0x0, 0x8f820054, 0x2221023, 0x2c4203e9, 
-0x1440ffee, 0x0, 0x32a200ff, 0x14400011, 
-0x3c050009, 0x8f420378, 0x24420001, 0xaf420378, 
-0x8f420378, 0x8f820120, 0x8faa002c, 0x8fa70034, 
-0xafa20010, 0x8f820124, 0x3c040001, 0x24846120, 
-0xafa20014, 0x8d460000, 0x34a50700, 0xc002b3b, 
-0x0, 0x8f4202ec, 0x24420001, 0xaf4202ec, 
-0x8f4202ec, 0x8f420004, 0x30420001, 0x50400029, 
-0x36100040, 0x3c020400, 0x2c21024, 0x10400013, 
-0x2404ffdf, 0x8f420250, 0x8f430254, 0x8f4401b4, 
-0x14640006, 0x36100040, 0x8f420270, 0x8f430274, 
-0x8f4401b8, 0x10640007, 0x2402ffdf, 0x8f420250, 
-0x8f430254, 0x8f440270, 0x8f450274, 0x10000012, 
-0x3a100020, 0x1000002b, 0x2028024, 0x8f420250, 
-0x8f430254, 0x8f4501b4, 0x14650006, 0x2048024, 
-0x8f420270, 0x8f430274, 0x8f4401b8, 0x50640021, 
-0x36100040, 0x8f420250, 0x8f430254, 0x8f440270, 
-0x8f450274, 0x3a100040, 0xaf4301b4, 0x10000019, 
-0xaf4501b8, 0x8f4200d4, 0x24430001, 0x10000011, 
-0x28420033, 0x8f420004, 0x30420001, 0x10400009, 
-0x3c020400, 0x2c21024, 0x10400004, 0x2402ffdf, 
-0x2028024, 0x1000000b, 0x36100040, 0x10000009, 
-0x36100060, 0x8f4200d4, 0x36100040, 0x24430001, 
-0x284201f5, 0x14400003, 0xaf4300d4, 0xaf4000d4, 
-0x3a100020, 0xaf900044, 0x2402ff7f, 0x282a024, 
-0x8fbf0050, 0x8fbe004c, 0x8fb50048, 0x8fb30044, 
-0x8fb20040, 0x8fb1003c, 0x8fb00038, 0x3e00008, 
-0x27bd0058, 0x3e00008, 0x0, 0x3c020001, 
-0x8c426da8, 0x27bdffb0, 0xafbf0048, 0xafbe0044, 
-0xafb50040, 0xafb3003c, 0xafb20038, 0xafb10034, 
-0x104000c7, 0xafb00030, 0x8f4200d0, 0x24430001, 
-0x2842000b, 0x144000da, 0xaf4300d0, 0x8f420004, 
-0x30420002, 0x14400097, 0xaf4000d0, 0x8f420004, 
-0x3c030001, 0x8c636d98, 0x34420002, 0xaf420004, 
-0x24020001, 0x14620003, 0x3c020600, 0x10000002, 
-0x34423000, 0x34421000, 0xafa20020, 0x1821, 
-0x8f5e0018, 0x27aa0020, 0x240200ff, 0x13c20002, 
-0xafaa002c, 0x27c30001, 0x8c020228, 0x609021, 
-0x1642000e, 0x1e38c0, 0x8f42033c, 0x24420001, 
-0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001, 
-0x2484610c, 0x3c050009, 0xafa00014, 0xafa20010, 
-0x8fa60020, 0x1000006d, 0x34a50500, 0xf71021, 
-0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4, 
-0x8f830054, 0x8f820054, 0x247003e8, 0x2021023, 
-0x2c4203e9, 0x1040001b, 0x9821, 0xe08821, 
-0x263504c0, 0x8f440178, 0x8f45017c, 0x2201821, 
-0x240a0004, 0xafaa0010, 0xafb20014, 0x8f48000c, 
-0x1021, 0x2f53021, 0xafa80018, 0x8f48010c, 
-0x24070008, 0xa32821, 0xa3482b, 0x822021, 
-0x100f809, 0x892021, 0x54400006, 0x24130001, 
-0x8f820054, 0x2021023, 0x2c4203e9, 0x1440ffe9, 
-0x0, 0x326200ff, 0x54400017, 0xaf520018, 
-0x8f420378, 0x24420001, 0xaf420378, 0x8f420378, 
-0x8f820120, 0x8faa002c, 0xafa20010, 0x8f820124, 
-0x3c040001, 0x24846118, 0x3c050009, 0xafa20014, 
-0x8d460000, 0x10000035, 0x34a50600, 0x8f420308, 
-0x24130001, 0x24420001, 0xaf420308, 0x8f420308, 
-0x1000001e, 0x326200ff, 0x8f830054, 0x8f820054, 
-0x247003e8, 0x2021023, 0x2c4203e9, 0x10400016, 
-0x9821, 0x3c150020, 0x24110010, 0x8f42000c, 
-0x8f440160, 0x8f450164, 0x8f860120, 0xafb10010, 
-0xafb20014, 0x551025, 0xafa20018, 0x8f42010c, 
-0x24070008, 0x40f809, 0x24c6001c, 0x1440ffe3, 
-0x0, 0x8f820054, 0x2021023, 0x2c4203e9, 
-0x1440ffee, 0x0, 0x326200ff, 0x14400011, 
-0x0, 0x8f420378, 0x24420001, 0xaf420378, 
-0x8f420378, 0x8f820120, 0x8faa002c, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x24846120, 0x3c050009, 
-0xafa20014, 0x8d460000, 0x34a50700, 0xc002b3b, 
-0x3c03821, 0x8f4202ec, 0x24420001, 0xaf4202ec, 
-0x8f4202ec, 0x8f420004, 0x30420001, 0x10400018, 
-0x24040001, 0x8f420250, 0x8f430254, 0x8f4501b4, 
-0x3c010001, 0x14650006, 0xa0246cf1, 0x8f420270, 
-0x8f430274, 0x8f4401b8, 0x10640021, 0x0, 
-0x8f420250, 0x8f430254, 0x3c040001, 0x90846cf0, 
-0x8f460270, 0x8f470274, 0x38840001, 0xaf4301b4, 
-0xaf4701b8, 0x3c010001, 0x10000025, 0xa0246cf0, 
-0x8f4200d4, 0x3c010001, 0xa0206cf0, 0x24430001, 
-0x28420033, 0x1440001e, 0xaf4300d4, 0x3c020001, 
-0x90426cf1, 0xaf4000d4, 0x10000017, 0x38420001, 
-0x8f420004, 0x30420001, 0x10400008, 0x0, 
-0xc00565a, 0x2021, 0x3c010001, 0xa0206cf1, 
-0x3c010001, 0x1000000e, 0xa0206cf0, 0x8f4200d4, 
-0x3c010001, 0xa0206cf0, 0x24430001, 0x284201f5, 
-0x14400007, 0xaf4300d4, 0x3c020001, 0x90426cf1, 
-0xaf4000d4, 0x421026, 0x3c010001, 0xa0226cf1, 
-0x3c030001, 0x8c636d98, 0x24020002, 0x1462000c, 
-0x3c030002, 0x3c030001, 0x90636cf1, 0x24020001, 
-0x5462001f, 0x2021, 0x3c020001, 0x90426cf0, 
-0x1443001b, 0x24040005, 0x10000019, 0x24040006, 
-0x3c020002, 0x8c428ff4, 0x431024, 0x1040000b, 
-0x24020001, 0x3c030001, 0x90636cf1, 0x54620010, 
-0x2021, 0x3c020001, 0x90426cf0, 0x1443000c, 
-0x24040003, 0x1000000a, 0x24040004, 0x3c030001, 
-0x90636cf1, 0x14620006, 0x2021, 0x3c020001, 
-0x90426cf0, 0x24040001, 0x50440001, 0x24040002, 
-0xc00565a, 0x0, 0x2402ff7f, 0x282a024, 
-0x8fbf0048, 0x8fbe0044, 0x8fb50040, 0x8fb3003c, 
-0x8fb20038, 0x8fb10034, 0x8fb00030, 0x3e00008, 
-0x27bd0050, 0x3e00008, 0x0, 0x3c020001, 
-0x8c426da8, 0x27bdffb0, 0xafbf0048, 0xafbe0044, 
-0xafb50040, 0xafb3003c, 0xafb20038, 0xafb10034, 
-0x104000de, 0xafb00030, 0x8f4200d0, 0x3c040001, 
-0x8c846d98, 0x24430001, 0x2842000b, 0xaf4400e8, 
-0x144000fe, 0xaf4300d0, 0x8f420004, 0x30420002, 
-0x14400095, 0xaf4000d0, 0x8f420004, 0x34420002, 
-0xaf420004, 0x24020001, 0x14820003, 0x3c020600, 
-0x10000002, 0x34423000, 0x34421000, 0xafa20020, 
-0x1821, 0x8f5e0018, 0x27aa0020, 0x240200ff, 
-0x13c20002, 0xafaa002c, 0x27c30001, 0x8c020228, 
-0x609021, 0x1642000e, 0x1e38c0, 0x8f42033c, 
-0x24420001, 0xaf42033c, 0x8f42033c, 0x8c020228, 
-0x3c040001, 0x2484610c, 0x3c050009, 0xafa00014, 
-0xafa20010, 0x8fa60020, 0x1000006d, 0x34a50500, 
-0xf71021, 0x8fa30020, 0x8fa40024, 0xac4304c0, 
-0xac4404c4, 0x8f830054, 0x8f820054, 0x247003e8, 
-0x2021023, 0x2c4203e9, 0x1040001b, 0x9821, 
-0xe08821, 0x263504c0, 0x8f440178, 0x8f45017c, 
-0x2201821, 0x240a0004, 0xafaa0010, 0xafb20014, 
-0x8f48000c, 0x1021, 0x2f53021, 0xafa80018, 
-0x8f48010c, 0x24070008, 0xa32821, 0xa3482b, 
-0x822021, 0x100f809, 0x892021, 0x54400006, 
-0x24130001, 0x8f820054, 0x2021023, 0x2c4203e9, 
-0x1440ffe9, 0x0, 0x326200ff, 0x54400017, 
-0xaf520018, 0x8f420378, 0x24420001, 0xaf420378, 
-0x8f420378, 0x8f820120, 0x8faa002c, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x24846118, 0x3c050009, 
-0xafa20014, 0x8d460000, 0x10000035, 0x34a50600, 
-0x8f420308, 0x24130001, 0x24420001, 0xaf420308, 
-0x8f420308, 0x1000001e, 0x326200ff, 0x8f830054, 
-0x8f820054, 0x247003e8, 0x2021023, 0x2c4203e9, 
-0x10400016, 0x9821, 0x3c150020, 0x24110010, 
-0x8f42000c, 0x8f440160, 0x8f450164, 0x8f860120, 
-0xafb10010, 0xafb20014, 0x551025, 0xafa20018, 
-0x8f42010c, 0x24070008, 0x40f809, 0x24c6001c, 
-0x1440ffe3, 0x0, 0x8f820054, 0x2021023, 
-0x2c4203e9, 0x1440ffee, 0x0, 0x326200ff, 
-0x14400011, 0x0, 0x8f420378, 0x24420001, 
-0xaf420378, 0x8f420378, 0x8f820120, 0x8faa002c, 
-0xafa20010, 0x8f820124, 0x3c040001, 0x24846120, 
-0x3c050009, 0xafa20014, 0x8d460000, 0x34a50700, 
-0xc002b3b, 0x3c03821, 0x8f4202ec, 0x24420001, 
-0xaf4202ec, 0x8f4202ec, 0x8f420004, 0x30420001, 
-0x10400033, 0x3c020400, 0x2c21024, 0x10400017, 
-0x0, 0x934205c0, 0x8f440250, 0x8f450254, 
-0x8f4301b4, 0x34420020, 0x14a30006, 0xa34205c0, 
-0x8f420270, 0x8f430274, 0x8f4401b8, 0x10640008, 
-0x0, 0x8f420250, 0x8f430254, 0x934405c0, 
-0x8f460270, 0x8f470274, 0x10000016, 0x38840040, 
-0x934205c0, 0x10000048, 0x304200bf, 0x934205c0, 
-0x8f440250, 0x8f450254, 0x8f4301b4, 0x304200bf, 
-0x14a30006, 0xa34205c0, 0x8f420270, 0x8f430274, 
-0x8f4401b8, 0x1064000b, 0x0, 0x8f420250, 
-0x8f430254, 0x934405c0, 0x8f460270, 0x8f470274, 
-0x38840020, 0xaf4301b4, 0xaf4701b8, 0x10000033, 
-0xa34405c0, 0x934205c0, 0x1000002f, 0x34420020, 
-0x934205c0, 0x8f4300d4, 0x34420020, 0xa34205c0, 
-0x24620001, 0x10000023, 0x28630033, 0x8f4200e4, 
-0x8f4300e0, 0x24420001, 0xaf4200e4, 0x43102a, 
-0x14400006, 0x24030001, 0x8f4200e8, 0x14430002, 
-0xaf4000e4, 0x24030004, 0xaf4300e8, 0x8f420004, 
-0x30420001, 0x1040000d, 0x3c020400, 0x2c21024, 
-0x10400007, 0x0, 0x934205c0, 0x34420040, 
-0xa34205c0, 0x934205c0, 0x1000000f, 0x304200df, 
-0x934205c0, 0x1000000c, 0x34420060, 0x934205c0, 
-0x8f4300d4, 0x34420020, 0xa34205c0, 0x24620001, 
-0x286300fb, 0x14600005, 0xaf4200d4, 0x934205c0, 
-0xaf4000d4, 0x38420040, 0xa34205c0, 0x934205c0, 
-0x8f4300e8, 0x3042007f, 0xa34205c0, 0x24020001, 
-0x14620005, 0x0, 0x934405c0, 0x42102, 
-0x10000003, 0x348400f0, 0x934405c0, 0x3484000f, 
-0xc005640, 0x0, 0x2402ff7f, 0x282a024, 
-0x8fbf0048, 0x8fbe0044, 0x8fb50040, 0x8fb3003c, 
-0x8fb20038, 0x8fb10034, 0x8fb00030, 0x3e00008, 
-0x27bd0050, 0x3e00008, 0x0, 0x27bdffb0, 
-0x274401c0, 0x26e30028, 0x24650400, 0x65102b, 
-0xafbf0048, 0xafbe0044, 0xafb50040, 0xafb3003c, 
-0xafb20038, 0xafb10034, 0x10400007, 0xafb00030, 
-0x8c820000, 0xac620000, 0x24630004, 0x65102b, 
-0x1440fffb, 0x24840004, 0x8c020080, 0xaee20044, 
-0x8c0200c0, 0xaee20040, 0x8c020084, 0xaee20030, 
-0x8c020084, 0xaee2023c, 0x8c020088, 0xaee20240, 
-0x8c02008c, 0xaee20244, 0x8c020090, 0xaee20248, 
-0x8c020094, 0xaee2024c, 0x8c020098, 0xaee20250, 
-0x8c02009c, 0xaee20254, 0x8c0200a0, 0xaee20258, 
-0x8c0200a4, 0xaee2025c, 0x8c0200a8, 0xaee20260, 
-0x8c0200ac, 0xaee20264, 0x8c0200b0, 0xaee20268, 
-0x8c0200b4, 0xaee2026c, 0x8c0200b8, 0xaee20270, 
-0x8c0200bc, 0x24040001, 0xaee20274, 0xaee00034, 
-0x41080, 0x571021, 0x8ee30034, 0x8c42023c, 
-0x24840001, 0x621821, 0x2c82000f, 0xaee30034, 
-0x1440fff8, 0x41080, 0x8c0200cc, 0xaee20048, 
-0x8c0200d0, 0xaee2004c, 0x8c0200e0, 0xaee201f8, 
-0x8c0200e4, 0xaee201fc, 0x8c0200e8, 0xaee20200, 
-0x8c0200ec, 0xaee20204, 0x8c0200f0, 0xaee20208, 
-0x8ee400c0, 0x8ee500c4, 0x8c0200fc, 0x45102b, 
-0x1040000b, 0x0, 0x8ee200c0, 0x8ee300c4, 
-0x24040001, 0x24050000, 0x651821, 0x65302b, 
-0x441021, 0x461021, 0xaee200c0, 0xaee300c4, 
-0x8c0200fc, 0x8ee400c0, 0x8ee500c4, 0x2408ffff, 
-0x24090000, 0x401821, 0x1021, 0x882024, 
-0xa92824, 0x822025, 0xa32825, 0xaee400c0, 
-0xaee500c4, 0x8ee400d0, 0x8ee500d4, 0x8c0200f4, 
-0x45102b, 0x1040000b, 0x0, 0x8ee200d0, 
-0x8ee300d4, 0x24040001, 0x24050000, 0x651821, 
-0x65302b, 0x441021, 0x461021, 0xaee200d0, 
-0xaee300d4, 0x8c0200f4, 0x8ee400d0, 0x8ee500d4, 
-0x401821, 0x1021, 0x882024, 0xa92824, 
-0x822025, 0xa32825, 0xaee400d0, 0xaee500d4, 
-0x8ee400c8, 0x8ee500cc, 0x8c0200f8, 0x45102b, 
-0x1040000b, 0x0, 0x8ee200c8, 0x8ee300cc, 
-0x24040001, 0x24050000, 0x651821, 0x65302b, 
-0x441021, 0x461021, 0xaee200c8, 0xaee300cc, 
-0x8c0200f8, 0x8ee400c8, 0x8ee500cc, 0x401821, 
-0x1021, 0x882024, 0xa92824, 0x822025, 
-0xa32825, 0x24020008, 0xaee400c8, 0xaee500cc, 
-0xafa20010, 0xafa00014, 0x8f42000c, 0x8c040208, 
-0x8c05020c, 0xafa20018, 0x8f42010c, 0x26e60028, 
-0x40f809, 0x24070400, 0x104000f0, 0x3c020400, 
-0xafa20020, 0x934205c6, 0x10400089, 0x1821, 
-0x8f5e0018, 0x27aa0020, 0x240200ff, 0x13c20002, 
-0xafaa002c, 0x27c30001, 0x8c020228, 0x609021, 
-0x1642000e, 0x1e38c0, 0x8f42033c, 0x24420001, 
-0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001, 
-0x2484610c, 0x3c050009, 0xafa00014, 0xafa20010, 
-0x8fa60020, 0x1000006b, 0x34a50500, 0xf71021, 
-0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4, 
-0x8f830054, 0x8f820054, 0x247003e8, 0x2021023, 
-0x2c4203e9, 0x1040001b, 0x9821, 0xe08821, 
-0x263504c0, 0x8f440178, 0x8f45017c, 0x2201821, 
-0x240a0004, 0xafaa0010, 0xafb20014, 0x8f48000c, 
-0x1021, 0x2f53021, 0xafa80018, 0x8f48010c, 
-0x24070008, 0xa32821, 0xa3482b, 0x822021, 
-0x100f809, 0x892021, 0x54400006, 0x24130001, 
-0x8f820054, 0x2021023, 0x2c4203e9, 0x1440ffe9, 
-0x0, 0x326200ff, 0x54400017, 0xaf520018, 
-0x8f420378, 0x24420001, 0xaf420378, 0x8f420378, 
-0x8f820120, 0x8faa002c, 0xafa20010, 0x8f820124, 
-0x3c040001, 0x24846118, 0x3c050009, 0xafa20014, 
-0x8d460000, 0x10000033, 0x34a50600, 0x8f420308, 
-0x24130001, 0x24420001, 0xaf420308, 0x8f420308, 
-0x1000001c, 0x326200ff, 0x8f830054, 0x8f820054, 
-0x247003e8, 0x2021023, 0x2c4203e9, 0x10400014, 
-0x9821, 0x24110010, 0x8f42000c, 0x8f440160, 
-0x8f450164, 0x8f860120, 0xafb10010, 0xafb20014, 
-0xafa20018, 0x8f42010c, 0x24070008, 0x40f809, 
-0x24c6001c, 0x1440ffe5, 0x0, 0x8f820054, 
-0x2021023, 0x2c4203e9, 0x1440ffef, 0x0, 
-0x326200ff, 0x54400012, 0x24020001, 0x8f420378, 
-0x24420001, 0xaf420378, 0x8f420378, 0x8f820120, 
-0x8faa002c, 0xafa20010, 0x8f820124, 0x3c040001, 
-0x24846120, 0x3c050009, 0xafa20014, 0x8d460000, 
-0x34a50700, 0xc002b3b, 0x3c03821, 0x1021, 
-0x1440005b, 0x24020001, 0x10000065, 0x0, 
-0x8f510018, 0x240200ff, 0x12220002, 0x8021, 
-0x26300001, 0x8c020228, 0x1602000e, 0x1130c0, 
-0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c, 
-0x8c020228, 0x3c040001, 0x248460f4, 0x3c050009, 
-0xafa00014, 0xafa20010, 0x8fa60020, 0x1000003f, 
-0x34a50100, 0xd71021, 0x8fa30020, 0x8fa40024, 
-0xac4304c0, 0xac4404c4, 0xc01821, 0x8f440178, 
-0x8f45017c, 0x1021, 0x24070004, 0xafa70010, 
-0xafb00014, 0x8f48000c, 0x24c604c0, 0x2e63021, 
-0xafa80018, 0x8f48010c, 0x24070008, 0xa32821, 
-0xa3482b, 0x822021, 0x100f809, 0x892021, 
-0x1440000b, 0x24070008, 0x8f820120, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x248460fc, 0x3c050009, 
-0xafa20014, 0x8fa60020, 0x1000001c, 0x34a50200, 
-0x8f440160, 0x8f450164, 0x8f43000c, 0xaf500018, 
-0x8f860120, 0x24020010, 0xafa20010, 0xafb00014, 
-0xafa30018, 0x8f42010c, 0x40f809, 0x24c6001c, 
-0x54400011, 0x24020001, 0x8f420340, 0x24420001, 
-0xaf420340, 0x8f420340, 0x8f820120, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x24846104, 0x3c050009, 
-0xafa20014, 0x8fa60020, 0x34a50300, 0xc002b3b, 
-0x2203821, 0x1021, 0x1040000d, 0x24020001, 
-0x8f4202e8, 0xa34005c6, 0xaf4001b0, 0x24420001, 
-0xaf4202e8, 0x8f4202e8, 0x8ee20150, 0x24420001, 
-0xaee20150, 0x10000003, 0x8ee20150, 0x24020001, 
-0xa34205c6, 0x8fbf0048, 0x8fbe0044, 0x8fb50040, 
-0x8fb3003c, 0x8fb20038, 0x8fb10034, 0x8fb00030, 
-0x3e00008, 0x27bd0050, 0x27bdffd8, 0xafbf0020, 
-0x8f8200b0, 0x30420004, 0x10400068, 0x0, 
-0x8f430128, 0x8f820104, 0x14620005, 0x0, 
-0x8f430130, 0x8f8200b4, 0x10620006, 0x0, 
-0x8f820104, 0xaf420128, 0x8f8200b4, 0x1000005b, 
-0xaf420130, 0x8f8200b0, 0x3c030080, 0x431024, 
-0x1040000d, 0x0, 0x8f82011c, 0x34420002, 
-0xaf82011c, 0x8f8200b0, 0x2403fffb, 0x431024, 
-0xaf8200b0, 0x8f82011c, 0x2403fffd, 0x431024, 
-0x1000004a, 0xaf82011c, 0x8f430128, 0x8f820104, 
-0x14620005, 0x0, 0x8f430130, 0x8f8200b4, 
-0x10620010, 0x0, 0x8f820104, 0xaf420128, 
-0x8f8200b4, 0x8f430128, 0xaf420130, 0xafa30010, 
-0x8f420130, 0x3c040001, 0x24846144, 0xafa20014, 
-0x8f86011c, 0x8f8700b0, 0x3c050005, 0x10000031, 
-0x34a50900, 0x8f420128, 0xafa20010, 0x8f420130, 
-0x3c040001, 0x24846150, 0xafa20014, 0x8f86011c, 
-0x8f8700b0, 0x3c050005, 0xc002b3b, 0x34a51000, 
-0x8f82011c, 0x34420002, 0xaf82011c, 0x8f830104, 
-0x8f8200b0, 0x34420001, 0xaf8200b0, 0x24020008, 
-0xaf830104, 0xafa20010, 0xafa00014, 0x8f42000c, 
-0x8c040208, 0x8c05020c, 0xafa20018, 0x8f42010c, 
-0x26e60028, 0x40f809, 0x24070400, 0x8f82011c, 
-0x2403fffd, 0x431024, 0xaf82011c, 0x8ee201dc, 
-0x24420001, 0xaee201dc, 0x8ee201dc, 0x8f420128, 
-0xafa20010, 0x8f420130, 0x3c040001, 0x2484615c, 
-0xafa20014, 0x8f86011c, 0x8f8700b0, 0x3c050005, 
-0x34a51100, 0xc002b3b, 0x0, 0x8f8200a0, 
-0x30420004, 0x10400069, 0x0, 0x8f43012c, 
-0x8f820124, 0x14620005, 0x0, 0x8f430134, 
-0x8f8200a4, 0x10620006, 0x0, 0x8f820124, 
-0xaf42012c, 0x8f8200a4, 0x1000005c, 0xaf420134, 
-0x8f8200a0, 0x3c030080, 0x431024, 0x1040000d, 
-0x0, 0x8f82011c, 0x34420002, 0xaf82011c, 
-0x8f8200a0, 0x2403fffb, 0x431024, 0xaf8200a0, 
-0x8f82011c, 0x2403fffd, 0x431024, 0x1000004b, 
-0xaf82011c, 0x8f43012c, 0x8f820124, 0x14620005, 
-0x0, 0x8f430134, 0x8f8200a4, 0x10620010, 
-0x0, 0x8f820124, 0xaf42012c, 0x8f8200a4, 
-0x8f43012c, 0xaf420134, 0xafa30010, 0x8f420134, 
-0x3c040001, 0x24846168, 0xafa20014, 0x8f86011c, 
-0x8f8700a0, 0x3c050005, 0x10000032, 0x34a51200, 
-0x8f42012c, 0xafa20010, 0x8f420134, 0x3c040001, 
-0x24846174, 0xafa20014, 0x8f86011c, 0x8f8700a0, 
-0x3c050005, 0xc002b3b, 0x34a51300, 0x8f82011c, 
-0x34420002, 0xaf82011c, 0x8f830124, 0x8f8200a0, 
-0x34420001, 0xaf8200a0, 0x24020080, 0xaf830124, 
-0xafa20010, 0xafa00014, 0x8f420014, 0x8c040208, 
-0x8c05020c, 0xafa20018, 0x8f420108, 0x3c060001, 
-0x24c66ed8, 0x40f809, 0x24070004, 0x8f82011c, 
-0x2403fffd, 0x431024, 0xaf82011c, 0x8ee201dc, 
-0x24420001, 0xaee201dc, 0x8ee201dc, 0x8f42012c, 
-0xafa20010, 0x8f420134, 0x3c040001, 0x24846180, 
-0xafa20014, 0x8f86011c, 0x8f8700a0, 0x3c050005, 
-0x34a51400, 0xc002b3b, 0x0, 0x8fbf0020, 
-0x3e00008, 0x27bd0028, 0x3c081000, 0x24070001, 
-0x3c060080, 0x3c050100, 0x8f820070, 0x481024, 
-0x1040fffd, 0x0, 0x8f820054, 0x24420005, 
-0xaf820078, 0x8c040234, 0x10800016, 0x1821, 
-0x3c020001, 0x571021, 0x8c4240e8, 0x24420005, 
-0x3c010001, 0x370821, 0xac2240e8, 0x3c020001, 
-0x571021, 0x8c4240e8, 0x44102b, 0x14400009, 
-0x0, 0x3c030080, 0x3c010001, 0x370821, 
-0xac2040e8, 0x3c010001, 0x370821, 0x1000000b, 
-0xa02740f0, 0x3c020001, 0x571021, 0x904240f0, 
-0x54400006, 0x661825, 0x3c020001, 0x571021, 
-0x904240f1, 0x54400001, 0x661825, 0x8c040230, 
-0x10800013, 0x0, 0x3c020001, 0x571021, 
-0x8c4240ec, 0x24420005, 0x3c010001, 0x370821, 
-0xac2240ec, 0x3c020001, 0x571021, 0x8c4240ec, 
-0x44102b, 0x14400006, 0x0, 0x3c010001, 
-0x370821, 0xac2040ec, 0x10000006, 0x651825, 
-0x3c020001, 0x571021, 0x904240f2, 0x54400001, 
-0x651825, 0x1060ffbc, 0x0, 0x8f420000, 
-0x10400007, 0x0, 0xaf80004c, 0x8f82004c, 
-0x1040fffd, 0x0, 0x10000005, 0x0, 
-0xaf800048, 0x8f820048, 0x1040fffd, 0x0, 
-0x8f820060, 0x431025, 0xaf820060, 0x8f420000, 
-0x10400003, 0x0, 0x1000ffa7, 0xaf80004c, 
-0x1000ffa5, 0xaf800048, 0x3e00008, 0x0, 
-0x0, 0x0, 0x0, 0x27bdffe0, 
-0xafbf0018, 0x8f860064, 0x30c20004, 0x10400025, 
-0x24040004, 0x8c020114, 0xaf420020, 0xaf840064, 
-0x8f4202fc, 0x24420001, 0xaf4202fc, 0x8f4202fc, 
-0x8f820064, 0x30420004, 0x14400005, 0x0, 
-0x8c030114, 0x8f420020, 0x1462fff2, 0x0, 
-0x8f420000, 0x10400007, 0x8f43003c, 0xaf80004c, 
-0x8f82004c, 0x1040fffd, 0x0, 0x10000005, 
-0x0, 0xaf800048, 0x8f820048, 0x1040fffd, 
-0x0, 0x8f820060, 0x431025, 0xaf820060, 
-0x8f420000, 0x10400073, 0x0, 0x1000006f, 
-0x0, 0x30c20008, 0x10400020, 0x24040008, 
-0x8c02011c, 0xaf420048, 0xaf840064, 0x8f4202a8, 
-0x24420001, 0xaf4202a8, 0x8f4202a8, 0x8f820064, 
-0x30420008, 0x14400005, 0x0, 0x8c03011c, 
-0x8f420048, 0x1462fff2, 0x0, 0x8f420000, 
-0x10400007, 0x0, 0xaf80004c, 0x8f82004c, 
-0x1040fffd, 0x0, 0x10000005, 0x0, 
-0xaf800048, 0x8f820048, 0x1040fffd, 0x0, 
-0x8f820060, 0x1000ffd9, 0x34420200, 0x30c20020, 
-0x10400023, 0x24040020, 0x8c02012c, 0xaf420068, 
-0xaf840064, 0x8f4202d8, 0x24420001, 0xaf4202d8, 
-0x8f4202d8, 0x8f820064, 0x30420020, 0x14400005, 
-0x32c24000, 0x8c03012c, 0x8f420068, 0x1462fff2, 
-0x32c24000, 0x14400002, 0x3c020001, 0x2c2b025, 
-0x8f420000, 0x10400007, 0x0, 0xaf80004c, 
-0x8f82004c, 0x1040fffd, 0x0, 0x10000005, 
-0x0, 0xaf800048, 0x8f820048, 0x1040fffd, 
-0x0, 0x8f820060, 0x1000ffb4, 0x34420800, 
-0x30c20010, 0x10400029, 0x24040010, 0x8c020124, 
-0xaf420058, 0xaf840064, 0x8f4202d4, 0x24420001, 
-0xaf4202d4, 0x8f4202d4, 0x8f820064, 0x30420010, 
-0x14400005, 0x32c22000, 0x8c030124, 0x8f420058, 
-0x1462fff2, 0x32c22000, 0x50400001, 0x36d68000, 
-0x8f420000, 0x10400007, 0x0, 0xaf80004c, 
-0x8f82004c, 0x1040fffd, 0x0, 0x10000005, 
-0x0, 0xaf800048, 0x8f820048, 0x1040fffd, 
-0x0, 0x8f820060, 0x34420100, 0xaf820060, 
-0x8f420000, 0x10400003, 0x0, 0x1000006c, 
-0xaf80004c, 0x1000006a, 0xaf800048, 0x30c20001, 
-0x10400004, 0x24020001, 0xaf820064, 0x10000064, 
-0x0, 0x30c20002, 0x1440000b, 0x3c050003, 
-0x3c040001, 0x24846244, 0x34a50500, 0x3821, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x2402ffc0, 
-0x10000057, 0xaf820064, 0x8c05022c, 0x8c02010c, 
-0x10a20048, 0x51080, 0x8c460300, 0x24a20001, 
-0x3045003f, 0x24020003, 0xac05022c, 0x61e02, 
-0x10620005, 0x24020010, 0x1062001d, 0x30c20fff, 
-0x10000039, 0x0, 0x8f4302a8, 0x8f440000, 
-0x30c20fff, 0xaf420048, 0x24630001, 0xaf4302a8, 
-0x10800007, 0x8f4202a8, 0xaf80004c, 0x8f82004c, 
-0x1040fffd, 0x0, 0x10000005, 0x0, 
-0xaf800048, 0x8f820048, 0x1040fffd, 0x0, 
-0x8f820060, 0x34420200, 0xaf820060, 0x8f420000, 
-0x1040001f, 0x0, 0x1000001b, 0x0, 
-0xaf420058, 0x32c22000, 0x50400001, 0x36d68000, 
-0x8f4202d4, 0x8f430000, 0x24420001, 0xaf4202d4, 
-0x10600007, 0x8f4202d4, 0xaf80004c, 0x8f82004c, 
-0x1040fffd, 0x0, 0x10000005, 0x0, 
-0xaf800048, 0x8f820048, 0x1040fffd, 0x0, 
-0x8f820060, 0x34420100, 0xaf820060, 0x8f420000, 
-0x10400003, 0x0, 0x10000006, 0xaf80004c, 
-0x10000004, 0xaf800048, 0xc002196, 0xc02021, 
-0x402821, 0x8c02010c, 0x14a20002, 0x24020002, 
-0xaf820064, 0x8f820064, 0x30420002, 0x14400004, 
-0x0, 0x8c02010c, 0x14a2ffac, 0x0, 
-0x8fbf0018, 0x3e00008, 0x27bd0020, 0x3e00008, 
-0x0, 0x27bdffa0, 0xafb00040, 0x808021, 
-0x101602, 0x2442ffff, 0x304300ff, 0x2c620013, 
-0xafbf0058, 0xafbe0054, 0xafb50050, 0xafb3004c, 
-0xafb20048, 0xafb10044, 0x104001f3, 0xafa50034, 
-0x31080, 0x3c010001, 0x220821, 0x8c226288, 
-0x400008, 0x0, 0x101302, 0x30440fff, 
-0x24020001, 0x10820005, 0x24020002, 0x1082000c, 
-0x2402fffe, 0x10000024, 0x3c050003, 0x8f430004, 
-0x3c020001, 0x8c426f04, 0xaf440200, 0xaf440204, 
-0x3c040001, 0x8c846e80, 0x10000009, 0x34630001, 
-0x8f430004, 0xaf440200, 0xaf440204, 0x3c040001, 
-0x8c846e80, 0x621824, 0x3c020001, 0x2442ca28, 
-0x21100, 0x21182, 0xaf430004, 0x3c030800, 
-0x431025, 0xac820038, 0x8f840054, 0x41442, 
-0x41c82, 0x431021, 0x41cc2, 0x431023, 
-0x41d02, 0x431021, 0x41d42, 0x431023, 
-0x10000009, 0xaf420208, 0x3c040001, 0x24846250, 
-0x34a51000, 0x2003021, 0x3821, 0xafa00010, 
-0xc002b3b, 0xafa00014, 0x8f4202a0, 0x24420001, 
-0xaf4202a0, 0x1000021f, 0x8f4202a0, 0x27b00028, 
-0x2002021, 0x24050210, 0xc002bbf, 0x24060008, 
-0xc002518, 0x2002021, 0x10000216, 0x0, 
-0x8faa0034, 0x27a40028, 0xa1880, 0x25420001, 
-0x3042003f, 0xafa20034, 0x8c650300, 0x8faa0034, 
-0x21080, 0x8c430300, 0x25420001, 0x3042003f, 
-0xafa20034, 0xac02022c, 0xafa50028, 0xc002518, 
-0xafa3002c, 0x10000203, 0x0, 0x27b00028, 
-0x2002021, 0x24050210, 0xc002bbf, 0x24060008, 
-0xc002657, 0x2002021, 0x100001fa, 0x0, 
-0x8faa0034, 0x27a40028, 0xa1880, 0x25420001, 
-0x3042003f, 0xafa20034, 0x8c650300, 0x8faa0034, 
-0x21080, 0x8c430300, 0x25420001, 0x3042003f, 
-0xafa20034, 0xac02022c, 0xafa50028, 0xc002657, 
-0xafa3002c, 0x100001e7, 0x0, 0x101302, 
-0x30430fff, 0x24020001, 0x10620005, 0x24020002, 
-0x1062001e, 0x3c020002, 0x10000033, 0x3c050003, 
-0x3c030002, 0x2c31024, 0x54400037, 0x2c3b025, 
-0x8f820228, 0x3c010001, 0x370821, 0xac2238d8, 
-0x8f82022c, 0x3c010001, 0x370821, 0xac2238dc, 
-0x8f820230, 0x3c010001, 0x370821, 0xac2238e0, 
-0x8f820234, 0x3c010001, 0x370821, 0xac2238e4, 
-0x2402ffff, 0xaf820228, 0xaf82022c, 0xaf820230, 
-0xaf820234, 0x10000020, 0x2c3b025, 0x2c21024, 
-0x10400012, 0x3c02fffd, 0x3c020001, 0x571021, 
-0x8c4238d8, 0xaf820228, 0x3c020001, 0x571021, 
-0x8c4238dc, 0xaf82022c, 0x3c020001, 0x571021, 
-0x8c4238e0, 0xaf820230, 0x3c020001, 0x571021, 
-0x8c4238e4, 0xaf820234, 0x3c02fffd, 0x3442ffff, 
-0x10000009, 0x2c2b024, 0x3c040001, 0x2484625c, 
-0x34a51100, 0x2003021, 0x3821, 0xafa00010, 
-0xc002b3b, 0xafa00014, 0x8f4202cc, 0x24420001, 
-0xaf4202cc, 0x1000019f, 0x8f4202cc, 0x101302, 
-0x30450fff, 0x24020001, 0x10a20005, 0x24020002, 
-0x10a2000d, 0x3c0408ff, 0x10000014, 0x3c050003, 
-0x3c0208ff, 0x3442ffff, 0x8f830220, 0x3c040004, 
-0x2c4b025, 0x621824, 0x34630008, 0xaf830220, 
-0x10000012, 0xaf450298, 0x3484fff7, 0x3c03fffb, 
-0x8f820220, 0x3463ffff, 0x2c3b024, 0x441024, 
-0xaf820220, 0x10000009, 0xaf450298, 0x3c040001, 
-0x24846268, 0x34a51200, 0x2003021, 0x3821, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x8f4202bc, 
-0x24420001, 0xaf4202bc, 0x10000176, 0x8f4202bc, 
-0x27840208, 0x24050200, 0xc002bbf, 0x24060008, 
-0x27440224, 0x24050200, 0xc002bbf, 0x24060008, 
-0x8f4202c4, 0x24420001, 0xaf4202c4, 0x10000169, 
-0x8f4202c4, 0x101302, 0x30430fff, 0x24020001, 
-0x10620011, 0x28620002, 0x50400005, 0x24020002, 
-0x10600007, 0x0, 0x10000017, 0x0, 
-0x1062000f, 0x0, 0x10000013, 0x0, 
-0x8c060248, 0x2021, 0xc005104, 0x24050004, 
-0x10000007, 0x0, 0x8c060248, 0x2021, 
-0xc005104, 0x24050004, 0x10000010, 0x0, 
-0x8c06024c, 0x2021, 0xc005104, 0x24050001, 
-0x1000000a, 0x0, 0x3c040001, 0x24846274, 
-0x3c050003, 0x34a51300, 0x2003021, 0x3821, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x8f4202c0, 
-0x24420001, 0xaf4202c0, 0x1000013a, 0x8f4202c0, 
-0xc002426, 0x0, 0x10000136, 0x0, 
-0x24020001, 0xa34205c5, 0x24100100, 0x8f4401a8, 
-0x8f4501ac, 0xafb00010, 0xafa00014, 0x8f420014, 
-0xafa20018, 0x8f420108, 0x26e60028, 0x40f809, 
-0x24070400, 0x1040fff5, 0x0, 0x10000125, 
-0x0, 0x3c03ffff, 0x34637fff, 0x8f420368, 
-0x8f440360, 0x2c3b024, 0x1821, 0xaf400058, 
-0xaf40005c, 0xaf400060, 0xaf400064, 0x441023, 
-0xaf420368, 0x3c020900, 0xaf400360, 0xafa20020, 
-0x8f5e0018, 0x27aa0020, 0x240200ff, 0x13c20002, 
-0xafaa003c, 0x27c30001, 0x8c020228, 0x609021, 
-0x1642000e, 0x1e38c0, 0x8f42033c, 0x24420001, 
-0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001, 
-0x2484620c, 0x3c050009, 0xafa00014, 0xafa20010, 
-0x8fa60020, 0x1000006b, 0x34a50500, 0xf71021, 
-0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4, 
-0x8f830054, 0x8f820054, 0x247003e8, 0x2021023, 
-0x2c4203e9, 0x1040001b, 0x9821, 0xe08821, 
-0x263504c0, 0x8f440178, 0x8f45017c, 0x2201821, 
-0x240a0004, 0xafaa0010, 0xafb20014, 0x8f48000c, 
-0x1021, 0x2f53021, 0xafa80018, 0x8f48010c, 
-0x24070008, 0xa32821, 0xa3482b, 0x822021, 
-0x100f809, 0x892021, 0x54400006, 0x24130001, 
-0x8f820054, 0x2021023, 0x2c4203e9, 0x1440ffe9, 
-0x0, 0x326200ff, 0x54400017, 0xaf520018, 
-0x8f420378, 0x24420001, 0xaf420378, 0x8f420378, 
-0x8f820120, 0x8faa003c, 0xafa20010, 0x8f820124, 
-0x3c040001, 0x24846218, 0x3c050009, 0xafa20014, 
-0x8d460000, 0x10000033, 0x34a50600, 0x8f420308, 
-0x24130001, 0x24420001, 0xaf420308, 0x8f420308, 
-0x1000001c, 0x326200ff, 0x8f830054, 0x8f820054, 
-0x247003e8, 0x2021023, 0x2c4203e9, 0x10400014, 
-0x9821, 0x24110010, 0x8f42000c, 0x8f440160, 
-0x8f450164, 0x8f860120, 0xafb10010, 0xafb20014, 
-0xafa20018, 0x8f42010c, 0x24070008, 0x40f809, 
-0x24c6001c, 0x1440ffe5, 0x0, 0x8f820054, 
-0x2021023, 0x2c4203e9, 0x1440ffef, 0x0, 
-0x326200ff, 0x14400011, 0x0, 0x8f420378, 
-0x24420001, 0xaf420378, 0x8f420378, 0x8f820120, 
-0x8faa003c, 0xafa20010, 0x8f820124, 0x3c040001, 
-0x24846220, 0x3c050009, 0xafa20014, 0x8d460000, 
-0x34a50700, 0xc002b3b, 0x3c03821, 0x8f4202b0, 
-0x24420001, 0xaf4202b0, 0x8f4202b0, 0x8f4202f8, 
-0x24420001, 0xaf4202f8, 0x1000008a, 0x8f4202f8, 
-0x8c02025c, 0x27440224, 0xaf4201f0, 0x8c020260, 
-0x24050200, 0x24060008, 0xc002bbf, 0xaf4201f8, 
-0x8f820220, 0x30420008, 0x14400002, 0x24020001, 
-0x24020002, 0xaf420298, 0x8f4202ac, 0x24420001, 
-0xaf4202ac, 0x10000077, 0x8f4202ac, 0x3c0200ff, 
-0x3442ffff, 0x2021824, 0x32c20180, 0x14400006, 
-0x3402fffb, 0x43102b, 0x14400003, 0x0, 
-0x1000006c, 0xaf4300bc, 0x3c040001, 0x24846280, 
-0x3c050003, 0x34a51500, 0x2003021, 0x3821, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x3c020700, 
-0x34421000, 0x101e02, 0x621825, 0xafa30020, 
-0x8f510018, 0x240200ff, 0x12220002, 0x8021, 
-0x26300001, 0x8c020228, 0x1602000e, 0x1130c0, 
-0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c, 
-0x8c020228, 0x3c040001, 0x248461f4, 0x3c050009, 
-0xafa00014, 0xafa20010, 0x8fa60020, 0x1000003f, 
-0x34a50100, 0xd71021, 0x8fa30020, 0x8fa40024, 
-0xac4304c0, 0xac4404c4, 0xc01821, 0x8f440178, 
-0x8f45017c, 0x1021, 0x24070004, 0xafa70010, 
-0xafb00014, 0x8f48000c, 0x24c604c0, 0x2e63021, 
-0xafa80018, 0x8f48010c, 0x24070008, 0xa32821, 
-0xa3482b, 0x822021, 0x100f809, 0x892021, 
-0x1440000b, 0x24070008, 0x8f820120, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x248461fc, 0x3c050009, 
-0xafa20014, 0x8fa60020, 0x1000001c, 0x34a50200, 
-0x8f440160, 0x8f450164, 0x8f43000c, 0xaf500018, 
-0x8f860120, 0x24020010, 0xafa20010, 0xafb00014, 
-0xafa30018, 0x8f42010c, 0x40f809, 0x24c6001c, 
-0x14400010, 0x0, 0x8f420340, 0x24420001, 
-0xaf420340, 0x8f420340, 0x8f820120, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x24846204, 0x3c050009, 
-0xafa20014, 0x8fa60020, 0x34a50300, 0xc002b3b, 
-0x2203821, 0x8f4202e0, 0x24420001, 0xaf4202e0, 
-0x8f4202e0, 0x8f4202f0, 0x24420001, 0xaf4202f0, 
-0x8f4202f0, 0x8fa20034, 0x8fbf0058, 0x8fbe0054, 
-0x8fb50050, 0x8fb3004c, 0x8fb20048, 0x8fb10044, 
-0x8fb00040, 0x3e00008, 0x27bd0060, 0x27bdfff8, 
-0x2408ffff, 0x10a00014, 0x4821, 0x3c0aedb8, 
-0x354a8320, 0x90870000, 0x24840001, 0x3021, 
-0x1071026, 0x30420001, 0x10400002, 0x81842, 
-0x6a1826, 0x604021, 0x24c60001, 0x2cc20008, 
-0x1440fff7, 0x73842, 0x25290001, 0x125102b, 
-0x1440fff0, 0x0, 0x1001021, 0x3e00008, 
-0x27bd0008, 0x27bdffb0, 0xafbf0048, 0xafbe0044, 
-0xafb50040, 0xafb3003c, 0xafb20038, 0xafb10034, 
-0xafb00030, 0x8f870220, 0xafa70024, 0x8f870200, 
-0xafa7002c, 0x8f820220, 0x3c0308ff, 0x3463ffff, 
-0x431024, 0x34420004, 0xaf820220, 0x8f820200, 
-0x3c03c0ff, 0x3463ffff, 0x431024, 0x34420004, 
-0xaf820200, 0x8f530358, 0x8f55035c, 0x8f5e0360, 
-0x8f470364, 0xafa70014, 0x8f470368, 0xafa7001c, 
-0x8f4202d0, 0x274401c0, 0x24420001, 0xaf4202d0, 
-0x8f5002d0, 0x8f510204, 0x8f520200, 0xc002ba8, 
-0x24050400, 0xaf530358, 0xaf55035c, 0xaf5e0360, 
-0x8fa70014, 0xaf470364, 0x8fa7001c, 0xaf470368, 
-0xaf5002d0, 0xaf510204, 0xaf520200, 0x8c02025c, 
-0x27440224, 0xaf4201f0, 0x8c020260, 0x24050200, 
-0x24060008, 0xaf4201f8, 0x24020006, 0xc002bbf, 
-0xaf4201f4, 0x3c023b9a, 0x3442ca00, 0xaf4201fc, 
-0x240203e8, 0x24040002, 0x24030001, 0xaf420294, 
-0xaf440290, 0xaf43029c, 0x8f820220, 0x30420008, 
-0x10400004, 0x0, 0xaf430298, 0x10000003, 
-0x3021, 0xaf440298, 0x3021, 0x3c030001, 
-0x661821, 0x90636d00, 0x3461021, 0x24c60001, 
-0xa043022c, 0x2cc2000f, 0x1440fff8, 0x3461821, 
-0x24c60001, 0x8f820040, 0x24040080, 0x24050080, 
-0x21702, 0x24420030, 0xa062022c, 0x3461021, 
-0xc002ba8, 0xa040022c, 0x8fa70024, 0x30e20004, 
-0x14400006, 0x0, 0x8f820220, 0x3c0308ff, 
-0x3463fffb, 0x431024, 0xaf820220, 0x8fa7002c, 
-0x30e20004, 0x14400006, 0x0, 0x8f820200, 
-0x3c03c0ff, 0x3463fffb, 0x431024, 0xaf820200, 
-0x8fbf0048, 0x8fbe0044, 0x8fb50040, 0x8fb3003c, 
-0x8fb20038, 0x8fb10034, 0x8fb00030, 0x3e00008, 
-0x27bd0050, 0x0, 0x0, 0xaf400104, 
-0x24040001, 0x410c0, 0x2e21821, 0x24820001, 
-0x3c010001, 0x230821, 0xa42234d0, 0x402021, 
-0x2c820080, 0x1440fff8, 0x410c0, 0x24020001, 
-0x3c010001, 0x370821, 0xa42038d0, 0xaf420100, 
-0xaf800228, 0xaf80022c, 0xaf800230, 0xaf800234, 
-0x3e00008, 0x0, 0x27bdffe8, 0xafbf0014, 
-0xafb00010, 0x8f420104, 0x28420005, 0x10400026, 
-0x808021, 0x3c020001, 0x8f430104, 0x344230d0, 
-0x2e22021, 0x318c0, 0x621821, 0x2e31821, 
-0x83102b, 0x10400015, 0x1021, 0x96070000, 
-0x24840006, 0x24660006, 0x9482fffc, 0x14470009, 
-0x2821, 0x9483fffe, 0x96020002, 0x14620006, 
-0xa01021, 0x94820000, 0x96030004, 0x431026, 
-0x2c450001, 0xa01021, 0x14400009, 0x24840008, 
-0x86102b, 0x1440fff0, 0x1021, 0x304200ff, 
-0x14400030, 0x24020001, 0x1000002e, 0x1021, 
-0x1000fffa, 0x24020001, 0x2002021, 0xc00240c, 
-0x24050006, 0x3042007f, 0x218c0, 0x2e31021, 
-0x3c010001, 0x220821, 0x942230d0, 0x1040fff2, 
-0x2e31021, 0x3c060001, 0xc23021, 0x94c630d0, 
-0x10c0ffed, 0x3c080001, 0x350834d2, 0x96070000, 
-0x610c0, 0x572021, 0x882021, 0x94820000, 
-0x14470009, 0x2821, 0x94830002, 0x96020002, 
-0x14620006, 0xa01021, 0x94820004, 0x96030004, 
-0x431026, 0x2c450001, 0xa01021, 0x14400007, 
-0x610c0, 0x2e21021, 0x3c060001, 0xc23021, 
-0x94c634d0, 0x14c0ffeb, 0x610c0, 0x10c0ffd2, 
-0x24020001, 0x8fbf0014, 0x8fb00010, 0x3e00008, 
-0x27bd0018, 0x3e00008, 0x0, 0x27bdffb0, 
-0x801021, 0xafb00030, 0x24500002, 0x2002021, 
-0x24050006, 0xafb10034, 0x408821, 0xafbf0048, 
-0xafbe0044, 0xafb50040, 0xafb3003c, 0xc00240c, 
-0xafb20038, 0x3047007f, 0x710c0, 0x2e21021, 
-0x3c050001, 0xa22821, 0x94a530d0, 0x50a0001c, 
-0xa03021, 0x3c090001, 0x352934d2, 0x96280002, 
-0x510c0, 0x572021, 0x892021, 0x94820000, 
-0x14480009, 0x3021, 0x94830002, 0x96020002, 
-0x14620006, 0xc01021, 0x94820004, 0x96030004, 
-0x431026, 0x2c460001, 0xc01021, 0x14400007, 
-0x510c0, 0x2e21021, 0x3c050001, 0xa22821, 
-0x94a534d0, 0x14a0ffeb, 0x510c0, 0xa03021, 
-0x10c00014, 0x610c0, 0x571821, 0x3c010001, 
-0x230821, 0x8c2334d0, 0x571021, 0xafa30010, 
-0x3c010001, 0x220821, 0x8c2234d4, 0x3c040001, 
-0x24846394, 0xafa20014, 0x8e260000, 0x8e270004, 
-0x3c050004, 0xc002b3b, 0x34a50400, 0x10000063, 
-0x3c020800, 0x8f450100, 0x10a00006, 0x510c0, 
-0x2e21021, 0x3c010001, 0x220821, 0x942234d0, 
-0xaf420100, 0xa03021, 0x14c00011, 0x628c0, 
-0x710c0, 0x2e21021, 0xafa70010, 0x3c010001, 
-0x220821, 0x942230d0, 0x3c040001, 0x248463a0, 
-0xafa20014, 0x8e260000, 0x8e270004, 0x3c050004, 
-0xc002b3b, 0x34a50500, 0x10000048, 0x3c020800, 
-0xb71821, 0x3c020001, 0x96040000, 0x344234d2, 
-0x621821, 0xa4640000, 0x8e020002, 0x720c0, 
-0xac620002, 0x2e41021, 0x3c030001, 0x621821, 
-0x946330d0, 0x2e51021, 0x3c010001, 0x220821, 
-0xa42334d0, 0x2e41021, 0x3c010001, 0x220821, 
-0xa42630d0, 0x8f420104, 0x24420001, 0x28420080, 
-0x1040000f, 0x3c020002, 0x8f420104, 0x3c040001, 
-0x348430d2, 0x96030000, 0x210c0, 0x571021, 
-0x441021, 0xa4430000, 0x8e030002, 0xac430002, 
-0x8f420104, 0x24420001, 0xaf420104, 0x3c020002, 
-0x2c21024, 0x10400011, 0x72142, 0x3c030001, 
-0x346338d8, 0x24020003, 0x441023, 0x21080, 
-0x572021, 0x832021, 0x571021, 0x431021, 
-0x30e5001f, 0x8c430000, 0x24020001, 0xa21004, 
-0x621825, 0x1000000c, 0xac830000, 0x24020003, 
-0x441023, 0x21080, 0x5c2821, 0x5c1021, 
-0x30e4001f, 0x8c430228, 0x24020001, 0x821004, 
-0x621825, 0xaca30228, 0x3c020800, 0x34421000, 
-0x1821, 0xafa20020, 0x8f5e0018, 0x27aa0020, 
-0x240200ff, 0x13c20002, 0xafaa002c, 0x27c30001, 
-0x8c020228, 0x609021, 0x1642000e, 0x1e38c0, 
-0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c, 
-0x8c020228, 0x3c040001, 0x2484635c, 0x3c050009, 
-0xafa00014, 0xafa20010, 0x8fa60020, 0x1000006b, 
-0x34a50500, 0xf71021, 0x8fa30020, 0x8fa40024, 
-0xac4304c0, 0xac4404c4, 0x8f830054, 0x8f820054, 
-0x247003e8, 0x2021023, 0x2c4203e9, 0x1040001b, 
-0x9821, 0xe08821, 0x263504c0, 0x8f440178, 
-0x8f45017c, 0x2201821, 0x240a0004, 0xafaa0010, 
-0xafb20014, 0x8f48000c, 0x1021, 0x2f53021, 
-0xafa80018, 0x8f48010c, 0x24070008, 0xa32821, 
-0xa3482b, 0x822021, 0x100f809, 0x892021, 
-0x54400006, 0x24130001, 0x8f820054, 0x2021023, 
-0x2c4203e9, 0x1440ffe9, 0x0, 0x326200ff, 
-0x54400017, 0xaf520018, 0x8f420378, 0x24420001, 
-0xaf420378, 0x8f420378, 0x8f820120, 0x8faa002c, 
-0xafa20010, 0x8f820124, 0x3c040001, 0x24846368, 
-0x3c050009, 0xafa20014, 0x8d460000, 0x10000033, 
-0x34a50600, 0x8f420308, 0x24130001, 0x24420001, 
-0xaf420308, 0x8f420308, 0x1000001c, 0x326200ff, 
-0x8f830054, 0x8f820054, 0x247003e8, 0x2021023, 
-0x2c4203e9, 0x10400014, 0x9821, 0x24110010, 
-0x8f42000c, 0x8f440160, 0x8f450164, 0x8f860120, 
-0xafb10010, 0xafb20014, 0xafa20018, 0x8f42010c, 
-0x24070008, 0x40f809, 0x24c6001c, 0x1440ffe5, 
-0x0, 0x8f820054, 0x2021023, 0x2c4203e9, 
-0x1440ffef, 0x0, 0x326200ff, 0x14400011, 
-0x0, 0x8f420378, 0x24420001, 0xaf420378, 
-0x8f420378, 0x8f820120, 0x8faa002c, 0xafa20010, 
-0x8f820124, 0x3c040001, 0x24846370, 0x3c050009, 
-0xafa20014, 0x8d460000, 0x34a50700, 0xc002b3b, 
-0x3c03821, 0x8f4202b4, 0x24420001, 0xaf4202b4, 
-0x8f4202b4, 0x8f4202f4, 0x24420001, 0xaf4202f4, 
-0x8f4202f4, 0x8fbf0048, 0x8fbe0044, 0x8fb50040, 
-0x8fb3003c, 0x8fb20038, 0x8fb10034, 0x8fb00030, 
-0x3e00008, 0x27bd0050, 0x27bdffa0, 0x801021, 
-0xafb00040, 0x24500002, 0x2002021, 0x24050006, 
-0xafb10044, 0x408821, 0xafbf0058, 0xafbe0054, 
-0xafb50050, 0xafb3004c, 0xc00240c, 0xafb20048, 
-0x3048007f, 0x810c0, 0x2e21021, 0x3c060001, 
-0xc23021, 0x94c630d0, 0x10c0001c, 0x3821, 
-0x3c0a0001, 0x354a34d2, 0x96290002, 0x610c0, 
-0x572021, 0x8a2021, 0x94820000, 0x14490009, 
-0x2821, 0x94830002, 0x96020002, 0x14620006, 
-0xa01021, 0x94820004, 0x96030004, 0x431026, 
-0x2c450001, 0xa01021, 0x14400008, 0x610c0, 
-0xc03821, 0x2e21021, 0x3c060001, 0xc23021, 
-0x94c634d0, 0x14c0ffea, 0x610c0, 0x14c00011, 
-0xafa70028, 0x810c0, 0x2e21021, 0xafa80010, 
-0x3c010001, 0x220821, 0x942230d0, 0x3c040001, 
-0x248463ac, 0xafa20014, 0x8e260000, 0x8e270004, 
-0x3c050004, 0xc002b3b, 0x34a50900, 0x10000075, 
-0x3c020800, 0x10e0000c, 0x610c0, 0x2e21021, 
-0x3c030001, 0x621821, 0x946334d0, 0x710c0, 
-0x2e21021, 0x3c010001, 0x220821, 0xa42334d0, 
-0x1000000b, 0x3c040001, 0x2e21021, 0x3c030001, 
-0x621821, 0x946334d0, 0x810c0, 0x2e21021, 
-0x3c010001, 0x220821, 0xa42330d0, 0x3c040001, 
-0x348430d0, 0x8f430100, 0x610c0, 0x2e21021, 
-0x3c010001, 0x220821, 0xa42334d0, 0x8f420104, 
-0x2e43821, 0x2821, 0x18400029, 0xaf460100, 
-0x24e60006, 0x94c3fffc, 0x96020000, 0x14620009, 
-0x2021, 0x94c3fffe, 0x96020002, 0x14620006, 
-0x801021, 0x94c20000, 0x96030004, 0x431026, 
-0x2c440001, 0x801021, 0x50400014, 0x24a50001, 
-0x8f420104, 0x2442ffff, 0xa2102a, 0x1040000b, 
-0x24e40004, 0x94820006, 0x8c830008, 0xa482fffe, 
-0xac830000, 0x8f420104, 0x24a50001, 0x2442ffff, 
-0xa2102a, 0x1440fff7, 0x24840008, 0x8f420104, 
-0x2442ffff, 0x10000006, 0xaf420104, 0x8f420104, 
-0x24c60008, 0xa2102a, 0x1440ffda, 0x24e70008, 
-0x810c0, 0x2e21021, 0x3c010001, 0x220821, 
-0x942230d0, 0x14400023, 0x3c020800, 0x3c020002, 
-0x2c21024, 0x10400012, 0x82142, 0x3c030001, 
-0x346338d8, 0x24020003, 0x441023, 0x21080, 
-0x572021, 0x832021, 0x571021, 0x431021, 
-0x3105001f, 0x24030001, 0x8c420000, 0xa31804, 
-0x31827, 0x431024, 0x1000000d, 0xac820000, 
-0x24020003, 0x441023, 0x21080, 0x5c2821, 
-0x5c1021, 0x3104001f, 0x24030001, 0x8c420228, 
-0x831804, 0x31827, 0x431024, 0xaca20228, 
-0x3c020800, 0x34422000, 0x1821, 0xafa20020, 
-0x8f5e0018, 0x27ab0020, 0x240200ff, 0x13c20002, 
-0xafab0034, 0x27c30001, 0x8c020228, 0x609021, 
-0x1642000e, 0x1e38c0, 0x8f42033c, 0x24420001, 
-0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001, 
-0x2484635c, 0x3c050009, 0xafa00014, 0xafa20010, 
-0x8fa60020, 0x1000006b, 0x34a50500, 0xf71021, 
-0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4, 
-0x8f830054, 0x8f820054, 0x247003e8, 0x2021023, 
-0x2c4203e9, 0x1040001b, 0x9821, 0xe08821, 
-0x263504c0, 0x8f440178, 0x8f45017c, 0x2201821, 
-0x240b0004, 0xafab0010, 0xafb20014, 0x8f48000c, 
-0x1021, 0x2f53021, 0xafa80018, 0x8f48010c, 
-0x24070008, 0xa32821, 0xa3482b, 0x822021, 
-0x100f809, 0x892021, 0x54400006, 0x24130001, 
-0x8f820054, 0x2021023, 0x2c4203e9, 0x1440ffe9, 
-0x0, 0x326200ff, 0x54400017, 0xaf520018, 
-0x8f420378, 0x24420001, 0xaf420378, 0x8f420378, 
-0x8f820120, 0x8fab0034, 0xafa20010, 0x8f820124, 
-0x3c040001, 0x24846368, 0x3c050009, 0xafa20014, 
-0x8d660000, 0x10000033, 0x34a50600, 0x8f420308, 
-0x24130001, 0x24420001, 0xaf420308, 0x8f420308, 
-0x1000001c, 0x326200ff, 0x8f830054, 0x8f820054, 
-0x247003e8, 0x2021023, 0x2c4203e9, 0x10400014, 
-0x9821, 0x24110010, 0x8f42000c, 0x8f440160, 
-0x8f450164, 0x8f860120, 0xafb10010, 0xafb20014, 
-0xafa20018, 0x8f42010c, 0x24070008, 0x40f809, 
-0x24c6001c, 0x1440ffe5, 0x0, 0x8f820054, 
-0x2021023, 0x2c4203e9, 0x1440ffef, 0x0, 
-0x326200ff, 0x14400011, 0x0, 0x8f420378, 
-0x24420001, 0xaf420378, 0x8f420378, 0x8f820120, 
-0x8fab0034, 0xafa20010, 0x8f820124, 0x3c040001, 
-0x24846370, 0x3c050009, 0xafa20014, 0x8d660000, 
-0x34a50700, 0xc002b3b, 0x3c03821, 0x8f4202b8, 
-0x24420001, 0xaf4202b8, 0x8f4202b8, 0x8f4202f4, 
-0x24420001, 0xaf4202f4, 0x8f4202f4, 0x8fbf0058, 
-0x8fbe0054, 0x8fb50050, 0x8fb3004c, 0x8fb20048, 
-0x8fb10044, 0x8fb00040, 0x3e00008, 0x27bd0060, 
-0x0, 0x0, 0x0, 0x27bdffe0, 
-0x27644000, 0xafbf0018, 0xc002ba8, 0x24051000, 
-0x3c030001, 0x34632cc0, 0x3c040001, 0x34842ec8, 
-0x24020020, 0xaf82011c, 0x2e31021, 0xaf800100, 
-0xaf800104, 0xaf800108, 0xaf800110, 0xaf800114, 
-0xaf800118, 0xaf800120, 0xaf800124, 0xaf800128, 
-0xaf800130, 0xaf800134, 0xaf800138, 0xaf4200ec, 
-0x2e31021, 0xaf4200f0, 0x2e41021, 0xaf4200f4, 
-0x2e41021, 0xaf4200f8, 0x3c020001, 0x571021, 
-0x904240f4, 0x1440001c, 0x3c050001, 0x8f82011c, 
-0x3c040001, 0x24846470, 0x3c050001, 0x34420001, 
-0xaf82011c, 0xafa00010, 0xafa00014, 0x8f86011c, 
-0x34a50100, 0xc002b3b, 0x3821, 0x8c020218, 
-0x30420040, 0x10400014, 0x0, 0x8f82011c, 
-0x3c040001, 0x2484647c, 0x3c050001, 0x34420004, 
-0xaf82011c, 0xafa00010, 0xafa00014, 0x8f86011c, 
-0x10000007, 0x34a50200, 0x3c040001, 0x24846484, 
-0xafa00010, 0xafa00014, 0x8f86011c, 0x34a50300, 
-0xc002b3b, 0x3821, 0x8fbf0018, 0x3e00008, 
-0x27bd0020, 0x8fa90010, 0x8f83012c, 0x8faa0014, 
-0x8fab0018, 0x1060000a, 0x27624fe0, 0x14620002, 
-0x24680020, 0x27684800, 0x8f820128, 0x11020004, 
-0x0, 0x8f820124, 0x15020007, 0x0, 
-0x8f430334, 0x1021, 0x24630001, 0xaf430334, 
-0x10000039, 0x8f430334, 0xac640000, 0xac650004, 
-0xac660008, 0xa467000e, 0xac690018, 0xac6a001c, 
-0xac6b0010, 0xac620014, 0xaf880120, 0x8f4200fc, 
-0x8f4400f4, 0x2442ffff, 0xaf4200fc, 0x8c820000, 
-0x10490005, 0x3042ff8f, 0x10400019, 0x3122ff8f, 
-0x10400018, 0x3c020001, 0x8c830004, 0x2c620010, 
-0x10400013, 0x3c020001, 0x24630001, 0xac830004, 
-0x8f4300f8, 0x344230c8, 0x2e21021, 0x54620004, 
-0x24620008, 0x3c020001, 0x34422ec8, 0x2e21021, 
-0x14440015, 0x24020001, 0x8f820128, 0x24420020, 
-0xaf820128, 0x8f820128, 0x1000000f, 0x24020001, 
-0x3c020001, 0x344230c8, 0x2e21021, 0x54820004, 
-0x24820008, 0x3c020001, 0x34422ec8, 0x2e21021, 
-0x402021, 0x24020001, 0xaf4400f4, 0xac890000, 
-0xac820004, 0x24020001, 0x3e00008, 0x0, 
-0x3e00008, 0x0, 0x8fa90010, 0x8f83010c, 
-0x8faa0014, 0x8fab0018, 0x1060000a, 0x276247e0, 
-0x14620002, 0x24680020, 0x27684000, 0x8f820108, 
-0x11020004, 0x0, 0x8f820104, 0x15020007, 
-0x0, 0x8f430338, 0x1021, 0x24630001, 
-0xaf430338, 0x10000035, 0x8f430338, 0xac640000, 
-0xac650004, 0xac660008, 0xa467000e, 0xac690018, 
-0xac6a001c, 0xac6b0010, 0xac620014, 0xaf880100, 
-0x8f4400ec, 0x8c820000, 0x30420006, 0x10400019, 
-0x31220006, 0x10400018, 0x3c020001, 0x8c830004, 
-0x2c620010, 0x10400013, 0x3c020001, 0x24630001, 
-0xac830004, 0x8f4300f0, 0x34422ec0, 0x2e21021, 
-0x54620004, 0x24620008, 0x3c020001, 0x34422cc0, 
-0x2e21021, 0x14440015, 0x24020001, 0x8f820108, 
-0x24420020, 0xaf820108, 0x8f820108, 0x1000000f, 
-0x24020001, 0x3c020001, 0x34422ec0, 0x2e21021, 
-0x54820004, 0x24820008, 0x3c020001, 0x34422cc0, 
-0x2e21021, 0x402021, 0x24020001, 0xaf4400ec, 
-0xac890000, 0xac820004, 0x24020001, 0x3e00008, 
-0x0, 0x3e00008, 0x0, 0x27bdffd8, 
-0x3c040001, 0x2484648c, 0x3c050001, 0xafbf0024, 
-0xafb20020, 0xafb1001c, 0xafb00018, 0x8f900104, 
-0x8f9100b0, 0x8f92011c, 0x34a52500, 0x8f820100, 
-0x2403021, 0x2203821, 0xafa20010, 0xc002b3b, 
-0xafb00014, 0x8e020008, 0xafa20010, 0x8e02000c, 
-0x3c040001, 0x24846498, 0xafa20014, 0x8e060000, 
-0x8e070004, 0x3c050001, 0xc002b3b, 0x34a52510, 
-0x8e020018, 0xafa20010, 0x8e02001c, 0x3c040001, 
-0x248464a4, 0xafa20014, 0x8e060010, 0x8e070014, 
-0x3c050001, 0xc002b3b, 0x34a52520, 0x3c027f00, 
-0x2221024, 0x3c030800, 0x54430016, 0x3c030200, 
-0x8f82009c, 0x3042ffff, 0x14400012, 0x3c030200, 
-0x3c040001, 0x248464b0, 0x3c050002, 0x34a5f030, 
-0x3021, 0x3821, 0x36420002, 0xaf82011c, 
-0x36220001, 0xaf8200b0, 0xaf900104, 0xaf92011c, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x10000024, 
-0x0, 0x2c31024, 0x1040000d, 0x2231024, 
-0x1040000b, 0x36420002, 0xaf82011c, 0x36220001, 
-0xaf8200b0, 0xaf900104, 0xaf92011c, 0x8f420330, 
-0x24420001, 0xaf420330, 0x10000015, 0x8f420330, 
-0x3c040001, 0x248464b8, 0x240202a9, 0xafa20010, 
-0xafa00014, 0x8f860144, 0x3c070001, 0x24e764c0, 
-0xc002b3b, 0x3405dead, 0x8f82011c, 0x34420002, 
-0xaf82011c, 0x8f820220, 0x34420004, 0xaf820220, 
-0x8f820140, 0x3c030001, 0x431025, 0xaf820140, 
-0x8fbf0024, 0x8fb20020, 0x8fb1001c, 0x8fb00018, 
-0x3e00008, 0x27bd0028, 0x27bdffd8, 0x3c040001, 
-0x248464e8, 0x3c050001, 0xafbf0024, 0xafb20020, 
-0xafb1001c, 0xafb00018, 0x8f900124, 0x8f9100a0, 
-0x8f92011c, 0x34a52600, 0x8f820120, 0x2403021, 
-0x2203821, 0xafa20010, 0xc002b3b, 0xafb00014, 
-0x8e020008, 0xafa20010, 0x8e02000c, 0x3c040001, 
-0x248464f4, 0xafa20014, 0x8e060000, 0x8e070004, 
-0x3c050001, 0xc002b3b, 0x34a52610, 0x8e020018, 
-0xafa20010, 0x8e02001c, 0x3c040001, 0x24846500, 
-0xafa20014, 0x8e060010, 0x8e070014, 0x3c050001, 
-0xc002b3b, 0x34a52620, 0x3c027f00, 0x2221024, 
-0x3c030800, 0x54430016, 0x3c030200, 0x8f8200ac, 
-0x3042ffff, 0x14400012, 0x3c030200, 0x3c040001, 
-0x2484650c, 0x3c050001, 0x34a5f030, 0x3021, 
-0x3821, 0x36420002, 0xaf82011c, 0x36220001, 
-0xaf8200a0, 0xaf900124, 0xaf92011c, 0xafa00010, 
-0xc002b3b, 0xafa00014, 0x10000024, 0x0, 
-0x2c31024, 0x1040000d, 0x2231024, 0x1040000b, 
-0x36420002, 0xaf82011c, 0x36220001, 0xaf8200a0, 
-0xaf900124, 0xaf92011c, 0x8f42032c, 0x24420001, 
-0xaf42032c, 0x10000015, 0x8f42032c, 0x3c040001, 
-0x248464b8, 0x240202e2, 0xafa20010, 0xafa00014, 
-0x8f860144, 0x3c070001, 0x24e764c0, 0xc002b3b, 
-0x3405dead, 0x8f82011c, 0x34420002, 0xaf82011c, 
-0x8f820220, 0x34420004, 0xaf820220, 0x8f820140, 
-0x3c030001, 0x431025, 0xaf820140, 0x8fbf0024, 
-0x8fb20020, 0x8fb1001c, 0x8fb00018, 0x3e00008, 
-0x27bd0028, 0x6021, 0x5021, 0x3021, 
-0x2821, 0x6821, 0x4821, 0x7821, 
-0x7021, 0x8f880124, 0x8f870104, 0x1580002e, 
-0x8f8b011c, 0x11a00014, 0x31620800, 0x8f820120, 
-0x10460029, 0x0, 0x3c040001, 0x8c846ee4, 
-0x8cc20000, 0x8cc30004, 0xac820000, 0xac830004, 
-0x8cc20008, 0xac820008, 0x94c2000e, 0xa482000e, 
-0x8cc20010, 0x240c0001, 0xac820010, 0x8cc20014, 
-0x10000012, 0x24c60020, 0x10400017, 0x0, 
-0x3c040001, 0x8c846ee4, 0x8d020000, 0x8d030004, 
-0xac820000, 0xac830004, 0x8d020008, 0xac820008, 
-0x9502000e, 0xa482000e, 0x8d020010, 0x25060020, 
-0xac820010, 0x8d020014, 0x240c0001, 0xc01821, 
-0xac820014, 0x27624fe0, 0x43102b, 0x54400001, 
-0x27634800, 0x603021, 0x1540002f, 0x31620100, 
-0x11200014, 0x31628000, 0x8f820100, 0x1045002a, 
-0x31620100, 0x3c040001, 0x8c846ee0, 0x8ca20000, 
-0x8ca30004, 0xac820000, 0xac830004, 0x8ca20008, 
-0xac820008, 0x94a2000e, 0xa482000e, 0x8ca20010, 
-0x240a0001, 0xac820010, 0x8ca20014, 0x10000012, 
-0x24a50020, 0x10400018, 0x31620100, 0x3c040001, 
-0x8c846ee0, 0x8ce20000, 0x8ce30004, 0xac820000, 
-0xac830004, 0x8ce20008, 0xac820008, 0x94e2000e, 
-0xa482000e, 0x8ce20010, 0x24e50020, 0xac820010, 
-0x8ce20014, 0x240a0001, 0xa01821, 0xac820014, 
-0x276247e0, 0x43102b, 0x54400001, 0x27634000, 
-0x602821, 0x31620100, 0x5440001d, 0x31621000, 
-0x11a00009, 0x31a20800, 0x10400004, 0x25020020, 
-0x8f8200a8, 0xa5e20000, 0x25020020, 0xaf820124, 
-0x8f880124, 0x6821, 0x11800011, 0x31621000, 
-0x3c040001, 0x8c846ee4, 0x8c820000, 0x8c830004, 
-0xaf820080, 0xaf830084, 0x8c820008, 0xaf8200a4, 
-0x9482000e, 0xaf8200ac, 0x8c820010, 0x6021, 
-0xaf8200a0, 0x8c8d0010, 0x8c8f0014, 0x31621000, 
-0x1440ff82, 0x0, 0x1120000f, 0x31220800, 
-0x10400004, 0x3c020002, 0x8f8200b8, 0xa5c20000, 
-0x3c020002, 0x1221024, 0x10400004, 0x24e20020, 
-0x8f8200b4, 0xaf8200d4, 0x24e20020, 0xaf820104, 
-0x8f870104, 0x4821, 0x1140ff70, 0x0, 
-0x3c040001, 0x8c846ee0, 0x8c820000, 0x8c830004, 
-0xaf820090, 0xaf830094, 0x8c820008, 0xaf8200b4, 
-0x9482000e, 0xaf82009c, 0x8c820010, 0x5021, 
-0xaf8200b0, 0x8c890010, 0x1000ff60, 0x8c8e0014, 
-0x3e00008, 0x0, 0x6021, 0x5821, 
-0x3021, 0x2821, 0x6821, 0x5021, 
-0x7821, 0x7021, 0x8f880124, 0x8f870104, 
-0x3c180100, 0x1580002e, 0x8f89011c, 0x11a00014, 
-0x31220800, 0x8f820120, 0x10460029, 0x0, 
-0x3c040001, 0x8c846ee4, 0x8cc20000, 0x8cc30004, 
-0xac820000, 0xac830004, 0x8cc20008, 0xac820008, 
-0x94c2000e, 0xa482000e, 0x8cc20010, 0x240c0001, 
-0xac820010, 0x8cc20014, 0x10000012, 0x24c60020, 
-0x10400017, 0x0, 0x3c040001, 0x8c846ee4, 
-0x8d020000, 0x8d030004, 0xac820000, 0xac830004, 
-0x8d020008, 0xac820008, 0x9502000e, 0xa482000e, 
-0x8d020010, 0x25060020, 0xac820010, 0x8d020014, 
-0x240c0001, 0xc01821, 0xac820014, 0x27624fe0, 
-0x43102b, 0x54400001, 0x27634800, 0x603021, 
-0x1560002f, 0x31220100, 0x11400014, 0x31228000, 
-0x8f820100, 0x1045002a, 0x31220100, 0x3c040001, 
-0x8c846ee0, 0x8ca20000, 0x8ca30004, 0xac820000, 
-0xac830004, 0x8ca20008, 0xac820008, 0x94a2000e, 
-0xa482000e, 0x8ca20010, 0x240b0001, 0xac820010, 
-0x8ca20014, 0x10000012, 0x24a50020, 0x10400018, 
-0x31220100, 0x3c040001, 0x8c846ee0, 0x8ce20000, 
-0x8ce30004, 0xac820000, 0xac830004, 0x8ce20008, 
-0xac820008, 0x94e2000e, 0xa482000e, 0x8ce20010, 
-0x24e50020, 0xac820010, 0x8ce20014, 0x240b0001, 
-0xa01821, 0xac820014, 0x276247e0, 0x43102b, 
-0x54400001, 0x27634000, 0x602821, 0x31220100, 
-0x5440001d, 0x31221000, 0x11a00009, 0x31a20800, 
-0x10400004, 0x25020020, 0x8f8200a8, 0xa5e20000, 
-0x25020020, 0xaf820124, 0x8f880124, 0x6821, 
-0x11800011, 0x31221000, 0x3c040001, 0x8c846ee4, 
-0x8c820000, 0x8c830004, 0xaf820080, 0xaf830084, 
-0x8c820008, 0xaf8200a4, 0x9482000e, 0xaf8200ac, 
-0x8c820010, 0x6021, 0xaf8200a0, 0x8c8d0010, 
-0x8c8f0014, 0x31221000, 0x14400022, 0x0, 
-0x1140000f, 0x31420800, 0x10400004, 0x3c020002, 
-0x8f8200b8, 0xa5c20000, 0x3c020002, 0x1421024, 
-0x10400004, 0x24e20020, 0x8f8200b4, 0xaf8200d4, 
-0x24e20020, 0xaf820104, 0x8f870104, 0x5021, 
-0x11600010, 0x0, 0x3c040001, 0x8c846ee0, 
-0x8c820000, 0x8c830004, 0xaf820090, 0xaf830094, 
-0x8c820008, 0xaf8200b4, 0x9482000e, 0xaf82009c, 
-0x8c820010, 0x5821, 0xaf8200b0, 0x8c8a0010, 
-0x8c8e0014, 0x8f820070, 0x3c031000, 0x431024, 
-0x1040ff5c, 0x0, 0x8f820054, 0x24420005, 
-0xaf820078, 0x8c040234, 0x10800016, 0x1821, 
-0x3c020001, 0x571021, 0x8c4240e8, 0x24420005, 
-0x3c010001, 0x370821, 0xac2240e8, 0x3c020001, 
-0x571021, 0x8c4240e8, 0x44102b, 0x14400009, 
-0x24020001, 0x3c030080, 0x3c010001, 0x370821, 
-0xac2040e8, 0x3c010001, 0x370821, 0x1000000c, 
-0xa02240f0, 0x3c020001, 0x571021, 0x904240f0, 
-0x14400006, 0x3c020080, 0x3c020001, 0x571021, 
-0x904240f1, 0x10400002, 0x3c020080, 0x621825, 
-0x8c040230, 0x10800013, 0x0, 0x3c020001, 
-0x571021, 0x8c4240ec, 0x24420005, 0x3c010001, 
-0x370821, 0xac2240ec, 0x3c020001, 0x571021, 
-0x8c4240ec, 0x44102b, 0x14400006, 0x0, 
-0x3c010001, 0x370821, 0xac2040ec, 0x10000006, 
-0x781825, 0x3c020001, 0x571021, 0x904240f2, 
-0x54400001, 0x781825, 0x1060ff1a, 0x0, 
-0x8f420000, 0x10400007, 0x0, 0xaf80004c, 
-0x8f82004c, 0x1040fffd, 0x0, 0x10000005, 
-0x0, 0xaf800048, 0x8f820048, 0x1040fffd, 
-0x0, 0x8f820060, 0x431025, 0xaf820060, 
-0x8f420000, 0x10400003, 0x0, 0x1000ff05, 
-0xaf80004c, 0x1000ff03, 0xaf800048, 0x3e00008, 
-0x0, 0x0, 0x0, 0x3c020001, 
-0x8c426d28, 0x27bdffe8, 0xafbf0014, 0x14400012, 
-0xafb00010, 0x3c100001, 0x26106f90, 0x2002021, 
-0xc002ba8, 0x24052000, 0x26021fe0, 0x3c010001, 
-0xac226eec, 0x3c010001, 0xac226ee8, 0xac020250, 
-0x24022000, 0xac100254, 0xac020258, 0x24020001, 
-0x3c010001, 0xac226d28, 0x8fbf0014, 0x8fb00010, 
-0x3e00008, 0x27bd0018, 0x3c090001, 0x8d296eec, 
-0x8c820000, 0x8fa30010, 0x8fa80014, 0xad220000, 
-0x8c820004, 0xad250008, 0xad220004, 0x8f820054, 
-0xad260010, 0xad270014, 0xad230018, 0xad28001c, 
-0xad22000c, 0x2529ffe0, 0x3c020001, 0x24426f90, 
-0x122102b, 0x10400003, 0x0, 0x3c090001, 
-0x8d296ee8, 0x3c020001, 0x8c426d10, 0xad220000, 
-0x3c020001, 0x8c426d10, 0x3c010001, 0xac296eec, 
-0xad220004, 0xac090250, 0x3e00008, 0x0, 
-0x27bdffd0, 0xafb00010, 0x3c100001, 0x8e106eec, 
-0x3c020001, 0x8c426d10, 0xafb10014, 0x808821, 
-0xafbe0024, 0x8fbe0040, 0x8fa40048, 0xafb20018, 
-0xa09021, 0xafbf0028, 0xafb50020, 0xafb3001c, 
-0xae020000, 0x3c020001, 0x8c426d10, 0xc09821, 
-0xe0a821, 0x10800006, 0xae020004, 0x26050008, 
-0xc002bb3, 0x24060018, 0x10000005, 0x2610ffe0, 
-0x26040008, 0xc002ba8, 0x24050018, 0x2610ffe0, 
-0x3c030001, 0x24636f90, 0x203102b, 0x10400003, 
-0x0, 0x3c100001, 0x8e106ee8, 0x8e220000, 
-0xae020000, 0x8e220004, 0xae120008, 0xae020004, 
-0x8f820054, 0xae130010, 0xae150014, 0xae1e0018, 
-0x8fa80044, 0xae08001c, 0xae02000c, 0x2610ffe0, 
-0x203102b, 0x10400003, 0x0, 0x3c100001, 
-0x8e106ee8, 0x3c020001, 0x8c426d10, 0xae020000, 
-0x3c020001, 0x8c426d10, 0x3c010001, 0xac306eec, 
-0xae020004, 0xac100250, 0x8fbf0028, 0x8fbe0024, 
-0x8fb50020, 0x8fb3001c, 0x8fb20018, 0x8fb10014, 
-0x8fb00010, 0x3e00008, 0x27bd0030, 0x851821, 
-0x83102b, 0x10400006, 0x0, 0xac800000, 
-0x24840004, 0x83102b, 0x5440fffd, 0xac800000, 
-0x3e00008, 0x0, 0xa61821, 0xa3102b, 
-0x10400007, 0x0, 0x8c820000, 0xaca20000, 
-0x24a50004, 0xa3102b, 0x1440fffb, 0x24840004, 
-0x3e00008, 0x0, 0x861821, 0x83102b, 
-0x10400007, 0x0, 0x8ca20000, 0xac820000, 
-0x24840004, 0x83102b, 0x1440fffb, 0x24a50004, 
-0x3e00008, 0x0, 0x63080, 0x861821, 
-0x83102b, 0x10400006, 0x0, 0xac850000, 
-0x24840004, 0x83102b, 0x5440fffd, 0xac850000, 
-0x3e00008, 0x0, 0x0, 0x26e50028, 
-0xa03021, 0x274301c0, 0x8f4d0358, 0x8f47035c, 
-0x8f480360, 0x8f490364, 0x8f4a0368, 0x8f4b0204, 
-0x8f4c0200, 0x24640400, 0x64102b, 0x10400008, 
-0x3c0208ff, 0x8cc20000, 0xac620000, 0x24630004, 
-0x64102b, 0x1440fffb, 0x24c60004, 0x3c0208ff, 
-0x3442ffff, 0x3c03c0ff, 0xaf4d0358, 0xaf47035c, 
-0xaf480360, 0xaf490364, 0xaf4a0368, 0xaf4b0204, 
-0xaf4c0200, 0x8f840220, 0x3463ffff, 0x8f860200, 
-0x821024, 0x34420004, 0xc31824, 0x34630004, 
-0xaf820220, 0xaf830200, 0x8ca20214, 0xac020084, 
-0x8ca20218, 0xac020088, 0x8ca2021c, 0xac02008c, 
-0x8ca20220, 0xac020090, 0x8ca20224, 0xac020094, 
-0x8ca20228, 0xac020098, 0x8ca2022c, 0xac02009c, 
-0x8ca20230, 0xac0200a0, 0x8ca20234, 0xac0200a4, 
-0x8ca20238, 0xac0200a8, 0x8ca2023c, 0xac0200ac, 
-0x8ca20240, 0xac0200b0, 0x8ca20244, 0xac0200b4, 
-0x8ca20248, 0xac0200b8, 0x8ca2024c, 0xac0200bc, 
-0x8ca2001c, 0xac020080, 0x8ca20018, 0xac0200c0, 
-0x8ca20020, 0xac0200cc, 0x8ca20024, 0xac0200d0, 
-0x8ca201d0, 0xac0200e0, 0x8ca201d4, 0xac0200e4, 
-0x8ca201d8, 0xac0200e8, 0x8ca201dc, 0xac0200ec, 
-0x8ca201e0, 0xac0200f0, 0x8ca20098, 0x8ca3009c, 
-0xac0300fc, 0x8ca200a8, 0x8ca300ac, 0xac0300f4, 
-0x8ca200a0, 0x8ca300a4, 0x30840004, 0xac0300f8, 
-0x14800007, 0x30c20004, 0x8f820220, 0x3c0308ff, 
-0x3463fffb, 0x431024, 0xaf820220, 0x30c20004, 
-0x14400006, 0x0, 0x8f820200, 0x3c03c0ff, 
-0x3463fffb, 0x431024, 0xaf820200, 0x8f4202dc, 
-0xa34005c5, 0x24420001, 0xaf4202dc, 0x8f4202dc, 
-0x3e00008, 0x0, 0x27bdffd8, 0xafbf0024, 
-0xafb00020, 0x8f430024, 0x8f420020, 0x10620038, 
-0x0, 0x8f430020, 0x8f420024, 0x622023, 
-0x4810003, 0x0, 0x8f420040, 0x822021, 
-0x8f430030, 0x8f420024, 0x43102b, 0x14400005, 
-0x0, 0x8f430040, 0x8f420024, 0x10000005, 
-0x621023, 0x8f420030, 0x8f430024, 0x431023, 
-0x2442ffff, 0x406021, 0x8c102a, 0x54400001, 
-0x806021, 0x8f4a0024, 0x8f490040, 0x8f480024, 
-0x8f440180, 0x8f450184, 0x8f460024, 0x8f4b001c, 
-0x24070001, 0xafa70010, 0x84100, 0x1001821, 
-0x14c5021, 0x2529ffff, 0x1498024, 0xafb00014, 
-0x8f470014, 0x1021, 0x63100, 0xafa70018, 
-0xa32821, 0xa3382b, 0x822021, 0x872021, 
-0x8f420108, 0x1663021, 0x40f809, 0xc3900, 
-0x54400001, 0xaf500024, 0x8f430024, 0x8f420020, 
-0x14620018, 0x0, 0x8f420000, 0x10400007, 
-0x0, 0xaf80004c, 0x8f82004c, 0x1040fffd, 
-0x0, 0x10000005, 0x0, 0xaf800048, 
-0x8f820048, 0x1040fffd, 0x0, 0x8f820060, 
-0x2403ffef, 0x431024, 0xaf820060, 0x8f420000, 
-0x10400003, 0x0, 0x10000002, 0xaf80004c, 
-0xaf800048, 0x8fbf0024, 0x8fb00020, 0x3e00008, 
-0x27bd0028, 0x3e00008, 0x0, 0x27bdffc0, 
-0x32c20020, 0xafbf0038, 0xafb30034, 0xafb20030, 
-0xafb1002c, 0x10400004, 0xafb00028, 0x8f530028, 
-0x10000002, 0x0, 0x8f530020, 0x8f420030, 
-0x105300eb, 0x21100, 0x8f43001c, 0x628021, 
-0x8e040000, 0x8e050004, 0x96120008, 0x8f420090, 
-0x9611000a, 0x3246ffff, 0x46102a, 0x10400017, 
-0x0, 0x8f8200d8, 0x8f430098, 0x431023, 
-0x2442dcbe, 0xaf420090, 0x8f420090, 0x2842dcbf, 
-0x10400005, 0x0, 0x8f420090, 0x8f430144, 
-0x431021, 0xaf420090, 0x8f420090, 0x46102a, 
-0x10400006, 0x0, 0x8f420348, 0x24420001, 
-0xaf420348, 0x100000e1, 0x8f420348, 0x8f8200fc, 
-0x14400006, 0x0, 0x8f420344, 0x24420001, 
-0xaf420344, 0x100000d9, 0x8f420344, 0x934205c2, 
-0x1040000b, 0x32c20008, 0x10400008, 0x32220200, 
-0x10400006, 0x3c034000, 0x9602000e, 0xaf4300ac, 
-0x21400, 0x10000002, 0xaf4200b0, 0xaf4000ac, 
-0x32220004, 0x1040007f, 0x32220800, 0x10400003, 
-0x3247ffff, 0x10000002, 0x24020020, 0x24020004, 
-0xafa20010, 0x8f420030, 0xafa20014, 0x8f420010, 
-0x3c030002, 0x431025, 0xafa20018, 0x8f460098, 
-0x8f420108, 0x40f809, 0x0, 0x104000b7, 
-0x0, 0x8f42009c, 0x8f430094, 0x2421021, 
-0xaf42009c, 0xae03000c, 0x8f4200ac, 0x10400008, 
-0x3c034000, 0x8f420094, 0x431025, 0xafa20020, 
-0x8f42009c, 0x8f4300b0, 0x10000004, 0x431025, 
-0x8f420094, 0xafa20020, 0x8f42009c, 0xafa20024, 
-0x8f8200fc, 0x8fa30020, 0x8fa40024, 0xac430000, 
-0xac440004, 0x24420008, 0xaf8200f0, 0x8f42009c, 
-0x8f440270, 0x8f450274, 0x401821, 0x1021, 
-0xa32821, 0xa3302b, 0x822021, 0x862021, 
-0x32230060, 0x24020040, 0xaf440270, 0xaf450274, 
-0x10620017, 0x2c620041, 0x10400005, 0x24020020, 
-0x10620008, 0x24020001, 0x10000026, 0x0, 
-0x24020060, 0x10620019, 0x24020001, 0x10000021, 
-0x0, 0x8f420278, 0x8f43027c, 0x24630001, 
-0x2c640001, 0x441021, 0xaf420278, 0xaf43027c, 
-0x8f420278, 0x8f43027c, 0x10000016, 0x24020001, 
-0x8f420280, 0x8f430284, 0x24630001, 0x2c640001, 
-0x441021, 0xaf420280, 0xaf430284, 0x8f420280, 
-0x8f430284, 0x1000000b, 0x24020001, 0x8f420288, 
-0x8f43028c, 0x24630001, 0x2c640001, 0x441021, 
-0xaf420288, 0xaf43028c, 0x8f420288, 0x8f43028c, 
-0x24020001, 0xa34205c2, 0x8f420098, 0x3244ffff, 
-0x2406fff8, 0x8f45013c, 0x441021, 0x24420007, 
-0x461024, 0x24840007, 0xaf420094, 0x8f420090, 
-0x8f430094, 0x862024, 0x441023, 0x65182b, 
-0x14600005, 0xaf420090, 0x8f420094, 0x8f430144, 
-0x431023, 0xaf420094, 0x8f420094, 0x10000023, 
-0xaf40009c, 0x3247ffff, 0x50e00022, 0x32c20020, 
-0x14400002, 0x24020010, 0x24020002, 0xafa20010, 
-0x8f420030, 0xafa20014, 0x8f420010, 0xafa20018, 
-0x8f460098, 0x8f420108, 0x40f809, 0x0, 
-0x1040003a, 0x3245ffff, 0x8f420098, 0x8f430090, 
-0x8f46013c, 0x451021, 0xaf420098, 0x8f42009c, 
-0x8f440098, 0xa34005c2, 0x651823, 0xaf430090, 
-0x451021, 0x86202b, 0x14800005, 0xaf42009c, 
-0x8f420098, 0x8f430144, 0x431023, 0xaf420098, 
-0x32c20020, 0x10400005, 0x0, 0x8f420358, 
-0x2442ffff, 0xaf420358, 0x8f420358, 0x8f420030, 
-0x8f430040, 0x24420001, 0x2463ffff, 0x431024, 
-0xaf420030, 0x8f420030, 0x14530018, 0x0, 
-0x8f420000, 0x10400007, 0x0, 0xaf80004c, 
-0x8f82004c, 0x1040fffd, 0x0, 0x10000005, 
-0x0, 0xaf800048, 0x8f820048, 0x1040fffd, 
-0x0, 0x8f820060, 0x2403fff7, 0x431024, 
-0xaf820060, 0x8f420000, 0x10400003, 0x0, 
-0x10000002, 0xaf80004c, 0xaf800048, 0x8fbf0038, 
-0x8fb30034, 0x8fb20030, 0x8fb1002c, 0x8fb00028, 
-0x3e00008, 0x27bd0040, 0x3e00008, 0x0, 
-0x27bdffd0, 0x32c20020, 0xafbf002c, 0xafb20028, 
-0xafb10024, 0x10400004, 0xafb00020, 0x8f520028, 
-0x10000002, 0x0, 0x8f520020, 0x8f420030, 
-0x105200b5, 0x21100, 0x8f43001c, 0x628021, 
-0x8e040000, 0x8e050004, 0x96110008, 0x8f420090, 
-0x9607000a, 0x3226ffff, 0x46102a, 0x10400017, 
-0x0, 0x8f8200d8, 0x8f430098, 0x431023, 
-0x2442dc46, 0xaf420090, 0x8f420090, 0x2842dc47, 
-0x10400005, 0x0, 0x8f420090, 0x8f430144, 
-0x431021, 0xaf420090, 0x8f420090, 0x46102a, 
-0x10400006, 0x0, 0x8f420348, 0x24420001, 
-0xaf420348, 0x100000ab, 0x8f420348, 0x8f8600fc, 
-0x10c0000c, 0x0, 0x8f8200f4, 0x2403fff8, 
-0x431024, 0x461023, 0x218c3, 0x58600001, 
-0x24630100, 0x8f42008c, 0x43102b, 0x14400006, 
-0x712c2, 0x8f420344, 0x24420001, 0xaf420344, 
-0x10000098, 0x8f420344, 0x934305c2, 0x1060000f, 
-0x30460001, 0x8f420010, 0x34480400, 0x32c20008, 
-0x10400008, 0x30e20200, 0x10400006, 0x3c034000, 
-0x9602000e, 0xaf4300ac, 0x21400, 0x10000004, 
-0xaf4200b0, 0x10000002, 0xaf4000ac, 0x8f480010, 
-0x30e20004, 0x10400045, 0x3227ffff, 0x8f4900ac, 
-0x11200005, 0x30c200ff, 0x14400006, 0x24020040, 
-0x10000004, 0x24020008, 0x14400002, 0x24020020, 
-0x24020004, 0xafa20010, 0x8f430030, 0x11200004, 
-0xafa30014, 0x8f4200b0, 0x621025, 0xafa20014, 
-0x3c020002, 0x1021025, 0xafa20018, 0x8f460098, 
-0x8f420108, 0x40f809, 0x0, 0x10400069, 
-0x3224ffff, 0x8f42008c, 0x8f430094, 0x24420001, 
-0xaf42008c, 0x24020001, 0xae03000c, 0xa34205c2, 
-0x8f420098, 0x2406fff8, 0x8f45013c, 0x441021, 
-0x24420007, 0x461024, 0x24840007, 0xaf420094, 
-0x8f420090, 0x8f430094, 0x862024, 0x441023, 
-0x65182b, 0x14600005, 0xaf420090, 0x8f420094, 
-0x8f430144, 0x431023, 0xaf420094, 0x8f430094, 
-0x8f420140, 0x43102b, 0x10400009, 0x0, 
-0x8f43013c, 0x8f440094, 0x8f420090, 0x8f450138, 
-0x641823, 0x431023, 0xaf420090, 0xaf450094, 
-0x8f420094, 0x1000001f, 0xaf420098, 0x10e0001d, 
-0x30c200ff, 0x14400002, 0x24020010, 0x24020002, 
-0xafa20010, 0x8f420030, 0xafa80018, 0xafa20014, 
-0x8f460098, 0x8f420108, 0x40f809, 0x0, 
-0x10400030, 0x3225ffff, 0x8f420098, 0x8f44013c, 
-0x451021, 0xaf420098, 0x8f420090, 0x8f430098, 
-0xa34005c2, 0x451023, 0x64182b, 0x14600005, 
-0xaf420090, 0x8f420098, 0x8f430144, 0x431023, 
-0xaf420098, 0x8f420030, 0x8f430040, 0x24420001, 
-0x2463ffff, 0x431024, 0xaf420030, 0x8f420030, 
-0x14520018, 0x0, 0x8f420000, 0x10400007, 
-0x0, 0xaf80004c, 0x8f82004c, 0x1040fffd, 
-0x0, 0x10000005, 0x0, 0xaf800048, 
-0x8f820048, 0x1040fffd, 0x0, 0x8f820060, 
-0x2403fff7, 0x431024, 0xaf820060, 0x8f420000, 
-0x10400003, 0x0, 0x10000002, 0xaf80004c, 
-0xaf800048, 0x8fbf002c, 0x8fb20028, 0x8fb10024, 
-0x8fb00020, 0x3e00008, 0x27bd0030, 0x3e00008, 
-0x0, 0x27bdffd8, 0x3c020001, 0x34422ec0, 
-0xafbf0020, 0x8f4300f0, 0x8f840108, 0x2e21021, 
-0x54620004, 0x24620008, 0x3c020001, 0x34422cc0, 
-0x2e21021, 0x401821, 0xaf4300f0, 0xac600000, 
-0x8f4200ec, 0x8c660004, 0x14620004, 0x3c020001, 
-0x24820020, 0x1000000f, 0xaf820108, 0x8f4300f0, 
-0x34422ec0, 0x2e21021, 0x54620004, 0x24620008, 
-0x3c020001, 0x34422cc0, 0x2e21021, 0x401821, 
-0x8c620004, 0x21140, 0x821021, 0xaf820108, 
-0xac600000, 0x8c850018, 0x30a20036, 0x1040006c, 
-0x30a20001, 0x8c82001c, 0x8f430040, 0x8f440034, 
-0x24420001, 0x2463ffff, 0x431024, 0x862021, 
-0xaf42002c, 0x30a20030, 0x14400006, 0xaf440034, 
-0x8f420034, 0x8c03023c, 0x43102b, 0x144000b4, 
-0x0, 0x32c20010, 0x10400028, 0x24070008, 
-0x8f440170, 0x8f450174, 0x8f43002c, 0x8f48000c, 
-0x8f860120, 0x24020080, 0xafa20010, 0xafa30014, 
-0xafa80018, 0x8f42010c, 0x40f809, 0x24c6001c, 
-0x14400011, 0x24020001, 0x3c010001, 0x370821, 
-0xa02240f1, 0x8f820124, 0xafa20010, 0x8f820128, 
-0x3c040001, 0x248467c4, 0xafa20014, 0x8f46002c, 
-0x8f870120, 0x3c050009, 0xc002b3b, 0x34a51100, 
-0x10000036, 0x0, 0x8f420300, 0x8f43002c, 
-0x24420001, 0xaf420300, 0x8f420300, 0x24020001, 
-0xa34205c1, 0x10000026, 0xaf430038, 0x8f440170, 
-0x8f450174, 0x8f43002c, 0x8f48000c, 0x8f860120, 
-0x24020020, 0xafa20010, 0xafa30014, 0xafa80018, 
-0x8f42010c, 0x40f809, 0x24c6001c, 0x14400011, 
-0x24020001, 0x3c010001, 0x370821, 0xa02240f0, 
-0x8f820124, 0xafa20010, 0x8f820128, 0x3c040001, 
-0x248467b8, 0xafa20014, 0x8f46002c, 0x8f870120, 
-0x3c050009, 0xc002b3b, 0x34a50900, 0x1000000f, 
-0x0, 0x8f420300, 0x24420001, 0xaf420300, 
-0x8f420300, 0x8f42002c, 0xa34005c1, 0xaf420038, 
-0x3c010001, 0x370821, 0xa02040f1, 0x3c010001, 
-0x370821, 0xa02040f0, 0xaf400034, 0x8f420314, 
-0x24420001, 0xaf420314, 0x10000059, 0x8f420314, 
-0x10400022, 0x30a27000, 0x8c85001c, 0x8f420028, 
-0xa22023, 0x4810003, 0x0, 0x8f420040, 
-0x822021, 0x8f420358, 0x8f430000, 0xaf450028, 
-0x441021, 0x10600007, 0xaf420358, 0xaf80004c, 
-0x8f82004c, 0x1040fffd, 0x0, 0x10000005, 
-0x0, 0xaf800048, 0x8f820048, 0x1040fffd, 
-0x0, 0x8f820060, 0x34420008, 0xaf820060, 
-0x8f420000, 0x10400003, 0x0, 0x10000038, 
-0xaf80004c, 0x10000036, 0xaf800048, 0x1040002f, 
-0x30a21000, 0x1040000c, 0x30a24000, 0x8c83001c, 
-0x8f420050, 0x622023, 0x4820001, 0x24840200, 
-0x8f42035c, 0x441021, 0xaf42035c, 0x8f420368, 
-0x1000001a, 0xaf430050, 0x1040000c, 0x32c28000, 
-0x8c83001c, 0x8f420070, 0x622023, 0x4820001, 
-0x24840400, 0x8f420364, 0x441021, 0xaf420364, 
-0x8f420368, 0x1000000d, 0xaf430070, 0x1040000e, 
-0x3c020800, 0x8c83001c, 0x8f420060, 0x622023, 
-0x4820001, 0x24840100, 0x8f420360, 0x441021, 
-0xaf420360, 0x8f420368, 0xaf430060, 0x441021, 
-0xaf420368, 0x3c020800, 0x2c21024, 0x50400008, 
-0x36940040, 0x10000006, 0x0, 0x30a20100, 
-0x10400003, 0x0, 0xc002bd8, 0x0, 
-0x8fbf0020, 0x3e00008, 0x27bd0028, 0x3e00008, 
-0x0, 0x27bdffa8, 0xafbf0050, 0xafbe004c, 
-0xafb50048, 0xafb30044, 0xafb20040, 0xafb1003c, 
-0xafb00038, 0x8f910108, 0x26220020, 0xaf820108, 
-0x8e320018, 0xa821, 0x32420024, 0x104001ba, 
-0xf021, 0x8e26001c, 0x8f43001c, 0x61100, 
-0x621821, 0x8c70000c, 0x9604000c, 0x962d0016, 
-0x9473000a, 0x2c8305dd, 0x38828870, 0x2c420001, 
-0x621825, 0x10600015, 0x2821, 0x32c20040, 
-0x10400015, 0x24020800, 0x96030014, 0x14620012, 
-0x3402aaaa, 0x9603000e, 0x14620007, 0x2021, 
-0x96030010, 0x24020300, 0x14620004, 0x801021, 
-0x96020012, 0x2c440001, 0x801021, 0x54400006, 
-0x24050016, 0x10000004, 0x0, 0x24020800, 
-0x50820001, 0x2405000e, 0x934205c3, 0x14400008, 
-0x5821, 0x240b0001, 0x32620180, 0xaf4500a8, 
-0xaf5000a0, 0x10400002, 0xaf4600a4, 0xa34b05c3, 
-0x10a00085, 0x2054021, 0x91020000, 0x3821, 
-0x3042000f, 0x25080, 0x32c20002, 0x10400012, 
-0x10a1821, 0x32620002, 0x10400010, 0x32c20001, 
-0x1002021, 0x94820000, 0x24840002, 0xe23821, 
-0x83102b, 0x1440fffb, 0x30e2ffff, 0x71c02, 
-0x623821, 0x71c02, 0x30e2ffff, 0x623821, 
-0x71027, 0xa502000a, 0x32c20001, 0x1040006a, 
-0x32620001, 0x10400068, 0x0, 0x8f4200a8, 
-0x10400065, 0x0, 0x8f4200a0, 0x8f4300a8, 
-0x431021, 0x904c0009, 0x318900ff, 0x39230006, 
-0x3182b, 0x39220011, 0x2102b, 0x621824, 
-0x1060000c, 0x3c050006, 0x8f4200a4, 0x3c040001, 
-0x248467d4, 0xafa20010, 0x8f4200a0, 0x34a54600, 
-0x1203821, 0xc002b3b, 0xafa20014, 0x1000004e, 
-0x0, 0x32c20004, 0x14400013, 0x2821, 
-0x316200ff, 0x14400004, 0x0, 0x95020002, 
-0x1000000d, 0x4a2823, 0x9505000c, 0x9502000e, 
-0x95030010, 0xa22821, 0xa32821, 0x95030012, 
-0x91040009, 0x95020002, 0xa32821, 0xa42821, 
-0x4a1023, 0xa22821, 0x2002021, 0x94820000, 
-0x24840002, 0xe23821, 0x88102b, 0x1440fffb, 
-0x71c02, 0x30e2ffff, 0x623821, 0x71c02, 
-0x30e2ffff, 0x623821, 0x1a52821, 0x51c02, 
-0x30a2ffff, 0x622821, 0x51c02, 0x30a2ffff, 
-0x622821, 0xa72823, 0x51402, 0xa22821, 
-0x30a5ffff, 0x50a00001, 0x3405ffff, 0x316200ff, 
-0x14400008, 0x318300ff, 0x8f4300a0, 0x8f4200a8, 
-0x624021, 0x91020000, 0x3042000f, 0x25080, 
-0x318300ff, 0x24020006, 0x14620003, 0x10a1021, 
-0x10000002, 0x24440010, 0x24440006, 0x316200ff, 
-0x14400006, 0x0, 0x94820000, 0xa22821, 
-0x51c02, 0x30a2ffff, 0x622821, 0x934205c3, 
-0x10400003, 0x32620100, 0x50400003, 0xa4850000, 
-0x52827, 0xa4850000, 0x9622000e, 0x8f43009c, 
-0x621821, 0x32a200ff, 0x10400007, 0xaf43009c, 
-0x3c024000, 0x2021025, 0xafa20020, 0x8f42009c, 
-0x10000003, 0x5e1025, 0xafb00020, 0x8f42009c, 
-0xafa20024, 0x32620080, 0x10400010, 0x32620100, 
-0x8f4200b4, 0x24430001, 0x210c0, 0x571021, 
-0xaf4300b4, 0x8fa30020, 0x8fa40024, 0x3c010001, 
-0x220821, 0xac2338e8, 0x3c010001, 0x220821, 
-0xac2438ec, 0x100000a5, 0x32c20020, 0x10400064, 
-0x0, 0x8f4200b4, 0x24430001, 0x210c0, 
-0x571021, 0xaf4300b4, 0x8fa30020, 0x8fa40024, 
-0x3c010001, 0x220821, 0xac2338e8, 0x3c010001, 
-0x220821, 0xac2438ec, 0x8f4200b4, 0x10400051, 
-0x3821, 0x3c090001, 0x352938e8, 0x3c08001f, 
-0x3508ffff, 0x240bffff, 0x340affff, 0x710c0, 
-0x571021, 0x491021, 0x8c430000, 0x8c440004, 
-0xafa30028, 0xafa4002c, 0x8f8200fc, 0x8fa30028, 
-0x8fa4002c, 0xac430000, 0xac440004, 0x24420008, 
-0xaf8200f0, 0x8f42008c, 0x2442ffff, 0xaf42008c, 
-0x97a2002e, 0x8f440270, 0x8f450274, 0x401821, 
-0x1021, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xaf440270, 0xaf450274, 0x8fa20028, 
-0x481024, 0x90430000, 0x30630001, 0x1460000b, 
-0x402021, 0x8f420278, 0x8f43027c, 0x24630001, 
-0x2c640001, 0x441021, 0xaf420278, 0xaf43027c, 
-0x8f420278, 0x1000001a, 0x8f43027c, 0x8c820000, 
-0x144b000e, 0x0, 0x94820004, 0x144a000b, 
-0x0, 0x8f420288, 0x8f43028c, 0x24630001, 
-0x2c640001, 0x441021, 0xaf420288, 0xaf43028c, 
-0x8f420288, 0x1000000a, 0x8f43028c, 0x8f420280, 
-0x8f430284, 0x24630001, 0x2c640001, 0x441021, 
-0xaf420280, 0xaf430284, 0x8f420280, 0x8f430284, 
-0x8f4200b4, 0x24e70001, 0xe2102b, 0x1440ffb8, 
-0x710c0, 0xa34005c3, 0x1000003f, 0xaf4000b4, 
-0x8f8200fc, 0x8fa30020, 0x8fa40024, 0xac430000, 
-0xac440004, 0x24420008, 0xaf8200f0, 0x8f42009c, 
-0x8f46008c, 0x8f440270, 0x8f450274, 0x401821, 
-0x1021, 0x24c6ffff, 0xaf46008c, 0xa32821, 
-0xa3302b, 0x822021, 0x862021, 0xaf440270, 
-0xaf450274, 0x92020000, 0x30420001, 0x1440000c, 
-0x2402ffff, 0x8f420278, 0x8f43027c, 0x24630001, 
-0x2c640001, 0x441021, 0xaf420278, 0xaf43027c, 
-0x8f420278, 0x8f43027c, 0x1000001c, 0x32c20020, 
-0x8e030000, 0x1462000f, 0x3402ffff, 0x96030004, 
-0x1462000c, 0x0, 0x8f420288, 0x8f43028c, 
-0x24630001, 0x2c640001, 0x441021, 0xaf420288, 
-0xaf43028c, 0x8f420288, 0x8f43028c, 0x1000000b, 
-0x32c20020, 0x8f420280, 0x8f430284, 0x24630001, 
-0x2c640001, 0x441021, 0xaf420280, 0xaf430284, 
-0x8f420280, 0x8f430284, 0x32c20020, 0x10400005, 
-0xaf40009c, 0x8f420358, 0x2442ffff, 0xaf420358, 
-0x8f420358, 0x8e22001c, 0x8f430040, 0x24420001, 
-0x2463ffff, 0x431024, 0xaf42002c, 0x32420060, 
-0x14400008, 0x32c20010, 0x8f420034, 0x24420001, 
-0xaf420034, 0x8c03023c, 0x43102b, 0x14400102, 
-0x32c20010, 0x10400018, 0x24070008, 0x8f440170, 
-0x8f450174, 0x8f43002c, 0x8f48000c, 0x8f860120, 
-0x24020080, 0xafa20010, 0xafa30014, 0xafa80018, 
-0x8f42010c, 0x40f809, 0x24c6001c, 0x10400047, 
-0x24020001, 0x8f420300, 0x8f43002c, 0x24420001, 
-0xaf420300, 0x8f420300, 0x24020001, 0xa34205c1, 
-0x1000007c, 0xaf430038, 0x8f440170, 0x8f450174, 
-0x8f43002c, 0x8f48000c, 0x8f860120, 0x24020020, 
-0xafa20010, 0xafa30014, 0xafa80018, 0x8f42010c, 
-0x40f809, 0x24c6001c, 0x10400057, 0x24020001, 
-0x10000065, 0x0, 0x32420012, 0x10400075, 
-0x32420001, 0x9622000e, 0x8f43009c, 0x621821, 
-0x32c20020, 0x10400005, 0xaf43009c, 0x8f420358, 
-0x2442ffff, 0xaf420358, 0x8f420358, 0x8e22001c, 
-0x8f430040, 0x24420001, 0x2463ffff, 0x431024, 
-0xaf42002c, 0x32420010, 0x14400008, 0x32c20010, 
-0x8f420034, 0x24420001, 0xaf420034, 0x8c03023c, 
-0x43102b, 0x144000bc, 0x32c20010, 0x10400028, 
-0x24070008, 0x8f440170, 0x8f450174, 0x8f43002c, 
-0x8f48000c, 0x8f860120, 0x24020080, 0xafa20010, 
-0xafa30014, 0xafa80018, 0x8f42010c, 0x40f809, 
-0x24c6001c, 0x14400011, 0x24020001, 0x3c010001, 
-0x370821, 0xa02240f1, 0x8f820124, 0xafa20010, 
-0x8f820128, 0x3c040001, 0x248467c4, 0xafa20014, 
-0x8f46002c, 0x8f870120, 0x3c050009, 0xc002b3b, 
-0x34a51100, 0x10000036, 0x0, 0x8f420300, 
-0x8f43002c, 0x24420001, 0xaf420300, 0x8f420300, 
-0x24020001, 0xa34205c1, 0x10000026, 0xaf430038, 
-0x8f440170, 0x8f450174, 0x8f43002c, 0x8f48000c, 
-0x8f860120, 0x24020020, 0xafa20010, 0xafa30014, 
-0xafa80018, 0x8f42010c, 0x40f809, 0x24c6001c, 
-0x14400011, 0x24020001, 0x3c010001, 0x370821, 
-0xa02240f0, 0x8f820124, 0xafa20010, 0x8f820128, 
-0x3c040001, 0x248467b8, 0xafa20014, 0x8f46002c, 
-0x8f870120, 0x3c050009, 0xc002b3b, 0x34a50900, 
-0x1000000f, 0x0, 0x8f420300, 0x24420001, 
-0xaf420300, 0x8f420300, 0x8f42002c, 0xa34005c1, 
-0xaf420038, 0x3c010001, 0x370821, 0xa02040f1, 
-0x3c010001, 0x370821, 0xa02040f0, 0xaf400034, 
-0x8f420314, 0x24420001, 0xaf420314, 0x10000062, 
-0x8f420314, 0x10400022, 0x32427000, 0x8e25001c, 
-0x8f420028, 0xa22023, 0x4810003, 0x0, 
-0x8f420040, 0x822021, 0x8f420358, 0x8f430000, 
-0xaf450028, 0x441021, 0x10600007, 0xaf420358, 
-0xaf80004c, 0x8f82004c, 0x1040fffd, 0x0, 
-0x10000005, 0x0, 0xaf800048, 0x8f820048, 
-0x1040fffd, 0x0, 0x8f820060, 0x34420008, 
-0xaf820060, 0x8f420000, 0x10400003, 0x0, 
-0x10000041, 0xaf80004c, 0x1000003f, 0xaf800048, 
-0x1040002f, 0x32421000, 0x1040000c, 0x32424000, 
-0x8e23001c, 0x8f420050, 0x622023, 0x4820001, 
-0x24840200, 0x8f42035c, 0x441021, 0xaf42035c, 
-0x8f420368, 0x1000001a, 0xaf430050, 0x1040000c, 
-0x32c28000, 0x8e23001c, 0x8f420070, 0x622023, 
-0x4820001, 0x24840400, 0x8f420364, 0x441021, 
-0xaf420364, 0x8f420368, 0x1000000d, 0xaf430070, 
-0x1040000e, 0x3c020800, 0x8e23001c, 0x8f420060, 
-0x622023, 0x4820001, 0x24840100, 0x8f420360, 
-0x441021, 0xaf420360, 0x8f420368, 0xaf430060, 
-0x441021, 0xaf420368, 0x3c020800, 0x2c21024, 
-0x50400011, 0x36940040, 0x1000000f, 0x0, 
-0x32420048, 0x10400007, 0x24150001, 0x8e22001c, 
-0x3c03ffff, 0x43f024, 0x3042ffff, 0x1000fd75, 
-0xae22001c, 0x32420100, 0x10400003, 0x0, 
-0xc002bd8, 0x0, 0x8fbf0050, 0x8fbe004c, 
-0x8fb50048, 0x8fb30044, 0x8fb20040, 0x8fb1003c, 
-0x8fb00038, 0x3e00008, 0x27bd0058, 0x3e00008, 
-0x0, 0x0, 0x0, 0x8f8300e4, 
-0x8f8200e0, 0x2404fff8, 0x441024, 0x621026, 
-0x2102b, 0x21023, 0x3e00008, 0x621024, 
-0x3e00008, 0x0, 0x27bdffe0, 0xafbf001c, 
-0xafb00018, 0x8f8600c4, 0x8f8400e0, 0x8f8500e4, 
-0x2402fff8, 0x821824, 0x10a30009, 0x27623ff8, 
-0x14a20002, 0x24a20008, 0x27623000, 0x408021, 
-0x16030005, 0x30820004, 0x10400004, 0xc02021, 
-0x10000022, 0x1021, 0x8e040000, 0x8f42011c, 
-0x14a20003, 0x0, 0x8f420120, 0xaf420114, 
-0x8ca30000, 0x8f420148, 0x831823, 0x43102b, 
-0x10400003, 0x0, 0x8f420148, 0x621821, 
-0x94a20006, 0x24420050, 0x62102b, 0x1440000f, 
-0xa01021, 0xafa40010, 0xafa30014, 0x8ca60000, 
-0x8ca70004, 0x3c040001, 0xc002b3b, 0x24846894, 
-0x8f42020c, 0x24420001, 0xaf42020c, 0x8f42020c, 
-0x1021, 0xaf9000e8, 0xaf9000e4, 0x8fbf001c, 
-0x8fb00018, 0x3e00008, 0x27bd0020, 0x3e00008, 
-0x0, 0x8f8400e0, 0x8f8800c4, 0x8f8300e8, 
-0x2402fff8, 0x823824, 0xe32023, 0x2c821000, 
-0x50400001, 0x24841000, 0x420c2, 0x801821, 
-0x8f440258, 0x8f45025c, 0x1021, 0xa32821, 
-0xa3302b, 0x822021, 0x862021, 0xaf440258, 
-0xaf45025c, 0x8f8300c8, 0x8f420148, 0x1032023, 
-0x82102b, 0x14400004, 0x801821, 0x8f420148, 
-0x822021, 0x801821, 0x8f440250, 0x8f450254, 
-0x1021, 0xa32821, 0xa3302b, 0x822021, 
-0x862021, 0xaf440250, 0xaf450254, 0xaf8800c8, 
-0xaf8700e4, 0xaf8700e8, 0x3e00008, 0x0, 
-0x27bdff30, 0x240a0001, 0xafbf00c8, 0xafbe00c4, 
-0xafb500c0, 0xafb300bc, 0xafb200b8, 0xafb100b4, 
-0xafb000b0, 0xa3a00097, 0xafa00044, 0xafaa005c, 
-0x934205c4, 0xa7a0008e, 0x1040000a, 0xa7a00086, 
-0x8f4b00c4, 0xafab0064, 0x8f4a00c0, 0xafaa006c, 
-0x8f4b00cc, 0xafab0074, 0x8f4a00c8, 0x10000129, 
-0xafaa007c, 0x8f420114, 0x40f809, 0x0, 
-0x403021, 0x10c0034f, 0x0, 0x8cc20000, 
-0x8cc30004, 0xafa20020, 0xafa30024, 0x8fab0024, 
-0x8faa0020, 0x3162ffff, 0x2442fffc, 0xafa2006c, 
-0x3c020006, 0x2c21024, 0xafab007c, 0x14400015, 
-0xafaa0064, 0x91420000, 0x30420001, 0x10400011, 
-0x2402ffff, 0x8d430000, 0x14620004, 0x3402ffff, 
-0x95430004, 0x1062000b, 0x0, 0xc0024bb, 
-0x8fa40064, 0x304200ff, 0x14400006, 0x0, 
-0x8f420118, 0x40f809, 0x0, 0x1000032d, 
-0x0, 0x8fa20024, 0x3c03ffbf, 0x3463ffff, 
-0x431024, 0x3c03ffff, 0x431824, 0x14600003, 
-0xafa20024, 0x10000040, 0x1821, 0x3c020080, 
-0x621024, 0x10400007, 0x0, 0x8f42038c, 
-0x24420001, 0xaf42038c, 0x8f42038c, 0x10000036, 
-0x24030001, 0x8f420210, 0x24420001, 0xaf420210, 
-0x8f420210, 0x3c020001, 0x621024, 0x10400006, 
-0x3c020002, 0x8f4201c4, 0x24420001, 0xaf4201c4, 
-0x8f4201c4, 0x3c020002, 0x621024, 0x10400006, 
-0x3c020004, 0x8f42037c, 0x24420001, 0xaf42037c, 
-0x8f42037c, 0x3c020004, 0x621024, 0x10400006, 
-0x3c020008, 0x8f420380, 0x24420001, 0xaf420380, 
-0x8f420380, 0x3c020008, 0x621024, 0x10400006, 
-0x3c020010, 0x8f420384, 0x24420001, 0xaf420384, 
-0x8f420384, 0x3c020010, 0x621024, 0x10400006, 
-0x3c020020, 0x8f4201c0, 0x24420001, 0xaf4201c0, 
-0x8f4201c0, 0x3c020020, 0x621024, 0x10400006, 
-0x24030001, 0x8f420388, 0x24420001, 0xaf420388, 
-0x8f420388, 0x24030001, 0x8c020260, 0x8fab006c, 
-0x4b102b, 0x10400014, 0x307000ff, 0x8f4201e8, 
-0x24420001, 0xaf4201e8, 0x8f4201e8, 0x8faa007c, 
-0x8f8200e0, 0x354a0100, 0xafaa007c, 0xafa20010, 
-0x8f8200e4, 0x24100001, 0x3c040001, 0x248468a0, 
-0xafa20014, 0x8fa60020, 0x8fa70024, 0x3c050007, 
-0xc002b3b, 0x34a50800, 0x12000010, 0x3c020080, 
-0x2c21024, 0x1440000e, 0x32c20400, 0x8fab007c, 
-0x3c020080, 0x34420100, 0x1621024, 0x10400005, 
-0x0, 0x8f42020c, 0x24420001, 0xaf42020c, 
-0x8f42020c, 0x100002b0, 0x8fa3006c, 0x32c20400, 
-0x10400015, 0x34028100, 0x8faa0064, 0x9543000c, 
-0x14620012, 0x3c020100, 0x240b0200, 0xa7ab008e, 
-0x9542000e, 0x8d430008, 0x8d440004, 0x8d450000, 
-0x8faa006c, 0x8fab0064, 0x254afffc, 0xafaa006c, 
-0xa7a20086, 0xad63000c, 0xad640008, 0xad650004, 
-0x256b0004, 0xafab0064, 0x3c020100, 0x2c21024, 
-0x10400004, 0x0, 0x8faa006c, 0x254a0004, 
-0xafaa006c, 0x8f4200bc, 0x5040000a, 0xafa00074, 
-0x8fab006c, 0x4b102b, 0x50400006, 0xafa00074, 
-0x8f4200bc, 0x1621023, 0xafa20074, 0x8f4a00bc, 
-0xafaa006c, 0x8f420080, 0x8fab006c, 0x4b102b, 
-0x10400056, 0x32c28000, 0x1040005e, 0x240a0003, 
-0x32c21000, 0x1040005b, 0xafaa005c, 0x10000058, 
-0x240b0004, 0x8f420350, 0x2403ffbf, 0x283a024, 
-0x24420001, 0xaf420350, 0x1000024f, 0x8f420350, 
-0x2c2b025, 0x2402ffbf, 0x282a024, 0x8f830128, 
-0x3c040001, 0x248468d0, 0x26620001, 0xafa20014, 
-0xafa30010, 0x8f860120, 0x8f870124, 0x3c050007, 
-0xc002b3b, 0x34a52250, 0x1000023f, 0x0, 
-0x2c2b025, 0x2402ffbf, 0x282a024, 0x8f830128, 
-0x3c040001, 0x248468d0, 0x24020002, 0xafa20014, 
-0xafa30010, 0x8f860120, 0x8f870124, 0x3c050007, 
-0xc002b3b, 0x34a52450, 0x1000022f, 0x0, 
-0x8ea20000, 0x8ea30004, 0x3c040001, 0x248468e8, 
-0xafb00010, 0xafbe0014, 0x8ea70018, 0x34a52800, 
-0xc002b3b, 0x603021, 0x10000223, 0x0, 
-0xa6b1000a, 0x8f820124, 0x3c040001, 0x248468f0, 
-0xafbe0014, 0xafa20010, 0x8f460044, 0x8f870120, 
-0x3c050007, 0xc002b3b, 0x34a53000, 0x10000216, 
-0x0, 0xa6b1000a, 0xa6b2000e, 0x8f820124, 
-0x3c040001, 0x248468fc, 0xafbe0014, 0xafa20010, 
-0x8f460044, 0x8f870120, 0x3c050007, 0xc002b3b, 
-0x34a53200, 0x10000208, 0x0, 0x8f420084, 
-0x8faa006c, 0x4a102b, 0x14400007, 0x3c020001, 
-0x2c21024, 0x10400004, 0x0, 0x240b0002, 
-0xafab005c, 0x8faa006c, 0x1140021b, 0x27ab0020, 
-0xafab00a4, 0x3c0a001f, 0x354affff, 0xafaa009c, 
-0x8fab005c, 0x240a0001, 0x556a0021, 0x240a0002, 
-0x8f430054, 0x8f420050, 0x1062000b, 0x274b0054, 
-0x8f5e0054, 0x3403ecc0, 0xafab004c, 0x27c20001, 
-0x304201ff, 0xafa20054, 0x1e1140, 0x431021, 
-0x1000006b, 0x2e2a821, 0x8f420044, 0x8faa006c, 
-0x3c040001, 0x248468ac, 0xafaa0014, 0xafa20010, 
-0x8f460054, 0x8f470050, 0x3c050007, 0xc002b3b, 
-0x34a51300, 0x8f430350, 0x2402ffbf, 0x282a024, 
-0x24630001, 0xaf430350, 0x100001d3, 0x8f420350, 
-0x156a001d, 0x0, 0x8f430074, 0x8f420070, 
-0x1062000a, 0x274b0074, 0x8f5e0074, 0xafab004c, 
-0x27c20001, 0x304203ff, 0xafa20054, 0x1e1140, 
-0x24426cc0, 0x1000004a, 0x2e2a821, 0x8f420044, 
-0x8faa006c, 0x3c040001, 0x248468b8, 0x3c050007, 
-0xafaa0014, 0xafa20010, 0x8f460074, 0x8f470070, 
-0x34a51500, 0x240b0001, 0xc002b3b, 0xafab005c, 
-0x1000ffc3, 0x0, 0x8f430064, 0x8f420060, 
-0x1062001a, 0x274a0064, 0x8f5e0064, 0x8fab005c, 
-0xafaa004c, 0x27c20001, 0x304200ff, 0xafa20054, 
-0x24020004, 0x1562000e, 0x1e1140, 0x1e1180, 
-0x24420cc0, 0x2e21021, 0xafa20044, 0x9442002a, 
-0x8faa0044, 0x8fab006c, 0x4b102b, 0x10400024, 
-0x25550020, 0x240a0001, 0x10000021, 0xa3aa0097, 
-0x24424cc0, 0x1000001e, 0x2e2a821, 0x8f420044, 
-0x8fab006c, 0x3c040001, 0x248468c4, 0xafab0014, 
-0xafa20010, 0x8f460064, 0x8f470060, 0x3c050007, 
-0xc002b3b, 0x34a51800, 0x3c020008, 0x2c21024, 
-0x1440ff34, 0x0, 0x8f420370, 0x240a0001, 
-0xafaa005c, 0x24420001, 0xaf420370, 0x1000ff90, 
-0x8f420370, 0x27a30036, 0x131040, 0x621821, 
-0x94620000, 0x441021, 0x10000020, 0xa4620000, 
-0x8fab0064, 0xaeab0018, 0x93a20097, 0x10400072, 
-0x9821, 0x8faa0044, 0x8fa4006c, 0x8fa300a4, 
-0x25420020, 0xafa20028, 0x25420008, 0xafa20030, 
-0x25420010, 0xafaa002c, 0xafa20034, 0x9542002a, 
-0xa7a20038, 0x95420018, 0xa7a2003a, 0x9542001a, 
-0xa7a2003c, 0x9542001c, 0xa7a2003e, 0x94620018, 
-0x24630002, 0x822023, 0x1880ffde, 0x26730001, 
-0x2e620004, 0x1440fff9, 0x0, 0x8f4200fc, 
-0x26650001, 0xa2102a, 0x1440002b, 0x24030001, 
-0x8f83012c, 0x10600023, 0x0, 0x8f820124, 
-0x431023, 0x22143, 0x58800001, 0x24840040, 
-0x8f820128, 0x431023, 0x21943, 0x58600001, 
-0x24630040, 0x64102a, 0x54400001, 0x602021, 
-0xaf4400fc, 0x8f4200fc, 0xa2102a, 0x10400011, 
-0x24030001, 0x10000015, 0x306200ff, 0x8fab0064, 
-0x96070018, 0xafab0010, 0x8e220008, 0x3c040001, 
-0x248468dc, 0x8c430004, 0x8c420000, 0x34a52400, 
-0x2403021, 0xc002b3b, 0xafa30014, 0x1000002b, 
-0x0, 0x8f420334, 0x1821, 0x24420001, 
-0xaf420334, 0x8f420334, 0x306200ff, 0x5040fedc, 
-0x3c020800, 0x12600021, 0x9021, 0x8fb100a4, 
-0x2208021, 0x8e220008, 0x96070018, 0x8fa60064, 
-0x8c440000, 0x8c450004, 0x240a0001, 0xafaa0010, 
-0xafbe0014, 0x8f420008, 0xafa20018, 0x8f42010c, 
-0x40f809, 0x0, 0x1040ffd8, 0x3c050007, 
-0x96020018, 0x8fab0064, 0x8faa009c, 0x1625821, 
-0x14b102b, 0x10400004, 0xafab0064, 0x8f420148, 
-0x1625823, 0xafab0064, 0x26100002, 0x26520001, 
-0x253102b, 0x1440ffe3, 0x26310004, 0x8fb0006c, 
-0x10000036, 0x97b10038, 0x8f4200fc, 0x24050002, 
-0xa2102a, 0x1440001b, 0x24030001, 0x8f83012c, 
-0x10600013, 0x0, 0x8f820124, 0x431023, 
-0x22143, 0x58800001, 0x24840040, 0x8f820128, 
-0x431023, 0x21943, 0x58600001, 0x24630040, 
-0x64102a, 0x54400001, 0x602021, 0xaf4400fc, 
-0x8f4200fc, 0xa2102a, 0x14400006, 0x24030001, 
-0x8f420334, 0x1821, 0x24420001, 0xaf420334, 
-0x8f420334, 0x306200ff, 0x1040fea5, 0x3c020800, 
-0x96b1000a, 0x8fb0006c, 0x3223ffff, 0x70102b, 
-0x54400001, 0x608021, 0x8ea40000, 0x8ea50004, 
-0x240b0001, 0xafab0010, 0xafbe0014, 0x8f420008, 
-0x8fa60064, 0xafa20018, 0x8f42010c, 0x40f809, 
-0x2003821, 0x1040fea2, 0x3c050007, 0x96a3000e, 
-0x97aa008e, 0x11400007, 0x609021, 0x934205c4, 
-0x14400004, 0x0, 0x97ab0086, 0x6a1825, 
-0xa6ab0016, 0x8faa007c, 0x3c02ffff, 0x1421024, 
-0x10400003, 0xa1402, 0x34630400, 0xa6a20014, 
-0x8fab006c, 0x560b0072, 0xa6a3000e, 0x34620004, 
-0xa6a2000e, 0x8faa0074, 0x16a1021, 0xa6a2000a, 
-0x8f430044, 0x8f4401a0, 0x8f4501a4, 0x34028000, 
-0xafa20010, 0x8f420044, 0x2a03021, 0x24070020, 
-0xafa20014, 0x8f42000c, 0x31940, 0x604821, 
-0xafa20018, 0x8f42010c, 0x4021, 0xa92821, 
-0xa9182b, 0x882021, 0x40f809, 0x832021, 
-0x5040fe7f, 0xa6b2000e, 0x8f420368, 0xafa0006c, 
-0xa34005c4, 0x2442ffff, 0xaf420368, 0x8fab005c, 
-0x240a0001, 0x8f420368, 0x156a0006, 0x240a0002, 
-0x8f42035c, 0x2442ffff, 0xaf42035c, 0x1000000c, 
-0x8f42035c, 0x156a0006, 0x0, 0x8f420364, 
-0x2442ffff, 0xaf420364, 0x10000005, 0x8f420364, 
-0x8f420360, 0x2442ffff, 0xaf420360, 0x8f420360, 
-0x8faa0054, 0x8fab004c, 0xad6a0000, 0x8f420044, 
-0x8f440088, 0x8f430078, 0x24420001, 0x441024, 
-0x24630001, 0xaf420044, 0xaf430078, 0x8c020240, 
-0x62182b, 0x14600075, 0x24070008, 0x8f440168, 
-0x8f45016c, 0x8f430044, 0x8f48000c, 0x8f860120, 
-0x24020040, 0xafa20010, 0xafa30014, 0xafa80018, 
-0x8f42010c, 0x40f809, 0x24c6001c, 0x14400011, 
-0x240b0001, 0x3c010001, 0x370821, 0xa02b40f2, 
-0x8f820124, 0xafa20010, 0x8f820128, 0x3c040001, 
-0x2484688c, 0xafa20014, 0x8f460044, 0x8f870120, 
-0x3c050009, 0xc002b3b, 0x34a51300, 0x1000000b, 
-0x0, 0x8f420304, 0x24420001, 0xaf420304, 
-0x8f420304, 0x8f420044, 0xaf42007c, 0x3c010001, 
-0x370821, 0xa02040f2, 0xaf400078, 0x8f420318, 
-0x24420001, 0xaf420318, 0x10000048, 0x8f420318, 
-0xa6b0000a, 0x8f430044, 0x8f4401a0, 0x8f4501a4, 
-0x34028000, 0xafa20010, 0x8f420044, 0x2a03021, 
-0x24070020, 0xafa20014, 0x8f42000c, 0x31940, 
-0x604821, 0xafa20018, 0x8f42010c, 0x4021, 
-0xa92821, 0xa9182b, 0x882021, 0x40f809, 
-0x832021, 0x1040fe1f, 0x240a0001, 0xa34a05c4, 
-0x8fab006c, 0x8faa0064, 0x1705823, 0xafab006c, 
-0x8fab009c, 0x1505021, 0x16a102b, 0x10400004, 
-0xafaa0064, 0x8f420148, 0x1425023, 0xafaa0064, 
-0x8f420368, 0x2442ffff, 0xaf420368, 0x8faa005c, 
-0x240b0001, 0x8f420368, 0x154b0006, 0x240b0002, 
-0x8f42035c, 0x2442ffff, 0xaf42035c, 0x1000000c, 
-0x8f42035c, 0x114b0006, 0x0, 0x8f420360, 
-0x2442ffff, 0xaf420360, 0x10000005, 0x8f420360, 
-0x8f420364, 0x2442ffff, 0xaf420364, 0x8f420364, 
-0x8fab0054, 0x8faa004c, 0xad4b0000, 0x8f420044, 
-0x8f440088, 0x8f430078, 0x24420001, 0x441024, 
-0x24630001, 0xaf420044, 0xaf430078, 0x8faa006c, 
-0x1540fe0b, 0x0, 0x8fab006c, 0x1160001e, 
-0x0, 0x934205c4, 0x10400009, 0x0, 
-0x8faa0064, 0xaf4a00c4, 0xaf4b00c0, 0x8fab007c, 
-0xaf4b00c8, 0x8faa0074, 0x1000000e, 0xaf4a00cc, 
-0x97ab008e, 0x1160000b, 0x34038100, 0x8fa20020, 
-0x8c46000c, 0xa443000c, 0x97aa0086, 0x8c440004, 
-0x8c450008, 0xa44a000e, 0xac440000, 0xac450004, 
-0xac460008, 0x8f42034c, 0x24420001, 0xaf42034c, 
-0x10000010, 0x8f42034c, 0x8fab007c, 0x3164ffff, 
-0x2484fffc, 0x801821, 0x8f440250, 0x8f450254, 
-0x8f460118, 0x1021, 0xa32821, 0xa3382b, 
-0x822021, 0x872021, 0xaf440250, 0xc0f809, 
-0xaf450254, 0x8fbf00c8, 0x8fbe00c4, 0x8fb500c0, 
-0x8fb300bc, 0x8fb200b8, 0x8fb100b4, 0x8fb000b0, 
-0x3e00008, 0x27bd00d0, 0x3e00008, 0x0, 
-0x27bdff38, 0x240b0001, 0xafbf00c0, 0xafbe00bc, 
-0xafb500b8, 0xafb300b4, 0xafb200b0, 0xafb100ac, 
-0xafb000a8, 0xa3a00087, 0xafa00044, 0xafab005c, 
-0x934205c4, 0xa7a00076, 0x10400007, 0xa7a0007e, 
-0x8f4c00c0, 0xafac0064, 0x8f4b00c8, 0x8f5e00c4, 
-0x10000130, 0xafab006c, 0x8f420114, 0x40f809, 
-0x0, 0x403021, 0x10c002a1, 0x0, 
-0x8cc20000, 0x8cc30004, 0xafa20020, 0xafa30024, 
-0x8fac0024, 0x8fbe0020, 0x3182ffff, 0x2442fffc, 
-0xafa20064, 0x3c020006, 0x2c21024, 0x14400015, 
-0xafac006c, 0x93c20000, 0x30420001, 0x10400011, 
-0x2402ffff, 0x8fc30000, 0x14620004, 0x3402ffff, 
-0x97c30004, 0x1062000b, 0x0, 0xc0024bb, 
-0x3c02021, 0x304200ff, 0x14400006, 0x0, 
-0x8f420118, 0x40f809, 0x0, 0x10000280, 
-0x0, 0x8fa20024, 0x3c03ffbf, 0x3463ffff, 
-0x431024, 0x3c03ffff, 0x431824, 0x14600003, 
-0xafa20024, 0x10000040, 0x8021, 0x3c020080, 
-0x621024, 0x10400007, 0x0, 0x8f42038c, 
-0x24420001, 0xaf42038c, 0x8f42038c, 0x10000036, 
-0x24100001, 0x8f420210, 0x24420001, 0xaf420210, 
-0x8f420210, 0x3c020001, 0x621024, 0x10400006, 
-0x3c020002, 0x8f4201c4, 0x24420001, 0xaf4201c4, 
-0x8f4201c4, 0x3c020002, 0x621024, 0x10400006, 
-0x3c020004, 0x8f42037c, 0x24420001, 0xaf42037c, 
-0x8f42037c, 0x3c020004, 0x621024, 0x10400006, 
-0x3c020008, 0x8f420380, 0x24420001, 0xaf420380, 
-0x8f420380, 0x3c020008, 0x621024, 0x10400006, 
-0x3c020010, 0x8f420384, 0x24420001, 0xaf420384, 
-0x8f420384, 0x3c020010, 0x621024, 0x10400006, 
-0x3c020020, 0x8f4201c0, 0x24420001, 0xaf4201c0, 
-0x8f4201c0, 0x3c020020, 0x621024, 0x10400006, 
-0x24100001, 0x8f420388, 0x24420001, 0xaf420388, 
-0x8f420388, 0x24100001, 0x8c020260, 0x8fab0064, 
-0x4b102b, 0x10400015, 0x320200ff, 0x8f4201e8, 
-0x24420001, 0xaf4201e8, 0x8f4201e8, 0x8fac006c, 
-0x8f8200e0, 0x358c0100, 0xafac006c, 0xafa20010, 
-0x8f8200e4, 0x24100001, 0x3c040001, 0x248468a0, 
-0xafa20014, 0x8fa60020, 0x8fa70024, 0x3c050007, 
-0xc002b3b, 0x34a53600, 0x320200ff, 0x10400010, 
-0x3c020080, 0x2c21024, 0x1440000e, 0x32c20400, 
-0x8fab006c, 0x3c020080, 0x34420100, 0x1621024, 
-0x10400005, 0x0, 0x8f42020c, 0x24420001, 
-0xaf42020c, 0x8f42020c, 0x10000202, 0x8fa30064, 
-0x32c20400, 0x10400012, 0x34028100, 0x97c3000c, 
-0x1462000f, 0x0, 0x240c0200, 0xa7ac0076, 
-0x97c2000e, 0x8fc30008, 0x8fc40004, 0x8fab0064, 
-0x8fc50000, 0x256bfffc, 0xafab0064, 0xa7a2007e, 
-0xafc3000c, 0xafc40008, 0xafc50004, 0x27de0004, 
-0x8fa70064, 0x320200ff, 0x14400034, 0x3c020100, 
-0x97c4000c, 0x2c8305dd, 0x38828870, 0x2c420001, 
-0x621825, 0x10600015, 0x2821, 0x32c20800, 
-0x10400015, 0x24020800, 0x97c30014, 0x14620012, 
-0x3402aaaa, 0x97c3000e, 0x14620007, 0x2021, 
-0x97c30010, 0x24020300, 0x14620004, 0x801021, 
-0x97c20012, 0x2c440001, 0x801021, 0x54400006, 
-0x24050016, 0x10000004, 0x0, 0x24020800, 
-0x50820001, 0x2405000e, 0x10a00013, 0x3c52021, 
-0x24830009, 0x3c02001f, 0x3442ffff, 0x43102b, 
-0x10400003, 0x0, 0x8f420148, 0x621823, 
-0x90620000, 0x38430006, 0x2c630001, 0x38420011, 
-0x2c420001, 0x621825, 0x10600004, 0x3c020100, 
-0x94820002, 0x453821, 0x3c020100, 0x2c21024, 
-0x5040000e, 0xafa70064, 0x8fac0064, 0x10ec0008, 
-0x3c050007, 0x3c040001, 0x24846908, 0x8fa60064, 
-0x34a54000, 0xafa00010, 0xc002b3b, 0xafa00014, 
-0x8fab0064, 0x256b0004, 0xafab0064, 0x8f420080, 
-0x8fac0064, 0x4c102b, 0x1040002c, 0x32c28000, 
-0x10400034, 0x240b0003, 0x32c21000, 0x10400031, 
-0xafab005c, 0x1000002e, 0x240c0004, 0x8f420350, 
-0x2403ffbf, 0x283a024, 0x24420001, 0xaf420350, 
-0x10000173, 0x8f420350, 0x3c020800, 0x2c2b025, 
-0x2402ffbf, 0x282a024, 0x8f830128, 0x3c040001, 
-0x248468d0, 0x26620001, 0xafa20014, 0xafa30010, 
-0x8f860120, 0x8f870124, 0x3c050007, 0xc002b3b, 
-0x34a55300, 0x10000162, 0x0, 0x8ea20000, 
-0x8ea30004, 0x3c040001, 0x248468e8, 0xafb00010, 
-0xafb10014, 0x8ea70018, 0x34a55900, 0xc002b3b, 
-0x603021, 0x10000156, 0x0, 0x8f420084, 
-0x8fab0064, 0x4b102b, 0x14400007, 0x3c020001, 
-0x2c21024, 0x10400004, 0x0, 0x240c0002, 
-0xafac005c, 0x8fab0064, 0x11600166, 0x27ac0020, 
-0xafac008c, 0x8fab005c, 0x240c0001, 0x556c0021, 
-0x240c0002, 0x8f430054, 0x8f420050, 0x1062000b, 
-0x274b0054, 0x8f510054, 0x3403ecc0, 0xafab004c, 
-0x26220001, 0x304201ff, 0xafa20054, 0x111140, 
-0x431021, 0x1000006b, 0x2e2a821, 0x8f420044, 
-0x8fac0064, 0x3c040001, 0x248468ac, 0xafac0014, 
-0xafa20010, 0x8f460054, 0x8f470050, 0x3c050007, 
-0xc002b3b, 0x34a54300, 0x8f430350, 0x2402ffbf, 
-0x282a024, 0x24630001, 0xaf430350, 0x10000124, 
-0x8f420350, 0x156c001d, 0x0, 0x8f430074, 
-0x8f420070, 0x1062000a, 0x274b0074, 0x8f510074, 
-0xafab004c, 0x26220001, 0x304203ff, 0xafa20054, 
-0x111140, 0x24426cc0, 0x1000004a, 0x2e2a821, 
-0x8f420044, 0x8fac0064, 0x3c040001, 0x248468b8, 
-0x3c050007, 0xafac0014, 0xafa20010, 0x8f460074, 
-0x8f470070, 0x34a54500, 0x240b0001, 0xc002b3b, 
-0xafab005c, 0x1000ffc3, 0x0, 0x8f430064, 
-0x8f420060, 0x1062001a, 0x274c0064, 0x8f510064, 
-0x8fab005c, 0xafac004c, 0x26220001, 0x304200ff, 
-0xafa20054, 0x24020004, 0x1562000e, 0x111140, 
-0x111180, 0x24420cc0, 0x2e21021, 0xafa20044, 
-0x9442002a, 0x8fac0044, 0x8fab0064, 0x4b102b, 
-0x10400024, 0x25950020, 0x240c0001, 0x10000021, 
-0xa3ac0087, 0x24424cc0, 0x1000001e, 0x2e2a821, 
-0x8f420044, 0x8fab0064, 0x3c040001, 0x248468c4, 
-0xafab0014, 0xafa20010, 0x8f460064, 0x8f470060, 
-0x3c050007, 0xc002b3b, 0x34a54800, 0x3c020008, 
-0x2c21024, 0x1440ff61, 0x0, 0x8f420370, 
-0x240c0001, 0xafac005c, 0x24420001, 0xaf420370, 
-0x1000ff90, 0x8f420370, 0x27a30036, 0x131040, 
-0x621821, 0x94620000, 0x441021, 0x1000001f, 
-0xa4620000, 0xaebe0018, 0x93a20087, 0x10400084, 
-0x9821, 0x8fab0044, 0x8fa40064, 0x8fa3008c, 
-0x25620020, 0xafa20028, 0x25620008, 0xafa20030, 
-0x25620010, 0xafab002c, 0xafa20034, 0x9562002a, 
-0xa7a20038, 0x95620018, 0xa7a2003a, 0x9562001a, 
-0xa7a2003c, 0x9562001c, 0xa7a2003e, 0x94620018, 
-0x24630002, 0x822023, 0x1880ffdf, 0x26730001, 
-0x2e620004, 0x1440fff9, 0x0, 0x8f4200fc, 
-0x262102a, 0x14400030, 0x24030001, 0x8f83012c, 
-0x10600028, 0x0, 0x8f820124, 0x431023, 
-0x22143, 0x58800001, 0x24840040, 0x8f820128, 
-0x431023, 0x21943, 0x58600001, 0x24630040, 
-0x64102a, 0x54400001, 0x602021, 0xaf4400fc, 
-0x8f4200fc, 0x262102a, 0x10400016, 0x24030001, 
-0x1000001a, 0x306200ff, 0x8fac008c, 0x101040, 
-0x4c1021, 0x94470018, 0x101080, 0x4c1021, 
-0xafbe0010, 0x8c420008, 0x3c040001, 0x248468dc, 
-0x3c050007, 0x8c430004, 0x8c420000, 0x34a55500, 
-0x2003021, 0xc002b3b, 0xafa30014, 0x10000039, 
-0x0, 0x8f420334, 0x1821, 0x24420001, 
-0xaf420334, 0x8f420334, 0x306200ff, 0x1040ff06, 
-0x8021, 0x8f430008, 0x2402fbff, 0x1260002d, 
-0x625024, 0x3c0b4000, 0x22b4025, 0x8fb1008c, 
-0x2669ffff, 0x2209021, 0x8e420008, 0x96270018, 
-0x8c440000, 0x8c450004, 0x56090004, 0x240b0001, 
-0x240c0002, 0x10000002, 0xafac0010, 0xafab0010, 
-0x16000004, 0xafa80014, 0x8f420008, 0x10000002, 
-0xafa20018, 0xafaa0018, 0x8f42010c, 0x3c03021, 
-0xafa80098, 0xafa9009c, 0x40f809, 0xafaa00a0, 
-0x8fa80098, 0x8fa9009c, 0x8faa00a0, 0x1040ffc2, 
-0x3c02001f, 0x96230018, 0x3442ffff, 0x3c3f021, 
-0x5e102b, 0x10400003, 0x26310002, 0x8f420148, 
-0x3c2f023, 0x26100001, 0x213102b, 0x1440ffda, 
-0x26520004, 0x8fb00064, 0x1000001a, 0x0, 
-0x96a3000a, 0x8fb00064, 0x70102b, 0x54400001, 
-0x608021, 0x8ea40000, 0x8ea50004, 0x8fab005c, 
-0x240c0002, 0xafac0010, 0x934305c4, 0xb1700, 
-0x10600003, 0x2223025, 0x3c020800, 0xc23025, 
-0xafa60014, 0x8f420008, 0xafa20018, 0x8f42010c, 
-0x3c03021, 0x40f809, 0x2003821, 0x1040fecb, 
-0x3c050007, 0x97ac0076, 0x11800007, 0x96a3000e, 
-0x934205c4, 0x14400004, 0x0, 0x97ab007e, 
-0x6c1825, 0xa6ab0016, 0x8fac006c, 0x3c02ffff, 
-0x1821024, 0x10400003, 0xc1402, 0x34630400, 
-0xa6a20014, 0xa6b0000a, 0x8fab0064, 0x560b0006, 
-0x3d0f021, 0x34620004, 0xafa00064, 0xa6a2000e, 
-0x1000000d, 0xa34005c4, 0x8fac0064, 0x3c02001f, 
-0x3442ffff, 0x5e102b, 0x1906023, 0xafac0064, 
-0xa6a3000e, 0x240b0001, 0x10400003, 0xa34b05c4, 
-0x8f420148, 0x3c2f023, 0x8fab0054, 0x8fac004c, 
-0xad8b0000, 0x8fac0064, 0x1580feba, 0x0, 
-0x8fab0064, 0x1160001b, 0x0, 0x934205c4, 
-0x10400006, 0x0, 0xaf5e00c4, 0xaf4b00c0, 
-0x8fac006c, 0x1000000e, 0xaf4c00c8, 0x97ab0076, 
-0x1160000b, 0x34038100, 0x8fa20020, 0x8c46000c, 
-0xa443000c, 0x97ac007e, 0x8c440004, 0x8c450008, 
-0xa44c000e, 0xac440000, 0xac450004, 0xac460008, 
-0x8f42034c, 0x24420001, 0xaf42034c, 0x10000010, 
-0x8f42034c, 0x8fab006c, 0x3164ffff, 0x2484fffc, 
-0x801821, 0x8f440250, 0x8f450254, 0x8f460118, 
-0x1021, 0xa32821, 0xa3382b, 0x822021, 
-0x872021, 0xaf440250, 0xc0f809, 0xaf450254, 
-0x8fbf00c0, 0x8fbe00bc, 0x8fb500b8, 0x8fb300b4, 
-0x8fb200b0, 0x8fb100ac, 0x8fb000a8, 0x3e00008, 
-0x27bd00c8, 0x3e00008, 0x0, 0x27bdffd8, 
-0xafbf0024, 0xafb00020, 0x8f43004c, 0x8f420048, 
-0x10620034, 0x0, 0x8f430048, 0x8f42004c, 
-0x622023, 0x4820001, 0x24840200, 0x8f430054, 
-0x8f42004c, 0x43102b, 0x14400004, 0x24020200, 
-0x8f43004c, 0x10000005, 0x431023, 0x8f420054, 
-0x8f43004c, 0x431023, 0x2442ffff, 0x405021, 
-0x8a102a, 0x54400001, 0x805021, 0x8f49004c, 
-0x8f48004c, 0x8f440188, 0x8f45018c, 0x8f46004c, 
-0x24071000, 0xafa70010, 0x84140, 0x1001821, 
-0x12a4821, 0x313001ff, 0xafb00014, 0x8f470014, 
-0x1021, 0x63140, 0xafa70018, 0xa32821, 
-0xa3382b, 0x822021, 0x872021, 0x3402ecc0, 
-0xc23021, 0x8f420108, 0x2e63021, 0x40f809, 
-0xa3940, 0x54400001, 0xaf50004c, 0x8f43004c, 
-0x8f420048, 0x14620018, 0x0, 0x8f420000, 
-0x10400007, 0x0, 0xaf80004c, 0x8f82004c, 
-0x1040fffd, 0x0, 0x10000005, 0x0, 
-0xaf800048, 0x8f820048, 0x1040fffd, 0x0, 
-0x8f820060, 0x2403fdff, 0x431024, 0xaf820060, 
-0x8f420000, 0x10400003, 0x0, 0x10000002, 
-0xaf80004c, 0xaf800048, 0x8fbf0024, 0x8fb00020, 
-0x3e00008, 0x27bd0028, 0x3e00008, 0x0, 
-0x27bdffd8, 0xafbf0024, 0xafb00020, 0x8f43005c, 
-0x8f420058, 0x10620049, 0x0, 0x8f430058, 
-0x8f42005c, 0x622023, 0x4820001, 0x24840100, 
-0x8f430064, 0x8f42005c, 0x43102b, 0x14400004, 
-0x24020100, 0x8f43005c, 0x10000005, 0x431023, 
-0x8f420064, 0x8f43005c, 0x431023, 0x2442ffff, 
-0x403821, 0x87102a, 0x54400001, 0x803821, 
-0x8f42005c, 0x471021, 0x305000ff, 0x32c21000, 
-0x10400015, 0x24082000, 0x8f49005c, 0x8f440190, 
-0x8f450194, 0x8f46005c, 0x73980, 0xafa80010, 
-0xafb00014, 0x8f480014, 0x94980, 0x1201821, 
-0x1021, 0xa32821, 0xa3482b, 0x822021, 
-0x892021, 0x63180, 0xafa80018, 0x8f420108, 
-0x10000014, 0x24c60cc0, 0x8f49005c, 0x8f440190, 
-0x8f450194, 0x8f46005c, 0x73940, 0xafa80010, 
-0xafb00014, 0x8f480014, 0x94940, 0x1201821, 
-0x1021, 0xa32821, 0xa3482b, 0x822021, 
-0x892021, 0x63140, 0xafa80018, 0x8f420108, 
-0x24c64cc0, 0x40f809, 0x2e63021, 0x54400001, 
-0xaf50005c, 0x8f43005c, 0x8f420058, 0x14620018, 
-0x0, 0x8f420000, 0x10400007, 0x0, 
-0xaf80004c, 0x8f82004c, 0x1040fffd, 0x0, 
-0x10000005, 0x0, 0xaf800048, 0x8f820048, 
-0x1040fffd, 0x0, 0x8f820060, 0x2403feff, 
-0x431024, 0xaf820060, 0x8f420000, 0x10400003, 
-0x0, 0x10000002, 0xaf80004c, 0xaf800048, 
-0x8fbf0024, 0x8fb00020, 0x3e00008, 0x27bd0028, 
-0x3e00008, 0x0, 0x27bdffd8, 0xafbf0024, 
-0xafb00020, 0x8f43006c, 0x8f420068, 0x10620033, 
-0x0, 0x8f430068, 0x8f42006c, 0x622023, 
-0x4820001, 0x24840400, 0x8f430074, 0x8f42006c, 
-0x43102b, 0x14400004, 0x24020400, 0x8f43006c, 
-0x10000005, 0x431023, 0x8f420074, 0x8f43006c, 
-0x431023, 0x2442ffff, 0x405021, 0x8a102a, 
-0x54400001, 0x805021, 0x8f49006c, 0x8f48006c, 
-0x8f440198, 0x8f45019c, 0x8f46006c, 0x24074000, 
-0xafa70010, 0x84140, 0x1001821, 0x12a4821, 
-0x313003ff, 0xafb00014, 0x8f470014, 0x1021, 
-0x63140, 0x24c66cc0, 0xafa70018, 0xa32821, 
-0xa3382b, 0x822021, 0x872021, 0x8f420108, 
-0x2e63021, 0x40f809, 0xa3940, 0x54400001, 
-0xaf50006c, 0x8f43006c, 0x8f420068, 0x14620018, 
-0x0, 0x8f420000, 0x10400007, 0x0, 
-0xaf80004c, 0x8f82004c, 0x1040fffd, 0x0, 
-0x10000005, 0x0, 0xaf800048, 0x8f820048, 
-0x1040fffd, 0x0, 0x8f820060, 0x2403f7ff, 
-0x431024, 0xaf820060, 0x8f420000, 0x10400003, 
-0x0, 0x10000002, 0xaf80004c, 0xaf800048, 
-0x8fbf0024, 0x8fb00020, 0x3e00008, 0x27bd0028, 
-0x3e00008, 0x0, 0x8f4200fc, 0x3c030001, 
-0x8f4400f8, 0x346330c8, 0x24420001, 0xaf4200fc, 
-0x8f850128, 0x2e31021, 0x54820004, 0x24820008, 
-0x3c020001, 0x34422ec8, 0x2e21021, 0x401821, 
-0xaf4300f8, 0xac600000, 0x8f4200f4, 0x14620004, 
-0x3c020001, 0x24a20020, 0x1000000f, 0xaf820128, 
-0x8f4300f8, 0x344230c8, 0x2e21021, 0x54620004, 
-0x24620008, 0x3c020001, 0x34422ec8, 0x2e21021, 
-0x401821, 0x8c620004, 0x21140, 0xa21021, 
-0xaf820128, 0xac600000, 0x8ca30018, 0x30620070, 
-0x1040002d, 0x30620020, 0x10400004, 0x3c020010, 
-0x2c21024, 0x1040000d, 0x0, 0x30620040, 
-0x10400004, 0x3c020020, 0x2c21024, 0x10400007, 
-0x0, 0x30620010, 0x1040001f, 0x3c020040, 
-0x2c21024, 0x1440001c, 0x0, 0x8f820040, 
-0x30420001, 0x14400008, 0x2021, 0x8c030104, 
-0x24020001, 0x50620005, 0x24040001, 0x8c020264, 
-0x10400003, 0x801021, 0x24040001, 0x801021, 
-0x10400006, 0x0, 0x8f42030c, 0x24420001, 
-0xaf42030c, 0x10000008, 0x8f42030c, 0x8f820044, 
-0x34420004, 0xaf820044, 0x8f420308, 0x24420001, 
-0xaf420308, 0x8f420308, 0x3e00008, 0x0, 
-0x3e00008, 0x0, 0x27bdff98, 0xafbf0060, 
-0xafbe005c, 0xafb50058, 0xafb30054, 0xafb20050, 
-0xafb1004c, 0xafb00048, 0x8f4200fc, 0x24420001, 
-0xaf4200fc, 0x8f880128, 0x25020020, 0xaf820128, 
-0x8d030018, 0x30620070, 0x1040002e, 0x30620020, 
-0x10400004, 0x3c020010, 0x2c21024, 0x1040000d, 
-0x0, 0x30620040, 0x10400004, 0x3c020020, 
-0x2c21024, 0x10400007, 0x0, 0x30620010, 
-0x104001a9, 0x3c020040, 0x2c21024, 0x144001a6, 
-0x0, 0x8f820040, 0x30420001, 0x14400008, 
-0x2021, 0x8c030104, 0x24020001, 0x50620005, 
-0x24040001, 0x8c020264, 0x10400003, 0x801021, 
-0x24040001, 0x801021, 0x10400006, 0x0, 
-0x8f42030c, 0x24420001, 0xaf42030c, 0x10000192, 
-0x8f42030c, 0x8f820044, 0x34420004, 0xaf820044, 
-0x8f420308, 0x24420001, 0xaf420308, 0x1000018a, 
-0x8f420308, 0x30620002, 0x1040014b, 0x3c020800, 
-0x8d1e001c, 0x1e5702, 0xafaa0034, 0x950a0016, 
-0x3c22024, 0xafaa0024, 0x8faa0034, 0x24020001, 
-0x15420006, 0x33deffff, 0x1e1140, 0x3403ecc0, 
-0x431021, 0x10000010, 0x2e2a821, 0x24020002, 
-0x15420005, 0x24020003, 0x1e1140, 0x24426cc0, 
-0x10000009, 0x2e2a821, 0x15420005, 0x1e1180, 
-0x1e1140, 0x24424cc0, 0x10000003, 0x2e2a821, 
-0x571021, 0x24550ce0, 0x96a2000e, 0x304afffc, 
-0x30420400, 0x10400003, 0xafaa002c, 0x100000e1, 
-0x8821, 0x10800004, 0x8821, 0x97b10026, 
-0x100000dd, 0xa6b10012, 0x8eb30018, 0x966a000c, 
-0xa7aa003e, 0x97a5003e, 0x2ca305dd, 0x38a28870, 
-0x2c420001, 0x621825, 0x10600015, 0x2021, 
-0x32c20800, 0x10400015, 0x24020800, 0x96630014, 
-0x14620012, 0x3402aaaa, 0x9663000e, 0x14620007, 
-0x2821, 0x96630010, 0x24020300, 0x14620004, 
-0xa01021, 0x96620012, 0x2c450001, 0xa01021, 
-0x54400006, 0x24040016, 0x10000004, 0x0, 
-0x24020800, 0x50a20001, 0x2404000e, 0x108000b9, 
-0x2649021, 0x92420000, 0x3042000f, 0x28080, 
-0x32c20100, 0x10400020, 0x2501821, 0x3c020020, 
-0x43102b, 0x1440000e, 0x2402021, 0x2821, 
-0x94820000, 0x24840002, 0xa22821, 0x83102b, 
-0x1440fffb, 0x30a2ffff, 0x51c02, 0x622821, 
-0x51c02, 0x30a2ffff, 0x10000009, 0x622821, 
-0x8f470148, 0x8f420110, 0x102842, 0x3c060020, 
-0x40f809, 0xafa80040, 0x3045ffff, 0x8fa80040, 
-0x50a00001, 0x3405ffff, 0x8faa002c, 0x354a0002, 
-0x10000002, 0xafaa002c, 0x2821, 0x32c20080, 
-0x10400090, 0xa6a50010, 0x26430009, 0x3c02001f, 
-0x3442ffff, 0x43102b, 0x10400003, 0x0, 
-0x8f420148, 0x621823, 0x90660000, 0x30c200ff, 
-0x38430006, 0x2c630001, 0x38420011, 0x2c420001, 
-0x621825, 0x1060007f, 0x24020800, 0x8821, 
-0x97a3003e, 0x1462000f, 0x2602021, 0x96710000, 
-0x96620002, 0x96630004, 0x96640006, 0x2228821, 
-0x2238821, 0x2248821, 0x96620008, 0x9663000a, 
-0x9664000c, 0x2228821, 0x2238821, 0x10000007, 
-0x2248821, 0x94820000, 0x24840002, 0x2228821, 
-0x92102b, 0x1440fffb, 0x0, 0x111c02, 
-0x3222ffff, 0x628821, 0x111c02, 0x3222ffff, 
-0x628821, 0x32c20200, 0x10400003, 0x26440006, 
-0x1000003e, 0x8021, 0x3c05001f, 0x34a5ffff, 
-0xa4102b, 0x10400003, 0x0, 0x8f420148, 
-0x822023, 0x94820000, 0x30421fff, 0x10400004, 
-0x2644000c, 0x96420002, 0x10000030, 0x508023, 
-0x96420002, 0x26430014, 0x508023, 0x3c020020, 
-0x43102b, 0x1440000a, 0xd08021, 0x9642000c, 
-0x2028021, 0x9642000e, 0x96430010, 0x96440012, 
-0x2028021, 0x2038021, 0x10000020, 0x2048021, 
-0xa4102b, 0x10400003, 0x0, 0x8f420148, 
-0x822023, 0x94820000, 0x24840002, 0x2028021, 
-0xa4102b, 0x10400003, 0x0, 0x8f420148, 
-0x822023, 0x94820000, 0x24840002, 0x2028021, 
-0xa4102b, 0x10400003, 0x0, 0x8f420148, 
-0x822023, 0x94820000, 0x24840002, 0x2028021, 
-0xa4102b, 0x10400003, 0x0, 0x8f420148, 
-0x822023, 0x94820000, 0x2028021, 0x3c020100, 
-0x2c21024, 0x1040000e, 0x0, 0x8faa002c, 
-0x31420004, 0x1040000a, 0x0, 0x9504000e, 
-0x2642021, 0xc003eec, 0x2484fffc, 0x3042ffff, 
-0x2228821, 0x111c02, 0x3222ffff, 0x628821, 
-0x8faa0024, 0x1518823, 0x111402, 0x2228821, 
-0x2308821, 0x111402, 0x2228821, 0x3231ffff, 
-0x52200001, 0x3411ffff, 0x8faa002c, 0x354a0001, 
-0xafaa002c, 0xa6b10012, 0x97aa002e, 0xa6aa000e, 
-0x8faa002c, 0x31420004, 0x10400002, 0x24091000, 
-0x34098000, 0x8f480044, 0x8f4401a0, 0x8f4501a4, 
-0xafa90010, 0x8f490044, 0x84140, 0x1001821, 
-0xafa90014, 0x8f48000c, 0x2a03021, 0x24070020, 
-0xafa80018, 0x8f48010c, 0x1021, 0xa32821, 
-0xa3482b, 0x822021, 0x100f809, 0x892021, 
-0x1440000b, 0x0, 0x8f820128, 0x3c040001, 
-0x24846914, 0xafbe0014, 0xafa20010, 0x8f860124, 
-0x8f870120, 0x3c050007, 0xc002b3b, 0x34a59920, 
-0x8f420368, 0x2442ffff, 0xaf420368, 0x8f420044, 
-0x8f430088, 0x24420001, 0x431024, 0xaf420044, 
-0x8faa0034, 0x8f440368, 0x24020001, 0x15420006, 
-0x24020002, 0x8f42035c, 0x2442ffff, 0xaf42035c, 
-0x10000049, 0x8f42035c, 0x15420006, 0x0, 
-0x8f420364, 0x2442ffff, 0xaf420364, 0x10000042, 
-0x8f420364, 0x8f420360, 0x2442ffff, 0xaf420360, 
-0x1000003d, 0x8f420360, 0x30621000, 0x10400005, 
-0x30628000, 0x8f420078, 0x24420001, 0x10000036, 
-0xaf420078, 0x10400034, 0x0, 0x8f420078, 
-0x24420001, 0xaf420078, 0x8c030240, 0x43102b, 
-0x1440002d, 0x24070008, 0x8f440168, 0x8f45016c, 
-0x8f430044, 0x8f48000c, 0x8f860120, 0x24020040, 
-0xafa20010, 0xafa30014, 0xafa80018, 0x8f42010c, 
-0x40f809, 0x24c6001c, 0x14400011, 0x24020001, 
-0x3c010001, 0x370821, 0xa02240f2, 0x8f820124, 
-0xafa20010, 0x8f820128, 0x3c040001, 0x2484688c, 
-0xafa20014, 0x8f460044, 0x8f870120, 0x3c050009, 
-0xc002b3b, 0x34a51300, 0x1000000b, 0x0, 
-0x8f420304, 0x24420001, 0xaf420304, 0x8f420304, 
-0x8f420044, 0xaf42007c, 0x3c010001, 0x370821, 
-0xa02040f2, 0xaf400078, 0x8f420318, 0x24420001, 
-0xaf420318, 0x8f420318, 0x8fbf0060, 0x8fbe005c, 
-0x8fb50058, 0x8fb30054, 0x8fb20050, 0x8fb1004c, 
-0x8fb00048, 0x3e00008, 0x27bd0068, 0x3e00008, 
-0x0, 0x0, 0x0, 0x8f42013c, 
-0xaf8200c0, 0x8f42013c, 0xaf8200c4, 0x8f42013c, 
-0xaf8200c8, 0x8f420138, 0xaf8200d0, 0x8f420138, 
-0xaf8200d4, 0x8f420138, 0x3e00008, 0xaf8200d8, 
-0x27bdffe0, 0x27840208, 0x24050200, 0xafbf0018, 
-0xc002bbf, 0x24060008, 0x8c020204, 0xc004012, 
-0xaf820210, 0x3c020001, 0x8c426d94, 0x30420002, 
-0x1040000e, 0x2021, 0x8c060248, 0x24020002, 
-0x3c010001, 0xac226d98, 0xc005104, 0x24050002, 
-0x2021, 0x8c060248, 0x24020001, 0x3c010001, 
-0xac226d98, 0x10000011, 0x24050001, 0x8c060248, 
-0x24020004, 0x3c010001, 0xac226d98, 0xc005104, 
-0x24050004, 0x3c020001, 0x8c426d94, 0x30420001, 
-0x10400008, 0x24020001, 0x3c010001, 0xac226d98, 
-0x2021, 0x24050001, 0x3c06601b, 0xc005104, 
-0x0, 0x3c040001, 0x248469d0, 0x8f420150, 
-0x8f430154, 0x3c050008, 0x8f460158, 0x21640, 
-0x31940, 0x34630403, 0x431025, 0x633c0, 
-0x461025, 0xaf82021c, 0xafa00010, 0xafa00014, 
-0x8f86021c, 0x34a50200, 0xc002b3b, 0x3821, 
-0x3c010001, 0xac206d90, 0x3c010001, 0xac206da8, 
-0x8fbf0018, 0x3e00008, 0x27bd0020, 0x27bdffe0, 
-0x3c050008, 0x34a50300, 0xafbf0018, 0xafa00010, 
-0xafa00014, 0x8f860200, 0x3c040001, 0x248469dc, 
-0xc002b3b, 0x3821, 0x8f420410, 0x24420001, 
-0xaf420410, 0x8f420410, 0x8fbf0018, 0x3e00008, 
-0x27bd0020, 0x27bdffd8, 0xafbf0020, 0xafb1001c, 
-0xafb00018, 0x8f4203a4, 0x24420001, 0xaf4203a4, 
-0x8f4203a4, 0x8f900220, 0x8f8200e0, 0xafa20010, 
-0x8f8200e4, 0xafa20014, 0x8f8600c4, 0x8f8700c8, 
-0x3c040001, 0x248469e8, 0xc002b3b, 0x2002821, 
-0x3c044000, 0x2041024, 0x504000b4, 0x3c040100, 
-0x8f4203bc, 0x24420001, 0xaf4203bc, 0x8f4203bc, 
-0x8f8700c4, 0x8f8300c8, 0x8f420148, 0x671823, 
-0x43102b, 0x10400003, 0x0, 0x8f420148, 
-0x621821, 0x10600005, 0x0, 0x8f42014c, 
-0x43102b, 0x1040000b, 0x0, 0x8f8200e0, 
-0x8f430124, 0xaf42011c, 0xaf430114, 0x8f820220, 
-0x3c0308ff, 0x3463fffb, 0x431024, 0x100000ce, 
-0x441025, 0x8f820220, 0x3c0308ff, 0x3463ffff, 
-0x431024, 0x34420004, 0xaf820220, 0x8f8200e0, 
-0x8f430124, 0xaf42011c, 0xaf430114, 0x8f8600c8, 
-0x8f840120, 0x8f830124, 0x10000005, 0x2821, 
-0x14620002, 0x24620020, 0x27624800, 0x401821, 
-0x1064000c, 0x30a200ff, 0x8c620018, 0x30420003, 
-0x1040fff7, 0x27624fe0, 0x8f4203d0, 0x24050001, 
-0x24420001, 0xaf4203d0, 0x8f4203d0, 0x8c660008, 
-0x30a200ff, 0x14400058, 0x0, 0x934205c4, 
-0x14400055, 0x0, 0x8f8700c4, 0x8f8800e0, 
-0x8f8400e4, 0x2402fff8, 0x1024024, 0x1041023, 
-0x218c3, 0x4620001, 0x24630200, 0x10600005, 
-0x24020001, 0x10620009, 0x0, 0x1000001f, 
-0x0, 0x8f4203c0, 0xe03021, 0x24420001, 
-0xaf4203c0, 0x10000040, 0x8f4203c0, 0x8f4203c4, 
-0x24420001, 0xaf4203c4, 0x8c860000, 0x8f420148, 
-0x8f4303c4, 0xe61823, 0x43102b, 0x10400004, 
-0x2c62233f, 0x8f420148, 0x621821, 0x2c62233f, 
-0x14400031, 0x0, 0x8f42020c, 0x24420001, 
-0xaf42020c, 0x8f42020c, 0xe03021, 0x24820008, 
-0xaf8200e4, 0x10000028, 0xaf8200e8, 0x8f4203c8, 
-0x24420001, 0xaf4203c8, 0x8f4203c8, 0x8c850000, 
-0x8f420148, 0xa71823, 0x43102b, 0x10400003, 
-0x0, 0x8f420148, 0x621821, 0x8f42014c, 
-0x43102b, 0x5440000a, 0xa03021, 0x8f42020c, 
-0x24420001, 0xaf42020c, 0x8f42020c, 0x24820008, 
-0xaf8200e4, 0x8f8400e4, 0x1488ffec, 0xaf8400e8, 
-0x1488000d, 0x27623000, 0x14820002, 0x2482fff8, 
-0x27623ff8, 0x94430006, 0x3c02001f, 0x3442ffff, 
-0xc33021, 0x46102b, 0x10400003, 0x0, 
-0x8f420148, 0xc23023, 0xaf8600c8, 0x8f8300c4, 
-0x8f420148, 0xc31823, 0x43102b, 0x10400003, 
-0x0, 0x8f420148, 0x621821, 0x10600005, 
-0x0, 0x8f42014c, 0x43102b, 0x50400008, 
-0x3c02fdff, 0x8f820220, 0x3c0308ff, 0x3463fffb, 
-0x431024, 0x3c034000, 0x1000003f, 0x431025, 
-0x8f4303cc, 0x3442ffff, 0x282a024, 0x24630001, 
-0xaf4303cc, 0x10000039, 0x8f4203cc, 0x2041024, 
-0x1040000e, 0x3c110200, 0x8f4203a8, 0x24420001, 
-0xaf4203a8, 0x8f4203a8, 0x8f820220, 0x3c0308ff, 
-0x3463ffff, 0x431024, 0x441025, 0xc003daf, 
-0xaf820220, 0x10000029, 0x0, 0x2111024, 
-0x50400008, 0x3c110400, 0x8f4203ac, 0x24420001, 
-0xaf4203ac, 0xc003daf, 0x8f4203ac, 0x10000019, 
-0x0, 0x2111024, 0x1040001c, 0x0, 
-0x8f830224, 0x24021402, 0x14620009, 0x3c050008, 
-0x3c040001, 0x248469f4, 0xafa00010, 0xafa00014, 
-0x8f860224, 0x34a50500, 0xc002b3b, 0x3821, 
-0x8f4203b0, 0x24420001, 0xaf4203b0, 0x8f4203b0, 
-0x8f820220, 0x2002021, 0x34420002, 0xc004e9c, 
-0xaf820220, 0x8f820220, 0x3c0308ff, 0x3463ffff, 
-0x431024, 0x511025, 0xaf820220, 0x8fbf0020, 
-0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0028, 
-0x3e00008, 0x0, 0x3c020001, 0x8c426da8, 
-0x27bdffb0, 0xafbf0048, 0xafbe0044, 0xafb50040, 
-0xafb3003c, 0xafb20038, 0xafb10034, 0x1040000f, 
-0xafb00030, 0x3c040001, 0x24846a00, 0x3c050008, 
-0xafa00010, 0xafa00014, 0x8f860220, 0x34a50600, 
-0x24020001, 0x3c010001, 0xac206da8, 0x3c010001, 
-0xac226d9c, 0xc002b3b, 0x3821, 0x3c037fff, 
-0x8c020268, 0x3463ffff, 0x3c04fdff, 0x431024, 
-0xac020268, 0x8f420004, 0x3484ffff, 0x30420002, 
-0x10400092, 0x284a024, 0x3c040600, 0x34842000, 
-0x8f420004, 0x2821, 0x2403fffd, 0x431024, 
-0xaf420004, 0xafa40020, 0x8f5e0018, 0x27aa0020, 
-0x240200ff, 0x13c20002, 0xafaa002c, 0x27c50001, 
-0x8c020228, 0xa09021, 0x1642000e, 0x1e38c0, 
-0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c, 
-0x8c020228, 0x3c040001, 0x24846998, 0x3c050009, 
-0xafa00014, 0xafa20010, 0x8fa60020, 0x1000006d, 
-0x34a50500, 0xf71021, 0x8fa30020, 0x8fa40024, 
-0xac4304c0, 0xac4404c4, 0x8f830054, 0x8f820054, 
-0x247003e8, 0x2021023, 0x2c4203e9, 0x1040001b, 
-0x9821, 0xe08821, 0x263504c0, 0x8f440178, 
-0x8f45017c, 0x2201821, 0x240a0004, 0xafaa0010, 
-0xafb20014, 0x8f48000c, 0x1021, 0x2f53021, 
-0xafa80018, 0x8f48010c, 0x24070008, 0xa32821, 
-0xa3482b, 0x822021, 0x100f809, 0x892021, 
-0x54400006, 0x24130001, 0x8f820054, 0x2021023, 
-0x2c4203e9, 0x1440ffe9, 0x0, 0x326200ff, 
-0x54400017, 0xaf520018, 0x8f420378, 0x24420001, 
-0xaf420378, 0x8f420378, 0x8f820120, 0x8faa002c, 
-0xafa20010, 0x8f820124, 0x3c040001, 0x248469a4, 
-0x3c050009, 0xafa20014, 0x8d460000, 0x10000035, 
-0x34a50600, 0x8f420308, 0x24130001, 0x24420001, 
-0xaf420308, 0x8f420308, 0x1000001e, 0x326200ff, 
-0x8f830054, 0x8f820054, 0x247003e8, 0x2021023, 
-0x2c4203e9, 0x10400016, 0x9821, 0x3c150020, 
-0x24110010, 0x8f42000c, 0x8f440160, 0x8f450164, 
-0x8f860120, 0xafb10010, 0xafb20014, 0x551025, 
-0xafa20018, 0x8f42010c, 0x24070008, 0x40f809, 
-0x24c6001c, 0x1440ffe3, 0x0, 0x8f820054, 
-0x2021023, 0x2c4203e9, 0x1440ffee, 0x0, 
-0x326200ff, 0x14400011, 0x0, 0x8f420378, 
-0x24420001, 0xaf420378, 0x8f420378, 0x8f820120, 
-0x8faa002c, 0xafa20010, 0x8f820124, 0x3c040001, 
-0x248469ac, 0x3c050009, 0xafa20014, 0x8d460000, 
-0x34a50700, 0xc002b3b, 0x3c03821, 0x8f4202ec, 
-0x24420001, 0xaf4202ec, 0x8f4202ec, 0x8fbf0048, 
-0x8fbe0044, 0x8fb50040, 0x8fb3003c, 0x8fb20038, 
-0x8fb10034, 0x8fb00030, 0x3e00008, 0x27bd0050, 
-0x3c020001, 0x8c426da8, 0x27bdffe0, 0x1440000d, 
-0xafbf0018, 0x3c040001, 0x24846a0c, 0x3c050008, 
-0xafa00010, 0xafa00014, 0x8f860220, 0x34a50700, 
-0x24020001, 0x3c010001, 0xac226da8, 0xc002b3b, 
-0x3821, 0x3c020004, 0x2c21024, 0x10400007, 
-0x0, 0x8f820220, 0x3c0308ff, 0x3463ffff, 
-0x431024, 0x34420008, 0xaf820220, 0x3c050001, 
-0x8ca56d98, 0x24020001, 0x14a20007, 0x2021, 
-0xc00529b, 0x24050001, 0xac02026c, 0x8c03026c, 
-0x10000006, 0x3c020007, 0xc00529b, 0x2021, 
-0xac020268, 0x8c030268, 0x3c020007, 0x621824, 
-0x3c020002, 0x5062000d, 0x3c0205f5, 0x43102b, 
-0x14400006, 0x3c020004, 0x3c020001, 0x10620009, 
-0x3c020098, 0x1000000b, 0x0, 0x14620009, 
-0x3c023b9a, 0x10000004, 0x3442ca00, 0x10000002, 
-0x3442e100, 0x34429680, 0xaf4201fc, 0x8f4201fc, 
-0xaee20064, 0x8fbf0018, 0x3e00008, 0x27bd0020, 
-0x0, 0x0, 0x0, 0x86102b, 
-0x50400001, 0x872023, 0xc41023, 0x24843, 
-0x125102b, 0x1040001b, 0x91040, 0x824021, 
-0x88102b, 0x10400007, 0x1821, 0x94820000, 
-0x24840002, 0x621821, 0x88102b, 0x1440fffb, 
-0x0, 0x602021, 0xc73023, 0xa91023, 
-0x21040, 0xc22821, 0xc5102b, 0x10400007, 
-0x1821, 0x94c20000, 0x24c60002, 0x621821, 
-0xc5102b, 0x1440fffb, 0x0, 0x1000000d, 
-0x832021, 0x51040, 0x822821, 0x85102b, 
-0x10400007, 0x1821, 0x94820000, 0x24840002, 
-0x621821, 0x85102b, 0x1440fffb, 0x0, 
-0x602021, 0x41c02, 0x3082ffff, 0x622021, 
-0x41c02, 0x3082ffff, 0x622021, 0x3e00008, 
-0x3082ffff, 0x3e00008, 0x0, 0x802821, 
-0x30a20001, 0x1040002b, 0x3c03001f, 0x3463ffff, 
-0x24a20004, 0x62102b, 0x54400007, 0x65102b, 
-0x90a20001, 0x90a40003, 0x90a30000, 0x90a50002, 
-0x1000002a, 0x441021, 0x10400003, 0x0, 
-0x8f420148, 0xa22823, 0x90a40000, 0x24a50001, 
-0x65102b, 0x10400003, 0x0, 0x8f420148, 
-0xa22823, 0x90a20000, 0x24a50001, 0x21200, 
-0x822021, 0x65102b, 0x10400003, 0x0, 
-0x8f420148, 0xa22823, 0x90a20000, 0x24a50001, 
-0x822021, 0x65102b, 0x10400003, 0x0, 
-0x8f420148, 0xa22823, 0x90a20000, 0x1000002d, 
-0x21200, 0x3463ffff, 0x24a20004, 0x62102b, 
-0x5440000a, 0x65102b, 0x90a20000, 0x90a40002, 
-0x90a30001, 0x90a50003, 0x441021, 0x21200, 
-0x651821, 0x10000020, 0x432021, 0x10400003, 
-0x0, 0x8f420148, 0xa22823, 0x90a20000, 
-0x24a50001, 0x22200, 0x65102b, 0x10400003, 
-0x0, 0x8f420148, 0xa22823, 0x90a20000, 
-0x24a50001, 0x822021, 0x65102b, 0x10400003, 
-0x0, 0x8f420148, 0xa22823, 0x90a20000, 
-0x24a50001, 0x21200, 0x822021, 0x65102b, 
-0x10400003, 0x0, 0x8f420148, 0xa22823, 
-0x90a20000, 0x822021, 0x41c02, 0x3082ffff, 
-0x622021, 0x41c02, 0x3082ffff, 0x622021, 
-0x3e00008, 0x3082ffff, 0x0, 0x8f820220, 
-0x34420002, 0xaf820220, 0x3c020002, 0x8c428ff8, 
-0x30424000, 0x10400054, 0x24040001, 0x8f820200, 
-0x24067fff, 0x8f830200, 0x30450002, 0x2402fffd, 
-0x621824, 0xaf830200, 0xaf840204, 0x8f830054, 
-0x8f820054, 0x10000002, 0x24630001, 0x8f820054, 
-0x621023, 0x2c420002, 0x1440fffc, 0x0, 
-0x8f820224, 0x1444004d, 0x42040, 0xc4102b, 
-0x1040fff1, 0x0, 0x8f820200, 0x451025, 
-0xaf820200, 0x8f820220, 0x34428000, 0xaf820220, 
-0x8f830054, 0x8f820054, 0x10000002, 0x24630001, 
-0x8f820054, 0x621023, 0x2c420002, 0x1440fffc, 
-0x0, 0x8f820220, 0x3c030004, 0x431024, 
-0x1440000f, 0x0, 0x8f820220, 0x3c03ffff, 
-0x34637fff, 0x431024, 0xaf820220, 0x8f830054, 
-0x8f820054, 0x10000002, 0x24630001, 0x8f820054, 
-0x621023, 0x2c420002, 0x1440fffc, 0x0, 
-0x8f820220, 0x3c030004, 0x431024, 0x1440000d, 
-0x0, 0x8f820220, 0x34428000, 0xaf820220, 
-0x8f830054, 0x8f820054, 0x10000002, 0x24630001, 
-0x8f820054, 0x621023, 0x2c420002, 0x1440fffc, 
-0x0, 0x8f820220, 0x3c030004, 0x431024, 
-0x1040001b, 0x1021, 0x8f830220, 0x24020001, 
-0x10000015, 0x3c04f700, 0x8f820220, 0x3c04f700, 
-0x441025, 0xaf820220, 0x8f820220, 0x2403fffd, 
-0x431024, 0xaf820220, 0x8f820220, 0x3c030300, 
-0x431024, 0x14400003, 0x0, 0x10000008, 
-0x1021, 0x8f820220, 0x34420002, 0xaf820220, 
-0x8f830220, 0x24020001, 0x641825, 0xaf830220, 
-0x3e00008, 0x0, 0x2021, 0x3c050100, 
-0x24020001, 0xaf80021c, 0xaf820200, 0xaf820220, 
-0x27625000, 0xaf8200c0, 0x27625000, 0xaf8200c4, 
-0x27625000, 0xaf8200c8, 0x27625000, 0xaf8200d0, 
-0x27625000, 0xaf8200d4, 0x27625000, 0xaf8200d8, 
-0x27623000, 0xaf8200e0, 0x27623000, 0xaf8200e4, 
-0x27623000, 0xaf8200e8, 0x27622800, 0xaf8200f0, 
-0x27622800, 0xaf8200f4, 0x27622800, 0xaf8200f8, 
-0x418c0, 0x24840001, 0x3631021, 0xac453004, 
-0x3631021, 0xac403000, 0x28820200, 0x1440fff9, 
-0x418c0, 0x2021, 0x418c0, 0x24840001, 
-0x3631021, 0xac402804, 0x3631021, 0xac402800, 
-0x28820100, 0x1440fff9, 0x418c0, 0xaf80023c, 
-0x24030080, 0x24040100, 0xac600000, 0x24630004, 
-0x64102b, 0x5440fffd, 0xac600000, 0x8f830040, 
-0x3c02f000, 0x621824, 0x3c025000, 0x1062000c, 
-0x43102b, 0x14400006, 0x3c026000, 0x3c024000, 
-0x10620008, 0x24020800, 0x10000008, 0x0, 
-0x10620004, 0x24020800, 0x10000004, 0x0, 
-0x24020700, 0x3c010001, 0xac226dac, 0x3e00008, 
-0x0, 0x3c020001, 0x8c426dbc, 0x27bdffd0, 
-0xafbf002c, 0xafb20028, 0xafb10024, 0xafb00020, 
-0x3c010001, 0x10400005, 0xac206d94, 0xc004d9e, 
-0x0, 0x3c010001, 0xac206dbc, 0x8f830054, 
-0x8f820054, 0x10000002, 0x24630064, 0x8f820054, 
-0x621023, 0x2c420065, 0x1440fffc, 0x0, 
-0xc004db9, 0x0, 0x24040001, 0x2821, 
-0x27a60018, 0x34028000, 0xc0045be, 0xa7a20018, 
-0x8f830054, 0x8f820054, 0x10000002, 0x24630064, 
-0x8f820054, 0x621023, 0x2c420065, 0x1440fffc, 
-0x24040001, 0x24050001, 0xc00457c, 0x27a60018, 
-0x8f830054, 0x8f820054, 0x10000002, 0x24630064, 
-0x8f820054, 0x621023, 0x2c420065, 0x1440fffc, 
-0x24040001, 0x24050001, 0xc00457c, 0x27a60018, 
-0x8f830054, 0x8f820054, 0x10000002, 0x24630064, 
-0x8f820054, 0x621023, 0x2c420065, 0x1440fffc, 
-0x24040001, 0x3c060001, 0x24c66f24, 0xc00457c, 
-0x24050002, 0x8f830054, 0x8f820054, 0x10000002, 
-0x24630064, 0x8f820054, 0x621023, 0x2c420065, 
-0x1440fffc, 0x24040001, 0x24050003, 0x3c100001, 
-0x26106f26, 0xc00457c, 0x2003021, 0x97a60018, 
-0x3c070001, 0x94e76f24, 0x3c040001, 0x24846ae0, 
-0xafa00014, 0x96020000, 0x3c05000d, 0x34a50100, 
-0xc002b3b, 0xafa20010, 0x97a20018, 0x1040004d, 
-0x24036040, 0x96020000, 0x3042fff0, 0x1443000c, 
-0x24020020, 0x3c030001, 0x94636f24, 0x1462000b, 
-0x24027830, 0x24020003, 0x3c010001, 0xac226d94, 
-0x24020005, 0x3c010001, 0x1000003f, 0xac226f34, 
-0x3c030001, 0x94636f24, 0x24027830, 0x1462000c, 
-0x24030010, 0x3c020001, 0x94426f26, 0x3042fff0, 
-0x14430007, 0x24020003, 0x3c010001, 0xac226d94, 
-0x24020006, 0x3c010001, 0x1000002f, 0xac226f34, 
-0x3c020001, 0x8c426d94, 0x3c030001, 0x94636f24, 
-0x34420001, 0x3c010001, 0xac226d94, 0x24020015, 
-0x1462000b, 0x0, 0x3c020001, 0x94426f26, 
-0x3042fff0, 0x3843f420, 0x2c630001, 0x3842f430, 
-0x2c420001, 0x621825, 0x1460001b, 0x24020003, 
-0x3c030001, 0x94636f24, 0x24027810, 0x14620016, 
-0x24020002, 0x3c020001, 0x94426f26, 0x3042fff0, 
-0x14400011, 0x24020002, 0x1000000f, 0x24020004, 
-0x3c020001, 0x8c426d94, 0x34420008, 0x3c010001, 
-0xac226d94, 0x1000005e, 0x24020004, 0x3c020001, 
-0x8c426d94, 0x34420004, 0x3c010001, 0x100000af, 
-0xac226d94, 0x24020001, 0x3c010001, 0xac226f40, 
-0x3c020001, 0x8c426d94, 0x30420002, 0x144000b2, 
-0x3c09fff0, 0x24020e00, 0xaf820238, 0x8f840054, 
-0x8f820054, 0x24030008, 0x3c010001, 0xac236d98, 
-0x10000002, 0x248401f4, 0x8f820054, 0x821023, 
-0x2c4201f5, 0x1440fffc, 0x3c0200c8, 0x344201fb, 
-0xaf820238, 0x8f830054, 0x8f820054, 0x10000002, 
-0x246301f4, 0x8f820054, 0x621023, 0x2c4201f5, 
-0x1440fffc, 0x8021, 0x24120001, 0x24110009, 
-0xc004482, 0x0, 0x3c010001, 0xac326db4, 
-0xc004547, 0x0, 0x3c020001, 0x8c426db4, 
-0x1451fffb, 0x3c0200c8, 0x344201f6, 0xaf820238, 
-0x8f830054, 0x8f820054, 0x10000002, 0x2463000a, 
-0x8f820054, 0x621023, 0x2c42000b, 0x1440fffc, 
-0x0, 0x8f820220, 0x24040001, 0x34420002, 
-0xaf820220, 0x8f830200, 0x24057fff, 0x2402fffd, 
-0x621824, 0xaf830200, 0xaf840204, 0x8f830054, 
-0x8f820054, 0x10000002, 0x24630001, 0x8f820054, 
-0x621023, 0x2c420002, 0x1440fffc, 0x0, 
-0x8f820224, 0x14440005, 0x34028000, 0x42040, 
-0xa4102b, 0x1040fff0, 0x34028000, 0x1082ffa0, 
-0x26100001, 0x2e020014, 0x1440ffcd, 0x24020004, 
-0x3c010001, 0xac226d98, 0x8021, 0x24120009, 
-0x3c11ffff, 0x36313f7f, 0xc004482, 0x0, 
-0x24020001, 0x3c010001, 0xac226db4, 0xc004547, 
-0x0, 0x3c020001, 0x8c426db4, 0x1452fffb, 
-0x0, 0x8f820044, 0x511024, 0x34425080, 
-0xaf820044, 0x8f830054, 0x8f820054, 0x10000002, 
-0x2463000a, 0x8f820054, 0x621023, 0x2c42000b, 
-0x1440fffc, 0x0, 0x8f820044, 0x511024, 
-0x3442f080, 0xaf820044, 0x8f830054, 0x8f820054, 
-0x10000002, 0x2463000a, 0x8f820054, 0x621023, 
-0x2c42000b, 0x1440fffc, 0x0, 0x8f820220, 
-0x3c03f700, 0x431025, 0xaf820220, 0x8f830054, 
-0x8f820054, 0x10000002, 0x24630064, 0x8f820054, 
-0x621023, 0x2c420065, 0x1440fffc, 0x0, 
-0x8f820220, 0x24040001, 0x34420002, 0xaf820220, 
-0x8f830200, 0x24057fff, 0x2402fffd, 0x621824, 
-0xaf830200, 0xaf840204, 0x8f830054, 0x8f820054, 
-0x10000002, 0x24630001, 0x8f820054, 0x621023, 
-0x2c420002, 0x1440fffc, 0x0, 0x8f820224, 
-0x14440005, 0x34028000, 0x42040, 0xa4102b, 
-0x1040fff0, 0x34028000, 0x1082ff50, 0x26100001, 
-0x2e020064, 0x1440ffb0, 0x0, 0x3c020001, 
-0x8c426d94, 0x30420004, 0x14400007, 0x3c09fff0, 
-0x8f820044, 0x3c03ffff, 0x34633f7f, 0x431024, 
-0xaf820044, 0x3c09fff0, 0x3529bdc0, 0x3c060001, 
-0x8cc66d94, 0x3c040001, 0x24846ae0, 0x24020001, 
-0x3c010001, 0xac226d9c, 0x8f820054, 0x3c070001, 
-0x8ce76f40, 0x3c030001, 0x94636f24, 0x3c080001, 
-0x95086f26, 0x3c05000d, 0x34a50100, 0x3c010001, 
-0xac206d98, 0x491021, 0x3c010001, 0xac226f30, 
-0xafa30010, 0xc002b3b, 0xafa80014, 0x8fbf002c, 
-0x8fb20028, 0x8fb10024, 0x8fb00020, 0x3e00008, 
-0x27bd0030, 0x27bdffe8, 0x3c050001, 0x8ca56d98, 
-0x24060004, 0x24020001, 0x14a20014, 0xafbf0010, 
-0x3c020002, 0x8c428ffc, 0x30428000, 0x10400005, 
-0x3c04000f, 0x3c030001, 0x8c636f40, 0x10000005, 
-0x34844240, 0x3c040004, 0x3c030001, 0x8c636f40, 
-0x348493e0, 0x24020005, 0x14620016, 0x0, 
-0x3c04003d, 0x10000013, 0x34840900, 0x3c020002, 
-0x8c428ff8, 0x30428000, 0x10400005, 0x3c04001e, 
-0x3c030001, 0x8c636f40, 0x10000005, 0x34848480, 
-0x3c04000f, 0x3c030001, 0x8c636f40, 0x34844240, 
-0x24020005, 0x14620003, 0x0, 0x3c04007a, 
-0x34841200, 0x3c020001, 0x8c426f30, 0x8f830054, 
-0x441021, 0x431023, 0x44102b, 0x1440004c, 
-0x0, 0x3c020001, 0x8c426da0, 0x14400048, 
-0x0, 0x3c010001, 0x10c00025, 0xac206db0, 
-0x3c090001, 0x8d296d94, 0x24070001, 0x3c044000, 
-0x3c080002, 0x25088ffc, 0x250afffc, 0x52842, 
-0x14a00002, 0x24c6ffff, 0x24050008, 0xa91024, 
-0x10400010, 0x0, 0x14a70008, 0x0, 
-0x8d020000, 0x441024, 0x1040000a, 0x0, 
-0x3c010001, 0x10000007, 0xac256db0, 0x8d420000, 
-0x441024, 0x10400003, 0x0, 0x3c010001, 
-0xac276db0, 0x3c020001, 0x8c426db0, 0x6182b, 
-0x2c420001, 0x431024, 0x5440ffe5, 0x52842, 
-0x8f820054, 0x3c030001, 0x8c636db0, 0x3c010001, 
-0xac226f30, 0x1060003b, 0x24020005, 0x3c030001, 
-0x8c636f40, 0x3c010001, 0xac256d98, 0x14620012, 
-0x24020001, 0x3c020002, 0x8c428ff8, 0x3c032000, 
-0x34635000, 0x431024, 0x14400006, 0x24020001, 
-0x3c010001, 0xac206f1c, 0x3c010001, 0xac226d98, 
-0x24020001, 0x3c010001, 0xac226e24, 0x3c010001, 
-0xac226da4, 0x24020001, 0x3c010001, 0xac226d9c, 
-0x3c020001, 0x8c426db0, 0x1040001e, 0x0, 
-0x3c020001, 0x8c426d9c, 0x10400008, 0x24020001, 
-0x3c010001, 0xac206d9c, 0xaee204b8, 0x3c010001, 
-0xac206e1c, 0x3c010001, 0xac226dd4, 0x8ee304b8, 
-0x24020008, 0x10620005, 0x24020001, 0xc004239, 
-0x0, 0x1000000b, 0x0, 0x3c030001, 
-0x8c636d98, 0x10620007, 0x2402000e, 0x3c030002, 
-0x8c638f90, 0x10620003, 0x0, 0xc004e9c, 
-0x8f840220, 0x8fbf0010, 0x3e00008, 0x27bd0018, 
-0x27bdffe0, 0x3c03fdff, 0x3c040001, 0x8c846d98, 
-0x3c020001, 0x8c426dc0, 0x3463ffff, 0x283a024, 
-0x14820006, 0xafbf0018, 0x8ee304b8, 0x3c020001, 
-0x8c426dc4, 0x10620006, 0x0, 0x8ee204b8, 
-0x3c010001, 0xac246dc0, 0x3c010001, 0xac226dc4, 
-0x3c030001, 0x8c636d98, 0x24020002, 0x1062019c, 
-0x2c620003, 0x10400005, 0x24020001, 0x1062000a, 
-0x0, 0x10000226, 0x0, 0x24020004, 
-0x106200b6, 0x24020008, 0x1062010a, 0x24020001, 
-0x1000021f, 0x0, 0x8ee204b8, 0x2443ffff, 
-0x2c620008, 0x1040021c, 0x31080, 0x3c010001, 
-0x220821, 0x8c226af8, 0x400008, 0x0, 
-0x3c030001, 0x8c636f40, 0x24020005, 0x14620010, 
-0x0, 0x3c020001, 0x8c426da4, 0x10400008, 
-0x24020003, 0xc004482, 0x0, 0x24020002, 
-0xaee204b8, 0x3c010001, 0x10000002, 0xac206da4, 
-0xaee204b8, 0x3c010001, 0x10000203, 0xac206d30, 
-0xc004482, 0x0, 0x3c020001, 0x8c426da4, 
-0x3c010001, 0xac206d30, 0x1440017a, 0x24020002, 
-0x1000019d, 0x24020007, 0x3c030001, 0x8c636f40, 
-0x24020005, 0x14620003, 0x24020001, 0x3c010001, 
-0xac226dd0, 0xc0045ff, 0x0, 0x3c030001, 
-0x8c636dd0, 0x10000174, 0x24020011, 0x3c050001, 
-0x8ca56d98, 0x3c060002, 0x8cc68ffc, 0xc005104, 
-0x2021, 0x24020005, 0x3c010001, 0xac206da4, 
-0x100001e1, 0xaee204b8, 0x3c040001, 0x24846aec, 
-0x3c05000f, 0x34a50100, 0x3021, 0x3821, 
-0xafa00010, 0xc002b3b, 0xafa00014, 0x100001d6, 
-0x0, 0x8f820220, 0x3c030004, 0x431024, 
-0x14400175, 0x24020007, 0x8f830054, 0x3c020001, 
-0x8c426f28, 0x2463d8f0, 0x431023, 0x2c422710, 
-0x14400003, 0x24020001, 0x3c010001, 0xac226d9c, 
-0x3c020002, 0x8c428ffc, 0x30425000, 0x104001c2, 
-0x0, 0x8f820220, 0x30428000, 0x1040017d, 
-0x0, 0x10000175, 0x0, 0x3c050001, 
-0x8ca56d98, 0xc00529b, 0x2021, 0xc00551b, 
-0x2021, 0x3c030002, 0x8c638ff4, 0x46101b0, 
-0x24020001, 0x3c020008, 0x621024, 0x10400006, 
-0x0, 0x8f820214, 0x3c03ffff, 0x431024, 
-0x10000005, 0x3442251f, 0x8f820214, 0x3c03ffff, 
-0x431024, 0x3442241f, 0xaf820214, 0x8f820220, 
-0x3c030200, 0x34420002, 0xaf820220, 0x24020008, 
-0xaee204b8, 0x8f820220, 0x283a025, 0x3c030004, 
-0x431024, 0x14400016, 0x0, 0x3c020002, 
-0x8c428ffc, 0x30425000, 0x1040000d, 0x0, 
-0x8f820220, 0x30428000, 0x10400006, 0x0, 
-0x8f820220, 0x3c03ffff, 0x34637fff, 0x10000003, 
-0x431024, 0x8f820220, 0x34428000, 0xaf820220, 
-0x8f820220, 0x3c03f700, 0x431025, 0xaf820220, 
-0x3c030001, 0x8c636f40, 0x24020005, 0x1462000a, 
-0x0, 0x3c020001, 0x94426f26, 0x24429fbc, 
-0x2c420004, 0x10400004, 0x24040018, 0x24050002, 
-0xc004ddb, 0x24060020, 0xc003e6d, 0x0, 
-0x3c010001, 0x10000170, 0xac206e20, 0x8ee204b8, 
-0x2443ffff, 0x2c620008, 0x1040016b, 0x31080, 
-0x3c010001, 0x220821, 0x8c226b18, 0x400008, 
-0x0, 0xc004547, 0x0, 0x3c030001, 
-0x8c636db4, 0x100000e8, 0x24020009, 0x3c020002, 
-0x8c428ff8, 0x30424000, 0x10400004, 0x0, 
-0x8f820044, 0x10000006, 0x3442f080, 0x8f820044, 
-0x3c03ffff, 0x34633f7f, 0x431024, 0x3442a080, 
-0xaf820044, 0x8f830054, 0x100000ea, 0x24020004, 
-0x8f830054, 0x3c020001, 0x8c426f28, 0x2463d8f0, 
-0x431023, 0x2c422710, 0x14400147, 0x24020005, 
-0x100000d8, 0x0, 0x8f820220, 0x3c03f700, 
-0x431025, 0xaf820220, 0xaf800204, 0x3c010002, 
-0x100000d6, 0xac208fe0, 0x8f830054, 0x3c020001, 
-0x8c426f28, 0x2463fff6, 0x431023, 0x2c42000a, 
-0x14400135, 0x24020007, 0x100000d7, 0x0, 
-0xc003f50, 0x0, 0x1040012d, 0x24020001, 
-0x8f820214, 0x3c03ffff, 0x3c040001, 0x8c846f1c, 
-0x431024, 0x3442251f, 0xaf820214, 0x24020008, 
-0x10800005, 0xaee204b8, 0x3c020001, 0x8c426e44, 
-0x10400064, 0x24020001, 0x8f820220, 0x3c030008, 
-0x431024, 0x1040006a, 0x3c020200, 0x10000078, 
-0x0, 0x8ee204b8, 0x2443ffff, 0x2c620007, 
-0x10400115, 0x31080, 0x3c010001, 0x220821, 
-0x8c226b38, 0x400008, 0x0, 0xc003daf, 
-0x0, 0x3c010001, 0xac206d9c, 0xaf800204, 
-0x3c010002, 0xc004482, 0xac208fe0, 0x24020001, 
-0x3c010001, 0xac226db4, 0x24020002, 0x10000102, 
-0xaee204b8, 0xc004547, 0x0, 0x3c030001, 
-0x8c636db4, 0x10000084, 0x24020009, 0x3c020002, 
-0x8c428ff8, 0x30424000, 0x10400003, 0x3c0200c8, 
-0x10000002, 0x344201f6, 0x344201fe, 0xaf820238, 
-0x8f830054, 0x1000008b, 0x24020004, 0x8f830054, 
-0x3c020001, 0x8c426f28, 0x2463d8f0, 0x431023, 
-0x2c422710, 0x144000e8, 0x24020005, 0x10000079, 
-0x0, 0x8f820220, 0x3c03f700, 0x431025, 
-0xaf820220, 0xaf800204, 0x3c010002, 0x10000077, 
-0xac208fe0, 0x8f830054, 0x3c020001, 0x8c426f28, 
-0x2463fff6, 0x431023, 0x2c42000a, 0x144000d6, 
-0x24020007, 0x10000078, 0x0, 0xc003f50, 
-0x0, 0x104000ce, 0x24020001, 0x8f820214, 
-0x3c03ffff, 0x3c040001, 0x8c846f1c, 0x431024, 
-0x3442251f, 0xaf820214, 0x24020008, 0x1080000f, 
-0xaee204b8, 0x3c020001, 0x8c426e44, 0x1440000b, 
-0x0, 0x8f820220, 0x34420002, 0xaf820220, 
-0x24020001, 0x3c010002, 0xac228f90, 0xc004e9c, 
-0x8f840220, 0x10000016, 0x0, 0x8f820220, 
-0x3c030008, 0x431024, 0x14400011, 0x3c020200, 
-0x282a025, 0x2402000e, 0x3c010002, 0xac228f90, 
-0xc00551b, 0x2021, 0x8f820220, 0x34420002, 
-0xc003e6d, 0xaf820220, 0x3c050001, 0x8ca56d98, 
-0xc00529b, 0x2021, 0x100000a3, 0x0, 
-0x3c020001, 0x8c426e44, 0x1040009f, 0x0, 
-0x3c020001, 0x8c426e40, 0x2442ffff, 0x3c010001, 
-0xac226e40, 0x14400098, 0x24020002, 0x3c010001, 
-0xac206e44, 0x3c010001, 0x10000093, 0xac226e40, 
-0x8ee204b8, 0x2443ffff, 0x2c620007, 0x1040008e, 
-0x31080, 0x3c010001, 0x220821, 0x8c226b58, 
-0x400008, 0x0, 0x3c020001, 0x8c426da4, 
-0x10400018, 0x24020005, 0xc004482, 0x0, 
-0x24020002, 0xaee204b8, 0x3c010001, 0x1000007e, 
-0xac206da4, 0xc004963, 0x0, 0x3c030001, 
-0x8c636dd4, 0x24020006, 0x14620077, 0x24020003, 
-0x10000075, 0xaee204b8, 0x3c050001, 0x8ca56d98, 
-0x3c060002, 0x8cc68ff8, 0xc005104, 0x2021, 
-0x24020005, 0x1000006c, 0xaee204b8, 0x8f820220, 
-0x3c03f700, 0x431025, 0xaf820220, 0x8f830054, 
-0x24020006, 0xaee204b8, 0x3c010001, 0x10000062, 
-0xac236f28, 0x8f820220, 0x3c030004, 0x431024, 
-0x10400003, 0x24020007, 0x1000005b, 0xaee204b8, 
-0x8f830054, 0x3c020001, 0x8c426f28, 0x2463d8f0, 
-0x431023, 0x2c422710, 0x14400003, 0x24020001, 
-0x3c010001, 0xac226d9c, 0x3c020002, 0x8c428ff8, 
-0x30425000, 0x1040004c, 0x0, 0x8f820220, 
-0x30428000, 0x10400007, 0x0, 0x8f820220, 
-0x3c03ffff, 0x34637fff, 0x431024, 0x10000042, 
-0xaf820220, 0x8f820220, 0x34428000, 0x1000003e, 
-0xaf820220, 0x3c050001, 0x8ca56d98, 0xc00529b, 
-0x2021, 0xc00551b, 0x2021, 0x3c020002, 
-0x8c428ff0, 0x4410032, 0x24020001, 0x8f820214, 
-0x3c03ffff, 0x431024, 0x3442251f, 0xaf820214, 
-0x24020008, 0xaee204b8, 0x8f820220, 0x34420002, 
-0xaf820220, 0x8f820220, 0x3c030004, 0x431024, 
-0x14400016, 0x0, 0x3c020002, 0x8c428ff8, 
-0x30425000, 0x1040000d, 0x0, 0x8f820220, 
-0x30428000, 0x10400006, 0x0, 0x8f820220, 
-0x3c03ffff, 0x34637fff, 0x10000003, 0x431024, 
-0x8f820220, 0x34428000, 0xaf820220, 0x8f820220, 
-0x3c03f700, 0x431025, 0xaf820220, 0x3c020001, 
-0x94426f26, 0x24429fbc, 0x2c420004, 0x10400004, 
-0x24040018, 0x24050002, 0xc004ddb, 0x24060020, 
-0xc003e6d, 0x0, 0x10000003, 0x0, 
-0x3c010001, 0xac226d9c, 0x8fbf0018, 0x3e00008, 
-0x27bd0020, 0x8f820200, 0x8f820220, 0x8f820220, 
-0x34420004, 0xaf820220, 0x8f820200, 0x3c050001, 
-0x8ca56d98, 0x34420004, 0xaf820200, 0x24020002, 
-0x10a2004b, 0x2ca20003, 0x10400005, 0x24020001, 
-0x10a2000a, 0x0, 0x100000b1, 0x0, 
-0x24020004, 0x10a20072, 0x24020008, 0x10a20085, 
-0x3c02f0ff, 0x100000aa, 0x0, 0x8f830050, 
-0x3c02f0ff, 0x3442ffff, 0x3c040001, 0x8c846f40, 
-0x621824, 0x3c020700, 0x621825, 0x24020e00, 
-0x2484fffb, 0x2c840002, 0xaf830050, 0xaf850200, 
-0xaf850220, 0x14800006, 0xaf820238, 0x8f820044, 
-0x3c03ffff, 0x34633f7f, 0x431024, 0xaf820044, 
-0x3c030001, 0x8c636f40, 0x24020005, 0x14620004, 
-0x0, 0x8f820044, 0x34425000, 0xaf820044, 
-0x3c020001, 0x8c426d88, 0x3c030001, 0x8c636f40, 
-0x34420022, 0x2463fffc, 0x2c630002, 0x1460000c, 
-0xaf820200, 0x3c020001, 0x8c426dac, 0x3c030001, 
-0x8c636d90, 0x3c040001, 0x8c846d8c, 0x34428000, 
-0x621825, 0x641825, 0x1000000a, 0x34620002, 
-0x3c020001, 0x8c426d90, 0x3c030001, 0x8c636dac, 
-0x3c040001, 0x8c846d8c, 0x431025, 0x441025, 
-0x34420002, 0xaf820220, 0x1000002f, 0x24020001, 
-0x24020e01, 0xaf820238, 0x8f830050, 0x3c02f0ff, 
-0x3442ffff, 0x3c040001, 0x8c846f1c, 0x621824, 
-0x3c020d00, 0x621825, 0x24020001, 0xaf830050, 
-0xaf820200, 0xaf820220, 0x10800005, 0x3c033f00, 
-0x3c020001, 0x8c426d80, 0x10000004, 0x34630070, 
-0x3c020001, 0x8c426d80, 0x34630072, 0x431025, 
-0xaf820200, 0x3c030001, 0x8c636d84, 0x3c02f700, 
-0x621825, 0x3c020001, 0x8c426d90, 0x3c040001, 
-0x8c846dac, 0x3c050001, 0x8ca56f40, 0x431025, 
-0x441025, 0xaf820220, 0x24020005, 0x14a20006, 
-0x24020001, 0x8f820044, 0x2403afff, 0x431024, 
-0xaf820044, 0x24020001, 0x1000003d, 0xaf820238, 
-0x8f830050, 0x3c02f0ff, 0x3442ffff, 0x3c040001, 
-0x8c846f1c, 0x621824, 0x3c020a00, 0x621825, 
-0x24020001, 0xaf830050, 0xaf820200, 0x1080001e, 
-0xaf820220, 0x3c020001, 0x8c426e44, 0x1440001a, 
-0x3c033f00, 0x3c020001, 0x8c426d80, 0x1000001a, 
-0x346300e0, 0x8f830050, 0x3c040001, 0x8c846f1c, 
-0x3442ffff, 0x621824, 0x1080000f, 0xaf830050, 
-0x3c020001, 0x8c426e44, 0x1440000b, 0x3c043f00, 
-0x3c030001, 0x8c636d80, 0x348400e0, 0x24020001, 
-0xaf820200, 0xaf820220, 0x641825, 0xaf830200, 
-0x10000008, 0x3c05f700, 0x3c020001, 0x8c426d80, 
-0x3c033f00, 0x346300e2, 0x431025, 0xaf820200, 
-0x3c05f700, 0x34a58000, 0x3c030001, 0x8c636d84, 
-0x3c020001, 0x8c426d90, 0x3c040001, 0x8c846dac, 
-0x651825, 0x431025, 0x441025, 0xaf820220, 
-0x3e00008, 0x0, 0x3c030001, 0x8c636db4, 
-0x3c020001, 0x8c426db8, 0x10620003, 0x24020002, 
-0x3c010001, 0xac236db8, 0x1062001d, 0x2c620003, 
-0x10400025, 0x24020001, 0x14620023, 0x24020004, 
-0x3c030001, 0x8c636d98, 0x10620006, 0x24020008, 
-0x1462000c, 0x3c0200c8, 0x344201fb, 0x10000009, 
-0xaf820238, 0x24020e01, 0xaf820238, 0x8f820044, 
-0x3c03ffff, 0x34633f7f, 0x431024, 0x34420080, 
-0xaf820044, 0x8f830054, 0x24020002, 0x3c010001, 
-0xac226db4, 0x3c010001, 0x1000000b, 0xac236f2c, 
-0x8f830054, 0x3c020001, 0x8c426f2c, 0x2463d8f0, 
-0x431023, 0x2c422710, 0x14400003, 0x24020009, 
-0x3c010001, 0xac226db4, 0x3e00008, 0x0, 
-0x0, 0x0, 0x0, 0x27bdffd8, 
-0xafb20018, 0x809021, 0xafb3001c, 0xa09821, 
-0xafb10014, 0xc08821, 0xafb00010, 0x8021, 
-0xafbf0020, 0xa6200000, 0xc004d78, 0x24040001, 
-0x26100001, 0x2e020020, 0x1440fffb, 0x0, 
-0xc004d78, 0x2021, 0xc004d78, 0x24040001, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x24100010, 0x2501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fffa, 
-0x2501024, 0x24100010, 0x2701024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x2701024, 0xc004db9, 0x34108000, 
-0xc004db9, 0x0, 0xc004d58, 0x0, 
-0x50400005, 0x108042, 0x96220000, 0x501025, 
-0xa6220000, 0x108042, 0x1600fff7, 0x0, 
-0xc004db9, 0x0, 0x8fbf0020, 0x8fb3001c, 
-0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008, 
-0x27bd0028, 0x27bdffd8, 0xafb10014, 0x808821, 
-0xafb20018, 0xa09021, 0xafb3001c, 0xc09821, 
-0xafb00010, 0x8021, 0xafbf0020, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0x24100010, 0x2301024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x2301024, 0x24100010, 0x2501024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x2501024, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x34108000, 
-0x96620000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fff8, 
-0x0, 0xc004db9, 0x0, 0x8fbf0020, 
-0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 
-0x3e00008, 0x27bd0028, 0x3c040001, 0x8c846dd0, 
-0x3c020001, 0x8c426e18, 0x27bdffd8, 0xafbf0020, 
-0xafb1001c, 0x10820003, 0xafb00018, 0x3c010001, 
-0xac246e18, 0x3c030001, 0x8c636f40, 0x24020005, 
-0x14620005, 0x2483ffff, 0xc004963, 0x0, 
-0x1000034c, 0x0, 0x2c620013, 0x10400349, 
-0x31080, 0x3c010001, 0x220821, 0x8c226b80, 
-0x400008, 0x0, 0xc004db9, 0x8021, 
-0x34028000, 0xa7a20010, 0x27b10010, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0xc004d78, 
-0x2021, 0x108042, 0x1600fffc, 0x0, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fff8, 0x0, 0xc004db9, 0x0, 
-0x1000030e, 0x24020002, 0x27b10010, 0xa7a00010, 
-0x8021, 0xc004d78, 0x24040001, 0x26100001, 
-0x2e020020, 0x1440fffb, 0x0, 0xc004d78, 
-0x2021, 0xc004d78, 0x24040001, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x24100010, 
-0x32020001, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020001, 
-0x24100010, 0xc004d78, 0x2021, 0x108042, 
-0x1600fffc, 0x0, 0xc004db9, 0x34108000, 
-0xc004db9, 0x0, 0xc004d58, 0x0, 
-0x50400005, 0x108042, 0x96220000, 0x501025, 
-0xa6220000, 0x108042, 0x1600fff7, 0x0, 
-0xc004db9, 0x0, 0x97a20010, 0x30428000, 
-0x144002dc, 0x24020003, 0x100002d8, 0x0, 
-0x24021200, 0xa7a20010, 0x27b10010, 0x8021, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0xc004d78, 0x2021, 0x108042, 0x1600fffc, 
-0x0, 0xc004d78, 0x24040001, 0xc004d78, 
-0x2021, 0x34108000, 0x96220000, 0x501024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fff8, 0x0, 0xc004db9, 
-0x0, 0x8f830054, 0x10000296, 0x24020004, 
-0x8f830054, 0x3c020001, 0x8c426f3c, 0x2463ff9c, 
-0x431023, 0x2c420064, 0x1440029e, 0x24020002, 
-0x3c030001, 0x8c636f40, 0x10620297, 0x2c620003, 
-0x14400296, 0x24020011, 0x24020003, 0x10620005, 
-0x24020004, 0x10620291, 0x2402000f, 0x1000028f, 
-0x24020011, 0x1000028d, 0x24020005, 0x24020014, 
-0xa7a20010, 0x27b10010, 0x8021, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x32020012, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020012, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x34108000, 
-0x96220000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fff8, 
-0x0, 0xc004db9, 0x0, 0x8f830054, 
-0x10000248, 0x24020006, 0x8f830054, 0x3c020001, 
-0x8c426f3c, 0x2463ff9c, 0x431023, 0x2c420064, 
-0x14400250, 0x24020007, 0x1000024c, 0x0, 
-0x24020006, 0xa7a20010, 0x27b10010, 0x8021, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020013, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020013, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fff8, 0x0, 0xc004db9, 0x0, 
-0x8f830054, 0x10000207, 0x24020008, 0x8f830054, 
-0x3c020001, 0x8c426f3c, 0x2463ff9c, 0x431023, 
-0x2c420064, 0x1440020f, 0x24020009, 0x1000020b, 
-0x0, 0x27b10010, 0xa7a00010, 0x8021, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x24040001, 
-0xc004d78, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004db9, 0x34108000, 0xc004db9, 0x0, 
-0xc004d58, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004db9, 0x8021, 
-0x97a20010, 0x27b10010, 0x34420001, 0xa7a20010, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fff8, 0x0, 0xc004db9, 0x0, 
-0x8f830054, 0x10000193, 0x2402000a, 0x8f830054, 
-0x3c020001, 0x8c426f3c, 0x2463ff9c, 0x431023, 
-0x2c420064, 0x1440019b, 0x2402000b, 0x10000197, 
-0x0, 0x27b10010, 0xa7a00010, 0x8021, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x24040001, 
-0xc004d78, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020017, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020017, 
-0xc004db9, 0x34108000, 0xc004db9, 0x0, 
-0xc004d58, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004db9, 0x8021, 
-0x97a20010, 0x27b10010, 0x34420700, 0xa7a20010, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020017, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020017, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fff8, 0x0, 0xc004db9, 0x0, 
-0x8f830054, 0x1000011f, 0x2402000c, 0x8f830054, 
-0x3c020001, 0x8c426f3c, 0x2463ff9c, 0x431023, 
-0x2c420064, 0x14400127, 0x24020012, 0x10000123, 
-0x0, 0x27b10010, 0xa7a00010, 0x8021, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x24040001, 
-0xc004d78, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020014, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020014, 
-0xc004db9, 0x34108000, 0xc004db9, 0x0, 
-0xc004d58, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004db9, 0x8021, 
-0x97a20010, 0x27b10010, 0x34420010, 0xa7a20010, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020014, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020014, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fff8, 0x0, 0xc004db9, 0x0, 
-0x8f830054, 0x100000ab, 0x24020013, 0x8f830054, 
-0x3c020001, 0x8c426f3c, 0x2463ff9c, 0x431023, 
-0x2c420064, 0x144000b3, 0x2402000d, 0x100000af, 
-0x0, 0x27b10010, 0xa7a00010, 0x8021, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x24040001, 
-0xc004d78, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004db9, 0x34108000, 0xc004db9, 0x0, 
-0xc004d58, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004db9, 0x8021, 
-0x97a20010, 0x27b10010, 0x3042fffe, 0xa7a20010, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x34108000, 0x96220000, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fff8, 0x0, 0xc004db9, 0x0, 
-0x8f830054, 0x10000037, 0x2402000e, 0x24020840, 
-0xa7a20010, 0x27b10010, 0x8021, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x32020013, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020013, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x34108000, 
-0x96220000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fff8, 
-0x0, 0xc004db9, 0x0, 0x8f830054, 
-0x24020010, 0x3c010001, 0xac226dd0, 0x3c010001, 
-0x1000000c, 0xac236f3c, 0x8f830054, 0x3c020001, 
-0x8c426f3c, 0x2463ff9c, 0x431023, 0x2c420064, 
-0x14400004, 0x0, 0x24020011, 0x3c010001, 
-0xac226dd0, 0x8fbf0020, 0x8fb1001c, 0x8fb00018, 
-0x3e00008, 0x27bd0028, 0x3c030001, 0x8c636d98, 
-0x27bdffc8, 0x24020002, 0xafbf0034, 0xafb20030, 
-0xafb1002c, 0x14620004, 0xafb00028, 0x3c120002, 
-0x10000003, 0x8e528ff8, 0x3c120002, 0x8e528ffc, 
-0x3c030001, 0x8c636dd4, 0x3c020001, 0x8c426e1c, 
-0x50620004, 0x2463ffff, 0x3c010001, 0xac236e1c, 
-0x2463ffff, 0x2c620006, 0x10400377, 0x31080, 
-0x3c010001, 0x220821, 0x8c226bd8, 0x400008, 
-0x0, 0x2021, 0x2821, 0xc004ddb, 
-0x34068000, 0x24040010, 0x24050002, 0x24060002, 
-0x24020002, 0xc004ddb, 0xa7a20018, 0x24020002, 
-0x3c010001, 0x10000364, 0xac226dd4, 0x27b10018, 
-0xa7a00018, 0x8021, 0xc004d78, 0x24040001, 
-0x26100001, 0x2e020020, 0x1440fffb, 0x0, 
-0xc004d78, 0x2021, 0xc004d78, 0x24040001, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x24100010, 0x32020001, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fffa, 
-0x32020001, 0x24100010, 0xc004d78, 0x2021, 
-0x108042, 0x1600fffc, 0x0, 0xc004db9, 
-0x34108000, 0xc004db9, 0x0, 0xc004d58, 
-0x0, 0x50400005, 0x108042, 0x96220000, 
-0x501025, 0xa6220000, 0x108042, 0x1600fff7, 
-0x0, 0xc004db9, 0x0, 0x97a20018, 
-0x30428000, 0x14400004, 0x24020003, 0x3c010001, 
-0xac226dd4, 0x24020003, 0x3c010001, 0x1000032a, 
-0xac226dd4, 0x24040010, 0x24050002, 0x24060002, 
-0x24020002, 0xc004ddb, 0xa7a20018, 0x3c030001, 
-0x8c636e20, 0x24020001, 0x146201e1, 0x8021, 
-0x27b10018, 0xa7a00018, 0xc004d78, 0x24040001, 
-0x26100001, 0x2e020020, 0x1440fffb, 0x0, 
-0xc004d78, 0x2021, 0xc004d78, 0x24040001, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x24100010, 0x32020001, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fffa, 
-0x32020001, 0x24100010, 0x32020018, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020018, 0xc004db9, 0x34108000, 
-0xc004db9, 0x0, 0xc004d58, 0x0, 
-0x50400005, 0x108042, 0x96220000, 0x501025, 
-0xa6220000, 0x108042, 0x1600fff7, 0x0, 
-0xc004db9, 0x8021, 0x27b10018, 0xa7a00018, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x24040001, 
-0xc004d78, 0x2021, 0x24100010, 0x32020001, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x32020001, 0x24100010, 
-0x32020018, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020018, 
-0xc004db9, 0x34108000, 0xc004db9, 0x0, 
-0xc004d58, 0x0, 0x50400005, 0x108042, 
-0x96220000, 0x501025, 0xa6220000, 0x108042, 
-0x1600fff7, 0x0, 0xc004db9, 0x8021, 
-0x24040018, 0x2821, 0xc004ddb, 0x24060404, 
-0xa7a0001a, 0xc004d78, 0x24040001, 0x26100001, 
-0x2e020020, 0x1440fffb, 0x0, 0xc004d78, 
-0x2021, 0xc004d78, 0x24040001, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x24100010, 
-0x32020001, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020001, 
-0x24100010, 0x32020018, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fffa, 
-0x32020018, 0xc004db9, 0x34108000, 0xc004db9, 
-0x0, 0xc004d58, 0x0, 0x50400005, 
-0x108042, 0x97a2001a, 0x501025, 0xa7a2001a, 
-0x108042, 0x1600fff7, 0x0, 0xc004db9, 
-0x8021, 0xa7a0001a, 0xc004d78, 0x24040001, 
-0x26100001, 0x2e020020, 0x1440fffb, 0x0, 
-0xc004d78, 0x2021, 0xc004d78, 0x24040001, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x24100010, 0x32020001, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fffa, 
-0x32020001, 0x24100010, 0x32020018, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020018, 0xc004db9, 0x34108000, 
-0xc004db9, 0x0, 0xc004d58, 0x0, 
-0x50400005, 0x108042, 0x97a2001a, 0x501025, 
-0xa7a2001a, 0x108042, 0x1600fff7, 0x0, 
-0xc004db9, 0x8021, 0xa7a0001c, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x24040001, 0xc004d78, 
-0x2021, 0x24100010, 0xc004d78, 0x2021, 
-0x108042, 0x1600fffc, 0x0, 0x24100010, 
-0x3202001e, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x3202001e, 
-0xc004db9, 0x34108000, 0xc004db9, 0x0, 
-0xc004d58, 0x0, 0x50400005, 0x108042, 
-0x97a2001c, 0x501025, 0xa7a2001c, 0x108042, 
-0x1600fff7, 0x0, 0xc004db9, 0x8021, 
-0xa7a0001c, 0xc004d78, 0x24040001, 0x26100001, 
-0x2e020020, 0x1440fffb, 0x0, 0xc004d78, 
-0x2021, 0xc004d78, 0x24040001, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x24100010, 
-0xc004d78, 0x2021, 0x108042, 0x1600fffc, 
-0x0, 0x24100010, 0x3202001e, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x3202001e, 0xc004db9, 0x34108000, 
-0xc004db9, 0x0, 0xc004d58, 0x0, 
-0x50400005, 0x108042, 0x97a2001c, 0x501025, 
-0xa7a2001c, 0x108042, 0x1600fff7, 0x0, 
-0xc004db9, 0x8021, 0x24020002, 0xa7a2001e, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0x24100010, 0xc004d78, 
-0x2021, 0x108042, 0x1600fffc, 0x0, 
-0x24100010, 0x3202001e, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fffa, 
-0x3202001e, 0xc004d78, 0x24040001, 0xc004d78, 
-0x2021, 0x34108000, 0x97a2001e, 0x501024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fff8, 0x0, 0xc004db9, 
-0x8021, 0xa7a00020, 0xc004d78, 0x24040001, 
-0x26100001, 0x2e020020, 0x1440fffb, 0x0, 
-0xc004d78, 0x2021, 0xc004d78, 0x24040001, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x24100010, 0xc004d78, 0x2021, 0x108042, 
-0x1600fffc, 0x0, 0x24100010, 0x3202001e, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x3202001e, 0xc004db9, 
-0x34108000, 0xc004db9, 0x0, 0xc004d58, 
-0x0, 0x50400005, 0x108042, 0x97a20020, 
-0x501025, 0xa7a20020, 0x108042, 0x1600fff7, 
-0x0, 0xc004db9, 0x8021, 0xa7a00020, 
-0xc004d78, 0x24040001, 0x26100001, 0x2e020020, 
-0x1440fffb, 0x0, 0xc004d78, 0x2021, 
-0xc004d78, 0x24040001, 0xc004d78, 0x24040001, 
-0xc004d78, 0x2021, 0x24100010, 0xc004d78, 
-0x2021, 0x108042, 0x1600fffc, 0x0, 
-0x24100010, 0x3202001e, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fffa, 
-0x3202001e, 0xc004db9, 0x34108000, 0xc004db9, 
-0x0, 0xc004d58, 0x0, 0x50400005, 
-0x108042, 0x97a20020, 0x501025, 0xa7a20020, 
-0x108042, 0x1600fff7, 0x0, 0xc004db9, 
-0x8021, 0xa7a00022, 0xc004d78, 0x24040001, 
-0x26100001, 0x2e020020, 0x1440fffb, 0x0, 
-0xc004d78, 0x2021, 0xc004d78, 0x24040001, 
-0xc004d78, 0x2021, 0xc004d78, 0x24040001, 
-0x24100010, 0xc004d78, 0x2021, 0x108042, 
-0x1600fffc, 0x0, 0x24100010, 0xc004d78, 
-0x2021, 0x108042, 0x1600fffc, 0x0, 
-0xc004d78, 0x24040001, 0xc004d78, 0x2021, 
-0x34108000, 0x97a20022, 0x501024, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fff8, 0x0, 0xc004db9, 0x0, 
-0x24040018, 0x24050002, 0xc004ddb, 0x24060004, 
-0x3c100001, 0x8e106e24, 0x24020001, 0x1602011d, 
-0x0, 0x3c020001, 0x94426f26, 0x3c010001, 
-0xac206e24, 0x24429fbc, 0x2c420004, 0x1040000c, 
-0x24040009, 0x24050001, 0xc004ddb, 0x24060400, 
-0x24040018, 0x24050001, 0xc004ddb, 0x24060020, 
-0x24040018, 0x24050001, 0xc004ddb, 0x24062000, 
-0x3c024000, 0x2421024, 0x10400123, 0x3c022000, 
-0x2421024, 0x10400004, 0x0, 0x3c010001, 
-0x10000003, 0xac306f1c, 0x3c010001, 0xac206f1c, 
-0x3c030001, 0x8c636f34, 0x24020005, 0x146200f9, 
-0x0, 0x3c020001, 0x8c426f1c, 0x10400067, 
-0x3c020004, 0x2421024, 0x10400011, 0xa7a00018, 
-0x3c020008, 0x2421024, 0x10400002, 0x24020200, 
-0xa7a20018, 0x3c020010, 0x2421024, 0x10400004, 
-0x0, 0x97a20018, 0x34420100, 0xa7a20018, 
-0x97a60018, 0x24040009, 0x10000004, 0x2821, 
-0x24040009, 0x2821, 0x3021, 0xc004ddb, 
-0x0, 0x24020001, 0xa7a2001a, 0x3c020008, 
-0x2421024, 0x1040000c, 0x3c020002, 0x2421024, 
-0x10400002, 0x24020101, 0xa7a2001a, 0x3c020001, 
-0x2421024, 0x10400005, 0x3c020010, 0x97a2001a, 
-0x34420040, 0xa7a2001a, 0x3c020010, 0x2421024, 
-0x1040000e, 0x3c020002, 0x2421024, 0x10400005, 
-0x3c020001, 0x97a2001a, 0x34420080, 0xa7a2001a, 
-0x3c020001, 0x2421024, 0x10400005, 0x3c0300a0, 
-0x97a2001a, 0x34420020, 0xa7a2001a, 0x3c0300a0, 
-0x2431024, 0x54430004, 0x3c020020, 0x97a2001a, 
-0x1000000c, 0x34420400, 0x2421024, 0x50400004, 
-0x3c020080, 0x97a2001a, 0x10000006, 0x34420800, 
-0x2421024, 0x10400004, 0x0, 0x97a2001a, 
-0x34420c00, 0xa7a2001a, 0x97a6001a, 0x24040004, 
-0xc004ddb, 0x2821, 0x3c020004, 0x2421024, 
-0x10400004, 0xa7a0001c, 0x32425000, 0x14400004, 
-0x0, 0x32424000, 0x10400005, 0x2021, 
-0xc004cf9, 0x2402021, 0x10000096, 0x0, 
-0x97a6001c, 0x2821, 0x34c61200, 0xc004ddb, 
-0xa7a6001c, 0x1000008f, 0x0, 0x2421024, 
-0x10400004, 0xa7a00018, 0x32425000, 0x14400004, 
-0x0, 0x32424000, 0x10400005, 0x3c020010, 
-0xc004cf9, 0x2402021, 0x10000019, 0xa7a0001a, 
-0x2421024, 0x10400004, 0x0, 0x97a20018, 
-0x10000004, 0xa7a20018, 0x97a20018, 0x34420100, 
-0xa7a20018, 0x3c020001, 0x2421024, 0x10400004, 
-0x0, 0x97a20018, 0x10000004, 0xa7a20018, 
-0x97a20018, 0x34422000, 0xa7a20018, 0x97a60018, 
-0x2021, 0xc004ddb, 0x2821, 0xa7a0001a, 
-0x8021, 0xc004d78, 0x24040001, 0x26100001, 
-0x2e020020, 0x1440fffb, 0x0, 0xc004d78, 
-0x2021, 0xc004d78, 0x24040001, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x24100010, 
-0x32020001, 0x10400002, 0x2021, 0x24040001, 
-0xc004d78, 0x108042, 0x1600fffa, 0x32020001, 
-0x24100010, 0xc004d78, 0x2021, 0x108042, 
-0x1600fffc, 0x0, 0xc004db9, 0x34108000, 
-0xc004db9, 0x0, 0xc004d58, 0x0, 
-0x50400005, 0x108042, 0x97a2001a, 0x501025, 
-0xa7a2001a, 0x108042, 0x1600fff7, 0x0, 
-0xc004db9, 0x8021, 0xa7a0001a, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x24040001, 0xc004d78, 
-0x2021, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0xc004d78, 
-0x2021, 0x108042, 0x1600fffc, 0x0, 
-0xc004db9, 0x34108000, 0xc004db9, 0x0, 
-0xc004d58, 0x0, 0x50400005, 0x108042, 
-0x97a2001a, 0x501025, 0xa7a2001a, 0x108042, 
-0x1600fff7, 0x0, 0xc004db9, 0x0, 
-0x3c040001, 0x24846bcc, 0x97a60018, 0x97a7001a, 
-0x3c020001, 0x8c426d98, 0x3c030001, 0x8c636f1c, 
-0x3c05000d, 0x34a50205, 0xafa20010, 0xc002b3b, 
-0xafa30014, 0x8f830054, 0x24020004, 0x3c010001, 
-0xac226dd4, 0x3c010001, 0x10000017, 0xac236f38, 
-0x8f830054, 0x3c020001, 0x8c426f38, 0x2463ff9c, 
-0x431023, 0x2c420064, 0x1440000f, 0x0, 
-0x8f820220, 0x24030005, 0x3c010001, 0xac236dd4, 
-0x3c03f700, 0x431025, 0x10000007, 0xaf820220, 
-0x24020006, 0x3c010001, 0xac226dd4, 0x24020011, 
-0x3c010001, 0xac226dd0, 0x8fbf0034, 0x8fb20030, 
-0x8fb1002c, 0x8fb00028, 0x3e00008, 0x27bd0038, 
-0x27bdffd8, 0xafb00018, 0x808021, 0xafb1001c, 
-0x8821, 0x32024000, 0x10400013, 0xafbf0020, 
-0x3c020010, 0x2021024, 0x2c420001, 0x21023, 
-0x30434100, 0x3c020001, 0x2021024, 0x14400006, 
-0x34714000, 0x3c020002, 0x2021024, 0x14400002, 
-0x34716000, 0x34714040, 0x2021, 0x2821, 
-0x10000036, 0x2203021, 0x32021000, 0x10400035, 
-0x2021, 0x2821, 0xc004ddb, 0x24060040, 
-0x24040018, 0x2821, 0xc004ddb, 0x24060c00, 
-0x24040017, 0x2821, 0xc004ddb, 0x24060400, 
-0x24040016, 0x2821, 0xc004ddb, 0x24060006, 
-0x24040017, 0x2821, 0xc004ddb, 0x24062500, 
-0x24040016, 0x2821, 0xc004ddb, 0x24060006, 
-0x24040017, 0x2821, 0xc004ddb, 0x24064600, 
-0x24040016, 0x2821, 0xc004ddb, 0x24060006, 
-0x24040017, 0x2821, 0xc004ddb, 0x24066700, 
-0x24040016, 0x2821, 0xc004ddb, 0x24060006, 
-0x2404001f, 0x2821, 0xc004ddb, 0x24060010, 
-0x24040009, 0x2821, 0xc004ddb, 0x24061500, 
-0x24040009, 0x2821, 0x24061d00, 0xc004ddb, 
-0x0, 0x3c040001, 0x24846bf0, 0x3c05000e, 
-0x34a50100, 0x2003021, 0x2203821, 0xafa00010, 
-0xc002b3b, 0xafa00014, 0x8fbf0020, 0x8fb1001c, 
-0x8fb00018, 0x3e00008, 0x27bd0028, 0x8f850044, 
-0x8f820044, 0x3c030001, 0x431025, 0x3c030008, 
-0xaf820044, 0x8f840054, 0x8f820054, 0xa32824, 
-0x10000002, 0x24840001, 0x8f820054, 0x821023, 
-0x2c420002, 0x1440fffc, 0x0, 0x8f820044, 
-0x3c03fffe, 0x3463ffff, 0x431024, 0xaf820044, 
-0x8f830054, 0x8f820054, 0x10000002, 0x24630001, 
-0x8f820054, 0x621023, 0x2c420002, 0x1440fffc, 
-0x0, 0x3e00008, 0xa01021, 0x8f830044, 
-0x3c02fff0, 0x3442ffff, 0x42480, 0x621824, 
-0x3c020002, 0x822025, 0x641825, 0xaf830044, 
-0x8f820044, 0x3c03fffe, 0x3463ffff, 0x431024, 
-0xaf820044, 0x8f830054, 0x8f820054, 0x10000002, 
-0x24630001, 0x8f820054, 0x621023, 0x2c420002, 
-0x1440fffc, 0x0, 0x8f820044, 0x3c030001, 
-0x431025, 0xaf820044, 0x8f830054, 0x8f820054, 
-0x10000002, 0x24630001, 0x8f820054, 0x621023, 
-0x2c420002, 0x1440fffc, 0x0, 0x3e00008, 
-0x0, 0x8f820044, 0x2403ff7f, 0x431024, 
-0xaf820044, 0x8f830054, 0x8f820054, 0x10000002, 
-0x24630001, 0x8f820054, 0x621023, 0x2c420002, 
-0x1440fffc, 0x0, 0x8f820044, 0x34420080, 
-0xaf820044, 0x8f830054, 0x8f820054, 0x10000002, 
-0x24630001, 0x8f820054, 0x621023, 0x2c420002, 
-0x1440fffc, 0x0, 0x3e00008, 0x0, 
-0x8f820044, 0x3c03fff0, 0x3463ffff, 0x431024, 
-0xaf820044, 0x8f820044, 0x3c030001, 0x431025, 
-0xaf820044, 0x8f830054, 0x8f820054, 0x10000002, 
-0x24630001, 0x8f820054, 0x621023, 0x2c420002, 
-0x1440fffc, 0x0, 0x8f820044, 0x3c03fffe, 
-0x3463ffff, 0x431024, 0xaf820044, 0x8f830054, 
-0x8f820054, 0x10000002, 0x24630001, 0x8f820054, 
-0x621023, 0x2c420002, 0x1440fffc, 0x0, 
-0x3e00008, 0x0, 0x27bdffc8, 0xafb30024, 
-0x809821, 0xafbe002c, 0xa0f021, 0xafb20020, 
-0xc09021, 0x33c2ffff, 0xafbf0030, 0xafb50028, 
-0xafb1001c, 0xafb00018, 0x14400034, 0xa7b20010, 
-0x3271ffff, 0x27b20010, 0x8021, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x2301024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x2301024, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x34108000, 
-0x96420000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x12000075, 
-0x0, 0x1000fff6, 0x0, 0x3275ffff, 
-0x27b10010, 0xa7a00010, 0x8021, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x24040001, 0xc004d78, 
-0x2021, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x2b01024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x2b01024, 0xc004db9, 
-0x34108000, 0xc004db9, 0x0, 0xc004d58, 
-0x0, 0x50400005, 0x108042, 0x96220000, 
-0x501025, 0xa6220000, 0x108042, 0x1600fff7, 
-0x0, 0xc004db9, 0x0, 0x33c5ffff, 
-0x24020001, 0x54a20004, 0x24020002, 0x97a20010, 
-0x10000006, 0x521025, 0x14a20006, 0x3271ffff, 
-0x97a20010, 0x121827, 0x431024, 0xa7a20010, 
-0x3271ffff, 0x27b20010, 0x8021, 0xc004d78, 
-0x24040001, 0x26100001, 0x2e020020, 0x1440fffb, 
-0x0, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0xc004d78, 
-0x24040001, 0x24100010, 0x32020001, 0x10400002, 
-0x2021, 0x24040001, 0xc004d78, 0x108042, 
-0x1600fffa, 0x32020001, 0x24100010, 0x2301024, 
-0x10400002, 0x2021, 0x24040001, 0xc004d78, 
-0x108042, 0x1600fffa, 0x2301024, 0xc004d78, 
-0x24040001, 0xc004d78, 0x2021, 0x34108000, 
-0x96420000, 0x501024, 0x10400002, 0x2021, 
-0x24040001, 0xc004d78, 0x108042, 0x1600fff8, 
-0x0, 0xc004db9, 0x0, 0x8fbf0030, 
-0x8fbe002c, 0x8fb50028, 0x8fb30024, 0x8fb20020, 
-0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0038, 
-0x0, 0x0, 0x0, 0x27bdffe8, 
-0xafbf0010, 0x8ee304b8, 0x24020008, 0x146201e0, 
-0x0, 0x3c020001, 0x8c426f1c, 0x14400005, 
-0x0, 0xc003daf, 0x8f840224, 0x100001d8, 
-0x0, 0x8f820220, 0x3c030008, 0x431024, 
-0x10400026, 0x24020001, 0x8f840224, 0x8f820220, 
-0x3c030400, 0x431024, 0x10400006, 0x0, 
-0x3c010002, 0xac208fa0, 0x3c010002, 0x1000000b, 
-0xac208fc0, 0x3c030002, 0x24638fa0, 0x8c620000, 
-0x24420001, 0xac620000, 0x2c420002, 0x14400003, 
-0x24020001, 0x3c010002, 0xac228fc0, 0x3c020002, 
-0x8c428fc0, 0x10400006, 0x30820040, 0x10400004, 
-0x24020001, 0x3c010002, 0x10000003, 0xac228fc4, 
-0x3c010002, 0xac208fc4, 0x3c010002, 0xac248f9c, 
-0x3c010002, 0x1000000b, 0xac208fd0, 0x3c010002, 
-0xac228fd0, 0x3c010002, 0xac208fc0, 0x3c010002, 
-0xac208fa0, 0x3c010002, 0xac208fc4, 0x3c010002, 
-0xac208f9c, 0x3c030002, 0x8c638f90, 0x3c020002, 
-0x8c428f94, 0x50620004, 0x2463ffff, 0x3c010002, 
-0xac238f94, 0x2463ffff, 0x2c62000e, 0x10400194, 
-0x31080, 0x3c010001, 0x220821, 0x8c226c00, 
-0x400008, 0x0, 0x24020002, 0x3c010002, 
-0xac208fc0, 0x3c010002, 0xac208fa0, 0x3c010002, 
-0xac208f9c, 0x3c010002, 0xac208fc4, 0x3c010002, 
-0xac208fb8, 0x3c010002, 0xac208fb0, 0xaf800224, 
-0x3c010002, 0xac228f90, 0x3c020002, 0x8c428fd0, 
-0x1440004f, 0x3c02fdff, 0x3442ffff, 0xc003daf, 
-0x282a024, 0xaf800204, 0x8f820200, 0x2403fffd, 
-0x431024, 0xaf820200, 0x3c010002, 0xac208fe0, 
-0x8f830054, 0x3c020002, 0x8c428fb8, 0x24040001, 
-0x3c010002, 0xac248fcc, 0x24420001, 0x3c010002, 
-0xac228fb8, 0x2c420004, 0x3c010002, 0xac238fb4, 
-0x14400006, 0x24020003, 0x3c010001, 0xac246d9c, 
-0x3c010002, 0x1000015e, 0xac208fb8, 0x3c010002, 
-0x1000015b, 0xac228f90, 0x8f830054, 0x3c020002, 
-0x8c428fb4, 0x2463d8f0, 0x431023, 0x2c422710, 
-0x14400003, 0x24020004, 0x3c010002, 0xac228f90, 
-0x3c020002, 0x8c428fd0, 0x14400021, 0x3c02fdff, 
-0x3442ffff, 0x1000014a, 0x282a024, 0x3c040001, 
-0x8c846f20, 0x3c010002, 0xc005084, 0xac208fa8, 
-0x3c020002, 0x8c428fdc, 0xaf820204, 0x3c020002, 
-0x8c428fd0, 0x14400012, 0x3c03fdff, 0x8f820204, 
-0x3463ffff, 0x30420030, 0x1440012f, 0x283a024, 
-0x3c030002, 0x8c638fdc, 0x24020005, 0x3c010002, 
-0xac228f90, 0x3c010002, 0x10000131, 0xac238fe0, 
-0x3c020002, 0x8c428fd0, 0x10400010, 0x3c02fdff, 
-0x3c020001, 0x8c426e3c, 0x24420001, 0x3c010001, 
-0xac226e3c, 0x2c420002, 0x14400125, 0x24020001, 
-0x3c010001, 0xac226e44, 0x3c010001, 0xac206e3c, 
-0x3c010001, 0x1000011e, 0xac226d9c, 0x3c030002, 
-0x8c638fc0, 0x3442ffff, 0x10600119, 0x282a024, 
-0x3c020002, 0x8c428f9c, 0x10400115, 0x0, 
-0x3c010002, 0xac228fc8, 0x24020003, 0x3c010002, 
-0xac228fa0, 0x100000b8, 0x24020006, 0x3c010002, 
-0xac208fa8, 0x8f820204, 0x34420040, 0xaf820204, 
-0x3c020002, 0x8c428fe0, 0x24030007, 0x3c010002, 
-0xac238f90, 0x34420040, 0x3c010002, 0xac228fe0, 
-0x3c020002, 0x8c428fc0, 0x10400005, 0x0, 
-0x3c020002, 0x8c428f9c, 0x104000f0, 0x24020002, 
-0x3c050002, 0x24a58fa0, 0x8ca20000, 0x2c424e21, 
-0x104000ea, 0x24020002, 0x3c020002, 0x8c428fc4, 
-0x104000ef, 0x2404ffbf, 0x3c020002, 0x8c428f9c, 
-0x3c030002, 0x8c638fc8, 0x441024, 0x641824, 
-0x10430004, 0x24020001, 0x3c010002, 0x100000e4, 
-0xac228f90, 0x24020003, 0xaca20000, 0x24020008, 
-0x3c010002, 0xac228f90, 0x3c020002, 0x8c428fcc, 
-0x1040000c, 0x24020001, 0x3c040002, 0xc005091, 
-0x8c848f9c, 0x3c020002, 0x8c428fe8, 0x14400005, 
-0x24020001, 0x3c020002, 0x8c428fe4, 0x10400006, 
-0x24020001, 0x3c010001, 0xac226d9c, 0x3c010002, 
-0x100000cb, 0xac208fb8, 0x3c020002, 0x8c428fb0, 
-0x3c030002, 0x8c638f9c, 0x2c420001, 0x210c0, 
-0x30630008, 0x3c010002, 0xac228fb0, 0x3c010002, 
-0xac238fac, 0x8f830054, 0x24020009, 0x3c010002, 
-0xac228f90, 0x3c010002, 0x100000b9, 0xac238fb4, 
-0x8f830054, 0x3c020002, 0x8c428fb4, 0x2463d8f0, 
-0x431023, 0x2c422710, 0x1440009f, 0x0, 
-0x3c020002, 0x8c428fc0, 0x10400005, 0x0, 
-0x3c020002, 0x8c428f9c, 0x104000a0, 0x24020002, 
-0x3c030002, 0x24638fa0, 0x8c620000, 0x2c424e21, 
-0x1040009a, 0x24020002, 0x3c020002, 0x8c428fcc, 
-0x1040000e, 0x0, 0x3c020002, 0x8c428f9c, 
-0x3c010002, 0xac208fcc, 0x30420080, 0x1040002f, 
-0x2402000c, 0x8f820204, 0x30420080, 0x1440000c, 
-0x24020003, 0x10000029, 0x2402000c, 0x3c020002, 
-0x8c428f9c, 0x30420080, 0x14400005, 0x24020003, 
-0x8f820204, 0x30420080, 0x1040001f, 0x24020003, 
-0xac620000, 0x2402000a, 0x3c010002, 0xac228f90, 
-0x3c040002, 0x24848fd8, 0x8c820000, 0x3c030002, 
-0x8c638fb0, 0x431025, 0xaf820204, 0x8c830000, 
-0x3c040002, 0x8c848fb0, 0x2402000b, 0x3c010002, 
-0xac228f90, 0x641825, 0x3c010002, 0xac238fe0, 
-0x3c050002, 0x24a58fa0, 0x8ca20000, 0x2c424e21, 
-0x10400066, 0x24020002, 0x3c020002, 0x8c428fd0, 
-0x10400005, 0x0, 0x2402000c, 0x3c010002, 
-0x10000067, 0xac228f90, 0x3c020002, 0x8c428fc0, 
-0x10400063, 0x0, 0x3c040002, 0x8c848f9c, 
-0x10800055, 0x30820008, 0x3c030002, 0x8c638fac, 
-0x1062005b, 0x24020003, 0x3c010002, 0xac248fc8, 
-0xaca20000, 0x24020006, 0x3c010002, 0x10000054, 
-0xac228f90, 0x8f820200, 0x34420002, 0xaf820200, 
-0x8f830054, 0x2402000d, 0x3c010002, 0xac228f90, 
-0x3c010002, 0xac238fb4, 0x8f830054, 0x3c020002, 
-0x8c428fb4, 0x2463d8f0, 0x431023, 0x2c422710, 
-0x14400031, 0x0, 0x3c020002, 0x8c428fd0, 
-0x10400020, 0x2402000e, 0x3c030002, 0x8c638fe4, 
-0x3c010002, 0x14600015, 0xac228f90, 0xc003e6d, 
-0x0, 0x3c050001, 0x8ca56d98, 0xc00529b, 
-0x2021, 0x3c030001, 0x8c636d98, 0x24020004, 
-0x14620005, 0x2403fffb, 0x3c020001, 0x8c426d94, 
-0x10000003, 0x2403fff7, 0x3c020001, 0x8c426d94, 
-0x431024, 0x3c010001, 0xac226d94, 0x8f830224, 
-0x3c020200, 0x3c010002, 0xac238fec, 0x10000020, 
-0x282a025, 0x3c020002, 0x8c428fc0, 0x10400005, 
-0x0, 0x3c020002, 0x8c428f9c, 0x1040000f, 
-0x24020002, 0x3c020002, 0x8c428fa0, 0x2c424e21, 
-0x1040000a, 0x24020002, 0x3c020002, 0x8c428fc0, 
-0x1040000f, 0x0, 0x3c020002, 0x8c428f9c, 
-0x1440000b, 0x0, 0x24020002, 0x3c010002, 
-0x10000007, 0xac228f90, 0x3c020002, 0x8c428fc0, 
-0x10400003, 0x0, 0xc003daf, 0x0, 
-0x8f820220, 0x3c03f700, 0x431025, 0xaf820220, 
-0x8fbf0010, 0x3e00008, 0x27bd0018, 0x3c030002, 
-0x24638fe8, 0x8c620000, 0x10400005, 0x34422000, 
-0x3c010002, 0xac228fdc, 0x10000003, 0xac600000, 
-0x3c010002, 0xac248fdc, 0x3e00008, 0x0, 
-0x27bdffe0, 0x30820030, 0xafbf0018, 0x3c010002, 
-0xac228fe4, 0x14400067, 0x3c02ffff, 0x34421f0e, 
-0x821024, 0x14400061, 0x24020030, 0x30822000, 
-0x1040005d, 0x30838000, 0x31a02, 0x30820001, 
-0x21200, 0x3c040001, 0x8c846f20, 0x621825, 
-0x331c2, 0x3c030001, 0x24636e48, 0x30828000, 
-0x21202, 0x30840001, 0x42200, 0x441025, 
-0x239c2, 0x61080, 0x431021, 0x471021, 
-0x90430000, 0x24020001, 0x10620025, 0x0, 
-0x10600007, 0x24020002, 0x10620013, 0x24020003, 
-0x1062002c, 0x3c05000f, 0x10000037, 0x0, 
-0x8f820200, 0x2403feff, 0x431024, 0xaf820200, 
-0x8f820220, 0x3c03fffe, 0x3463ffff, 0x431024, 
-0xaf820220, 0x3c010002, 0xac209004, 0x3c010002, 
-0x10000034, 0xac20900c, 0x8f820200, 0x34420100, 
-0xaf820200, 0x8f820220, 0x3c03fffe, 0x3463ffff, 
-0x431024, 0xaf820220, 0x24020100, 0x3c010002, 
-0xac229004, 0x3c010002, 0x10000026, 0xac20900c, 
-0x8f820200, 0x2403feff, 0x431024, 0xaf820200, 
-0x8f820220, 0x3c030001, 0x431025, 0xaf820220, 
-0x3c010002, 0xac209004, 0x3c010002, 0x10000019, 
-0xac23900c, 0x8f820200, 0x34420100, 0xaf820200, 
-0x8f820220, 0x3c030001, 0x431025, 0xaf820220, 
-0x24020100, 0x3c010002, 0xac229004, 0x3c010002, 
-0x1000000c, 0xac23900c, 0x34a5ffff, 0x3c040001, 
-0x24846c38, 0xafa30010, 0xc002b3b, 0xafa00014, 
-0x10000004, 0x0, 0x24020030, 0x3c010002, 
-0xac228fe8, 0x8fbf0018, 0x3e00008, 0x27bd0020, 
-0x0, 0x0, 0x0, 0x27bdffc8, 
-0xafb20028, 0x809021, 0xafb3002c, 0xa09821, 
-0xafb00020, 0xc08021, 0x3c040001, 0x24846c50, 
-0x3c050009, 0x3c020001, 0x8c426d98, 0x34a59001, 
-0x2403021, 0x2603821, 0xafbf0030, 0xafb10024, 
-0xa7a0001a, 0xafb00014, 0xc002b3b, 0xafa20010, 
-0x24020002, 0x12620083, 0x2e620003, 0x10400005, 
-0x24020001, 0x1262000a, 0x0, 0x10000173, 
-0x0, 0x24020004, 0x126200f8, 0x24020008, 
-0x126200f7, 0x3c02ffec, 0x1000016c, 0x0, 
-0x3c020001, 0x8c426d94, 0x30420002, 0x14400004, 
-0x128940, 0x3c02fffb, 0x3442ffff, 0x2028024, 
-0x3c010002, 0x310821, 0xac308ffc, 0x3c024000, 
-0x2021024, 0x1040004e, 0x1023c2, 0x30840030, 
-0x101382, 0x3042001c, 0x3c030001, 0x24636dd8, 
-0x431021, 0x823821, 0x3c020020, 0x2021024, 
-0x10400006, 0x24020100, 0x3c010002, 0x310821, 
-0xac229000, 0x10000005, 0x3c020080, 0x3c010002, 
-0x310821, 0xac209000, 0x3c020080, 0x2021024, 
-0x10400006, 0x121940, 0x3c020001, 0x3c010002, 
-0x230821, 0x10000005, 0xac229008, 0x121140, 
-0x3c010002, 0x220821, 0xac209008, 0x94e40000, 
-0x3c030001, 0x8c636f40, 0x24020005, 0x10620010, 
-0xa7a40018, 0x32024000, 0x10400002, 0x34824000, 
-0xa7a20018, 0x24040001, 0x94e20002, 0x24050004, 
-0x24e60002, 0x34420001, 0xc0045be, 0xa4e20002, 
-0x24040001, 0x2821, 0xc0045be, 0x27a60018, 
-0x3c020001, 0x8c426d98, 0x24110001, 0x3c010001, 
-0xac316da4, 0x14530004, 0x32028000, 0xc003daf, 
-0x0, 0x32028000, 0x1040011c, 0x0, 
-0xc003daf, 0x0, 0x3c030001, 0x8c636f40, 
-0x24020005, 0x10620115, 0x24020002, 0x3c010001, 
-0xac316d9c, 0x3c010001, 0x10000110, 0xac226d98, 
-0x24040001, 0x24050004, 0x27b0001a, 0xc0045be, 
-0x2003021, 0x24040001, 0x2821, 0xc0045be, 
-0x2003021, 0x3c020002, 0x511021, 0x8c428ff4, 
-0x3c040001, 0x8c846d98, 0x3c03bfff, 0x3463ffff, 
-0x3c010001, 0xac336da4, 0x431024, 0x3c010002, 
-0x310821, 0x109300f7, 0xac228ff4, 0x100000f7, 
-0x0, 0x3c022000, 0x2021024, 0x10400005, 
-0x24020001, 0x3c010001, 0xac226f1c, 0x10000004, 
-0x128940, 0x3c010001, 0xac206f1c, 0x128940, 
-0x3c010002, 0x310821, 0xac308ff8, 0x3c024000, 
-0x2021024, 0x14400014, 0x0, 0x3c020001, 
-0x8c426f1c, 0x10400006, 0x24040004, 0x24050001, 
-0xc004ddb, 0x24062000, 0x24020001, 0xaee204b8, 
-0x3c020002, 0x511021, 0x8c428ff0, 0x3c03bfff, 
-0x3463ffff, 0x431024, 0x3c010002, 0x310821, 
-0x100000d0, 0xac228ff0, 0x3c020001, 0x8c426f1c, 
-0x10400028, 0x3c0300a0, 0x2031024, 0x5443000d, 
-0x3c020020, 0x3c020001, 0x8c426f20, 0x24030100, 
-0x3c010002, 0x310821, 0xac239004, 0x3c030001, 
-0x3c010002, 0x310821, 0xac23900c, 0x10000015, 
-0x34420400, 0x2021024, 0x10400008, 0x24030100, 
-0x3c020001, 0x8c426f20, 0x3c010002, 0x310821, 
-0xac239004, 0x1000000b, 0x34420800, 0x3c020080, 
-0x2021024, 0x1040002e, 0x3c030001, 0x3c020001, 
-0x8c426f20, 0x3c010002, 0x310821, 0xac23900c, 
-0x34420c00, 0x3c010001, 0xac226f20, 0x10000025, 
-0x24040001, 0x3c020020, 0x2021024, 0x10400006, 
-0x24020100, 0x3c010002, 0x310821, 0xac229004, 
-0x10000005, 0x3c020080, 0x3c010002, 0x310821, 
-0xac209004, 0x3c020080, 0x2021024, 0x10400007, 
-0x121940, 0x3c020001, 0x3c010002, 0x230821, 
-0xac22900c, 0x10000006, 0x24040001, 0x121140, 
-0x3c010002, 0x220821, 0xac20900c, 0x24040001, 
-0x2821, 0x27b0001e, 0xc00457c, 0x2003021, 
-0x24040001, 0x2821, 0xc00457c, 0x2003021, 
-0x24040001, 0x24050001, 0x27b0001c, 0xc00457c, 
-0x2003021, 0x24040001, 0x24050001, 0xc00457c, 
-0x2003021, 0x10000077, 0x0, 0x3c02ffec, 
-0x3442ffff, 0x2028024, 0x3c020008, 0x2028025, 
-0x121140, 0x3c010002, 0x220821, 0xac308ff8, 
-0x3c022000, 0x2021024, 0x10400009, 0x0, 
-0x3c020001, 0x8c426e44, 0x14400005, 0x24020001, 
-0x3c010001, 0xac226f1c, 0x10000004, 0x3c024000, 
-0x3c010001, 0xac206f1c, 0x3c024000, 0x2021024, 
-0x1440001d, 0x24020e01, 0x3c030001, 0x8c636f1c, 
-0xaf820238, 0x3c010001, 0xac206db0, 0x10600005, 
-0x24022020, 0x3c010001, 0xac226f20, 0x24020001, 
-0xaee204b8, 0x3c04bfff, 0x121940, 0x3c020002, 
-0x431021, 0x8c428ff0, 0x3c050001, 0x8ca56d98, 
-0x3484ffff, 0x441024, 0x3c010002, 0x230821, 
-0xac228ff0, 0x24020001, 0x10a20044, 0x0, 
-0x10000040, 0x0, 0x3c020001, 0x8c426f1c, 
-0x1040001c, 0x24022000, 0x3c010001, 0xac226f20, 
-0x3c0300a0, 0x2031024, 0x14430005, 0x121140, 
-0x3402a000, 0x3c010001, 0x1000002d, 0xac226f20, 
-0x3c030002, 0x621821, 0x8c638ff8, 0x3c020020, 
-0x621024, 0x10400004, 0x24022001, 0x3c010001, 
-0x10000023, 0xac226f20, 0x3c020080, 0x621024, 
-0x1040001f, 0x3402a001, 0x3c010001, 0x1000001c, 
-0xac226f20, 0x3c020020, 0x2021024, 0x10400007, 
-0x121940, 0x24020100, 0x3c010002, 0x230821, 
-0xac229004, 0x10000006, 0x3c020080, 0x121140, 
-0x3c010002, 0x220821, 0xac209004, 0x3c020080, 
-0x2021024, 0x10400006, 0x121940, 0x3c020001, 
-0x3c010002, 0x230821, 0x10000005, 0xac22900c, 
-0x121140, 0x3c010002, 0x220821, 0xac20900c, 
-0x3c030001, 0x8c636d98, 0x24020001, 0x10620003, 
-0x0, 0xc003daf, 0x0, 0x8fbf0030, 
-0x8fb3002c, 0x8fb20028, 0x8fb10024, 0x8fb00020, 
-0x3e00008, 0x27bd0038, 0x27bdffb0, 0xafb3003c, 
-0x9821, 0xafb50040, 0xa821, 0xafb10034, 
-0x8821, 0x24020002, 0xafbf0048, 0xafbe0044, 
-0xafb20038, 0xafb00030, 0xafa4002c, 0xa7a0001a, 
-0xa7a00018, 0xa7a00020, 0xa7a0001e, 0xa7a00022, 
-0x10a20130, 0xa7a0001c, 0x2ca20003, 0x10400005, 
-0x24020001, 0x10a2000a, 0x3c024000, 0x1000025d, 
-0x2201021, 0x24020004, 0x10a2020a, 0x24020008, 
-0x10a20208, 0x2201021, 0x10000256, 0x0, 
-0x8fa8002c, 0x88140, 0x3c030002, 0x701821, 
-0x8c638ffc, 0x621024, 0x14400009, 0x24040001, 
-0x3c027fff, 0x3442ffff, 0x628824, 0x3c010002, 
-0x300821, 0xac318ff4, 0x10000246, 0x2201021, 
-0x24050001, 0xc00457c, 0x27a60018, 0x24040001, 
-0x24050001, 0xc00457c, 0x27a60018, 0x97a20018, 
-0x30420004, 0x104000d9, 0x3c114000, 0x3c020001, 
-0x8c426f40, 0x2443ffff, 0x2c620006, 0x104000d9, 
-0x31080, 0x3c010001, 0x220821, 0x8c226c68, 
-0x400008, 0x0, 0x24040001, 0x24050011, 
-0x27b0001a, 0xc00457c, 0x2003021, 0x24040001, 
-0x24050011, 0xc00457c, 0x2003021, 0x97a3001a, 
-0x30624000, 0x10400002, 0x3c150010, 0x3c150008, 
-0x30628000, 0x104000aa, 0x3c130001, 0x100000a8, 
-0x3c130002, 0x24040001, 0x24050014, 0x27b0001a, 
-0xc00457c, 0x2003021, 0x24040001, 0x24050014, 
-0xc00457c, 0x2003021, 0x97a3001a, 0x30621000, 
-0x10400002, 0x3c150010, 0x3c150008, 0x30620800, 
-0x10400097, 0x3c130001, 0x10000095, 0x3c130002, 
-0x24040001, 0x24050019, 0x27b0001c, 0xc00457c, 
-0x2003021, 0x24040001, 0x24050019, 0xc00457c, 
-0x2003021, 0x97a2001c, 0x30430700, 0x24020400, 
-0x10620027, 0x28620401, 0x1040000e, 0x24020200, 
-0x1062001f, 0x28620201, 0x10400005, 0x24020100, 
-0x5062001e, 0x3c130001, 0x1000001e, 0x24040001, 
-0x24020300, 0x50620019, 0x3c130002, 0x10000019, 
-0x24040001, 0x24020600, 0x1062000d, 0x28620601, 
-0x10400005, 0x24020500, 0x5062000b, 0x3c130002, 
-0x10000010, 0x24040001, 0x24020700, 0x1462000d, 
-0x24040001, 0x3c130004, 0x1000000a, 0x3c150008, 
-0x10000006, 0x3c130004, 0x10000005, 0x3c150008, 
-0x3c130001, 0x10000002, 0x3c150008, 0x3c150010, 
-0x24040001, 0x24050018, 0x27b0001e, 0xc00457c, 
-0x2003021, 0x24040001, 0x24050018, 0xc00457c, 
-0x2003021, 0x8fa8002c, 0x97a7001e, 0x81140, 
-0x3c060002, 0xc23021, 0x8cc68ff4, 0x97a20022, 
-0x3c100001, 0x26106c5c, 0x2002021, 0xafa20010, 
-0x97a2001c, 0x3c05000c, 0x34a50303, 0xc002b3b, 
-0xafa20014, 0x3c020004, 0x16620010, 0x3c020001, 
-0x8f840054, 0x24030001, 0x24020002, 0x3c010001, 
-0xac236d9c, 0x3c010001, 0xac226d98, 0x3c010001, 
-0xac236da4, 0x3c010001, 0xac236e24, 0x3c010001, 
-0xac246f30, 0x1000004f, 0x2b38825, 0x16620039, 
-0x3c028000, 0x3c020001, 0x8c426e20, 0x1440001e, 
-0x24040018, 0x2021, 0x2821, 0xc004ddb, 
-0x34068000, 0x8f830054, 0x8f820054, 0x2b38825, 
-0x10000002, 0x24630032, 0x8f820054, 0x621023, 
-0x2c420033, 0x1440fffc, 0x0, 0x8f830054, 
-0x24020001, 0x3c010001, 0xac226e20, 0x3c010001, 
-0xac226d9c, 0x3c010001, 0xac226d98, 0x3c010001, 
-0xac226da4, 0x3c010001, 0xac226e24, 0x3c010001, 
-0x1000002c, 0xac236f30, 0x2821, 0xc004ddb, 
-0x24060404, 0x2021, 0x2405001e, 0x27a60018, 
-0x24020002, 0xc0045be, 0xa7a20018, 0x2021, 
-0x2821, 0x27a60018, 0xc0045be, 0xa7a00018, 
-0x24040018, 0x24050002, 0xc004ddb, 0x24060004, 
-0x3c028000, 0x2221025, 0x2b31825, 0x10000015, 
-0x438825, 0x2221025, 0x2751825, 0x438825, 
-0x2002021, 0x97a6001c, 0x3c070001, 0x8ce76d98, 
-0x3c05000c, 0x34a50326, 0xafb30010, 0xc002b3b, 
-0xafb10014, 0x10000007, 0x0, 0x3c110002, 
-0x2308821, 0x8e318ffc, 0x3c027fff, 0x3442ffff, 
-0x2228824, 0x3c020001, 0x8c426da8, 0x1040001e, 
-0x0, 0x3c020001, 0x8c426f1c, 0x10400002, 
-0x3c022000, 0x2228825, 0x8fa8002c, 0x81140, 
-0x3c010002, 0x220821, 0x8c229000, 0x10400003, 
-0x3c020020, 0x10000005, 0x2228825, 0x3c02ffdf, 
-0x3442ffff, 0x2228824, 0x8fa8002c, 0x81140, 
-0x3c010002, 0x220821, 0x8c229008, 0x10400003, 
-0x3c020080, 0x10000004, 0x2228825, 0x3c02ff7f, 
-0x3442ffff, 0x2228824, 0x8fa8002c, 0x81140, 
-0x3c010002, 0x220821, 0xac318ff4, 0x10000135, 
-0x2201021, 0x8fa8002c, 0x8f140, 0x3c030002, 
-0x7e1821, 0x8c638ff8, 0x3c024000, 0x621024, 
-0x14400009, 0x24040001, 0x3c027fff, 0x3442ffff, 
-0x628824, 0x3c010002, 0x3e0821, 0xac318ff0, 
-0x10000124, 0x2201021, 0x2821, 0xc00457c, 
-0x27a60018, 0x24040001, 0x2821, 0xc00457c, 
-0x27a60018, 0x24040001, 0x24050001, 0x27b20020, 
-0xc00457c, 0x2403021, 0x24040001, 0x24050001, 
-0xc00457c, 0x2403021, 0x24040001, 0x24050004, 
-0x27b1001e, 0xc00457c, 0x2203021, 0x24040001, 
-0x24050004, 0xc00457c, 0x2203021, 0x24040001, 
-0x24050005, 0x27b00022, 0xc00457c, 0x2003021, 
-0x24040001, 0x24050005, 0xc00457c, 0x2003021, 
-0x24040001, 0x24050010, 0xc00457c, 0x27a60018, 
-0x24040001, 0x24050010, 0xc00457c, 0x27a60018, 
-0x24040001, 0x2405000a, 0xc00457c, 0x2403021, 
-0x24040001, 0x2405000a, 0xc00457c, 0x2403021, 
-0x24040001, 0x24050018, 0xc00457c, 0x2203021, 
-0x24040001, 0x24050018, 0xc00457c, 0x2203021, 
-0x24040001, 0x24050001, 0xc00457c, 0x27a60018, 
-0x24040001, 0x24050001, 0xc00457c, 0x27a60018, 
-0x97a20018, 0x30420004, 0x10400066, 0x3c114000, 
-0x3c030001, 0x8c636f34, 0x24020005, 0x14620067, 
-0x24040001, 0x24050019, 0x27b0001c, 0xc00457c, 
-0x2003021, 0x24040001, 0x24050019, 0xc00457c, 
-0x2003021, 0x97a2001c, 0x30430700, 0x24020400, 
-0x10620027, 0x28620401, 0x1040000e, 0x24020200, 
-0x1062001f, 0x28620201, 0x10400005, 0x24020100, 
-0x5062001e, 0x3c130001, 0x1000001e, 0x3c020004, 
-0x24020300, 0x50620019, 0x3c130002, 0x10000019, 
-0x3c020004, 0x24020600, 0x1062000d, 0x28620601, 
-0x10400005, 0x24020500, 0x5062000b, 0x3c130002, 
-0x10000010, 0x3c020004, 0x24020700, 0x1462000d, 
-0x3c020004, 0x3c130004, 0x1000000a, 0x3c150008, 
-0x10000006, 0x3c130004, 0x10000005, 0x3c150008, 
-0x3c130001, 0x10000002, 0x3c150008, 0x3c150010, 
-0x3c020004, 0x12620017, 0x3c028000, 0x8f820054, 
-0x24100001, 0x3c010001, 0xac306d9c, 0x3c010001, 
-0xac306d98, 0x3c010001, 0xac306da4, 0x3c010001, 
-0xac306e24, 0x3c010001, 0xac226f30, 0x3c020001, 
-0x16620022, 0x2758825, 0x2021, 0x2821, 
-0xc004ddb, 0x34068000, 0x3c010001, 0x1000001b, 
-0xac306e20, 0x2221025, 0x2b31825, 0x438825, 
-0x97a6001c, 0x3c020001, 0x8c426f1c, 0x3c070001, 
-0x8ce76d98, 0x3c040001, 0x24846c5c, 0xafa20010, 
-0x97a2001e, 0x3c05000c, 0x34a50323, 0x3c010001, 
-0xac206e20, 0xc002b3b, 0xafa20014, 0x10000007, 
-0x0, 0x3c110002, 0x23e8821, 0x8e318ff0, 
-0x3c027fff, 0x3442ffff, 0x2228824, 0x3c020001, 
-0x8c426da8, 0x10400069, 0x0, 0x3c020001, 
-0x8c426f1c, 0x10400002, 0x3c022000, 0x2228825, 
-0x8fa8002c, 0x81140, 0x3c010002, 0x220821, 
-0x8c229004, 0x10400003, 0x3c020020, 0x10000005, 
-0x2228825, 0x3c02ffdf, 0x3442ffff, 0x2228824, 
-0x8fa8002c, 0x81140, 0x3c010002, 0x220821, 
-0x8c22900c, 0x10400003, 0x3c020080, 0x1000004f, 
-0x2228825, 0x3c02ff7f, 0x3442ffff, 0x1000004b, 
-0x2228824, 0x8fa8002c, 0x82940, 0x3c030002, 
-0x651821, 0x8c638ff8, 0x3c024000, 0x621024, 
-0x14400008, 0x3c027fff, 0x3442ffff, 0x628824, 
-0x3c010002, 0x250821, 0xac318ff0, 0x10000041, 
-0x2201021, 0x3c020001, 0x8c426da8, 0x10400034, 
-0x3c11c00c, 0x3c020001, 0x8c426e44, 0x3c04c00c, 
-0x34842000, 0x3c030001, 0x8c636f1c, 0x2102b, 
-0x21023, 0x441024, 0x10600003, 0x518825, 
-0x3c022000, 0x2228825, 0x3c020002, 0x451021, 
-0x8c429004, 0x10400003, 0x3c020020, 0x10000004, 
-0x2228825, 0x3c02ffdf, 0x3442ffff, 0x2228824, 
-0x8fa8002c, 0x81140, 0x3c010002, 0x220821, 
-0x8c22900c, 0x10400003, 0x3c020080, 0x10000004, 
-0x2228825, 0x3c02ff7f, 0x3442ffff, 0x2228824, 
-0x3c020001, 0x8c426e30, 0x10400002, 0x3c020800, 
-0x2228825, 0x3c020001, 0x8c426e34, 0x10400002, 
-0x3c020400, 0x2228825, 0x3c020001, 0x8c426e38, 
-0x10400006, 0x3c020100, 0x10000004, 0x2228825, 
-0x3c027fff, 0x3442ffff, 0x628824, 0x8fa8002c, 
-0x81140, 0x3c010002, 0x220821, 0xac318ff0, 
-0x2201021, 0x8fbf0048, 0x8fbe0044, 0x8fb50040, 
-0x8fb3003c, 0x8fb20038, 0x8fb10034, 0x8fb00030, 
-0x3e00008, 0x27bd0050, 0x27bdffd0, 0xafb20028, 
-0x809021, 0xafbf002c, 0xafb10024, 0xafb00020, 
-0x8f840200, 0x3c100001, 0x8e106d98, 0x8f860220, 
-0x24020002, 0x1202005c, 0x2e020003, 0x10400005, 
-0x24020001, 0x1202000a, 0x121940, 0x1000010c, 
-0x0, 0x24020004, 0x120200bf, 0x24020008, 
-0x120200be, 0x128940, 0x10000105, 0x0, 
-0x3c050002, 0xa32821, 0x8ca58ffc, 0x3c100002, 
-0x2038021, 0x8e108ff4, 0x3c024000, 0xa21024, 
-0x10400038, 0x3c020008, 0x2021024, 0x10400020, 
-0x34840002, 0x3c020002, 0x431021, 0x8c429000, 
-0x10400005, 0x34840020, 0x34840100, 0x3c020020, 
-0x10000006, 0x2028025, 0x2402feff, 0x822024, 
-0x3c02ffdf, 0x3442ffff, 0x2028024, 0x121140, 
-0x3c010002, 0x220821, 0x8c229008, 0x10400005, 
-0x3c020001, 0xc23025, 0x3c020080, 0x10000016, 
-0x2028025, 0x3c02fffe, 0x3442ffff, 0xc23024, 
-0x3c02ff7f, 0x3442ffff, 0x1000000f, 0x2028024, 
-0x2402fedf, 0x822024, 0x3c02fffe, 0x3442ffff, 
-0xc23024, 0x3c02ff5f, 0x3442ffff, 0x2028024, 
-0x3c010002, 0x230821, 0xac209000, 0x3c010002, 
-0x230821, 0xac209008, 0xaf840200, 0xaf860220, 
-0x8f820220, 0x34420002, 0xaf820220, 0x1000000a, 
-0x121140, 0x3c02bfff, 0x3442ffff, 0x8f830200, 
-0x2028024, 0x2402fffd, 0x621824, 0xc003daf, 
-0xaf830200, 0x121140, 0x3c010002, 0x220821, 
-0x100000b7, 0xac308ff4, 0x3c020001, 0x8c426f1c, 
-0x10400069, 0x24050004, 0x24040001, 0xc00457c, 
-0x27a60018, 0x24040001, 0x24050005, 0xc00457c, 
-0x27a6001a, 0x97a30018, 0x97a2001a, 0x3c040001, 
-0x24846e48, 0x30630c00, 0x31a82, 0x30420c00, 
-0x21282, 0xa7a2001a, 0x21080, 0x441021, 
-0x431021, 0xa7a30018, 0x90480000, 0x24020001, 
-0x3103ffff, 0x10620029, 0x28620002, 0x10400005, 
-0x0, 0x10600009, 0x0, 0x1000003d, 
-0x0, 0x10700013, 0x24020003, 0x1062002c, 
-0x0, 0x10000037, 0x0, 0x8f820200, 
-0x2403feff, 0x431024, 0xaf820200, 0x8f820220, 
-0x3c03fffe, 0x3463ffff, 0x431024, 0xaf820220, 
-0x3c010002, 0xac209004, 0x3c010002, 0x10000032, 
-0xac20900c, 0x8f820200, 0x34420100, 0xaf820200, 
-0x8f820220, 0x3c03fffe, 0x3463ffff, 0x431024, 
-0xaf820220, 0x24020100, 0x3c010002, 0xac229004, 
-0x3c010002, 0x10000024, 0xac20900c, 0x8f820200, 
-0x2403feff, 0x431024, 0xaf820200, 0x8f820220, 
-0x3c030001, 0x431025, 0xaf820220, 0x3c010002, 
-0xac209004, 0x3c010002, 0x10000017, 0xac23900c, 
-0x8f820200, 0x34420100, 0xaf820200, 0x8f820220, 
-0x3c030001, 0x431025, 0xaf820220, 0x24020100, 
-0x3c010002, 0xac229004, 0x3c010002, 0x1000000a, 
-0xac23900c, 0x3c040001, 0x24846c80, 0x97a6001a, 
-0x97a70018, 0x3c050001, 0x34a5ffff, 0xafa80010, 
-0xc002b3b, 0xafa00014, 0x8f820200, 0x34420002, 
-0x1000004b, 0xaf820200, 0x128940, 0x3c050002, 
-0xb12821, 0x8ca58ff8, 0x3c100002, 0x2118021, 
-0x8e108ff0, 0x3c024000, 0xa21024, 0x14400010, 
-0x0, 0x3c020001, 0x8c426f1c, 0x14400005, 
-0x3c02bfff, 0x8f820200, 0x34420002, 0xaf820200, 
-0x3c02bfff, 0x3442ffff, 0xc003daf, 0x2028024, 
-0x3c010002, 0x310821, 0x10000031, 0xac308ff0, 
-0x3c020001, 0x8c426f1c, 0x10400005, 0x3c020020, 
-0x3c020001, 0x8c426e44, 0x10400025, 0x3c020020, 
-0xa21024, 0x10400007, 0x34840020, 0x24020100, 
-0x3c010002, 0x310821, 0xac229004, 0x10000006, 
-0x34840100, 0x3c010002, 0x310821, 0xac209004, 
-0x2402feff, 0x822024, 0x3c020080, 0xa21024, 
-0x10400007, 0x121940, 0x3c020001, 0x3c010002, 
-0x230821, 0xac22900c, 0x10000008, 0xc23025, 
-0x121140, 0x3c010002, 0x220821, 0xac20900c, 
-0x3c02fffe, 0x3442ffff, 0xc23024, 0xaf840200, 
-0xaf860220, 0x8f820220, 0x34420002, 0xaf820220, 
-0x121140, 0x3c010002, 0x220821, 0xac308ff0, 
-0x8fbf002c, 0x8fb20028, 0x8fb10024, 0x8fb00020, 
-0x3e00008, 0x27bd0030, 0x0, 0x1821, 
-0x308400ff, 0x2405ffdf, 0x2406ffbf, 0x641007, 
-0x30420001, 0x10400004, 0x0, 0x8f820044, 
-0x10000003, 0x34420040, 0x8f820044, 0x461024, 
-0xaf820044, 0x8f820044, 0x34420020, 0xaf820044, 
-0x8f820044, 0x451024, 0xaf820044, 0x24630001, 
-0x28620008, 0x5440ffee, 0x641007, 0x3e00008, 
-0x0, 0x2c820008, 0x1040001b, 0x0, 
-0x2405ffdf, 0x2406ffbf, 0x41880, 0x3c020001, 
-0x24426e60, 0x621821, 0x24640004, 0x90620000, 
-0x10400004, 0x0, 0x8f820044, 0x10000003, 
-0x34420040, 0x8f820044, 0x461024, 0xaf820044, 
-0x8f820044, 0x34420020, 0xaf820044, 0x8f820044, 
-0x451024, 0xaf820044, 0x24630001, 0x64102b, 
-0x1440ffee, 0x0, 0x3e00008, 0x0, 
-0x0, 0x0, 0x0, 0x8f8400c4, 
-0x8f8600e0, 0x8f8700e4, 0x2402fff8, 0xc22824, 
-0x10e5001a, 0x27623ff8, 0x14e20002, 0x24e80008, 
-0x27683000, 0x55050004, 0x8d0a0000, 0x30c20004, 
-0x14400012, 0x805021, 0x8ce90000, 0x8f42013c, 
-0x1494823, 0x49182b, 0x94eb0006, 0x10600002, 
-0x25630050, 0x494821, 0x123182b, 0x50400003, 
-0x8f4201fc, 0x3e00008, 0xe01021, 0xaf8800e8, 
-0x24420001, 0xaf4201fc, 0xaf8800e4, 0x3e00008, 
-0x1021, 0x3e00008, 0x0, 0x8f8300e4, 
-0x27623ff8, 0x10620004, 0x24620008, 0xaf8200e8, 
-0x3e00008, 0xaf8200e4, 0x27623000, 0xaf8200e8, 
-0x3e00008, 0xaf8200e4, 0x3e00008, 0x0, 
-0x0, 0x0, 0x0, 0x8f880120, 
-0x27624fe0, 0x8f830128, 0x15020002, 0x25090020, 
-0x27694800, 0x11230012, 0x8fa20010, 0xad040000, 
-0xad050004, 0xad060008, 0xa507000e, 0x8fa30014, 
-0xad020018, 0x8fa20018, 0xad03001c, 0x25030016, 
-0xad020010, 0xad030014, 0xaf890120, 0x8f4300fc, 
-0x24020001, 0x2463ffff, 0x3e00008, 0xaf4300fc, 
-0x8f430324, 0x1021, 0x24630001, 0x3e00008, 
-0xaf430324, 0x3e00008, 0x0, 0x8f880100, 
-0x276247e0, 0x8f830108, 0x15020002, 0x25090020, 
-0x27694000, 0x1123000f, 0x8fa20010, 0xad040000, 
-0xad050004, 0xad060008, 0xa507000e, 0x8fa30014, 
-0xad020018, 0x8fa20018, 0xad03001c, 0x25030016, 
-0xad020010, 0xad030014, 0xaf890100, 0x3e00008, 
-0x24020001, 0x8f430328, 0x1021, 0x24630001, 
-0x3e00008, 0xaf430328, 0x3e00008, 0x0, 
+0x0,
+0x10000003, 0x0, 0xd, 0xd,
+0x3c1d0001, 0x8fbd6d20, 0x3a0f021, 0x3c100000,
+0x26104000, 0xc0010c0, 0x0, 0xd,
+0x3c1d0001, 0x8fbd6d24, 0x3a0f021, 0x3c100000,
+0x26104000, 0xc0017e0, 0x0, 0xd,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x2000008,
+0x0, 0x800172f, 0x3c0a0001, 0x800172f,
+0x3c0a0002, 0x800172f, 0x0, 0x8002cac,
+0x0, 0x8002c4f, 0x0, 0x800172f,
+0x3c0a0004, 0x800328a, 0x0, 0x8001a52,
+0x0, 0x800394d, 0x0, 0x80038f4,
+0x0, 0x800172f, 0x3c0a0006, 0x80039bb,
+0x3c0a0007, 0x800172f, 0x3c0a0008, 0x800172f,
+0x3c0a0009, 0x8003a13, 0x0, 0x8002ea6,
+0x0, 0x800172f, 0x3c0a000b, 0x800172f,
+0x3c0a000c, 0x800172f, 0x3c0a000d, 0x80028fb,
+0x0, 0x8002890, 0x0, 0x800172f,
+0x3c0a000e, 0x800208c, 0x0, 0x8001964,
+0x0, 0x8001a04, 0x0, 0x8003ca6,
+0x0, 0x8003c94, 0x0, 0x800172f,
+0x0, 0x800191a, 0x0, 0x800172f,
+0x0, 0x800172f, 0x3c0a0013, 0x800172f,
+0x3c0a0014, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x27bdffe0,
+0x3c1cc000, 0xafbf001c, 0xafb00018, 0x8f820140,
+0x24030003, 0xaf8300ec, 0x34420004, 0xc002b20,
+0xaf820140, 0x3c0100c0, 0xc001763, 0xac203ffc,
+0x401821, 0x3c020010, 0x3c010001, 0xac236e9c,
+0x10620011, 0x43102b, 0x14400002, 0x3c020020,
+0x3c020008, 0x1062000c, 0x24050100, 0x3c060001,
+0x8cc66e9c, 0x3c040001, 0x24845c74, 0x3821,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x3c020020,
+0x3c010001, 0xac226e9c, 0x24020008, 0x3c010001,
+0xac226eb4, 0x2402001f, 0x3c010001, 0xac226ec4,
+0x24020016, 0x3c010001, 0xac226e98, 0x3c05fffe,
+0x34a56f08, 0x3c020001, 0x8c426e9c, 0x3c030002,
+0x24639010, 0x3c040001, 0x8c846cc4, 0x431023,
+0x14800002, 0x458021, 0x2610fa38, 0x2402f000,
+0x2028024, 0xc001785, 0x2002021, 0x2022823,
+0x3c040020, 0x821823, 0x651823, 0x247bb000,
+0x3c03fffe, 0x3463bf08, 0x363b821, 0x3c0600bf,
+0x34c6f000, 0x3c070001, 0x8ce76cc0, 0x3c0300bf,
+0x3463e000, 0x852023, 0x3c010001, 0xac246ea8,
+0x822023, 0x3c010001, 0xac256e90, 0x52842,
+0x3c010001, 0xac226e84, 0x27620ffc, 0x3c010001,
+0xac226d20, 0x27621ffc, 0xdb3023, 0x7b1823,
+0x3c010001, 0xac246e88, 0x3c010001, 0xac256eac,
+0x3c010001, 0xac226d24, 0xaf860150, 0x10e00011,
+0xaf830250, 0x3c1d0001, 0x8fbd6ccc, 0x3a0f021,
+0xc001749, 0x0, 0x3c020001, 0x8c426cd0,
+0x3c030001, 0x8c636cd4, 0x2442fe00, 0x24630200,
+0x3c010001, 0xac226cd0, 0x3c010001, 0x10000004,
+0xac236cd4, 0x3c1d0001, 0x8fbd6d20, 0x3a0f021,
+0x3c020001, 0x8c426cc4, 0x1040000d, 0x26fafa38,
+0x3c020001, 0x8c426cd0, 0x3c030001, 0x8c636cd4,
+0x3c1a0001, 0x8f5a6cd4, 0x2442fa38, 0x246305c8,
+0x3c010001, 0xac226cd0, 0x3c010001, 0xac236cd4,
+0x3c020001, 0x8c426cc8, 0x14400003, 0x0,
+0x3c010001, 0xac206cd0, 0xc001151, 0x0,
+0x8fbf001c, 0x8fb00018, 0x3e00008, 0x27bd0020,
+0x3c020001, 0x8c426cd0, 0x3c030001, 0x8c636cd4,
+0x27bdff98, 0xafb00048, 0x3c100001, 0x8e1066b8,
+0xafb20050, 0x3c120000, 0x26524100, 0xafbf0060,
+0xafbe005c, 0xafb50058, 0xafb30054, 0xafb1004c,
+0xafa20034, 0xafa30030, 0xafa00010, 0xafa00014,
+0x8f860040, 0x3c040001, 0x24845c80, 0x24050200,
+0x3c010001, 0xac326e80, 0xc002b3b, 0x2003821,
+0x8f830040, 0x3c02f000, 0x621824, 0x3c026000,
+0x1062000b, 0xa3a0003f, 0x240e0001, 0x3c040001,
+0x24845c88, 0xa3ae003f, 0xafa00010, 0xafa00014,
+0x8f860040, 0x24050300, 0xc002b3b, 0x2003821,
+0x8f820240, 0x3c030001, 0x431025, 0xaf820240,
+0xaf800048, 0x8f820048, 0x14400005, 0x0,
+0xaf800048, 0x8f820048, 0x10400004, 0x0,
+0xaf800048, 0x10000003, 0x2e02021, 0xaf80004c,
+0x2e02021, 0x3c050001, 0xc002ba8, 0x34a540f8,
+0x3402021, 0xc002ba8, 0x240505c8, 0x3c020001,
+0x8c426ea8, 0x3c0d0001, 0x8dad6e88, 0x3c030001,
+0x8c636e84, 0x3c080001, 0x8d086e90, 0x3c090001,
+0x8d296eac, 0x3c0a0001, 0x8d4a6eb4, 0x3c0b0001,
+0x8d6b6ec4, 0x3c0c0001, 0x8d8c6e98, 0x3c040001,
+0x24845c94, 0x24050400, 0xaf42013c, 0x8f42013c,
+0x24060001, 0x24070001, 0xaf400000, 0xaf4d0138,
+0xaf430144, 0xaf480148, 0xaf49014c, 0xaf4a0150,
+0xaf4b0154, 0xaf4c0158, 0x2442ff80, 0xaf420140,
+0x24020001, 0xafa20010, 0xc002b3b, 0xafa00014,
+0x8f420138, 0xafa20010, 0x8f42013c, 0xafa20014,
+0x8f460144, 0x8f470148, 0x3c040001, 0x24845ca0,
+0xc002b3b, 0x24050500, 0xafb70010, 0xafba0014,
+0x8f46014c, 0x8f470150, 0x3c040001, 0x24845cac,
+0xc002b3b, 0x24050600, 0x3c020001, 0x8c426e9c,
+0x3603821, 0x3c060002, 0x24c69010, 0x2448ffff,
+0x1061824, 0xe81024, 0x43102b, 0x10400006,
+0x24050900, 0x3c040001, 0x24845cb8, 0xafa80010,
+0xc002b3b, 0xafa00014, 0x8f82000c, 0xafa20010,
+0x8f82003c, 0xafa20014, 0x8f860000, 0x8f870004,
+0x3c040001, 0x24845cc4, 0xc002b3b, 0x24051000,
+0x8c020220, 0x8c030224, 0x8c060218, 0x8c07021c,
+0x3c040001, 0x24845ccc, 0x24051100, 0xafa20010,
+0xc002b3b, 0xafa30014, 0xaf800054, 0xaf80011c,
+0x8c020218, 0x30420002, 0x10400009, 0x0,
+0x8c020220, 0x3c030002, 0x34630004, 0x431025,
+0xaf42000c, 0x8c02021c, 0x10000008, 0x34420004,
+0x8c020220, 0x3c030002, 0x34630006, 0x431025,
+0xaf42000c, 0x8c02021c, 0x34420006, 0xaf420014,
+0x8c020218, 0x30420010, 0x1040000a, 0x0,
+0x8c02021c, 0x34420004, 0xaf420010, 0x8c020220,
+0x3c03000a, 0x34630004, 0x431025, 0x10000009,
+0xaf420008, 0x8c020220, 0x3c03000a, 0x34630006,
+0x431025, 0xaf420008, 0x8c02021c, 0x34420006,
+0xaf420010, 0x24020001, 0xaf8200a0, 0xaf8200b0,
+0x8f830054, 0x8f820054, 0xaf8000d0, 0xaf8000c0,
+0x10000002, 0x24630064, 0x8f820054, 0x621023,
+0x2c420065, 0x1440fffc, 0x0, 0x8c040208,
+0x8c05020c, 0x26e20028, 0xaee20020, 0x24020490,
+0xaee20010, 0xaee40008, 0xaee5000c, 0x26e40008,
+0x8c820000, 0x8c830004, 0xaf820090, 0xaf830094,
+0x8c820018, 0xaf8200b4, 0x9482000a, 0xaf82009c,
+0x8f420014, 0xaf8200b0, 0x8f8200b0, 0x30420004,
+0x1440fffd, 0x0, 0x8f8200b0, 0x3c03ef00,
+0x431024, 0x10400021, 0x0, 0x8f8200b4,
+0xafa20010, 0x8f820090, 0x8f830094, 0x3c040001,
+0x24845cd4, 0xafa30014, 0x8f8600b0, 0x8f87009c,
+0x3c050001, 0xc002b3b, 0x34a5200d, 0x3c040001,
+0x24845ce0, 0x240203c0, 0xafa20010, 0xafa00014,
+0x8f860144, 0x3c070001, 0x24e75ce8, 0xc002b3b,
+0x3405dead, 0x8f82011c, 0x34420002, 0xaf82011c,
+0x8f820220, 0x34420004, 0xaf820220, 0x8f820140,
+0x3c030001, 0x431025, 0xaf820140, 0x96e20472,
+0x96e60452, 0x96e70462, 0xafa20010, 0x96e20482,
+0x3c040001, 0x24845d14, 0x24051200, 0xc002b3b,
+0xafa20014, 0x96f00452, 0x32020001, 0x10400002,
+0xb021, 0x24160001, 0x32020002, 0x54400001,
+0x36d60002, 0x32020008, 0x54400001, 0x36d60004,
+0x32020010, 0x54400001, 0x36d60008, 0x32020020,
+0x54400001, 0x36d60010, 0x32020040, 0x54400001,
+0x36d60020, 0x32020080, 0x54400001, 0x36d60040,
+0x96e60482, 0x30c20200, 0x54400001, 0x36d64000,
+0x96e30472, 0x30620200, 0x10400003, 0x30620100,
+0x10000003, 0x36d62000, 0x54400001, 0x36d61000,
+0x96f00462, 0x32c24000, 0x14400004, 0x3207009b,
+0x30c2009b, 0x14e20007, 0x240e0001, 0x32c22000,
+0x1440000d, 0x32020001, 0x3062009b, 0x10e20009,
+0x240e0001, 0x3c040001, 0x24845d20, 0x24051300,
+0x2003821, 0xa3ae003f, 0xafa30010, 0xc002b3b,
+0xafa00014, 0x32020001, 0x54400001, 0x36d60080,
+0x32020002, 0x54400001, 0x36d60100, 0x32020008,
+0x54400001, 0x36d60200, 0x32020010, 0x54400001,
+0x36d60400, 0x32020080, 0x54400001, 0x36d60800,
+0x8c020218, 0x30420200, 0x10400002, 0x3c020008,
+0x2c2b025, 0x8c020218, 0x30420800, 0x10400002,
+0x3c020080, 0x2c2b025, 0x8c020218, 0x30420400,
+0x10400002, 0x3c020100, 0x2c2b025, 0x8c020218,
+0x30420100, 0x10400002, 0x3c020200, 0x2c2b025,
+0x8c020218, 0x30420080, 0x10400002, 0x3c020400,
+0x2c2b025, 0x8c020218, 0x30422000, 0x10400002,
+0x3c020010, 0x2c2b025, 0x8c020218, 0x30424000,
+0x10400002, 0x3c020020, 0x2c2b025, 0x8c020218,
+0x30421000, 0x10400002, 0x3c020040, 0x2c2b025,
+0x8ee20498, 0x8ee3049c, 0xaf420160, 0xaf430164,
+0x8ee204a0, 0x8ee304a4, 0xaf420168, 0xaf43016c,
+0x8ee204a8, 0x8ee304ac, 0xaf420170, 0xaf430174,
+0x8ee20428, 0x8ee3042c, 0xaf420178, 0xaf43017c,
+0x8ee20448, 0x8ee3044c, 0xaf420180, 0xaf430184,
+0x8ee20458, 0x8ee3045c, 0xaf420188, 0xaf43018c,
+0x8ee20468, 0x8ee3046c, 0xaf420190, 0xaf430194,
+0x8ee20478, 0x8ee3047c, 0xaf420198, 0xaf43019c,
+0x8ee20488, 0x8ee3048c, 0xaf4201a0, 0xaf4301a4,
+0x8ee204b0, 0x8ee304b4, 0x24040080, 0xaf4201a8,
+0xaf4301ac, 0xc002ba8, 0x24050080, 0x8c02025c,
+0x27440224, 0xaf4201f0, 0x8c020260, 0x24050200,
+0x24060008, 0xc002bbf, 0xaf4201f8, 0x3c043b9a,
+0x3484ca00, 0x3821, 0x24020006, 0x24030002,
+0xaf4201f4, 0x240203e8, 0xaf430204, 0xaf430200,
+0xaf4401fc, 0xaf420294, 0x24020001, 0xaf430290,
+0xaf42029c, 0x3c030001, 0x671821, 0x90636cd8,
+0x3471021, 0x24e70001, 0xa043022c, 0x2ce2000f,
+0x1440fff8, 0x3471821, 0x24e70001, 0x3c080001,
+0x350840f8, 0x8f820040, 0x3c040001, 0x24845d2c,
+0x24051400, 0x21702, 0x24420030, 0xa062022c,
+0x3471021, 0xa040022c, 0x8c070218, 0x2c03021,
+0x240205c8, 0xafa20010, 0xc002b3b, 0xafa80014,
+0x3c040001, 0x24845d38, 0x3c050000, 0x24a55c80,
+0x24060010, 0x27b10030, 0x2203821, 0x27b30034,
+0xc0017a3, 0xafb30010, 0x3c030001, 0x8c636cc8,
+0x1060000a, 0x408021, 0x8fa30030, 0x2405ff00,
+0x8fa20034, 0x246400ff, 0x852024, 0x831823,
+0x431023, 0xafa20034, 0xafa40030, 0x3c040001,
+0x24845d44, 0x3c050000, 0x24a54100, 0x24060108,
+0x2203821, 0xc0017a3, 0xafb30010, 0x409021,
+0x32c20003, 0x3c010001, 0xac326e80, 0x10400045,
+0x2203821, 0x8f820050, 0x3c030010, 0x431024,
+0x10400016, 0x0, 0x8c020218, 0x30420040,
+0x1040000f, 0x24020001, 0x8f820050, 0x8c030218,
+0x240e0001, 0x3c040001, 0x24845d50, 0xa3ae003f,
+0xafa20010, 0xafa30014, 0x8f870040, 0x24051500,
+0xc002b3b, 0x2c03021, 0x10000004, 0x0,
+0x3c010001, 0x370821, 0xa02240f4, 0x3c040001,
+0x24845d5c, 0x3c050001, 0x24a55b40, 0x3c060001,
+0x24c65bac, 0xc53023, 0x8f420010, 0x27b30030,
+0x2603821, 0x27b10034, 0x34420a00, 0xaf420010,
+0xc0017a3, 0xafb10010, 0x3c040001, 0x24845d70,
+0x3c050001, 0x24a5b714, 0x3c060001, 0x24c6ba90,
+0xc53023, 0x2603821, 0xaf420108, 0xc0017a3,
+0xafb10010, 0x3c040001, 0x24845d8c, 0x3c050001,
+0x24a5be58, 0x3c060001, 0x24c6c900, 0xc53023,
+0x2603821, 0x3c010001, 0xac226ef4, 0xc0017a3,
+0xafb10010, 0x3c040001, 0x24845da4, 0x10000024,
+0x24051600, 0x3c040001, 0x24845dac, 0x3c050001,
+0x24a5a10c, 0x3c060001, 0x24c6a238, 0xc53023,
+0xc0017a3, 0xafb30010, 0x3c040001, 0x24845dbc,
+0x3c050001, 0x24a5b2b0, 0x3c060001, 0x24c6b70c,
+0xc53023, 0x2203821, 0xaf420108, 0xc0017a3,
+0xafb30010, 0x3c040001, 0x24845dd0, 0x3c050001,
+0x24a5ba98, 0x3c060001, 0x24c6be50, 0xc53023,
+0x2203821, 0x3c010001, 0xac226ef4, 0xc0017a3,
+0xafb30010, 0x3c040001, 0x24845de4, 0x24051650,
+0x2c03021, 0x3821, 0x3c010001, 0xac226ef8,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x32c20020,
+0x10400021, 0x27a70030, 0x3c040001, 0x24845df0,
+0x3c050001, 0x24a5b13c, 0x3c060001, 0x24c6b2a8,
+0xc53023, 0x24022000, 0xaf42001c, 0x27a20034,
+0xc0017a3, 0xafa20010, 0x21900, 0x31982,
+0x3c040800, 0x641825, 0xae430028, 0x24030010,
+0xaf43003c, 0x96e30450, 0xaf430040, 0x8f430040,
+0x3c040001, 0x24845e04, 0xafa00014, 0xafa30010,
+0x8f47001c, 0x24051660, 0x3c010001, 0xac226ef0,
+0x10000025, 0x32c60020, 0x8ee20448, 0x8ee3044c,
+0xaf43001c, 0x8f42001c, 0x2442e000, 0x2c422001,
+0x1440000a, 0x240e0001, 0x3c040001, 0x24845e10,
+0xa3ae003f, 0xafa00010, 0xafa00014, 0x8f46001c,
+0x24051700, 0xc002b3b, 0x3821, 0x3c020000,
+0x24425cbc, 0x21100, 0x21182, 0x3c030800,
+0x431025, 0xae420028, 0x24020008, 0xaf42003c,
+0x96e20450, 0xaf420040, 0x8f420040, 0x3c040001,
+0x24845e1c, 0xafa00014, 0xafa20010, 0x8f47001c,
+0x24051800, 0x32c60020, 0xc002b3b, 0x0,
+0x3c050fff, 0x3c030001, 0x8c636ef4, 0x34a5ffff,
+0x2403021, 0x3c020001, 0x8c426ef8, 0x3c040800,
+0x651824, 0x31882, 0x641825, 0x451024,
+0x21082, 0x441025, 0xacc20080, 0x32c20180,
+0x10400056, 0xacc30020, 0x8f82005c, 0x3c030080,
+0x431024, 0x1040000d, 0x0, 0x8f820050,
+0xafa20010, 0x8f82005c, 0x240e0001, 0x3c040001,
+0x24845e28, 0xa3ae003f, 0xafa20014, 0x8f870040,
+0x24051900, 0xc002b3b, 0x2c03021, 0x8f820050,
+0x3c030010, 0x431024, 0x10400016, 0x0,
+0x8c020218, 0x30420040, 0x1040000f, 0x24020001,
+0x8f820050, 0x8c030218, 0x240e0001, 0x3c040001,
+0x24845d50, 0xa3ae003f, 0xafa20010, 0xafa30014,
+0x8f870040, 0x24052000, 0xc002b3b, 0x2c03021,
+0x10000004, 0x0, 0x3c010001, 0x370821,
+0xa02240f4, 0x3c040001, 0x24845e34, 0x3c050001,
+0x24a55ac0, 0x3c060001, 0x24c65b38, 0xc53023,
+0x8f420008, 0x27b30030, 0x2603821, 0x27b10034,
+0x34420e00, 0xaf420008, 0xc0017a3, 0xafb10010,
+0x3c040001, 0x24845e4c, 0x3c050001, 0x24a5d8b4,
+0x3c060001, 0x24c6e3c8, 0xc53023, 0x2603821,
+0xaf42010c, 0xc0017a3, 0xafb10010, 0x3c040001,
+0x24845e64, 0x3c050001, 0x24a5e9ac, 0x3c060001,
+0x24c6f0f0, 0xc53023, 0x2603821, 0x3c010001,
+0xac226f04, 0xc0017a3, 0xafb10010, 0x3c040001,
+0x24845e7c, 0x10000027, 0x24052100, 0x3c040001,
+0x24845e84, 0x3c050001, 0x24a59fc8, 0x3c060001,
+0x24c6a104, 0xc53023, 0x27b10030, 0x2203821,
+0x27b30034, 0xc0017a3, 0xafb30010, 0x3c040001,
+0x24845e94, 0x3c050001, 0x24a5cad4, 0x3c060001,
+0x24c6d8ac, 0xc53023, 0x2203821, 0xaf42010c,
+0xc0017a3, 0xafb30010, 0x3c040001, 0x24845ea4,
+0x3c050001, 0x24a5e84c, 0x3c060001, 0x24c6e9a4,
+0xc53023, 0x2203821, 0x3c010001, 0xac226f04,
+0xc0017a3, 0xafb30010, 0x3c040001, 0x24845eb8,
+0x24052150, 0x2c03021, 0x3821, 0x3c010001,
+0xac226f10, 0xafa00010, 0xc002b3b, 0xafa00014,
+0x3c110fff, 0x3c030001, 0x8c636f04, 0x3631ffff,
+0x2409821, 0x3c020001, 0x8c426f10, 0x3c0e0800,
+0x711824, 0x31882, 0x6e1825, 0x511024,
+0x21082, 0x4e1025, 0xae630038, 0xae620078,
+0x8c020218, 0x30420040, 0x14400004, 0x24020001,
+0x3c010001, 0x370821, 0xa02240f4, 0x3c040001,
+0x24845ec4, 0x3c050001, 0x24a5e3d0, 0x3c060001,
+0x24c6e52c, 0xc53023, 0x27be0030, 0x3c03821,
+0x27b50034, 0xc0017a3, 0xafb50010, 0x3c010001,
+0xac226efc, 0x511024, 0x21082, 0x3c0e0800,
+0x4e1025, 0xae620050, 0x32c22000, 0x10400006,
+0x3c03821, 0x3c020000, 0x24425cbc, 0x2221024,
+0x1000000f, 0x21082, 0x3c040001, 0x24845ed8,
+0x3c050001, 0x24a5e534, 0x3c060001, 0x24c6e6e4,
+0xc53023, 0xc0017a3, 0xafb50010, 0x3c010001,
+0xac226f14, 0x511024, 0x21082, 0x3c0e0800,
+0x4e1025, 0xae620048, 0x32c24000, 0x10400005,
+0x27a70030, 0x3c020000, 0x24425cbc, 0x1000000e,
+0x21100, 0x3c040001, 0x24845ef0, 0x3c050001,
+0x24a5e6ec, 0x3c060001, 0x24c6e844, 0xc53023,
+0x27a20034, 0xc0017a3, 0xafa20010, 0x3c010001,
+0xac226f08, 0x21100, 0x21182, 0x3c030800,
+0x431025, 0xae420060, 0x3c040001, 0x24845f08,
+0x3c050001, 0x24a58230, 0x3c060001, 0x24c68650,
+0xc53023, 0x27b10030, 0x2203821, 0x27b30034,
+0xc0017a3, 0xafb30010, 0x3c0e0fff, 0x35ceffff,
+0x3c040001, 0x24845f14, 0x3c050000, 0x24a56468,
+0x3c060000, 0x24c66588, 0xc53023, 0x2203821,
+0x240f021, 0x3c010001, 0xac226edc, 0x4e1024,
+0x21082, 0x3c150800, 0x551025, 0xafae0044,
+0xafc200b8, 0xc0017a3, 0xafb30010, 0x3c040001,
+0x24845f20, 0x3c050000, 0x24a56590, 0x3c060000,
+0x24c66808, 0x8fae0044, 0xc53023, 0x2203821,
+0x3c010001, 0xac226ed0, 0x4e1024, 0x21082,
+0x551025, 0xafc200e8, 0xc0017a3, 0xafb30010,
+0x3c040001, 0x24845f38, 0x3c050000, 0x24a56810,
+0x3c060000, 0x24c66940, 0x8fae0044, 0xc53023,
+0x2203821, 0x3c010001, 0xac226ec8, 0x4e1024,
+0x21082, 0x551025, 0xafc200c0, 0xc0017a3,
+0xafb30010, 0x3c040001, 0x24845f50, 0x3c050001,
+0x24a5fad0, 0x3c060001, 0x24c6fba8, 0x8fae0044,
+0xc53023, 0x2203821, 0x3c010001, 0xac226ed4,
+0x4e1024, 0x21082, 0x551025, 0xafc200c8,
+0xc0017a3, 0xafb30010, 0x3c040001, 0x24845f5c,
+0x3c050001, 0x24a5c93c, 0x3c060001, 0x24c6ca20,
+0xc53023, 0x2203821, 0xaf420110, 0xc0017a3,
+0xafb30010, 0x3c040001, 0x24845f6c, 0x3c050001,
+0x24a5c910, 0x3c060001, 0x24c6c934, 0xc53023,
+0x2203821, 0xaf420124, 0xc0017a3, 0xafb30010,
+0x3c040001, 0x24845f7c, 0x3c050001, 0x24a55a80,
+0x3c060001, 0x24c65aac, 0xc53023, 0x2203821,
+0xaf420120, 0xaf420114, 0xc0017a3, 0xafb30010,
+0x3c040001, 0x24845f88, 0x3c050001, 0x24a5f298,
+0x3c060001, 0x24c6f6b4, 0xc53023, 0x2203821,
+0xaf420118, 0xc0017a3, 0xafb30010, 0x8fae0044,
+0x3c010001, 0xac226f18, 0x4e1024, 0x21082,
+0x551025, 0xc003fc3, 0xafc200d0, 0xc003c40,
+0x0, 0xc0027a8, 0x0, 0xac000228,
+0xac00022c, 0x96e20450, 0x2442ffff, 0xaf420038,
+0x96e20460, 0xaf420080, 0x32c24000, 0x14400003,
+0x0, 0x96e20480, 0xaf420084, 0x96e70490,
+0x50e00001, 0x24070800, 0x24e2ffff, 0xaf420088,
+0xaf42007c, 0x24020800, 0x10e2000f, 0x32c24000,
+0x10400003, 0x24020400, 0x10e2000b, 0x0,
+0x240e0001, 0x3c040001, 0x24845f98, 0xa3ae003f,
+0x96e60490, 0x24052170, 0x2c03821, 0xafa00010,
+0xc002b3b, 0xafa00014, 0x8f430138, 0x8f440138,
+0x24020001, 0xa34205c2, 0xaf430094, 0xaf440098,
+0xafa00010, 0xafa00014, 0x8f460080, 0x8f470084,
+0x3c040001, 0x24845fa4, 0xc002b3b, 0x24052200,
+0xc0024a4, 0x3c110800, 0x3c1433d8, 0x3694cb58,
+0x3c020800, 0x34420080, 0x3c040001, 0x24845fb0,
+0x3c050000, 0x24a55d00, 0x3c060000, 0x24c65d1c,
+0xc53023, 0x27a70030, 0xaf820060, 0x2402ffff,
+0xaf820064, 0x27a20034, 0xc0017a3, 0xafa20010,
+0x3c010001, 0xac226eb8, 0x21100, 0x21182,
+0x511025, 0xc0018fc, 0xae420000, 0x8f820240,
+0x3c030001, 0x431025, 0xaf820240, 0x3c020000,
+0x24424034, 0xaf820244, 0xaf800240, 0x8f820060,
+0x511024, 0x14400005, 0x3c030800, 0x8f820060,
+0x431024, 0x1040fffd, 0x0, 0xc003c4d,
+0x8821, 0x3c020100, 0xafa20020, 0x8f530018,
+0x240200ff, 0x56620001, 0x26710001, 0x8c020228,
+0x1622000e, 0x1330c0, 0x8f42033c, 0x24420001,
+0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001,
+0x24845c24, 0x3c050009, 0xafa00014, 0xafa20010,
+0x8fa60020, 0x1000003f, 0x34a50100, 0xd71021,
+0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4,
+0xc01821, 0x8f440178, 0x8f45017c, 0x1021,
+0x24070004, 0xafa70010, 0xafb10014, 0x8f48000c,
+0x24c604c0, 0x2e63021, 0xafa80018, 0x8f48010c,
+0x24070008, 0xa32821, 0xa3482b, 0x822021,
+0x100f809, 0x892021, 0x1440000b, 0x24070008,
+0x8f820120, 0xafa20010, 0x8f820124, 0x3c040001,
+0x24845c2c, 0x3c050009, 0xafa20014, 0x8fa60020,
+0x1000001c, 0x34a50200, 0x8f440160, 0x8f450164,
+0x8f43000c, 0xaf510018, 0x8f860120, 0x24020010,
+0xafa20010, 0xafb10014, 0xafa30018, 0x8f42010c,
+0x40f809, 0x24c6001c, 0x14400010, 0x0,
+0x8f420340, 0x24420001, 0xaf420340, 0x8f420340,
+0x8f820120, 0xafa20010, 0x8f820124, 0x3c040001,
+0x24845c34, 0x3c050009, 0xafa20014, 0x8fa60020,
+0x34a50300, 0xc002b3b, 0x2603821, 0x8f4202e4,
+0x24420001, 0xaf4202e4, 0x8f4202e4, 0x93a2003f,
+0x10400069, 0x3c020700, 0x34423000, 0xafa20028,
+0x8f530018, 0x240200ff, 0x12620002, 0x8821,
+0x26710001, 0x8c020228, 0x1622000e, 0x1330c0,
+0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c,
+0x8c020228, 0x3c040001, 0x24845c24, 0x3c050009,
+0xafa00014, 0xafa20010, 0x8fa60028, 0x1000003f,
+0x34a50100, 0xd71021, 0x8fa30028, 0x8fa4002c,
+0xac4304c0, 0xac4404c4, 0xc01821, 0x8f440178,
+0x8f45017c, 0x1021, 0x24070004, 0xafa70010,
+0xafb10014, 0x8f48000c, 0x24c604c0, 0x2e63021,
+0xafa80018, 0x8f48010c, 0x24070008, 0xa32821,
+0xa3482b, 0x822021, 0x100f809, 0x892021,
+0x1440000b, 0x24070008, 0x8f820120, 0xafa20010,
+0x8f820124, 0x3c040001, 0x24845c2c, 0x3c050009,
+0xafa20014, 0x8fa60028, 0x1000001c, 0x34a50200,
+0x8f440160, 0x8f450164, 0x8f43000c, 0xaf510018,
+0x8f860120, 0x24020010, 0xafa20010, 0xafb10014,
+0xafa30018, 0x8f42010c, 0x40f809, 0x24c6001c,
+0x14400010, 0x0, 0x8f420340, 0x24420001,
+0xaf420340, 0x8f420340, 0x8f820120, 0xafa20010,
+0x8f820124, 0x3c040001, 0x24845c34, 0x3c050009,
+0xafa20014, 0x8fa60028, 0x34a50300, 0xc002b3b,
+0x2603821, 0x8f4202f0, 0x24420001, 0xaf4202f0,
+0x8f4202f0, 0x3c040001, 0x24845fc0, 0xafa00010,
+0xafa00014, 0x8fa60028, 0x24052300, 0xc002b3b,
+0x3821, 0x10000004, 0x0, 0x8c020264,
+0x10400005, 0x0, 0x8f8200a0, 0x30420004,
+0x1440fffa, 0x0, 0x8f820044, 0x34420004,
+0xaf820044, 0x8f420308, 0x24420001, 0xaf420308,
+0x8f420308, 0x8f8200d8, 0x8f8300d4, 0x431023,
+0x2442ff80, 0xaf420090, 0x8f420090, 0x2842ff81,
+0x10400006, 0x24020001, 0x8f420090, 0x8f430144,
+0x431021, 0xaf420090, 0x24020001, 0xaf42008c,
+0x32c20008, 0x10400006, 0x0, 0x8f820214,
+0x3c038100, 0x3042ffff, 0x431025, 0xaf820214,
+0x3c030001, 0x8c636d94, 0x30620002, 0x10400009,
+0x30620001, 0x3c040001, 0x24845fcc, 0x3c050000,
+0x24a56d50, 0x3c060000, 0x24c671c8, 0x10000012,
+0xc53023, 0x10400009, 0x0, 0x3c040001,
+0x24845fdc, 0x3c050000, 0x24a571d0, 0x3c060000,
+0x24c67678, 0x10000008, 0xc53023, 0x3c040001,
+0x24845fec, 0x3c050000, 0x24a56948, 0x3c060000,
+0x24c66d48, 0xc53023, 0x27a70030, 0x27a20034,
+0xc0017a3, 0xafa20010, 0x3c010001, 0xac226ecc,
+0x3c020001, 0x8c426ecc, 0x3c030800, 0x21100,
+0x21182, 0x431025, 0xae420040, 0x8f8200a0,
+0xafa20010, 0x8f8200b0, 0xafa20014, 0x8f86005c,
+0x8f87011c, 0x3c040001, 0x24845ffc, 0x3c010001,
+0xac366ea4, 0x3c010001, 0xac206e94, 0x3c010001,
+0xac3c6e8c, 0x3c010001, 0xac3b6ebc, 0x3c010001,
+0xac376ec0, 0x3c010001, 0xac3a6ea0, 0xc002b3b,
+0x24052400, 0x8f820200, 0xafa20010, 0x8f820220,
+0xafa20014, 0x8f860044, 0x8f870050, 0x3c040001,
+0x24846008, 0xc002b3b, 0x24052500, 0x8f830060,
+0x74100b, 0x242000a, 0x200f821, 0x0,
+0xd, 0x8fbf0060, 0x8fbe005c, 0x8fb50058,
+0x8fb30054, 0x8fb20050, 0x8fb1004c, 0x8fb00048,
+0x3e00008, 0x27bd0068, 0x27bdffe0, 0x3c040001,
+0x24846014, 0x24052600, 0x3021, 0x3821,
+0xafbf0018, 0xafa00010, 0xc002b3b, 0xafa00014,
+0x8fbf0018, 0x3e00008, 0x27bd0020, 0x3e00008,
+0x0, 0x3e00008, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x3e00008, 0x0, 0x3e00008, 0x0,
+0x27bdfde0, 0x27a50018, 0x3c04dead, 0x3484beef,
+0xafbf0218, 0x8f820150, 0x3c03001f, 0x3463ffff,
+0xafa40018, 0xa22823, 0xa32824, 0x8ca20000,
+0x1044000a, 0x0, 0xafa50010, 0x8ca20000,
+0xafa20014, 0x8f860150, 0x8f870250, 0x3c040001,
+0x2484601c, 0xc002b3b, 0x24052700, 0x8fbf0218,
+0x3e00008, 0x27bd0220, 0x27bdffe0, 0x3c06abba,
+0x34c6babe, 0xafb00018, 0x3c100004, 0x3c07007f,
+0x34e7ffff, 0xafbf001c, 0x102840, 0x8e040000,
+0x8ca30000, 0xaca00000, 0xae060000, 0x8ca20000,
+0xaca30000, 0x10460005, 0xae040000, 0xa08021,
+0xf0102b, 0x1040fff5, 0x102840, 0x3c040001,
+0x24846028, 0x24052800, 0x2003021, 0x3821,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x2001021,
+0x8fbf001c, 0x8fb00018, 0x3e00008, 0x27bd0020,
+0x8c020224, 0x3047003f, 0x10e00010, 0x803021,
+0x2821, 0x24030020, 0xe31024, 0x10400002,
+0x63042, 0xa62821, 0x31842, 0x1460fffb,
+0xe31024, 0x2402f000, 0xa22824, 0x3402ffff,
+0x45102b, 0x14400003, 0x3c020001, 0x10000008,
+0x3c020001, 0x3442ffff, 0x851823, 0x43102b,
+0x14400003, 0xa01021, 0x3c02fffe, 0x821021,
+0x3e00008, 0x0, 0x27bdffd0, 0xafb50028,
+0x8fb50040, 0xafb20020, 0xa09021, 0xafb1001c,
+0x24c60003, 0xafbf002c, 0xafb30024, 0xafb00018,
+0x8ea20000, 0x2403fffc, 0xc38024, 0x50102b,
+0x1440001b, 0xe08821, 0x8e330000, 0xafb00010,
+0x8ea20000, 0xafa20014, 0x8e270000, 0x24053000,
+0xc002b3b, 0x2403021, 0x8e230000, 0x702021,
+0x64102b, 0x10400007, 0x2402821, 0x8ca20000,
+0xac620000, 0x24630004, 0x64102b, 0x1440fffb,
+0x24a50004, 0x8ea20000, 0x501023, 0xaea20000,
+0x8e220000, 0x501021, 0x1000000b, 0xae220000,
+0x2402002d, 0xa0820000, 0xafb00010, 0x8ea20000,
+0x2409821, 0xafa20014, 0x8e270000, 0x24053100,
+0xc002b3b, 0x2603021, 0x2601021, 0x8fbf002c,
+0x8fb50028, 0x8fb30024, 0x8fb20020, 0x8fb1001c,
+0x8fb00018, 0x3e00008, 0x27bd0030, 0x27bdffe8,
+0x3c1cc000, 0x3c05fffe, 0x3c030001, 0x8c636e84,
+0x3c040001, 0x8c846e90, 0x34a5bf08, 0x24021ffc,
+0x3c010001, 0xac226cd0, 0x3c0200c0, 0x3c010001,
+0xac226cd4, 0x3c020020, 0xafbf0010, 0x3c0100c0,
+0xac201ffc, 0x431023, 0x441023, 0x245bb000,
+0x365b821, 0x3c1d0001, 0x8fbd6ccc, 0x3a0f021,
+0x3c0400c0, 0x34840200, 0x3c1a00c0, 0x3c0300c0,
+0x346307c8, 0x24021dfc, 0x3c010001, 0xac226cd0,
+0x24021834, 0x3c010001, 0xac246cd4, 0x3c010001,
+0xac226cd0, 0x3c010001, 0xac236cd4, 0xc00180d,
+0x375a0200, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffc8, 0x3c040001, 0x24846034, 0x24053200,
+0x3c020001, 0x8c426cd0, 0x3c030001, 0x8c636cd4,
+0x3021, 0x3603821, 0xafbf0030, 0xafb3002c,
+0xafb20028, 0xafb10024, 0xafb00020, 0xafa2001c,
+0xafa30018, 0xafb70010, 0xc002b3b, 0xafba0014,
+0xc001916, 0x0, 0x8f820240, 0x34420004,
+0xaf820240, 0x24020001, 0xaf420000, 0x3c020001,
+0x571021, 0x904240f4, 0x10400092, 0x2403fffc,
+0x3c100001, 0x2610ac73, 0x3c120001, 0x2652a84c,
+0x2121023, 0x438024, 0x8fa3001c, 0x3c040001,
+0x24846040, 0x70102b, 0x1440001a, 0x27b30018,
+0x8fb10018, 0x24053000, 0x2403021, 0xafb00010,
+0xafa30014, 0xc002b3b, 0x2203821, 0x8fa30018,
+0x702021, 0x64102b, 0x10400007, 0x2403021,
+0x8cc20000, 0xac620000, 0x24630004, 0x64102b,
+0x1440fffb, 0x24c60004, 0x8fa2001c, 0x501023,
+0xafa2001c, 0x8e620000, 0x501021, 0x1000000a,
+0xae620000, 0x2408821, 0x24053100, 0xafb00010,
+0xafa30014, 0x8fa70018, 0x2203021, 0x2402002d,
+0xc002b3b, 0xa0820000, 0x24070020, 0x8fa3001c,
+0x3c040001, 0x2484605c, 0x24120020, 0x3c010001,
+0xac316eb0, 0x2c620020, 0x1440001d, 0x27b10018,
+0x8fb00018, 0x24053000, 0x3c060001, 0x24c66f50,
+0xafa70010, 0xafa30014, 0xc002b3b, 0x2003821,
+0x8fa30018, 0x3c040001, 0x24846f50, 0x24650020,
+0x65102b, 0x10400007, 0x0, 0x8c820000,
+0xac620000, 0x24630004, 0x65102b, 0x1440fffb,
+0x24840004, 0x8fa2001c, 0x521023, 0xafa2001c,
+0x8e220000, 0x521021, 0x1000000b, 0xae220000,
+0x3c100001, 0x26106f50, 0x24053100, 0xafa70010,
+0xafa30014, 0x8fa70018, 0x2003021, 0x2402002d,
+0xc002b3b, 0xa0820000, 0x24070020, 0x3c040001,
+0x24846070, 0x8fa3001c, 0x24120020, 0x3c010001,
+0xac306ee4, 0x2c620020, 0x1440001d, 0x27b10018,
+0x8fb00018, 0x24053000, 0x3c060001, 0x24c66f70,
+0xafa70010, 0xafa30014, 0xc002b3b, 0x2003821,
+0x8fa30018, 0x3c040001, 0x24846f70, 0x24650020,
+0x65102b, 0x10400007, 0x0, 0x8c820000,
+0xac620000, 0x24630004, 0x65102b, 0x1440fffb,
+0x24840004, 0x8fa2001c, 0x521023, 0xafa2001c,
+0x8e220000, 0x521021, 0x1000000b, 0xae220000,
+0x3c100001, 0x26106f70, 0x24053100, 0xafa70010,
+0xafa30014, 0x8fa70018, 0x2003021, 0x2402002d,
+0xc002b3b, 0xa0820000, 0x3c010001, 0x10000031,
+0xac306ee0, 0x3c100001, 0x2610821f, 0x3c120001,
+0x2652809c, 0x2121023, 0x438024, 0x8fa3001c,
+0x3c040001, 0x24846084, 0x70102b, 0x1440001a,
+0x27b30018, 0x8fb10018, 0x24053000, 0x2403021,
+0xafb00010, 0xafa30014, 0xc002b3b, 0x2203821,
+0x8fa30018, 0x702021, 0x64102b, 0x10400007,
+0x2403021, 0x8cc20000, 0xac620000, 0x24630004,
+0x64102b, 0x1440fffb, 0x24c60004, 0x8fa2001c,
+0x501023, 0xafa2001c, 0x8e620000, 0x501021,
+0x1000000a, 0xae620000, 0x2408821, 0x24053100,
+0xafb00010, 0xafa30014, 0x8fa70018, 0x2203021,
+0x2402002d, 0xc002b3b, 0xa0820000, 0x3c010001,
+0xac316eb0, 0x3c030001, 0x8c636eb0, 0x24020400,
+0x60f809, 0xaf820070, 0x8fbf0030, 0x8fb3002c,
+0x8fb20028, 0x8fb10024, 0x8fb00020, 0x3e00008,
+0x27bd0038, 0x0, 0x0, 0x8f820040,
+0x3c03f000, 0x431024, 0x3c036000, 0x14430006,
+0x0, 0x8f820050, 0x2403ff80, 0x431024,
+0x34420055, 0xaf820050, 0x8f820054, 0x244203e8,
+0xaf820058, 0x240201f4, 0xaf4200e0, 0x24020004,
+0xaf4200e8, 0x24020002, 0xaf4001b0, 0xaf4000e4,
+0xaf4200dc, 0xaf4000d8, 0xaf4000d4, 0x3e00008,
+0xaf4000d0, 0x8f820054, 0x24420005, 0x3e00008,
+0xaf820078, 0x27bdffe8, 0xafbf0010, 0x8f820054,
+0x244203e8, 0xaf820058, 0x3c020800, 0x2c21024,
+0x10400004, 0x3c02f7ff, 0x3442ffff, 0x2c2b024,
+0x36940040, 0x3c020001, 0x8c426da8, 0x10400017,
+0x3c020200, 0x3c030001, 0x8c636f1c, 0x10600016,
+0x282a025, 0x3c020001, 0x8c426e44, 0x14400012,
+0x3c020200, 0x3c020001, 0x8c426d94, 0x30420003,
+0x1440000d, 0x3c020200, 0x8f830224, 0x3c020002,
+0x8c428fec, 0x10620008, 0x3c020200, 0xc003daf,
+0x0, 0x10000004, 0x3c020200, 0xc004196,
+0x0, 0x3c020200, 0x2c21024, 0x10400003,
+0x0, 0xc001f4b, 0x0, 0x8f4200d8,
+0x8f4300dc, 0x24420001, 0xaf4200d8, 0x43102b,
+0x14400003, 0x0, 0xaf4000d8, 0x36940080,
+0x8c030238, 0x1060000c, 0x0, 0x8f4201b0,
+0x244203e8, 0xaf4201b0, 0x43102b, 0x14400006,
+0x0, 0x934205c5, 0x14400003, 0x0,
+0xc001da0, 0x0, 0x8fbf0010, 0x3e00008,
+0x27bd0018, 0x3e00008, 0x0, 0x27bdffd8,
+0xafbf0020, 0x8f43002c, 0x8f420038, 0x10620059,
+0x0, 0x3c020001, 0x571021, 0x904240f0,
+0x10400026, 0x24070008, 0x8f440170, 0x8f450174,
+0x8f48000c, 0x8f860120, 0x24020020, 0xafa20010,
+0xafa30014, 0xafa80018, 0x8f42010c, 0x40f809,
+0x24c6001c, 0x14400011, 0x24020001, 0x3c010001,
+0x370821, 0xa02240f0, 0x8f820124, 0xafa20010,
+0x8f820128, 0x3c040001, 0x24846128, 0xafa20014,
+0x8f46002c, 0x8f870120, 0x3c050009, 0xc002b3b,
+0x34a50900, 0x1000005c, 0x0, 0x8f420300,
+0x24420001, 0xaf420300, 0x8f420300, 0x8f42002c,
+0xa34005c1, 0x10000027, 0xaf420038, 0x8f440170,
+0x8f450174, 0x8f43002c, 0x8f48000c, 0x8f860120,
+0x24020080, 0xafa20010, 0xafa30014, 0xafa80018,
+0x8f42010c, 0x40f809, 0x24c6001c, 0x14400011,
+0x24020001, 0x3c010001, 0x370821, 0xa02240f1,
+0x8f820124, 0xafa20010, 0x8f820128, 0x3c040001,
+0x24846134, 0xafa20014, 0x8f46002c, 0x8f870120,
+0x3c050009, 0xc002b3b, 0x34a51100, 0x10000036,
+0x0, 0x8f420300, 0x8f43002c, 0x24420001,
+0xaf420300, 0x8f420300, 0x24020001, 0xa34205c1,
+0xaf430038, 0x3c010001, 0x370821, 0xa02040f1,
+0x3c010001, 0x370821, 0xa02040f0, 0x10000026,
+0xaf400034, 0x934205c1, 0x1040001d, 0x0,
+0xa34005c1, 0x8f820040, 0x30420001, 0x14400008,
+0x2021, 0x8c030104, 0x24020001, 0x50620005,
+0x24040001, 0x8c020264, 0x10400003, 0x801021,
+0x24040001, 0x801021, 0x10400006, 0x0,
+0x8f42030c, 0x24420001, 0xaf42030c, 0x10000008,
+0x8f42030c, 0x8f820044, 0x34420004, 0xaf820044,
+0x8f420308, 0x24420001, 0xaf420308, 0x8f420308,
+0x3c010001, 0x370821, 0xa02040f0, 0x3c010001,
+0x370821, 0xa02040f1, 0x8f420000, 0x10400007,
+0x0, 0xaf80004c, 0x8f82004c, 0x1040fffd,
+0x0, 0x10000005, 0x0, 0xaf800048,
+0x8f820048, 0x1040fffd, 0x0, 0x8f820060,
+0x3c03ff7f, 0x3463ffff, 0x431024, 0xaf820060,
+0x8f420000, 0x10400003, 0x0, 0x10000002,
+0xaf80004c, 0xaf800048, 0x8fbf0020, 0x3e00008,
+0x27bd0028, 0x3e00008, 0x0, 0x27bdffd8,
+0xafbf0020, 0x8f430044, 0x8f42007c, 0x10620029,
+0x24070008, 0x8f440168, 0x8f45016c, 0x8f48000c,
+0x8f860120, 0x24020040, 0xafa20010, 0xafa30014,
+0xafa80018, 0x8f42010c, 0x40f809, 0x24c6001c,
+0x14400011, 0x24020001, 0x3c010001, 0x370821,
+0xa02240f2, 0x8f820124, 0xafa20010, 0x8f820128,
+0x3c040001, 0x2484613c, 0xafa20014, 0x8f460044,
+0x8f870120, 0x3c050009, 0xc002b3b, 0x34a51300,
+0x1000000f, 0x0, 0x8f420304, 0x24420001,
+0xaf420304, 0x8f420304, 0x8f420044, 0xaf42007c,
+0x3c010001, 0x370821, 0xa02040f2, 0x10000004,
+0xaf400078, 0x3c010001, 0x370821, 0xa02040f2,
+0x8f420000, 0x10400007, 0x0, 0xaf80004c,
+0x8f82004c, 0x1040fffd, 0x0, 0x10000005,
+0x0, 0xaf800048, 0x8f820048, 0x1040fffd,
+0x0, 0x8f820060, 0x3c03feff, 0x3463ffff,
+0x431024, 0xaf820060, 0x8f420000, 0x10400003,
+0x0, 0x10000002, 0xaf80004c, 0xaf800048,
+0x8fbf0020, 0x3e00008, 0x27bd0028, 0x3e00008,
+0x0, 0x3c020001, 0x8c426da8, 0x27bdffa8,
+0xafbf0050, 0xafbe004c, 0xafb50048, 0xafb30044,
+0xafb20040, 0xafb1003c, 0xafb00038, 0x104000d5,
+0x8f900044, 0x8f4200d0, 0x24430001, 0x2842000b,
+0x144000e4, 0xaf4300d0, 0x8f420004, 0x30420002,
+0x1440009c, 0xaf4000d0, 0x8f420004, 0x3c030001,
+0x8c636d98, 0x34420002, 0xaf420004, 0x24020001,
+0x14620003, 0x3c020600, 0x10000002, 0x34423000,
+0x34421000, 0xafa20020, 0x8f4a0018, 0xafaa0034,
+0x27aa0020, 0xafaa002c, 0x8faa0034, 0x240200ff,
+0x11420002, 0x1821, 0x25430001, 0x8c020228,
+0x609821, 0x1662000e, 0x3c050009, 0x8f42033c,
+0x24420001, 0xaf42033c, 0x8f42033c, 0x8c020228,
+0x8fa70034, 0x3c040001, 0x2484610c, 0xafa00014,
+0xafa20010, 0x8fa60020, 0x10000070, 0x34a50500,
+0x8faa0034, 0xa38c0, 0xf71021, 0x8fa30020,
+0x8fa40024, 0xac4304c0, 0xac4404c4, 0x8f830054,
+0x8f820054, 0x247103e8, 0x2221023, 0x2c4203e9,
+0x1040001b, 0xa821, 0xe09021, 0x265e04c0,
+0x8f440178, 0x8f45017c, 0x2401821, 0x240a0004,
+0xafaa0010, 0xafb30014, 0x8f48000c, 0x1021,
+0x2fe3021, 0xafa80018, 0x8f48010c, 0x24070008,
+0xa32821, 0xa3482b, 0x822021, 0x100f809,
+0x892021, 0x54400006, 0x24150001, 0x8f820054,
+0x2221023, 0x2c4203e9, 0x1440ffe9, 0x0,
+0x32a200ff, 0x54400018, 0xaf530018, 0x8f420378,
+0x24420001, 0xaf420378, 0x8f420378, 0x8f820120,
+0x8faa002c, 0x8fa70034, 0xafa20010, 0x8f820124,
+0x3c040001, 0x24846118, 0xafa20014, 0x8d460000,
+0x3c050009, 0x10000035, 0x34a50600, 0x8f420308,
+0x24150001, 0x24420001, 0xaf420308, 0x8f420308,
+0x1000001e, 0x32a200ff, 0x8f830054, 0x8f820054,
+0x247103e8, 0x2221023, 0x2c4203e9, 0x10400016,
+0xa821, 0x3c1e0020, 0x24120010, 0x8f42000c,
+0x8f440160, 0x8f450164, 0x8f860120, 0xafb20010,
+0xafb30014, 0x5e1025, 0xafa20018, 0x8f42010c,
+0x24070008, 0x40f809, 0x24c6001c, 0x1440ffe3,
+0x0, 0x8f820054, 0x2221023, 0x2c4203e9,
+0x1440ffee, 0x0, 0x32a200ff, 0x14400011,
+0x3c050009, 0x8f420378, 0x24420001, 0xaf420378,
+0x8f420378, 0x8f820120, 0x8faa002c, 0x8fa70034,
+0xafa20010, 0x8f820124, 0x3c040001, 0x24846120,
+0xafa20014, 0x8d460000, 0x34a50700, 0xc002b3b,
+0x0, 0x8f4202ec, 0x24420001, 0xaf4202ec,
+0x8f4202ec, 0x8f420004, 0x30420001, 0x50400029,
+0x36100040, 0x3c020400, 0x2c21024, 0x10400013,
+0x2404ffdf, 0x8f420250, 0x8f430254, 0x8f4401b4,
+0x14640006, 0x36100040, 0x8f420270, 0x8f430274,
+0x8f4401b8, 0x10640007, 0x2402ffdf, 0x8f420250,
+0x8f430254, 0x8f440270, 0x8f450274, 0x10000012,
+0x3a100020, 0x1000002b, 0x2028024, 0x8f420250,
+0x8f430254, 0x8f4501b4, 0x14650006, 0x2048024,
+0x8f420270, 0x8f430274, 0x8f4401b8, 0x50640021,
+0x36100040, 0x8f420250, 0x8f430254, 0x8f440270,
+0x8f450274, 0x3a100040, 0xaf4301b4, 0x10000019,
+0xaf4501b8, 0x8f4200d4, 0x24430001, 0x10000011,
+0x28420033, 0x8f420004, 0x30420001, 0x10400009,
+0x3c020400, 0x2c21024, 0x10400004, 0x2402ffdf,
+0x2028024, 0x1000000b, 0x36100040, 0x10000009,
+0x36100060, 0x8f4200d4, 0x36100040, 0x24430001,
+0x284201f5, 0x14400003, 0xaf4300d4, 0xaf4000d4,
+0x3a100020, 0xaf900044, 0x2402ff7f, 0x282a024,
+0x8fbf0050, 0x8fbe004c, 0x8fb50048, 0x8fb30044,
+0x8fb20040, 0x8fb1003c, 0x8fb00038, 0x3e00008,
+0x27bd0058, 0x3e00008, 0x0, 0x3c020001,
+0x8c426da8, 0x27bdffb0, 0xafbf0048, 0xafbe0044,
+0xafb50040, 0xafb3003c, 0xafb20038, 0xafb10034,
+0x104000c7, 0xafb00030, 0x8f4200d0, 0x24430001,
+0x2842000b, 0x144000da, 0xaf4300d0, 0x8f420004,
+0x30420002, 0x14400097, 0xaf4000d0, 0x8f420004,
+0x3c030001, 0x8c636d98, 0x34420002, 0xaf420004,
+0x24020001, 0x14620003, 0x3c020600, 0x10000002,
+0x34423000, 0x34421000, 0xafa20020, 0x1821,
+0x8f5e0018, 0x27aa0020, 0x240200ff, 0x13c20002,
+0xafaa002c, 0x27c30001, 0x8c020228, 0x609021,
+0x1642000e, 0x1e38c0, 0x8f42033c, 0x24420001,
+0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001,
+0x2484610c, 0x3c050009, 0xafa00014, 0xafa20010,
+0x8fa60020, 0x1000006d, 0x34a50500, 0xf71021,
+0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4,
+0x8f830054, 0x8f820054, 0x247003e8, 0x2021023,
+0x2c4203e9, 0x1040001b, 0x9821, 0xe08821,
+0x263504c0, 0x8f440178, 0x8f45017c, 0x2201821,
+0x240a0004, 0xafaa0010, 0xafb20014, 0x8f48000c,
+0x1021, 0x2f53021, 0xafa80018, 0x8f48010c,
+0x24070008, 0xa32821, 0xa3482b, 0x822021,
+0x100f809, 0x892021, 0x54400006, 0x24130001,
+0x8f820054, 0x2021023, 0x2c4203e9, 0x1440ffe9,
+0x0, 0x326200ff, 0x54400017, 0xaf520018,
+0x8f420378, 0x24420001, 0xaf420378, 0x8f420378,
+0x8f820120, 0x8faa002c, 0xafa20010, 0x8f820124,
+0x3c040001, 0x24846118, 0x3c050009, 0xafa20014,
+0x8d460000, 0x10000035, 0x34a50600, 0x8f420308,
+0x24130001, 0x24420001, 0xaf420308, 0x8f420308,
+0x1000001e, 0x326200ff, 0x8f830054, 0x8f820054,
+0x247003e8, 0x2021023, 0x2c4203e9, 0x10400016,
+0x9821, 0x3c150020, 0x24110010, 0x8f42000c,
+0x8f440160, 0x8f450164, 0x8f860120, 0xafb10010,
+0xafb20014, 0x551025, 0xafa20018, 0x8f42010c,
+0x24070008, 0x40f809, 0x24c6001c, 0x1440ffe3,
+0x0, 0x8f820054, 0x2021023, 0x2c4203e9,
+0x1440ffee, 0x0, 0x326200ff, 0x14400011,
+0x0, 0x8f420378, 0x24420001, 0xaf420378,
+0x8f420378, 0x8f820120, 0x8faa002c, 0xafa20010,
+0x8f820124, 0x3c040001, 0x24846120, 0x3c050009,
+0xafa20014, 0x8d460000, 0x34a50700, 0xc002b3b,
+0x3c03821, 0x8f4202ec, 0x24420001, 0xaf4202ec,
+0x8f4202ec, 0x8f420004, 0x30420001, 0x10400018,
+0x24040001, 0x8f420250, 0x8f430254, 0x8f4501b4,
+0x3c010001, 0x14650006, 0xa0246cf1, 0x8f420270,
+0x8f430274, 0x8f4401b8, 0x10640021, 0x0,
+0x8f420250, 0x8f430254, 0x3c040001, 0x90846cf0,
+0x8f460270, 0x8f470274, 0x38840001, 0xaf4301b4,
+0xaf4701b8, 0x3c010001, 0x10000025, 0xa0246cf0,
+0x8f4200d4, 0x3c010001, 0xa0206cf0, 0x24430001,
+0x28420033, 0x1440001e, 0xaf4300d4, 0x3c020001,
+0x90426cf1, 0xaf4000d4, 0x10000017, 0x38420001,
+0x8f420004, 0x30420001, 0x10400008, 0x0,
+0xc00565a, 0x2021, 0x3c010001, 0xa0206cf1,
+0x3c010001, 0x1000000e, 0xa0206cf0, 0x8f4200d4,
+0x3c010001, 0xa0206cf0, 0x24430001, 0x284201f5,
+0x14400007, 0xaf4300d4, 0x3c020001, 0x90426cf1,
+0xaf4000d4, 0x421026, 0x3c010001, 0xa0226cf1,
+0x3c030001, 0x8c636d98, 0x24020002, 0x1462000c,
+0x3c030002, 0x3c030001, 0x90636cf1, 0x24020001,
+0x5462001f, 0x2021, 0x3c020001, 0x90426cf0,
+0x1443001b, 0x24040005, 0x10000019, 0x24040006,
+0x3c020002, 0x8c428ff4, 0x431024, 0x1040000b,
+0x24020001, 0x3c030001, 0x90636cf1, 0x54620010,
+0x2021, 0x3c020001, 0x90426cf0, 0x1443000c,
+0x24040003, 0x1000000a, 0x24040004, 0x3c030001,
+0x90636cf1, 0x14620006, 0x2021, 0x3c020001,
+0x90426cf0, 0x24040001, 0x50440001, 0x24040002,
+0xc00565a, 0x0, 0x2402ff7f, 0x282a024,
+0x8fbf0048, 0x8fbe0044, 0x8fb50040, 0x8fb3003c,
+0x8fb20038, 0x8fb10034, 0x8fb00030, 0x3e00008,
+0x27bd0050, 0x3e00008, 0x0, 0x3c020001,
+0x8c426da8, 0x27bdffb0, 0xafbf0048, 0xafbe0044,
+0xafb50040, 0xafb3003c, 0xafb20038, 0xafb10034,
+0x104000de, 0xafb00030, 0x8f4200d0, 0x3c040001,
+0x8c846d98, 0x24430001, 0x2842000b, 0xaf4400e8,
+0x144000fe, 0xaf4300d0, 0x8f420004, 0x30420002,
+0x14400095, 0xaf4000d0, 0x8f420004, 0x34420002,
+0xaf420004, 0x24020001, 0x14820003, 0x3c020600,
+0x10000002, 0x34423000, 0x34421000, 0xafa20020,
+0x1821, 0x8f5e0018, 0x27aa0020, 0x240200ff,
+0x13c20002, 0xafaa002c, 0x27c30001, 0x8c020228,
+0x609021, 0x1642000e, 0x1e38c0, 0x8f42033c,
+0x24420001, 0xaf42033c, 0x8f42033c, 0x8c020228,
+0x3c040001, 0x2484610c, 0x3c050009, 0xafa00014,
+0xafa20010, 0x8fa60020, 0x1000006d, 0x34a50500,
+0xf71021, 0x8fa30020, 0x8fa40024, 0xac4304c0,
+0xac4404c4, 0x8f830054, 0x8f820054, 0x247003e8,
+0x2021023, 0x2c4203e9, 0x1040001b, 0x9821,
+0xe08821, 0x263504c0, 0x8f440178, 0x8f45017c,
+0x2201821, 0x240a0004, 0xafaa0010, 0xafb20014,
+0x8f48000c, 0x1021, 0x2f53021, 0xafa80018,
+0x8f48010c, 0x24070008, 0xa32821, 0xa3482b,
+0x822021, 0x100f809, 0x892021, 0x54400006,
+0x24130001, 0x8f820054, 0x2021023, 0x2c4203e9,
+0x1440ffe9, 0x0, 0x326200ff, 0x54400017,
+0xaf520018, 0x8f420378, 0x24420001, 0xaf420378,
+0x8f420378, 0x8f820120, 0x8faa002c, 0xafa20010,
+0x8f820124, 0x3c040001, 0x24846118, 0x3c050009,
+0xafa20014, 0x8d460000, 0x10000035, 0x34a50600,
+0x8f420308, 0x24130001, 0x24420001, 0xaf420308,
+0x8f420308, 0x1000001e, 0x326200ff, 0x8f830054,
+0x8f820054, 0x247003e8, 0x2021023, 0x2c4203e9,
+0x10400016, 0x9821, 0x3c150020, 0x24110010,
+0x8f42000c, 0x8f440160, 0x8f450164, 0x8f860120,
+0xafb10010, 0xafb20014, 0x551025, 0xafa20018,
+0x8f42010c, 0x24070008, 0x40f809, 0x24c6001c,
+0x1440ffe3, 0x0, 0x8f820054, 0x2021023,
+0x2c4203e9, 0x1440ffee, 0x0, 0x326200ff,
+0x14400011, 0x0, 0x8f420378, 0x24420001,
+0xaf420378, 0x8f420378, 0x8f820120, 0x8faa002c,
+0xafa20010, 0x8f820124, 0x3c040001, 0x24846120,
+0x3c050009, 0xafa20014, 0x8d460000, 0x34a50700,
+0xc002b3b, 0x3c03821, 0x8f4202ec, 0x24420001,
+0xaf4202ec, 0x8f4202ec, 0x8f420004, 0x30420001,
+0x10400033, 0x3c020400, 0x2c21024, 0x10400017,
+0x0, 0x934205c0, 0x8f440250, 0x8f450254,
+0x8f4301b4, 0x34420020, 0x14a30006, 0xa34205c0,
+0x8f420270, 0x8f430274, 0x8f4401b8, 0x10640008,
+0x0, 0x8f420250, 0x8f430254, 0x934405c0,
+0x8f460270, 0x8f470274, 0x10000016, 0x38840040,
+0x934205c0, 0x10000048, 0x304200bf, 0x934205c0,
+0x8f440250, 0x8f450254, 0x8f4301b4, 0x304200bf,
+0x14a30006, 0xa34205c0, 0x8f420270, 0x8f430274,
+0x8f4401b8, 0x1064000b, 0x0, 0x8f420250,
+0x8f430254, 0x934405c0, 0x8f460270, 0x8f470274,
+0x38840020, 0xaf4301b4, 0xaf4701b8, 0x10000033,
+0xa34405c0, 0x934205c0, 0x1000002f, 0x34420020,
+0x934205c0, 0x8f4300d4, 0x34420020, 0xa34205c0,
+0x24620001, 0x10000023, 0x28630033, 0x8f4200e4,
+0x8f4300e0, 0x24420001, 0xaf4200e4, 0x43102a,
+0x14400006, 0x24030001, 0x8f4200e8, 0x14430002,
+0xaf4000e4, 0x24030004, 0xaf4300e8, 0x8f420004,
+0x30420001, 0x1040000d, 0x3c020400, 0x2c21024,
+0x10400007, 0x0, 0x934205c0, 0x34420040,
+0xa34205c0, 0x934205c0, 0x1000000f, 0x304200df,
+0x934205c0, 0x1000000c, 0x34420060, 0x934205c0,
+0x8f4300d4, 0x34420020, 0xa34205c0, 0x24620001,
+0x286300fb, 0x14600005, 0xaf4200d4, 0x934205c0,
+0xaf4000d4, 0x38420040, 0xa34205c0, 0x934205c0,
+0x8f4300e8, 0x3042007f, 0xa34205c0, 0x24020001,
+0x14620005, 0x0, 0x934405c0, 0x42102,
+0x10000003, 0x348400f0, 0x934405c0, 0x3484000f,
+0xc005640, 0x0, 0x2402ff7f, 0x282a024,
+0x8fbf0048, 0x8fbe0044, 0x8fb50040, 0x8fb3003c,
+0x8fb20038, 0x8fb10034, 0x8fb00030, 0x3e00008,
+0x27bd0050, 0x3e00008, 0x0, 0x27bdffb0,
+0x274401c0, 0x26e30028, 0x24650400, 0x65102b,
+0xafbf0048, 0xafbe0044, 0xafb50040, 0xafb3003c,
+0xafb20038, 0xafb10034, 0x10400007, 0xafb00030,
+0x8c820000, 0xac620000, 0x24630004, 0x65102b,
+0x1440fffb, 0x24840004, 0x8c020080, 0xaee20044,
+0x8c0200c0, 0xaee20040, 0x8c020084, 0xaee20030,
+0x8c020084, 0xaee2023c, 0x8c020088, 0xaee20240,
+0x8c02008c, 0xaee20244, 0x8c020090, 0xaee20248,
+0x8c020094, 0xaee2024c, 0x8c020098, 0xaee20250,
+0x8c02009c, 0xaee20254, 0x8c0200a0, 0xaee20258,
+0x8c0200a4, 0xaee2025c, 0x8c0200a8, 0xaee20260,
+0x8c0200ac, 0xaee20264, 0x8c0200b0, 0xaee20268,
+0x8c0200b4, 0xaee2026c, 0x8c0200b8, 0xaee20270,
+0x8c0200bc, 0x24040001, 0xaee20274, 0xaee00034,
+0x41080, 0x571021, 0x8ee30034, 0x8c42023c,
+0x24840001, 0x621821, 0x2c82000f, 0xaee30034,
+0x1440fff8, 0x41080, 0x8c0200cc, 0xaee20048,
+0x8c0200d0, 0xaee2004c, 0x8c0200e0, 0xaee201f8,
+0x8c0200e4, 0xaee201fc, 0x8c0200e8, 0xaee20200,
+0x8c0200ec, 0xaee20204, 0x8c0200f0, 0xaee20208,
+0x8ee400c0, 0x8ee500c4, 0x8c0200fc, 0x45102b,
+0x1040000b, 0x0, 0x8ee200c0, 0x8ee300c4,
+0x24040001, 0x24050000, 0x651821, 0x65302b,
+0x441021, 0x461021, 0xaee200c0, 0xaee300c4,
+0x8c0200fc, 0x8ee400c0, 0x8ee500c4, 0x2408ffff,
+0x24090000, 0x401821, 0x1021, 0x882024,
+0xa92824, 0x822025, 0xa32825, 0xaee400c0,
+0xaee500c4, 0x8ee400d0, 0x8ee500d4, 0x8c0200f4,
+0x45102b, 0x1040000b, 0x0, 0x8ee200d0,
+0x8ee300d4, 0x24040001, 0x24050000, 0x651821,
+0x65302b, 0x441021, 0x461021, 0xaee200d0,
+0xaee300d4, 0x8c0200f4, 0x8ee400d0, 0x8ee500d4,
+0x401821, 0x1021, 0x882024, 0xa92824,
+0x822025, 0xa32825, 0xaee400d0, 0xaee500d4,
+0x8ee400c8, 0x8ee500cc, 0x8c0200f8, 0x45102b,
+0x1040000b, 0x0, 0x8ee200c8, 0x8ee300cc,
+0x24040001, 0x24050000, 0x651821, 0x65302b,
+0x441021, 0x461021, 0xaee200c8, 0xaee300cc,
+0x8c0200f8, 0x8ee400c8, 0x8ee500cc, 0x401821,
+0x1021, 0x882024, 0xa92824, 0x822025,
+0xa32825, 0x24020008, 0xaee400c8, 0xaee500cc,
+0xafa20010, 0xafa00014, 0x8f42000c, 0x8c040208,
+0x8c05020c, 0xafa20018, 0x8f42010c, 0x26e60028,
+0x40f809, 0x24070400, 0x104000f0, 0x3c020400,
+0xafa20020, 0x934205c6, 0x10400089, 0x1821,
+0x8f5e0018, 0x27aa0020, 0x240200ff, 0x13c20002,
+0xafaa002c, 0x27c30001, 0x8c020228, 0x609021,
+0x1642000e, 0x1e38c0, 0x8f42033c, 0x24420001,
+0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001,
+0x2484610c, 0x3c050009, 0xafa00014, 0xafa20010,
+0x8fa60020, 0x1000006b, 0x34a50500, 0xf71021,
+0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4,
+0x8f830054, 0x8f820054, 0x247003e8, 0x2021023,
+0x2c4203e9, 0x1040001b, 0x9821, 0xe08821,
+0x263504c0, 0x8f440178, 0x8f45017c, 0x2201821,
+0x240a0004, 0xafaa0010, 0xafb20014, 0x8f48000c,
+0x1021, 0x2f53021, 0xafa80018, 0x8f48010c,
+0x24070008, 0xa32821, 0xa3482b, 0x822021,
+0x100f809, 0x892021, 0x54400006, 0x24130001,
+0x8f820054, 0x2021023, 0x2c4203e9, 0x1440ffe9,
+0x0, 0x326200ff, 0x54400017, 0xaf520018,
+0x8f420378, 0x24420001, 0xaf420378, 0x8f420378,
+0x8f820120, 0x8faa002c, 0xafa20010, 0x8f820124,
+0x3c040001, 0x24846118, 0x3c050009, 0xafa20014,
+0x8d460000, 0x10000033, 0x34a50600, 0x8f420308,
+0x24130001, 0x24420001, 0xaf420308, 0x8f420308,
+0x1000001c, 0x326200ff, 0x8f830054, 0x8f820054,
+0x247003e8, 0x2021023, 0x2c4203e9, 0x10400014,
+0x9821, 0x24110010, 0x8f42000c, 0x8f440160,
+0x8f450164, 0x8f860120, 0xafb10010, 0xafb20014,
+0xafa20018, 0x8f42010c, 0x24070008, 0x40f809,
+0x24c6001c, 0x1440ffe5, 0x0, 0x8f820054,
+0x2021023, 0x2c4203e9, 0x1440ffef, 0x0,
+0x326200ff, 0x54400012, 0x24020001, 0x8f420378,
+0x24420001, 0xaf420378, 0x8f420378, 0x8f820120,
+0x8faa002c, 0xafa20010, 0x8f820124, 0x3c040001,
+0x24846120, 0x3c050009, 0xafa20014, 0x8d460000,
+0x34a50700, 0xc002b3b, 0x3c03821, 0x1021,
+0x1440005b, 0x24020001, 0x10000065, 0x0,
+0x8f510018, 0x240200ff, 0x12220002, 0x8021,
+0x26300001, 0x8c020228, 0x1602000e, 0x1130c0,
+0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c,
+0x8c020228, 0x3c040001, 0x248460f4, 0x3c050009,
+0xafa00014, 0xafa20010, 0x8fa60020, 0x1000003f,
+0x34a50100, 0xd71021, 0x8fa30020, 0x8fa40024,
+0xac4304c0, 0xac4404c4, 0xc01821, 0x8f440178,
+0x8f45017c, 0x1021, 0x24070004, 0xafa70010,
+0xafb00014, 0x8f48000c, 0x24c604c0, 0x2e63021,
+0xafa80018, 0x8f48010c, 0x24070008, 0xa32821,
+0xa3482b, 0x822021, 0x100f809, 0x892021,
+0x1440000b, 0x24070008, 0x8f820120, 0xafa20010,
+0x8f820124, 0x3c040001, 0x248460fc, 0x3c050009,
+0xafa20014, 0x8fa60020, 0x1000001c, 0x34a50200,
+0x8f440160, 0x8f450164, 0x8f43000c, 0xaf500018,
+0x8f860120, 0x24020010, 0xafa20010, 0xafb00014,
+0xafa30018, 0x8f42010c, 0x40f809, 0x24c6001c,
+0x54400011, 0x24020001, 0x8f420340, 0x24420001,
+0xaf420340, 0x8f420340, 0x8f820120, 0xafa20010,
+0x8f820124, 0x3c040001, 0x24846104, 0x3c050009,
+0xafa20014, 0x8fa60020, 0x34a50300, 0xc002b3b,
+0x2203821, 0x1021, 0x1040000d, 0x24020001,
+0x8f4202e8, 0xa34005c6, 0xaf4001b0, 0x24420001,
+0xaf4202e8, 0x8f4202e8, 0x8ee20150, 0x24420001,
+0xaee20150, 0x10000003, 0x8ee20150, 0x24020001,
+0xa34205c6, 0x8fbf0048, 0x8fbe0044, 0x8fb50040,
+0x8fb3003c, 0x8fb20038, 0x8fb10034, 0x8fb00030,
+0x3e00008, 0x27bd0050, 0x27bdffd8, 0xafbf0020,
+0x8f8200b0, 0x30420004, 0x10400068, 0x0,
+0x8f430128, 0x8f820104, 0x14620005, 0x0,
+0x8f430130, 0x8f8200b4, 0x10620006, 0x0,
+0x8f820104, 0xaf420128, 0x8f8200b4, 0x1000005b,
+0xaf420130, 0x8f8200b0, 0x3c030080, 0x431024,
+0x1040000d, 0x0, 0x8f82011c, 0x34420002,
+0xaf82011c, 0x8f8200b0, 0x2403fffb, 0x431024,
+0xaf8200b0, 0x8f82011c, 0x2403fffd, 0x431024,
+0x1000004a, 0xaf82011c, 0x8f430128, 0x8f820104,
+0x14620005, 0x0, 0x8f430130, 0x8f8200b4,
+0x10620010, 0x0, 0x8f820104, 0xaf420128,
+0x8f8200b4, 0x8f430128, 0xaf420130, 0xafa30010,
+0x8f420130, 0x3c040001, 0x24846144, 0xafa20014,
+0x8f86011c, 0x8f8700b0, 0x3c050005, 0x10000031,
+0x34a50900, 0x8f420128, 0xafa20010, 0x8f420130,
+0x3c040001, 0x24846150, 0xafa20014, 0x8f86011c,
+0x8f8700b0, 0x3c050005, 0xc002b3b, 0x34a51000,
+0x8f82011c, 0x34420002, 0xaf82011c, 0x8f830104,
+0x8f8200b0, 0x34420001, 0xaf8200b0, 0x24020008,
+0xaf830104, 0xafa20010, 0xafa00014, 0x8f42000c,
+0x8c040208, 0x8c05020c, 0xafa20018, 0x8f42010c,
+0x26e60028, 0x40f809, 0x24070400, 0x8f82011c,
+0x2403fffd, 0x431024, 0xaf82011c, 0x8ee201dc,
+0x24420001, 0xaee201dc, 0x8ee201dc, 0x8f420128,
+0xafa20010, 0x8f420130, 0x3c040001, 0x2484615c,
+0xafa20014, 0x8f86011c, 0x8f8700b0, 0x3c050005,
+0x34a51100, 0xc002b3b, 0x0, 0x8f8200a0,
+0x30420004, 0x10400069, 0x0, 0x8f43012c,
+0x8f820124, 0x14620005, 0x0, 0x8f430134,
+0x8f8200a4, 0x10620006, 0x0, 0x8f820124,
+0xaf42012c, 0x8f8200a4, 0x1000005c, 0xaf420134,
+0x8f8200a0, 0x3c030080, 0x431024, 0x1040000d,
+0x0, 0x8f82011c, 0x34420002, 0xaf82011c,
+0x8f8200a0, 0x2403fffb, 0x431024, 0xaf8200a0,
+0x8f82011c, 0x2403fffd, 0x431024, 0x1000004b,
+0xaf82011c, 0x8f43012c, 0x8f820124, 0x14620005,
+0x0, 0x8f430134, 0x8f8200a4, 0x10620010,
+0x0, 0x8f820124, 0xaf42012c, 0x8f8200a4,
+0x8f43012c, 0xaf420134, 0xafa30010, 0x8f420134,
+0x3c040001, 0x24846168, 0xafa20014, 0x8f86011c,
+0x8f8700a0, 0x3c050005, 0x10000032, 0x34a51200,
+0x8f42012c, 0xafa20010, 0x8f420134, 0x3c040001,
+0x24846174, 0xafa20014, 0x8f86011c, 0x8f8700a0,
+0x3c050005, 0xc002b3b, 0x34a51300, 0x8f82011c,
+0x34420002, 0xaf82011c, 0x8f830124, 0x8f8200a0,
+0x34420001, 0xaf8200a0, 0x24020080, 0xaf830124,
+0xafa20010, 0xafa00014, 0x8f420014, 0x8c040208,
+0x8c05020c, 0xafa20018, 0x8f420108, 0x3c060001,
+0x24c66ed8, 0x40f809, 0x24070004, 0x8f82011c,
+0x2403fffd, 0x431024, 0xaf82011c, 0x8ee201dc,
+0x24420001, 0xaee201dc, 0x8ee201dc, 0x8f42012c,
+0xafa20010, 0x8f420134, 0x3c040001, 0x24846180,
+0xafa20014, 0x8f86011c, 0x8f8700a0, 0x3c050005,
+0x34a51400, 0xc002b3b, 0x0, 0x8fbf0020,
+0x3e00008, 0x27bd0028, 0x3c081000, 0x24070001,
+0x3c060080, 0x3c050100, 0x8f820070, 0x481024,
+0x1040fffd, 0x0, 0x8f820054, 0x24420005,
+0xaf820078, 0x8c040234, 0x10800016, 0x1821,
+0x3c020001, 0x571021, 0x8c4240e8, 0x24420005,
+0x3c010001, 0x370821, 0xac2240e8, 0x3c020001,
+0x571021, 0x8c4240e8, 0x44102b, 0x14400009,
+0x0, 0x3c030080, 0x3c010001, 0x370821,
+0xac2040e8, 0x3c010001, 0x370821, 0x1000000b,
+0xa02740f0, 0x3c020001, 0x571021, 0x904240f0,
+0x54400006, 0x661825, 0x3c020001, 0x571021,
+0x904240f1, 0x54400001, 0x661825, 0x8c040230,
+0x10800013, 0x0, 0x3c020001, 0x571021,
+0x8c4240ec, 0x24420005, 0x3c010001, 0x370821,
+0xac2240ec, 0x3c020001, 0x571021, 0x8c4240ec,
+0x44102b, 0x14400006, 0x0, 0x3c010001,
+0x370821, 0xac2040ec, 0x10000006, 0x651825,
+0x3c020001, 0x571021, 0x904240f2, 0x54400001,
+0x651825, 0x1060ffbc, 0x0, 0x8f420000,
+0x10400007, 0x0, 0xaf80004c, 0x8f82004c,
+0x1040fffd, 0x0, 0x10000005, 0x0,
+0xaf800048, 0x8f820048, 0x1040fffd, 0x0,
+0x8f820060, 0x431025, 0xaf820060, 0x8f420000,
+0x10400003, 0x0, 0x1000ffa7, 0xaf80004c,
+0x1000ffa5, 0xaf800048, 0x3e00008, 0x0,
+0x0, 0x0, 0x0, 0x27bdffe0,
+0xafbf0018, 0x8f860064, 0x30c20004, 0x10400025,
+0x24040004, 0x8c020114, 0xaf420020, 0xaf840064,
+0x8f4202fc, 0x24420001, 0xaf4202fc, 0x8f4202fc,
+0x8f820064, 0x30420004, 0x14400005, 0x0,
+0x8c030114, 0x8f420020, 0x1462fff2, 0x0,
+0x8f420000, 0x10400007, 0x8f43003c, 0xaf80004c,
+0x8f82004c, 0x1040fffd, 0x0, 0x10000005,
+0x0, 0xaf800048, 0x8f820048, 0x1040fffd,
+0x0, 0x8f820060, 0x431025, 0xaf820060,
+0x8f420000, 0x10400073, 0x0, 0x1000006f,
+0x0, 0x30c20008, 0x10400020, 0x24040008,
+0x8c02011c, 0xaf420048, 0xaf840064, 0x8f4202a8,
+0x24420001, 0xaf4202a8, 0x8f4202a8, 0x8f820064,
+0x30420008, 0x14400005, 0x0, 0x8c03011c,
+0x8f420048, 0x1462fff2, 0x0, 0x8f420000,
+0x10400007, 0x0, 0xaf80004c, 0x8f82004c,
+0x1040fffd, 0x0, 0x10000005, 0x0,
+0xaf800048, 0x8f820048, 0x1040fffd, 0x0,
+0x8f820060, 0x1000ffd9, 0x34420200, 0x30c20020,
+0x10400023, 0x24040020, 0x8c02012c, 0xaf420068,
+0xaf840064, 0x8f4202d8, 0x24420001, 0xaf4202d8,
+0x8f4202d8, 0x8f820064, 0x30420020, 0x14400005,
+0x32c24000, 0x8c03012c, 0x8f420068, 0x1462fff2,
+0x32c24000, 0x14400002, 0x3c020001, 0x2c2b025,
+0x8f420000, 0x10400007, 0x0, 0xaf80004c,
+0x8f82004c, 0x1040fffd, 0x0, 0x10000005,
+0x0, 0xaf800048, 0x8f820048, 0x1040fffd,
+0x0, 0x8f820060, 0x1000ffb4, 0x34420800,
+0x30c20010, 0x10400029, 0x24040010, 0x8c020124,
+0xaf420058, 0xaf840064, 0x8f4202d4, 0x24420001,
+0xaf4202d4, 0x8f4202d4, 0x8f820064, 0x30420010,
+0x14400005, 0x32c22000, 0x8c030124, 0x8f420058,
+0x1462fff2, 0x32c22000, 0x50400001, 0x36d68000,
+0x8f420000, 0x10400007, 0x0, 0xaf80004c,
+0x8f82004c, 0x1040fffd, 0x0, 0x10000005,
+0x0, 0xaf800048, 0x8f820048, 0x1040fffd,
+0x0, 0x8f820060, 0x34420100, 0xaf820060,
+0x8f420000, 0x10400003, 0x0, 0x1000006c,
+0xaf80004c, 0x1000006a, 0xaf800048, 0x30c20001,
+0x10400004, 0x24020001, 0xaf820064, 0x10000064,
+0x0, 0x30c20002, 0x1440000b, 0x3c050003,
+0x3c040001, 0x24846244, 0x34a50500, 0x3821,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x2402ffc0,
+0x10000057, 0xaf820064, 0x8c05022c, 0x8c02010c,
+0x10a20048, 0x51080, 0x8c460300, 0x24a20001,
+0x3045003f, 0x24020003, 0xac05022c, 0x61e02,
+0x10620005, 0x24020010, 0x1062001d, 0x30c20fff,
+0x10000039, 0x0, 0x8f4302a8, 0x8f440000,
+0x30c20fff, 0xaf420048, 0x24630001, 0xaf4302a8,
+0x10800007, 0x8f4202a8, 0xaf80004c, 0x8f82004c,
+0x1040fffd, 0x0, 0x10000005, 0x0,
+0xaf800048, 0x8f820048, 0x1040fffd, 0x0,
+0x8f820060, 0x34420200, 0xaf820060, 0x8f420000,
+0x1040001f, 0x0, 0x1000001b, 0x0,
+0xaf420058, 0x32c22000, 0x50400001, 0x36d68000,
+0x8f4202d4, 0x8f430000, 0x24420001, 0xaf4202d4,
+0x10600007, 0x8f4202d4, 0xaf80004c, 0x8f82004c,
+0x1040fffd, 0x0, 0x10000005, 0x0,
+0xaf800048, 0x8f820048, 0x1040fffd, 0x0,
+0x8f820060, 0x34420100, 0xaf820060, 0x8f420000,
+0x10400003, 0x0, 0x10000006, 0xaf80004c,
+0x10000004, 0xaf800048, 0xc002196, 0xc02021,
+0x402821, 0x8c02010c, 0x14a20002, 0x24020002,
+0xaf820064, 0x8f820064, 0x30420002, 0x14400004,
+0x0, 0x8c02010c, 0x14a2ffac, 0x0,
+0x8fbf0018, 0x3e00008, 0x27bd0020, 0x3e00008,
+0x0, 0x27bdffa0, 0xafb00040, 0x808021,
+0x101602, 0x2442ffff, 0x304300ff, 0x2c620013,
+0xafbf0058, 0xafbe0054, 0xafb50050, 0xafb3004c,
+0xafb20048, 0xafb10044, 0x104001f3, 0xafa50034,
+0x31080, 0x3c010001, 0x220821, 0x8c226288,
+0x400008, 0x0, 0x101302, 0x30440fff,
+0x24020001, 0x10820005, 0x24020002, 0x1082000c,
+0x2402fffe, 0x10000024, 0x3c050003, 0x8f430004,
+0x3c020001, 0x8c426f04, 0xaf440200, 0xaf440204,
+0x3c040001, 0x8c846e80, 0x10000009, 0x34630001,
+0x8f430004, 0xaf440200, 0xaf440204, 0x3c040001,
+0x8c846e80, 0x621824, 0x3c020001, 0x2442ca28,
+0x21100, 0x21182, 0xaf430004, 0x3c030800,
+0x431025, 0xac820038, 0x8f840054, 0x41442,
+0x41c82, 0x431021, 0x41cc2, 0x431023,
+0x41d02, 0x431021, 0x41d42, 0x431023,
+0x10000009, 0xaf420208, 0x3c040001, 0x24846250,
+0x34a51000, 0x2003021, 0x3821, 0xafa00010,
+0xc002b3b, 0xafa00014, 0x8f4202a0, 0x24420001,
+0xaf4202a0, 0x1000021f, 0x8f4202a0, 0x27b00028,
+0x2002021, 0x24050210, 0xc002bbf, 0x24060008,
+0xc002518, 0x2002021, 0x10000216, 0x0,
+0x8faa0034, 0x27a40028, 0xa1880, 0x25420001,
+0x3042003f, 0xafa20034, 0x8c650300, 0x8faa0034,
+0x21080, 0x8c430300, 0x25420001, 0x3042003f,
+0xafa20034, 0xac02022c, 0xafa50028, 0xc002518,
+0xafa3002c, 0x10000203, 0x0, 0x27b00028,
+0x2002021, 0x24050210, 0xc002bbf, 0x24060008,
+0xc002657, 0x2002021, 0x100001fa, 0x0,
+0x8faa0034, 0x27a40028, 0xa1880, 0x25420001,
+0x3042003f, 0xafa20034, 0x8c650300, 0x8faa0034,
+0x21080, 0x8c430300, 0x25420001, 0x3042003f,
+0xafa20034, 0xac02022c, 0xafa50028, 0xc002657,
+0xafa3002c, 0x100001e7, 0x0, 0x101302,
+0x30430fff, 0x24020001, 0x10620005, 0x24020002,
+0x1062001e, 0x3c020002, 0x10000033, 0x3c050003,
+0x3c030002, 0x2c31024, 0x54400037, 0x2c3b025,
+0x8f820228, 0x3c010001, 0x370821, 0xac2238d8,
+0x8f82022c, 0x3c010001, 0x370821, 0xac2238dc,
+0x8f820230, 0x3c010001, 0x370821, 0xac2238e0,
+0x8f820234, 0x3c010001, 0x370821, 0xac2238e4,
+0x2402ffff, 0xaf820228, 0xaf82022c, 0xaf820230,
+0xaf820234, 0x10000020, 0x2c3b025, 0x2c21024,
+0x10400012, 0x3c02fffd, 0x3c020001, 0x571021,
+0x8c4238d8, 0xaf820228, 0x3c020001, 0x571021,
+0x8c4238dc, 0xaf82022c, 0x3c020001, 0x571021,
+0x8c4238e0, 0xaf820230, 0x3c020001, 0x571021,
+0x8c4238e4, 0xaf820234, 0x3c02fffd, 0x3442ffff,
+0x10000009, 0x2c2b024, 0x3c040001, 0x2484625c,
+0x34a51100, 0x2003021, 0x3821, 0xafa00010,
+0xc002b3b, 0xafa00014, 0x8f4202cc, 0x24420001,
+0xaf4202cc, 0x1000019f, 0x8f4202cc, 0x101302,
+0x30450fff, 0x24020001, 0x10a20005, 0x24020002,
+0x10a2000d, 0x3c0408ff, 0x10000014, 0x3c050003,
+0x3c0208ff, 0x3442ffff, 0x8f830220, 0x3c040004,
+0x2c4b025, 0x621824, 0x34630008, 0xaf830220,
+0x10000012, 0xaf450298, 0x3484fff7, 0x3c03fffb,
+0x8f820220, 0x3463ffff, 0x2c3b024, 0x441024,
+0xaf820220, 0x10000009, 0xaf450298, 0x3c040001,
+0x24846268, 0x34a51200, 0x2003021, 0x3821,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x8f4202bc,
+0x24420001, 0xaf4202bc, 0x10000176, 0x8f4202bc,
+0x27840208, 0x24050200, 0xc002bbf, 0x24060008,
+0x27440224, 0x24050200, 0xc002bbf, 0x24060008,
+0x8f4202c4, 0x24420001, 0xaf4202c4, 0x10000169,
+0x8f4202c4, 0x101302, 0x30430fff, 0x24020001,
+0x10620011, 0x28620002, 0x50400005, 0x24020002,
+0x10600007, 0x0, 0x10000017, 0x0,
+0x1062000f, 0x0, 0x10000013, 0x0,
+0x8c060248, 0x2021, 0xc005104, 0x24050004,
+0x10000007, 0x0, 0x8c060248, 0x2021,
+0xc005104, 0x24050004, 0x10000010, 0x0,
+0x8c06024c, 0x2021, 0xc005104, 0x24050001,
+0x1000000a, 0x0, 0x3c040001, 0x24846274,
+0x3c050003, 0x34a51300, 0x2003021, 0x3821,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x8f4202c0,
+0x24420001, 0xaf4202c0, 0x1000013a, 0x8f4202c0,
+0xc002426, 0x0, 0x10000136, 0x0,
+0x24020001, 0xa34205c5, 0x24100100, 0x8f4401a8,
+0x8f4501ac, 0xafb00010, 0xafa00014, 0x8f420014,
+0xafa20018, 0x8f420108, 0x26e60028, 0x40f809,
+0x24070400, 0x1040fff5, 0x0, 0x10000125,
+0x0, 0x3c03ffff, 0x34637fff, 0x8f420368,
+0x8f440360, 0x2c3b024, 0x1821, 0xaf400058,
+0xaf40005c, 0xaf400060, 0xaf400064, 0x441023,
+0xaf420368, 0x3c020900, 0xaf400360, 0xafa20020,
+0x8f5e0018, 0x27aa0020, 0x240200ff, 0x13c20002,
+0xafaa003c, 0x27c30001, 0x8c020228, 0x609021,
+0x1642000e, 0x1e38c0, 0x8f42033c, 0x24420001,
+0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001,
+0x2484620c, 0x3c050009, 0xafa00014, 0xafa20010,
+0x8fa60020, 0x1000006b, 0x34a50500, 0xf71021,
+0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4,
+0x8f830054, 0x8f820054, 0x247003e8, 0x2021023,
+0x2c4203e9, 0x1040001b, 0x9821, 0xe08821,
+0x263504c0, 0x8f440178, 0x8f45017c, 0x2201821,
+0x240a0004, 0xafaa0010, 0xafb20014, 0x8f48000c,
+0x1021, 0x2f53021, 0xafa80018, 0x8f48010c,
+0x24070008, 0xa32821, 0xa3482b, 0x822021,
+0x100f809, 0x892021, 0x54400006, 0x24130001,
+0x8f820054, 0x2021023, 0x2c4203e9, 0x1440ffe9,
+0x0, 0x326200ff, 0x54400017, 0xaf520018,
+0x8f420378, 0x24420001, 0xaf420378, 0x8f420378,
+0x8f820120, 0x8faa003c, 0xafa20010, 0x8f820124,
+0x3c040001, 0x24846218, 0x3c050009, 0xafa20014,
+0x8d460000, 0x10000033, 0x34a50600, 0x8f420308,
+0x24130001, 0x24420001, 0xaf420308, 0x8f420308,
+0x1000001c, 0x326200ff, 0x8f830054, 0x8f820054,
+0x247003e8, 0x2021023, 0x2c4203e9, 0x10400014,
+0x9821, 0x24110010, 0x8f42000c, 0x8f440160,
+0x8f450164, 0x8f860120, 0xafb10010, 0xafb20014,
+0xafa20018, 0x8f42010c, 0x24070008, 0x40f809,
+0x24c6001c, 0x1440ffe5, 0x0, 0x8f820054,
+0x2021023, 0x2c4203e9, 0x1440ffef, 0x0,
+0x326200ff, 0x14400011, 0x0, 0x8f420378,
+0x24420001, 0xaf420378, 0x8f420378, 0x8f820120,
+0x8faa003c, 0xafa20010, 0x8f820124, 0x3c040001,
+0x24846220, 0x3c050009, 0xafa20014, 0x8d460000,
+0x34a50700, 0xc002b3b, 0x3c03821, 0x8f4202b0,
+0x24420001, 0xaf4202b0, 0x8f4202b0, 0x8f4202f8,
+0x24420001, 0xaf4202f8, 0x1000008a, 0x8f4202f8,
+0x8c02025c, 0x27440224, 0xaf4201f0, 0x8c020260,
+0x24050200, 0x24060008, 0xc002bbf, 0xaf4201f8,
+0x8f820220, 0x30420008, 0x14400002, 0x24020001,
+0x24020002, 0xaf420298, 0x8f4202ac, 0x24420001,
+0xaf4202ac, 0x10000077, 0x8f4202ac, 0x3c0200ff,
+0x3442ffff, 0x2021824, 0x32c20180, 0x14400006,
+0x3402fffb, 0x43102b, 0x14400003, 0x0,
+0x1000006c, 0xaf4300bc, 0x3c040001, 0x24846280,
+0x3c050003, 0x34a51500, 0x2003021, 0x3821,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x3c020700,
+0x34421000, 0x101e02, 0x621825, 0xafa30020,
+0x8f510018, 0x240200ff, 0x12220002, 0x8021,
+0x26300001, 0x8c020228, 0x1602000e, 0x1130c0,
+0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c,
+0x8c020228, 0x3c040001, 0x248461f4, 0x3c050009,
+0xafa00014, 0xafa20010, 0x8fa60020, 0x1000003f,
+0x34a50100, 0xd71021, 0x8fa30020, 0x8fa40024,
+0xac4304c0, 0xac4404c4, 0xc01821, 0x8f440178,
+0x8f45017c, 0x1021, 0x24070004, 0xafa70010,
+0xafb00014, 0x8f48000c, 0x24c604c0, 0x2e63021,
+0xafa80018, 0x8f48010c, 0x24070008, 0xa32821,
+0xa3482b, 0x822021, 0x100f809, 0x892021,
+0x1440000b, 0x24070008, 0x8f820120, 0xafa20010,
+0x8f820124, 0x3c040001, 0x248461fc, 0x3c050009,
+0xafa20014, 0x8fa60020, 0x1000001c, 0x34a50200,
+0x8f440160, 0x8f450164, 0x8f43000c, 0xaf500018,
+0x8f860120, 0x24020010, 0xafa20010, 0xafb00014,
+0xafa30018, 0x8f42010c, 0x40f809, 0x24c6001c,
+0x14400010, 0x0, 0x8f420340, 0x24420001,
+0xaf420340, 0x8f420340, 0x8f820120, 0xafa20010,
+0x8f820124, 0x3c040001, 0x24846204, 0x3c050009,
+0xafa20014, 0x8fa60020, 0x34a50300, 0xc002b3b,
+0x2203821, 0x8f4202e0, 0x24420001, 0xaf4202e0,
+0x8f4202e0, 0x8f4202f0, 0x24420001, 0xaf4202f0,
+0x8f4202f0, 0x8fa20034, 0x8fbf0058, 0x8fbe0054,
+0x8fb50050, 0x8fb3004c, 0x8fb20048, 0x8fb10044,
+0x8fb00040, 0x3e00008, 0x27bd0060, 0x27bdfff8,
+0x2408ffff, 0x10a00014, 0x4821, 0x3c0aedb8,
+0x354a8320, 0x90870000, 0x24840001, 0x3021,
+0x1071026, 0x30420001, 0x10400002, 0x81842,
+0x6a1826, 0x604021, 0x24c60001, 0x2cc20008,
+0x1440fff7, 0x73842, 0x25290001, 0x125102b,
+0x1440fff0, 0x0, 0x1001021, 0x3e00008,
+0x27bd0008, 0x27bdffb0, 0xafbf0048, 0xafbe0044,
+0xafb50040, 0xafb3003c, 0xafb20038, 0xafb10034,
+0xafb00030, 0x8f870220, 0xafa70024, 0x8f870200,
+0xafa7002c, 0x8f820220, 0x3c0308ff, 0x3463ffff,
+0x431024, 0x34420004, 0xaf820220, 0x8f820200,
+0x3c03c0ff, 0x3463ffff, 0x431024, 0x34420004,
+0xaf820200, 0x8f530358, 0x8f55035c, 0x8f5e0360,
+0x8f470364, 0xafa70014, 0x8f470368, 0xafa7001c,
+0x8f4202d0, 0x274401c0, 0x24420001, 0xaf4202d0,
+0x8f5002d0, 0x8f510204, 0x8f520200, 0xc002ba8,
+0x24050400, 0xaf530358, 0xaf55035c, 0xaf5e0360,
+0x8fa70014, 0xaf470364, 0x8fa7001c, 0xaf470368,
+0xaf5002d0, 0xaf510204, 0xaf520200, 0x8c02025c,
+0x27440224, 0xaf4201f0, 0x8c020260, 0x24050200,
+0x24060008, 0xaf4201f8, 0x24020006, 0xc002bbf,
+0xaf4201f4, 0x3c023b9a, 0x3442ca00, 0xaf4201fc,
+0x240203e8, 0x24040002, 0x24030001, 0xaf420294,
+0xaf440290, 0xaf43029c, 0x8f820220, 0x30420008,
+0x10400004, 0x0, 0xaf430298, 0x10000003,
+0x3021, 0xaf440298, 0x3021, 0x3c030001,
+0x661821, 0x90636d00, 0x3461021, 0x24c60001,
+0xa043022c, 0x2cc2000f, 0x1440fff8, 0x3461821,
+0x24c60001, 0x8f820040, 0x24040080, 0x24050080,
+0x21702, 0x24420030, 0xa062022c, 0x3461021,
+0xc002ba8, 0xa040022c, 0x8fa70024, 0x30e20004,
+0x14400006, 0x0, 0x8f820220, 0x3c0308ff,
+0x3463fffb, 0x431024, 0xaf820220, 0x8fa7002c,
+0x30e20004, 0x14400006, 0x0, 0x8f820200,
+0x3c03c0ff, 0x3463fffb, 0x431024, 0xaf820200,
+0x8fbf0048, 0x8fbe0044, 0x8fb50040, 0x8fb3003c,
+0x8fb20038, 0x8fb10034, 0x8fb00030, 0x3e00008,
+0x27bd0050, 0x0, 0x0, 0xaf400104,
+0x24040001, 0x410c0, 0x2e21821, 0x24820001,
+0x3c010001, 0x230821, 0xa42234d0, 0x402021,
+0x2c820080, 0x1440fff8, 0x410c0, 0x24020001,
+0x3c010001, 0x370821, 0xa42038d0, 0xaf420100,
+0xaf800228, 0xaf80022c, 0xaf800230, 0xaf800234,
+0x3e00008, 0x0, 0x27bdffe8, 0xafbf0014,
+0xafb00010, 0x8f420104, 0x28420005, 0x10400026,
+0x808021, 0x3c020001, 0x8f430104, 0x344230d0,
+0x2e22021, 0x318c0, 0x621821, 0x2e31821,
+0x83102b, 0x10400015, 0x1021, 0x96070000,
+0x24840006, 0x24660006, 0x9482fffc, 0x14470009,
+0x2821, 0x9483fffe, 0x96020002, 0x14620006,
+0xa01021, 0x94820000, 0x96030004, 0x431026,
+0x2c450001, 0xa01021, 0x14400009, 0x24840008,
+0x86102b, 0x1440fff0, 0x1021, 0x304200ff,
+0x14400030, 0x24020001, 0x1000002e, 0x1021,
+0x1000fffa, 0x24020001, 0x2002021, 0xc00240c,
+0x24050006, 0x3042007f, 0x218c0, 0x2e31021,
+0x3c010001, 0x220821, 0x942230d0, 0x1040fff2,
+0x2e31021, 0x3c060001, 0xc23021, 0x94c630d0,
+0x10c0ffed, 0x3c080001, 0x350834d2, 0x96070000,
+0x610c0, 0x572021, 0x882021, 0x94820000,
+0x14470009, 0x2821, 0x94830002, 0x96020002,
+0x14620006, 0xa01021, 0x94820004, 0x96030004,
+0x431026, 0x2c450001, 0xa01021, 0x14400007,
+0x610c0, 0x2e21021, 0x3c060001, 0xc23021,
+0x94c634d0, 0x14c0ffeb, 0x610c0, 0x10c0ffd2,
+0x24020001, 0x8fbf0014, 0x8fb00010, 0x3e00008,
+0x27bd0018, 0x3e00008, 0x0, 0x27bdffb0,
+0x801021, 0xafb00030, 0x24500002, 0x2002021,
+0x24050006, 0xafb10034, 0x408821, 0xafbf0048,
+0xafbe0044, 0xafb50040, 0xafb3003c, 0xc00240c,
+0xafb20038, 0x3047007f, 0x710c0, 0x2e21021,
+0x3c050001, 0xa22821, 0x94a530d0, 0x50a0001c,
+0xa03021, 0x3c090001, 0x352934d2, 0x96280002,
+0x510c0, 0x572021, 0x892021, 0x94820000,
+0x14480009, 0x3021, 0x94830002, 0x96020002,
+0x14620006, 0xc01021, 0x94820004, 0x96030004,
+0x431026, 0x2c460001, 0xc01021, 0x14400007,
+0x510c0, 0x2e21021, 0x3c050001, 0xa22821,
+0x94a534d0, 0x14a0ffeb, 0x510c0, 0xa03021,
+0x10c00014, 0x610c0, 0x571821, 0x3c010001,
+0x230821, 0x8c2334d0, 0x571021, 0xafa30010,
+0x3c010001, 0x220821, 0x8c2234d4, 0x3c040001,
+0x24846394, 0xafa20014, 0x8e260000, 0x8e270004,
+0x3c050004, 0xc002b3b, 0x34a50400, 0x10000063,
+0x3c020800, 0x8f450100, 0x10a00006, 0x510c0,
+0x2e21021, 0x3c010001, 0x220821, 0x942234d0,
+0xaf420100, 0xa03021, 0x14c00011, 0x628c0,
+0x710c0, 0x2e21021, 0xafa70010, 0x3c010001,
+0x220821, 0x942230d0, 0x3c040001, 0x248463a0,
+0xafa20014, 0x8e260000, 0x8e270004, 0x3c050004,
+0xc002b3b, 0x34a50500, 0x10000048, 0x3c020800,
+0xb71821, 0x3c020001, 0x96040000, 0x344234d2,
+0x621821, 0xa4640000, 0x8e020002, 0x720c0,
+0xac620002, 0x2e41021, 0x3c030001, 0x621821,
+0x946330d0, 0x2e51021, 0x3c010001, 0x220821,
+0xa42334d0, 0x2e41021, 0x3c010001, 0x220821,
+0xa42630d0, 0x8f420104, 0x24420001, 0x28420080,
+0x1040000f, 0x3c020002, 0x8f420104, 0x3c040001,
+0x348430d2, 0x96030000, 0x210c0, 0x571021,
+0x441021, 0xa4430000, 0x8e030002, 0xac430002,
+0x8f420104, 0x24420001, 0xaf420104, 0x3c020002,
+0x2c21024, 0x10400011, 0x72142, 0x3c030001,
+0x346338d8, 0x24020003, 0x441023, 0x21080,
+0x572021, 0x832021, 0x571021, 0x431021,
+0x30e5001f, 0x8c430000, 0x24020001, 0xa21004,
+0x621825, 0x1000000c, 0xac830000, 0x24020003,
+0x441023, 0x21080, 0x5c2821, 0x5c1021,
+0x30e4001f, 0x8c430228, 0x24020001, 0x821004,
+0x621825, 0xaca30228, 0x3c020800, 0x34421000,
+0x1821, 0xafa20020, 0x8f5e0018, 0x27aa0020,
+0x240200ff, 0x13c20002, 0xafaa002c, 0x27c30001,
+0x8c020228, 0x609021, 0x1642000e, 0x1e38c0,
+0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c,
+0x8c020228, 0x3c040001, 0x2484635c, 0x3c050009,
+0xafa00014, 0xafa20010, 0x8fa60020, 0x1000006b,
+0x34a50500, 0xf71021, 0x8fa30020, 0x8fa40024,
+0xac4304c0, 0xac4404c4, 0x8f830054, 0x8f820054,
+0x247003e8, 0x2021023, 0x2c4203e9, 0x1040001b,
+0x9821, 0xe08821, 0x263504c0, 0x8f440178,
+0x8f45017c, 0x2201821, 0x240a0004, 0xafaa0010,
+0xafb20014, 0x8f48000c, 0x1021, 0x2f53021,
+0xafa80018, 0x8f48010c, 0x24070008, 0xa32821,
+0xa3482b, 0x822021, 0x100f809, 0x892021,
+0x54400006, 0x24130001, 0x8f820054, 0x2021023,
+0x2c4203e9, 0x1440ffe9, 0x0, 0x326200ff,
+0x54400017, 0xaf520018, 0x8f420378, 0x24420001,
+0xaf420378, 0x8f420378, 0x8f820120, 0x8faa002c,
+0xafa20010, 0x8f820124, 0x3c040001, 0x24846368,
+0x3c050009, 0xafa20014, 0x8d460000, 0x10000033,
+0x34a50600, 0x8f420308, 0x24130001, 0x24420001,
+0xaf420308, 0x8f420308, 0x1000001c, 0x326200ff,
+0x8f830054, 0x8f820054, 0x247003e8, 0x2021023,
+0x2c4203e9, 0x10400014, 0x9821, 0x24110010,
+0x8f42000c, 0x8f440160, 0x8f450164, 0x8f860120,
+0xafb10010, 0xafb20014, 0xafa20018, 0x8f42010c,
+0x24070008, 0x40f809, 0x24c6001c, 0x1440ffe5,
+0x0, 0x8f820054, 0x2021023, 0x2c4203e9,
+0x1440ffef, 0x0, 0x326200ff, 0x14400011,
+0x0, 0x8f420378, 0x24420001, 0xaf420378,
+0x8f420378, 0x8f820120, 0x8faa002c, 0xafa20010,
+0x8f820124, 0x3c040001, 0x24846370, 0x3c050009,
+0xafa20014, 0x8d460000, 0x34a50700, 0xc002b3b,
+0x3c03821, 0x8f4202b4, 0x24420001, 0xaf4202b4,
+0x8f4202b4, 0x8f4202f4, 0x24420001, 0xaf4202f4,
+0x8f4202f4, 0x8fbf0048, 0x8fbe0044, 0x8fb50040,
+0x8fb3003c, 0x8fb20038, 0x8fb10034, 0x8fb00030,
+0x3e00008, 0x27bd0050, 0x27bdffa0, 0x801021,
+0xafb00040, 0x24500002, 0x2002021, 0x24050006,
+0xafb10044, 0x408821, 0xafbf0058, 0xafbe0054,
+0xafb50050, 0xafb3004c, 0xc00240c, 0xafb20048,
+0x3048007f, 0x810c0, 0x2e21021, 0x3c060001,
+0xc23021, 0x94c630d0, 0x10c0001c, 0x3821,
+0x3c0a0001, 0x354a34d2, 0x96290002, 0x610c0,
+0x572021, 0x8a2021, 0x94820000, 0x14490009,
+0x2821, 0x94830002, 0x96020002, 0x14620006,
+0xa01021, 0x94820004, 0x96030004, 0x431026,
+0x2c450001, 0xa01021, 0x14400008, 0x610c0,
+0xc03821, 0x2e21021, 0x3c060001, 0xc23021,
+0x94c634d0, 0x14c0ffea, 0x610c0, 0x14c00011,
+0xafa70028, 0x810c0, 0x2e21021, 0xafa80010,
+0x3c010001, 0x220821, 0x942230d0, 0x3c040001,
+0x248463ac, 0xafa20014, 0x8e260000, 0x8e270004,
+0x3c050004, 0xc002b3b, 0x34a50900, 0x10000075,
+0x3c020800, 0x10e0000c, 0x610c0, 0x2e21021,
+0x3c030001, 0x621821, 0x946334d0, 0x710c0,
+0x2e21021, 0x3c010001, 0x220821, 0xa42334d0,
+0x1000000b, 0x3c040001, 0x2e21021, 0x3c030001,
+0x621821, 0x946334d0, 0x810c0, 0x2e21021,
+0x3c010001, 0x220821, 0xa42330d0, 0x3c040001,
+0x348430d0, 0x8f430100, 0x610c0, 0x2e21021,
+0x3c010001, 0x220821, 0xa42334d0, 0x8f420104,
+0x2e43821, 0x2821, 0x18400029, 0xaf460100,
+0x24e60006, 0x94c3fffc, 0x96020000, 0x14620009,
+0x2021, 0x94c3fffe, 0x96020002, 0x14620006,
+0x801021, 0x94c20000, 0x96030004, 0x431026,
+0x2c440001, 0x801021, 0x50400014, 0x24a50001,
+0x8f420104, 0x2442ffff, 0xa2102a, 0x1040000b,
+0x24e40004, 0x94820006, 0x8c830008, 0xa482fffe,
+0xac830000, 0x8f420104, 0x24a50001, 0x2442ffff,
+0xa2102a, 0x1440fff7, 0x24840008, 0x8f420104,
+0x2442ffff, 0x10000006, 0xaf420104, 0x8f420104,
+0x24c60008, 0xa2102a, 0x1440ffda, 0x24e70008,
+0x810c0, 0x2e21021, 0x3c010001, 0x220821,
+0x942230d0, 0x14400023, 0x3c020800, 0x3c020002,
+0x2c21024, 0x10400012, 0x82142, 0x3c030001,
+0x346338d8, 0x24020003, 0x441023, 0x21080,
+0x572021, 0x832021, 0x571021, 0x431021,
+0x3105001f, 0x24030001, 0x8c420000, 0xa31804,
+0x31827, 0x431024, 0x1000000d, 0xac820000,
+0x24020003, 0x441023, 0x21080, 0x5c2821,
+0x5c1021, 0x3104001f, 0x24030001, 0x8c420228,
+0x831804, 0x31827, 0x431024, 0xaca20228,
+0x3c020800, 0x34422000, 0x1821, 0xafa20020,
+0x8f5e0018, 0x27ab0020, 0x240200ff, 0x13c20002,
+0xafab0034, 0x27c30001, 0x8c020228, 0x609021,
+0x1642000e, 0x1e38c0, 0x8f42033c, 0x24420001,
+0xaf42033c, 0x8f42033c, 0x8c020228, 0x3c040001,
+0x2484635c, 0x3c050009, 0xafa00014, 0xafa20010,
+0x8fa60020, 0x1000006b, 0x34a50500, 0xf71021,
+0x8fa30020, 0x8fa40024, 0xac4304c0, 0xac4404c4,
+0x8f830054, 0x8f820054, 0x247003e8, 0x2021023,
+0x2c4203e9, 0x1040001b, 0x9821, 0xe08821,
+0x263504c0, 0x8f440178, 0x8f45017c, 0x2201821,
+0x240b0004, 0xafab0010, 0xafb20014, 0x8f48000c,
+0x1021, 0x2f53021, 0xafa80018, 0x8f48010c,
+0x24070008, 0xa32821, 0xa3482b, 0x822021,
+0x100f809, 0x892021, 0x54400006, 0x24130001,
+0x8f820054, 0x2021023, 0x2c4203e9, 0x1440ffe9,
+0x0, 0x326200ff, 0x54400017, 0xaf520018,
+0x8f420378, 0x24420001, 0xaf420378, 0x8f420378,
+0x8f820120, 0x8fab0034, 0xafa20010, 0x8f820124,
+0x3c040001, 0x24846368, 0x3c050009, 0xafa20014,
+0x8d660000, 0x10000033, 0x34a50600, 0x8f420308,
+0x24130001, 0x24420001, 0xaf420308, 0x8f420308,
+0x1000001c, 0x326200ff, 0x8f830054, 0x8f820054,
+0x247003e8, 0x2021023, 0x2c4203e9, 0x10400014,
+0x9821, 0x24110010, 0x8f42000c, 0x8f440160,
+0x8f450164, 0x8f860120, 0xafb10010, 0xafb20014,
+0xafa20018, 0x8f42010c, 0x24070008, 0x40f809,
+0x24c6001c, 0x1440ffe5, 0x0, 0x8f820054,
+0x2021023, 0x2c4203e9, 0x1440ffef, 0x0,
+0x326200ff, 0x14400011, 0x0, 0x8f420378,
+0x24420001, 0xaf420378, 0x8f420378, 0x8f820120,
+0x8fab0034, 0xafa20010, 0x8f820124, 0x3c040001,
+0x24846370, 0x3c050009, 0xafa20014, 0x8d660000,
+0x34a50700, 0xc002b3b, 0x3c03821, 0x8f4202b8,
+0x24420001, 0xaf4202b8, 0x8f4202b8, 0x8f4202f4,
+0x24420001, 0xaf4202f4, 0x8f4202f4, 0x8fbf0058,
+0x8fbe0054, 0x8fb50050, 0x8fb3004c, 0x8fb20048,
+0x8fb10044, 0x8fb00040, 0x3e00008, 0x27bd0060,
+0x0, 0x0, 0x0, 0x27bdffe0,
+0x27644000, 0xafbf0018, 0xc002ba8, 0x24051000,
+0x3c030001, 0x34632cc0, 0x3c040001, 0x34842ec8,
+0x24020020, 0xaf82011c, 0x2e31021, 0xaf800100,
+0xaf800104, 0xaf800108, 0xaf800110, 0xaf800114,
+0xaf800118, 0xaf800120, 0xaf800124, 0xaf800128,
+0xaf800130, 0xaf800134, 0xaf800138, 0xaf4200ec,
+0x2e31021, 0xaf4200f0, 0x2e41021, 0xaf4200f4,
+0x2e41021, 0xaf4200f8, 0x3c020001, 0x571021,
+0x904240f4, 0x1440001c, 0x3c050001, 0x8f82011c,
+0x3c040001, 0x24846470, 0x3c050001, 0x34420001,
+0xaf82011c, 0xafa00010, 0xafa00014, 0x8f86011c,
+0x34a50100, 0xc002b3b, 0x3821, 0x8c020218,
+0x30420040, 0x10400014, 0x0, 0x8f82011c,
+0x3c040001, 0x2484647c, 0x3c050001, 0x34420004,
+0xaf82011c, 0xafa00010, 0xafa00014, 0x8f86011c,
+0x10000007, 0x34a50200, 0x3c040001, 0x24846484,
+0xafa00010, 0xafa00014, 0x8f86011c, 0x34a50300,
+0xc002b3b, 0x3821, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x8fa90010, 0x8f83012c, 0x8faa0014,
+0x8fab0018, 0x1060000a, 0x27624fe0, 0x14620002,
+0x24680020, 0x27684800, 0x8f820128, 0x11020004,
+0x0, 0x8f820124, 0x15020007, 0x0,
+0x8f430334, 0x1021, 0x24630001, 0xaf430334,
+0x10000039, 0x8f430334, 0xac640000, 0xac650004,
+0xac660008, 0xa467000e, 0xac690018, 0xac6a001c,
+0xac6b0010, 0xac620014, 0xaf880120, 0x8f4200fc,
+0x8f4400f4, 0x2442ffff, 0xaf4200fc, 0x8c820000,
+0x10490005, 0x3042ff8f, 0x10400019, 0x3122ff8f,
+0x10400018, 0x3c020001, 0x8c830004, 0x2c620010,
+0x10400013, 0x3c020001, 0x24630001, 0xac830004,
+0x8f4300f8, 0x344230c8, 0x2e21021, 0x54620004,
+0x24620008, 0x3c020001, 0x34422ec8, 0x2e21021,
+0x14440015, 0x24020001, 0x8f820128, 0x24420020,
+0xaf820128, 0x8f820128, 0x1000000f, 0x24020001,
+0x3c020001, 0x344230c8, 0x2e21021, 0x54820004,
+0x24820008, 0x3c020001, 0x34422ec8, 0x2e21021,
+0x402021, 0x24020001, 0xaf4400f4, 0xac890000,
+0xac820004, 0x24020001, 0x3e00008, 0x0,
+0x3e00008, 0x0, 0x8fa90010, 0x8f83010c,
+0x8faa0014, 0x8fab0018, 0x1060000a, 0x276247e0,
+0x14620002, 0x24680020, 0x27684000, 0x8f820108,
+0x11020004, 0x0, 0x8f820104, 0x15020007,
+0x0, 0x8f430338, 0x1021, 0x24630001,
+0xaf430338, 0x10000035, 0x8f430338, 0xac640000,
+0xac650004, 0xac660008, 0xa467000e, 0xac690018,
+0xac6a001c, 0xac6b0010, 0xac620014, 0xaf880100,
+0x8f4400ec, 0x8c820000, 0x30420006, 0x10400019,
+0x31220006, 0x10400018, 0x3c020001, 0x8c830004,
+0x2c620010, 0x10400013, 0x3c020001, 0x24630001,
+0xac830004, 0x8f4300f0, 0x34422ec0, 0x2e21021,
+0x54620004, 0x24620008, 0x3c020001, 0x34422cc0,
+0x2e21021, 0x14440015, 0x24020001, 0x8f820108,
+0x24420020, 0xaf820108, 0x8f820108, 0x1000000f,
+0x24020001, 0x3c020001, 0x34422ec0, 0x2e21021,
+0x54820004, 0x24820008, 0x3c020001, 0x34422cc0,
+0x2e21021, 0x402021, 0x24020001, 0xaf4400ec,
+0xac890000, 0xac820004, 0x24020001, 0x3e00008,
+0x0, 0x3e00008, 0x0, 0x27bdffd8,
+0x3c040001, 0x2484648c, 0x3c050001, 0xafbf0024,
+0xafb20020, 0xafb1001c, 0xafb00018, 0x8f900104,
+0x8f9100b0, 0x8f92011c, 0x34a52500, 0x8f820100,
+0x2403021, 0x2203821, 0xafa20010, 0xc002b3b,
+0xafb00014, 0x8e020008, 0xafa20010, 0x8e02000c,
+0x3c040001, 0x24846498, 0xafa20014, 0x8e060000,
+0x8e070004, 0x3c050001, 0xc002b3b, 0x34a52510,
+0x8e020018, 0xafa20010, 0x8e02001c, 0x3c040001,
+0x248464a4, 0xafa20014, 0x8e060010, 0x8e070014,
+0x3c050001, 0xc002b3b, 0x34a52520, 0x3c027f00,
+0x2221024, 0x3c030800, 0x54430016, 0x3c030200,
+0x8f82009c, 0x3042ffff, 0x14400012, 0x3c030200,
+0x3c040001, 0x248464b0, 0x3c050002, 0x34a5f030,
+0x3021, 0x3821, 0x36420002, 0xaf82011c,
+0x36220001, 0xaf8200b0, 0xaf900104, 0xaf92011c,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x10000024,
+0x0, 0x2c31024, 0x1040000d, 0x2231024,
+0x1040000b, 0x36420002, 0xaf82011c, 0x36220001,
+0xaf8200b0, 0xaf900104, 0xaf92011c, 0x8f420330,
+0x24420001, 0xaf420330, 0x10000015, 0x8f420330,
+0x3c040001, 0x248464b8, 0x240202a9, 0xafa20010,
+0xafa00014, 0x8f860144, 0x3c070001, 0x24e764c0,
+0xc002b3b, 0x3405dead, 0x8f82011c, 0x34420002,
+0xaf82011c, 0x8f820220, 0x34420004, 0xaf820220,
+0x8f820140, 0x3c030001, 0x431025, 0xaf820140,
+0x8fbf0024, 0x8fb20020, 0x8fb1001c, 0x8fb00018,
+0x3e00008, 0x27bd0028, 0x27bdffd8, 0x3c040001,
+0x248464e8, 0x3c050001, 0xafbf0024, 0xafb20020,
+0xafb1001c, 0xafb00018, 0x8f900124, 0x8f9100a0,
+0x8f92011c, 0x34a52600, 0x8f820120, 0x2403021,
+0x2203821, 0xafa20010, 0xc002b3b, 0xafb00014,
+0x8e020008, 0xafa20010, 0x8e02000c, 0x3c040001,
+0x248464f4, 0xafa20014, 0x8e060000, 0x8e070004,
+0x3c050001, 0xc002b3b, 0x34a52610, 0x8e020018,
+0xafa20010, 0x8e02001c, 0x3c040001, 0x24846500,
+0xafa20014, 0x8e060010, 0x8e070014, 0x3c050001,
+0xc002b3b, 0x34a52620, 0x3c027f00, 0x2221024,
+0x3c030800, 0x54430016, 0x3c030200, 0x8f8200ac,
+0x3042ffff, 0x14400012, 0x3c030200, 0x3c040001,
+0x2484650c, 0x3c050001, 0x34a5f030, 0x3021,
+0x3821, 0x36420002, 0xaf82011c, 0x36220001,
+0xaf8200a0, 0xaf900124, 0xaf92011c, 0xafa00010,
+0xc002b3b, 0xafa00014, 0x10000024, 0x0,
+0x2c31024, 0x1040000d, 0x2231024, 0x1040000b,
+0x36420002, 0xaf82011c, 0x36220001, 0xaf8200a0,
+0xaf900124, 0xaf92011c, 0x8f42032c, 0x24420001,
+0xaf42032c, 0x10000015, 0x8f42032c, 0x3c040001,
+0x248464b8, 0x240202e2, 0xafa20010, 0xafa00014,
+0x8f860144, 0x3c070001, 0x24e764c0, 0xc002b3b,
+0x3405dead, 0x8f82011c, 0x34420002, 0xaf82011c,
+0x8f820220, 0x34420004, 0xaf820220, 0x8f820140,
+0x3c030001, 0x431025, 0xaf820140, 0x8fbf0024,
+0x8fb20020, 0x8fb1001c, 0x8fb00018, 0x3e00008,
+0x27bd0028, 0x6021, 0x5021, 0x3021,
+0x2821, 0x6821, 0x4821, 0x7821,
+0x7021, 0x8f880124, 0x8f870104, 0x1580002e,
+0x8f8b011c, 0x11a00014, 0x31620800, 0x8f820120,
+0x10460029, 0x0, 0x3c040001, 0x8c846ee4,
+0x8cc20000, 0x8cc30004, 0xac820000, 0xac830004,
+0x8cc20008, 0xac820008, 0x94c2000e, 0xa482000e,
+0x8cc20010, 0x240c0001, 0xac820010, 0x8cc20014,
+0x10000012, 0x24c60020, 0x10400017, 0x0,
+0x3c040001, 0x8c846ee4, 0x8d020000, 0x8d030004,
+0xac820000, 0xac830004, 0x8d020008, 0xac820008,
+0x9502000e, 0xa482000e, 0x8d020010, 0x25060020,
+0xac820010, 0x8d020014, 0x240c0001, 0xc01821,
+0xac820014, 0x27624fe0, 0x43102b, 0x54400001,
+0x27634800, 0x603021, 0x1540002f, 0x31620100,
+0x11200014, 0x31628000, 0x8f820100, 0x1045002a,
+0x31620100, 0x3c040001, 0x8c846ee0, 0x8ca20000,
+0x8ca30004, 0xac820000, 0xac830004, 0x8ca20008,
+0xac820008, 0x94a2000e, 0xa482000e, 0x8ca20010,
+0x240a0001, 0xac820010, 0x8ca20014, 0x10000012,
+0x24a50020, 0x10400018, 0x31620100, 0x3c040001,
+0x8c846ee0, 0x8ce20000, 0x8ce30004, 0xac820000,
+0xac830004, 0x8ce20008, 0xac820008, 0x94e2000e,
+0xa482000e, 0x8ce20010, 0x24e50020, 0xac820010,
+0x8ce20014, 0x240a0001, 0xa01821, 0xac820014,
+0x276247e0, 0x43102b, 0x54400001, 0x27634000,
+0x602821, 0x31620100, 0x5440001d, 0x31621000,
+0x11a00009, 0x31a20800, 0x10400004, 0x25020020,
+0x8f8200a8, 0xa5e20000, 0x25020020, 0xaf820124,
+0x8f880124, 0x6821, 0x11800011, 0x31621000,
+0x3c040001, 0x8c846ee4, 0x8c820000, 0x8c830004,
+0xaf820080, 0xaf830084, 0x8c820008, 0xaf8200a4,
+0x9482000e, 0xaf8200ac, 0x8c820010, 0x6021,
+0xaf8200a0, 0x8c8d0010, 0x8c8f0014, 0x31621000,
+0x1440ff82, 0x0, 0x1120000f, 0x31220800,
+0x10400004, 0x3c020002, 0x8f8200b8, 0xa5c20000,
+0x3c020002, 0x1221024, 0x10400004, 0x24e20020,
+0x8f8200b4, 0xaf8200d4, 0x24e20020, 0xaf820104,
+0x8f870104, 0x4821, 0x1140ff70, 0x0,
+0x3c040001, 0x8c846ee0, 0x8c820000, 0x8c830004,
+0xaf820090, 0xaf830094, 0x8c820008, 0xaf8200b4,
+0x9482000e, 0xaf82009c, 0x8c820010, 0x5021,
+0xaf8200b0, 0x8c890010, 0x1000ff60, 0x8c8e0014,
+0x3e00008, 0x0, 0x6021, 0x5821,
+0x3021, 0x2821, 0x6821, 0x5021,
+0x7821, 0x7021, 0x8f880124, 0x8f870104,
+0x3c180100, 0x1580002e, 0x8f89011c, 0x11a00014,
+0x31220800, 0x8f820120, 0x10460029, 0x0,
+0x3c040001, 0x8c846ee4, 0x8cc20000, 0x8cc30004,
+0xac820000, 0xac830004, 0x8cc20008, 0xac820008,
+0x94c2000e, 0xa482000e, 0x8cc20010, 0x240c0001,
+0xac820010, 0x8cc20014, 0x10000012, 0x24c60020,
+0x10400017, 0x0, 0x3c040001, 0x8c846ee4,
+0x8d020000, 0x8d030004, 0xac820000, 0xac830004,
+0x8d020008, 0xac820008, 0x9502000e, 0xa482000e,
+0x8d020010, 0x25060020, 0xac820010, 0x8d020014,
+0x240c0001, 0xc01821, 0xac820014, 0x27624fe0,
+0x43102b, 0x54400001, 0x27634800, 0x603021,
+0x1560002f, 0x31220100, 0x11400014, 0x31228000,
+0x8f820100, 0x1045002a, 0x31220100, 0x3c040001,
+0x8c846ee0, 0x8ca20000, 0x8ca30004, 0xac820000,
+0xac830004, 0x8ca20008, 0xac820008, 0x94a2000e,
+0xa482000e, 0x8ca20010, 0x240b0001, 0xac820010,
+0x8ca20014, 0x10000012, 0x24a50020, 0x10400018,
+0x31220100, 0x3c040001, 0x8c846ee0, 0x8ce20000,
+0x8ce30004, 0xac820000, 0xac830004, 0x8ce20008,
+0xac820008, 0x94e2000e, 0xa482000e, 0x8ce20010,
+0x24e50020, 0xac820010, 0x8ce20014, 0x240b0001,
+0xa01821, 0xac820014, 0x276247e0, 0x43102b,
+0x54400001, 0x27634000, 0x602821, 0x31220100,
+0x5440001d, 0x31221000, 0x11a00009, 0x31a20800,
+0x10400004, 0x25020020, 0x8f8200a8, 0xa5e20000,
+0x25020020, 0xaf820124, 0x8f880124, 0x6821,
+0x11800011, 0x31221000, 0x3c040001, 0x8c846ee4,
+0x8c820000, 0x8c830004, 0xaf820080, 0xaf830084,
+0x8c820008, 0xaf8200a4, 0x9482000e, 0xaf8200ac,
+0x8c820010, 0x6021, 0xaf8200a0, 0x8c8d0010,
+0x8c8f0014, 0x31221000, 0x14400022, 0x0,
+0x1140000f, 0x31420800, 0x10400004, 0x3c020002,
+0x8f8200b8, 0xa5c20000, 0x3c020002, 0x1421024,
+0x10400004, 0x24e20020, 0x8f8200b4, 0xaf8200d4,
+0x24e20020, 0xaf820104, 0x8f870104, 0x5021,
+0x11600010, 0x0, 0x3c040001, 0x8c846ee0,
+0x8c820000, 0x8c830004, 0xaf820090, 0xaf830094,
+0x8c820008, 0xaf8200b4, 0x9482000e, 0xaf82009c,
+0x8c820010, 0x5821, 0xaf8200b0, 0x8c8a0010,
+0x8c8e0014, 0x8f820070, 0x3c031000, 0x431024,
+0x1040ff5c, 0x0, 0x8f820054, 0x24420005,
+0xaf820078, 0x8c040234, 0x10800016, 0x1821,
+0x3c020001, 0x571021, 0x8c4240e8, 0x24420005,
+0x3c010001, 0x370821, 0xac2240e8, 0x3c020001,
+0x571021, 0x8c4240e8, 0x44102b, 0x14400009,
+0x24020001, 0x3c030080, 0x3c010001, 0x370821,
+0xac2040e8, 0x3c010001, 0x370821, 0x1000000c,
+0xa02240f0, 0x3c020001, 0x571021, 0x904240f0,
+0x14400006, 0x3c020080, 0x3c020001, 0x571021,
+0x904240f1, 0x10400002, 0x3c020080, 0x621825,
+0x8c040230, 0x10800013, 0x0, 0x3c020001,
+0x571021, 0x8c4240ec, 0x24420005, 0x3c010001,
+0x370821, 0xac2240ec, 0x3c020001, 0x571021,
+0x8c4240ec, 0x44102b, 0x14400006, 0x0,
+0x3c010001, 0x370821, 0xac2040ec, 0x10000006,
+0x781825, 0x3c020001, 0x571021, 0x904240f2,
+0x54400001, 0x781825, 0x1060ff1a, 0x0,
+0x8f420000, 0x10400007, 0x0, 0xaf80004c,
+0x8f82004c, 0x1040fffd, 0x0, 0x10000005,
+0x0, 0xaf800048, 0x8f820048, 0x1040fffd,
+0x0, 0x8f820060, 0x431025, 0xaf820060,
+0x8f420000, 0x10400003, 0x0, 0x1000ff05,
+0xaf80004c, 0x1000ff03, 0xaf800048, 0x3e00008,
+0x0, 0x0, 0x0, 0x3c020001,
+0x8c426d28, 0x27bdffe8, 0xafbf0014, 0x14400012,
+0xafb00010, 0x3c100001, 0x26106f90, 0x2002021,
+0xc002ba8, 0x24052000, 0x26021fe0, 0x3c010001,
+0xac226eec, 0x3c010001, 0xac226ee8, 0xac020250,
+0x24022000, 0xac100254, 0xac020258, 0x24020001,
+0x3c010001, 0xac226d28, 0x8fbf0014, 0x8fb00010,
+0x3e00008, 0x27bd0018, 0x3c090001, 0x8d296eec,
+0x8c820000, 0x8fa30010, 0x8fa80014, 0xad220000,
+0x8c820004, 0xad250008, 0xad220004, 0x8f820054,
+0xad260010, 0xad270014, 0xad230018, 0xad28001c,
+0xad22000c, 0x2529ffe0, 0x3c020001, 0x24426f90,
+0x122102b, 0x10400003, 0x0, 0x3c090001,
+0x8d296ee8, 0x3c020001, 0x8c426d10, 0xad220000,
+0x3c020001, 0x8c426d10, 0x3c010001, 0xac296eec,
+0xad220004, 0xac090250, 0x3e00008, 0x0,
+0x27bdffd0, 0xafb00010, 0x3c100001, 0x8e106eec,
+0x3c020001, 0x8c426d10, 0xafb10014, 0x808821,
+0xafbe0024, 0x8fbe0040, 0x8fa40048, 0xafb20018,
+0xa09021, 0xafbf0028, 0xafb50020, 0xafb3001c,
+0xae020000, 0x3c020001, 0x8c426d10, 0xc09821,
+0xe0a821, 0x10800006, 0xae020004, 0x26050008,
+0xc002bb3, 0x24060018, 0x10000005, 0x2610ffe0,
+0x26040008, 0xc002ba8, 0x24050018, 0x2610ffe0,
+0x3c030001, 0x24636f90, 0x203102b, 0x10400003,
+0x0, 0x3c100001, 0x8e106ee8, 0x8e220000,
+0xae020000, 0x8e220004, 0xae120008, 0xae020004,
+0x8f820054, 0xae130010, 0xae150014, 0xae1e0018,
+0x8fa80044, 0xae08001c, 0xae02000c, 0x2610ffe0,
+0x203102b, 0x10400003, 0x0, 0x3c100001,
+0x8e106ee8, 0x3c020001, 0x8c426d10, 0xae020000,
+0x3c020001, 0x8c426d10, 0x3c010001, 0xac306eec,
+0xae020004, 0xac100250, 0x8fbf0028, 0x8fbe0024,
+0x8fb50020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0030, 0x851821,
+0x83102b, 0x10400006, 0x0, 0xac800000,
+0x24840004, 0x83102b, 0x5440fffd, 0xac800000,
+0x3e00008, 0x0, 0xa61821, 0xa3102b,
+0x10400007, 0x0, 0x8c820000, 0xaca20000,
+0x24a50004, 0xa3102b, 0x1440fffb, 0x24840004,
+0x3e00008, 0x0, 0x861821, 0x83102b,
+0x10400007, 0x0, 0x8ca20000, 0xac820000,
+0x24840004, 0x83102b, 0x1440fffb, 0x24a50004,
+0x3e00008, 0x0, 0x63080, 0x861821,
+0x83102b, 0x10400006, 0x0, 0xac850000,
+0x24840004, 0x83102b, 0x5440fffd, 0xac850000,
+0x3e00008, 0x0, 0x0, 0x26e50028,
+0xa03021, 0x274301c0, 0x8f4d0358, 0x8f47035c,
+0x8f480360, 0x8f490364, 0x8f4a0368, 0x8f4b0204,
+0x8f4c0200, 0x24640400, 0x64102b, 0x10400008,
+0x3c0208ff, 0x8cc20000, 0xac620000, 0x24630004,
+0x64102b, 0x1440fffb, 0x24c60004, 0x3c0208ff,
+0x3442ffff, 0x3c03c0ff, 0xaf4d0358, 0xaf47035c,
+0xaf480360, 0xaf490364, 0xaf4a0368, 0xaf4b0204,
+0xaf4c0200, 0x8f840220, 0x3463ffff, 0x8f860200,
+0x821024, 0x34420004, 0xc31824, 0x34630004,
+0xaf820220, 0xaf830200, 0x8ca20214, 0xac020084,
+0x8ca20218, 0xac020088, 0x8ca2021c, 0xac02008c,
+0x8ca20220, 0xac020090, 0x8ca20224, 0xac020094,
+0x8ca20228, 0xac020098, 0x8ca2022c, 0xac02009c,
+0x8ca20230, 0xac0200a0, 0x8ca20234, 0xac0200a4,
+0x8ca20238, 0xac0200a8, 0x8ca2023c, 0xac0200ac,
+0x8ca20240, 0xac0200b0, 0x8ca20244, 0xac0200b4,
+0x8ca20248, 0xac0200b8, 0x8ca2024c, 0xac0200bc,
+0x8ca2001c, 0xac020080, 0x8ca20018, 0xac0200c0,
+0x8ca20020, 0xac0200cc, 0x8ca20024, 0xac0200d0,
+0x8ca201d0, 0xac0200e0, 0x8ca201d4, 0xac0200e4,
+0x8ca201d8, 0xac0200e8, 0x8ca201dc, 0xac0200ec,
+0x8ca201e0, 0xac0200f0, 0x8ca20098, 0x8ca3009c,
+0xac0300fc, 0x8ca200a8, 0x8ca300ac, 0xac0300f4,
+0x8ca200a0, 0x8ca300a4, 0x30840004, 0xac0300f8,
+0x14800007, 0x30c20004, 0x8f820220, 0x3c0308ff,
+0x3463fffb, 0x431024, 0xaf820220, 0x30c20004,
+0x14400006, 0x0, 0x8f820200, 0x3c03c0ff,
+0x3463fffb, 0x431024, 0xaf820200, 0x8f4202dc,
+0xa34005c5, 0x24420001, 0xaf4202dc, 0x8f4202dc,
+0x3e00008, 0x0, 0x27bdffd8, 0xafbf0024,
+0xafb00020, 0x8f430024, 0x8f420020, 0x10620038,
+0x0, 0x8f430020, 0x8f420024, 0x622023,
+0x4810003, 0x0, 0x8f420040, 0x822021,
+0x8f430030, 0x8f420024, 0x43102b, 0x14400005,
+0x0, 0x8f430040, 0x8f420024, 0x10000005,
+0x621023, 0x8f420030, 0x8f430024, 0x431023,
+0x2442ffff, 0x406021, 0x8c102a, 0x54400001,
+0x806021, 0x8f4a0024, 0x8f490040, 0x8f480024,
+0x8f440180, 0x8f450184, 0x8f460024, 0x8f4b001c,
+0x24070001, 0xafa70010, 0x84100, 0x1001821,
+0x14c5021, 0x2529ffff, 0x1498024, 0xafb00014,
+0x8f470014, 0x1021, 0x63100, 0xafa70018,
+0xa32821, 0xa3382b, 0x822021, 0x872021,
+0x8f420108, 0x1663021, 0x40f809, 0xc3900,
+0x54400001, 0xaf500024, 0x8f430024, 0x8f420020,
+0x14620018, 0x0, 0x8f420000, 0x10400007,
+0x0, 0xaf80004c, 0x8f82004c, 0x1040fffd,
+0x0, 0x10000005, 0x0, 0xaf800048,
+0x8f820048, 0x1040fffd, 0x0, 0x8f820060,
+0x2403ffef, 0x431024, 0xaf820060, 0x8f420000,
+0x10400003, 0x0, 0x10000002, 0xaf80004c,
+0xaf800048, 0x8fbf0024, 0x8fb00020, 0x3e00008,
+0x27bd0028, 0x3e00008, 0x0, 0x27bdffc0,
+0x32c20020, 0xafbf0038, 0xafb30034, 0xafb20030,
+0xafb1002c, 0x10400004, 0xafb00028, 0x8f530028,
+0x10000002, 0x0, 0x8f530020, 0x8f420030,
+0x105300eb, 0x21100, 0x8f43001c, 0x628021,
+0x8e040000, 0x8e050004, 0x96120008, 0x8f420090,
+0x9611000a, 0x3246ffff, 0x46102a, 0x10400017,
+0x0, 0x8f8200d8, 0x8f430098, 0x431023,
+0x2442dcbe, 0xaf420090, 0x8f420090, 0x2842dcbf,
+0x10400005, 0x0, 0x8f420090, 0x8f430144,
+0x431021, 0xaf420090, 0x8f420090, 0x46102a,
+0x10400006, 0x0, 0x8f420348, 0x24420001,
+0xaf420348, 0x100000e1, 0x8f420348, 0x8f8200fc,
+0x14400006, 0x0, 0x8f420344, 0x24420001,
+0xaf420344, 0x100000d9, 0x8f420344, 0x934205c2,
+0x1040000b, 0x32c20008, 0x10400008, 0x32220200,
+0x10400006, 0x3c034000, 0x9602000e, 0xaf4300ac,
+0x21400, 0x10000002, 0xaf4200b0, 0xaf4000ac,
+0x32220004, 0x1040007f, 0x32220800, 0x10400003,
+0x3247ffff, 0x10000002, 0x24020020, 0x24020004,
+0xafa20010, 0x8f420030, 0xafa20014, 0x8f420010,
+0x3c030002, 0x431025, 0xafa20018, 0x8f460098,
+0x8f420108, 0x40f809, 0x0, 0x104000b7,
+0x0, 0x8f42009c, 0x8f430094, 0x2421021,
+0xaf42009c, 0xae03000c, 0x8f4200ac, 0x10400008,
+0x3c034000, 0x8f420094, 0x431025, 0xafa20020,
+0x8f42009c, 0x8f4300b0, 0x10000004, 0x431025,
+0x8f420094, 0xafa20020, 0x8f42009c, 0xafa20024,
+0x8f8200fc, 0x8fa30020, 0x8fa40024, 0xac430000,
+0xac440004, 0x24420008, 0xaf8200f0, 0x8f42009c,
+0x8f440270, 0x8f450274, 0x401821, 0x1021,
+0xa32821, 0xa3302b, 0x822021, 0x862021,
+0x32230060, 0x24020040, 0xaf440270, 0xaf450274,
+0x10620017, 0x2c620041, 0x10400005, 0x24020020,
+0x10620008, 0x24020001, 0x10000026, 0x0,
+0x24020060, 0x10620019, 0x24020001, 0x10000021,
+0x0, 0x8f420278, 0x8f43027c, 0x24630001,
+0x2c640001, 0x441021, 0xaf420278, 0xaf43027c,
+0x8f420278, 0x8f43027c, 0x10000016, 0x24020001,
+0x8f420280, 0x8f430284, 0x24630001, 0x2c640001,
+0x441021, 0xaf420280, 0xaf430284, 0x8f420280,
+0x8f430284, 0x1000000b, 0x24020001, 0x8f420288,
+0x8f43028c, 0x24630001, 0x2c640001, 0x441021,
+0xaf420288, 0xaf43028c, 0x8f420288, 0x8f43028c,
+0x24020001, 0xa34205c2, 0x8f420098, 0x3244ffff,
+0x2406fff8, 0x8f45013c, 0x441021, 0x24420007,
+0x461024, 0x24840007, 0xaf420094, 0x8f420090,
+0x8f430094, 0x862024, 0x441023, 0x65182b,
+0x14600005, 0xaf420090, 0x8f420094, 0x8f430144,
+0x431023, 0xaf420094, 0x8f420094, 0x10000023,
+0xaf40009c, 0x3247ffff, 0x50e00022, 0x32c20020,
+0x14400002, 0x24020010, 0x24020002, 0xafa20010,
+0x8f420030, 0xafa20014, 0x8f420010, 0xafa20018,
+0x8f460098, 0x8f420108, 0x40f809, 0x0,
+0x1040003a, 0x3245ffff, 0x8f420098, 0x8f430090,
+0x8f46013c, 0x451021, 0xaf420098, 0x8f42009c,
+0x8f440098, 0xa34005c2, 0x651823, 0xaf430090,
+0x451021, 0x86202b, 0x14800005, 0xaf42009c,
+0x8f420098, 0x8f430144, 0x431023, 0xaf420098,
+0x32c20020, 0x10400005, 0x0, 0x8f420358,
+0x2442ffff, 0xaf420358, 0x8f420358, 0x8f420030,
+0x8f430040, 0x24420001, 0x2463ffff, 0x431024,
+0xaf420030, 0x8f420030, 0x14530018, 0x0,
+0x8f420000, 0x10400007, 0x0, 0xaf80004c,
+0x8f82004c, 0x1040fffd, 0x0, 0x10000005,
+0x0, 0xaf800048, 0x8f820048, 0x1040fffd,
+0x0, 0x8f820060, 0x2403fff7, 0x431024,
+0xaf820060, 0x8f420000, 0x10400003, 0x0,
+0x10000002, 0xaf80004c, 0xaf800048, 0x8fbf0038,
+0x8fb30034, 0x8fb20030, 0x8fb1002c, 0x8fb00028,
+0x3e00008, 0x27bd0040, 0x3e00008, 0x0,
+0x27bdffd0, 0x32c20020, 0xafbf002c, 0xafb20028,
+0xafb10024, 0x10400004, 0xafb00020, 0x8f520028,
+0x10000002, 0x0, 0x8f520020, 0x8f420030,
+0x105200b5, 0x21100, 0x8f43001c, 0x628021,
+0x8e040000, 0x8e050004, 0x96110008, 0x8f420090,
+0x9607000a, 0x3226ffff, 0x46102a, 0x10400017,
+0x0, 0x8f8200d8, 0x8f430098, 0x431023,
+0x2442dc46, 0xaf420090, 0x8f420090, 0x2842dc47,
+0x10400005, 0x0, 0x8f420090, 0x8f430144,
+0x431021, 0xaf420090, 0x8f420090, 0x46102a,
+0x10400006, 0x0, 0x8f420348, 0x24420001,
+0xaf420348, 0x100000ab, 0x8f420348, 0x8f8600fc,
+0x10c0000c, 0x0, 0x8f8200f4, 0x2403fff8,
+0x431024, 0x461023, 0x218c3, 0x58600001,
+0x24630100, 0x8f42008c, 0x43102b, 0x14400006,
+0x712c2, 0x8f420344, 0x24420001, 0xaf420344,
+0x10000098, 0x8f420344, 0x934305c2, 0x1060000f,
+0x30460001, 0x8f420010, 0x34480400, 0x32c20008,
+0x10400008, 0x30e20200, 0x10400006, 0x3c034000,
+0x9602000e, 0xaf4300ac, 0x21400, 0x10000004,
+0xaf4200b0, 0x10000002, 0xaf4000ac, 0x8f480010,
+0x30e20004, 0x10400045, 0x3227ffff, 0x8f4900ac,
+0x11200005, 0x30c200ff, 0x14400006, 0x24020040,
+0x10000004, 0x24020008, 0x14400002, 0x24020020,
+0x24020004, 0xafa20010, 0x8f430030, 0x11200004,
+0xafa30014, 0x8f4200b0, 0x621025, 0xafa20014,
+0x3c020002, 0x1021025, 0xafa20018, 0x8f460098,
+0x8f420108, 0x40f809, 0x0, 0x10400069,
+0x3224ffff, 0x8f42008c, 0x8f430094, 0x24420001,
+0xaf42008c, 0x24020001, 0xae03000c, 0xa34205c2,
+0x8f420098, 0x2406fff8, 0x8f45013c, 0x441021,
+0x24420007, 0x461024, 0x24840007, 0xaf420094,
+0x8f420090, 0x8f430094, 0x862024, 0x441023,
+0x65182b, 0x14600005, 0xaf420090, 0x8f420094,
+0x8f430144, 0x431023, 0xaf420094, 0x8f430094,
+0x8f420140, 0x43102b, 0x10400009, 0x0,
+0x8f43013c, 0x8f440094, 0x8f420090, 0x8f450138,
+0x641823, 0x431023, 0xaf420090, 0xaf450094,
+0x8f420094, 0x1000001f, 0xaf420098, 0x10e0001d,
+0x30c200ff, 0x14400002, 0x24020010, 0x24020002,
+0xafa20010, 0x8f420030, 0xafa80018, 0xafa20014,
+0x8f460098, 0x8f420108, 0x40f809, 0x0,
+0x10400030, 0x3225ffff, 0x8f420098, 0x8f44013c,
+0x451021, 0xaf420098, 0x8f420090, 0x8f430098,
+0xa34005c2, 0x451023, 0x64182b, 0x14600005,
+0xaf420090, 0x8f420098, 0x8f430144, 0x431023,
+0xaf420098, 0x8f420030, 0x8f430040, 0x24420001,
+0x2463ffff, 0x431024, 0xaf420030, 0x8f420030,
+0x14520018, 0x0, 0x8f420000, 0x10400007,
+0x0, 0xaf80004c, 0x8f82004c, 0x1040fffd,
+0x0, 0x10000005, 0x0, 0xaf800048,
+0x8f820048, 0x1040fffd, 0x0, 0x8f820060,
+0x2403fff7, 0x431024, 0xaf820060, 0x8f420000,
+0x10400003, 0x0, 0x10000002, 0xaf80004c,
+0xaf800048, 0x8fbf002c, 0x8fb20028, 0x8fb10024,
+0x8fb00020, 0x3e00008, 0x27bd0030, 0x3e00008,
+0x0, 0x27bdffd8, 0x3c020001, 0x34422ec0,
+0xafbf0020, 0x8f4300f0, 0x8f840108, 0x2e21021,
+0x54620004, 0x24620008, 0x3c020001, 0x34422cc0,
+0x2e21021, 0x401821, 0xaf4300f0, 0xac600000,
+0x8f4200ec, 0x8c660004, 0x14620004, 0x3c020001,
+0x24820020, 0x1000000f, 0xaf820108, 0x8f4300f0,
+0x34422ec0, 0x2e21021, 0x54620004, 0x24620008,
+0x3c020001, 0x34422cc0, 0x2e21021, 0x401821,
+0x8c620004, 0x21140, 0x821021, 0xaf820108,
+0xac600000, 0x8c850018, 0x30a20036, 0x1040006c,
+0x30a20001, 0x8c82001c, 0x8f430040, 0x8f440034,
+0x24420001, 0x2463ffff, 0x431024, 0x862021,
+0xaf42002c, 0x30a20030, 0x14400006, 0xaf440034,
+0x8f420034, 0x8c03023c, 0x43102b, 0x144000b4,
+0x0, 0x32c20010, 0x10400028, 0x24070008,
+0x8f440170, 0x8f450174, 0x8f43002c, 0x8f48000c,
+0x8f860120, 0x24020080, 0xafa20010, 0xafa30014,
+0xafa80018, 0x8f42010c, 0x40f809, 0x24c6001c,
+0x14400011, 0x24020001, 0x3c010001, 0x370821,
+0xa02240f1, 0x8f820124, 0xafa20010, 0x8f820128,
+0x3c040001, 0x248467c4, 0xafa20014, 0x8f46002c,
+0x8f870120, 0x3c050009, 0xc002b3b, 0x34a51100,
+0x10000036, 0x0, 0x8f420300, 0x8f43002c,
+0x24420001, 0xaf420300, 0x8f420300, 0x24020001,
+0xa34205c1, 0x10000026, 0xaf430038, 0x8f440170,
+0x8f450174, 0x8f43002c, 0x8f48000c, 0x8f860120,
+0x24020020, 0xafa20010, 0xafa30014, 0xafa80018,
+0x8f42010c, 0x40f809, 0x24c6001c, 0x14400011,
+0x24020001, 0x3c010001, 0x370821, 0xa02240f0,
+0x8f820124, 0xafa20010, 0x8f820128, 0x3c040001,
+0x248467b8, 0xafa20014, 0x8f46002c, 0x8f870120,
+0x3c050009, 0xc002b3b, 0x34a50900, 0x1000000f,
+0x0, 0x8f420300, 0x24420001, 0xaf420300,
+0x8f420300, 0x8f42002c, 0xa34005c1, 0xaf420038,
+0x3c010001, 0x370821, 0xa02040f1, 0x3c010001,
+0x370821, 0xa02040f0, 0xaf400034, 0x8f420314,
+0x24420001, 0xaf420314, 0x10000059, 0x8f420314,
+0x10400022, 0x30a27000, 0x8c85001c, 0x8f420028,
+0xa22023, 0x4810003, 0x0, 0x8f420040,
+0x822021, 0x8f420358, 0x8f430000, 0xaf450028,
+0x441021, 0x10600007, 0xaf420358, 0xaf80004c,
+0x8f82004c, 0x1040fffd, 0x0, 0x10000005,
+0x0, 0xaf800048, 0x8f820048, 0x1040fffd,
+0x0, 0x8f820060, 0x34420008, 0xaf820060,
+0x8f420000, 0x10400003, 0x0, 0x10000038,
+0xaf80004c, 0x10000036, 0xaf800048, 0x1040002f,
+0x30a21000, 0x1040000c, 0x30a24000, 0x8c83001c,
+0x8f420050, 0x622023, 0x4820001, 0x24840200,
+0x8f42035c, 0x441021, 0xaf42035c, 0x8f420368,
+0x1000001a, 0xaf430050, 0x1040000c, 0x32c28000,
+0x8c83001c, 0x8f420070, 0x622023, 0x4820001,
+0x24840400, 0x8f420364, 0x441021, 0xaf420364,
+0x8f420368, 0x1000000d, 0xaf430070, 0x1040000e,
+0x3c020800, 0x8c83001c, 0x8f420060, 0x622023,
+0x4820001, 0x24840100, 0x8f420360, 0x441021,
+0xaf420360, 0x8f420368, 0xaf430060, 0x441021,
+0xaf420368, 0x3c020800, 0x2c21024, 0x50400008,
+0x36940040, 0x10000006, 0x0, 0x30a20100,
+0x10400003, 0x0, 0xc002bd8, 0x0,
+0x8fbf0020, 0x3e00008, 0x27bd0028, 0x3e00008,
+0x0, 0x27bdffa8, 0xafbf0050, 0xafbe004c,
+0xafb50048, 0xafb30044, 0xafb20040, 0xafb1003c,
+0xafb00038, 0x8f910108, 0x26220020, 0xaf820108,
+0x8e320018, 0xa821, 0x32420024, 0x104001ba,
+0xf021, 0x8e26001c, 0x8f43001c, 0x61100,
+0x621821, 0x8c70000c, 0x9604000c, 0x962d0016,
+0x9473000a, 0x2c8305dd, 0x38828870, 0x2c420001,
+0x621825, 0x10600015, 0x2821, 0x32c20040,
+0x10400015, 0x24020800, 0x96030014, 0x14620012,
+0x3402aaaa, 0x9603000e, 0x14620007, 0x2021,
+0x96030010, 0x24020300, 0x14620004, 0x801021,
+0x96020012, 0x2c440001, 0x801021, 0x54400006,
+0x24050016, 0x10000004, 0x0, 0x24020800,
+0x50820001, 0x2405000e, 0x934205c3, 0x14400008,
+0x5821, 0x240b0001, 0x32620180, 0xaf4500a8,
+0xaf5000a0, 0x10400002, 0xaf4600a4, 0xa34b05c3,
+0x10a00085, 0x2054021, 0x91020000, 0x3821,
+0x3042000f, 0x25080, 0x32c20002, 0x10400012,
+0x10a1821, 0x32620002, 0x10400010, 0x32c20001,
+0x1002021, 0x94820000, 0x24840002, 0xe23821,
+0x83102b, 0x1440fffb, 0x30e2ffff, 0x71c02,
+0x623821, 0x71c02, 0x30e2ffff, 0x623821,
+0x71027, 0xa502000a, 0x32c20001, 0x1040006a,
+0x32620001, 0x10400068, 0x0, 0x8f4200a8,
+0x10400065, 0x0, 0x8f4200a0, 0x8f4300a8,
+0x431021, 0x904c0009, 0x318900ff, 0x39230006,
+0x3182b, 0x39220011, 0x2102b, 0x621824,
+0x1060000c, 0x3c050006, 0x8f4200a4, 0x3c040001,
+0x248467d4, 0xafa20010, 0x8f4200a0, 0x34a54600,
+0x1203821, 0xc002b3b, 0xafa20014, 0x1000004e,
+0x0, 0x32c20004, 0x14400013, 0x2821,
+0x316200ff, 0x14400004, 0x0, 0x95020002,
+0x1000000d, 0x4a2823, 0x9505000c, 0x9502000e,
+0x95030010, 0xa22821, 0xa32821, 0x95030012,
+0x91040009, 0x95020002, 0xa32821, 0xa42821,
+0x4a1023, 0xa22821, 0x2002021, 0x94820000,
+0x24840002, 0xe23821, 0x88102b, 0x1440fffb,
+0x71c02, 0x30e2ffff, 0x623821, 0x71c02,
+0x30e2ffff, 0x623821, 0x1a52821, 0x51c02,
+0x30a2ffff, 0x622821, 0x51c02, 0x30a2ffff,
+0x622821, 0xa72823, 0x51402, 0xa22821,
+0x30a5ffff, 0x50a00001, 0x3405ffff, 0x316200ff,
+0x14400008, 0x318300ff, 0x8f4300a0, 0x8f4200a8,
+0x624021, 0x91020000, 0x3042000f, 0x25080,
+0x318300ff, 0x24020006, 0x14620003, 0x10a1021,
+0x10000002, 0x24440010, 0x24440006, 0x316200ff,
+0x14400006, 0x0, 0x94820000, 0xa22821,
+0x51c02, 0x30a2ffff, 0x622821, 0x934205c3,
+0x10400003, 0x32620100, 0x50400003, 0xa4850000,
+0x52827, 0xa4850000, 0x9622000e, 0x8f43009c,
+0x621821, 0x32a200ff, 0x10400007, 0xaf43009c,
+0x3c024000, 0x2021025, 0xafa20020, 0x8f42009c,
+0x10000003, 0x5e1025, 0xafb00020, 0x8f42009c,
+0xafa20024, 0x32620080, 0x10400010, 0x32620100,
+0x8f4200b4, 0x24430001, 0x210c0, 0x571021,
+0xaf4300b4, 0x8fa30020, 0x8fa40024, 0x3c010001,
+0x220821, 0xac2338e8, 0x3c010001, 0x220821,
+0xac2438ec, 0x100000a5, 0x32c20020, 0x10400064,
+0x0, 0x8f4200b4, 0x24430001, 0x210c0,
+0x571021, 0xaf4300b4, 0x8fa30020, 0x8fa40024,
+0x3c010001, 0x220821, 0xac2338e8, 0x3c010001,
+0x220821, 0xac2438ec, 0x8f4200b4, 0x10400051,
+0x3821, 0x3c090001, 0x352938e8, 0x3c08001f,
+0x3508ffff, 0x240bffff, 0x340affff, 0x710c0,
+0x571021, 0x491021, 0x8c430000, 0x8c440004,
+0xafa30028, 0xafa4002c, 0x8f8200fc, 0x8fa30028,
+0x8fa4002c, 0xac430000, 0xac440004, 0x24420008,
+0xaf8200f0, 0x8f42008c, 0x2442ffff, 0xaf42008c,
+0x97a2002e, 0x8f440270, 0x8f450274, 0x401821,
+0x1021, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xaf440270, 0xaf450274, 0x8fa20028,
+0x481024, 0x90430000, 0x30630001, 0x1460000b,
+0x402021, 0x8f420278, 0x8f43027c, 0x24630001,
+0x2c640001, 0x441021, 0xaf420278, 0xaf43027c,
+0x8f420278, 0x1000001a, 0x8f43027c, 0x8c820000,
+0x144b000e, 0x0, 0x94820004, 0x144a000b,
+0x0, 0x8f420288, 0x8f43028c, 0x24630001,
+0x2c640001, 0x441021, 0xaf420288, 0xaf43028c,
+0x8f420288, 0x1000000a, 0x8f43028c, 0x8f420280,
+0x8f430284, 0x24630001, 0x2c640001, 0x441021,
+0xaf420280, 0xaf430284, 0x8f420280, 0x8f430284,
+0x8f4200b4, 0x24e70001, 0xe2102b, 0x1440ffb8,
+0x710c0, 0xa34005c3, 0x1000003f, 0xaf4000b4,
+0x8f8200fc, 0x8fa30020, 0x8fa40024, 0xac430000,
+0xac440004, 0x24420008, 0xaf8200f0, 0x8f42009c,
+0x8f46008c, 0x8f440270, 0x8f450274, 0x401821,
+0x1021, 0x24c6ffff, 0xaf46008c, 0xa32821,
+0xa3302b, 0x822021, 0x862021, 0xaf440270,
+0xaf450274, 0x92020000, 0x30420001, 0x1440000c,
+0x2402ffff, 0x8f420278, 0x8f43027c, 0x24630001,
+0x2c640001, 0x441021, 0xaf420278, 0xaf43027c,
+0x8f420278, 0x8f43027c, 0x1000001c, 0x32c20020,
+0x8e030000, 0x1462000f, 0x3402ffff, 0x96030004,
+0x1462000c, 0x0, 0x8f420288, 0x8f43028c,
+0x24630001, 0x2c640001, 0x441021, 0xaf420288,
+0xaf43028c, 0x8f420288, 0x8f43028c, 0x1000000b,
+0x32c20020, 0x8f420280, 0x8f430284, 0x24630001,
+0x2c640001, 0x441021, 0xaf420280, 0xaf430284,
+0x8f420280, 0x8f430284, 0x32c20020, 0x10400005,
+0xaf40009c, 0x8f420358, 0x2442ffff, 0xaf420358,
+0x8f420358, 0x8e22001c, 0x8f430040, 0x24420001,
+0x2463ffff, 0x431024, 0xaf42002c, 0x32420060,
+0x14400008, 0x32c20010, 0x8f420034, 0x24420001,
+0xaf420034, 0x8c03023c, 0x43102b, 0x14400102,
+0x32c20010, 0x10400018, 0x24070008, 0x8f440170,
+0x8f450174, 0x8f43002c, 0x8f48000c, 0x8f860120,
+0x24020080, 0xafa20010, 0xafa30014, 0xafa80018,
+0x8f42010c, 0x40f809, 0x24c6001c, 0x10400047,
+0x24020001, 0x8f420300, 0x8f43002c, 0x24420001,
+0xaf420300, 0x8f420300, 0x24020001, 0xa34205c1,
+0x1000007c, 0xaf430038, 0x8f440170, 0x8f450174,
+0x8f43002c, 0x8f48000c, 0x8f860120, 0x24020020,
+0xafa20010, 0xafa30014, 0xafa80018, 0x8f42010c,
+0x40f809, 0x24c6001c, 0x10400057, 0x24020001,
+0x10000065, 0x0, 0x32420012, 0x10400075,
+0x32420001, 0x9622000e, 0x8f43009c, 0x621821,
+0x32c20020, 0x10400005, 0xaf43009c, 0x8f420358,
+0x2442ffff, 0xaf420358, 0x8f420358, 0x8e22001c,
+0x8f430040, 0x24420001, 0x2463ffff, 0x431024,
+0xaf42002c, 0x32420010, 0x14400008, 0x32c20010,
+0x8f420034, 0x24420001, 0xaf420034, 0x8c03023c,
+0x43102b, 0x144000bc, 0x32c20010, 0x10400028,
+0x24070008, 0x8f440170, 0x8f450174, 0x8f43002c,
+0x8f48000c, 0x8f860120, 0x24020080, 0xafa20010,
+0xafa30014, 0xafa80018, 0x8f42010c, 0x40f809,
+0x24c6001c, 0x14400011, 0x24020001, 0x3c010001,
+0x370821, 0xa02240f1, 0x8f820124, 0xafa20010,
+0x8f820128, 0x3c040001, 0x248467c4, 0xafa20014,
+0x8f46002c, 0x8f870120, 0x3c050009, 0xc002b3b,
+0x34a51100, 0x10000036, 0x0, 0x8f420300,
+0x8f43002c, 0x24420001, 0xaf420300, 0x8f420300,
+0x24020001, 0xa34205c1, 0x10000026, 0xaf430038,
+0x8f440170, 0x8f450174, 0x8f43002c, 0x8f48000c,
+0x8f860120, 0x24020020, 0xafa20010, 0xafa30014,
+0xafa80018, 0x8f42010c, 0x40f809, 0x24c6001c,
+0x14400011, 0x24020001, 0x3c010001, 0x370821,
+0xa02240f0, 0x8f820124, 0xafa20010, 0x8f820128,
+0x3c040001, 0x248467b8, 0xafa20014, 0x8f46002c,
+0x8f870120, 0x3c050009, 0xc002b3b, 0x34a50900,
+0x1000000f, 0x0, 0x8f420300, 0x24420001,
+0xaf420300, 0x8f420300, 0x8f42002c, 0xa34005c1,
+0xaf420038, 0x3c010001, 0x370821, 0xa02040f1,
+0x3c010001, 0x370821, 0xa02040f0, 0xaf400034,
+0x8f420314, 0x24420001, 0xaf420314, 0x10000062,
+0x8f420314, 0x10400022, 0x32427000, 0x8e25001c,
+0x8f420028, 0xa22023, 0x4810003, 0x0,
+0x8f420040, 0x822021, 0x8f420358, 0x8f430000,
+0xaf450028, 0x441021, 0x10600007, 0xaf420358,
+0xaf80004c, 0x8f82004c, 0x1040fffd, 0x0,
+0x10000005, 0x0, 0xaf800048, 0x8f820048,
+0x1040fffd, 0x0, 0x8f820060, 0x34420008,
+0xaf820060, 0x8f420000, 0x10400003, 0x0,
+0x10000041, 0xaf80004c, 0x1000003f, 0xaf800048,
+0x1040002f, 0x32421000, 0x1040000c, 0x32424000,
+0x8e23001c, 0x8f420050, 0x622023, 0x4820001,
+0x24840200, 0x8f42035c, 0x441021, 0xaf42035c,
+0x8f420368, 0x1000001a, 0xaf430050, 0x1040000c,
+0x32c28000, 0x8e23001c, 0x8f420070, 0x622023,
+0x4820001, 0x24840400, 0x8f420364, 0x441021,
+0xaf420364, 0x8f420368, 0x1000000d, 0xaf430070,
+0x1040000e, 0x3c020800, 0x8e23001c, 0x8f420060,
+0x622023, 0x4820001, 0x24840100, 0x8f420360,
+0x441021, 0xaf420360, 0x8f420368, 0xaf430060,
+0x441021, 0xaf420368, 0x3c020800, 0x2c21024,
+0x50400011, 0x36940040, 0x1000000f, 0x0,
+0x32420048, 0x10400007, 0x24150001, 0x8e22001c,
+0x3c03ffff, 0x43f024, 0x3042ffff, 0x1000fd75,
+0xae22001c, 0x32420100, 0x10400003, 0x0,
+0xc002bd8, 0x0, 0x8fbf0050, 0x8fbe004c,
+0x8fb50048, 0x8fb30044, 0x8fb20040, 0x8fb1003c,
+0x8fb00038, 0x3e00008, 0x27bd0058, 0x3e00008,
+0x0, 0x0, 0x0, 0x8f8300e4,
+0x8f8200e0, 0x2404fff8, 0x441024, 0x621026,
+0x2102b, 0x21023, 0x3e00008, 0x621024,
+0x3e00008, 0x0, 0x27bdffe0, 0xafbf001c,
+0xafb00018, 0x8f8600c4, 0x8f8400e0, 0x8f8500e4,
+0x2402fff8, 0x821824, 0x10a30009, 0x27623ff8,
+0x14a20002, 0x24a20008, 0x27623000, 0x408021,
+0x16030005, 0x30820004, 0x10400004, 0xc02021,
+0x10000022, 0x1021, 0x8e040000, 0x8f42011c,
+0x14a20003, 0x0, 0x8f420120, 0xaf420114,
+0x8ca30000, 0x8f420148, 0x831823, 0x43102b,
+0x10400003, 0x0, 0x8f420148, 0x621821,
+0x94a20006, 0x24420050, 0x62102b, 0x1440000f,
+0xa01021, 0xafa40010, 0xafa30014, 0x8ca60000,
+0x8ca70004, 0x3c040001, 0xc002b3b, 0x24846894,
+0x8f42020c, 0x24420001, 0xaf42020c, 0x8f42020c,
+0x1021, 0xaf9000e8, 0xaf9000e4, 0x8fbf001c,
+0x8fb00018, 0x3e00008, 0x27bd0020, 0x3e00008,
+0x0, 0x8f8400e0, 0x8f8800c4, 0x8f8300e8,
+0x2402fff8, 0x823824, 0xe32023, 0x2c821000,
+0x50400001, 0x24841000, 0x420c2, 0x801821,
+0x8f440258, 0x8f45025c, 0x1021, 0xa32821,
+0xa3302b, 0x822021, 0x862021, 0xaf440258,
+0xaf45025c, 0x8f8300c8, 0x8f420148, 0x1032023,
+0x82102b, 0x14400004, 0x801821, 0x8f420148,
+0x822021, 0x801821, 0x8f440250, 0x8f450254,
+0x1021, 0xa32821, 0xa3302b, 0x822021,
+0x862021, 0xaf440250, 0xaf450254, 0xaf8800c8,
+0xaf8700e4, 0xaf8700e8, 0x3e00008, 0x0,
+0x27bdff30, 0x240a0001, 0xafbf00c8, 0xafbe00c4,
+0xafb500c0, 0xafb300bc, 0xafb200b8, 0xafb100b4,
+0xafb000b0, 0xa3a00097, 0xafa00044, 0xafaa005c,
+0x934205c4, 0xa7a0008e, 0x1040000a, 0xa7a00086,
+0x8f4b00c4, 0xafab0064, 0x8f4a00c0, 0xafaa006c,
+0x8f4b00cc, 0xafab0074, 0x8f4a00c8, 0x10000129,
+0xafaa007c, 0x8f420114, 0x40f809, 0x0,
+0x403021, 0x10c0034f, 0x0, 0x8cc20000,
+0x8cc30004, 0xafa20020, 0xafa30024, 0x8fab0024,
+0x8faa0020, 0x3162ffff, 0x2442fffc, 0xafa2006c,
+0x3c020006, 0x2c21024, 0xafab007c, 0x14400015,
+0xafaa0064, 0x91420000, 0x30420001, 0x10400011,
+0x2402ffff, 0x8d430000, 0x14620004, 0x3402ffff,
+0x95430004, 0x1062000b, 0x0, 0xc0024bb,
+0x8fa40064, 0x304200ff, 0x14400006, 0x0,
+0x8f420118, 0x40f809, 0x0, 0x1000032d,
+0x0, 0x8fa20024, 0x3c03ffbf, 0x3463ffff,
+0x431024, 0x3c03ffff, 0x431824, 0x14600003,
+0xafa20024, 0x10000040, 0x1821, 0x3c020080,
+0x621024, 0x10400007, 0x0, 0x8f42038c,
+0x24420001, 0xaf42038c, 0x8f42038c, 0x10000036,
+0x24030001, 0x8f420210, 0x24420001, 0xaf420210,
+0x8f420210, 0x3c020001, 0x621024, 0x10400006,
+0x3c020002, 0x8f4201c4, 0x24420001, 0xaf4201c4,
+0x8f4201c4, 0x3c020002, 0x621024, 0x10400006,
+0x3c020004, 0x8f42037c, 0x24420001, 0xaf42037c,
+0x8f42037c, 0x3c020004, 0x621024, 0x10400006,
+0x3c020008, 0x8f420380, 0x24420001, 0xaf420380,
+0x8f420380, 0x3c020008, 0x621024, 0x10400006,
+0x3c020010, 0x8f420384, 0x24420001, 0xaf420384,
+0x8f420384, 0x3c020010, 0x621024, 0x10400006,
+0x3c020020, 0x8f4201c0, 0x24420001, 0xaf4201c0,
+0x8f4201c0, 0x3c020020, 0x621024, 0x10400006,
+0x24030001, 0x8f420388, 0x24420001, 0xaf420388,
+0x8f420388, 0x24030001, 0x8c020260, 0x8fab006c,
+0x4b102b, 0x10400014, 0x307000ff, 0x8f4201e8,
+0x24420001, 0xaf4201e8, 0x8f4201e8, 0x8faa007c,
+0x8f8200e0, 0x354a0100, 0xafaa007c, 0xafa20010,
+0x8f8200e4, 0x24100001, 0x3c040001, 0x248468a0,
+0xafa20014, 0x8fa60020, 0x8fa70024, 0x3c050007,
+0xc002b3b, 0x34a50800, 0x12000010, 0x3c020080,
+0x2c21024, 0x1440000e, 0x32c20400, 0x8fab007c,
+0x3c020080, 0x34420100, 0x1621024, 0x10400005,
+0x0, 0x8f42020c, 0x24420001, 0xaf42020c,
+0x8f42020c, 0x100002b0, 0x8fa3006c, 0x32c20400,
+0x10400015, 0x34028100, 0x8faa0064, 0x9543000c,
+0x14620012, 0x3c020100, 0x240b0200, 0xa7ab008e,
+0x9542000e, 0x8d430008, 0x8d440004, 0x8d450000,
+0x8faa006c, 0x8fab0064, 0x254afffc, 0xafaa006c,
+0xa7a20086, 0xad63000c, 0xad640008, 0xad650004,
+0x256b0004, 0xafab0064, 0x3c020100, 0x2c21024,
+0x10400004, 0x0, 0x8faa006c, 0x254a0004,
+0xafaa006c, 0x8f4200bc, 0x5040000a, 0xafa00074,
+0x8fab006c, 0x4b102b, 0x50400006, 0xafa00074,
+0x8f4200bc, 0x1621023, 0xafa20074, 0x8f4a00bc,
+0xafaa006c, 0x8f420080, 0x8fab006c, 0x4b102b,
+0x10400056, 0x32c28000, 0x1040005e, 0x240a0003,
+0x32c21000, 0x1040005b, 0xafaa005c, 0x10000058,
+0x240b0004, 0x8f420350, 0x2403ffbf, 0x283a024,
+0x24420001, 0xaf420350, 0x1000024f, 0x8f420350,
+0x2c2b025, 0x2402ffbf, 0x282a024, 0x8f830128,
+0x3c040001, 0x248468d0, 0x26620001, 0xafa20014,
+0xafa30010, 0x8f860120, 0x8f870124, 0x3c050007,
+0xc002b3b, 0x34a52250, 0x1000023f, 0x0,
+0x2c2b025, 0x2402ffbf, 0x282a024, 0x8f830128,
+0x3c040001, 0x248468d0, 0x24020002, 0xafa20014,
+0xafa30010, 0x8f860120, 0x8f870124, 0x3c050007,
+0xc002b3b, 0x34a52450, 0x1000022f, 0x0,
+0x8ea20000, 0x8ea30004, 0x3c040001, 0x248468e8,
+0xafb00010, 0xafbe0014, 0x8ea70018, 0x34a52800,
+0xc002b3b, 0x603021, 0x10000223, 0x0,
+0xa6b1000a, 0x8f820124, 0x3c040001, 0x248468f0,
+0xafbe0014, 0xafa20010, 0x8f460044, 0x8f870120,
+0x3c050007, 0xc002b3b, 0x34a53000, 0x10000216,
+0x0, 0xa6b1000a, 0xa6b2000e, 0x8f820124,
+0x3c040001, 0x248468fc, 0xafbe0014, 0xafa20010,
+0x8f460044, 0x8f870120, 0x3c050007, 0xc002b3b,
+0x34a53200, 0x10000208, 0x0, 0x8f420084,
+0x8faa006c, 0x4a102b, 0x14400007, 0x3c020001,
+0x2c21024, 0x10400004, 0x0, 0x240b0002,
+0xafab005c, 0x8faa006c, 0x1140021b, 0x27ab0020,
+0xafab00a4, 0x3c0a001f, 0x354affff, 0xafaa009c,
+0x8fab005c, 0x240a0001, 0x556a0021, 0x240a0002,
+0x8f430054, 0x8f420050, 0x1062000b, 0x274b0054,
+0x8f5e0054, 0x3403ecc0, 0xafab004c, 0x27c20001,
+0x304201ff, 0xafa20054, 0x1e1140, 0x431021,
+0x1000006b, 0x2e2a821, 0x8f420044, 0x8faa006c,
+0x3c040001, 0x248468ac, 0xafaa0014, 0xafa20010,
+0x8f460054, 0x8f470050, 0x3c050007, 0xc002b3b,
+0x34a51300, 0x8f430350, 0x2402ffbf, 0x282a024,
+0x24630001, 0xaf430350, 0x100001d3, 0x8f420350,
+0x156a001d, 0x0, 0x8f430074, 0x8f420070,
+0x1062000a, 0x274b0074, 0x8f5e0074, 0xafab004c,
+0x27c20001, 0x304203ff, 0xafa20054, 0x1e1140,
+0x24426cc0, 0x1000004a, 0x2e2a821, 0x8f420044,
+0x8faa006c, 0x3c040001, 0x248468b8, 0x3c050007,
+0xafaa0014, 0xafa20010, 0x8f460074, 0x8f470070,
+0x34a51500, 0x240b0001, 0xc002b3b, 0xafab005c,
+0x1000ffc3, 0x0, 0x8f430064, 0x8f420060,
+0x1062001a, 0x274a0064, 0x8f5e0064, 0x8fab005c,
+0xafaa004c, 0x27c20001, 0x304200ff, 0xafa20054,
+0x24020004, 0x1562000e, 0x1e1140, 0x1e1180,
+0x24420cc0, 0x2e21021, 0xafa20044, 0x9442002a,
+0x8faa0044, 0x8fab006c, 0x4b102b, 0x10400024,
+0x25550020, 0x240a0001, 0x10000021, 0xa3aa0097,
+0x24424cc0, 0x1000001e, 0x2e2a821, 0x8f420044,
+0x8fab006c, 0x3c040001, 0x248468c4, 0xafab0014,
+0xafa20010, 0x8f460064, 0x8f470060, 0x3c050007,
+0xc002b3b, 0x34a51800, 0x3c020008, 0x2c21024,
+0x1440ff34, 0x0, 0x8f420370, 0x240a0001,
+0xafaa005c, 0x24420001, 0xaf420370, 0x1000ff90,
+0x8f420370, 0x27a30036, 0x131040, 0x621821,
+0x94620000, 0x441021, 0x10000020, 0xa4620000,
+0x8fab0064, 0xaeab0018, 0x93a20097, 0x10400072,
+0x9821, 0x8faa0044, 0x8fa4006c, 0x8fa300a4,
+0x25420020, 0xafa20028, 0x25420008, 0xafa20030,
+0x25420010, 0xafaa002c, 0xafa20034, 0x9542002a,
+0xa7a20038, 0x95420018, 0xa7a2003a, 0x9542001a,
+0xa7a2003c, 0x9542001c, 0xa7a2003e, 0x94620018,
+0x24630002, 0x822023, 0x1880ffde, 0x26730001,
+0x2e620004, 0x1440fff9, 0x0, 0x8f4200fc,
+0x26650001, 0xa2102a, 0x1440002b, 0x24030001,
+0x8f83012c, 0x10600023, 0x0, 0x8f820124,
+0x431023, 0x22143, 0x58800001, 0x24840040,
+0x8f820128, 0x431023, 0x21943, 0x58600001,
+0x24630040, 0x64102a, 0x54400001, 0x602021,
+0xaf4400fc, 0x8f4200fc, 0xa2102a, 0x10400011,
+0x24030001, 0x10000015, 0x306200ff, 0x8fab0064,
+0x96070018, 0xafab0010, 0x8e220008, 0x3c040001,
+0x248468dc, 0x8c430004, 0x8c420000, 0x34a52400,
+0x2403021, 0xc002b3b, 0xafa30014, 0x1000002b,
+0x0, 0x8f420334, 0x1821, 0x24420001,
+0xaf420334, 0x8f420334, 0x306200ff, 0x5040fedc,
+0x3c020800, 0x12600021, 0x9021, 0x8fb100a4,
+0x2208021, 0x8e220008, 0x96070018, 0x8fa60064,
+0x8c440000, 0x8c450004, 0x240a0001, 0xafaa0010,
+0xafbe0014, 0x8f420008, 0xafa20018, 0x8f42010c,
+0x40f809, 0x0, 0x1040ffd8, 0x3c050007,
+0x96020018, 0x8fab0064, 0x8faa009c, 0x1625821,
+0x14b102b, 0x10400004, 0xafab0064, 0x8f420148,
+0x1625823, 0xafab0064, 0x26100002, 0x26520001,
+0x253102b, 0x1440ffe3, 0x26310004, 0x8fb0006c,
+0x10000036, 0x97b10038, 0x8f4200fc, 0x24050002,
+0xa2102a, 0x1440001b, 0x24030001, 0x8f83012c,
+0x10600013, 0x0, 0x8f820124, 0x431023,
+0x22143, 0x58800001, 0x24840040, 0x8f820128,
+0x431023, 0x21943, 0x58600001, 0x24630040,
+0x64102a, 0x54400001, 0x602021, 0xaf4400fc,
+0x8f4200fc, 0xa2102a, 0x14400006, 0x24030001,
+0x8f420334, 0x1821, 0x24420001, 0xaf420334,
+0x8f420334, 0x306200ff, 0x1040fea5, 0x3c020800,
+0x96b1000a, 0x8fb0006c, 0x3223ffff, 0x70102b,
+0x54400001, 0x608021, 0x8ea40000, 0x8ea50004,
+0x240b0001, 0xafab0010, 0xafbe0014, 0x8f420008,
+0x8fa60064, 0xafa20018, 0x8f42010c, 0x40f809,
+0x2003821, 0x1040fea2, 0x3c050007, 0x96a3000e,
+0x97aa008e, 0x11400007, 0x609021, 0x934205c4,
+0x14400004, 0x0, 0x97ab0086, 0x6a1825,
+0xa6ab0016, 0x8faa007c, 0x3c02ffff, 0x1421024,
+0x10400003, 0xa1402, 0x34630400, 0xa6a20014,
+0x8fab006c, 0x560b0072, 0xa6a3000e, 0x34620004,
+0xa6a2000e, 0x8faa0074, 0x16a1021, 0xa6a2000a,
+0x8f430044, 0x8f4401a0, 0x8f4501a4, 0x34028000,
+0xafa20010, 0x8f420044, 0x2a03021, 0x24070020,
+0xafa20014, 0x8f42000c, 0x31940, 0x604821,
+0xafa20018, 0x8f42010c, 0x4021, 0xa92821,
+0xa9182b, 0x882021, 0x40f809, 0x832021,
+0x5040fe7f, 0xa6b2000e, 0x8f420368, 0xafa0006c,
+0xa34005c4, 0x2442ffff, 0xaf420368, 0x8fab005c,
+0x240a0001, 0x8f420368, 0x156a0006, 0x240a0002,
+0x8f42035c, 0x2442ffff, 0xaf42035c, 0x1000000c,
+0x8f42035c, 0x156a0006, 0x0, 0x8f420364,
+0x2442ffff, 0xaf420364, 0x10000005, 0x8f420364,
+0x8f420360, 0x2442ffff, 0xaf420360, 0x8f420360,
+0x8faa0054, 0x8fab004c, 0xad6a0000, 0x8f420044,
+0x8f440088, 0x8f430078, 0x24420001, 0x441024,
+0x24630001, 0xaf420044, 0xaf430078, 0x8c020240,
+0x62182b, 0x14600075, 0x24070008, 0x8f440168,
+0x8f45016c, 0x8f430044, 0x8f48000c, 0x8f860120,
+0x24020040, 0xafa20010, 0xafa30014, 0xafa80018,
+0x8f42010c, 0x40f809, 0x24c6001c, 0x14400011,
+0x240b0001, 0x3c010001, 0x370821, 0xa02b40f2,
+0x8f820124, 0xafa20010, 0x8f820128, 0x3c040001,
+0x2484688c, 0xafa20014, 0x8f460044, 0x8f870120,
+0x3c050009, 0xc002b3b, 0x34a51300, 0x1000000b,
+0x0, 0x8f420304, 0x24420001, 0xaf420304,
+0x8f420304, 0x8f420044, 0xaf42007c, 0x3c010001,
+0x370821, 0xa02040f2, 0xaf400078, 0x8f420318,
+0x24420001, 0xaf420318, 0x10000048, 0x8f420318,
+0xa6b0000a, 0x8f430044, 0x8f4401a0, 0x8f4501a4,
+0x34028000, 0xafa20010, 0x8f420044, 0x2a03021,
+0x24070020, 0xafa20014, 0x8f42000c, 0x31940,
+0x604821, 0xafa20018, 0x8f42010c, 0x4021,
+0xa92821, 0xa9182b, 0x882021, 0x40f809,
+0x832021, 0x1040fe1f, 0x240a0001, 0xa34a05c4,
+0x8fab006c, 0x8faa0064, 0x1705823, 0xafab006c,
+0x8fab009c, 0x1505021, 0x16a102b, 0x10400004,
+0xafaa0064, 0x8f420148, 0x1425023, 0xafaa0064,
+0x8f420368, 0x2442ffff, 0xaf420368, 0x8faa005c,
+0x240b0001, 0x8f420368, 0x154b0006, 0x240b0002,
+0x8f42035c, 0x2442ffff, 0xaf42035c, 0x1000000c,
+0x8f42035c, 0x114b0006, 0x0, 0x8f420360,
+0x2442ffff, 0xaf420360, 0x10000005, 0x8f420360,
+0x8f420364, 0x2442ffff, 0xaf420364, 0x8f420364,
+0x8fab0054, 0x8faa004c, 0xad4b0000, 0x8f420044,
+0x8f440088, 0x8f430078, 0x24420001, 0x441024,
+0x24630001, 0xaf420044, 0xaf430078, 0x8faa006c,
+0x1540fe0b, 0x0, 0x8fab006c, 0x1160001e,
+0x0, 0x934205c4, 0x10400009, 0x0,
+0x8faa0064, 0xaf4a00c4, 0xaf4b00c0, 0x8fab007c,
+0xaf4b00c8, 0x8faa0074, 0x1000000e, 0xaf4a00cc,
+0x97ab008e, 0x1160000b, 0x34038100, 0x8fa20020,
+0x8c46000c, 0xa443000c, 0x97aa0086, 0x8c440004,
+0x8c450008, 0xa44a000e, 0xac440000, 0xac450004,
+0xac460008, 0x8f42034c, 0x24420001, 0xaf42034c,
+0x10000010, 0x8f42034c, 0x8fab007c, 0x3164ffff,
+0x2484fffc, 0x801821, 0x8f440250, 0x8f450254,
+0x8f460118, 0x1021, 0xa32821, 0xa3382b,
+0x822021, 0x872021, 0xaf440250, 0xc0f809,
+0xaf450254, 0x8fbf00c8, 0x8fbe00c4, 0x8fb500c0,
+0x8fb300bc, 0x8fb200b8, 0x8fb100b4, 0x8fb000b0,
+0x3e00008, 0x27bd00d0, 0x3e00008, 0x0,
+0x27bdff38, 0x240b0001, 0xafbf00c0, 0xafbe00bc,
+0xafb500b8, 0xafb300b4, 0xafb200b0, 0xafb100ac,
+0xafb000a8, 0xa3a00087, 0xafa00044, 0xafab005c,
+0x934205c4, 0xa7a00076, 0x10400007, 0xa7a0007e,
+0x8f4c00c0, 0xafac0064, 0x8f4b00c8, 0x8f5e00c4,
+0x10000130, 0xafab006c, 0x8f420114, 0x40f809,
+0x0, 0x403021, 0x10c002a1, 0x0,
+0x8cc20000, 0x8cc30004, 0xafa20020, 0xafa30024,
+0x8fac0024, 0x8fbe0020, 0x3182ffff, 0x2442fffc,
+0xafa20064, 0x3c020006, 0x2c21024, 0x14400015,
+0xafac006c, 0x93c20000, 0x30420001, 0x10400011,
+0x2402ffff, 0x8fc30000, 0x14620004, 0x3402ffff,
+0x97c30004, 0x1062000b, 0x0, 0xc0024bb,
+0x3c02021, 0x304200ff, 0x14400006, 0x0,
+0x8f420118, 0x40f809, 0x0, 0x10000280,
+0x0, 0x8fa20024, 0x3c03ffbf, 0x3463ffff,
+0x431024, 0x3c03ffff, 0x431824, 0x14600003,
+0xafa20024, 0x10000040, 0x8021, 0x3c020080,
+0x621024, 0x10400007, 0x0, 0x8f42038c,
+0x24420001, 0xaf42038c, 0x8f42038c, 0x10000036,
+0x24100001, 0x8f420210, 0x24420001, 0xaf420210,
+0x8f420210, 0x3c020001, 0x621024, 0x10400006,
+0x3c020002, 0x8f4201c4, 0x24420001, 0xaf4201c4,
+0x8f4201c4, 0x3c020002, 0x621024, 0x10400006,
+0x3c020004, 0x8f42037c, 0x24420001, 0xaf42037c,
+0x8f42037c, 0x3c020004, 0x621024, 0x10400006,
+0x3c020008, 0x8f420380, 0x24420001, 0xaf420380,
+0x8f420380, 0x3c020008, 0x621024, 0x10400006,
+0x3c020010, 0x8f420384, 0x24420001, 0xaf420384,
+0x8f420384, 0x3c020010, 0x621024, 0x10400006,
+0x3c020020, 0x8f4201c0, 0x24420001, 0xaf4201c0,
+0x8f4201c0, 0x3c020020, 0x621024, 0x10400006,
+0x24100001, 0x8f420388, 0x24420001, 0xaf420388,
+0x8f420388, 0x24100001, 0x8c020260, 0x8fab0064,
+0x4b102b, 0x10400015, 0x320200ff, 0x8f4201e8,
+0x24420001, 0xaf4201e8, 0x8f4201e8, 0x8fac006c,
+0x8f8200e0, 0x358c0100, 0xafac006c, 0xafa20010,
+0x8f8200e4, 0x24100001, 0x3c040001, 0x248468a0,
+0xafa20014, 0x8fa60020, 0x8fa70024, 0x3c050007,
+0xc002b3b, 0x34a53600, 0x320200ff, 0x10400010,
+0x3c020080, 0x2c21024, 0x1440000e, 0x32c20400,
+0x8fab006c, 0x3c020080, 0x34420100, 0x1621024,
+0x10400005, 0x0, 0x8f42020c, 0x24420001,
+0xaf42020c, 0x8f42020c, 0x10000202, 0x8fa30064,
+0x32c20400, 0x10400012, 0x34028100, 0x97c3000c,
+0x1462000f, 0x0, 0x240c0200, 0xa7ac0076,
+0x97c2000e, 0x8fc30008, 0x8fc40004, 0x8fab0064,
+0x8fc50000, 0x256bfffc, 0xafab0064, 0xa7a2007e,
+0xafc3000c, 0xafc40008, 0xafc50004, 0x27de0004,
+0x8fa70064, 0x320200ff, 0x14400034, 0x3c020100,
+0x97c4000c, 0x2c8305dd, 0x38828870, 0x2c420001,
+0x621825, 0x10600015, 0x2821, 0x32c20800,
+0x10400015, 0x24020800, 0x97c30014, 0x14620012,
+0x3402aaaa, 0x97c3000e, 0x14620007, 0x2021,
+0x97c30010, 0x24020300, 0x14620004, 0x801021,
+0x97c20012, 0x2c440001, 0x801021, 0x54400006,
+0x24050016, 0x10000004, 0x0, 0x24020800,
+0x50820001, 0x2405000e, 0x10a00013, 0x3c52021,
+0x24830009, 0x3c02001f, 0x3442ffff, 0x43102b,
+0x10400003, 0x0, 0x8f420148, 0x621823,
+0x90620000, 0x38430006, 0x2c630001, 0x38420011,
+0x2c420001, 0x621825, 0x10600004, 0x3c020100,
+0x94820002, 0x453821, 0x3c020100, 0x2c21024,
+0x5040000e, 0xafa70064, 0x8fac0064, 0x10ec0008,
+0x3c050007, 0x3c040001, 0x24846908, 0x8fa60064,
+0x34a54000, 0xafa00010, 0xc002b3b, 0xafa00014,
+0x8fab0064, 0x256b0004, 0xafab0064, 0x8f420080,
+0x8fac0064, 0x4c102b, 0x1040002c, 0x32c28000,
+0x10400034, 0x240b0003, 0x32c21000, 0x10400031,
+0xafab005c, 0x1000002e, 0x240c0004, 0x8f420350,
+0x2403ffbf, 0x283a024, 0x24420001, 0xaf420350,
+0x10000173, 0x8f420350, 0x3c020800, 0x2c2b025,
+0x2402ffbf, 0x282a024, 0x8f830128, 0x3c040001,
+0x248468d0, 0x26620001, 0xafa20014, 0xafa30010,
+0x8f860120, 0x8f870124, 0x3c050007, 0xc002b3b,
+0x34a55300, 0x10000162, 0x0, 0x8ea20000,
+0x8ea30004, 0x3c040001, 0x248468e8, 0xafb00010,
+0xafb10014, 0x8ea70018, 0x34a55900, 0xc002b3b,
+0x603021, 0x10000156, 0x0, 0x8f420084,
+0x8fab0064, 0x4b102b, 0x14400007, 0x3c020001,
+0x2c21024, 0x10400004, 0x0, 0x240c0002,
+0xafac005c, 0x8fab0064, 0x11600166, 0x27ac0020,
+0xafac008c, 0x8fab005c, 0x240c0001, 0x556c0021,
+0x240c0002, 0x8f430054, 0x8f420050, 0x1062000b,
+0x274b0054, 0x8f510054, 0x3403ecc0, 0xafab004c,
+0x26220001, 0x304201ff, 0xafa20054, 0x111140,
+0x431021, 0x1000006b, 0x2e2a821, 0x8f420044,
+0x8fac0064, 0x3c040001, 0x248468ac, 0xafac0014,
+0xafa20010, 0x8f460054, 0x8f470050, 0x3c050007,
+0xc002b3b, 0x34a54300, 0x8f430350, 0x2402ffbf,
+0x282a024, 0x24630001, 0xaf430350, 0x10000124,
+0x8f420350, 0x156c001d, 0x0, 0x8f430074,
+0x8f420070, 0x1062000a, 0x274b0074, 0x8f510074,
+0xafab004c, 0x26220001, 0x304203ff, 0xafa20054,
+0x111140, 0x24426cc0, 0x1000004a, 0x2e2a821,
+0x8f420044, 0x8fac0064, 0x3c040001, 0x248468b8,
+0x3c050007, 0xafac0014, 0xafa20010, 0x8f460074,
+0x8f470070, 0x34a54500, 0x240b0001, 0xc002b3b,
+0xafab005c, 0x1000ffc3, 0x0, 0x8f430064,
+0x8f420060, 0x1062001a, 0x274c0064, 0x8f510064,
+0x8fab005c, 0xafac004c, 0x26220001, 0x304200ff,
+0xafa20054, 0x24020004, 0x1562000e, 0x111140,
+0x111180, 0x24420cc0, 0x2e21021, 0xafa20044,
+0x9442002a, 0x8fac0044, 0x8fab0064, 0x4b102b,
+0x10400024, 0x25950020, 0x240c0001, 0x10000021,
+0xa3ac0087, 0x24424cc0, 0x1000001e, 0x2e2a821,
+0x8f420044, 0x8fab0064, 0x3c040001, 0x248468c4,
+0xafab0014, 0xafa20010, 0x8f460064, 0x8f470060,
+0x3c050007, 0xc002b3b, 0x34a54800, 0x3c020008,
+0x2c21024, 0x1440ff61, 0x0, 0x8f420370,
+0x240c0001, 0xafac005c, 0x24420001, 0xaf420370,
+0x1000ff90, 0x8f420370, 0x27a30036, 0x131040,
+0x621821, 0x94620000, 0x441021, 0x1000001f,
+0xa4620000, 0xaebe0018, 0x93a20087, 0x10400084,
+0x9821, 0x8fab0044, 0x8fa40064, 0x8fa3008c,
+0x25620020, 0xafa20028, 0x25620008, 0xafa20030,
+0x25620010, 0xafab002c, 0xafa20034, 0x9562002a,
+0xa7a20038, 0x95620018, 0xa7a2003a, 0x9562001a,
+0xa7a2003c, 0x9562001c, 0xa7a2003e, 0x94620018,
+0x24630002, 0x822023, 0x1880ffdf, 0x26730001,
+0x2e620004, 0x1440fff9, 0x0, 0x8f4200fc,
+0x262102a, 0x14400030, 0x24030001, 0x8f83012c,
+0x10600028, 0x0, 0x8f820124, 0x431023,
+0x22143, 0x58800001, 0x24840040, 0x8f820128,
+0x431023, 0x21943, 0x58600001, 0x24630040,
+0x64102a, 0x54400001, 0x602021, 0xaf4400fc,
+0x8f4200fc, 0x262102a, 0x10400016, 0x24030001,
+0x1000001a, 0x306200ff, 0x8fac008c, 0x101040,
+0x4c1021, 0x94470018, 0x101080, 0x4c1021,
+0xafbe0010, 0x8c420008, 0x3c040001, 0x248468dc,
+0x3c050007, 0x8c430004, 0x8c420000, 0x34a55500,
+0x2003021, 0xc002b3b, 0xafa30014, 0x10000039,
+0x0, 0x8f420334, 0x1821, 0x24420001,
+0xaf420334, 0x8f420334, 0x306200ff, 0x1040ff06,
+0x8021, 0x8f430008, 0x2402fbff, 0x1260002d,
+0x625024, 0x3c0b4000, 0x22b4025, 0x8fb1008c,
+0x2669ffff, 0x2209021, 0x8e420008, 0x96270018,
+0x8c440000, 0x8c450004, 0x56090004, 0x240b0001,
+0x240c0002, 0x10000002, 0xafac0010, 0xafab0010,
+0x16000004, 0xafa80014, 0x8f420008, 0x10000002,
+0xafa20018, 0xafaa0018, 0x8f42010c, 0x3c03021,
+0xafa80098, 0xafa9009c, 0x40f809, 0xafaa00a0,
+0x8fa80098, 0x8fa9009c, 0x8faa00a0, 0x1040ffc2,
+0x3c02001f, 0x96230018, 0x3442ffff, 0x3c3f021,
+0x5e102b, 0x10400003, 0x26310002, 0x8f420148,
+0x3c2f023, 0x26100001, 0x213102b, 0x1440ffda,
+0x26520004, 0x8fb00064, 0x1000001a, 0x0,
+0x96a3000a, 0x8fb00064, 0x70102b, 0x54400001,
+0x608021, 0x8ea40000, 0x8ea50004, 0x8fab005c,
+0x240c0002, 0xafac0010, 0x934305c4, 0xb1700,
+0x10600003, 0x2223025, 0x3c020800, 0xc23025,
+0xafa60014, 0x8f420008, 0xafa20018, 0x8f42010c,
+0x3c03021, 0x40f809, 0x2003821, 0x1040fecb,
+0x3c050007, 0x97ac0076, 0x11800007, 0x96a3000e,
+0x934205c4, 0x14400004, 0x0, 0x97ab007e,
+0x6c1825, 0xa6ab0016, 0x8fac006c, 0x3c02ffff,
+0x1821024, 0x10400003, 0xc1402, 0x34630400,
+0xa6a20014, 0xa6b0000a, 0x8fab0064, 0x560b0006,
+0x3d0f021, 0x34620004, 0xafa00064, 0xa6a2000e,
+0x1000000d, 0xa34005c4, 0x8fac0064, 0x3c02001f,
+0x3442ffff, 0x5e102b, 0x1906023, 0xafac0064,
+0xa6a3000e, 0x240b0001, 0x10400003, 0xa34b05c4,
+0x8f420148, 0x3c2f023, 0x8fab0054, 0x8fac004c,
+0xad8b0000, 0x8fac0064, 0x1580feba, 0x0,
+0x8fab0064, 0x1160001b, 0x0, 0x934205c4,
+0x10400006, 0x0, 0xaf5e00c4, 0xaf4b00c0,
+0x8fac006c, 0x1000000e, 0xaf4c00c8, 0x97ab0076,
+0x1160000b, 0x34038100, 0x8fa20020, 0x8c46000c,
+0xa443000c, 0x97ac007e, 0x8c440004, 0x8c450008,
+0xa44c000e, 0xac440000, 0xac450004, 0xac460008,
+0x8f42034c, 0x24420001, 0xaf42034c, 0x10000010,
+0x8f42034c, 0x8fab006c, 0x3164ffff, 0x2484fffc,
+0x801821, 0x8f440250, 0x8f450254, 0x8f460118,
+0x1021, 0xa32821, 0xa3382b, 0x822021,
+0x872021, 0xaf440250, 0xc0f809, 0xaf450254,
+0x8fbf00c0, 0x8fbe00bc, 0x8fb500b8, 0x8fb300b4,
+0x8fb200b0, 0x8fb100ac, 0x8fb000a8, 0x3e00008,
+0x27bd00c8, 0x3e00008, 0x0, 0x27bdffd8,
+0xafbf0024, 0xafb00020, 0x8f43004c, 0x8f420048,
+0x10620034, 0x0, 0x8f430048, 0x8f42004c,
+0x622023, 0x4820001, 0x24840200, 0x8f430054,
+0x8f42004c, 0x43102b, 0x14400004, 0x24020200,
+0x8f43004c, 0x10000005, 0x431023, 0x8f420054,
+0x8f43004c, 0x431023, 0x2442ffff, 0x405021,
+0x8a102a, 0x54400001, 0x805021, 0x8f49004c,
+0x8f48004c, 0x8f440188, 0x8f45018c, 0x8f46004c,
+0x24071000, 0xafa70010, 0x84140, 0x1001821,
+0x12a4821, 0x313001ff, 0xafb00014, 0x8f470014,
+0x1021, 0x63140, 0xafa70018, 0xa32821,
+0xa3382b, 0x822021, 0x872021, 0x3402ecc0,
+0xc23021, 0x8f420108, 0x2e63021, 0x40f809,
+0xa3940, 0x54400001, 0xaf50004c, 0x8f43004c,
+0x8f420048, 0x14620018, 0x0, 0x8f420000,
+0x10400007, 0x0, 0xaf80004c, 0x8f82004c,
+0x1040fffd, 0x0, 0x10000005, 0x0,
+0xaf800048, 0x8f820048, 0x1040fffd, 0x0,
+0x8f820060, 0x2403fdff, 0x431024, 0xaf820060,
+0x8f420000, 0x10400003, 0x0, 0x10000002,
+0xaf80004c, 0xaf800048, 0x8fbf0024, 0x8fb00020,
+0x3e00008, 0x27bd0028, 0x3e00008, 0x0,
+0x27bdffd8, 0xafbf0024, 0xafb00020, 0x8f43005c,
+0x8f420058, 0x10620049, 0x0, 0x8f430058,
+0x8f42005c, 0x622023, 0x4820001, 0x24840100,
+0x8f430064, 0x8f42005c, 0x43102b, 0x14400004,
+0x24020100, 0x8f43005c, 0x10000005, 0x431023,
+0x8f420064, 0x8f43005c, 0x431023, 0x2442ffff,
+0x403821, 0x87102a, 0x54400001, 0x803821,
+0x8f42005c, 0x471021, 0x305000ff, 0x32c21000,
+0x10400015, 0x24082000, 0x8f49005c, 0x8f440190,
+0x8f450194, 0x8f46005c, 0x73980, 0xafa80010,
+0xafb00014, 0x8f480014, 0x94980, 0x1201821,
+0x1021, 0xa32821, 0xa3482b, 0x822021,
+0x892021, 0x63180, 0xafa80018, 0x8f420108,
+0x10000014, 0x24c60cc0, 0x8f49005c, 0x8f440190,
+0x8f450194, 0x8f46005c, 0x73940, 0xafa80010,
+0xafb00014, 0x8f480014, 0x94940, 0x1201821,
+0x1021, 0xa32821, 0xa3482b, 0x822021,
+0x892021, 0x63140, 0xafa80018, 0x8f420108,
+0x24c64cc0, 0x40f809, 0x2e63021, 0x54400001,
+0xaf50005c, 0x8f43005c, 0x8f420058, 0x14620018,
+0x0, 0x8f420000, 0x10400007, 0x0,
+0xaf80004c, 0x8f82004c, 0x1040fffd, 0x0,
+0x10000005, 0x0, 0xaf800048, 0x8f820048,
+0x1040fffd, 0x0, 0x8f820060, 0x2403feff,
+0x431024, 0xaf820060, 0x8f420000, 0x10400003,
+0x0, 0x10000002, 0xaf80004c, 0xaf800048,
+0x8fbf0024, 0x8fb00020, 0x3e00008, 0x27bd0028,
+0x3e00008, 0x0, 0x27bdffd8, 0xafbf0024,
+0xafb00020, 0x8f43006c, 0x8f420068, 0x10620033,
+0x0, 0x8f430068, 0x8f42006c, 0x622023,
+0x4820001, 0x24840400, 0x8f430074, 0x8f42006c,
+0x43102b, 0x14400004, 0x24020400, 0x8f43006c,
+0x10000005, 0x431023, 0x8f420074, 0x8f43006c,
+0x431023, 0x2442ffff, 0x405021, 0x8a102a,
+0x54400001, 0x805021, 0x8f49006c, 0x8f48006c,
+0x8f440198, 0x8f45019c, 0x8f46006c, 0x24074000,
+0xafa70010, 0x84140, 0x1001821, 0x12a4821,
+0x313003ff, 0xafb00014, 0x8f470014, 0x1021,
+0x63140, 0x24c66cc0, 0xafa70018, 0xa32821,
+0xa3382b, 0x822021, 0x872021, 0x8f420108,
+0x2e63021, 0x40f809, 0xa3940, 0x54400001,
+0xaf50006c, 0x8f43006c, 0x8f420068, 0x14620018,
+0x0, 0x8f420000, 0x10400007, 0x0,
+0xaf80004c, 0x8f82004c, 0x1040fffd, 0x0,
+0x10000005, 0x0, 0xaf800048, 0x8f820048,
+0x1040fffd, 0x0, 0x8f820060, 0x2403f7ff,
+0x431024, 0xaf820060, 0x8f420000, 0x10400003,
+0x0, 0x10000002, 0xaf80004c, 0xaf800048,
+0x8fbf0024, 0x8fb00020, 0x3e00008, 0x27bd0028,
+0x3e00008, 0x0, 0x8f4200fc, 0x3c030001,
+0x8f4400f8, 0x346330c8, 0x24420001, 0xaf4200fc,
+0x8f850128, 0x2e31021, 0x54820004, 0x24820008,
+0x3c020001, 0x34422ec8, 0x2e21021, 0x401821,
+0xaf4300f8, 0xac600000, 0x8f4200f4, 0x14620004,
+0x3c020001, 0x24a20020, 0x1000000f, 0xaf820128,
+0x8f4300f8, 0x344230c8, 0x2e21021, 0x54620004,
+0x24620008, 0x3c020001, 0x34422ec8, 0x2e21021,
+0x401821, 0x8c620004, 0x21140, 0xa21021,
+0xaf820128, 0xac600000, 0x8ca30018, 0x30620070,
+0x1040002d, 0x30620020, 0x10400004, 0x3c020010,
+0x2c21024, 0x1040000d, 0x0, 0x30620040,
+0x10400004, 0x3c020020, 0x2c21024, 0x10400007,
+0x0, 0x30620010, 0x1040001f, 0x3c020040,
+0x2c21024, 0x1440001c, 0x0, 0x8f820040,
+0x30420001, 0x14400008, 0x2021, 0x8c030104,
+0x24020001, 0x50620005, 0x24040001, 0x8c020264,
+0x10400003, 0x801021, 0x24040001, 0x801021,
+0x10400006, 0x0, 0x8f42030c, 0x24420001,
+0xaf42030c, 0x10000008, 0x8f42030c, 0x8f820044,
+0x34420004, 0xaf820044, 0x8f420308, 0x24420001,
+0xaf420308, 0x8f420308, 0x3e00008, 0x0,
+0x3e00008, 0x0, 0x27bdff98, 0xafbf0060,
+0xafbe005c, 0xafb50058, 0xafb30054, 0xafb20050,
+0xafb1004c, 0xafb00048, 0x8f4200fc, 0x24420001,
+0xaf4200fc, 0x8f880128, 0x25020020, 0xaf820128,
+0x8d030018, 0x30620070, 0x1040002e, 0x30620020,
+0x10400004, 0x3c020010, 0x2c21024, 0x1040000d,
+0x0, 0x30620040, 0x10400004, 0x3c020020,
+0x2c21024, 0x10400007, 0x0, 0x30620010,
+0x104001a9, 0x3c020040, 0x2c21024, 0x144001a6,
+0x0, 0x8f820040, 0x30420001, 0x14400008,
+0x2021, 0x8c030104, 0x24020001, 0x50620005,
+0x24040001, 0x8c020264, 0x10400003, 0x801021,
+0x24040001, 0x801021, 0x10400006, 0x0,
+0x8f42030c, 0x24420001, 0xaf42030c, 0x10000192,
+0x8f42030c, 0x8f820044, 0x34420004, 0xaf820044,
+0x8f420308, 0x24420001, 0xaf420308, 0x1000018a,
+0x8f420308, 0x30620002, 0x1040014b, 0x3c020800,
+0x8d1e001c, 0x1e5702, 0xafaa0034, 0x950a0016,
+0x3c22024, 0xafaa0024, 0x8faa0034, 0x24020001,
+0x15420006, 0x33deffff, 0x1e1140, 0x3403ecc0,
+0x431021, 0x10000010, 0x2e2a821, 0x24020002,
+0x15420005, 0x24020003, 0x1e1140, 0x24426cc0,
+0x10000009, 0x2e2a821, 0x15420005, 0x1e1180,
+0x1e1140, 0x24424cc0, 0x10000003, 0x2e2a821,
+0x571021, 0x24550ce0, 0x96a2000e, 0x304afffc,
+0x30420400, 0x10400003, 0xafaa002c, 0x100000e1,
+0x8821, 0x10800004, 0x8821, 0x97b10026,
+0x100000dd, 0xa6b10012, 0x8eb30018, 0x966a000c,
+0xa7aa003e, 0x97a5003e, 0x2ca305dd, 0x38a28870,
+0x2c420001, 0x621825, 0x10600015, 0x2021,
+0x32c20800, 0x10400015, 0x24020800, 0x96630014,
+0x14620012, 0x3402aaaa, 0x9663000e, 0x14620007,
+0x2821, 0x96630010, 0x24020300, 0x14620004,
+0xa01021, 0x96620012, 0x2c450001, 0xa01021,
+0x54400006, 0x24040016, 0x10000004, 0x0,
+0x24020800, 0x50a20001, 0x2404000e, 0x108000b9,
+0x2649021, 0x92420000, 0x3042000f, 0x28080,
+0x32c20100, 0x10400020, 0x2501821, 0x3c020020,
+0x43102b, 0x1440000e, 0x2402021, 0x2821,
+0x94820000, 0x24840002, 0xa22821, 0x83102b,
+0x1440fffb, 0x30a2ffff, 0x51c02, 0x622821,
+0x51c02, 0x30a2ffff, 0x10000009, 0x622821,
+0x8f470148, 0x8f420110, 0x102842, 0x3c060020,
+0x40f809, 0xafa80040, 0x3045ffff, 0x8fa80040,
+0x50a00001, 0x3405ffff, 0x8faa002c, 0x354a0002,
+0x10000002, 0xafaa002c, 0x2821, 0x32c20080,
+0x10400090, 0xa6a50010, 0x26430009, 0x3c02001f,
+0x3442ffff, 0x43102b, 0x10400003, 0x0,
+0x8f420148, 0x621823, 0x90660000, 0x30c200ff,
+0x38430006, 0x2c630001, 0x38420011, 0x2c420001,
+0x621825, 0x1060007f, 0x24020800, 0x8821,
+0x97a3003e, 0x1462000f, 0x2602021, 0x96710000,
+0x96620002, 0x96630004, 0x96640006, 0x2228821,
+0x2238821, 0x2248821, 0x96620008, 0x9663000a,
+0x9664000c, 0x2228821, 0x2238821, 0x10000007,
+0x2248821, 0x94820000, 0x24840002, 0x2228821,
+0x92102b, 0x1440fffb, 0x0, 0x111c02,
+0x3222ffff, 0x628821, 0x111c02, 0x3222ffff,
+0x628821, 0x32c20200, 0x10400003, 0x26440006,
+0x1000003e, 0x8021, 0x3c05001f, 0x34a5ffff,
+0xa4102b, 0x10400003, 0x0, 0x8f420148,
+0x822023, 0x94820000, 0x30421fff, 0x10400004,
+0x2644000c, 0x96420002, 0x10000030, 0x508023,
+0x96420002, 0x26430014, 0x508023, 0x3c020020,
+0x43102b, 0x1440000a, 0xd08021, 0x9642000c,
+0x2028021, 0x9642000e, 0x96430010, 0x96440012,
+0x2028021, 0x2038021, 0x10000020, 0x2048021,
+0xa4102b, 0x10400003, 0x0, 0x8f420148,
+0x822023, 0x94820000, 0x24840002, 0x2028021,
+0xa4102b, 0x10400003, 0x0, 0x8f420148,
+0x822023, 0x94820000, 0x24840002, 0x2028021,
+0xa4102b, 0x10400003, 0x0, 0x8f420148,
+0x822023, 0x94820000, 0x24840002, 0x2028021,
+0xa4102b, 0x10400003, 0x0, 0x8f420148,
+0x822023, 0x94820000, 0x2028021, 0x3c020100,
+0x2c21024, 0x1040000e, 0x0, 0x8faa002c,
+0x31420004, 0x1040000a, 0x0, 0x9504000e,
+0x2642021, 0xc003eec, 0x2484fffc, 0x3042ffff,
+0x2228821, 0x111c02, 0x3222ffff, 0x628821,
+0x8faa0024, 0x1518823, 0x111402, 0x2228821,
+0x2308821, 0x111402, 0x2228821, 0x3231ffff,
+0x52200001, 0x3411ffff, 0x8faa002c, 0x354a0001,
+0xafaa002c, 0xa6b10012, 0x97aa002e, 0xa6aa000e,
+0x8faa002c, 0x31420004, 0x10400002, 0x24091000,
+0x34098000, 0x8f480044, 0x8f4401a0, 0x8f4501a4,
+0xafa90010, 0x8f490044, 0x84140, 0x1001821,
+0xafa90014, 0x8f48000c, 0x2a03021, 0x24070020,
+0xafa80018, 0x8f48010c, 0x1021, 0xa32821,
+0xa3482b, 0x822021, 0x100f809, 0x892021,
+0x1440000b, 0x0, 0x8f820128, 0x3c040001,
+0x24846914, 0xafbe0014, 0xafa20010, 0x8f860124,
+0x8f870120, 0x3c050007, 0xc002b3b, 0x34a59920,
+0x8f420368, 0x2442ffff, 0xaf420368, 0x8f420044,
+0x8f430088, 0x24420001, 0x431024, 0xaf420044,
+0x8faa0034, 0x8f440368, 0x24020001, 0x15420006,
+0x24020002, 0x8f42035c, 0x2442ffff, 0xaf42035c,
+0x10000049, 0x8f42035c, 0x15420006, 0x0,
+0x8f420364, 0x2442ffff, 0xaf420364, 0x10000042,
+0x8f420364, 0x8f420360, 0x2442ffff, 0xaf420360,
+0x1000003d, 0x8f420360, 0x30621000, 0x10400005,
+0x30628000, 0x8f420078, 0x24420001, 0x10000036,
+0xaf420078, 0x10400034, 0x0, 0x8f420078,
+0x24420001, 0xaf420078, 0x8c030240, 0x43102b,
+0x1440002d, 0x24070008, 0x8f440168, 0x8f45016c,
+0x8f430044, 0x8f48000c, 0x8f860120, 0x24020040,
+0xafa20010, 0xafa30014, 0xafa80018, 0x8f42010c,
+0x40f809, 0x24c6001c, 0x14400011, 0x24020001,
+0x3c010001, 0x370821, 0xa02240f2, 0x8f820124,
+0xafa20010, 0x8f820128, 0x3c040001, 0x2484688c,
+0xafa20014, 0x8f460044, 0x8f870120, 0x3c050009,
+0xc002b3b, 0x34a51300, 0x1000000b, 0x0,
+0x8f420304, 0x24420001, 0xaf420304, 0x8f420304,
+0x8f420044, 0xaf42007c, 0x3c010001, 0x370821,
+0xa02040f2, 0xaf400078, 0x8f420318, 0x24420001,
+0xaf420318, 0x8f420318, 0x8fbf0060, 0x8fbe005c,
+0x8fb50058, 0x8fb30054, 0x8fb20050, 0x8fb1004c,
+0x8fb00048, 0x3e00008, 0x27bd0068, 0x3e00008,
+0x0, 0x0, 0x0, 0x8f42013c,
+0xaf8200c0, 0x8f42013c, 0xaf8200c4, 0x8f42013c,
+0xaf8200c8, 0x8f420138, 0xaf8200d0, 0x8f420138,
+0xaf8200d4, 0x8f420138, 0x3e00008, 0xaf8200d8,
+0x27bdffe0, 0x27840208, 0x24050200, 0xafbf0018,
+0xc002bbf, 0x24060008, 0x8c020204, 0xc004012,
+0xaf820210, 0x3c020001, 0x8c426d94, 0x30420002,
+0x1040000e, 0x2021, 0x8c060248, 0x24020002,
+0x3c010001, 0xac226d98, 0xc005104, 0x24050002,
+0x2021, 0x8c060248, 0x24020001, 0x3c010001,
+0xac226d98, 0x10000011, 0x24050001, 0x8c060248,
+0x24020004, 0x3c010001, 0xac226d98, 0xc005104,
+0x24050004, 0x3c020001, 0x8c426d94, 0x30420001,
+0x10400008, 0x24020001, 0x3c010001, 0xac226d98,
+0x2021, 0x24050001, 0x3c06601b, 0xc005104,
+0x0, 0x3c040001, 0x248469d0, 0x8f420150,
+0x8f430154, 0x3c050008, 0x8f460158, 0x21640,
+0x31940, 0x34630403, 0x431025, 0x633c0,
+0x461025, 0xaf82021c, 0xafa00010, 0xafa00014,
+0x8f86021c, 0x34a50200, 0xc002b3b, 0x3821,
+0x3c010001, 0xac206d90, 0x3c010001, 0xac206da8,
+0x8fbf0018, 0x3e00008, 0x27bd0020, 0x27bdffe0,
+0x3c050008, 0x34a50300, 0xafbf0018, 0xafa00010,
+0xafa00014, 0x8f860200, 0x3c040001, 0x248469dc,
+0xc002b3b, 0x3821, 0x8f420410, 0x24420001,
+0xaf420410, 0x8f420410, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x27bdffd8, 0xafbf0020, 0xafb1001c,
+0xafb00018, 0x8f4203a4, 0x24420001, 0xaf4203a4,
+0x8f4203a4, 0x8f900220, 0x8f8200e0, 0xafa20010,
+0x8f8200e4, 0xafa20014, 0x8f8600c4, 0x8f8700c8,
+0x3c040001, 0x248469e8, 0xc002b3b, 0x2002821,
+0x3c044000, 0x2041024, 0x504000b4, 0x3c040100,
+0x8f4203bc, 0x24420001, 0xaf4203bc, 0x8f4203bc,
+0x8f8700c4, 0x8f8300c8, 0x8f420148, 0x671823,
+0x43102b, 0x10400003, 0x0, 0x8f420148,
+0x621821, 0x10600005, 0x0, 0x8f42014c,
+0x43102b, 0x1040000b, 0x0, 0x8f8200e0,
+0x8f430124, 0xaf42011c, 0xaf430114, 0x8f820220,
+0x3c0308ff, 0x3463fffb, 0x431024, 0x100000ce,
+0x441025, 0x8f820220, 0x3c0308ff, 0x3463ffff,
+0x431024, 0x34420004, 0xaf820220, 0x8f8200e0,
+0x8f430124, 0xaf42011c, 0xaf430114, 0x8f8600c8,
+0x8f840120, 0x8f830124, 0x10000005, 0x2821,
+0x14620002, 0x24620020, 0x27624800, 0x401821,
+0x1064000c, 0x30a200ff, 0x8c620018, 0x30420003,
+0x1040fff7, 0x27624fe0, 0x8f4203d0, 0x24050001,
+0x24420001, 0xaf4203d0, 0x8f4203d0, 0x8c660008,
+0x30a200ff, 0x14400058, 0x0, 0x934205c4,
+0x14400055, 0x0, 0x8f8700c4, 0x8f8800e0,
+0x8f8400e4, 0x2402fff8, 0x1024024, 0x1041023,
+0x218c3, 0x4620001, 0x24630200, 0x10600005,
+0x24020001, 0x10620009, 0x0, 0x1000001f,
+0x0, 0x8f4203c0, 0xe03021, 0x24420001,
+0xaf4203c0, 0x10000040, 0x8f4203c0, 0x8f4203c4,
+0x24420001, 0xaf4203c4, 0x8c860000, 0x8f420148,
+0x8f4303c4, 0xe61823, 0x43102b, 0x10400004,
+0x2c62233f, 0x8f420148, 0x621821, 0x2c62233f,
+0x14400031, 0x0, 0x8f42020c, 0x24420001,
+0xaf42020c, 0x8f42020c, 0xe03021, 0x24820008,
+0xaf8200e4, 0x10000028, 0xaf8200e8, 0x8f4203c8,
+0x24420001, 0xaf4203c8, 0x8f4203c8, 0x8c850000,
+0x8f420148, 0xa71823, 0x43102b, 0x10400003,
+0x0, 0x8f420148, 0x621821, 0x8f42014c,
+0x43102b, 0x5440000a, 0xa03021, 0x8f42020c,
+0x24420001, 0xaf42020c, 0x8f42020c, 0x24820008,
+0xaf8200e4, 0x8f8400e4, 0x1488ffec, 0xaf8400e8,
+0x1488000d, 0x27623000, 0x14820002, 0x2482fff8,
+0x27623ff8, 0x94430006, 0x3c02001f, 0x3442ffff,
+0xc33021, 0x46102b, 0x10400003, 0x0,
+0x8f420148, 0xc23023, 0xaf8600c8, 0x8f8300c4,
+0x8f420148, 0xc31823, 0x43102b, 0x10400003,
+0x0, 0x8f420148, 0x621821, 0x10600005,
+0x0, 0x8f42014c, 0x43102b, 0x50400008,
+0x3c02fdff, 0x8f820220, 0x3c0308ff, 0x3463fffb,
+0x431024, 0x3c034000, 0x1000003f, 0x431025,
+0x8f4303cc, 0x3442ffff, 0x282a024, 0x24630001,
+0xaf4303cc, 0x10000039, 0x8f4203cc, 0x2041024,
+0x1040000e, 0x3c110200, 0x8f4203a8, 0x24420001,
+0xaf4203a8, 0x8f4203a8, 0x8f820220, 0x3c0308ff,
+0x3463ffff, 0x431024, 0x441025, 0xc003daf,
+0xaf820220, 0x10000029, 0x0, 0x2111024,
+0x50400008, 0x3c110400, 0x8f4203ac, 0x24420001,
+0xaf4203ac, 0xc003daf, 0x8f4203ac, 0x10000019,
+0x0, 0x2111024, 0x1040001c, 0x0,
+0x8f830224, 0x24021402, 0x14620009, 0x3c050008,
+0x3c040001, 0x248469f4, 0xafa00010, 0xafa00014,
+0x8f860224, 0x34a50500, 0xc002b3b, 0x3821,
+0x8f4203b0, 0x24420001, 0xaf4203b0, 0x8f4203b0,
+0x8f820220, 0x2002021, 0x34420002, 0xc004e9c,
+0xaf820220, 0x8f820220, 0x3c0308ff, 0x3463ffff,
+0x431024, 0x511025, 0xaf820220, 0x8fbf0020,
+0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0028,
+0x3e00008, 0x0, 0x3c020001, 0x8c426da8,
+0x27bdffb0, 0xafbf0048, 0xafbe0044, 0xafb50040,
+0xafb3003c, 0xafb20038, 0xafb10034, 0x1040000f,
+0xafb00030, 0x3c040001, 0x24846a00, 0x3c050008,
+0xafa00010, 0xafa00014, 0x8f860220, 0x34a50600,
+0x24020001, 0x3c010001, 0xac206da8, 0x3c010001,
+0xac226d9c, 0xc002b3b, 0x3821, 0x3c037fff,
+0x8c020268, 0x3463ffff, 0x3c04fdff, 0x431024,
+0xac020268, 0x8f420004, 0x3484ffff, 0x30420002,
+0x10400092, 0x284a024, 0x3c040600, 0x34842000,
+0x8f420004, 0x2821, 0x2403fffd, 0x431024,
+0xaf420004, 0xafa40020, 0x8f5e0018, 0x27aa0020,
+0x240200ff, 0x13c20002, 0xafaa002c, 0x27c50001,
+0x8c020228, 0xa09021, 0x1642000e, 0x1e38c0,
+0x8f42033c, 0x24420001, 0xaf42033c, 0x8f42033c,
+0x8c020228, 0x3c040001, 0x24846998, 0x3c050009,
+0xafa00014, 0xafa20010, 0x8fa60020, 0x1000006d,
+0x34a50500, 0xf71021, 0x8fa30020, 0x8fa40024,
+0xac4304c0, 0xac4404c4, 0x8f830054, 0x8f820054,
+0x247003e8, 0x2021023, 0x2c4203e9, 0x1040001b,
+0x9821, 0xe08821, 0x263504c0, 0x8f440178,
+0x8f45017c, 0x2201821, 0x240a0004, 0xafaa0010,
+0xafb20014, 0x8f48000c, 0x1021, 0x2f53021,
+0xafa80018, 0x8f48010c, 0x24070008, 0xa32821,
+0xa3482b, 0x822021, 0x100f809, 0x892021,
+0x54400006, 0x24130001, 0x8f820054, 0x2021023,
+0x2c4203e9, 0x1440ffe9, 0x0, 0x326200ff,
+0x54400017, 0xaf520018, 0x8f420378, 0x24420001,
+0xaf420378, 0x8f420378, 0x8f820120, 0x8faa002c,
+0xafa20010, 0x8f820124, 0x3c040001, 0x248469a4,
+0x3c050009, 0xafa20014, 0x8d460000, 0x10000035,
+0x34a50600, 0x8f420308, 0x24130001, 0x24420001,
+0xaf420308, 0x8f420308, 0x1000001e, 0x326200ff,
+0x8f830054, 0x8f820054, 0x247003e8, 0x2021023,
+0x2c4203e9, 0x10400016, 0x9821, 0x3c150020,
+0x24110010, 0x8f42000c, 0x8f440160, 0x8f450164,
+0x8f860120, 0xafb10010, 0xafb20014, 0x551025,
+0xafa20018, 0x8f42010c, 0x24070008, 0x40f809,
+0x24c6001c, 0x1440ffe3, 0x0, 0x8f820054,
+0x2021023, 0x2c4203e9, 0x1440ffee, 0x0,
+0x326200ff, 0x14400011, 0x0, 0x8f420378,
+0x24420001, 0xaf420378, 0x8f420378, 0x8f820120,
+0x8faa002c, 0xafa20010, 0x8f820124, 0x3c040001,
+0x248469ac, 0x3c050009, 0xafa20014, 0x8d460000,
+0x34a50700, 0xc002b3b, 0x3c03821, 0x8f4202ec,
+0x24420001, 0xaf4202ec, 0x8f4202ec, 0x8fbf0048,
+0x8fbe0044, 0x8fb50040, 0x8fb3003c, 0x8fb20038,
+0x8fb10034, 0x8fb00030, 0x3e00008, 0x27bd0050,
+0x3c020001, 0x8c426da8, 0x27bdffe0, 0x1440000d,
+0xafbf0018, 0x3c040001, 0x24846a0c, 0x3c050008,
+0xafa00010, 0xafa00014, 0x8f860220, 0x34a50700,
+0x24020001, 0x3c010001, 0xac226da8, 0xc002b3b,
+0x3821, 0x3c020004, 0x2c21024, 0x10400007,
+0x0, 0x8f820220, 0x3c0308ff, 0x3463ffff,
+0x431024, 0x34420008, 0xaf820220, 0x3c050001,
+0x8ca56d98, 0x24020001, 0x14a20007, 0x2021,
+0xc00529b, 0x24050001, 0xac02026c, 0x8c03026c,
+0x10000006, 0x3c020007, 0xc00529b, 0x2021,
+0xac020268, 0x8c030268, 0x3c020007, 0x621824,
+0x3c020002, 0x5062000d, 0x3c0205f5, 0x43102b,
+0x14400006, 0x3c020004, 0x3c020001, 0x10620009,
+0x3c020098, 0x1000000b, 0x0, 0x14620009,
+0x3c023b9a, 0x10000004, 0x3442ca00, 0x10000002,
+0x3442e100, 0x34429680, 0xaf4201fc, 0x8f4201fc,
+0xaee20064, 0x8fbf0018, 0x3e00008, 0x27bd0020,
+0x0, 0x0, 0x0, 0x86102b,
+0x50400001, 0x872023, 0xc41023, 0x24843,
+0x125102b, 0x1040001b, 0x91040, 0x824021,
+0x88102b, 0x10400007, 0x1821, 0x94820000,
+0x24840002, 0x621821, 0x88102b, 0x1440fffb,
+0x0, 0x602021, 0xc73023, 0xa91023,
+0x21040, 0xc22821, 0xc5102b, 0x10400007,
+0x1821, 0x94c20000, 0x24c60002, 0x621821,
+0xc5102b, 0x1440fffb, 0x0, 0x1000000d,
+0x832021, 0x51040, 0x822821, 0x85102b,
+0x10400007, 0x1821, 0x94820000, 0x24840002,
+0x621821, 0x85102b, 0x1440fffb, 0x0,
+0x602021, 0x41c02, 0x3082ffff, 0x622021,
+0x41c02, 0x3082ffff, 0x622021, 0x3e00008,
+0x3082ffff, 0x3e00008, 0x0, 0x802821,
+0x30a20001, 0x1040002b, 0x3c03001f, 0x3463ffff,
+0x24a20004, 0x62102b, 0x54400007, 0x65102b,
+0x90a20001, 0x90a40003, 0x90a30000, 0x90a50002,
+0x1000002a, 0x441021, 0x10400003, 0x0,
+0x8f420148, 0xa22823, 0x90a40000, 0x24a50001,
+0x65102b, 0x10400003, 0x0, 0x8f420148,
+0xa22823, 0x90a20000, 0x24a50001, 0x21200,
+0x822021, 0x65102b, 0x10400003, 0x0,
+0x8f420148, 0xa22823, 0x90a20000, 0x24a50001,
+0x822021, 0x65102b, 0x10400003, 0x0,
+0x8f420148, 0xa22823, 0x90a20000, 0x1000002d,
+0x21200, 0x3463ffff, 0x24a20004, 0x62102b,
+0x5440000a, 0x65102b, 0x90a20000, 0x90a40002,
+0x90a30001, 0x90a50003, 0x441021, 0x21200,
+0x651821, 0x10000020, 0x432021, 0x10400003,
+0x0, 0x8f420148, 0xa22823, 0x90a20000,
+0x24a50001, 0x22200, 0x65102b, 0x10400003,
+0x0, 0x8f420148, 0xa22823, 0x90a20000,
+0x24a50001, 0x822021, 0x65102b, 0x10400003,
+0x0, 0x8f420148, 0xa22823, 0x90a20000,
+0x24a50001, 0x21200, 0x822021, 0x65102b,
+0x10400003, 0x0, 0x8f420148, 0xa22823,
+0x90a20000, 0x822021, 0x41c02, 0x3082ffff,
+0x622021, 0x41c02, 0x3082ffff, 0x622021,
+0x3e00008, 0x3082ffff, 0x0, 0x8f820220,
+0x34420002, 0xaf820220, 0x3c020002, 0x8c428ff8,
+0x30424000, 0x10400054, 0x24040001, 0x8f820200,
+0x24067fff, 0x8f830200, 0x30450002, 0x2402fffd,
+0x621824, 0xaf830200, 0xaf840204, 0x8f830054,
+0x8f820054, 0x10000002, 0x24630001, 0x8f820054,
+0x621023, 0x2c420002, 0x1440fffc, 0x0,
+0x8f820224, 0x1444004d, 0x42040, 0xc4102b,
+0x1040fff1, 0x0, 0x8f820200, 0x451025,
+0xaf820200, 0x8f820220, 0x34428000, 0xaf820220,
+0x8f830054, 0x8f820054, 0x10000002, 0x24630001,
+0x8f820054, 0x621023, 0x2c420002, 0x1440fffc,
+0x0, 0x8f820220, 0x3c030004, 0x431024,
+0x1440000f, 0x0, 0x8f820220, 0x3c03ffff,
+0x34637fff, 0x431024, 0xaf820220, 0x8f830054,
+0x8f820054, 0x10000002, 0x24630001, 0x8f820054,
+0x621023, 0x2c420002, 0x1440fffc, 0x0,
+0x8f820220, 0x3c030004, 0x431024, 0x1440000d,
+0x0, 0x8f820220, 0x34428000, 0xaf820220,
+0x8f830054, 0x8f820054, 0x10000002, 0x24630001,
+0x8f820054, 0x621023, 0x2c420002, 0x1440fffc,
+0x0, 0x8f820220, 0x3c030004, 0x431024,
+0x1040001b, 0x1021, 0x8f830220, 0x24020001,
+0x10000015, 0x3c04f700, 0x8f820220, 0x3c04f700,
+0x441025, 0xaf820220, 0x8f820220, 0x2403fffd,
+0x431024, 0xaf820220, 0x8f820220, 0x3c030300,
+0x431024, 0x14400003, 0x0, 0x10000008,
+0x1021, 0x8f820220, 0x34420002, 0xaf820220,
+0x8f830220, 0x24020001, 0x641825, 0xaf830220,
+0x3e00008, 0x0, 0x2021, 0x3c050100,
+0x24020001, 0xaf80021c, 0xaf820200, 0xaf820220,
+0x27625000, 0xaf8200c0, 0x27625000, 0xaf8200c4,
+0x27625000, 0xaf8200c8, 0x27625000, 0xaf8200d0,
+0x27625000, 0xaf8200d4, 0x27625000, 0xaf8200d8,
+0x27623000, 0xaf8200e0, 0x27623000, 0xaf8200e4,
+0x27623000, 0xaf8200e8, 0x27622800, 0xaf8200f0,
+0x27622800, 0xaf8200f4, 0x27622800, 0xaf8200f8,
+0x418c0, 0x24840001, 0x3631021, 0xac453004,
+0x3631021, 0xac403000, 0x28820200, 0x1440fff9,
+0x418c0, 0x2021, 0x418c0, 0x24840001,
+0x3631021, 0xac402804, 0x3631021, 0xac402800,
+0x28820100, 0x1440fff9, 0x418c0, 0xaf80023c,
+0x24030080, 0x24040100, 0xac600000, 0x24630004,
+0x64102b, 0x5440fffd, 0xac600000, 0x8f830040,
+0x3c02f000, 0x621824, 0x3c025000, 0x1062000c,
+0x43102b, 0x14400006, 0x3c026000, 0x3c024000,
+0x10620008, 0x24020800, 0x10000008, 0x0,
+0x10620004, 0x24020800, 0x10000004, 0x0,
+0x24020700, 0x3c010001, 0xac226dac, 0x3e00008,
+0x0, 0x3c020001, 0x8c426dbc, 0x27bdffd0,
+0xafbf002c, 0xafb20028, 0xafb10024, 0xafb00020,
+0x3c010001, 0x10400005, 0xac206d94, 0xc004d9e,
+0x0, 0x3c010001, 0xac206dbc, 0x8f830054,
+0x8f820054, 0x10000002, 0x24630064, 0x8f820054,
+0x621023, 0x2c420065, 0x1440fffc, 0x0,
+0xc004db9, 0x0, 0x24040001, 0x2821,
+0x27a60018, 0x34028000, 0xc0045be, 0xa7a20018,
+0x8f830054, 0x8f820054, 0x10000002, 0x24630064,
+0x8f820054, 0x621023, 0x2c420065, 0x1440fffc,
+0x24040001, 0x24050001, 0xc00457c, 0x27a60018,
+0x8f830054, 0x8f820054, 0x10000002, 0x24630064,
+0x8f820054, 0x621023, 0x2c420065, 0x1440fffc,
+0x24040001, 0x24050001, 0xc00457c, 0x27a60018,
+0x8f830054, 0x8f820054, 0x10000002, 0x24630064,
+0x8f820054, 0x621023, 0x2c420065, 0x1440fffc,
+0x24040001, 0x3c060001, 0x24c66f24, 0xc00457c,
+0x24050002, 0x8f830054, 0x8f820054, 0x10000002,
+0x24630064, 0x8f820054, 0x621023, 0x2c420065,
+0x1440fffc, 0x24040001, 0x24050003, 0x3c100001,
+0x26106f26, 0xc00457c, 0x2003021, 0x97a60018,
+0x3c070001, 0x94e76f24, 0x3c040001, 0x24846ae0,
+0xafa00014, 0x96020000, 0x3c05000d, 0x34a50100,
+0xc002b3b, 0xafa20010, 0x97a20018, 0x1040004d,
+0x24036040, 0x96020000, 0x3042fff0, 0x1443000c,
+0x24020020, 0x3c030001, 0x94636f24, 0x1462000b,
+0x24027830, 0x24020003, 0x3c010001, 0xac226d94,
+0x24020005, 0x3c010001, 0x1000003f, 0xac226f34,
+0x3c030001, 0x94636f24, 0x24027830, 0x1462000c,
+0x24030010, 0x3c020001, 0x94426f26, 0x3042fff0,
+0x14430007, 0x24020003, 0x3c010001, 0xac226d94,
+0x24020006, 0x3c010001, 0x1000002f, 0xac226f34,
+0x3c020001, 0x8c426d94, 0x3c030001, 0x94636f24,
+0x34420001, 0x3c010001, 0xac226d94, 0x24020015,
+0x1462000b, 0x0, 0x3c020001, 0x94426f26,
+0x3042fff0, 0x3843f420, 0x2c630001, 0x3842f430,
+0x2c420001, 0x621825, 0x1460001b, 0x24020003,
+0x3c030001, 0x94636f24, 0x24027810, 0x14620016,
+0x24020002, 0x3c020001, 0x94426f26, 0x3042fff0,
+0x14400011, 0x24020002, 0x1000000f, 0x24020004,
+0x3c020001, 0x8c426d94, 0x34420008, 0x3c010001,
+0xac226d94, 0x1000005e, 0x24020004, 0x3c020001,
+0x8c426d94, 0x34420004, 0x3c010001, 0x100000af,
+0xac226d94, 0x24020001, 0x3c010001, 0xac226f40,
+0x3c020001, 0x8c426d94, 0x30420002, 0x144000b2,
+0x3c09fff0, 0x24020e00, 0xaf820238, 0x8f840054,
+0x8f820054, 0x24030008, 0x3c010001, 0xac236d98,
+0x10000002, 0x248401f4, 0x8f820054, 0x821023,
+0x2c4201f5, 0x1440fffc, 0x3c0200c8, 0x344201fb,
+0xaf820238, 0x8f830054, 0x8f820054, 0x10000002,
+0x246301f4, 0x8f820054, 0x621023, 0x2c4201f5,
+0x1440fffc, 0x8021, 0x24120001, 0x24110009,
+0xc004482, 0x0, 0x3c010001, 0xac326db4,
+0xc004547, 0x0, 0x3c020001, 0x8c426db4,
+0x1451fffb, 0x3c0200c8, 0x344201f6, 0xaf820238,
+0x8f830054, 0x8f820054, 0x10000002, 0x2463000a,
+0x8f820054, 0x621023, 0x2c42000b, 0x1440fffc,
+0x0, 0x8f820220, 0x24040001, 0x34420002,
+0xaf820220, 0x8f830200, 0x24057fff, 0x2402fffd,
+0x621824, 0xaf830200, 0xaf840204, 0x8f830054,
+0x8f820054, 0x10000002, 0x24630001, 0x8f820054,
+0x621023, 0x2c420002, 0x1440fffc, 0x0,
+0x8f820224, 0x14440005, 0x34028000, 0x42040,
+0xa4102b, 0x1040fff0, 0x34028000, 0x1082ffa0,
+0x26100001, 0x2e020014, 0x1440ffcd, 0x24020004,
+0x3c010001, 0xac226d98, 0x8021, 0x24120009,
+0x3c11ffff, 0x36313f7f, 0xc004482, 0x0,
+0x24020001, 0x3c010001, 0xac226db4, 0xc004547,
+0x0, 0x3c020001, 0x8c426db4, 0x1452fffb,
+0x0, 0x8f820044, 0x511024, 0x34425080,
+0xaf820044, 0x8f830054, 0x8f820054, 0x10000002,
+0x2463000a, 0x8f820054, 0x621023, 0x2c42000b,
+0x1440fffc, 0x0, 0x8f820044, 0x511024,
+0x3442f080, 0xaf820044, 0x8f830054, 0x8f820054,
+0x10000002, 0x2463000a, 0x8f820054, 0x621023,
+0x2c42000b, 0x1440fffc, 0x0, 0x8f820220,
+0x3c03f700, 0x431025, 0xaf820220, 0x8f830054,
+0x8f820054, 0x10000002, 0x24630064, 0x8f820054,
+0x621023, 0x2c420065, 0x1440fffc, 0x0,
+0x8f820220, 0x24040001, 0x34420002, 0xaf820220,
+0x8f830200, 0x24057fff, 0x2402fffd, 0x621824,
+0xaf830200, 0xaf840204, 0x8f830054, 0x8f820054,
+0x10000002, 0x24630001, 0x8f820054, 0x621023,
+0x2c420002, 0x1440fffc, 0x0, 0x8f820224,
+0x14440005, 0x34028000, 0x42040, 0xa4102b,
+0x1040fff0, 0x34028000, 0x1082ff50, 0x26100001,
+0x2e020064, 0x1440ffb0, 0x0, 0x3c020001,
+0x8c426d94, 0x30420004, 0x14400007, 0x3c09fff0,
+0x8f820044, 0x3c03ffff, 0x34633f7f, 0x431024,
+0xaf820044, 0x3c09fff0, 0x3529bdc0, 0x3c060001,
+0x8cc66d94, 0x3c040001, 0x24846ae0, 0x24020001,
+0x3c010001, 0xac226d9c, 0x8f820054, 0x3c070001,
+0x8ce76f40, 0x3c030001, 0x94636f24, 0x3c080001,
+0x95086f26, 0x3c05000d, 0x34a50100, 0x3c010001,
+0xac206d98, 0x491021, 0x3c010001, 0xac226f30,
+0xafa30010, 0xc002b3b, 0xafa80014, 0x8fbf002c,
+0x8fb20028, 0x8fb10024, 0x8fb00020, 0x3e00008,
+0x27bd0030, 0x27bdffe8, 0x3c050001, 0x8ca56d98,
+0x24060004, 0x24020001, 0x14a20014, 0xafbf0010,
+0x3c020002, 0x8c428ffc, 0x30428000, 0x10400005,
+0x3c04000f, 0x3c030001, 0x8c636f40, 0x10000005,
+0x34844240, 0x3c040004, 0x3c030001, 0x8c636f40,
+0x348493e0, 0x24020005, 0x14620016, 0x0,
+0x3c04003d, 0x10000013, 0x34840900, 0x3c020002,
+0x8c428ff8, 0x30428000, 0x10400005, 0x3c04001e,
+0x3c030001, 0x8c636f40, 0x10000005, 0x34848480,
+0x3c04000f, 0x3c030001, 0x8c636f40, 0x34844240,
+0x24020005, 0x14620003, 0x0, 0x3c04007a,
+0x34841200, 0x3c020001, 0x8c426f30, 0x8f830054,
+0x441021, 0x431023, 0x44102b, 0x1440004c,
+0x0, 0x3c020001, 0x8c426da0, 0x14400048,
+0x0, 0x3c010001, 0x10c00025, 0xac206db0,
+0x3c090001, 0x8d296d94, 0x24070001, 0x3c044000,
+0x3c080002, 0x25088ffc, 0x250afffc, 0x52842,
+0x14a00002, 0x24c6ffff, 0x24050008, 0xa91024,
+0x10400010, 0x0, 0x14a70008, 0x0,
+0x8d020000, 0x441024, 0x1040000a, 0x0,
+0x3c010001, 0x10000007, 0xac256db0, 0x8d420000,
+0x441024, 0x10400003, 0x0, 0x3c010001,
+0xac276db0, 0x3c020001, 0x8c426db0, 0x6182b,
+0x2c420001, 0x431024, 0x5440ffe5, 0x52842,
+0x8f820054, 0x3c030001, 0x8c636db0, 0x3c010001,
+0xac226f30, 0x1060003b, 0x24020005, 0x3c030001,
+0x8c636f40, 0x3c010001, 0xac256d98, 0x14620012,
+0x24020001, 0x3c020002, 0x8c428ff8, 0x3c032000,
+0x34635000, 0x431024, 0x14400006, 0x24020001,
+0x3c010001, 0xac206f1c, 0x3c010001, 0xac226d98,
+0x24020001, 0x3c010001, 0xac226e24, 0x3c010001,
+0xac226da4, 0x24020001, 0x3c010001, 0xac226d9c,
+0x3c020001, 0x8c426db0, 0x1040001e, 0x0,
+0x3c020001, 0x8c426d9c, 0x10400008, 0x24020001,
+0x3c010001, 0xac206d9c, 0xaee204b8, 0x3c010001,
+0xac206e1c, 0x3c010001, 0xac226dd4, 0x8ee304b8,
+0x24020008, 0x10620005, 0x24020001, 0xc004239,
+0x0, 0x1000000b, 0x0, 0x3c030001,
+0x8c636d98, 0x10620007, 0x2402000e, 0x3c030002,
+0x8c638f90, 0x10620003, 0x0, 0xc004e9c,
+0x8f840220, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffe0, 0x3c03fdff, 0x3c040001, 0x8c846d98,
+0x3c020001, 0x8c426dc0, 0x3463ffff, 0x283a024,
+0x14820006, 0xafbf0018, 0x8ee304b8, 0x3c020001,
+0x8c426dc4, 0x10620006, 0x0, 0x8ee204b8,
+0x3c010001, 0xac246dc0, 0x3c010001, 0xac226dc4,
+0x3c030001, 0x8c636d98, 0x24020002, 0x1062019c,
+0x2c620003, 0x10400005, 0x24020001, 0x1062000a,
+0x0, 0x10000226, 0x0, 0x24020004,
+0x106200b6, 0x24020008, 0x1062010a, 0x24020001,
+0x1000021f, 0x0, 0x8ee204b8, 0x2443ffff,
+0x2c620008, 0x1040021c, 0x31080, 0x3c010001,
+0x220821, 0x8c226af8, 0x400008, 0x0,
+0x3c030001, 0x8c636f40, 0x24020005, 0x14620010,
+0x0, 0x3c020001, 0x8c426da4, 0x10400008,
+0x24020003, 0xc004482, 0x0, 0x24020002,
+0xaee204b8, 0x3c010001, 0x10000002, 0xac206da4,
+0xaee204b8, 0x3c010001, 0x10000203, 0xac206d30,
+0xc004482, 0x0, 0x3c020001, 0x8c426da4,
+0x3c010001, 0xac206d30, 0x1440017a, 0x24020002,
+0x1000019d, 0x24020007, 0x3c030001, 0x8c636f40,
+0x24020005, 0x14620003, 0x24020001, 0x3c010001,
+0xac226dd0, 0xc0045ff, 0x0, 0x3c030001,
+0x8c636dd0, 0x10000174, 0x24020011, 0x3c050001,
+0x8ca56d98, 0x3c060002, 0x8cc68ffc, 0xc005104,
+0x2021, 0x24020005, 0x3c010001, 0xac206da4,
+0x100001e1, 0xaee204b8, 0x3c040001, 0x24846aec,
+0x3c05000f, 0x34a50100, 0x3021, 0x3821,
+0xafa00010, 0xc002b3b, 0xafa00014, 0x100001d6,
+0x0, 0x8f820220, 0x3c030004, 0x431024,
+0x14400175, 0x24020007, 0x8f830054, 0x3c020001,
+0x8c426f28, 0x2463d8f0, 0x431023, 0x2c422710,
+0x14400003, 0x24020001, 0x3c010001, 0xac226d9c,
+0x3c020002, 0x8c428ffc, 0x30425000, 0x104001c2,
+0x0, 0x8f820220, 0x30428000, 0x1040017d,
+0x0, 0x10000175, 0x0, 0x3c050001,
+0x8ca56d98, 0xc00529b, 0x2021, 0xc00551b,
+0x2021, 0x3c030002, 0x8c638ff4, 0x46101b0,
+0x24020001, 0x3c020008, 0x621024, 0x10400006,
+0x0, 0x8f820214, 0x3c03ffff, 0x431024,
+0x10000005, 0x3442251f, 0x8f820214, 0x3c03ffff,
+0x431024, 0x3442241f, 0xaf820214, 0x8f820220,
+0x3c030200, 0x34420002, 0xaf820220, 0x24020008,
+0xaee204b8, 0x8f820220, 0x283a025, 0x3c030004,
+0x431024, 0x14400016, 0x0, 0x3c020002,
+0x8c428ffc, 0x30425000, 0x1040000d, 0x0,
+0x8f820220, 0x30428000, 0x10400006, 0x0,
+0x8f820220, 0x3c03ffff, 0x34637fff, 0x10000003,
+0x431024, 0x8f820220, 0x34428000, 0xaf820220,
+0x8f820220, 0x3c03f700, 0x431025, 0xaf820220,
+0x3c030001, 0x8c636f40, 0x24020005, 0x1462000a,
+0x0, 0x3c020001, 0x94426f26, 0x24429fbc,
+0x2c420004, 0x10400004, 0x24040018, 0x24050002,
+0xc004ddb, 0x24060020, 0xc003e6d, 0x0,
+0x3c010001, 0x10000170, 0xac206e20, 0x8ee204b8,
+0x2443ffff, 0x2c620008, 0x1040016b, 0x31080,
+0x3c010001, 0x220821, 0x8c226b18, 0x400008,
+0x0, 0xc004547, 0x0, 0x3c030001,
+0x8c636db4, 0x100000e8, 0x24020009, 0x3c020002,
+0x8c428ff8, 0x30424000, 0x10400004, 0x0,
+0x8f820044, 0x10000006, 0x3442f080, 0x8f820044,
+0x3c03ffff, 0x34633f7f, 0x431024, 0x3442a080,
+0xaf820044, 0x8f830054, 0x100000ea, 0x24020004,
+0x8f830054, 0x3c020001, 0x8c426f28, 0x2463d8f0,
+0x431023, 0x2c422710, 0x14400147, 0x24020005,
+0x100000d8, 0x0, 0x8f820220, 0x3c03f700,
+0x431025, 0xaf820220, 0xaf800204, 0x3c010002,
+0x100000d6, 0xac208fe0, 0x8f830054, 0x3c020001,
+0x8c426f28, 0x2463fff6, 0x431023, 0x2c42000a,
+0x14400135, 0x24020007, 0x100000d7, 0x0,
+0xc003f50, 0x0, 0x1040012d, 0x24020001,
+0x8f820214, 0x3c03ffff, 0x3c040001, 0x8c846f1c,
+0x431024, 0x3442251f, 0xaf820214, 0x24020008,
+0x10800005, 0xaee204b8, 0x3c020001, 0x8c426e44,
+0x10400064, 0x24020001, 0x8f820220, 0x3c030008,
+0x431024, 0x1040006a, 0x3c020200, 0x10000078,
+0x0, 0x8ee204b8, 0x2443ffff, 0x2c620007,
+0x10400115, 0x31080, 0x3c010001, 0x220821,
+0x8c226b38, 0x400008, 0x0, 0xc003daf,
+0x0, 0x3c010001, 0xac206d9c, 0xaf800204,
+0x3c010002, 0xc004482, 0xac208fe0, 0x24020001,
+0x3c010001, 0xac226db4, 0x24020002, 0x10000102,
+0xaee204b8, 0xc004547, 0x0, 0x3c030001,
+0x8c636db4, 0x10000084, 0x24020009, 0x3c020002,
+0x8c428ff8, 0x30424000, 0x10400003, 0x3c0200c8,
+0x10000002, 0x344201f6, 0x344201fe, 0xaf820238,
+0x8f830054, 0x1000008b, 0x24020004, 0x8f830054,
+0x3c020001, 0x8c426f28, 0x2463d8f0, 0x431023,
+0x2c422710, 0x144000e8, 0x24020005, 0x10000079,
+0x0, 0x8f820220, 0x3c03f700, 0x431025,
+0xaf820220, 0xaf800204, 0x3c010002, 0x10000077,
+0xac208fe0, 0x8f830054, 0x3c020001, 0x8c426f28,
+0x2463fff6, 0x431023, 0x2c42000a, 0x144000d6,
+0x24020007, 0x10000078, 0x0, 0xc003f50,
+0x0, 0x104000ce, 0x24020001, 0x8f820214,
+0x3c03ffff, 0x3c040001, 0x8c846f1c, 0x431024,
+0x3442251f, 0xaf820214, 0x24020008, 0x1080000f,
+0xaee204b8, 0x3c020001, 0x8c426e44, 0x1440000b,
+0x0, 0x8f820220, 0x34420002, 0xaf820220,
+0x24020001, 0x3c010002, 0xac228f90, 0xc004e9c,
+0x8f840220, 0x10000016, 0x0, 0x8f820220,
+0x3c030008, 0x431024, 0x14400011, 0x3c020200,
+0x282a025, 0x2402000e, 0x3c010002, 0xac228f90,
+0xc00551b, 0x2021, 0x8f820220, 0x34420002,
+0xc003e6d, 0xaf820220, 0x3c050001, 0x8ca56d98,
+0xc00529b, 0x2021, 0x100000a3, 0x0,
+0x3c020001, 0x8c426e44, 0x1040009f, 0x0,
+0x3c020001, 0x8c426e40, 0x2442ffff, 0x3c010001,
+0xac226e40, 0x14400098, 0x24020002, 0x3c010001,
+0xac206e44, 0x3c010001, 0x10000093, 0xac226e40,
+0x8ee204b8, 0x2443ffff, 0x2c620007, 0x1040008e,
+0x31080, 0x3c010001, 0x220821, 0x8c226b58,
+0x400008, 0x0, 0x3c020001, 0x8c426da4,
+0x10400018, 0x24020005, 0xc004482, 0x0,
+0x24020002, 0xaee204b8, 0x3c010001, 0x1000007e,
+0xac206da4, 0xc004963, 0x0, 0x3c030001,
+0x8c636dd4, 0x24020006, 0x14620077, 0x24020003,
+0x10000075, 0xaee204b8, 0x3c050001, 0x8ca56d98,
+0x3c060002, 0x8cc68ff8, 0xc005104, 0x2021,
+0x24020005, 0x1000006c, 0xaee204b8, 0x8f820220,
+0x3c03f700, 0x431025, 0xaf820220, 0x8f830054,
+0x24020006, 0xaee204b8, 0x3c010001, 0x10000062,
+0xac236f28, 0x8f820220, 0x3c030004, 0x431024,
+0x10400003, 0x24020007, 0x1000005b, 0xaee204b8,
+0x8f830054, 0x3c020001, 0x8c426f28, 0x2463d8f0,
+0x431023, 0x2c422710, 0x14400003, 0x24020001,
+0x3c010001, 0xac226d9c, 0x3c020002, 0x8c428ff8,
+0x30425000, 0x1040004c, 0x0, 0x8f820220,
+0x30428000, 0x10400007, 0x0, 0x8f820220,
+0x3c03ffff, 0x34637fff, 0x431024, 0x10000042,
+0xaf820220, 0x8f820220, 0x34428000, 0x1000003e,
+0xaf820220, 0x3c050001, 0x8ca56d98, 0xc00529b,
+0x2021, 0xc00551b, 0x2021, 0x3c020002,
+0x8c428ff0, 0x4410032, 0x24020001, 0x8f820214,
+0x3c03ffff, 0x431024, 0x3442251f, 0xaf820214,
+0x24020008, 0xaee204b8, 0x8f820220, 0x34420002,
+0xaf820220, 0x8f820220, 0x3c030004, 0x431024,
+0x14400016, 0x0, 0x3c020002, 0x8c428ff8,
+0x30425000, 0x1040000d, 0x0, 0x8f820220,
+0x30428000, 0x10400006, 0x0, 0x8f820220,
+0x3c03ffff, 0x34637fff, 0x10000003, 0x431024,
+0x8f820220, 0x34428000, 0xaf820220, 0x8f820220,
+0x3c03f700, 0x431025, 0xaf820220, 0x3c020001,
+0x94426f26, 0x24429fbc, 0x2c420004, 0x10400004,
+0x24040018, 0x24050002, 0xc004ddb, 0x24060020,
+0xc003e6d, 0x0, 0x10000003, 0x0,
+0x3c010001, 0xac226d9c, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x8f820200, 0x8f820220, 0x8f820220,
+0x34420004, 0xaf820220, 0x8f820200, 0x3c050001,
+0x8ca56d98, 0x34420004, 0xaf820200, 0x24020002,
+0x10a2004b, 0x2ca20003, 0x10400005, 0x24020001,
+0x10a2000a, 0x0, 0x100000b1, 0x0,
+0x24020004, 0x10a20072, 0x24020008, 0x10a20085,
+0x3c02f0ff, 0x100000aa, 0x0, 0x8f830050,
+0x3c02f0ff, 0x3442ffff, 0x3c040001, 0x8c846f40,
+0x621824, 0x3c020700, 0x621825, 0x24020e00,
+0x2484fffb, 0x2c840002, 0xaf830050, 0xaf850200,
+0xaf850220, 0x14800006, 0xaf820238, 0x8f820044,
+0x3c03ffff, 0x34633f7f, 0x431024, 0xaf820044,
+0x3c030001, 0x8c636f40, 0x24020005, 0x14620004,
+0x0, 0x8f820044, 0x34425000, 0xaf820044,
+0x3c020001, 0x8c426d88, 0x3c030001, 0x8c636f40,
+0x34420022, 0x2463fffc, 0x2c630002, 0x1460000c,
+0xaf820200, 0x3c020001, 0x8c426dac, 0x3c030001,
+0x8c636d90, 0x3c040001, 0x8c846d8c, 0x34428000,
+0x621825, 0x641825, 0x1000000a, 0x34620002,
+0x3c020001, 0x8c426d90, 0x3c030001, 0x8c636dac,
+0x3c040001, 0x8c846d8c, 0x431025, 0x441025,
+0x34420002, 0xaf820220, 0x1000002f, 0x24020001,
+0x24020e01, 0xaf820238, 0x8f830050, 0x3c02f0ff,
+0x3442ffff, 0x3c040001, 0x8c846f1c, 0x621824,
+0x3c020d00, 0x621825, 0x24020001, 0xaf830050,
+0xaf820200, 0xaf820220, 0x10800005, 0x3c033f00,
+0x3c020001, 0x8c426d80, 0x10000004, 0x34630070,
+0x3c020001, 0x8c426d80, 0x34630072, 0x431025,
+0xaf820200, 0x3c030001, 0x8c636d84, 0x3c02f700,
+0x621825, 0x3c020001, 0x8c426d90, 0x3c040001,
+0x8c846dac, 0x3c050001, 0x8ca56f40, 0x431025,
+0x441025, 0xaf820220, 0x24020005, 0x14a20006,
+0x24020001, 0x8f820044, 0x2403afff, 0x431024,
+0xaf820044, 0x24020001, 0x1000003d, 0xaf820238,
+0x8f830050, 0x3c02f0ff, 0x3442ffff, 0x3c040001,
+0x8c846f1c, 0x621824, 0x3c020a00, 0x621825,
+0x24020001, 0xaf830050, 0xaf820200, 0x1080001e,
+0xaf820220, 0x3c020001, 0x8c426e44, 0x1440001a,
+0x3c033f00, 0x3c020001, 0x8c426d80, 0x1000001a,
+0x346300e0, 0x8f830050, 0x3c040001, 0x8c846f1c,
+0x3442ffff, 0x621824, 0x1080000f, 0xaf830050,
+0x3c020001, 0x8c426e44, 0x1440000b, 0x3c043f00,
+0x3c030001, 0x8c636d80, 0x348400e0, 0x24020001,
+0xaf820200, 0xaf820220, 0x641825, 0xaf830200,
+0x10000008, 0x3c05f700, 0x3c020001, 0x8c426d80,
+0x3c033f00, 0x346300e2, 0x431025, 0xaf820200,
+0x3c05f700, 0x34a58000, 0x3c030001, 0x8c636d84,
+0x3c020001, 0x8c426d90, 0x3c040001, 0x8c846dac,
+0x651825, 0x431025, 0x441025, 0xaf820220,
+0x3e00008, 0x0, 0x3c030001, 0x8c636db4,
+0x3c020001, 0x8c426db8, 0x10620003, 0x24020002,
+0x3c010001, 0xac236db8, 0x1062001d, 0x2c620003,
+0x10400025, 0x24020001, 0x14620023, 0x24020004,
+0x3c030001, 0x8c636d98, 0x10620006, 0x24020008,
+0x1462000c, 0x3c0200c8, 0x344201fb, 0x10000009,
+0xaf820238, 0x24020e01, 0xaf820238, 0x8f820044,
+0x3c03ffff, 0x34633f7f, 0x431024, 0x34420080,
+0xaf820044, 0x8f830054, 0x24020002, 0x3c010001,
+0xac226db4, 0x3c010001, 0x1000000b, 0xac236f2c,
+0x8f830054, 0x3c020001, 0x8c426f2c, 0x2463d8f0,
+0x431023, 0x2c422710, 0x14400003, 0x24020009,
+0x3c010001, 0xac226db4, 0x3e00008, 0x0,
+0x0, 0x0, 0x0, 0x27bdffd8,
+0xafb20018, 0x809021, 0xafb3001c, 0xa09821,
+0xafb10014, 0xc08821, 0xafb00010, 0x8021,
+0xafbf0020, 0xa6200000, 0xc004d78, 0x24040001,
+0x26100001, 0x2e020020, 0x1440fffb, 0x0,
+0xc004d78, 0x2021, 0xc004d78, 0x24040001,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x24100010, 0x2501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fffa,
+0x2501024, 0x24100010, 0x2701024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x2701024, 0xc004db9, 0x34108000,
+0xc004db9, 0x0, 0xc004d58, 0x0,
+0x50400005, 0x108042, 0x96220000, 0x501025,
+0xa6220000, 0x108042, 0x1600fff7, 0x0,
+0xc004db9, 0x0, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0028, 0x27bdffd8, 0xafb10014, 0x808821,
+0xafb20018, 0xa09021, 0xafb3001c, 0xc09821,
+0xafb00010, 0x8021, 0xafbf0020, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0x24100010, 0x2301024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x2301024, 0x24100010, 0x2501024,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x2501024, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x34108000,
+0x96620000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fff8,
+0x0, 0xc004db9, 0x0, 0x8fbf0020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0028, 0x3c040001, 0x8c846dd0,
+0x3c020001, 0x8c426e18, 0x27bdffd8, 0xafbf0020,
+0xafb1001c, 0x10820003, 0xafb00018, 0x3c010001,
+0xac246e18, 0x3c030001, 0x8c636f40, 0x24020005,
+0x14620005, 0x2483ffff, 0xc004963, 0x0,
+0x1000034c, 0x0, 0x2c620013, 0x10400349,
+0x31080, 0x3c010001, 0x220821, 0x8c226b80,
+0x400008, 0x0, 0xc004db9, 0x8021,
+0x34028000, 0xa7a20010, 0x27b10010, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0xc004d78,
+0x2021, 0x108042, 0x1600fffc, 0x0,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fff8, 0x0, 0xc004db9, 0x0,
+0x1000030e, 0x24020002, 0x27b10010, 0xa7a00010,
+0x8021, 0xc004d78, 0x24040001, 0x26100001,
+0x2e020020, 0x1440fffb, 0x0, 0xc004d78,
+0x2021, 0xc004d78, 0x24040001, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x24100010,
+0x32020001, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020001,
+0x24100010, 0xc004d78, 0x2021, 0x108042,
+0x1600fffc, 0x0, 0xc004db9, 0x34108000,
+0xc004db9, 0x0, 0xc004d58, 0x0,
+0x50400005, 0x108042, 0x96220000, 0x501025,
+0xa6220000, 0x108042, 0x1600fff7, 0x0,
+0xc004db9, 0x0, 0x97a20010, 0x30428000,
+0x144002dc, 0x24020003, 0x100002d8, 0x0,
+0x24021200, 0xa7a20010, 0x27b10010, 0x8021,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0xc004d78, 0x2021, 0x108042, 0x1600fffc,
+0x0, 0xc004d78, 0x24040001, 0xc004d78,
+0x2021, 0x34108000, 0x96220000, 0x501024,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fff8, 0x0, 0xc004db9,
+0x0, 0x8f830054, 0x10000296, 0x24020004,
+0x8f830054, 0x3c020001, 0x8c426f3c, 0x2463ff9c,
+0x431023, 0x2c420064, 0x1440029e, 0x24020002,
+0x3c030001, 0x8c636f40, 0x10620297, 0x2c620003,
+0x14400296, 0x24020011, 0x24020003, 0x10620005,
+0x24020004, 0x10620291, 0x2402000f, 0x1000028f,
+0x24020011, 0x1000028d, 0x24020005, 0x24020014,
+0xa7a20010, 0x27b10010, 0x8021, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x32020012,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020012, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x34108000,
+0x96220000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fff8,
+0x0, 0xc004db9, 0x0, 0x8f830054,
+0x10000248, 0x24020006, 0x8f830054, 0x3c020001,
+0x8c426f3c, 0x2463ff9c, 0x431023, 0x2c420064,
+0x14400250, 0x24020007, 0x1000024c, 0x0,
+0x24020006, 0xa7a20010, 0x27b10010, 0x8021,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020013, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020013,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fff8, 0x0, 0xc004db9, 0x0,
+0x8f830054, 0x10000207, 0x24020008, 0x8f830054,
+0x3c020001, 0x8c426f3c, 0x2463ff9c, 0x431023,
+0x2c420064, 0x1440020f, 0x24020009, 0x1000020b,
+0x0, 0x27b10010, 0xa7a00010, 0x8021,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x24040001,
+0xc004d78, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020018,
+0xc004db9, 0x34108000, 0xc004db9, 0x0,
+0xc004d58, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004db9, 0x8021,
+0x97a20010, 0x27b10010, 0x34420001, 0xa7a20010,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020018,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fff8, 0x0, 0xc004db9, 0x0,
+0x8f830054, 0x10000193, 0x2402000a, 0x8f830054,
+0x3c020001, 0x8c426f3c, 0x2463ff9c, 0x431023,
+0x2c420064, 0x1440019b, 0x2402000b, 0x10000197,
+0x0, 0x27b10010, 0xa7a00010, 0x8021,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x24040001,
+0xc004d78, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020017, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020017,
+0xc004db9, 0x34108000, 0xc004db9, 0x0,
+0xc004d58, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004db9, 0x8021,
+0x97a20010, 0x27b10010, 0x34420700, 0xa7a20010,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020017, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020017,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fff8, 0x0, 0xc004db9, 0x0,
+0x8f830054, 0x1000011f, 0x2402000c, 0x8f830054,
+0x3c020001, 0x8c426f3c, 0x2463ff9c, 0x431023,
+0x2c420064, 0x14400127, 0x24020012, 0x10000123,
+0x0, 0x27b10010, 0xa7a00010, 0x8021,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x24040001,
+0xc004d78, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020014, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020014,
+0xc004db9, 0x34108000, 0xc004db9, 0x0,
+0xc004d58, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004db9, 0x8021,
+0x97a20010, 0x27b10010, 0x34420010, 0xa7a20010,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020014, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020014,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fff8, 0x0, 0xc004db9, 0x0,
+0x8f830054, 0x100000ab, 0x24020013, 0x8f830054,
+0x3c020001, 0x8c426f3c, 0x2463ff9c, 0x431023,
+0x2c420064, 0x144000b3, 0x2402000d, 0x100000af,
+0x0, 0x27b10010, 0xa7a00010, 0x8021,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x24040001,
+0xc004d78, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020018,
+0xc004db9, 0x34108000, 0xc004db9, 0x0,
+0xc004d58, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004db9, 0x8021,
+0x97a20010, 0x27b10010, 0x3042fffe, 0xa7a20010,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020018,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x34108000, 0x96220000, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fff8, 0x0, 0xc004db9, 0x0,
+0x8f830054, 0x10000037, 0x2402000e, 0x24020840,
+0xa7a20010, 0x27b10010, 0x8021, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x32020013,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020013, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x34108000,
+0x96220000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fff8,
+0x0, 0xc004db9, 0x0, 0x8f830054,
+0x24020010, 0x3c010001, 0xac226dd0, 0x3c010001,
+0x1000000c, 0xac236f3c, 0x8f830054, 0x3c020001,
+0x8c426f3c, 0x2463ff9c, 0x431023, 0x2c420064,
+0x14400004, 0x0, 0x24020011, 0x3c010001,
+0xac226dd0, 0x8fbf0020, 0x8fb1001c, 0x8fb00018,
+0x3e00008, 0x27bd0028, 0x3c030001, 0x8c636d98,
+0x27bdffc8, 0x24020002, 0xafbf0034, 0xafb20030,
+0xafb1002c, 0x14620004, 0xafb00028, 0x3c120002,
+0x10000003, 0x8e528ff8, 0x3c120002, 0x8e528ffc,
+0x3c030001, 0x8c636dd4, 0x3c020001, 0x8c426e1c,
+0x50620004, 0x2463ffff, 0x3c010001, 0xac236e1c,
+0x2463ffff, 0x2c620006, 0x10400377, 0x31080,
+0x3c010001, 0x220821, 0x8c226bd8, 0x400008,
+0x0, 0x2021, 0x2821, 0xc004ddb,
+0x34068000, 0x24040010, 0x24050002, 0x24060002,
+0x24020002, 0xc004ddb, 0xa7a20018, 0x24020002,
+0x3c010001, 0x10000364, 0xac226dd4, 0x27b10018,
+0xa7a00018, 0x8021, 0xc004d78, 0x24040001,
+0x26100001, 0x2e020020, 0x1440fffb, 0x0,
+0xc004d78, 0x2021, 0xc004d78, 0x24040001,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x24100010, 0x32020001, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fffa,
+0x32020001, 0x24100010, 0xc004d78, 0x2021,
+0x108042, 0x1600fffc, 0x0, 0xc004db9,
+0x34108000, 0xc004db9, 0x0, 0xc004d58,
+0x0, 0x50400005, 0x108042, 0x96220000,
+0x501025, 0xa6220000, 0x108042, 0x1600fff7,
+0x0, 0xc004db9, 0x0, 0x97a20018,
+0x30428000, 0x14400004, 0x24020003, 0x3c010001,
+0xac226dd4, 0x24020003, 0x3c010001, 0x1000032a,
+0xac226dd4, 0x24040010, 0x24050002, 0x24060002,
+0x24020002, 0xc004ddb, 0xa7a20018, 0x3c030001,
+0x8c636e20, 0x24020001, 0x146201e1, 0x8021,
+0x27b10018, 0xa7a00018, 0xc004d78, 0x24040001,
+0x26100001, 0x2e020020, 0x1440fffb, 0x0,
+0xc004d78, 0x2021, 0xc004d78, 0x24040001,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x24100010, 0x32020001, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fffa,
+0x32020001, 0x24100010, 0x32020018, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020018, 0xc004db9, 0x34108000,
+0xc004db9, 0x0, 0xc004d58, 0x0,
+0x50400005, 0x108042, 0x96220000, 0x501025,
+0xa6220000, 0x108042, 0x1600fff7, 0x0,
+0xc004db9, 0x8021, 0x27b10018, 0xa7a00018,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x24040001,
+0xc004d78, 0x2021, 0x24100010, 0x32020001,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x32020001, 0x24100010,
+0x32020018, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020018,
+0xc004db9, 0x34108000, 0xc004db9, 0x0,
+0xc004d58, 0x0, 0x50400005, 0x108042,
+0x96220000, 0x501025, 0xa6220000, 0x108042,
+0x1600fff7, 0x0, 0xc004db9, 0x8021,
+0x24040018, 0x2821, 0xc004ddb, 0x24060404,
+0xa7a0001a, 0xc004d78, 0x24040001, 0x26100001,
+0x2e020020, 0x1440fffb, 0x0, 0xc004d78,
+0x2021, 0xc004d78, 0x24040001, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x24100010,
+0x32020001, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020001,
+0x24100010, 0x32020018, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fffa,
+0x32020018, 0xc004db9, 0x34108000, 0xc004db9,
+0x0, 0xc004d58, 0x0, 0x50400005,
+0x108042, 0x97a2001a, 0x501025, 0xa7a2001a,
+0x108042, 0x1600fff7, 0x0, 0xc004db9,
+0x8021, 0xa7a0001a, 0xc004d78, 0x24040001,
+0x26100001, 0x2e020020, 0x1440fffb, 0x0,
+0xc004d78, 0x2021, 0xc004d78, 0x24040001,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x24100010, 0x32020001, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fffa,
+0x32020001, 0x24100010, 0x32020018, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020018, 0xc004db9, 0x34108000,
+0xc004db9, 0x0, 0xc004d58, 0x0,
+0x50400005, 0x108042, 0x97a2001a, 0x501025,
+0xa7a2001a, 0x108042, 0x1600fff7, 0x0,
+0xc004db9, 0x8021, 0xa7a0001c, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x24040001, 0xc004d78,
+0x2021, 0x24100010, 0xc004d78, 0x2021,
+0x108042, 0x1600fffc, 0x0, 0x24100010,
+0x3202001e, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x3202001e,
+0xc004db9, 0x34108000, 0xc004db9, 0x0,
+0xc004d58, 0x0, 0x50400005, 0x108042,
+0x97a2001c, 0x501025, 0xa7a2001c, 0x108042,
+0x1600fff7, 0x0, 0xc004db9, 0x8021,
+0xa7a0001c, 0xc004d78, 0x24040001, 0x26100001,
+0x2e020020, 0x1440fffb, 0x0, 0xc004d78,
+0x2021, 0xc004d78, 0x24040001, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x24100010,
+0xc004d78, 0x2021, 0x108042, 0x1600fffc,
+0x0, 0x24100010, 0x3202001e, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x3202001e, 0xc004db9, 0x34108000,
+0xc004db9, 0x0, 0xc004d58, 0x0,
+0x50400005, 0x108042, 0x97a2001c, 0x501025,
+0xa7a2001c, 0x108042, 0x1600fff7, 0x0,
+0xc004db9, 0x8021, 0x24020002, 0xa7a2001e,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0x24100010, 0xc004d78,
+0x2021, 0x108042, 0x1600fffc, 0x0,
+0x24100010, 0x3202001e, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fffa,
+0x3202001e, 0xc004d78, 0x24040001, 0xc004d78,
+0x2021, 0x34108000, 0x97a2001e, 0x501024,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fff8, 0x0, 0xc004db9,
+0x8021, 0xa7a00020, 0xc004d78, 0x24040001,
+0x26100001, 0x2e020020, 0x1440fffb, 0x0,
+0xc004d78, 0x2021, 0xc004d78, 0x24040001,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x24100010, 0xc004d78, 0x2021, 0x108042,
+0x1600fffc, 0x0, 0x24100010, 0x3202001e,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x3202001e, 0xc004db9,
+0x34108000, 0xc004db9, 0x0, 0xc004d58,
+0x0, 0x50400005, 0x108042, 0x97a20020,
+0x501025, 0xa7a20020, 0x108042, 0x1600fff7,
+0x0, 0xc004db9, 0x8021, 0xa7a00020,
+0xc004d78, 0x24040001, 0x26100001, 0x2e020020,
+0x1440fffb, 0x0, 0xc004d78, 0x2021,
+0xc004d78, 0x24040001, 0xc004d78, 0x24040001,
+0xc004d78, 0x2021, 0x24100010, 0xc004d78,
+0x2021, 0x108042, 0x1600fffc, 0x0,
+0x24100010, 0x3202001e, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fffa,
+0x3202001e, 0xc004db9, 0x34108000, 0xc004db9,
+0x0, 0xc004d58, 0x0, 0x50400005,
+0x108042, 0x97a20020, 0x501025, 0xa7a20020,
+0x108042, 0x1600fff7, 0x0, 0xc004db9,
+0x8021, 0xa7a00022, 0xc004d78, 0x24040001,
+0x26100001, 0x2e020020, 0x1440fffb, 0x0,
+0xc004d78, 0x2021, 0xc004d78, 0x24040001,
+0xc004d78, 0x2021, 0xc004d78, 0x24040001,
+0x24100010, 0xc004d78, 0x2021, 0x108042,
+0x1600fffc, 0x0, 0x24100010, 0xc004d78,
+0x2021, 0x108042, 0x1600fffc, 0x0,
+0xc004d78, 0x24040001, 0xc004d78, 0x2021,
+0x34108000, 0x97a20022, 0x501024, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fff8, 0x0, 0xc004db9, 0x0,
+0x24040018, 0x24050002, 0xc004ddb, 0x24060004,
+0x3c100001, 0x8e106e24, 0x24020001, 0x1602011d,
+0x0, 0x3c020001, 0x94426f26, 0x3c010001,
+0xac206e24, 0x24429fbc, 0x2c420004, 0x1040000c,
+0x24040009, 0x24050001, 0xc004ddb, 0x24060400,
+0x24040018, 0x24050001, 0xc004ddb, 0x24060020,
+0x24040018, 0x24050001, 0xc004ddb, 0x24062000,
+0x3c024000, 0x2421024, 0x10400123, 0x3c022000,
+0x2421024, 0x10400004, 0x0, 0x3c010001,
+0x10000003, 0xac306f1c, 0x3c010001, 0xac206f1c,
+0x3c030001, 0x8c636f34, 0x24020005, 0x146200f9,
+0x0, 0x3c020001, 0x8c426f1c, 0x10400067,
+0x3c020004, 0x2421024, 0x10400011, 0xa7a00018,
+0x3c020008, 0x2421024, 0x10400002, 0x24020200,
+0xa7a20018, 0x3c020010, 0x2421024, 0x10400004,
+0x0, 0x97a20018, 0x34420100, 0xa7a20018,
+0x97a60018, 0x24040009, 0x10000004, 0x2821,
+0x24040009, 0x2821, 0x3021, 0xc004ddb,
+0x0, 0x24020001, 0xa7a2001a, 0x3c020008,
+0x2421024, 0x1040000c, 0x3c020002, 0x2421024,
+0x10400002, 0x24020101, 0xa7a2001a, 0x3c020001,
+0x2421024, 0x10400005, 0x3c020010, 0x97a2001a,
+0x34420040, 0xa7a2001a, 0x3c020010, 0x2421024,
+0x1040000e, 0x3c020002, 0x2421024, 0x10400005,
+0x3c020001, 0x97a2001a, 0x34420080, 0xa7a2001a,
+0x3c020001, 0x2421024, 0x10400005, 0x3c0300a0,
+0x97a2001a, 0x34420020, 0xa7a2001a, 0x3c0300a0,
+0x2431024, 0x54430004, 0x3c020020, 0x97a2001a,
+0x1000000c, 0x34420400, 0x2421024, 0x50400004,
+0x3c020080, 0x97a2001a, 0x10000006, 0x34420800,
+0x2421024, 0x10400004, 0x0, 0x97a2001a,
+0x34420c00, 0xa7a2001a, 0x97a6001a, 0x24040004,
+0xc004ddb, 0x2821, 0x3c020004, 0x2421024,
+0x10400004, 0xa7a0001c, 0x32425000, 0x14400004,
+0x0, 0x32424000, 0x10400005, 0x2021,
+0xc004cf9, 0x2402021, 0x10000096, 0x0,
+0x97a6001c, 0x2821, 0x34c61200, 0xc004ddb,
+0xa7a6001c, 0x1000008f, 0x0, 0x2421024,
+0x10400004, 0xa7a00018, 0x32425000, 0x14400004,
+0x0, 0x32424000, 0x10400005, 0x3c020010,
+0xc004cf9, 0x2402021, 0x10000019, 0xa7a0001a,
+0x2421024, 0x10400004, 0x0, 0x97a20018,
+0x10000004, 0xa7a20018, 0x97a20018, 0x34420100,
+0xa7a20018, 0x3c020001, 0x2421024, 0x10400004,
+0x0, 0x97a20018, 0x10000004, 0xa7a20018,
+0x97a20018, 0x34422000, 0xa7a20018, 0x97a60018,
+0x2021, 0xc004ddb, 0x2821, 0xa7a0001a,
+0x8021, 0xc004d78, 0x24040001, 0x26100001,
+0x2e020020, 0x1440fffb, 0x0, 0xc004d78,
+0x2021, 0xc004d78, 0x24040001, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x24100010,
+0x32020001, 0x10400002, 0x2021, 0x24040001,
+0xc004d78, 0x108042, 0x1600fffa, 0x32020001,
+0x24100010, 0xc004d78, 0x2021, 0x108042,
+0x1600fffc, 0x0, 0xc004db9, 0x34108000,
+0xc004db9, 0x0, 0xc004d58, 0x0,
+0x50400005, 0x108042, 0x97a2001a, 0x501025,
+0xa7a2001a, 0x108042, 0x1600fff7, 0x0,
+0xc004db9, 0x8021, 0xa7a0001a, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x24040001, 0xc004d78,
+0x2021, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0xc004d78,
+0x2021, 0x108042, 0x1600fffc, 0x0,
+0xc004db9, 0x34108000, 0xc004db9, 0x0,
+0xc004d58, 0x0, 0x50400005, 0x108042,
+0x97a2001a, 0x501025, 0xa7a2001a, 0x108042,
+0x1600fff7, 0x0, 0xc004db9, 0x0,
+0x3c040001, 0x24846bcc, 0x97a60018, 0x97a7001a,
+0x3c020001, 0x8c426d98, 0x3c030001, 0x8c636f1c,
+0x3c05000d, 0x34a50205, 0xafa20010, 0xc002b3b,
+0xafa30014, 0x8f830054, 0x24020004, 0x3c010001,
+0xac226dd4, 0x3c010001, 0x10000017, 0xac236f38,
+0x8f830054, 0x3c020001, 0x8c426f38, 0x2463ff9c,
+0x431023, 0x2c420064, 0x1440000f, 0x0,
+0x8f820220, 0x24030005, 0x3c010001, 0xac236dd4,
+0x3c03f700, 0x431025, 0x10000007, 0xaf820220,
+0x24020006, 0x3c010001, 0xac226dd4, 0x24020011,
+0x3c010001, 0xac226dd0, 0x8fbf0034, 0x8fb20030,
+0x8fb1002c, 0x8fb00028, 0x3e00008, 0x27bd0038,
+0x27bdffd8, 0xafb00018, 0x808021, 0xafb1001c,
+0x8821, 0x32024000, 0x10400013, 0xafbf0020,
+0x3c020010, 0x2021024, 0x2c420001, 0x21023,
+0x30434100, 0x3c020001, 0x2021024, 0x14400006,
+0x34714000, 0x3c020002, 0x2021024, 0x14400002,
+0x34716000, 0x34714040, 0x2021, 0x2821,
+0x10000036, 0x2203021, 0x32021000, 0x10400035,
+0x2021, 0x2821, 0xc004ddb, 0x24060040,
+0x24040018, 0x2821, 0xc004ddb, 0x24060c00,
+0x24040017, 0x2821, 0xc004ddb, 0x24060400,
+0x24040016, 0x2821, 0xc004ddb, 0x24060006,
+0x24040017, 0x2821, 0xc004ddb, 0x24062500,
+0x24040016, 0x2821, 0xc004ddb, 0x24060006,
+0x24040017, 0x2821, 0xc004ddb, 0x24064600,
+0x24040016, 0x2821, 0xc004ddb, 0x24060006,
+0x24040017, 0x2821, 0xc004ddb, 0x24066700,
+0x24040016, 0x2821, 0xc004ddb, 0x24060006,
+0x2404001f, 0x2821, 0xc004ddb, 0x24060010,
+0x24040009, 0x2821, 0xc004ddb, 0x24061500,
+0x24040009, 0x2821, 0x24061d00, 0xc004ddb,
+0x0, 0x3c040001, 0x24846bf0, 0x3c05000e,
+0x34a50100, 0x2003021, 0x2203821, 0xafa00010,
+0xc002b3b, 0xafa00014, 0x8fbf0020, 0x8fb1001c,
+0x8fb00018, 0x3e00008, 0x27bd0028, 0x8f850044,
+0x8f820044, 0x3c030001, 0x431025, 0x3c030008,
+0xaf820044, 0x8f840054, 0x8f820054, 0xa32824,
+0x10000002, 0x24840001, 0x8f820054, 0x821023,
+0x2c420002, 0x1440fffc, 0x0, 0x8f820044,
+0x3c03fffe, 0x3463ffff, 0x431024, 0xaf820044,
+0x8f830054, 0x8f820054, 0x10000002, 0x24630001,
+0x8f820054, 0x621023, 0x2c420002, 0x1440fffc,
+0x0, 0x3e00008, 0xa01021, 0x8f830044,
+0x3c02fff0, 0x3442ffff, 0x42480, 0x621824,
+0x3c020002, 0x822025, 0x641825, 0xaf830044,
+0x8f820044, 0x3c03fffe, 0x3463ffff, 0x431024,
+0xaf820044, 0x8f830054, 0x8f820054, 0x10000002,
+0x24630001, 0x8f820054, 0x621023, 0x2c420002,
+0x1440fffc, 0x0, 0x8f820044, 0x3c030001,
+0x431025, 0xaf820044, 0x8f830054, 0x8f820054,
+0x10000002, 0x24630001, 0x8f820054, 0x621023,
+0x2c420002, 0x1440fffc, 0x0, 0x3e00008,
+0x0, 0x8f820044, 0x2403ff7f, 0x431024,
+0xaf820044, 0x8f830054, 0x8f820054, 0x10000002,
+0x24630001, 0x8f820054, 0x621023, 0x2c420002,
+0x1440fffc, 0x0, 0x8f820044, 0x34420080,
+0xaf820044, 0x8f830054, 0x8f820054, 0x10000002,
+0x24630001, 0x8f820054, 0x621023, 0x2c420002,
+0x1440fffc, 0x0, 0x3e00008, 0x0,
+0x8f820044, 0x3c03fff0, 0x3463ffff, 0x431024,
+0xaf820044, 0x8f820044, 0x3c030001, 0x431025,
+0xaf820044, 0x8f830054, 0x8f820054, 0x10000002,
+0x24630001, 0x8f820054, 0x621023, 0x2c420002,
+0x1440fffc, 0x0, 0x8f820044, 0x3c03fffe,
+0x3463ffff, 0x431024, 0xaf820044, 0x8f830054,
+0x8f820054, 0x10000002, 0x24630001, 0x8f820054,
+0x621023, 0x2c420002, 0x1440fffc, 0x0,
+0x3e00008, 0x0, 0x27bdffc8, 0xafb30024,
+0x809821, 0xafbe002c, 0xa0f021, 0xafb20020,
+0xc09021, 0x33c2ffff, 0xafbf0030, 0xafb50028,
+0xafb1001c, 0xafb00018, 0x14400034, 0xa7b20010,
+0x3271ffff, 0x27b20010, 0x8021, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x2301024,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x2301024, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x34108000,
+0x96420000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x12000075,
+0x0, 0x1000fff6, 0x0, 0x3275ffff,
+0x27b10010, 0xa7a00010, 0x8021, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x24040001, 0xc004d78,
+0x2021, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x2b01024,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x2b01024, 0xc004db9,
+0x34108000, 0xc004db9, 0x0, 0xc004d58,
+0x0, 0x50400005, 0x108042, 0x96220000,
+0x501025, 0xa6220000, 0x108042, 0x1600fff7,
+0x0, 0xc004db9, 0x0, 0x33c5ffff,
+0x24020001, 0x54a20004, 0x24020002, 0x97a20010,
+0x10000006, 0x521025, 0x14a20006, 0x3271ffff,
+0x97a20010, 0x121827, 0x431024, 0xa7a20010,
+0x3271ffff, 0x27b20010, 0x8021, 0xc004d78,
+0x24040001, 0x26100001, 0x2e020020, 0x1440fffb,
+0x0, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0xc004d78,
+0x24040001, 0x24100010, 0x32020001, 0x10400002,
+0x2021, 0x24040001, 0xc004d78, 0x108042,
+0x1600fffa, 0x32020001, 0x24100010, 0x2301024,
+0x10400002, 0x2021, 0x24040001, 0xc004d78,
+0x108042, 0x1600fffa, 0x2301024, 0xc004d78,
+0x24040001, 0xc004d78, 0x2021, 0x34108000,
+0x96420000, 0x501024, 0x10400002, 0x2021,
+0x24040001, 0xc004d78, 0x108042, 0x1600fff8,
+0x0, 0xc004db9, 0x0, 0x8fbf0030,
+0x8fbe002c, 0x8fb50028, 0x8fb30024, 0x8fb20020,
+0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0038,
+0x0, 0x0, 0x0, 0x27bdffe8,
+0xafbf0010, 0x8ee304b8, 0x24020008, 0x146201e0,
+0x0, 0x3c020001, 0x8c426f1c, 0x14400005,
+0x0, 0xc003daf, 0x8f840224, 0x100001d8,
+0x0, 0x8f820220, 0x3c030008, 0x431024,
+0x10400026, 0x24020001, 0x8f840224, 0x8f820220,
+0x3c030400, 0x431024, 0x10400006, 0x0,
+0x3c010002, 0xac208fa0, 0x3c010002, 0x1000000b,
+0xac208fc0, 0x3c030002, 0x24638fa0, 0x8c620000,
+0x24420001, 0xac620000, 0x2c420002, 0x14400003,
+0x24020001, 0x3c010002, 0xac228fc0, 0x3c020002,
+0x8c428fc0, 0x10400006, 0x30820040, 0x10400004,
+0x24020001, 0x3c010002, 0x10000003, 0xac228fc4,
+0x3c010002, 0xac208fc4, 0x3c010002, 0xac248f9c,
+0x3c010002, 0x1000000b, 0xac208fd0, 0x3c010002,
+0xac228fd0, 0x3c010002, 0xac208fc0, 0x3c010002,
+0xac208fa0, 0x3c010002, 0xac208fc4, 0x3c010002,
+0xac208f9c, 0x3c030002, 0x8c638f90, 0x3c020002,
+0x8c428f94, 0x50620004, 0x2463ffff, 0x3c010002,
+0xac238f94, 0x2463ffff, 0x2c62000e, 0x10400194,
+0x31080, 0x3c010001, 0x220821, 0x8c226c00,
+0x400008, 0x0, 0x24020002, 0x3c010002,
+0xac208fc0, 0x3c010002, 0xac208fa0, 0x3c010002,
+0xac208f9c, 0x3c010002, 0xac208fc4, 0x3c010002,
+0xac208fb8, 0x3c010002, 0xac208fb0, 0xaf800224,
+0x3c010002, 0xac228f90, 0x3c020002, 0x8c428fd0,
+0x1440004f, 0x3c02fdff, 0x3442ffff, 0xc003daf,
+0x282a024, 0xaf800204, 0x8f820200, 0x2403fffd,
+0x431024, 0xaf820200, 0x3c010002, 0xac208fe0,
+0x8f830054, 0x3c020002, 0x8c428fb8, 0x24040001,
+0x3c010002, 0xac248fcc, 0x24420001, 0x3c010002,
+0xac228fb8, 0x2c420004, 0x3c010002, 0xac238fb4,
+0x14400006, 0x24020003, 0x3c010001, 0xac246d9c,
+0x3c010002, 0x1000015e, 0xac208fb8, 0x3c010002,
+0x1000015b, 0xac228f90, 0x8f830054, 0x3c020002,
+0x8c428fb4, 0x2463d8f0, 0x431023, 0x2c422710,
+0x14400003, 0x24020004, 0x3c010002, 0xac228f90,
+0x3c020002, 0x8c428fd0, 0x14400021, 0x3c02fdff,
+0x3442ffff, 0x1000014a, 0x282a024, 0x3c040001,
+0x8c846f20, 0x3c010002, 0xc005084, 0xac208fa8,
+0x3c020002, 0x8c428fdc, 0xaf820204, 0x3c020002,
+0x8c428fd0, 0x14400012, 0x3c03fdff, 0x8f820204,
+0x3463ffff, 0x30420030, 0x1440012f, 0x283a024,
+0x3c030002, 0x8c638fdc, 0x24020005, 0x3c010002,
+0xac228f90, 0x3c010002, 0x10000131, 0xac238fe0,
+0x3c020002, 0x8c428fd0, 0x10400010, 0x3c02fdff,
+0x3c020001, 0x8c426e3c, 0x24420001, 0x3c010001,
+0xac226e3c, 0x2c420002, 0x14400125, 0x24020001,
+0x3c010001, 0xac226e44, 0x3c010001, 0xac206e3c,
+0x3c010001, 0x1000011e, 0xac226d9c, 0x3c030002,
+0x8c638fc0, 0x3442ffff, 0x10600119, 0x282a024,
+0x3c020002, 0x8c428f9c, 0x10400115, 0x0,
+0x3c010002, 0xac228fc8, 0x24020003, 0x3c010002,
+0xac228fa0, 0x100000b8, 0x24020006, 0x3c010002,
+0xac208fa8, 0x8f820204, 0x34420040, 0xaf820204,
+0x3c020002, 0x8c428fe0, 0x24030007, 0x3c010002,
+0xac238f90, 0x34420040, 0x3c010002, 0xac228fe0,
+0x3c020002, 0x8c428fc0, 0x10400005, 0x0,
+0x3c020002, 0x8c428f9c, 0x104000f0, 0x24020002,
+0x3c050002, 0x24a58fa0, 0x8ca20000, 0x2c424e21,
+0x104000ea, 0x24020002, 0x3c020002, 0x8c428fc4,
+0x104000ef, 0x2404ffbf, 0x3c020002, 0x8c428f9c,
+0x3c030002, 0x8c638fc8, 0x441024, 0x641824,
+0x10430004, 0x24020001, 0x3c010002, 0x100000e4,
+0xac228f90, 0x24020003, 0xaca20000, 0x24020008,
+0x3c010002, 0xac228f90, 0x3c020002, 0x8c428fcc,
+0x1040000c, 0x24020001, 0x3c040002, 0xc005091,
+0x8c848f9c, 0x3c020002, 0x8c428fe8, 0x14400005,
+0x24020001, 0x3c020002, 0x8c428fe4, 0x10400006,
+0x24020001, 0x3c010001, 0xac226d9c, 0x3c010002,
+0x100000cb, 0xac208fb8, 0x3c020002, 0x8c428fb0,
+0x3c030002, 0x8c638f9c, 0x2c420001, 0x210c0,
+0x30630008, 0x3c010002, 0xac228fb0, 0x3c010002,
+0xac238fac, 0x8f830054, 0x24020009, 0x3c010002,
+0xac228f90, 0x3c010002, 0x100000b9, 0xac238fb4,
+0x8f830054, 0x3c020002, 0x8c428fb4, 0x2463d8f0,
+0x431023, 0x2c422710, 0x1440009f, 0x0,
+0x3c020002, 0x8c428fc0, 0x10400005, 0x0,
+0x3c020002, 0x8c428f9c, 0x104000a0, 0x24020002,
+0x3c030002, 0x24638fa0, 0x8c620000, 0x2c424e21,
+0x1040009a, 0x24020002, 0x3c020002, 0x8c428fcc,
+0x1040000e, 0x0, 0x3c020002, 0x8c428f9c,
+0x3c010002, 0xac208fcc, 0x30420080, 0x1040002f,
+0x2402000c, 0x8f820204, 0x30420080, 0x1440000c,
+0x24020003, 0x10000029, 0x2402000c, 0x3c020002,
+0x8c428f9c, 0x30420080, 0x14400005, 0x24020003,
+0x8f820204, 0x30420080, 0x1040001f, 0x24020003,
+0xac620000, 0x2402000a, 0x3c010002, 0xac228f90,
+0x3c040002, 0x24848fd8, 0x8c820000, 0x3c030002,
+0x8c638fb0, 0x431025, 0xaf820204, 0x8c830000,
+0x3c040002, 0x8c848fb0, 0x2402000b, 0x3c010002,
+0xac228f90, 0x641825, 0x3c010002, 0xac238fe0,
+0x3c050002, 0x24a58fa0, 0x8ca20000, 0x2c424e21,
+0x10400066, 0x24020002, 0x3c020002, 0x8c428fd0,
+0x10400005, 0x0, 0x2402000c, 0x3c010002,
+0x10000067, 0xac228f90, 0x3c020002, 0x8c428fc0,
+0x10400063, 0x0, 0x3c040002, 0x8c848f9c,
+0x10800055, 0x30820008, 0x3c030002, 0x8c638fac,
+0x1062005b, 0x24020003, 0x3c010002, 0xac248fc8,
+0xaca20000, 0x24020006, 0x3c010002, 0x10000054,
+0xac228f90, 0x8f820200, 0x34420002, 0xaf820200,
+0x8f830054, 0x2402000d, 0x3c010002, 0xac228f90,
+0x3c010002, 0xac238fb4, 0x8f830054, 0x3c020002,
+0x8c428fb4, 0x2463d8f0, 0x431023, 0x2c422710,
+0x14400031, 0x0, 0x3c020002, 0x8c428fd0,
+0x10400020, 0x2402000e, 0x3c030002, 0x8c638fe4,
+0x3c010002, 0x14600015, 0xac228f90, 0xc003e6d,
+0x0, 0x3c050001, 0x8ca56d98, 0xc00529b,
+0x2021, 0x3c030001, 0x8c636d98, 0x24020004,
+0x14620005, 0x2403fffb, 0x3c020001, 0x8c426d94,
+0x10000003, 0x2403fff7, 0x3c020001, 0x8c426d94,
+0x431024, 0x3c010001, 0xac226d94, 0x8f830224,
+0x3c020200, 0x3c010002, 0xac238fec, 0x10000020,
+0x282a025, 0x3c020002, 0x8c428fc0, 0x10400005,
+0x0, 0x3c020002, 0x8c428f9c, 0x1040000f,
+0x24020002, 0x3c020002, 0x8c428fa0, 0x2c424e21,
+0x1040000a, 0x24020002, 0x3c020002, 0x8c428fc0,
+0x1040000f, 0x0, 0x3c020002, 0x8c428f9c,
+0x1440000b, 0x0, 0x24020002, 0x3c010002,
+0x10000007, 0xac228f90, 0x3c020002, 0x8c428fc0,
+0x10400003, 0x0, 0xc003daf, 0x0,
+0x8f820220, 0x3c03f700, 0x431025, 0xaf820220,
+0x8fbf0010, 0x3e00008, 0x27bd0018, 0x3c030002,
+0x24638fe8, 0x8c620000, 0x10400005, 0x34422000,
+0x3c010002, 0xac228fdc, 0x10000003, 0xac600000,
+0x3c010002, 0xac248fdc, 0x3e00008, 0x0,
+0x27bdffe0, 0x30820030, 0xafbf0018, 0x3c010002,
+0xac228fe4, 0x14400067, 0x3c02ffff, 0x34421f0e,
+0x821024, 0x14400061, 0x24020030, 0x30822000,
+0x1040005d, 0x30838000, 0x31a02, 0x30820001,
+0x21200, 0x3c040001, 0x8c846f20, 0x621825,
+0x331c2, 0x3c030001, 0x24636e48, 0x30828000,
+0x21202, 0x30840001, 0x42200, 0x441025,
+0x239c2, 0x61080, 0x431021, 0x471021,
+0x90430000, 0x24020001, 0x10620025, 0x0,
+0x10600007, 0x24020002, 0x10620013, 0x24020003,
+0x1062002c, 0x3c05000f, 0x10000037, 0x0,
+0x8f820200, 0x2403feff, 0x431024, 0xaf820200,
+0x8f820220, 0x3c03fffe, 0x3463ffff, 0x431024,
+0xaf820220, 0x3c010002, 0xac209004, 0x3c010002,
+0x10000034, 0xac20900c, 0x8f820200, 0x34420100,
+0xaf820200, 0x8f820220, 0x3c03fffe, 0x3463ffff,
+0x431024, 0xaf820220, 0x24020100, 0x3c010002,
+0xac229004, 0x3c010002, 0x10000026, 0xac20900c,
+0x8f820200, 0x2403feff, 0x431024, 0xaf820200,
+0x8f820220, 0x3c030001, 0x431025, 0xaf820220,
+0x3c010002, 0xac209004, 0x3c010002, 0x10000019,
+0xac23900c, 0x8f820200, 0x34420100, 0xaf820200,
+0x8f820220, 0x3c030001, 0x431025, 0xaf820220,
+0x24020100, 0x3c010002, 0xac229004, 0x3c010002,
+0x1000000c, 0xac23900c, 0x34a5ffff, 0x3c040001,
+0x24846c38, 0xafa30010, 0xc002b3b, 0xafa00014,
+0x10000004, 0x0, 0x24020030, 0x3c010002,
+0xac228fe8, 0x8fbf0018, 0x3e00008, 0x27bd0020,
+0x0, 0x0, 0x0, 0x27bdffc8,
+0xafb20028, 0x809021, 0xafb3002c, 0xa09821,
+0xafb00020, 0xc08021, 0x3c040001, 0x24846c50,
+0x3c050009, 0x3c020001, 0x8c426d98, 0x34a59001,
+0x2403021, 0x2603821, 0xafbf0030, 0xafb10024,
+0xa7a0001a, 0xafb00014, 0xc002b3b, 0xafa20010,
+0x24020002, 0x12620083, 0x2e620003, 0x10400005,
+0x24020001, 0x1262000a, 0x0, 0x10000173,
+0x0, 0x24020004, 0x126200f8, 0x24020008,
+0x126200f7, 0x3c02ffec, 0x1000016c, 0x0,
+0x3c020001, 0x8c426d94, 0x30420002, 0x14400004,
+0x128940, 0x3c02fffb, 0x3442ffff, 0x2028024,
+0x3c010002, 0x310821, 0xac308ffc, 0x3c024000,
+0x2021024, 0x1040004e, 0x1023c2, 0x30840030,
+0x101382, 0x3042001c, 0x3c030001, 0x24636dd8,
+0x431021, 0x823821, 0x3c020020, 0x2021024,
+0x10400006, 0x24020100, 0x3c010002, 0x310821,
+0xac229000, 0x10000005, 0x3c020080, 0x3c010002,
+0x310821, 0xac209000, 0x3c020080, 0x2021024,
+0x10400006, 0x121940, 0x3c020001, 0x3c010002,
+0x230821, 0x10000005, 0xac229008, 0x121140,
+0x3c010002, 0x220821, 0xac209008, 0x94e40000,
+0x3c030001, 0x8c636f40, 0x24020005, 0x10620010,
+0xa7a40018, 0x32024000, 0x10400002, 0x34824000,
+0xa7a20018, 0x24040001, 0x94e20002, 0x24050004,
+0x24e60002, 0x34420001, 0xc0045be, 0xa4e20002,
+0x24040001, 0x2821, 0xc0045be, 0x27a60018,
+0x3c020001, 0x8c426d98, 0x24110001, 0x3c010001,
+0xac316da4, 0x14530004, 0x32028000, 0xc003daf,
+0x0, 0x32028000, 0x1040011c, 0x0,
+0xc003daf, 0x0, 0x3c030001, 0x8c636f40,
+0x24020005, 0x10620115, 0x24020002, 0x3c010001,
+0xac316d9c, 0x3c010001, 0x10000110, 0xac226d98,
+0x24040001, 0x24050004, 0x27b0001a, 0xc0045be,
+0x2003021, 0x24040001, 0x2821, 0xc0045be,
+0x2003021, 0x3c020002, 0x511021, 0x8c428ff4,
+0x3c040001, 0x8c846d98, 0x3c03bfff, 0x3463ffff,
+0x3c010001, 0xac336da4, 0x431024, 0x3c010002,
+0x310821, 0x109300f7, 0xac228ff4, 0x100000f7,
+0x0, 0x3c022000, 0x2021024, 0x10400005,
+0x24020001, 0x3c010001, 0xac226f1c, 0x10000004,
+0x128940, 0x3c010001, 0xac206f1c, 0x128940,
+0x3c010002, 0x310821, 0xac308ff8, 0x3c024000,
+0x2021024, 0x14400014, 0x0, 0x3c020001,
+0x8c426f1c, 0x10400006, 0x24040004, 0x24050001,
+0xc004ddb, 0x24062000, 0x24020001, 0xaee204b8,
+0x3c020002, 0x511021, 0x8c428ff0, 0x3c03bfff,
+0x3463ffff, 0x431024, 0x3c010002, 0x310821,
+0x100000d0, 0xac228ff0, 0x3c020001, 0x8c426f1c,
+0x10400028, 0x3c0300a0, 0x2031024, 0x5443000d,
+0x3c020020, 0x3c020001, 0x8c426f20, 0x24030100,
+0x3c010002, 0x310821, 0xac239004, 0x3c030001,
+0x3c010002, 0x310821, 0xac23900c, 0x10000015,
+0x34420400, 0x2021024, 0x10400008, 0x24030100,
+0x3c020001, 0x8c426f20, 0x3c010002, 0x310821,
+0xac239004, 0x1000000b, 0x34420800, 0x3c020080,
+0x2021024, 0x1040002e, 0x3c030001, 0x3c020001,
+0x8c426f20, 0x3c010002, 0x310821, 0xac23900c,
+0x34420c00, 0x3c010001, 0xac226f20, 0x10000025,
+0x24040001, 0x3c020020, 0x2021024, 0x10400006,
+0x24020100, 0x3c010002, 0x310821, 0xac229004,
+0x10000005, 0x3c020080, 0x3c010002, 0x310821,
+0xac209004, 0x3c020080, 0x2021024, 0x10400007,
+0x121940, 0x3c020001, 0x3c010002, 0x230821,
+0xac22900c, 0x10000006, 0x24040001, 0x121140,
+0x3c010002, 0x220821, 0xac20900c, 0x24040001,
+0x2821, 0x27b0001e, 0xc00457c, 0x2003021,
+0x24040001, 0x2821, 0xc00457c, 0x2003021,
+0x24040001, 0x24050001, 0x27b0001c, 0xc00457c,
+0x2003021, 0x24040001, 0x24050001, 0xc00457c,
+0x2003021, 0x10000077, 0x0, 0x3c02ffec,
+0x3442ffff, 0x2028024, 0x3c020008, 0x2028025,
+0x121140, 0x3c010002, 0x220821, 0xac308ff8,
+0x3c022000, 0x2021024, 0x10400009, 0x0,
+0x3c020001, 0x8c426e44, 0x14400005, 0x24020001,
+0x3c010001, 0xac226f1c, 0x10000004, 0x3c024000,
+0x3c010001, 0xac206f1c, 0x3c024000, 0x2021024,
+0x1440001d, 0x24020e01, 0x3c030001, 0x8c636f1c,
+0xaf820238, 0x3c010001, 0xac206db0, 0x10600005,
+0x24022020, 0x3c010001, 0xac226f20, 0x24020001,
+0xaee204b8, 0x3c04bfff, 0x121940, 0x3c020002,
+0x431021, 0x8c428ff0, 0x3c050001, 0x8ca56d98,
+0x3484ffff, 0x441024, 0x3c010002, 0x230821,
+0xac228ff0, 0x24020001, 0x10a20044, 0x0,
+0x10000040, 0x0, 0x3c020001, 0x8c426f1c,
+0x1040001c, 0x24022000, 0x3c010001, 0xac226f20,
+0x3c0300a0, 0x2031024, 0x14430005, 0x121140,
+0x3402a000, 0x3c010001, 0x1000002d, 0xac226f20,
+0x3c030002, 0x621821, 0x8c638ff8, 0x3c020020,
+0x621024, 0x10400004, 0x24022001, 0x3c010001,
+0x10000023, 0xac226f20, 0x3c020080, 0x621024,
+0x1040001f, 0x3402a001, 0x3c010001, 0x1000001c,
+0xac226f20, 0x3c020020, 0x2021024, 0x10400007,
+0x121940, 0x24020100, 0x3c010002, 0x230821,
+0xac229004, 0x10000006, 0x3c020080, 0x121140,
+0x3c010002, 0x220821, 0xac209004, 0x3c020080,
+0x2021024, 0x10400006, 0x121940, 0x3c020001,
+0x3c010002, 0x230821, 0x10000005, 0xac22900c,
+0x121140, 0x3c010002, 0x220821, 0xac20900c,
+0x3c030001, 0x8c636d98, 0x24020001, 0x10620003,
+0x0, 0xc003daf, 0x0, 0x8fbf0030,
+0x8fb3002c, 0x8fb20028, 0x8fb10024, 0x8fb00020,
+0x3e00008, 0x27bd0038, 0x27bdffb0, 0xafb3003c,
+0x9821, 0xafb50040, 0xa821, 0xafb10034,
+0x8821, 0x24020002, 0xafbf0048, 0xafbe0044,
+0xafb20038, 0xafb00030, 0xafa4002c, 0xa7a0001a,
+0xa7a00018, 0xa7a00020, 0xa7a0001e, 0xa7a00022,
+0x10a20130, 0xa7a0001c, 0x2ca20003, 0x10400005,
+0x24020001, 0x10a2000a, 0x3c024000, 0x1000025d,
+0x2201021, 0x24020004, 0x10a2020a, 0x24020008,
+0x10a20208, 0x2201021, 0x10000256, 0x0,
+0x8fa8002c, 0x88140, 0x3c030002, 0x701821,
+0x8c638ffc, 0x621024, 0x14400009, 0x24040001,
+0x3c027fff, 0x3442ffff, 0x628824, 0x3c010002,
+0x300821, 0xac318ff4, 0x10000246, 0x2201021,
+0x24050001, 0xc00457c, 0x27a60018, 0x24040001,
+0x24050001, 0xc00457c, 0x27a60018, 0x97a20018,
+0x30420004, 0x104000d9, 0x3c114000, 0x3c020001,
+0x8c426f40, 0x2443ffff, 0x2c620006, 0x104000d9,
+0x31080, 0x3c010001, 0x220821, 0x8c226c68,
+0x400008, 0x0, 0x24040001, 0x24050011,
+0x27b0001a, 0xc00457c, 0x2003021, 0x24040001,
+0x24050011, 0xc00457c, 0x2003021, 0x97a3001a,
+0x30624000, 0x10400002, 0x3c150010, 0x3c150008,
+0x30628000, 0x104000aa, 0x3c130001, 0x100000a8,
+0x3c130002, 0x24040001, 0x24050014, 0x27b0001a,
+0xc00457c, 0x2003021, 0x24040001, 0x24050014,
+0xc00457c, 0x2003021, 0x97a3001a, 0x30621000,
+0x10400002, 0x3c150010, 0x3c150008, 0x30620800,
+0x10400097, 0x3c130001, 0x10000095, 0x3c130002,
+0x24040001, 0x24050019, 0x27b0001c, 0xc00457c,
+0x2003021, 0x24040001, 0x24050019, 0xc00457c,
+0x2003021, 0x97a2001c, 0x30430700, 0x24020400,
+0x10620027, 0x28620401, 0x1040000e, 0x24020200,
+0x1062001f, 0x28620201, 0x10400005, 0x24020100,
+0x5062001e, 0x3c130001, 0x1000001e, 0x24040001,
+0x24020300, 0x50620019, 0x3c130002, 0x10000019,
+0x24040001, 0x24020600, 0x1062000d, 0x28620601,
+0x10400005, 0x24020500, 0x5062000b, 0x3c130002,
+0x10000010, 0x24040001, 0x24020700, 0x1462000d,
+0x24040001, 0x3c130004, 0x1000000a, 0x3c150008,
+0x10000006, 0x3c130004, 0x10000005, 0x3c150008,
+0x3c130001, 0x10000002, 0x3c150008, 0x3c150010,
+0x24040001, 0x24050018, 0x27b0001e, 0xc00457c,
+0x2003021, 0x24040001, 0x24050018, 0xc00457c,
+0x2003021, 0x8fa8002c, 0x97a7001e, 0x81140,
+0x3c060002, 0xc23021, 0x8cc68ff4, 0x97a20022,
+0x3c100001, 0x26106c5c, 0x2002021, 0xafa20010,
+0x97a2001c, 0x3c05000c, 0x34a50303, 0xc002b3b,
+0xafa20014, 0x3c020004, 0x16620010, 0x3c020001,
+0x8f840054, 0x24030001, 0x24020002, 0x3c010001,
+0xac236d9c, 0x3c010001, 0xac226d98, 0x3c010001,
+0xac236da4, 0x3c010001, 0xac236e24, 0x3c010001,
+0xac246f30, 0x1000004f, 0x2b38825, 0x16620039,
+0x3c028000, 0x3c020001, 0x8c426e20, 0x1440001e,
+0x24040018, 0x2021, 0x2821, 0xc004ddb,
+0x34068000, 0x8f830054, 0x8f820054, 0x2b38825,
+0x10000002, 0x24630032, 0x8f820054, 0x621023,
+0x2c420033, 0x1440fffc, 0x0, 0x8f830054,
+0x24020001, 0x3c010001, 0xac226e20, 0x3c010001,
+0xac226d9c, 0x3c010001, 0xac226d98, 0x3c010001,
+0xac226da4, 0x3c010001, 0xac226e24, 0x3c010001,
+0x1000002c, 0xac236f30, 0x2821, 0xc004ddb,
+0x24060404, 0x2021, 0x2405001e, 0x27a60018,
+0x24020002, 0xc0045be, 0xa7a20018, 0x2021,
+0x2821, 0x27a60018, 0xc0045be, 0xa7a00018,
+0x24040018, 0x24050002, 0xc004ddb, 0x24060004,
+0x3c028000, 0x2221025, 0x2b31825, 0x10000015,
+0x438825, 0x2221025, 0x2751825, 0x438825,
+0x2002021, 0x97a6001c, 0x3c070001, 0x8ce76d98,
+0x3c05000c, 0x34a50326, 0xafb30010, 0xc002b3b,
+0xafb10014, 0x10000007, 0x0, 0x3c110002,
+0x2308821, 0x8e318ffc, 0x3c027fff, 0x3442ffff,
+0x2228824, 0x3c020001, 0x8c426da8, 0x1040001e,
+0x0, 0x3c020001, 0x8c426f1c, 0x10400002,
+0x3c022000, 0x2228825, 0x8fa8002c, 0x81140,
+0x3c010002, 0x220821, 0x8c229000, 0x10400003,
+0x3c020020, 0x10000005, 0x2228825, 0x3c02ffdf,
+0x3442ffff, 0x2228824, 0x8fa8002c, 0x81140,
+0x3c010002, 0x220821, 0x8c229008, 0x10400003,
+0x3c020080, 0x10000004, 0x2228825, 0x3c02ff7f,
+0x3442ffff, 0x2228824, 0x8fa8002c, 0x81140,
+0x3c010002, 0x220821, 0xac318ff4, 0x10000135,
+0x2201021, 0x8fa8002c, 0x8f140, 0x3c030002,
+0x7e1821, 0x8c638ff8, 0x3c024000, 0x621024,
+0x14400009, 0x24040001, 0x3c027fff, 0x3442ffff,
+0x628824, 0x3c010002, 0x3e0821, 0xac318ff0,
+0x10000124, 0x2201021, 0x2821, 0xc00457c,
+0x27a60018, 0x24040001, 0x2821, 0xc00457c,
+0x27a60018, 0x24040001, 0x24050001, 0x27b20020,
+0xc00457c, 0x2403021, 0x24040001, 0x24050001,
+0xc00457c, 0x2403021, 0x24040001, 0x24050004,
+0x27b1001e, 0xc00457c, 0x2203021, 0x24040001,
+0x24050004, 0xc00457c, 0x2203021, 0x24040001,
+0x24050005, 0x27b00022, 0xc00457c, 0x2003021,
+0x24040001, 0x24050005, 0xc00457c, 0x2003021,
+0x24040001, 0x24050010, 0xc00457c, 0x27a60018,
+0x24040001, 0x24050010, 0xc00457c, 0x27a60018,
+0x24040001, 0x2405000a, 0xc00457c, 0x2403021,
+0x24040001, 0x2405000a, 0xc00457c, 0x2403021,
+0x24040001, 0x24050018, 0xc00457c, 0x2203021,
+0x24040001, 0x24050018, 0xc00457c, 0x2203021,
+0x24040001, 0x24050001, 0xc00457c, 0x27a60018,
+0x24040001, 0x24050001, 0xc00457c, 0x27a60018,
+0x97a20018, 0x30420004, 0x10400066, 0x3c114000,
+0x3c030001, 0x8c636f34, 0x24020005, 0x14620067,
+0x24040001, 0x24050019, 0x27b0001c, 0xc00457c,
+0x2003021, 0x24040001, 0x24050019, 0xc00457c,
+0x2003021, 0x97a2001c, 0x30430700, 0x24020400,
+0x10620027, 0x28620401, 0x1040000e, 0x24020200,
+0x1062001f, 0x28620201, 0x10400005, 0x24020100,
+0x5062001e, 0x3c130001, 0x1000001e, 0x3c020004,
+0x24020300, 0x50620019, 0x3c130002, 0x10000019,
+0x3c020004, 0x24020600, 0x1062000d, 0x28620601,
+0x10400005, 0x24020500, 0x5062000b, 0x3c130002,
+0x10000010, 0x3c020004, 0x24020700, 0x1462000d,
+0x3c020004, 0x3c130004, 0x1000000a, 0x3c150008,
+0x10000006, 0x3c130004, 0x10000005, 0x3c150008,
+0x3c130001, 0x10000002, 0x3c150008, 0x3c150010,
+0x3c020004, 0x12620017, 0x3c028000, 0x8f820054,
+0x24100001, 0x3c010001, 0xac306d9c, 0x3c010001,
+0xac306d98, 0x3c010001, 0xac306da4, 0x3c010001,
+0xac306e24, 0x3c010001, 0xac226f30, 0x3c020001,
+0x16620022, 0x2758825, 0x2021, 0x2821,
+0xc004ddb, 0x34068000, 0x3c010001, 0x1000001b,
+0xac306e20, 0x2221025, 0x2b31825, 0x438825,
+0x97a6001c, 0x3c020001, 0x8c426f1c, 0x3c070001,
+0x8ce76d98, 0x3c040001, 0x24846c5c, 0xafa20010,
+0x97a2001e, 0x3c05000c, 0x34a50323, 0x3c010001,
+0xac206e20, 0xc002b3b, 0xafa20014, 0x10000007,
+0x0, 0x3c110002, 0x23e8821, 0x8e318ff0,
+0x3c027fff, 0x3442ffff, 0x2228824, 0x3c020001,
+0x8c426da8, 0x10400069, 0x0, 0x3c020001,
+0x8c426f1c, 0x10400002, 0x3c022000, 0x2228825,
+0x8fa8002c, 0x81140, 0x3c010002, 0x220821,
+0x8c229004, 0x10400003, 0x3c020020, 0x10000005,
+0x2228825, 0x3c02ffdf, 0x3442ffff, 0x2228824,
+0x8fa8002c, 0x81140, 0x3c010002, 0x220821,
+0x8c22900c, 0x10400003, 0x3c020080, 0x1000004f,
+0x2228825, 0x3c02ff7f, 0x3442ffff, 0x1000004b,
+0x2228824, 0x8fa8002c, 0x82940, 0x3c030002,
+0x651821, 0x8c638ff8, 0x3c024000, 0x621024,
+0x14400008, 0x3c027fff, 0x3442ffff, 0x628824,
+0x3c010002, 0x250821, 0xac318ff0, 0x10000041,
+0x2201021, 0x3c020001, 0x8c426da8, 0x10400034,
+0x3c11c00c, 0x3c020001, 0x8c426e44, 0x3c04c00c,
+0x34842000, 0x3c030001, 0x8c636f1c, 0x2102b,
+0x21023, 0x441024, 0x10600003, 0x518825,
+0x3c022000, 0x2228825, 0x3c020002, 0x451021,
+0x8c429004, 0x10400003, 0x3c020020, 0x10000004,
+0x2228825, 0x3c02ffdf, 0x3442ffff, 0x2228824,
+0x8fa8002c, 0x81140, 0x3c010002, 0x220821,
+0x8c22900c, 0x10400003, 0x3c020080, 0x10000004,
+0x2228825, 0x3c02ff7f, 0x3442ffff, 0x2228824,
+0x3c020001, 0x8c426e30, 0x10400002, 0x3c020800,
+0x2228825, 0x3c020001, 0x8c426e34, 0x10400002,
+0x3c020400, 0x2228825, 0x3c020001, 0x8c426e38,
+0x10400006, 0x3c020100, 0x10000004, 0x2228825,
+0x3c027fff, 0x3442ffff, 0x628824, 0x8fa8002c,
+0x81140, 0x3c010002, 0x220821, 0xac318ff0,
+0x2201021, 0x8fbf0048, 0x8fbe0044, 0x8fb50040,
+0x8fb3003c, 0x8fb20038, 0x8fb10034, 0x8fb00030,
+0x3e00008, 0x27bd0050, 0x27bdffd0, 0xafb20028,
+0x809021, 0xafbf002c, 0xafb10024, 0xafb00020,
+0x8f840200, 0x3c100001, 0x8e106d98, 0x8f860220,
+0x24020002, 0x1202005c, 0x2e020003, 0x10400005,
+0x24020001, 0x1202000a, 0x121940, 0x1000010c,
+0x0, 0x24020004, 0x120200bf, 0x24020008,
+0x120200be, 0x128940, 0x10000105, 0x0,
+0x3c050002, 0xa32821, 0x8ca58ffc, 0x3c100002,
+0x2038021, 0x8e108ff4, 0x3c024000, 0xa21024,
+0x10400038, 0x3c020008, 0x2021024, 0x10400020,
+0x34840002, 0x3c020002, 0x431021, 0x8c429000,
+0x10400005, 0x34840020, 0x34840100, 0x3c020020,
+0x10000006, 0x2028025, 0x2402feff, 0x822024,
+0x3c02ffdf, 0x3442ffff, 0x2028024, 0x121140,
+0x3c010002, 0x220821, 0x8c229008, 0x10400005,
+0x3c020001, 0xc23025, 0x3c020080, 0x10000016,
+0x2028025, 0x3c02fffe, 0x3442ffff, 0xc23024,
+0x3c02ff7f, 0x3442ffff, 0x1000000f, 0x2028024,
+0x2402fedf, 0x822024, 0x3c02fffe, 0x3442ffff,
+0xc23024, 0x3c02ff5f, 0x3442ffff, 0x2028024,
+0x3c010002, 0x230821, 0xac209000, 0x3c010002,
+0x230821, 0xac209008, 0xaf840200, 0xaf860220,
+0x8f820220, 0x34420002, 0xaf820220, 0x1000000a,
+0x121140, 0x3c02bfff, 0x3442ffff, 0x8f830200,
+0x2028024, 0x2402fffd, 0x621824, 0xc003daf,
+0xaf830200, 0x121140, 0x3c010002, 0x220821,
+0x100000b7, 0xac308ff4, 0x3c020001, 0x8c426f1c,
+0x10400069, 0x24050004, 0x24040001, 0xc00457c,
+0x27a60018, 0x24040001, 0x24050005, 0xc00457c,
+0x27a6001a, 0x97a30018, 0x97a2001a, 0x3c040001,
+0x24846e48, 0x30630c00, 0x31a82, 0x30420c00,
+0x21282, 0xa7a2001a, 0x21080, 0x441021,
+0x431021, 0xa7a30018, 0x90480000, 0x24020001,
+0x3103ffff, 0x10620029, 0x28620002, 0x10400005,
+0x0, 0x10600009, 0x0, 0x1000003d,
+0x0, 0x10700013, 0x24020003, 0x1062002c,
+0x0, 0x10000037, 0x0, 0x8f820200,
+0x2403feff, 0x431024, 0xaf820200, 0x8f820220,
+0x3c03fffe, 0x3463ffff, 0x431024, 0xaf820220,
+0x3c010002, 0xac209004, 0x3c010002, 0x10000032,
+0xac20900c, 0x8f820200, 0x34420100, 0xaf820200,
+0x8f820220, 0x3c03fffe, 0x3463ffff, 0x431024,
+0xaf820220, 0x24020100, 0x3c010002, 0xac229004,
+0x3c010002, 0x10000024, 0xac20900c, 0x8f820200,
+0x2403feff, 0x431024, 0xaf820200, 0x8f820220,
+0x3c030001, 0x431025, 0xaf820220, 0x3c010002,
+0xac209004, 0x3c010002, 0x10000017, 0xac23900c,
+0x8f820200, 0x34420100, 0xaf820200, 0x8f820220,
+0x3c030001, 0x431025, 0xaf820220, 0x24020100,
+0x3c010002, 0xac229004, 0x3c010002, 0x1000000a,
+0xac23900c, 0x3c040001, 0x24846c80, 0x97a6001a,
+0x97a70018, 0x3c050001, 0x34a5ffff, 0xafa80010,
+0xc002b3b, 0xafa00014, 0x8f820200, 0x34420002,
+0x1000004b, 0xaf820200, 0x128940, 0x3c050002,
+0xb12821, 0x8ca58ff8, 0x3c100002, 0x2118021,
+0x8e108ff0, 0x3c024000, 0xa21024, 0x14400010,
+0x0, 0x3c020001, 0x8c426f1c, 0x14400005,
+0x3c02bfff, 0x8f820200, 0x34420002, 0xaf820200,
+0x3c02bfff, 0x3442ffff, 0xc003daf, 0x2028024,
+0x3c010002, 0x310821, 0x10000031, 0xac308ff0,
+0x3c020001, 0x8c426f1c, 0x10400005, 0x3c020020,
+0x3c020001, 0x8c426e44, 0x10400025, 0x3c020020,
+0xa21024, 0x10400007, 0x34840020, 0x24020100,
+0x3c010002, 0x310821, 0xac229004, 0x10000006,
+0x34840100, 0x3c010002, 0x310821, 0xac209004,
+0x2402feff, 0x822024, 0x3c020080, 0xa21024,
+0x10400007, 0x121940, 0x3c020001, 0x3c010002,
+0x230821, 0xac22900c, 0x10000008, 0xc23025,
+0x121140, 0x3c010002, 0x220821, 0xac20900c,
+0x3c02fffe, 0x3442ffff, 0xc23024, 0xaf840200,
+0xaf860220, 0x8f820220, 0x34420002, 0xaf820220,
+0x121140, 0x3c010002, 0x220821, 0xac308ff0,
+0x8fbf002c, 0x8fb20028, 0x8fb10024, 0x8fb00020,
+0x3e00008, 0x27bd0030, 0x0, 0x1821,
+0x308400ff, 0x2405ffdf, 0x2406ffbf, 0x641007,
+0x30420001, 0x10400004, 0x0, 0x8f820044,
+0x10000003, 0x34420040, 0x8f820044, 0x461024,
+0xaf820044, 0x8f820044, 0x34420020, 0xaf820044,
+0x8f820044, 0x451024, 0xaf820044, 0x24630001,
+0x28620008, 0x5440ffee, 0x641007, 0x3e00008,
+0x0, 0x2c820008, 0x1040001b, 0x0,
+0x2405ffdf, 0x2406ffbf, 0x41880, 0x3c020001,
+0x24426e60, 0x621821, 0x24640004, 0x90620000,
+0x10400004, 0x0, 0x8f820044, 0x10000003,
+0x34420040, 0x8f820044, 0x461024, 0xaf820044,
+0x8f820044, 0x34420020, 0xaf820044, 0x8f820044,
+0x451024, 0xaf820044, 0x24630001, 0x64102b,
+0x1440ffee, 0x0, 0x3e00008, 0x0,
+0x0, 0x0, 0x0, 0x8f8400c4,
+0x8f8600e0, 0x8f8700e4, 0x2402fff8, 0xc22824,
+0x10e5001a, 0x27623ff8, 0x14e20002, 0x24e80008,
+0x27683000, 0x55050004, 0x8d0a0000, 0x30c20004,
+0x14400012, 0x805021, 0x8ce90000, 0x8f42013c,
+0x1494823, 0x49182b, 0x94eb0006, 0x10600002,
+0x25630050, 0x494821, 0x123182b, 0x50400003,
+0x8f4201fc, 0x3e00008, 0xe01021, 0xaf8800e8,
+0x24420001, 0xaf4201fc, 0xaf8800e4, 0x3e00008,
+0x1021, 0x3e00008, 0x0, 0x8f8300e4,
+0x27623ff8, 0x10620004, 0x24620008, 0xaf8200e8,
+0x3e00008, 0xaf8200e4, 0x27623000, 0xaf8200e8,
+0x3e00008, 0xaf8200e4, 0x3e00008, 0x0,
+0x0, 0x0, 0x0, 0x8f880120,
+0x27624fe0, 0x8f830128, 0x15020002, 0x25090020,
+0x27694800, 0x11230012, 0x8fa20010, 0xad040000,
+0xad050004, 0xad060008, 0xa507000e, 0x8fa30014,
+0xad020018, 0x8fa20018, 0xad03001c, 0x25030016,
+0xad020010, 0xad030014, 0xaf890120, 0x8f4300fc,
+0x24020001, 0x2463ffff, 0x3e00008, 0xaf4300fc,
+0x8f430324, 0x1021, 0x24630001, 0x3e00008,
+0xaf430324, 0x3e00008, 0x0, 0x8f880100,
+0x276247e0, 0x8f830108, 0x15020002, 0x25090020,
+0x27694000, 0x1123000f, 0x8fa20010, 0xad040000,
+0xad050004, 0xad060008, 0xa507000e, 0x8fa30014,
+0xad020018, 0x8fa20018, 0xad03001c, 0x25030016,
+0xad020010, 0xad030014, 0xaf890100, 0x3e00008,
+0x24020001, 0x8f430328, 0x1021, 0x24630001,
+0x3e00008, 0xaf430328, 0x3e00008, 0x0,
 0x0, 0x0, 0x0, 0x0 };
 static u32 tigon2FwRodata[(MAX_RODATA_LEN/4) + 1] __devinitdata = {
-0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f6677, 0x6d61696e, 0x2e632c76, 0x20312e31, 
-0x2e322e34, 0x35203139, 0x39392f30, 0x312f3234, 
-0x2030303a, 0x31303a35, 0x35207368, 0x75616e67, 
-0x20457870, 0x20240000, 0x65767452, 0x6e674600, 
-0x51657674, 0x46000000, 0x51657674, 0x505f4600, 
-0x4d657674, 0x526e6746, 0x0, 0x4d516576, 
-0x74460000, 0x4d516576, 0x505f4600, 0x5173436f, 
-0x6e495f46, 0x0, 0x5173436f, 0x6e734600, 
-0x51725072, 0x6f644600, 0x6261644d, 0x656d537a, 
-0x0, 0x68775665, 0x72000000, 0x62616448, 
-0x77566572, 0x0, 0x2a2a4441, 0x574e5f41, 
-0x0, 0x74785278, 0x4266537a, 0x0, 
-0x62664174, 0x6e4d726b, 0x0, 0x7265645a, 
-0x6f6e6531, 0x0, 0x70636943, 0x6f6e6600, 
-0x67656e43, 0x6f6e6600, 0x2a646d61, 0x5244666c, 
-0x0, 0x2a50414e, 0x49432a00, 0x2e2e2f2e, 
-0x2e2f2e2e, 0x2f2e2e2f, 0x2e2e2f73, 0x72632f6e, 
-0x69632f66, 0x77322f63, 0x6f6d6d6f, 0x6e2f6677, 
-0x6d61696e, 0x2e630000, 0x72636246, 0x6c616773, 
-0x0, 0x62616452, 0x78526362, 0x0, 
-0x676c6f62, 0x466c6773, 0x0, 0x2b5f6469, 
-0x73705f6c, 0x6f6f7000, 0x2b65765f, 0x68616e64, 
-0x6c657200, 0x63616e74, 0x31446d61, 0x0, 
-0x2b715f64, 0x6d615f74, 0x6f5f6e69, 0x635f636b, 
-0x73756d00, 0x2b685f73, 0x656e645f, 0x64617461, 
-0x5f726561, 0x64795f63, 0x6b73756d, 0x0, 
-0x2b685f64, 0x6d615f72, 0x645f6173, 0x73697374, 
-0x5f636b73, 0x756d0000, 0x74436b73, 0x6d4f6e00, 
-0x2b715f64, 0x6d615f74, 0x6f5f6e69, 0x63000000, 
-0x2b685f73, 0x656e645f, 0x64617461, 0x5f726561, 
-0x64790000, 0x2b685f64, 0x6d615f72, 0x645f6173, 
-0x73697374, 0x0, 0x74436b73, 0x6d4f6666, 
-0x0, 0x2b685f73, 0x656e645f, 0x62645f72, 
-0x65616479, 0x0, 0x68737453, 0x52696e67, 
-0x0, 0x62616453, 0x52696e67, 0x0, 
-0x6e696353, 0x52696e67, 0x0, 0x77446d61, 
-0x416c6c41, 0x0, 0x2b715f64, 0x6d615f74, 
-0x6f5f686f, 0x73745f63, 0x6b73756d, 0x0, 
-0x2b685f6d, 0x61635f72, 0x785f636f, 0x6d705f63, 
-0x6b73756d, 0x0, 0x2b685f64, 0x6d615f77, 
-0x725f6173, 0x73697374, 0x5f636b73, 0x756d0000, 
-0x72436b73, 0x6d4f6e00, 0x2b715f64, 0x6d615f74, 
-0x6f5f686f, 0x73740000, 0x2b685f6d, 0x61635f72, 
-0x785f636f, 0x6d700000, 0x2b685f64, 0x6d615f77, 
-0x725f6173, 0x73697374, 0x0, 0x72436b73, 
-0x6d4f6666, 0x0, 0x2b685f72, 0x6563765f, 
-0x62645f72, 0x65616479, 0x0, 0x2b685f72, 
-0x6563765f, 0x6a756d62, 0x6f5f6264, 0x5f726561, 
-0x64790000, 0x2b685f72, 0x6563765f, 0x6d696e69, 
-0x5f62645f, 0x72656164, 0x79000000, 0x2b6d685f, 
-0x636f6d6d, 0x616e6400, 0x2b685f74, 0x696d6572, 
-0x0, 0x2b685f64, 0x6f5f7570, 0x64617465, 
-0x5f74785f, 0x636f6e73, 0x0, 0x2b685f64, 
-0x6f5f7570, 0x64617465, 0x5f72785f, 0x70726f64, 
-0x0, 0x2b636b73, 0x756d3136, 0x0, 
-0x2b706565, 0x6b5f6d61, 0x635f7278, 0x5f776100, 
-0x2b706565, 0x6b5f6d61, 0x635f7278, 0x0, 
-0x2b646571, 0x5f6d6163, 0x5f727800, 0x2b685f6d, 
-0x61635f72, 0x785f6174, 0x746e0000, 0x62616452, 
-0x6574537a, 0x0, 0x72784264, 0x4266537a, 
-0x0, 0x2b6e756c, 0x6c5f6861, 0x6e646c65, 
-0x72000000, 0x66774f70, 0x4661696c, 0x0, 
-0x2b685f75, 0x70646174, 0x655f6c65, 0x64340000, 
-0x2b685f75, 0x70646174, 0x655f6c65, 0x64360000, 
-0x2b685f75, 0x70646174, 0x655f6c65, 0x64320000, 
-0x696e7453, 0x74617465, 0x0, 0x2a2a696e, 
-0x69744370, 0x0, 0x23736372, 0x65616d00, 
-0x69537461, 0x636b4572, 0x0, 0x70726f62, 
-0x654d656d, 0x0, 0x2a2a4441, 0x574e5f42, 
-0x0, 0x2b73775f, 0x646d615f, 0x61737369, 
-0x73745f70, 0x6c75735f, 0x74696d65, 0x72000000, 
-0x2b267072, 0x656c6f61, 0x645f7772, 0x5f646573, 
-0x63720000, 0x2b267072, 0x656c6f61, 0x645f7264, 
-0x5f646573, 0x63720000, 0x2b685f68, 0x665f7469, 
-0x6d657200, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f7469, 0x6d65722e, 0x632c7620, 0x312e312e, 
-0x322e3335, 0x20313939, 0x392f3031, 0x2f323720, 
-0x31393a30, 0x393a3530, 0x20686179, 0x65732045, 
-0x78702024, 0x0, 0x65767452, 0x6e674600, 
-0x51657674, 0x46000000, 0x51657674, 0x505f4600, 
-0x4d657674, 0x526e6746, 0x0, 0x4d516576, 
-0x74460000, 0x4d516576, 0x505f4600, 0x5173436f, 
-0x6e495f46, 0x0, 0x5173436f, 0x6e734600, 
-0x51725072, 0x6f644600, 0x542d446d, 0x61526432, 
-0x0, 0x542d446d, 0x61526431, 0x0, 
-0x542d446d, 0x61526442, 0x0, 0x542d446d, 
-0x61577232, 0x0, 0x542d446d, 0x61577231, 
-0x0, 0x542d446d, 0x61577242, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f636f, 0x6d6d616e, 0x642e632c, 0x7620312e, 
-0x312e322e, 0x32382031, 0x3939392f, 0x30312f32, 
-0x30203139, 0x3a34393a, 0x34392073, 0x6875616e, 
-0x67204578, 0x70202400, 0x65767452, 0x6e674600, 
-0x51657674, 0x46000000, 0x51657674, 0x505f4600, 
-0x4d657674, 0x526e6746, 0x0, 0x4d516576, 
-0x74460000, 0x4d516576, 0x505f4600, 0x5173436f, 
-0x6e495f46, 0x0, 0x5173436f, 0x6e734600, 
-0x51725072, 0x6f644600, 0x3f48636d, 0x644d6278, 
-0x0, 0x3f636d64, 0x48737453, 0x0, 
-0x3f636d64, 0x4d634d64, 0x0, 0x3f636d64, 
-0x50726f6d, 0x0, 0x3f636d64, 0x4c696e6b, 
-0x0, 0x3f636d64, 0x45727200, 0x86ac, 
-0x8e5c, 0x8e5c, 0x8de4, 0x8b78, 
-0x8e30, 0x8e5c, 0x8790, 0x8800, 
-0x8990, 0x8a68, 0x8a34, 0x8e5c, 
-0x8870, 0x8b24, 0x8e5c, 0x8b34, 
-0x87b4, 0x8824, 0x0, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f6d63, 0x6173742e, 0x632c7620, 0x312e312e, 
-0x322e3820, 0x31393938, 0x2f31322f, 0x30382030, 
-0x323a3336, 0x3a333620, 0x73687561, 0x6e672045, 
-0x78702024, 0x0, 0x65767452, 0x6e674600, 
-0x51657674, 0x46000000, 0x51657674, 0x505f4600, 
-0x4d657674, 0x526e6746, 0x0, 0x4d516576, 
-0x74460000, 0x4d516576, 0x505f4600, 0x5173436f, 
-0x6e495f46, 0x0, 0x5173436f, 0x6e734600, 
-0x51725072, 0x6f644600, 0x6164644d, 0x63447570, 
-0x0, 0x6164644d, 0x6346756c, 0x0, 
-0x64656c4d, 0x634e6f45, 0x0, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f646d, 0x612e632c, 0x7620312e, 0x312e322e, 
-0x32342031, 0x3939382f, 0x31322f32, 0x31203030, 
-0x3a33333a, 0x30392073, 0x6875616e, 0x67204578, 
-0x70202400, 0x65767452, 0x6e674600, 0x51657674, 
-0x46000000, 0x51657674, 0x505f4600, 0x4d657674, 
-0x526e6746, 0x0, 0x4d516576, 0x74460000, 
-0x4d516576, 0x505f4600, 0x5173436f, 0x6e495f46, 
-0x0, 0x5173436f, 0x6e734600, 0x51725072, 
-0x6f644600, 0x7377446d, 0x614f6666, 0x0, 
-0x31446d61, 0x4f6e0000, 0x7377446d, 0x614f6e00, 
-0x2372446d, 0x6141544e, 0x0, 0x72446d61, 
-0x41544e30, 0x0, 0x72446d61, 0x41544e31, 
-0x0, 0x72446d61, 0x34476200, 0x2a50414e, 
-0x49432a00, 0x2e2e2f2e, 0x2e2f2e2e, 0x2f2e2e2f, 
-0x2e2e2f73, 0x72632f6e, 0x69632f66, 0x77322f63, 
-0x6f6d6d6f, 0x6e2f646d, 0x612e6300, 0x2377446d, 
-0x6141544e, 0x0, 0x77446d61, 0x41544e30, 
-0x0, 0x77446d61, 0x41544e31, 0x0, 
-0x77446d61, 0x34476200, 0x0, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f7472, 0x6163652e, 0x632c7620, 0x312e312e, 
-0x322e3520, 0x31393938, 0x2f30392f, 0x33302031, 
-0x383a3530, 0x3a323820, 0x73687561, 0x6e672045, 
-0x78702024, 0x0, 0x0, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f6461, 0x74612e63, 0x2c762031, 0x2e312e32, 
-0x2e313220, 0x31393939, 0x2f30312f, 0x32302031, 
-0x393a3439, 0x3a353120, 0x73687561, 0x6e672045, 
-0x78702024, 0x0, 0x46575f56, 0x45525349, 
-0x4f4e3a20, 0x23312046, 0x72692041, 0x70722037, 
-0x2031373a, 0x35373a35, 0x32205044, 0x54203230, 
-0x30300000, 0x46575f43, 0x4f4d5049, 0x4c455f54, 
-0x494d453a, 0x2031373a, 0x35373a35, 0x32000000, 
-0x46575f43, 0x4f4d5049, 0x4c455f42, 0x593a2064, 
-0x65767263, 0x73000000, 0x46575f43, 0x4f4d5049, 
-0x4c455f48, 0x4f53543a, 0x20636f6d, 0x70757465, 
-0x0, 0x46575f43, 0x4f4d5049, 0x4c455f44, 
-0x4f4d4149, 0x4e3a2065, 0x6e672e61, 0x6374656f, 
-0x6e2e636f, 0x6d000000, 0x46575f43, 0x4f4d5049, 
-0x4c45523a, 0x20676363, 0x20766572, 0x73696f6e, 
-0x20322e37, 0x2e320000, 0x0, 0x12041100, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f6d65, 0x6d2e632c, 0x7620312e, 0x312e322e, 
-0x35203139, 0x39382f30, 0x392f3330, 0x2031383a, 
-0x35303a30, 0x38207368, 0x75616e67, 0x20457870, 
-0x20240000, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f7365, 0x6e642e63, 0x2c762031, 0x2e312e32, 
-0x2e343420, 0x31393938, 0x2f31322f, 0x32312030, 
-0x303a3333, 0x3a313820, 0x73687561, 0x6e672045, 
-0x78702024, 0x0, 0x65767452, 0x6e674600, 
-0x51657674, 0x46000000, 0x51657674, 0x505f4600, 
-0x4d657674, 0x526e6746, 0x0, 0x4d516576, 
-0x74460000, 0x4d516576, 0x505f4600, 0x5173436f, 
-0x6e495f46, 0x0, 0x5173436f, 0x6e734600, 
-0x51725072, 0x6f644600, 0x69736e74, 0x54637055, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f7265, 0x63762e63, 0x2c762031, 0x2e312e32, 
-0x2e353320, 0x31393939, 0x2f30312f, 0x31362030, 
-0x323a3535, 0x3a343320, 0x73687561, 0x6e672045, 
-0x78702024, 0x0, 0x65767452, 0x6e674600, 
-0x51657674, 0x46000000, 0x51657674, 0x505f4600, 
-0x4d657674, 0x526e6746, 0x0, 0x4d516576, 
-0x74460000, 0x4d516576, 0x505f4600, 0x5173436f, 
-0x6e495f46, 0x0, 0x5173436f, 0x6e734600, 
-0x51725072, 0x6f644600, 0x724d6163, 0x43686b30, 
-0x0, 0x72784672, 0x6d324c67, 0x0, 
-0x72784e6f, 0x53744264, 0x0, 0x72784e6f, 
-0x4d694264, 0x0, 0x72784e6f, 0x4a6d4264, 
-0x0, 0x7278436b, 0x446d6146, 0x0, 
-0x72785144, 0x6d457846, 0x0, 0x72785144, 
-0x6d614600, 0x72785144, 0x4c426446, 0x0, 
-0x72785144, 0x6d426446, 0x0, 0x72784372, 
-0x63506164, 0x0, 0x72536d51, 0x446d6146, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f6d61, 0x632e632c, 0x7620312e, 0x312e322e, 
-0x32322031, 0x3939382f, 0x31322f30, 0x38203032, 
-0x3a33363a, 0x33302073, 0x6875616e, 0x67204578, 
-0x70202400, 0x65767452, 0x6e674600, 0x51657674, 
-0x46000000, 0x51657674, 0x505f4600, 0x4d657674, 
-0x526e6746, 0x0, 0x4d516576, 0x74460000, 
-0x4d516576, 0x505f4600, 0x5173436f, 0x6e495f46, 
-0x0, 0x5173436f, 0x6e734600, 0x51725072, 
-0x6f644600, 0x6d616354, 0x68726573, 0x0, 
-0x23744d61, 0x6341544e, 0x0, 0x23724d61, 
-0x6341544e, 0x0, 0x72656d41, 0x73737274, 
-0x0, 0x6c696e6b, 0x444f574e, 0x0, 
-0x6c696e6b, 0x55500000, 0x0, 0x0, 
-0x0, 0x24486561, 0x6465723a, 0x202f7072, 
-0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765, 
-0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f, 
-0x6e2f636b, 0x73756d2e, 0x632c7620, 0x312e312e, 
-0x322e3920, 0x31393939, 0x2f30312f, 0x31342030, 
-0x303a3033, 0x3a343820, 0x73687561, 0x6e672045, 
-0x78702024, 0x0, 0x65767452, 0x6e674600, 
-0x51657674, 0x46000000, 0x51657674, 0x505f4600, 
-0x4d657674, 0x526e6746, 0x0, 0x4d516576, 
-0x74460000, 0x4d516576, 0x505f4600, 0x5173436f, 
-0x6e495f46, 0x0, 0x5173436f, 0x6e734600, 
-0x51725072, 0x6f644600, 0x0, 0x0, 
-0x0, 0x50726f62, 0x65506879, 0x0, 
-0x6c6e6b41, 0x53535254, 0x0, 0x109a4, 
-0x10a1c, 0x10a50, 0x10a7c, 0x11050, 
-0x10aa8, 0x10b10, 0x111fc, 0x10dc0, 
-0x10c68, 0x10c80, 0x10cc4, 0x10cec, 
-0x10d0c, 0x10d34, 0x111fc, 0x10dc0, 
-0x10df8, 0x10e10, 0x10e40, 0x10e68, 
-0x10e88, 0x10eb0, 0x0, 0x10fdc, 
-0x11008, 0x1102c, 0x111fc, 0x11050, 
-0x11078, 0x11108, 0x0, 0x0, 
-0x0, 0x1186c, 0x1193c, 0x11a14, 
-0x11ae4, 0x11b40, 0x11c1c, 0x11c44, 
-0x11d20, 0x11d48, 0x11ef0, 0x11f18, 
-0x120c0, 0x122b8, 0x1254c, 0x12460, 
-0x1254c, 0x12578, 0x120e8, 0x12290, 
-0x7273745f, 0x676d6969, 0x0, 0x12608, 
-0x12640, 0x12728, 0x13374, 0x133b4, 
-0x133cc, 0x7365746c, 0x6f6f7000, 0x0, 
-0x0, 0x13bbc, 0x13bfc, 0x13c8c, 
-0x13cd0, 0x13d34, 0x13dc0, 0x13df4, 
-0x13e7c, 0x13f14, 0x13fe4, 0x14024, 
-0x140a8, 0x140cc, 0x141dc, 0x646f4261, 
-0x73655067, 0x0, 0x0, 0x0, 
-0x0, 0x73746d61, 0x634c4e4b, 0x0, 
-0x6765746d, 0x636c6e6b, 0x0, 0x14ed8, 
-0x14ed8, 0x14b8c, 0x14bd8, 0x14c24, 
-0x14ed8, 0x7365746d, 0x61636163, 0x74000000, 
+0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f6677, 0x6d61696e, 0x2e632c76, 0x20312e31,
+0x2e322e34, 0x35203139, 0x39392f30, 0x312f3234,
+0x2030303a, 0x31303a35, 0x35207368, 0x75616e67,
+0x20457870, 0x20240000, 0x65767452, 0x6e674600,
+0x51657674, 0x46000000, 0x51657674, 0x505f4600,
+0x4d657674, 0x526e6746, 0x0, 0x4d516576,
+0x74460000, 0x4d516576, 0x505f4600, 0x5173436f,
+0x6e495f46, 0x0, 0x5173436f, 0x6e734600,
+0x51725072, 0x6f644600, 0x6261644d, 0x656d537a,
+0x0, 0x68775665, 0x72000000, 0x62616448,
+0x77566572, 0x0, 0x2a2a4441, 0x574e5f41,
+0x0, 0x74785278, 0x4266537a, 0x0,
+0x62664174, 0x6e4d726b, 0x0, 0x7265645a,
+0x6f6e6531, 0x0, 0x70636943, 0x6f6e6600,
+0x67656e43, 0x6f6e6600, 0x2a646d61, 0x5244666c,
+0x0, 0x2a50414e, 0x49432a00, 0x2e2e2f2e,
+0x2e2f2e2e, 0x2f2e2e2f, 0x2e2e2f73, 0x72632f6e,
+0x69632f66, 0x77322f63, 0x6f6d6d6f, 0x6e2f6677,
+0x6d61696e, 0x2e630000, 0x72636246, 0x6c616773,
+0x0, 0x62616452, 0x78526362, 0x0,
+0x676c6f62, 0x466c6773, 0x0, 0x2b5f6469,
+0x73705f6c, 0x6f6f7000, 0x2b65765f, 0x68616e64,
+0x6c657200, 0x63616e74, 0x31446d61, 0x0,
+0x2b715f64, 0x6d615f74, 0x6f5f6e69, 0x635f636b,
+0x73756d00, 0x2b685f73, 0x656e645f, 0x64617461,
+0x5f726561, 0x64795f63, 0x6b73756d, 0x0,
+0x2b685f64, 0x6d615f72, 0x645f6173, 0x73697374,
+0x5f636b73, 0x756d0000, 0x74436b73, 0x6d4f6e00,
+0x2b715f64, 0x6d615f74, 0x6f5f6e69, 0x63000000,
+0x2b685f73, 0x656e645f, 0x64617461, 0x5f726561,
+0x64790000, 0x2b685f64, 0x6d615f72, 0x645f6173,
+0x73697374, 0x0, 0x74436b73, 0x6d4f6666,
+0x0, 0x2b685f73, 0x656e645f, 0x62645f72,
+0x65616479, 0x0, 0x68737453, 0x52696e67,
+0x0, 0x62616453, 0x52696e67, 0x0,
+0x6e696353, 0x52696e67, 0x0, 0x77446d61,
+0x416c6c41, 0x0, 0x2b715f64, 0x6d615f74,
+0x6f5f686f, 0x73745f63, 0x6b73756d, 0x0,
+0x2b685f6d, 0x61635f72, 0x785f636f, 0x6d705f63,
+0x6b73756d, 0x0, 0x2b685f64, 0x6d615f77,
+0x725f6173, 0x73697374, 0x5f636b73, 0x756d0000,
+0x72436b73, 0x6d4f6e00, 0x2b715f64, 0x6d615f74,
+0x6f5f686f, 0x73740000, 0x2b685f6d, 0x61635f72,
+0x785f636f, 0x6d700000, 0x2b685f64, 0x6d615f77,
+0x725f6173, 0x73697374, 0x0, 0x72436b73,
+0x6d4f6666, 0x0, 0x2b685f72, 0x6563765f,
+0x62645f72, 0x65616479, 0x0, 0x2b685f72,
+0x6563765f, 0x6a756d62, 0x6f5f6264, 0x5f726561,
+0x64790000, 0x2b685f72, 0x6563765f, 0x6d696e69,
+0x5f62645f, 0x72656164, 0x79000000, 0x2b6d685f,
+0x636f6d6d, 0x616e6400, 0x2b685f74, 0x696d6572,
+0x0, 0x2b685f64, 0x6f5f7570, 0x64617465,
+0x5f74785f, 0x636f6e73, 0x0, 0x2b685f64,
+0x6f5f7570, 0x64617465, 0x5f72785f, 0x70726f64,
+0x0, 0x2b636b73, 0x756d3136, 0x0,
+0x2b706565, 0x6b5f6d61, 0x635f7278, 0x5f776100,
+0x2b706565, 0x6b5f6d61, 0x635f7278, 0x0,
+0x2b646571, 0x5f6d6163, 0x5f727800, 0x2b685f6d,
+0x61635f72, 0x785f6174, 0x746e0000, 0x62616452,
+0x6574537a, 0x0, 0x72784264, 0x4266537a,
+0x0, 0x2b6e756c, 0x6c5f6861, 0x6e646c65,
+0x72000000, 0x66774f70, 0x4661696c, 0x0,
+0x2b685f75, 0x70646174, 0x655f6c65, 0x64340000,
+0x2b685f75, 0x70646174, 0x655f6c65, 0x64360000,
+0x2b685f75, 0x70646174, 0x655f6c65, 0x64320000,
+0x696e7453, 0x74617465, 0x0, 0x2a2a696e,
+0x69744370, 0x0, 0x23736372, 0x65616d00,
+0x69537461, 0x636b4572, 0x0, 0x70726f62,
+0x654d656d, 0x0, 0x2a2a4441, 0x574e5f42,
+0x0, 0x2b73775f, 0x646d615f, 0x61737369,
+0x73745f70, 0x6c75735f, 0x74696d65, 0x72000000,
+0x2b267072, 0x656c6f61, 0x645f7772, 0x5f646573,
+0x63720000, 0x2b267072, 0x656c6f61, 0x645f7264,
+0x5f646573, 0x63720000, 0x2b685f68, 0x665f7469,
+0x6d657200, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f7469, 0x6d65722e, 0x632c7620, 0x312e312e,
+0x322e3335, 0x20313939, 0x392f3031, 0x2f323720,
+0x31393a30, 0x393a3530, 0x20686179, 0x65732045,
+0x78702024, 0x0, 0x65767452, 0x6e674600,
+0x51657674, 0x46000000, 0x51657674, 0x505f4600,
+0x4d657674, 0x526e6746, 0x0, 0x4d516576,
+0x74460000, 0x4d516576, 0x505f4600, 0x5173436f,
+0x6e495f46, 0x0, 0x5173436f, 0x6e734600,
+0x51725072, 0x6f644600, 0x542d446d, 0x61526432,
+0x0, 0x542d446d, 0x61526431, 0x0,
+0x542d446d, 0x61526442, 0x0, 0x542d446d,
+0x61577232, 0x0, 0x542d446d, 0x61577231,
+0x0, 0x542d446d, 0x61577242, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f636f, 0x6d6d616e, 0x642e632c, 0x7620312e,
+0x312e322e, 0x32382031, 0x3939392f, 0x30312f32,
+0x30203139, 0x3a34393a, 0x34392073, 0x6875616e,
+0x67204578, 0x70202400, 0x65767452, 0x6e674600,
+0x51657674, 0x46000000, 0x51657674, 0x505f4600,
+0x4d657674, 0x526e6746, 0x0, 0x4d516576,
+0x74460000, 0x4d516576, 0x505f4600, 0x5173436f,
+0x6e495f46, 0x0, 0x5173436f, 0x6e734600,
+0x51725072, 0x6f644600, 0x3f48636d, 0x644d6278,
+0x0, 0x3f636d64, 0x48737453, 0x0,
+0x3f636d64, 0x4d634d64, 0x0, 0x3f636d64,
+0x50726f6d, 0x0, 0x3f636d64, 0x4c696e6b,
+0x0, 0x3f636d64, 0x45727200, 0x86ac,
+0x8e5c, 0x8e5c, 0x8de4, 0x8b78,
+0x8e30, 0x8e5c, 0x8790, 0x8800,
+0x8990, 0x8a68, 0x8a34, 0x8e5c,
+0x8870, 0x8b24, 0x8e5c, 0x8b34,
+0x87b4, 0x8824, 0x0, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f6d63, 0x6173742e, 0x632c7620, 0x312e312e,
+0x322e3820, 0x31393938, 0x2f31322f, 0x30382030,
+0x323a3336, 0x3a333620, 0x73687561, 0x6e672045,
+0x78702024, 0x0, 0x65767452, 0x6e674600,
+0x51657674, 0x46000000, 0x51657674, 0x505f4600,
+0x4d657674, 0x526e6746, 0x0, 0x4d516576,
+0x74460000, 0x4d516576, 0x505f4600, 0x5173436f,
+0x6e495f46, 0x0, 0x5173436f, 0x6e734600,
+0x51725072, 0x6f644600, 0x6164644d, 0x63447570,
+0x0, 0x6164644d, 0x6346756c, 0x0,
+0x64656c4d, 0x634e6f45, 0x0, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f646d, 0x612e632c, 0x7620312e, 0x312e322e,
+0x32342031, 0x3939382f, 0x31322f32, 0x31203030,
+0x3a33333a, 0x30392073, 0x6875616e, 0x67204578,
+0x70202400, 0x65767452, 0x6e674600, 0x51657674,
+0x46000000, 0x51657674, 0x505f4600, 0x4d657674,
+0x526e6746, 0x0, 0x4d516576, 0x74460000,
+0x4d516576, 0x505f4600, 0x5173436f, 0x6e495f46,
+0x0, 0x5173436f, 0x6e734600, 0x51725072,
+0x6f644600, 0x7377446d, 0x614f6666, 0x0,
+0x31446d61, 0x4f6e0000, 0x7377446d, 0x614f6e00,
+0x2372446d, 0x6141544e, 0x0, 0x72446d61,
+0x41544e30, 0x0, 0x72446d61, 0x41544e31,
+0x0, 0x72446d61, 0x34476200, 0x2a50414e,
+0x49432a00, 0x2e2e2f2e, 0x2e2f2e2e, 0x2f2e2e2f,
+0x2e2e2f73, 0x72632f6e, 0x69632f66, 0x77322f63,
+0x6f6d6d6f, 0x6e2f646d, 0x612e6300, 0x2377446d,
+0x6141544e, 0x0, 0x77446d61, 0x41544e30,
+0x0, 0x77446d61, 0x41544e31, 0x0,
+0x77446d61, 0x34476200, 0x0, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f7472, 0x6163652e, 0x632c7620, 0x312e312e,
+0x322e3520, 0x31393938, 0x2f30392f, 0x33302031,
+0x383a3530, 0x3a323820, 0x73687561, 0x6e672045,
+0x78702024, 0x0, 0x0, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f6461, 0x74612e63, 0x2c762031, 0x2e312e32,
+0x2e313220, 0x31393939, 0x2f30312f, 0x32302031,
+0x393a3439, 0x3a353120, 0x73687561, 0x6e672045,
+0x78702024, 0x0, 0x46575f56, 0x45525349,
+0x4f4e3a20, 0x23312046, 0x72692041, 0x70722037,
+0x2031373a, 0x35373a35, 0x32205044, 0x54203230,
+0x30300000, 0x46575f43, 0x4f4d5049, 0x4c455f54,
+0x494d453a, 0x2031373a, 0x35373a35, 0x32000000,
+0x46575f43, 0x4f4d5049, 0x4c455f42, 0x593a2064,
+0x65767263, 0x73000000, 0x46575f43, 0x4f4d5049,
+0x4c455f48, 0x4f53543a, 0x20636f6d, 0x70757465,
+0x0, 0x46575f43, 0x4f4d5049, 0x4c455f44,
+0x4f4d4149, 0x4e3a2065, 0x6e672e61, 0x6374656f,
+0x6e2e636f, 0x6d000000, 0x46575f43, 0x4f4d5049,
+0x4c45523a, 0x20676363, 0x20766572, 0x73696f6e,
+0x20322e37, 0x2e320000, 0x0, 0x12041100,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f6d65, 0x6d2e632c, 0x7620312e, 0x312e322e,
+0x35203139, 0x39382f30, 0x392f3330, 0x2031383a,
+0x35303a30, 0x38207368, 0x75616e67, 0x20457870,
+0x20240000, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f7365, 0x6e642e63, 0x2c762031, 0x2e312e32,
+0x2e343420, 0x31393938, 0x2f31322f, 0x32312030,
+0x303a3333, 0x3a313820, 0x73687561, 0x6e672045,
+0x78702024, 0x0, 0x65767452, 0x6e674600,
+0x51657674, 0x46000000, 0x51657674, 0x505f4600,
+0x4d657674, 0x526e6746, 0x0, 0x4d516576,
+0x74460000, 0x4d516576, 0x505f4600, 0x5173436f,
+0x6e495f46, 0x0, 0x5173436f, 0x6e734600,
+0x51725072, 0x6f644600, 0x69736e74, 0x54637055,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f7265, 0x63762e63, 0x2c762031, 0x2e312e32,
+0x2e353320, 0x31393939, 0x2f30312f, 0x31362030,
+0x323a3535, 0x3a343320, 0x73687561, 0x6e672045,
+0x78702024, 0x0, 0x65767452, 0x6e674600,
+0x51657674, 0x46000000, 0x51657674, 0x505f4600,
+0x4d657674, 0x526e6746, 0x0, 0x4d516576,
+0x74460000, 0x4d516576, 0x505f4600, 0x5173436f,
+0x6e495f46, 0x0, 0x5173436f, 0x6e734600,
+0x51725072, 0x6f644600, 0x724d6163, 0x43686b30,
+0x0, 0x72784672, 0x6d324c67, 0x0,
+0x72784e6f, 0x53744264, 0x0, 0x72784e6f,
+0x4d694264, 0x0, 0x72784e6f, 0x4a6d4264,
+0x0, 0x7278436b, 0x446d6146, 0x0,
+0x72785144, 0x6d457846, 0x0, 0x72785144,
+0x6d614600, 0x72785144, 0x4c426446, 0x0,
+0x72785144, 0x6d426446, 0x0, 0x72784372,
+0x63506164, 0x0, 0x72536d51, 0x446d6146,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f6d61, 0x632e632c, 0x7620312e, 0x312e322e,
+0x32322031, 0x3939382f, 0x31322f30, 0x38203032,
+0x3a33363a, 0x33302073, 0x6875616e, 0x67204578,
+0x70202400, 0x65767452, 0x6e674600, 0x51657674,
+0x46000000, 0x51657674, 0x505f4600, 0x4d657674,
+0x526e6746, 0x0, 0x4d516576, 0x74460000,
+0x4d516576, 0x505f4600, 0x5173436f, 0x6e495f46,
+0x0, 0x5173436f, 0x6e734600, 0x51725072,
+0x6f644600, 0x6d616354, 0x68726573, 0x0,
+0x23744d61, 0x6341544e, 0x0, 0x23724d61,
+0x6341544e, 0x0, 0x72656d41, 0x73737274,
+0x0, 0x6c696e6b, 0x444f574e, 0x0,
+0x6c696e6b, 0x55500000, 0x0, 0x0,
+0x0, 0x24486561, 0x6465723a, 0x202f7072,
+0x6f6a6563, 0x74732f72, 0x63732f73, 0x772f6765,
+0x2f2e2f6e, 0x69632f66, 0x77322f63, 0x6f6d6d6f,
+0x6e2f636b, 0x73756d2e, 0x632c7620, 0x312e312e,
+0x322e3920, 0x31393939, 0x2f30312f, 0x31342030,
+0x303a3033, 0x3a343820, 0x73687561, 0x6e672045,
+0x78702024, 0x0, 0x65767452, 0x6e674600,
+0x51657674, 0x46000000, 0x51657674, 0x505f4600,
+0x4d657674, 0x526e6746, 0x0, 0x4d516576,
+0x74460000, 0x4d516576, 0x505f4600, 0x5173436f,
+0x6e495f46, 0x0, 0x5173436f, 0x6e734600,
+0x51725072, 0x6f644600, 0x0, 0x0,
+0x0, 0x50726f62, 0x65506879, 0x0,
+0x6c6e6b41, 0x53535254, 0x0, 0x109a4,
+0x10a1c, 0x10a50, 0x10a7c, 0x11050,
+0x10aa8, 0x10b10, 0x111fc, 0x10dc0,
+0x10c68, 0x10c80, 0x10cc4, 0x10cec,
+0x10d0c, 0x10d34, 0x111fc, 0x10dc0,
+0x10df8, 0x10e10, 0x10e40, 0x10e68,
+0x10e88, 0x10eb0, 0x0, 0x10fdc,
+0x11008, 0x1102c, 0x111fc, 0x11050,
+0x11078, 0x11108, 0x0, 0x0,
+0x0, 0x1186c, 0x1193c, 0x11a14,
+0x11ae4, 0x11b40, 0x11c1c, 0x11c44,
+0x11d20, 0x11d48, 0x11ef0, 0x11f18,
+0x120c0, 0x122b8, 0x1254c, 0x12460,
+0x1254c, 0x12578, 0x120e8, 0x12290,
+0x7273745f, 0x676d6969, 0x0, 0x12608,
+0x12640, 0x12728, 0x13374, 0x133b4,
+0x133cc, 0x7365746c, 0x6f6f7000, 0x0,
+0x0, 0x13bbc, 0x13bfc, 0x13c8c,
+0x13cd0, 0x13d34, 0x13dc0, 0x13df4,
+0x13e7c, 0x13f14, 0x13fe4, 0x14024,
+0x140a8, 0x140cc, 0x141dc, 0x646f4261,
+0x73655067, 0x0, 0x0, 0x0,
+0x0, 0x73746d61, 0x634c4e4b, 0x0,
+0x6765746d, 0x636c6e6b, 0x0, 0x14ed8,
+0x14ed8, 0x14b8c, 0x14bd8, 0x14c24,
+0x14ed8, 0x7365746d, 0x61636163, 0x74000000,
 0x0, 0x0 };
 static u32 tigon2FwData[(MAX_DATA_LEN/4) + 1] __devinitdata = {
-0x1, 
-0x1, 0x1, 0xc001fc, 0x3ffc, 
-0xc00000, 0x416c7465, 0x6f6e2041, 0x63654e49, 
-0x43205600, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x416c7465, 
-0x6f6e2041, 0x63654e49, 0x43205600, 0x42424242, 
-0x0, 0x0, 0x0, 0x1ffffc, 
-0x1fff7c, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x60cf00, 
-0x60, 0xcf000000, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x3, 0x0, 
-0x1, 0x0, 0x0, 0x0, 
-0x1, 0x0, 0x1, 0x0, 
-0x0, 0x0, 0x0, 0x1, 
-0x1, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x1000000, 0x21000000, 
-0x12000140, 0x0, 0x0, 0x20000000, 
-0x120000a0, 0x0, 0x12000060, 0x12000180, 
-0x120001e0, 0x0, 0x0, 0x0, 
-0x1, 0x0, 0x0, 0x0, 
-0x0, 0x0, 0x0, 0x2, 
-0x0, 0x0, 0x30001, 0x1, 
-0x30201, 0x0, 0x0, 0x1010101, 
-0x1010100, 0x10100, 0x1010001, 0x10001, 
+0x1,
+0x1, 0x1, 0xc001fc, 0x3ffc,
+0xc00000, 0x416c7465, 0x6f6e2041, 0x63654e49,
+0x43205600, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x416c7465,
+0x6f6e2041, 0x63654e49, 0x43205600, 0x42424242,
+0x0, 0x0, 0x0, 0x1ffffc,
+0x1fff7c, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x60cf00,
+0x60, 0xcf000000, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x3, 0x0,
+0x1, 0x0, 0x0, 0x0,
+0x1, 0x0, 0x1, 0x0,
+0x0, 0x0, 0x0, 0x1,
+0x1, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x1000000, 0x21000000,
+0x12000140, 0x0, 0x0, 0x20000000,
+0x120000a0, 0x0, 0x12000060, 0x12000180,
+0x120001e0, 0x0, 0x0, 0x0,
+0x1, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x2,
+0x0, 0x0, 0x30001, 0x1,
+0x30201, 0x0, 0x0, 0x1010101,
+0x1010100, 0x10100, 0x1010001, 0x10001,
 0x1000101, 0x101, 0x0, 0x0 };

+ 244 - 245
drivers/net/amd8111e.c

@@ -1,8 +1,8 @@
 
-/* Advanced  Micro Devices Inc. AMD8111E Linux Network Driver 
- * Copyright (C) 2004 Advanced Micro Devices 
+/* Advanced  Micro Devices Inc. AMD8111E Linux Network Driver
+ * Copyright (C) 2004 Advanced Micro Devices
+ *
  *
- * 
  * Copyright 2001,2002 Jeff Garzik <jgarzik@mandrakesoft.com> [ 8139cp.c,tg3.c ]
  * Copyright (C) 2001, 2002 David S. Miller (davem@redhat.com)[ tg3.c]
  * Copyright 1996-1999 Thomas Bogendoerfer [ pcnet32.c ]
@@ -12,7 +12,7 @@
  * Carsten Langgaard, carstenl@mips.com [ pcnet32.c ]
  * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
  *
- * 
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
@@ -25,16 +25,16 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  * USA
-  
+
 Module Name:
 
 	amd8111e.c
 
 Abstract:
-	
- 	 AMD8111 based 10/100 Ethernet Controller Driver. 
+
+ 	 AMD8111 based 10/100 Ethernet Controller Driver.
 
 Environment:
 
@@ -58,13 +58,13 @@ Revision History:
 	3.0.4 12/09/2003
 	 1. Added set_mac_address routine for bonding driver support.
 	 2. Tested the driver for bonding support
-	 3. Bug fix: Fixed mismach in actual receive buffer lenth and lenth 
+	 3. Bug fix: Fixed mismach in actual receive buffer lenth and lenth
 	    indicated to the h/w.
-	 4. Modified amd8111e_rx() routine to receive all the received packets 
+	 4. Modified amd8111e_rx() routine to receive all the received packets
 	    in the first interrupt.
 	 5. Bug fix: Corrected  rx_errors  reported in get_stats() function.
 	3.0.5 03/22/2004
-	 1. Added NAPI support  
+	 1. Added NAPI support
 
 */
 
@@ -84,7 +84,7 @@ Revision History:
 #include <linux/ethtool.h>
 #include <linux/mii.h>
 #include <linux/if_vlan.h>
-#include <linux/ctype.h>	
+#include <linux/ctype.h>
 #include <linux/crc32.h>
 #include <linux/dma-mapping.h>
 
@@ -101,9 +101,9 @@ Revision History:
 
 #include "amd8111e.h"
 #define MODULE_NAME	"amd8111e"
-#define MODULE_VERS	"3.0.5"
+#define MODULE_VERS	"3.0.6"
 MODULE_AUTHOR("Advanced Micro Devices, Inc.");
-MODULE_DESCRIPTION ("AMD8111 based 10/100 Ethernet Controller. Driver Version 3.0.3");
+MODULE_DESCRIPTION ("AMD8111 based 10/100 Ethernet Controller. Driver Version 3.0.6");
 MODULE_LICENSE("GPL");
 MODULE_DEVICE_TABLE(pci, amd8111e_pci_tbl);
 module_param_array(speed_duplex, int, NULL, 0);
@@ -114,13 +114,13 @@ module_param_array(dynamic_ipg, bool, NULL, 0);
 MODULE_PARM_DESC(dynamic_ipg, "Enable or Disable dynamic IPG, 1: Enable, 0: Disable");
 
 static struct pci_device_id amd8111e_pci_tbl[] = {
-		
+
 	{ PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD8111E_7462,
 	 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
 	{ 0, }
 
 };
-/* 
+/*
 This function will read the PHY registers.
 */
 static int amd8111e_read_phy(struct amd8111e_priv* lp, int phy_id, int reg, u32* val)
@@ -141,17 +141,17 @@ static int amd8111e_read_phy(struct amd8111e_priv* lp, int phy_id, int reg, u32*
 	} while (--repeat && (reg_val & PHY_CMD_ACTIVE));
 	if(reg_val & PHY_RD_ERR)
 		goto err_phy_read;
-	
+
 	*val = reg_val & 0xffff;
 	return 0;
-err_phy_read:	
+err_phy_read:
 	*val = 0;
 	return -EINVAL;
-	
+
 }
 
-/* 
-This function will write into PHY registers. 
+/*
+This function will write into PHY registers.
 */
 static int amd8111e_write_phy(struct amd8111e_priv* lp,int phy_id, int reg, u32 val)
 {
@@ -170,19 +170,19 @@ static int amd8111e_write_phy(struct amd8111e_priv* lp,int phy_id, int reg, u32
 		reg_val = readl(mmio + PHY_ACCESS);
 		udelay(30);  /* It takes 30 us to read/write the data */
 	} while (--repeat && (reg_val & PHY_CMD_ACTIVE));
-	
+
 	if(reg_val & PHY_RD_ERR)
 		goto err_phy_write;
-	
+
 	return 0;
 
-err_phy_write:	
+err_phy_write:
 	return -EINVAL;
-	
+
 }
-/* 
+/*
 This is the mii register read function provided to the mii interface.
-*/ 
+*/
 static int amd8111e_mdio_read(struct net_device * dev, int phy_id, int reg_num)
 {
 	struct amd8111e_priv* lp = netdev_priv(dev);
@@ -190,12 +190,12 @@ static int amd8111e_mdio_read(struct net_device * dev, int phy_id, int reg_num)
 
 	amd8111e_read_phy(lp,phy_id,reg_num,&reg_val);
 	return reg_val;
-	
+
 }
 
-/* 
+/*
 This is the mii register write function provided to the mii interface.
-*/ 
+*/
 static void amd8111e_mdio_write(struct net_device * dev, int phy_id, int reg_num, int val)
 {
 	struct amd8111e_priv* lp = netdev_priv(dev);
@@ -210,7 +210,7 @@ static void amd8111e_set_ext_phy(struct net_device *dev)
 {
 	struct amd8111e_priv *lp = netdev_priv(dev);
 	u32 bmcr,advert,tmp;
-	
+
 	/* Determine mii register values to set the speed */
 	advert = amd8111e_mdio_read(dev, lp->ext_phy_addr, MII_ADVERTISE);
 	tmp = advert & ~(ADVERTISE_ALL | ADVERTISE_100BASE4);
@@ -227,7 +227,7 @@ static void amd8111e_set_ext_phy(struct net_device *dev)
 		case SPEED10_FULL:
 			tmp |= ADVERTISE_10FULL;
 			break;
-		case SPEED100_HALF: 
+		case SPEED100_HALF:
 			tmp |= ADVERTISE_100HALF;
 			break;
 		case SPEED100_FULL:
@@ -244,8 +244,8 @@ static void amd8111e_set_ext_phy(struct net_device *dev)
 
 }
 
-/* 
-This function will unmap skb->data space and will free 
+/*
+This function will unmap skb->data space and will free
 all transmit and receive skbuffs.
 */
 static int amd8111e_free_skbs(struct net_device *dev)
@@ -274,7 +274,7 @@ static int amd8111e_free_skbs(struct net_device *dev)
 			lp->rx_dma_addr[i] = 0;
 		}
 	}
-	
+
 	return 0;
 }
 
@@ -285,7 +285,7 @@ static inline void amd8111e_set_rx_buff_len(struct net_device* dev)
 {
 	struct amd8111e_priv* lp = netdev_priv(dev);
 	unsigned int mtu = dev->mtu;
-	
+
 	if (mtu > ETH_DATA_LEN){
 		/* MTU + ethernet header + FCS
 		+ optional VLAN tag + skb reserve space 2 */
@@ -298,7 +298,7 @@ static inline void amd8111e_set_rx_buff_len(struct net_device* dev)
 	}
 }
 
-/* 
+/*
 This function will free all the previously allocated buffers, determine new receive buffer length  and will allocate new receive buffers. This function also allocates and initializes both the transmitter and receive hardware descriptors.
  */
 static int amd8111e_init_ring(struct net_device *dev)
@@ -309,24 +309,24 @@ static int amd8111e_init_ring(struct net_device *dev)
 	lp->rx_idx = lp->tx_idx = 0;
 	lp->tx_complete_idx = 0;
 	lp->tx_ring_idx = 0;
-	
+
 
 	if(lp->opened)
 		/* Free previously allocated transmit and receive skbs */
-		amd8111e_free_skbs(dev);	
+		amd8111e_free_skbs(dev);
 
 	else{
 		 /* allocate the tx and rx descriptors */
-	     	if((lp->tx_ring = pci_alloc_consistent(lp->pci_dev, 
+	     	if((lp->tx_ring = pci_alloc_consistent(lp->pci_dev,
 			sizeof(struct amd8111e_tx_dr)*NUM_TX_RING_DR,
 			&lp->tx_ring_dma_addr)) == NULL)
-		
+
 			goto err_no_mem;
-	
-	     	if((lp->rx_ring = pci_alloc_consistent(lp->pci_dev, 
+
+	     	if((lp->rx_ring = pci_alloc_consistent(lp->pci_dev,
 			sizeof(struct amd8111e_rx_dr)*NUM_RX_RING_DR,
 			&lp->rx_ring_dma_addr)) == NULL)
-		
+
 			goto err_free_tx_ring;
 
 	}
@@ -346,7 +346,7 @@ static int amd8111e_init_ring(struct net_device *dev)
 	}
         /* Initilaizing receive descriptors */
 	for (i = 0; i < NUM_RX_BUFFERS; i++) {
-		lp->rx_dma_addr[i] = pci_map_single(lp->pci_dev, 
+		lp->rx_dma_addr[i] = pci_map_single(lp->pci_dev,
 			lp->rx_skbuff[i]->data,lp->rx_buff_len-2, PCI_DMA_FROMDEVICE);
 
 		lp->rx_ring[i].buff_phy_addr = cpu_to_le32(lp->rx_dma_addr[i]);
@@ -365,15 +365,15 @@ static int amd8111e_init_ring(struct net_device *dev)
 	return 0;
 
 err_free_rx_ring:
-	
-	pci_free_consistent(lp->pci_dev, 
+
+	pci_free_consistent(lp->pci_dev,
 		sizeof(struct amd8111e_rx_dr)*NUM_RX_RING_DR,lp->rx_ring,
 		lp->rx_ring_dma_addr);
 
 err_free_tx_ring:
-	
+
 	pci_free_consistent(lp->pci_dev,
-		 sizeof(struct amd8111e_tx_dr)*NUM_TX_RING_DR,lp->tx_ring, 
+		 sizeof(struct amd8111e_tx_dr)*NUM_TX_RING_DR,lp->tx_ring,
 		 lp->tx_ring_dma_addr);
 
 err_no_mem:
@@ -395,11 +395,11 @@ static int amd8111e_set_coalesce(struct net_device * dev, enum coal_mode cmod)
 		case RX_INTR_COAL :
 			timeout = coal_conf->rx_timeout;
 			event_count = coal_conf->rx_event_count;
-			if( timeout > MAX_TIMEOUT || 
-					event_count > MAX_EVENT_COUNT ) 
+			if( timeout > MAX_TIMEOUT ||
+					event_count > MAX_EVENT_COUNT )
 			return -EINVAL;
 
-			timeout = timeout * DELAY_TIMER_CONV; 
+			timeout = timeout * DELAY_TIMER_CONV;
 			writel(VAL0|STINTEN, mmio+INTEN0);
 			writel((u32)DLY_INT_A_R0|( event_count<< 16 )|timeout,
 							mmio+DLY_INT_A);
@@ -408,12 +408,12 @@ static int amd8111e_set_coalesce(struct net_device * dev, enum coal_mode cmod)
 		case TX_INTR_COAL :
 			timeout = coal_conf->tx_timeout;
 			event_count = coal_conf->tx_event_count;
-			if( timeout > MAX_TIMEOUT || 
-					event_count > MAX_EVENT_COUNT ) 
+			if( timeout > MAX_TIMEOUT ||
+					event_count > MAX_EVENT_COUNT )
 			return -EINVAL;
 
-		   
-			timeout = timeout * DELAY_TIMER_CONV; 
+
+			timeout = timeout * DELAY_TIMER_CONV;
 			writel(VAL0|STINTEN,mmio+INTEN0);
 			writel((u32)DLY_INT_B_T0|( event_count<< 16 )|timeout,
 							 mmio+DLY_INT_B);
@@ -425,7 +425,7 @@ static int amd8111e_set_coalesce(struct net_device * dev, enum coal_mode cmod)
 			writel(0, mmio +DLY_INT_B);
 			writel(0, mmio+DLY_INT_A);
 			break;
-		 case ENABLE_COAL: 
+		 case ENABLE_COAL:
 		       /* Start the timer */
 			writel((u32)SOFT_TIMER_FREQ, mmio+STVAL); /*  0.5 sec */
 			writel(VAL0|STINTEN, mmio+INTEN0);
@@ -438,8 +438,8 @@ static int amd8111e_set_coalesce(struct net_device * dev, enum coal_mode cmod)
 
 }
 
-/* 
-This function initializes the device registers  and starts the device.  
+/*
+This function initializes the device registers  and starts the device.
 */
 static int amd8111e_restart(struct net_device *dev)
 {
@@ -455,8 +455,8 @@ static int amd8111e_restart(struct net_device *dev)
 
 	/* enable the port manager and set auto negotiation always */
 	writel((u32) VAL1|EN_PMGR, mmio + CMD3 );
-	writel((u32)XPHYANE|XPHYRST , mmio + CTRL2); 
-	
+	writel((u32)XPHYANE|XPHYRST , mmio + CTRL2);
+
 	amd8111e_set_ext_phy(dev);
 
 	/* set control registers */
@@ -465,7 +465,7 @@ static int amd8111e_restart(struct net_device *dev)
 	writel( reg_val| XMTSP_128 | CACHE_ALIGN, mmio + CTRL1 );
 
 	/* enable interrupt */
-	writel( APINT5EN | APINT4EN | APINT3EN | APINT2EN | APINT1EN | 
+	writel( APINT5EN | APINT4EN | APINT3EN | APINT2EN | APINT1EN |
 		APINT0EN | MIIPDTINTEN | MCCIINTEN | MCCINTEN | MREINTEN |
 		SPNDINTEN | MPINTEN | SINTEN | STINTEN, mmio + INTEN0);
 
@@ -477,10 +477,10 @@ static int amd8111e_restart(struct net_device *dev)
 
 	writew((u32)NUM_TX_RING_DR, mmio + XMT_RING_LEN0);
 	writew((u16)NUM_RX_RING_DR, mmio + RCV_RING_LEN0);
-	
+
 	/* set default IPG to 96 */
 	writew((u32)DEFAULT_IPG,mmio+IPG);
-	writew((u32)(DEFAULT_IPG-IFS1_DELTA), mmio + IFS1); 
+	writew((u32)(DEFAULT_IPG-IFS1_DELTA), mmio + IFS1);
 
 	if(lp->options & OPTION_JUMBO_ENABLE){
 		writel((u32)VAL2|JUMBO, mmio + CMD3);
@@ -497,10 +497,10 @@ static int amd8111e_restart(struct net_device *dev)
 	writel((u32) VAL2|VSIZE|VL_TAG_DEL, mmio + CMD3);
 #endif
 	writel( VAL0 | APAD_XMT | REX_RTRY, mmio + CMD2 );
-	
+
 	/* Setting the MAC address to the device */
 	for(i = 0; i < ETH_ADDR_LEN; i++)
-		writeb( dev->dev_addr[i], mmio + PADR + i ); 
+		writeb( dev->dev_addr[i], mmio + PADR + i );
 
 	/* Enable interrupt coalesce */
 	if(lp->options & OPTION_INTR_COAL_ENABLE){
@@ -508,18 +508,18 @@ static int amd8111e_restart(struct net_device *dev)
 								dev->name);
 		amd8111e_set_coalesce(dev,ENABLE_COAL);
 	}
-	
+
 	/* set RUN bit to start the chip */
 	writel(VAL2 | RDMD0, mmio + CMD0);
 	writel(VAL0 | INTREN | RUN, mmio + CMD0);
-	
+
 	/* To avoid PCI posting bug */
 	readl(mmio+CMD0);
 	return 0;
 }
-/* 
-This function clears necessary the device registers. 
-*/	
+/*
+This function clears necessary the device registers.
+*/
 static void amd8111e_init_hw_default( struct amd8111e_priv* lp)
 {
 	unsigned int reg_val;
@@ -544,7 +544,7 @@ static void amd8111e_init_hw_default( struct amd8111e_priv* lp)
 
 	/* Clear CMD0  */
 	writel(CMD0_CLEAR,mmio + CMD0);
-	
+
 	/* Clear CMD2 */
 	writel(CMD2_CLEAR, mmio +CMD2);
 
@@ -594,7 +594,7 @@ static void amd8111e_init_hw_default( struct amd8111e_priv* lp)
 
 	/* SRAM_SIZE register */
 	reg_val = readl(mmio + SRAM_SIZE);
-	
+
 	if(lp->options & OPTION_JUMBO_ENABLE)
 		writel( VAL2|JUMBO, mmio + CMD3);
 #if AMD8111E_VLAN_TAG_USED
@@ -608,56 +608,56 @@ static void amd8111e_init_hw_default( struct amd8111e_priv* lp)
 
 }
 
-/* 
-This function disables the interrupt and clears all the pending 
+/*
+This function disables the interrupt and clears all the pending
 interrupts in INT0
  */
 static void amd8111e_disable_interrupt(struct amd8111e_priv* lp)
-{	
+{
 	u32 intr0;
 
 	/* Disable interrupt */
 	writel(INTREN, lp->mmio + CMD0);
-	
+
 	/* Clear INT0 */
 	intr0 = readl(lp->mmio + INT0);
 	writel(intr0, lp->mmio + INT0);
-	
+
 	/* To avoid PCI posting bug */
 	readl(lp->mmio + INT0);
 
 }
 
 /*
-This function stops the chip. 
+This function stops the chip.
 */
 static void amd8111e_stop_chip(struct amd8111e_priv* lp)
 {
 	writel(RUN, lp->mmio + CMD0);
-	
+
 	/* To avoid PCI posting bug */
 	readl(lp->mmio + CMD0);
 }
 
-/* 
+/*
 This function frees the  transmiter and receiver descriptor rings.
 */
 static void amd8111e_free_ring(struct amd8111e_priv* lp)
-{	
+{
 
 	/* Free transmit and receive skbs */
 	amd8111e_free_skbs(lp->amd8111e_net_dev);
 
 	/* Free transmit and receive descriptor rings */
 	if(lp->rx_ring){
-		pci_free_consistent(lp->pci_dev, 
+		pci_free_consistent(lp->pci_dev,
 			sizeof(struct amd8111e_rx_dr)*NUM_RX_RING_DR,
 			lp->rx_ring, lp->rx_ring_dma_addr);
 		lp->rx_ring = NULL;
 	}
-	
+
 	if(lp->tx_ring){
-		pci_free_consistent(lp->pci_dev, 
+		pci_free_consistent(lp->pci_dev,
 			sizeof(struct amd8111e_tx_dr)*NUM_TX_RING_DR,
 			lp->tx_ring, lp->tx_ring_dma_addr);
 
@@ -665,10 +665,10 @@ static void amd8111e_free_ring(struct amd8111e_priv* lp)
 	}
 
 }
-#if AMD8111E_VLAN_TAG_USED	
-/* 
+#if AMD8111E_VLAN_TAG_USED
+/*
 This is the receive indication function for packets with vlan tag.
-*/	
+*/
 static int amd8111e_vlan_rx(struct amd8111e_priv *lp, struct sk_buff *skb, u16 vlan_tag)
 {
 #ifdef CONFIG_AMD8111E_NAPI
@@ -680,7 +680,7 @@ static int amd8111e_vlan_rx(struct amd8111e_priv *lp, struct sk_buff *skb, u16 v
 #endif
 
 /*
-This function will free all the transmit skbs that are actually transmitted by the device. It will check the ownership of the skb before freeing the skb. 
+This function will free all the transmit skbs that are actually transmitted by the device. It will check the ownership of the skb before freeing the skb.
 */
 static int amd8111e_tx(struct net_device *dev)
 {
@@ -709,7 +709,7 @@ static int amd8111e_tx(struct net_device *dev)
 		lp->tx_complete_idx++;
 		/*COAL update tx coalescing parameters */
 		lp->coal_conf.tx_packets++;
-		lp->coal_conf.tx_bytes += lp->tx_ring[tx_index].buff_count;	
+		lp->coal_conf.tx_bytes += lp->tx_ring[tx_index].buff_count;
 
 		if (netif_queue_stopped(dev) &&
 			lp->tx_complete_idx > lp->tx_idx - NUM_TX_BUFFERS +2){
@@ -734,13 +734,13 @@ static int amd8111e_rx_poll(struct net_device *dev, int * budget)
 	int num_rx_pkt = 0;
 	/*int max_rx_pkt = NUM_RX_BUFFERS;*/
 	short pkt_len;
-#if AMD8111E_VLAN_TAG_USED		
+#if AMD8111E_VLAN_TAG_USED
 	short vtag;
 #endif
 	int rx_pkt_limit = dev->quota;
 	unsigned long flags;
-	
-	do{   
+
+	do{
 		/* process receive packets until we use the quota*/
 		/* If we own the next entry, it's a new packet. Send it up. */
 		while(1) {
@@ -748,11 +748,11 @@ static int amd8111e_rx_poll(struct net_device *dev, int * budget)
 			if (status & OWN_BIT)
 				break;
 
-			/* 
+			/*
 			 * There is a tricky error noted by John Murphy,
 			 * <murf@perftech.com> to Russ Nelson: Even with
-			 * full-sized * buffers it's possible for a  
-			 * jabber packet to use two buffers, with only 
+			 * full-sized * buffers it's possible for a
+			 * jabber packet to use two buffers, with only
 			 * the last correctly noting the error.
 			 */
 
@@ -769,9 +769,9 @@ static int amd8111e_rx_poll(struct net_device *dev, int * budget)
 			}
 			pkt_len = le16_to_cpu(lp->rx_ring[rx_index].msg_count) - 4;
 
-#if AMD8111E_VLAN_TAG_USED		
+#if AMD8111E_VLAN_TAG_USED
 			vtag = status & TT_MASK;
-			/*MAC will strip vlan tag*/ 
+			/*MAC will strip vlan tag*/
 			if(lp->vlgrp != NULL && vtag !=0)
 				min_pkt_len =MIN_PKT_LEN - 4;
 			else
@@ -786,13 +786,13 @@ static int amd8111e_rx_poll(struct net_device *dev, int * budget)
 			if(--rx_pkt_limit < 0)
 				goto rx_not_empty;
 			if(!(new_skb = dev_alloc_skb(lp->rx_buff_len))){
-				/* if allocation fail, 
+				/* if allocation fail,
 				   ignore that pkt and go to next one */
 				lp->rx_ring[rx_index].rx_flags &= RESET_RX_FLAGS;
 				lp->drv_rx_errors++;
 				goto err_next_pkt;
 			}
-		
+
 			skb_reserve(new_skb, 2);
 			skb = lp->rx_skbuff[rx_index];
 			pci_unmap_single(lp->pci_dev,lp->rx_dma_addr[rx_index],
@@ -805,10 +805,10 @@ static int amd8111e_rx_poll(struct net_device *dev, int * budget)
 								   new_skb->data,
 								   lp->rx_buff_len-2,
 								   PCI_DMA_FROMDEVICE);
-	
+
 			skb->protocol = eth_type_trans(skb, dev);
 
-#if AMD8111E_VLAN_TAG_USED		
+#if AMD8111E_VLAN_TAG_USED
 			if(lp->vlgrp != NULL && (vtag == TT_VLAN_TAGGED)){
 				amd8111e_vlan_rx(lp, skb,
 					 le16_to_cpu(lp->rx_ring[rx_index].tag_ctrl_info));
@@ -817,20 +817,20 @@ static int amd8111e_rx_poll(struct net_device *dev, int * budget)
 				netif_receive_skb(skb);
 			/*COAL update rx coalescing parameters*/
 			lp->coal_conf.rx_packets++;
-			lp->coal_conf.rx_bytes += pkt_len;	
+			lp->coal_conf.rx_bytes += pkt_len;
 			num_rx_pkt++;
 			dev->last_rx = jiffies;
-	
-		err_next_pkt:	
+
+		err_next_pkt:
 			lp->rx_ring[rx_index].buff_phy_addr
 				= cpu_to_le32(lp->rx_dma_addr[rx_index]);
-			lp->rx_ring[rx_index].buff_count = 
+			lp->rx_ring[rx_index].buff_count =
 				cpu_to_le16(lp->rx_buff_len-2);
 			wmb();
 			lp->rx_ring[rx_index].rx_flags |= cpu_to_le16(OWN_BIT);
 			rx_index = (++lp->rx_idx) & RX_RING_DR_MOD_MASK;
 		}
-		/* Check the interrupt status register for more packets in the 
+		/* Check the interrupt status register for more packets in the
 		   mean time. Process them since we have not used up our quota.*/
 
 		intr0 = readl(mmio + INT0);
@@ -852,13 +852,13 @@ static int amd8111e_rx_poll(struct net_device *dev, int * budget)
 
 rx_not_empty:
 	/* Do not call a netif_rx_complete */
-	dev->quota -= num_rx_pkt;	
+	dev->quota -= num_rx_pkt;
 	*budget -= num_rx_pkt;
 	return 1;
 }
 
 #else
-/* 
+/*
 This function will check the ownership of receive buffers and descriptors. It will indicate to kernel up to half the number of maximum receive buffers in the descriptor ring, in a single receive interrupt. It will also replenish the descriptors with new skbs.
 */
 static int amd8111e_rx(struct net_device *dev)
@@ -870,19 +870,19 @@ static int amd8111e_rx(struct net_device *dev)
 	int num_rx_pkt = 0;
 	int max_rx_pkt = NUM_RX_BUFFERS;
 	short pkt_len;
-#if AMD8111E_VLAN_TAG_USED		
+#if AMD8111E_VLAN_TAG_USED
 	short vtag;
 #endif
-	
+
 	/* If we own the next entry, it's a new packet. Send it up. */
 	while(++num_rx_pkt <= max_rx_pkt){
 		status = le16_to_cpu(lp->rx_ring[rx_index].rx_flags);
 		if(status & OWN_BIT)
 			return 0;
-	       
-		/* check if err summary bit is set */ 
+
+		/* check if err summary bit is set */
 		if(status & ERR_BIT){
-			/* 
+			/*
 			 * There is a tricky error noted by John Murphy,
 			 * <murf@perftech.com> to Russ Nelson: Even with full-sized
 			 * buffers it's possible for a jabber packet to use two
@@ -899,9 +899,9 @@ static int amd8111e_rx(struct net_device *dev)
 		}
 		pkt_len = le16_to_cpu(lp->rx_ring[rx_index].msg_count) - 4;
 
-#if AMD8111E_VLAN_TAG_USED		
+#if AMD8111E_VLAN_TAG_USED
 		vtag = status & TT_MASK;
-		/*MAC will strip vlan tag*/ 
+		/*MAC will strip vlan tag*/
 		if(lp->vlgrp != NULL && vtag !=0)
 			min_pkt_len =MIN_PKT_LEN - 4;
 		else
@@ -914,13 +914,13 @@ static int amd8111e_rx(struct net_device *dev)
 			goto err_next_pkt;
 		}
 		if(!(new_skb = dev_alloc_skb(lp->rx_buff_len))){
-			/* if allocation fail, 
+			/* if allocation fail,
 				ignore that pkt and go to next one */
 			lp->rx_ring[rx_index].rx_flags &= RESET_RX_FLAGS;
 			lp->drv_rx_errors++;
 			goto err_next_pkt;
 		}
-		
+
 		skb_reserve(new_skb, 2);
 		skb = lp->rx_skbuff[rx_index];
 		pci_unmap_single(lp->pci_dev,lp->rx_dma_addr[rx_index],
@@ -931,27 +931,27 @@ static int amd8111e_rx(struct net_device *dev)
 		new_skb->dev = dev;
 		lp->rx_dma_addr[rx_index] = pci_map_single(lp->pci_dev,
 			new_skb->data, lp->rx_buff_len-2,PCI_DMA_FROMDEVICE);
-	
+
 		skb->protocol = eth_type_trans(skb, dev);
 
-#if AMD8111E_VLAN_TAG_USED				
+#if AMD8111E_VLAN_TAG_USED
 		if(lp->vlgrp != NULL && (vtag == TT_VLAN_TAGGED)){
 			amd8111e_vlan_rx(lp, skb,
 				 le16_to_cpu(lp->rx_ring[rx_index].tag_ctrl_info));
 		} else
 #endif
-			
+
 			netif_rx (skb);
 			/*COAL update rx coalescing parameters*/
 			lp->coal_conf.rx_packets++;
-			lp->coal_conf.rx_bytes += pkt_len;	
+			lp->coal_conf.rx_bytes += pkt_len;
 
 			dev->last_rx = jiffies;
-	
+
 err_next_pkt:
 		lp->rx_ring[rx_index].buff_phy_addr
 			 = cpu_to_le32(lp->rx_dma_addr[rx_index]);
-		lp->rx_ring[rx_index].buff_count = 
+		lp->rx_ring[rx_index].buff_count =
 				cpu_to_le16(lp->rx_buff_len-2);
 		wmb();
 		lp->rx_ring[rx_index].rx_flags |= cpu_to_le16(OWN_BIT);
@@ -961,26 +961,26 @@ err_next_pkt:
 	return 0;
 }
 #endif /* CONFIG_AMD8111E_NAPI */
-/* 
+/*
 This function will indicate the link status to the kernel.
 */
 static int amd8111e_link_change(struct net_device* dev)
-{	
+{
 	struct amd8111e_priv *lp = netdev_priv(dev);
 	int status0,speed;
 
 	/* read the link change */
      	status0 = readl(lp->mmio + STAT0);
-	
+
 	if(status0 & LINK_STATS){
 		if(status0 & AUTONEG_COMPLETE)
 			lp->link_config.autoneg = AUTONEG_ENABLE;
-		else 
+		else
 			lp->link_config.autoneg = AUTONEG_DISABLE;
 
 		if(status0 & FULL_DPLX)
 			lp->link_config.duplex = DUPLEX_FULL;
-		else 
+		else
 			lp->link_config.duplex = DUPLEX_HALF;
 		speed = (status0 & SPEED_MASK) >> 7;
 		if(speed == PHY_SPEED_10)
@@ -989,22 +989,22 @@ static int amd8111e_link_change(struct net_device* dev)
 			lp->link_config.speed = SPEED_100;
 
 		printk(KERN_INFO "%s: Link is Up. Speed is %s Mbps %s Duplex\n",			dev->name,
-		       (lp->link_config.speed == SPEED_100) ? "100": "10", 
-		       (lp->link_config.duplex == DUPLEX_FULL)? "Full": "Half"); 
+		       (lp->link_config.speed == SPEED_100) ? "100": "10",
+		       (lp->link_config.duplex == DUPLEX_FULL)? "Full": "Half");
 		netif_carrier_on(dev);
 	}
-	else{	
+	else{
 		lp->link_config.speed = SPEED_INVALID;
 		lp->link_config.duplex = DUPLEX_INVALID;
 		lp->link_config.autoneg = AUTONEG_INVALID;
 		printk(KERN_INFO "%s: Link is Down.\n",dev->name);
 		netif_carrier_off(dev);
 	}
-		
+
 	return 0;
 }
 /*
-This function reads the mib counters. 	 
+This function reads the mib counters.
 */
 static int amd8111e_read_mib(void __iomem *mmio, u8 MIB_COUNTER)
 {
@@ -1025,7 +1025,7 @@ static int amd8111e_read_mib(void __iomem *mmio, u8 MIB_COUNTER)
 
 /*
 This function reads the mib registers and returns the hardware statistics. It  updates previous internal driver statistics with new values.
-*/ 
+*/
 static struct net_device_stats *amd8111e_get_stats(struct net_device * dev)
 {
 	struct amd8111e_priv *lp = netdev_priv(dev);
@@ -1033,9 +1033,9 @@ static struct net_device_stats *amd8111e_get_stats(struct net_device * dev)
 	unsigned long flags;
 	/* struct net_device_stats *prev_stats = &lp->prev_stats; */
 	struct net_device_stats* new_stats = &lp->stats;
-	
+
 	if(!lp->opened)
-		return &lp->stats;	
+		return &lp->stats;
 	spin_lock_irqsave (&lp->lock, flags);
 
 	/* stats.rx_packets */
@@ -1078,7 +1078,7 @@ static struct net_device_stats *amd8111e_get_stats(struct net_device * dev)
 	new_stats->collisions = amd8111e_read_mib(mmio, xmt_collisions);
 
 	/* stats.rx_length_errors*/
-	new_stats->rx_length_errors = 
+	new_stats->rx_length_errors =
 		amd8111e_read_mib(mmio, rcv_undersize_pkts)+
 		amd8111e_read_mib(mmio, rcv_oversize_pkts);
 
@@ -1099,11 +1099,11 @@ static struct net_device_stats *amd8111e_get_stats(struct net_device * dev)
 	new_stats->rx_missed_errors = amd8111e_read_mib(mmio, rcv_miss_pkts);
 
 	/* stats.tx_aborted_errors*/
-	new_stats->tx_aborted_errors = 
+	new_stats->tx_aborted_errors =
 		amd8111e_read_mib(mmio, xmt_excessive_collision);
 
 	/* stats.tx_carrier_errors*/
-	new_stats->tx_carrier_errors = 
+	new_stats->tx_carrier_errors =
 		amd8111e_read_mib(mmio, xmt_loss_carrier);
 
 	/* stats.tx_fifo_errors*/
@@ -1115,12 +1115,12 @@ static struct net_device_stats *amd8111e_get_stats(struct net_device * dev)
 
 	/* Reset the mibs for collecting new statistics */
 	/* writew(MIB_CLEAR, mmio + MIB_ADDR);*/
-		
+
 	spin_unlock_irqrestore (&lp->lock, flags);
 
 	return new_stats;
 }
-/* This function recalculate the interupt coalescing  mode on every interrupt 
+/* This function recalculate the interupt coalescing  mode on every interrupt
 according to the datarate and the packet rate.
 */
 static int amd8111e_calc_coalesce(struct net_device *dev)
@@ -1136,19 +1136,19 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 
 	tx_pkt_rate = coal_conf->tx_packets - coal_conf->tx_prev_packets;
 	coal_conf->tx_prev_packets =  coal_conf->tx_packets;
-	
+
 	tx_data_rate = coal_conf->tx_bytes - coal_conf->tx_prev_bytes;
 	coal_conf->tx_prev_bytes =  coal_conf->tx_bytes;
-	
+
 	rx_pkt_rate = coal_conf->rx_packets - coal_conf->rx_prev_packets;
 	coal_conf->rx_prev_packets =  coal_conf->rx_packets;
-	
+
 	rx_data_rate = coal_conf->rx_bytes - coal_conf->rx_prev_bytes;
 	coal_conf->rx_prev_bytes =  coal_conf->rx_bytes;
-	
+
 	if(rx_pkt_rate < 800){
 		if(coal_conf->rx_coal_type != NO_COALESCE){
-			
+
 			coal_conf->rx_timeout = 0x0;
 			coal_conf->rx_event_count = 0;
 			amd8111e_set_coalesce(dev,RX_INTR_COAL);
@@ -1156,11 +1156,11 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 		}
 	}
 	else{
-	
+
 		rx_pkt_size = rx_data_rate/rx_pkt_rate;
 		if (rx_pkt_size < 128){
 			if(coal_conf->rx_coal_type != NO_COALESCE){
-			
+
 				coal_conf->rx_timeout = 0;
 				coal_conf->rx_event_count = 0;
 				amd8111e_set_coalesce(dev,RX_INTR_COAL);
@@ -1169,7 +1169,7 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 
 		}
 		else if ( (rx_pkt_size >= 128) && (rx_pkt_size < 512) ){
-	
+
 			if(coal_conf->rx_coal_type !=  LOW_COALESCE){
 				coal_conf->rx_timeout = 1;
 				coal_conf->rx_event_count = 4;
@@ -1178,14 +1178,14 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 			}
 		}
 		else if ((rx_pkt_size >= 512) && (rx_pkt_size < 1024)){
-			
+
 			if(coal_conf->rx_coal_type !=  MEDIUM_COALESCE){
 				coal_conf->rx_timeout = 1;
 				coal_conf->rx_event_count = 4;
 				amd8111e_set_coalesce(dev,RX_INTR_COAL);
 				coal_conf->rx_coal_type = MEDIUM_COALESCE;
-			}		
-				
+			}
+
 		}
 		else if(rx_pkt_size >= 1024){
 			if(coal_conf->rx_coal_type !=  HIGH_COALESCE){
@@ -1193,13 +1193,13 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 				coal_conf->rx_event_count = 3;
 				amd8111e_set_coalesce(dev,RX_INTR_COAL);
 				coal_conf->rx_coal_type = HIGH_COALESCE;
-			}		
+			}
 		}
 	}
     	/* NOW FOR TX INTR COALESC */
 	if(tx_pkt_rate < 800){
 		if(coal_conf->tx_coal_type != NO_COALESCE){
-			
+
 			coal_conf->tx_timeout = 0x0;
 			coal_conf->tx_event_count = 0;
 			amd8111e_set_coalesce(dev,TX_INTR_COAL);
@@ -1207,12 +1207,12 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 		}
 	}
 	else{
-	
+
 		tx_pkt_size = tx_data_rate/tx_pkt_rate;
 		if (tx_pkt_size < 128){
-		
+
 			if(coal_conf->tx_coal_type != NO_COALESCE){
-			
+
 				coal_conf->tx_timeout = 0;
 				coal_conf->tx_event_count = 0;
 				amd8111e_set_coalesce(dev,TX_INTR_COAL);
@@ -1221,7 +1221,7 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 
 		}
 		else if ( (tx_pkt_size >= 128) && (tx_pkt_size < 512) ){
-	
+
 			if(coal_conf->tx_coal_type !=  LOW_COALESCE){
 				coal_conf->tx_timeout = 1;
 				coal_conf->tx_event_count = 2;
@@ -1231,14 +1231,14 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 			}
 		}
 		else if ((tx_pkt_size >= 512) && (tx_pkt_size < 1024)){
-			
+
 			if(coal_conf->tx_coal_type !=  MEDIUM_COALESCE){
 				coal_conf->tx_timeout = 2;
 				coal_conf->tx_event_count = 5;
 				amd8111e_set_coalesce(dev,TX_INTR_COAL);
 				coal_conf->tx_coal_type = MEDIUM_COALESCE;
-			}		
-				
+			}
+
 		}
 		else if(tx_pkt_size >= 1024){
 			if (tx_pkt_size >= 1024){
@@ -1247,7 +1247,7 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
 					coal_conf->tx_event_count = 8;
 					amd8111e_set_coalesce(dev,TX_INTR_COAL);
 					coal_conf->tx_coal_type = HIGH_COALESCE;
-				}		
+				}
 			}
 		}
 	}
@@ -1284,7 +1284,7 @@ static irqreturn_t amd8111e_interrupt(int irq, void *dev_id, struct pt_regs *reg
 		handled = 0;
 		goto err_no_interrupt;
 	}
-		 
+
 	/* Current driver processes 4 interrupts : RINT,TINT,LCINT,STINT */
 	writel(intr0, mmio + INT0);
 
@@ -1313,7 +1313,7 @@ static irqreturn_t amd8111e_interrupt(int irq, void *dev_id, struct pt_regs *reg
 	/* Check if  Transmit Interrupt has occurred. */
 	if(intr0 & TINT0)
 		amd8111e_tx(dev);
-		
+
 	/* Check if  Link Change Interrupt has occurred. */
 	if (intr0 & LCINT)
 		amd8111e_link_change(dev);
@@ -1324,21 +1324,21 @@ static irqreturn_t amd8111e_interrupt(int irq, void *dev_id, struct pt_regs *reg
 
 err_no_interrupt:
 	writel( VAL0 | INTREN,mmio + CMD0);
-	
+
 	spin_unlock(&lp->lock);
-	
+
 	return IRQ_RETVAL(handled);
 }
 
 #ifdef CONFIG_NET_POLL_CONTROLLER
 static void amd8111e_poll(struct net_device *dev)
-{ 
+{
 	unsigned long flags;
-	local_save_flags(flags); 
+	local_save_flags(flags);
 	local_irq_disable();
 	amd8111e_interrupt(0, dev, NULL);
-	local_irq_restore(flags); 
-} 
+	local_irq_restore(flags);
+}
 #endif
 
 
@@ -1349,35 +1349,35 @@ static int amd8111e_close(struct net_device * dev)
 {
 	struct amd8111e_priv *lp = netdev_priv(dev);
 	netif_stop_queue(dev);
-	
+
 	spin_lock_irq(&lp->lock);
-	
+
 	amd8111e_disable_interrupt(lp);
 	amd8111e_stop_chip(lp);
 	amd8111e_free_ring(lp);
-	
+
 	netif_carrier_off(lp->amd8111e_net_dev);
 
 	/* Delete ipg timer */
-	if(lp->options & OPTION_DYN_IPG_ENABLE)	        
+	if(lp->options & OPTION_DYN_IPG_ENABLE)
 		del_timer_sync(&lp->ipg_data.ipg_timer);
 
 	spin_unlock_irq(&lp->lock);
 	free_irq(dev->irq, dev);
-	
+
 	/* Update the statistics before closing */
 	amd8111e_get_stats(dev);
 	lp->opened = 0;
 	return 0;
 }
-/* This function opens new interface.It requests irq for the device, initializes the device,buffers and descriptors, and starts the device. 
+/* This function opens new interface.It requests irq for the device, initializes the device,buffers and descriptors, and starts the device.
 */
 static int amd8111e_open(struct net_device * dev )
 {
 	struct amd8111e_priv *lp = netdev_priv(dev);
 
 	if(dev->irq ==0 || request_irq(dev->irq, amd8111e_interrupt, IRQF_SHARED,
-					 dev->name, dev)) 
+					 dev->name, dev))
 		return -EAGAIN;
 
 	spin_lock_irq(&lp->lock);
@@ -1391,7 +1391,7 @@ static int amd8111e_open(struct net_device * dev )
 		return -ENOMEM;
 	}
 	/* Start ipg timer */
-	if(lp->options & OPTION_DYN_IPG_ENABLE){	        
+	if(lp->options & OPTION_DYN_IPG_ENABLE){
 		add_timer(&lp->ipg_data.ipg_timer);
 		printk(KERN_INFO "%s: Dynamic IPG Enabled.\n",dev->name);
 	}
@@ -1402,21 +1402,21 @@ static int amd8111e_open(struct net_device * dev )
 
 	netif_start_queue(dev);
 
-	return 0;		
+	return 0;
 }
-/* 
+/*
 This function checks if there is any transmit  descriptors available to queue more packet.
 */
 static int amd8111e_tx_queue_avail(struct amd8111e_priv* lp )
-{	
+{
 	int tx_index = lp->tx_idx & TX_BUFF_MOD_MASK;
 	if(lp->tx_skbuff[tx_index] != 0)
 		return -1;
 	else
 		return 0;
-	
+
 }
-/* 
+/*
 This function will queue the transmit packets to the descriptors and will trigger the send operation. It also initializes the transmit descriptors with buffer physical address, byte count, ownership to hardware etc.
 */
 
@@ -1437,9 +1437,9 @@ static int amd8111e_start_xmit(struct sk_buff *skb, struct net_device * dev)
 
 #if AMD8111E_VLAN_TAG_USED
 	if((lp->vlgrp != NULL) && vlan_tx_tag_present(skb)){
-		lp->tx_ring[tx_index].tag_ctrl_cmd |= 
-				cpu_to_le16(TCC_VLAN_INSERT);	
-		lp->tx_ring[tx_index].tag_ctrl_info = 
+		lp->tx_ring[tx_index].tag_ctrl_cmd |=
+				cpu_to_le16(TCC_VLAN_INSERT);
+		lp->tx_ring[tx_index].tag_ctrl_info =
 				cpu_to_le16(vlan_tx_tag_get(skb));
 
 	}
@@ -1510,14 +1510,14 @@ static int amd8111e_ether_crc(int len, char* mac_addr)
 			}
 			else
 				crc >>= 1;
-			
+
 			octet >>= 1;
 		}
-	}	
-	return crc; 
+	}
+	return crc;
 }
 /*
-This function sets promiscuos mode, all-multi mode or the multicast address 
+This function sets promiscuos mode, all-multi mode or the multicast address
 list to the device.
 */
 static void amd8111e_set_multicast_list(struct net_device *dev)
@@ -1527,7 +1527,6 @@ static void amd8111e_set_multicast_list(struct net_device *dev)
 	u32 mc_filter[2] ;
 	int i,bit_num;
 	if(dev->flags & IFF_PROMISC){
-		printk(KERN_INFO "%s: Setting  promiscuous mode.\n",dev->name);
 		writel( VAL2 | PROM, lp->mmio + CMD2);
 		return;
 	}
@@ -1559,7 +1558,7 @@ static void amd8111e_set_multicast_list(struct net_device *dev)
 		     i++, mc_ptr = mc_ptr->next) {
 		bit_num = ( amd8111e_ether_crc(ETH_ALEN,mc_ptr->dmi_addr)							 >> 26 ) & 0x3f;
 		mc_filter[bit_num >> 5] |= 1 << (bit_num & 31);
-	}	
+	}
 	amd8111e_writeq(*(u64*)mc_filter,lp->mmio+ LADRF);
 
 	/* To eliminate PCI posting bug */
@@ -1635,18 +1634,18 @@ static int amd8111e_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol_
 		return -EINVAL;
 	spin_lock_irq(&lp->lock);
 	if (wol_info->wolopts & WAKE_MAGIC)
-		lp->options |= 
+		lp->options |=
 			(OPTION_WOL_ENABLE | OPTION_WAKE_MAGIC_ENABLE);
 	else if(wol_info->wolopts & WAKE_PHY)
-		lp->options |= 
+		lp->options |=
 			(OPTION_WOL_ENABLE | OPTION_WAKE_PHY_ENABLE);
 	else
-		lp->options &= ~OPTION_WOL_ENABLE; 
+		lp->options &= ~OPTION_WOL_ENABLE;
 	spin_unlock_irq(&lp->lock);
 	return 0;
 }
 
-static struct ethtool_ops ops = {
+static const struct ethtool_ops ops = {
 	.get_drvinfo = amd8111e_get_drvinfo,
 	.get_regs_len = amd8111e_get_regs_len,
 	.get_regs = amd8111e_get_regs,
@@ -1659,9 +1658,9 @@ static struct ethtool_ops ops = {
 };
 
 /*
-This function handles all the  ethtool ioctls. It gives driver info, gets/sets driver speed, gets memory mapped register values, forces auto negotiation, sets/gets WOL options for ethtool application. 
+This function handles all the  ethtool ioctls. It gives driver info, gets/sets driver speed, gets memory mapped register values, forces auto negotiation, sets/gets WOL options for ethtool application.
 */
-	
+
 static int amd8111e_ioctl(struct net_device * dev , struct ifreq *ifr, int cmd)
 {
 	struct mii_ioctl_data *data = if_mii(ifr);
@@ -1677,7 +1676,7 @@ static int amd8111e_ioctl(struct net_device * dev , struct ifreq *ifr, int cmd)
 		data->phy_id = lp->ext_phy_addr;
 
 	/* fallthru */
-	case SIOCGMIIREG: 
+	case SIOCGMIIREG:
 
 		spin_lock_irq(&lp->lock);
 		err = amd8111e_read_phy(lp, data->phy_id,
@@ -1712,16 +1711,16 @@ static int amd8111e_set_mac_address(struct net_device *dev, void *p)
 	spin_lock_irq(&lp->lock);
 	/* Setting the MAC address to the device */
 	for(i = 0; i < ETH_ADDR_LEN; i++)
-		writeb( dev->dev_addr[i], lp->mmio + PADR + i ); 
-		
+		writeb( dev->dev_addr[i], lp->mmio + PADR + i );
+
 	spin_unlock_irq(&lp->lock);
 
 	return 0;
 }
 
-/* 
+/*
 This function changes the mtu of the device. It restarts the device  to initialize the descriptor with new receive buffers.
-*/  
+*/
 static int amd8111e_change_mtu(struct net_device *dev, int new_mtu)
 {
 	struct amd8111e_priv *lp = netdev_priv(dev);
@@ -1732,7 +1731,7 @@ static int amd8111e_change_mtu(struct net_device *dev, int new_mtu)
 
 	if (!netif_running(dev)) {
 		/* new_mtu will be used
-		   when device starts netxt time */ 
+		   when device starts netxt time */
 		dev->mtu = new_mtu;
 		return 0;
 	}
@@ -1759,7 +1758,7 @@ static void amd8111e_vlan_rx_register(struct net_device *dev, struct vlan_group
 	lp->vlgrp = grp;
 	spin_unlock_irq(&lp->lock);
 }
-	
+
 static void amd8111e_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
 {
 	struct amd8111e_priv *lp = netdev_priv(dev);
@@ -1784,11 +1783,11 @@ static int amd8111e_enable_link_change(struct amd8111e_priv* lp)
 
 	/* Adapter is already stoped/suspended/interrupt-disabled */
 	writel(VAL0|LCMODE_SW,lp->mmio + CMD7);
-	
+
 	/* To eliminate PCI posting bug */
 	readl(lp->mmio + CMD7);
 	return 0;
-}	
+}
 /* This function is called when a packet transmission fails to complete within a  resonable period, on the assumption that an interrupts have been failed or the  interface is locked up. This function will reinitialize the hardware */
 
 static void amd8111e_tx_timeout(struct net_device *dev)
@@ -1805,10 +1804,10 @@ static void amd8111e_tx_timeout(struct net_device *dev)
 		netif_wake_queue(dev);
 }
 static int amd8111e_suspend(struct pci_dev *pci_dev, pm_message_t state)
-{	
+{
 	struct net_device *dev = pci_get_drvdata(pci_dev);
 	struct amd8111e_priv *lp = netdev_priv(dev);
-	
+
 	if (!netif_running(dev))
 		return 0;
 
@@ -1818,10 +1817,10 @@ static int amd8111e_suspend(struct pci_dev *pci_dev, pm_message_t state)
 	spin_unlock_irq(&lp->lock);
 
 	netif_device_detach(dev);
-	
+
 	/* stop chip */
 	spin_lock_irq(&lp->lock);
-	if(lp->options & OPTION_DYN_IPG_ENABLE)	        
+	if(lp->options & OPTION_DYN_IPG_ENABLE)
 		del_timer_sync(&lp->ipg_data.ipg_timer);
 	amd8111e_stop_chip(lp);
 	spin_unlock_irq(&lp->lock);
@@ -1829,19 +1828,19 @@ static int amd8111e_suspend(struct pci_dev *pci_dev, pm_message_t state)
 	if(lp->options & OPTION_WOL_ENABLE){
 		 /* enable wol */
 		if(lp->options & OPTION_WAKE_MAGIC_ENABLE)
-			amd8111e_enable_magicpkt(lp);	
+			amd8111e_enable_magicpkt(lp);
 		if(lp->options & OPTION_WAKE_PHY_ENABLE)
-			amd8111e_enable_link_change(lp);	
-		
+			amd8111e_enable_link_change(lp);
+
 		pci_enable_wake(pci_dev, PCI_D3hot, 1);
 		pci_enable_wake(pci_dev, PCI_D3cold, 1);
 
 	}
-	else{		
+	else{
 		pci_enable_wake(pci_dev, PCI_D3hot, 0);
 		pci_enable_wake(pci_dev, PCI_D3cold, 0);
 	}
-	
+
 	pci_save_state(pci_dev);
 	pci_set_power_state(pci_dev, PCI_D3hot);
 
@@ -1851,7 +1850,7 @@ static int amd8111e_resume(struct pci_dev *pci_dev)
 {
 	struct net_device *dev = pci_get_drvdata(pci_dev);
 	struct amd8111e_priv *lp = netdev_priv(dev);
-	
+
 	if (!netif_running(dev))
 		return 0;
 
@@ -1866,8 +1865,8 @@ static int amd8111e_resume(struct pci_dev *pci_dev)
 	spin_lock_irq(&lp->lock);
 	amd8111e_restart(dev);
 	/* Restart ipg timer */
-	if(lp->options & OPTION_DYN_IPG_ENABLE)	        
-		mod_timer(&lp->ipg_data.ipg_timer, 
+	if(lp->options & OPTION_DYN_IPG_ENABLE)
+		mod_timer(&lp->ipg_data.ipg_timer,
 				jiffies + IPG_CONVERGE_JIFFIES);
 	spin_unlock_irq(&lp->lock);
 
@@ -1895,16 +1894,16 @@ static void amd8111e_config_ipg(struct net_device* dev)
 	unsigned int prev_col_cnt = ipg_data->col_cnt;
 	unsigned int total_col_cnt;
 	unsigned int tmp_ipg;
-	
+
 	if(lp->link_config.duplex == DUPLEX_FULL){
 		ipg_data->ipg = DEFAULT_IPG;
 		return;
 	}
 
 	if(ipg_data->ipg_state == SSTATE){
-		
+
 		if(ipg_data->timer_tick == IPG_STABLE_TIME){
-			
+
 			ipg_data->timer_tick = 0;
 			ipg_data->ipg = MIN_IPG - IPG_STEP;
 			ipg_data->current_ipg = MIN_IPG;
@@ -1916,15 +1915,15 @@ static void amd8111e_config_ipg(struct net_device* dev)
 	}
 
 	if(ipg_data->ipg_state == CSTATE){
-		
+
 		/* Get the current collision count */
 
-		total_col_cnt = ipg_data->col_cnt = 
+		total_col_cnt = ipg_data->col_cnt =
 				amd8111e_read_mib(mmio, xmt_collisions);
 
-		if ((total_col_cnt - prev_col_cnt) < 
+		if ((total_col_cnt - prev_col_cnt) <
 				(ipg_data->diff_col_cnt)){
-			
+
 			ipg_data->diff_col_cnt =
 				total_col_cnt - prev_col_cnt ;
 
@@ -1939,8 +1938,8 @@ static void amd8111e_config_ipg(struct net_device* dev)
 			tmp_ipg = ipg_data->ipg;
 			ipg_data->ipg_state = SSTATE;
 		}
-		writew((u32)tmp_ipg, mmio + IPG); 
-		writew((u32)(tmp_ipg - IFS1_DELTA), mmio + IFS1); 
+		writew((u32)tmp_ipg, mmio + IPG);
+		writew((u32)(tmp_ipg - IFS1_DELTA), mmio + IFS1);
 	}
 	 mod_timer(&lp->ipg_data.ipg_timer, jiffies + IPG_CONVERGE_JIFFIES);
 	return;
@@ -2011,7 +2010,7 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
 			"exiting.\n");
 		goto err_free_reg;
 	}
-	
+
 	reg_addr = pci_resource_start(pdev, 0);
 	reg_len = pci_resource_len(pdev, 0);
 
@@ -2029,8 +2028,8 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
 	dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX ;
 	dev->vlan_rx_register =amd8111e_vlan_rx_register;
 	dev->vlan_rx_kill_vid = amd8111e_vlan_rx_kill_vid;
-#endif	
-	
+#endif
+
 	lp = netdev_priv(dev);
 	lp->pci_dev = pdev;
 	lp->amd8111e_net_dev = dev;
@@ -2045,17 +2044,17 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
 		err = -ENOMEM;
 		goto err_free_dev;
 	}
-	
+
 	/* Initializing MAC address */
 	for(i = 0; i < ETH_ADDR_LEN; i++)
 			dev->dev_addr[i] =readb(lp->mmio + PADR + i);
-	
+
 	/* Setting user defined parametrs */
 	lp->ext_phy_option = speed_duplex[card_idx];
 	if(coalesce[card_idx])
-		lp->options |= OPTION_INTR_COAL_ENABLE;		
+		lp->options |= OPTION_INTR_COAL_ENABLE;
 	if(dynamic_ipg[card_idx++])
-		lp->options |= OPTION_DYN_IPG_ENABLE;	        	
+		lp->options |= OPTION_DYN_IPG_ENABLE;
 
 	/* Initialize driver entry points */
 	dev->open = amd8111e_open;
@@ -2068,21 +2067,21 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
 	dev->change_mtu = amd8111e_change_mtu;
 	SET_ETHTOOL_OPS(dev, &ops);
 	dev->irq =pdev->irq;
-	dev->tx_timeout = amd8111e_tx_timeout; 
-	dev->watchdog_timeo = AMD8111E_TX_TIMEOUT; 
+	dev->tx_timeout = amd8111e_tx_timeout;
+	dev->watchdog_timeo = AMD8111E_TX_TIMEOUT;
 #ifdef CONFIG_AMD8111E_NAPI
 	dev->poll = amd8111e_rx_poll;
 	dev->weight = 32;
 #endif
 #ifdef CONFIG_NET_POLL_CONTROLLER
-	dev->poll_controller = amd8111e_poll; 
+	dev->poll_controller = amd8111e_poll;
 #endif
 
 #if AMD8111E_VLAN_TAG_USED
 	dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
 	dev->vlan_rx_register =amd8111e_vlan_rx_register;
 	dev->vlan_rx_kill_vid = amd8111e_vlan_rx_kill_vid;
-#endif	
+#endif
 	/* Probe the external PHY */
 	amd8111e_probe_ext_phy(dev);
 
@@ -2104,13 +2103,13 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
 	}
 
 	pci_set_drvdata(pdev, dev);
-	
+
 	/* Initialize software ipg timer */
-	if(lp->options & OPTION_DYN_IPG_ENABLE){	        
+	if(lp->options & OPTION_DYN_IPG_ENABLE){
 		init_timer(&lp->ipg_data.ipg_timer);
 		lp->ipg_data.ipg_timer.data = (unsigned long) dev;
 		lp->ipg_data.ipg_timer.function = (void *)&amd8111e_config_ipg;
-		lp->ipg_data.ipg_timer.expires = jiffies + 
+		lp->ipg_data.ipg_timer.expires = jiffies +
 						 IPG_CONVERGE_JIFFIES;
 		lp->ipg_data.ipg = DEFAULT_IPG;
 		lp->ipg_data.ipg_state = CSTATE;
@@ -2123,7 +2122,7 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
     	printk(KERN_INFO "%s: [ Rev %x ] PCI 10/100BaseT Ethernet ",							dev->name, chip_version);
     	for (i = 0; i < 6; i++)
 		printk("%2.2x%c",dev->dev_addr[i],i == 5 ? ' ' : ':');
-    	printk( "\n");	
+    	printk( "\n");
 	if (lp->ext_phy_id)
 		printk(KERN_INFO "%s: Found MII PHY ID 0x%08x at address 0x%02x\n",
 		       dev->name, lp->ext_phy_id, lp->ext_phy_addr);
@@ -2158,7 +2157,7 @@ static struct pci_driver amd8111e_driver = {
 
 static int __init amd8111e_init(void)
 {
-	return pci_module_init(&amd8111e_driver);
+	return pci_register_driver(&amd8111e_driver);
 }
 
 static void __exit amd8111e_cleanup(void)

+ 51 - 51
drivers/net/amd8111e.h

@@ -1,6 +1,6 @@
 /*
- * Advanced  Micro Devices Inc. AMD8111E Linux Network Driver 
- * Copyright (C) 2003 Advanced Micro Devices 
+ * Advanced  Micro Devices Inc. AMD8111E Linux Network Driver
+ * Copyright (C) 2003 Advanced Micro Devices
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  * USA
 
 Module Name:
@@ -22,11 +22,11 @@ Module Name:
     amd8111e.h
 
 Abstract:
-	
- 	 AMD8111 based 10/100 Ethernet Controller driver definitions. 
+
+ 	 AMD8111 based 10/100 Ethernet Controller driver definitions.
 
 Environment:
-    
+
 	Kernel Mode
 
 Revision History:
@@ -40,7 +40,7 @@ Revision History:
 
 /* Command style register access
 
-Registers CMD0, CMD2, CMD3,CMD7 and INTEN0 uses a write access technique called command style access. It allows the write to selected bits of this register without altering the bits that are not selected. Command style registers are divided into 4 bytes that can be written independently. Higher order bit of each byte is the  value bit that specifies the value that will be written into the selected bits of register. 
+Registers CMD0, CMD2, CMD3,CMD7 and INTEN0 uses a write access technique called command style access. It allows the write to selected bits of this register without altering the bits that are not selected. Command style registers are divided into 4 bytes that can be written independently. Higher order bit of each byte is the  value bit that specifies the value that will be written into the selected bits of register.
 
 eg., if the value 10011010b is written into the least significant byte of a command style register, bits 1,3 and 4 of the register will be set to 1, and the other bits will not be altered. If the value 00011010b is written into the same byte, bits 1,3 and 4 will be cleared to 0 and the other bits will not be altered.
 
@@ -122,8 +122,8 @@ typedef enum {
 	ASF_INIT_DONE		= (1 << 1),
 	ASF_INIT_PRESENT	= (1 << 0),
 
-}STAT_ASF_BITS; 
-   
+}STAT_ASF_BITS;
+
 typedef enum {
 
 	MIB_CMD_ACTIVE		= (1 << 15 ),
@@ -135,7 +135,7 @@ typedef enum {
 
 
 typedef enum {
-	
+
 	PMAT_DET		= (1 << 12),
 	MP_DET		        = (1 << 11),
 	LC_DET			= (1 << 10),
@@ -157,7 +157,7 @@ typedef enum {
 typedef enum {
 
 	INTR			= (1 << 31),
-	PCSINT			= (1 << 28), 
+	PCSINT			= (1 << 28),
 	LCINT			= (1 << 27),
 	APINT5			= (1 << 26),
 	APINT4			= (1 << 25),
@@ -221,7 +221,7 @@ typedef enum {
 
 	INTEN0_CLEAR 		= 0x1F7F7F1F, /* Command style register */
 
-}INTEN0_BITS;		
+}INTEN0_BITS;
 
 typedef enum {
 	/* VAL2 */
@@ -240,7 +240,7 @@ typedef enum {
 	INTREN			= (1 << 1),
 	RUN			= (1 << 0),
 
-	CMD0_CLEAR 		= 0x000F0F7F,   /* Command style register */	
+	CMD0_CLEAR 		= 0x000F0F7F,   /* Command style register */
 
 }CMD0_BITS;
 
@@ -279,20 +279,20 @@ typedef enum {
 	ASF_INIT_DONE_ALIAS	= (1 << 29),
 	/* VAL2 */
 	JUMBO			= (1 << 21),
-	VSIZE			= (1 << 20),	
+	VSIZE			= (1 << 20),
 	VLONLY			= (1 << 19),
-	VL_TAG_DEL		= (1 << 18),	
+	VL_TAG_DEL		= (1 << 18),
 	/* VAL1 */
-	EN_PMGR			= (1 << 14),			
+	EN_PMGR			= (1 << 14),
 	INTLEVEL		= (1 << 13),
-	FORCE_FULL_DUPLEX	= (1 << 12),	
-	FORCE_LINK_STATUS	= (1 << 11),	
-	APEP			= (1 << 10),	
-	MPPLBA			= (1 << 9),	
+	FORCE_FULL_DUPLEX	= (1 << 12),
+	FORCE_LINK_STATUS	= (1 << 11),
+	APEP			= (1 << 10),
+	MPPLBA			= (1 << 9),
 	/* VAL0 */
-	RESET_PHY_PULSE		= (1 << 2),	
-	RESET_PHY		= (1 << 1),	
-	PHY_RST_POL		= (1 << 0),	
+	RESET_PHY_PULSE		= (1 << 2),
+	RESET_PHY		= (1 << 1),
+	PHY_RST_POL		= (1 << 0),
 
 }CMD3_BITS;
 
@@ -314,7 +314,7 @@ typedef enum {
 
 	RESET_PHY_WIDTH		= (0xF << 16) | (0xF<< 20), /* 0x00FF0000 */
 	XMTSP_MASK		= (1 << 9) | (1 << 8),	/* 9:8 */
-	XMTSP_128		= (1 << 9),	/* 9 */	
+	XMTSP_128		= (1 << 9),	/* 9 */
 	XMTSP_64		= (1 << 8),
 	CACHE_ALIGN		= (1 << 4),
 	BURST_LIMIT_MASK	= (0xF << 0 ),
@@ -445,7 +445,7 @@ typedef enum {
 	DLY_INT_B_T1		= (1 << 25),
 	DLY_INT_B_T0		= ( 1 << 24),
 	EVENT_COUNT_B		= (0xF << 16) | (0x1 << 20),/* 20:16 */
-	MAX_DELAY_TIME_B	= (0xF << 0) | (0xF << 4) | (1 << 8)| 
+	MAX_DELAY_TIME_B	= (0xF << 0) | (0xF << 4) | (1 << 8)|
 				  (1 << 9) | (1 << 10),	/* 10:0 */
 }DLY_INT_B_BITS;
 
@@ -569,20 +569,20 @@ typedef enum {
 #define MAX_UNITS			8 /* Maximum number of devices possible */
 
 #define NUM_TX_BUFFERS			32 /* Number of transmit buffers */
-#define NUM_RX_BUFFERS			32 /* Number of receive buffers */	
+#define NUM_RX_BUFFERS			32 /* Number of receive buffers */
 
 #define TX_BUFF_MOD_MASK         	31 /* (NUM_TX_BUFFERS -1) */
 #define RX_BUFF_MOD_MASK         	31 /* (NUM_RX_BUFFERS -1) */
 
-#define NUM_TX_RING_DR			32  
-#define NUM_RX_RING_DR			32 
+#define NUM_TX_RING_DR			32
+#define NUM_RX_RING_DR			32
 
 #define TX_RING_DR_MOD_MASK         	31 /* (NUM_TX_RING_DR -1) */
 #define RX_RING_DR_MOD_MASK         	31 /* (NUM_RX_RING_DR -1) */
 
-#define MAX_FILTER_SIZE			64 /* Maximum multicast address */ 
-#define AMD8111E_MIN_MTU	 	60 	
-#define AMD8111E_MAX_MTU		9000			
+#define MAX_FILTER_SIZE			64 /* Maximum multicast address */
+#define AMD8111E_MIN_MTU	 	60
+#define AMD8111E_MAX_MTU		9000
 
 #define PKT_BUFF_SZ			1536
 #define MIN_PKT_LEN			60
@@ -591,7 +591,7 @@ typedef enum {
 #define  AMD8111E_TX_TIMEOUT		(3 * HZ)/* 3 sec */
 #define SOFT_TIMER_FREQ 		0xBEBC  /* 0.5 sec */
 #define DELAY_TIMER_CONV		50    /* msec to 10 usec conversion.
-						 Only 500 usec resolution */ 						 
+						 Only 500 usec resolution */
 #define OPTION_VLAN_ENABLE		0x0001
 #define OPTION_JUMBO_ENABLE		0x0002
 #define OPTION_MULTICAST_ENABLE		0x0004
@@ -611,12 +611,12 @@ typedef enum {
 #define	MIN_IPG	96
 #define	MAX_IPG	255
 #define IPG_STEP	16
-#define CSTATE  1 
-#define SSTATE  2 
+#define CSTATE  1
+#define SSTATE  2
 
 /* Assume contoller gets data 10 times the maximum processing time */
-#define  REPEAT_CNT			10; 
-     
+#define  REPEAT_CNT			10;
+
 /* amd8111e decriptor flag definitions */
 typedef enum {
 
@@ -649,7 +649,7 @@ typedef enum {
 #define TCC_MASK		0x0003
 
 /* driver ioctl parameters */
-#define AMD8111E_REG_DUMP_LEN	 13*sizeof(u32) 
+#define AMD8111E_REG_DUMP_LEN	 13*sizeof(u32)
 
 /* crc generator constants */
 #define CRC32 0xedb88320
@@ -670,15 +670,15 @@ struct amd8111e_tx_dr{
 	u32 buff_phy_addr;
 
 	u32 reserved;
-}; 
+};
 
 struct amd8111e_rx_dr{
-	
+
 	u32 reserved;
 
 	u16 msg_count; /* Received message len */
 
-	u16 tag_ctrl_info; 
+	u16 tag_ctrl_info;
 
 	u16 buff_count;  /* Len of the buffer pointed by descriptor. */
 
@@ -692,7 +692,7 @@ struct amd8111e_link_config{
 #define SPEED_INVALID		0xffff
 #define DUPLEX_INVALID		0xff
 #define AUTONEG_INVALID		0xff
-	
+
 	unsigned long			orig_phy_option;
 	u16				speed;
 	u8				duplex;
@@ -709,7 +709,7 @@ enum coal_type{
 
 };
 
-enum coal_mode{ 
+enum coal_mode{
        	RX_INTR_COAL,
 	TX_INTR_COAL,
 	DISABLE_COAL,
@@ -727,7 +727,7 @@ struct amd8111e_coalesce_conf{
 	unsigned long rx_bytes;
 	unsigned long rx_prev_bytes;
 	unsigned int rx_coal_type;
-	
+
 	unsigned int tx_timeout;
 	unsigned int tx_event_count;
 	unsigned long tx_packets;
@@ -738,7 +738,7 @@ struct amd8111e_coalesce_conf{
 
 };
 struct ipg_info{
-	
+
 	unsigned int ipg_state;
 	unsigned int ipg;
 	unsigned int current_ipg;
@@ -750,7 +750,7 @@ struct ipg_info{
 };
 
 struct amd8111e_priv{
-	
+
 	struct amd8111e_tx_dr*  tx_ring;
 	struct amd8111e_rx_dr* rx_ring;
 	dma_addr_t tx_ring_dma_addr;	/* tx descriptor ring base address */
@@ -766,7 +766,7 @@ struct amd8111e_priv{
 	dma_addr_t rx_dma_addr[NUM_RX_BUFFERS];
 	/* Reg memory mapped address */
 	void __iomem *mmio;
-	
+
 	spinlock_t lock;	/* Guard lock */
 	unsigned long rx_idx, tx_idx;	/* The next free ring entry */
 	unsigned long tx_complete_idx;
@@ -778,7 +778,7 @@ struct amd8111e_priv{
 	unsigned long ext_phy_option;
 	int ext_phy_addr;
 	u32 ext_phy_id;
-	
+
 	struct amd8111e_link_config link_config;
 	int pm_cap;
 
@@ -787,22 +787,22 @@ struct amd8111e_priv{
 	struct mii_if_info mii_if;
 #if AMD8111E_VLAN_TAG_USED
 	struct vlan_group		*vlgrp;
-#endif	
+#endif
 	char opened;
 	struct net_device_stats stats;
 	unsigned int drv_rx_errors;
 	struct dev_mc_list* mc_list;
 	struct amd8111e_coalesce_conf coal_conf;
 
-	struct ipg_info  ipg_data;	
-	
+	struct ipg_info  ipg_data;
+
 };
 
 /* kernel provided writeq does not write 64 bits into the amd8111e device register instead writes only higher 32bits data into lower 32bits of the register.
 BUG? */
 #define  amd8111e_writeq(_UlData,_memMap)   \
 		writel(*(u32*)(&_UlData), _memMap);	\
-		writel(*(u32*)((u8*)(&_UlData)+4), _memMap+4)	
+		writel(*(u32*)((u8*)(&_UlData)+4), _memMap+4)
 
 /* maps the external speed options to internal value */
 typedef enum {

+ 5 - 5
drivers/net/apne.c

@@ -132,9 +132,9 @@ struct net_device * __init apne_probe(int unit)
 
 	if ( !(AMIGAHW_PRESENT(PCMCIA)) )
 		return ERR_PTR(-ENODEV);
-                                
+
 	printk("Looking for PCMCIA ethernet card : ");
-                                        
+
 	/* check if a card is inserted */
 	if (!(PCMCIA_INSERTED)) {
 		printk("NO PCMCIA card inserted\n");
@@ -205,7 +205,7 @@ static int __init apne_probe1(struct net_device *dev, int ioaddr)
     int neX000, ctron;
 #endif
     static unsigned version_printed;
- 
+
     if (ei_debug  &&  version_printed++ == 0)
 	printk(version);
 
@@ -261,13 +261,13 @@ static int __init apne_probe1(struct net_device *dev, int ioaddr)
 
     /*	At this point, wordlength *only* tells us if the SA_prom is doubled
 	up or not because some broken PCI cards don't respect the byte-wide
-	request in program_seq above, and hence don't have doubled up values. 
+	request in program_seq above, and hence don't have doubled up values.
 	These broken cards would otherwise be detected as an ne1000.  */
 
     if (wordlength == 2)
 	for (i = 0; i < 16; i++)
 		SA_prom[i] = SA_prom[i+i];
-    
+
     if (wordlength == 2) {
 	/* We must set the 8390 for word mode. */
 	outb(0x49, ioaddr + NE_EN0_DCFG);

+ 1 - 1
drivers/net/arcnet/com20020-pci.c

@@ -178,7 +178,7 @@ static struct pci_driver com20020pci_driver = {
 static int __init com20020pci_init(void)
 {
 	BUGLVL(D_NORMAL) printk(VERSION);
-	return pci_module_init(&com20020pci_driver);
+	return pci_register_driver(&com20020pci_driver);
 }
 
 static void __exit com20020pci_cleanup(void)

+ 0 - 2
drivers/net/ariadne.c

@@ -825,8 +825,6 @@ static void set_multicast_list(struct net_device *dev)
     ariadne_init_ring(dev);
 
     if (dev->flags & IFF_PROMISC) {
-	/* Log any net taps. */
-	printk(KERN_INFO "%s: Promiscuous mode enabled.\n", dev->name);
 	lance->RAP = CSR15;		/* Mode Register */
 	lance->RDP = PROM;		/* Set promiscuous mode */
     } else {

+ 7 - 0
drivers/net/arm/Kconfig

@@ -39,3 +39,10 @@ config ARM_AT91_ETHER
 	help
 	  If you wish to compile a kernel for the AT91RM9200 and enable
 	  ethernet support, then you should always answer Y to this.
+
+config EP93XX_ETH
+	tristate "EP93xx Ethernet support"
+	depends on NET_ETHERNET && ARM && ARCH_EP93XX
+	help
+	  This is a driver for the ethernet hardware included in EP93xx CPUs.
+	  Say Y if you are building a kernel for EP93xx based devices.

+ 1 - 0
drivers/net/arm/Makefile

@@ -8,3 +8,4 @@ obj-$(CONFIG_ARM_ETHERH)	+= etherh.o
 obj-$(CONFIG_ARM_ETHER3)	+= ether3.o
 obj-$(CONFIG_ARM_ETHER1)	+= ether1.o
 obj-$(CONFIG_ARM_AT91_ETHER)	+= at91_ether.o
+obj-$(CONFIG_EP93XX_ETH)	+= ep93xx_eth.o

+ 1 - 1
drivers/net/arm/at91_ether.c

@@ -648,7 +648,7 @@ static void at91ether_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo
 	strlcpy(info->bus_info, dev->class_dev.dev->bus_id, sizeof(info->bus_info));
 }
 
-static struct ethtool_ops at91ether_ethtool_ops = {
+static const struct ethtool_ops at91ether_ethtool_ops = {
 	.get_settings	= at91ether_get_settings,
 	.set_settings	= at91ether_set_settings,
 	.get_drvinfo	= at91ether_get_drvinfo,

+ 944 - 0
drivers/net/arm/ep93xx_eth.c

@@ -0,0 +1,944 @@
+/*
+ * EP93xx ethernet network device driver
+ * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
+ * Dedicated to Marija Kulikova.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <linux/config.h>
+#include <linux/dma-mapping.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/netdevice.h>
+#include <linux/mii.h>
+#include <linux/etherdevice.h>
+#include <linux/ethtool.h>
+#include <linux/init.h>
+#include <linux/moduleparam.h>
+#include <linux/platform_device.h>
+#include <linux/delay.h>
+#include <asm/arch/ep93xx-regs.h>
+#include <asm/arch/platform.h>
+#include <asm/io.h>
+
+#define DRV_MODULE_NAME		"ep93xx-eth"
+#define DRV_MODULE_VERSION	"0.1"
+
+#define RX_QUEUE_ENTRIES	64
+#define TX_QUEUE_ENTRIES	8
+
+#define MAX_PKT_SIZE		2044
+#define PKT_BUF_SIZE		2048
+
+#define REG_RXCTL		0x0000
+#define  REG_RXCTL_DEFAULT	0x00073800
+#define REG_TXCTL		0x0004
+#define  REG_TXCTL_ENABLE	0x00000001
+#define REG_MIICMD		0x0010
+#define  REG_MIICMD_READ	0x00008000
+#define  REG_MIICMD_WRITE	0x00004000
+#define REG_MIIDATA		0x0014
+#define REG_MIISTS		0x0018
+#define  REG_MIISTS_BUSY	0x00000001
+#define REG_SELFCTL		0x0020
+#define  REG_SELFCTL_RESET	0x00000001
+#define REG_INTEN		0x0024
+#define  REG_INTEN_TX		0x00000008
+#define  REG_INTEN_RX		0x00000007
+#define REG_INTSTSP		0x0028
+#define  REG_INTSTS_TX		0x00000008
+#define  REG_INTSTS_RX		0x00000004
+#define REG_INTSTSC		0x002c
+#define REG_AFP			0x004c
+#define REG_INDAD0		0x0050
+#define REG_INDAD1		0x0051
+#define REG_INDAD2		0x0052
+#define REG_INDAD3		0x0053
+#define REG_INDAD4		0x0054
+#define REG_INDAD5		0x0055
+#define REG_GIINTMSK		0x0064
+#define  REG_GIINTMSK_ENABLE	0x00008000
+#define REG_BMCTL		0x0080
+#define  REG_BMCTL_ENABLE_TX	0x00000100
+#define  REG_BMCTL_ENABLE_RX	0x00000001
+#define REG_BMSTS		0x0084
+#define  REG_BMSTS_RX_ACTIVE	0x00000008
+#define REG_RXDQBADD		0x0090
+#define REG_RXDQBLEN		0x0094
+#define REG_RXDCURADD		0x0098
+#define REG_RXDENQ		0x009c
+#define REG_RXSTSQBADD		0x00a0
+#define REG_RXSTSQBLEN		0x00a4
+#define REG_RXSTSQCURADD	0x00a8
+#define REG_RXSTSENQ		0x00ac
+#define REG_TXDQBADD		0x00b0
+#define REG_TXDQBLEN		0x00b4
+#define REG_TXDQCURADD		0x00b8
+#define REG_TXDENQ		0x00bc
+#define REG_TXSTSQBADD		0x00c0
+#define REG_TXSTSQBLEN		0x00c4
+#define REG_TXSTSQCURADD	0x00c8
+#define REG_MAXFRMLEN		0x00e8
+
+struct ep93xx_rdesc
+{
+	u32	buf_addr;
+	u32	rdesc1;
+};
+
+#define RDESC1_NSOF		0x80000000
+#define RDESC1_BUFFER_INDEX	0x7fff0000
+#define RDESC1_BUFFER_LENGTH	0x0000ffff
+
+struct ep93xx_rstat
+{
+	u32	rstat0;
+	u32	rstat1;
+};
+
+#define RSTAT0_RFP		0x80000000
+#define RSTAT0_RWE		0x40000000
+#define RSTAT0_EOF		0x20000000
+#define RSTAT0_EOB		0x10000000
+#define RSTAT0_AM		0x00c00000
+#define RSTAT0_RX_ERR		0x00200000
+#define RSTAT0_OE		0x00100000
+#define RSTAT0_FE		0x00080000
+#define RSTAT0_RUNT		0x00040000
+#define RSTAT0_EDATA		0x00020000
+#define RSTAT0_CRCE		0x00010000
+#define RSTAT0_CRCI		0x00008000
+#define RSTAT0_HTI		0x00003f00
+#define RSTAT1_RFP		0x80000000
+#define RSTAT1_BUFFER_INDEX	0x7fff0000
+#define RSTAT1_FRAME_LENGTH	0x0000ffff
+
+struct ep93xx_tdesc
+{
+	u32	buf_addr;
+	u32	tdesc1;
+};
+
+#define TDESC1_EOF		0x80000000
+#define TDESC1_BUFFER_INDEX	0x7fff0000
+#define TDESC1_BUFFER_ABORT	0x00008000
+#define TDESC1_BUFFER_LENGTH	0x00000fff
+
+struct ep93xx_tstat
+{
+	u32	tstat0;
+};
+
+#define TSTAT0_TXFP		0x80000000
+#define TSTAT0_TXWE		0x40000000
+#define TSTAT0_FA		0x20000000
+#define TSTAT0_LCRS		0x10000000
+#define TSTAT0_OW		0x04000000
+#define TSTAT0_TXU		0x02000000
+#define TSTAT0_ECOLL		0x01000000
+#define TSTAT0_NCOLL		0x001f0000
+#define TSTAT0_BUFFER_INDEX	0x00007fff
+
+struct ep93xx_descs
+{
+	struct ep93xx_rdesc	rdesc[RX_QUEUE_ENTRIES];
+	struct ep93xx_tdesc	tdesc[TX_QUEUE_ENTRIES];
+	struct ep93xx_rstat	rstat[RX_QUEUE_ENTRIES];
+	struct ep93xx_tstat	tstat[TX_QUEUE_ENTRIES];
+};
+
+struct ep93xx_priv
+{
+	struct resource		*res;
+	void			*base_addr;
+	int			irq;
+
+	struct ep93xx_descs	*descs;
+	dma_addr_t		descs_dma_addr;
+
+	void			*rx_buf[RX_QUEUE_ENTRIES];
+	void			*tx_buf[TX_QUEUE_ENTRIES];
+
+	spinlock_t		rx_lock;
+	unsigned int		rx_pointer;
+	unsigned int		tx_clean_pointer;
+	unsigned int		tx_pointer;
+	spinlock_t		tx_pending_lock;
+	unsigned int		tx_pending;
+
+	struct net_device_stats	stats;
+
+	struct mii_if_info	mii;
+	u8			mdc_divisor;
+};
+
+#define rdb(ep, off)		__raw_readb((ep)->base_addr + (off))
+#define rdw(ep, off)		__raw_readw((ep)->base_addr + (off))
+#define rdl(ep, off)		__raw_readl((ep)->base_addr + (off))
+#define wrb(ep, off, val)	__raw_writeb((val), (ep)->base_addr + (off))
+#define wrw(ep, off, val)	__raw_writew((val), (ep)->base_addr + (off))
+#define wrl(ep, off, val)	__raw_writel((val), (ep)->base_addr + (off))
+
+static int ep93xx_mdio_read(struct net_device *dev, int phy_id, int reg);
+
+static struct net_device_stats *ep93xx_get_stats(struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	return &(ep->stats);
+}
+
+static int ep93xx_rx(struct net_device *dev, int *budget)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	int tail_offset;
+	int rx_done;
+	int processed;
+
+	tail_offset = rdl(ep, REG_RXSTSQCURADD) - ep->descs_dma_addr;
+
+	rx_done = 0;
+	processed = 0;
+	while (*budget > 0) {
+		int entry;
+		struct ep93xx_rstat *rstat;
+		u32 rstat0;
+		u32 rstat1;
+		int length;
+		struct sk_buff *skb;
+
+		entry = ep->rx_pointer;
+		rstat = ep->descs->rstat + entry;
+		if ((void *)rstat - (void *)ep->descs == tail_offset) {
+			rx_done = 1;
+			break;
+		}
+
+		rstat0 = rstat->rstat0;
+		rstat1 = rstat->rstat1;
+		rstat->rstat0 = 0;
+		rstat->rstat1 = 0;
+
+		if (!(rstat0 & RSTAT0_RFP))
+			printk(KERN_CRIT "ep93xx_rx: buffer not done "
+					 " %.8x %.8x\n", rstat0, rstat1);
+		if (!(rstat0 & RSTAT0_EOF))
+			printk(KERN_CRIT "ep93xx_rx: not end-of-frame "
+					 " %.8x %.8x\n", rstat0, rstat1);
+		if (!(rstat0 & RSTAT0_EOB))
+			printk(KERN_CRIT "ep93xx_rx: not end-of-buffer "
+					 " %.8x %.8x\n", rstat0, rstat1);
+		if (!(rstat1 & RSTAT1_RFP))
+			printk(KERN_CRIT "ep93xx_rx: buffer1 not done "
+					 " %.8x %.8x\n", rstat0, rstat1);
+		if ((rstat1 & RSTAT1_BUFFER_INDEX) >> 16 != entry)
+			printk(KERN_CRIT "ep93xx_rx: entry mismatch "
+					 " %.8x %.8x\n", rstat0, rstat1);
+
+		if (!(rstat0 & RSTAT0_RWE)) {
+			printk(KERN_NOTICE "ep93xx_rx: receive error "
+					 " %.8x %.8x\n", rstat0, rstat1);
+
+			ep->stats.rx_errors++;
+			if (rstat0 & RSTAT0_OE)
+				ep->stats.rx_fifo_errors++;
+			if (rstat0 & RSTAT0_FE)
+				ep->stats.rx_frame_errors++;
+			if (rstat0 & (RSTAT0_RUNT | RSTAT0_EDATA))
+				ep->stats.rx_length_errors++;
+			if (rstat0 & RSTAT0_CRCE)
+				ep->stats.rx_crc_errors++;
+			goto err;
+		}
+
+		length = rstat1 & RSTAT1_FRAME_LENGTH;
+		if (length > MAX_PKT_SIZE) {
+			printk(KERN_NOTICE "ep93xx_rx: invalid length "
+					 " %.8x %.8x\n", rstat0, rstat1);
+			goto err;
+		}
+
+		/* Strip FCS.  */
+		if (rstat0 & RSTAT0_CRCI)
+			length -= 4;
+
+		skb = dev_alloc_skb(length + 2);
+		if (likely(skb != NULL)) {
+			skb->dev = dev;
+			skb_reserve(skb, 2);
+			dma_sync_single(NULL, ep->descs->rdesc[entry].buf_addr,
+						length, DMA_FROM_DEVICE);
+			eth_copy_and_sum(skb, ep->rx_buf[entry], length, 0);
+			skb_put(skb, length);
+			skb->protocol = eth_type_trans(skb, dev);
+
+			dev->last_rx = jiffies;
+
+			netif_receive_skb(skb);
+
+			ep->stats.rx_packets++;
+			ep->stats.rx_bytes += length;
+		} else {
+			ep->stats.rx_dropped++;
+		}
+
+err:
+		ep->rx_pointer = (entry + 1) & (RX_QUEUE_ENTRIES - 1);
+		processed++;
+		dev->quota--;
+		(*budget)--;
+	}
+
+	if (processed) {
+		wrw(ep, REG_RXDENQ, processed);
+		wrw(ep, REG_RXSTSENQ, processed);
+	}
+
+	return !rx_done;
+}
+
+static int ep93xx_have_more_rx(struct ep93xx_priv *ep)
+{
+	struct ep93xx_rstat *rstat;
+	int tail_offset;
+
+	rstat = ep->descs->rstat + ep->rx_pointer;
+	tail_offset = rdl(ep, REG_RXSTSQCURADD) - ep->descs_dma_addr;
+
+	return !((void *)rstat - (void *)ep->descs == tail_offset);
+}
+
+static int ep93xx_poll(struct net_device *dev, int *budget)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+
+	/*
+	 * @@@ Have to stop polling if device is downed while we
+	 * are polling.
+	 */
+
+poll_some_more:
+	if (ep93xx_rx(dev, budget))
+		return 1;
+
+	netif_rx_complete(dev);
+
+	spin_lock_irq(&ep->rx_lock);
+	wrl(ep, REG_INTEN, REG_INTEN_TX | REG_INTEN_RX);
+	if (ep93xx_have_more_rx(ep)) {
+		wrl(ep, REG_INTEN, REG_INTEN_TX);
+		wrl(ep, REG_INTSTSP, REG_INTSTS_RX);
+		spin_unlock_irq(&ep->rx_lock);
+
+		if (netif_rx_reschedule(dev, 0))
+			goto poll_some_more;
+
+		return 0;
+	}
+	spin_unlock_irq(&ep->rx_lock);
+
+	return 0;
+}
+
+static int ep93xx_xmit(struct sk_buff *skb, struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	int entry;
+
+	if (unlikely(skb->len) > MAX_PKT_SIZE) {
+		ep->stats.tx_dropped++;
+		dev_kfree_skb(skb);
+		return NETDEV_TX_OK;
+	}
+
+	entry = ep->tx_pointer;
+	ep->tx_pointer = (ep->tx_pointer + 1) & (TX_QUEUE_ENTRIES - 1);
+
+	ep->descs->tdesc[entry].tdesc1 =
+		TDESC1_EOF | (entry << 16) | (skb->len & 0xfff);
+	skb_copy_and_csum_dev(skb, ep->tx_buf[entry]);
+	dma_sync_single(NULL, ep->descs->tdesc[entry].buf_addr,
+				skb->len, DMA_TO_DEVICE);
+	dev_kfree_skb(skb);
+
+	dev->trans_start = jiffies;
+
+	spin_lock_irq(&ep->tx_pending_lock);
+	ep->tx_pending++;
+	if (ep->tx_pending == TX_QUEUE_ENTRIES)
+		netif_stop_queue(dev);
+	spin_unlock_irq(&ep->tx_pending_lock);
+
+	wrl(ep, REG_TXDENQ, 1);
+
+	return NETDEV_TX_OK;
+}
+
+static void ep93xx_tx_complete(struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	int tail_offset;
+	int wake;
+
+	tail_offset = rdl(ep, REG_TXSTSQCURADD) - ep->descs_dma_addr;
+	wake = 0;
+
+	spin_lock(&ep->tx_pending_lock);
+	while (1) {
+		int entry;
+		struct ep93xx_tstat *tstat;
+		u32 tstat0;
+
+		entry = ep->tx_clean_pointer;
+		tstat = ep->descs->tstat + entry;
+		if ((void *)tstat - (void *)ep->descs == tail_offset)
+			break;
+
+		tstat0 = tstat->tstat0;
+		tstat->tstat0 = 0;
+
+		if (!(tstat0 & TSTAT0_TXFP))
+			printk(KERN_CRIT "ep93xx_tx_complete: buffer not done "
+					 " %.8x\n", tstat0);
+		if (tstat0 & TSTAT0_FA)
+			printk(KERN_CRIT "ep93xx_tx_complete: frame aborted "
+					 " %.8x\n", tstat0);
+		if ((tstat0 & TSTAT0_BUFFER_INDEX) != entry)
+			printk(KERN_CRIT "ep93xx_tx_complete: entry mismatch "
+					 " %.8x\n", tstat0);
+
+		if (tstat0 & TSTAT0_TXWE) {
+			int length = ep->descs->tdesc[entry].tdesc1 & 0xfff;
+
+			ep->stats.tx_packets++;
+			ep->stats.tx_bytes += length;
+		} else {
+			ep->stats.tx_errors++;
+		}
+
+		if (tstat0 & TSTAT0_OW)
+			ep->stats.tx_window_errors++;
+		if (tstat0 & TSTAT0_TXU)
+			ep->stats.tx_fifo_errors++;
+		ep->stats.collisions += (tstat0 >> 16) & 0x1f;
+
+		ep->tx_clean_pointer = (entry + 1) & (TX_QUEUE_ENTRIES - 1);
+		if (ep->tx_pending == TX_QUEUE_ENTRIES)
+			wake = 1;
+		ep->tx_pending--;
+	}
+	spin_unlock(&ep->tx_pending_lock);
+
+	if (wake)
+		netif_wake_queue(dev);
+}
+
+static irqreturn_t ep93xx_irq(int irq, void *dev_id, struct pt_regs *regs)
+{
+	struct net_device *dev = dev_id;
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	u32 status;
+
+	status = rdl(ep, REG_INTSTSC);
+	if (status == 0)
+		return IRQ_NONE;
+
+	if (status & REG_INTSTS_RX) {
+		spin_lock(&ep->rx_lock);
+		if (likely(__netif_rx_schedule_prep(dev))) {
+			wrl(ep, REG_INTEN, REG_INTEN_TX);
+			__netif_rx_schedule(dev);
+		}
+		spin_unlock(&ep->rx_lock);
+	}
+
+	if (status & REG_INTSTS_TX)
+		ep93xx_tx_complete(dev);
+
+	return IRQ_HANDLED;
+}
+
+static void ep93xx_free_buffers(struct ep93xx_priv *ep)
+{
+	int i;
+
+	for (i = 0; i < RX_QUEUE_ENTRIES; i += 2) {
+		dma_addr_t d;
+
+		d = ep->descs->rdesc[i].buf_addr;
+		if (d)
+			dma_unmap_single(NULL, d, PAGE_SIZE, DMA_FROM_DEVICE);
+
+		if (ep->rx_buf[i] != NULL)
+			free_page((unsigned long)ep->rx_buf[i]);
+	}
+
+	for (i = 0; i < TX_QUEUE_ENTRIES; i += 2) {
+		dma_addr_t d;
+
+		d = ep->descs->tdesc[i].buf_addr;
+		if (d)
+			dma_unmap_single(NULL, d, PAGE_SIZE, DMA_TO_DEVICE);
+
+		if (ep->tx_buf[i] != NULL)
+			free_page((unsigned long)ep->tx_buf[i]);
+	}
+
+	dma_free_coherent(NULL, sizeof(struct ep93xx_descs), ep->descs,
+							ep->descs_dma_addr);
+}
+
+/*
+ * The hardware enforces a sub-2K maximum packet size, so we put
+ * two buffers on every hardware page.
+ */
+static int ep93xx_alloc_buffers(struct ep93xx_priv *ep)
+{
+	int i;
+
+	ep->descs = dma_alloc_coherent(NULL, sizeof(struct ep93xx_descs),
+				&ep->descs_dma_addr, GFP_KERNEL | GFP_DMA);
+	if (ep->descs == NULL)
+		return 1;
+
+	for (i = 0; i < RX_QUEUE_ENTRIES; i += 2) {
+		void *page;
+		dma_addr_t d;
+
+		page = (void *)__get_free_page(GFP_KERNEL | GFP_DMA);
+		if (page == NULL)
+			goto err;
+
+		d = dma_map_single(NULL, page, PAGE_SIZE, DMA_FROM_DEVICE);
+		if (dma_mapping_error(d)) {
+			free_page((unsigned long)page);
+			goto err;
+		}
+
+		ep->rx_buf[i] = page;
+		ep->descs->rdesc[i].buf_addr = d;
+		ep->descs->rdesc[i].rdesc1 = (i << 16) | PKT_BUF_SIZE;
+
+		ep->rx_buf[i + 1] = page + PKT_BUF_SIZE;
+		ep->descs->rdesc[i + 1].buf_addr = d + PKT_BUF_SIZE;
+		ep->descs->rdesc[i + 1].rdesc1 = ((i + 1) << 16) | PKT_BUF_SIZE;
+	}
+
+	for (i = 0; i < TX_QUEUE_ENTRIES; i += 2) {
+		void *page;
+		dma_addr_t d;
+
+		page = (void *)__get_free_page(GFP_KERNEL | GFP_DMA);
+		if (page == NULL)
+			goto err;
+
+		d = dma_map_single(NULL, page, PAGE_SIZE, DMA_TO_DEVICE);
+		if (dma_mapping_error(d)) {
+			free_page((unsigned long)page);
+			goto err;
+		}
+
+		ep->tx_buf[i] = page;
+		ep->descs->tdesc[i].buf_addr = d;
+
+		ep->tx_buf[i + 1] = page + PKT_BUF_SIZE;
+		ep->descs->tdesc[i + 1].buf_addr = d + PKT_BUF_SIZE;
+	}
+
+	return 0;
+
+err:
+	ep93xx_free_buffers(ep);
+	return 1;
+}
+
+static int ep93xx_start_hw(struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	unsigned long addr;
+	int i;
+
+	wrl(ep, REG_SELFCTL, REG_SELFCTL_RESET);
+	for (i = 0; i < 10; i++) {
+		if ((rdl(ep, REG_SELFCTL) & REG_SELFCTL_RESET) == 0)
+			break;
+		msleep(1);
+	}
+
+	if (i == 10) {
+		printk(KERN_CRIT DRV_MODULE_NAME ": hw failed to reset\n");
+		return 1;
+	}
+
+	wrl(ep, REG_SELFCTL, ((ep->mdc_divisor - 1) << 9));
+
+	/* Does the PHY support preamble suppress?  */
+	if ((ep93xx_mdio_read(dev, ep->mii.phy_id, MII_BMSR) & 0x0040) != 0)
+		wrl(ep, REG_SELFCTL, ((ep->mdc_divisor - 1) << 9) | (1 << 8));
+
+	/* Receive descriptor ring.  */
+	addr = ep->descs_dma_addr + offsetof(struct ep93xx_descs, rdesc);
+	wrl(ep, REG_RXDQBADD, addr);
+	wrl(ep, REG_RXDCURADD, addr);
+	wrw(ep, REG_RXDQBLEN, RX_QUEUE_ENTRIES * sizeof(struct ep93xx_rdesc));
+
+	/* Receive status ring.  */
+	addr = ep->descs_dma_addr + offsetof(struct ep93xx_descs, rstat);
+	wrl(ep, REG_RXSTSQBADD, addr);
+	wrl(ep, REG_RXSTSQCURADD, addr);
+	wrw(ep, REG_RXSTSQBLEN, RX_QUEUE_ENTRIES * sizeof(struct ep93xx_rstat));
+
+	/* Transmit descriptor ring.  */
+	addr = ep->descs_dma_addr + offsetof(struct ep93xx_descs, tdesc);
+	wrl(ep, REG_TXDQBADD, addr);
+	wrl(ep, REG_TXDQCURADD, addr);
+	wrw(ep, REG_TXDQBLEN, TX_QUEUE_ENTRIES * sizeof(struct ep93xx_tdesc));
+
+	/* Transmit status ring.  */
+	addr = ep->descs_dma_addr + offsetof(struct ep93xx_descs, tstat);
+	wrl(ep, REG_TXSTSQBADD, addr);
+	wrl(ep, REG_TXSTSQCURADD, addr);
+	wrw(ep, REG_TXSTSQBLEN, TX_QUEUE_ENTRIES * sizeof(struct ep93xx_tstat));
+
+	wrl(ep, REG_BMCTL, REG_BMCTL_ENABLE_TX | REG_BMCTL_ENABLE_RX);
+	wrl(ep, REG_INTEN, REG_INTEN_TX | REG_INTEN_RX);
+	wrl(ep, REG_GIINTMSK, 0);
+
+	for (i = 0; i < 10; i++) {
+		if ((rdl(ep, REG_BMSTS) & REG_BMSTS_RX_ACTIVE) != 0)
+			break;
+		msleep(1);
+	}
+
+	if (i == 10) {
+		printk(KERN_CRIT DRV_MODULE_NAME ": hw failed to start\n");
+		return 1;
+	}
+
+	wrl(ep, REG_RXDENQ, RX_QUEUE_ENTRIES);
+	wrl(ep, REG_RXSTSENQ, RX_QUEUE_ENTRIES);
+
+	wrb(ep, REG_INDAD0, dev->dev_addr[0]);
+	wrb(ep, REG_INDAD1, dev->dev_addr[1]);
+	wrb(ep, REG_INDAD2, dev->dev_addr[2]);
+	wrb(ep, REG_INDAD3, dev->dev_addr[3]);
+	wrb(ep, REG_INDAD4, dev->dev_addr[4]);
+	wrb(ep, REG_INDAD5, dev->dev_addr[5]);
+	wrl(ep, REG_AFP, 0);
+
+	wrl(ep, REG_MAXFRMLEN, (MAX_PKT_SIZE << 16) | MAX_PKT_SIZE);
+
+	wrl(ep, REG_RXCTL, REG_RXCTL_DEFAULT);
+	wrl(ep, REG_TXCTL, REG_TXCTL_ENABLE);
+
+	return 0;
+}
+
+static void ep93xx_stop_hw(struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	int i;
+
+	wrl(ep, REG_SELFCTL, REG_SELFCTL_RESET);
+	for (i = 0; i < 10; i++) {
+		if ((rdl(ep, REG_SELFCTL) & REG_SELFCTL_RESET) == 0)
+			break;
+		msleep(1);
+	}
+
+	if (i == 10)
+		printk(KERN_CRIT DRV_MODULE_NAME ": hw failed to reset\n");
+}
+
+static int ep93xx_open(struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	int err;
+
+	if (ep93xx_alloc_buffers(ep))
+		return -ENOMEM;
+
+	if (is_zero_ether_addr(dev->dev_addr)) {
+		random_ether_addr(dev->dev_addr);
+		printk(KERN_INFO "%s: generated random MAC address "
+			"%.2x:%.2x:%.2x:%.2x:%.2x:%.2x.\n", dev->name,
+			dev->dev_addr[0], dev->dev_addr[1],
+			dev->dev_addr[2], dev->dev_addr[3],
+			dev->dev_addr[4], dev->dev_addr[5]);
+	}
+
+	if (ep93xx_start_hw(dev)) {
+		ep93xx_free_buffers(ep);
+		return -EIO;
+	}
+
+	spin_lock_init(&ep->rx_lock);
+	ep->rx_pointer = 0;
+	ep->tx_clean_pointer = 0;
+	ep->tx_pointer = 0;
+	spin_lock_init(&ep->tx_pending_lock);
+	ep->tx_pending = 0;
+
+	err = request_irq(ep->irq, ep93xx_irq, IRQF_SHARED, dev->name, dev);
+	if (err) {
+		ep93xx_stop_hw(dev);
+		ep93xx_free_buffers(ep);
+		return err;
+	}
+
+	wrl(ep, REG_GIINTMSK, REG_GIINTMSK_ENABLE);
+
+	netif_start_queue(dev);
+
+	return 0;
+}
+
+static int ep93xx_close(struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+
+	netif_stop_queue(dev);
+
+	wrl(ep, REG_GIINTMSK, 0);
+	free_irq(ep->irq, dev);
+	ep93xx_stop_hw(dev);
+	ep93xx_free_buffers(ep);
+
+	return 0;
+}
+
+static int ep93xx_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	struct mii_ioctl_data *data = if_mii(ifr);
+
+	return generic_mii_ioctl(&ep->mii, data, cmd, NULL);
+}
+
+static int ep93xx_mdio_read(struct net_device *dev, int phy_id, int reg)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	int data;
+	int i;
+
+	wrl(ep, REG_MIICMD, REG_MIICMD_READ | (phy_id << 5) | reg);
+
+	for (i = 0; i < 10; i++) {
+		if ((rdl(ep, REG_MIISTS) & REG_MIISTS_BUSY) == 0)
+			break;
+		msleep(1);
+	}
+
+	if (i == 10) {
+		printk(KERN_INFO DRV_MODULE_NAME ": mdio read timed out\n");
+		data = 0xffff;
+	} else {
+		data = rdl(ep, REG_MIIDATA);
+	}
+
+	return data;
+}
+
+static void ep93xx_mdio_write(struct net_device *dev, int phy_id, int reg, int data)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	int i;
+
+	wrl(ep, REG_MIIDATA, data);
+	wrl(ep, REG_MIICMD, REG_MIICMD_WRITE | (phy_id << 5) | reg);
+
+	for (i = 0; i < 10; i++) {
+		if ((rdl(ep, REG_MIISTS) & REG_MIISTS_BUSY) == 0)
+			break;
+		msleep(1);
+	}
+
+	if (i == 10)
+		printk(KERN_INFO DRV_MODULE_NAME ": mdio write timed out\n");
+}
+
+static void ep93xx_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
+{
+	strcpy(info->driver, DRV_MODULE_NAME);
+	strcpy(info->version, DRV_MODULE_VERSION);
+}
+
+static int ep93xx_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	return mii_ethtool_gset(&ep->mii, cmd);
+}
+
+static int ep93xx_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	return mii_ethtool_sset(&ep->mii, cmd);
+}
+
+static int ep93xx_nway_reset(struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	return mii_nway_restart(&ep->mii);
+}
+
+static u32 ep93xx_get_link(struct net_device *dev)
+{
+	struct ep93xx_priv *ep = netdev_priv(dev);
+	return mii_link_ok(&ep->mii);
+}
+
+static struct ethtool_ops ep93xx_ethtool_ops = {
+	.get_drvinfo		= ep93xx_get_drvinfo,
+	.get_settings		= ep93xx_get_settings,
+	.set_settings		= ep93xx_set_settings,
+	.nway_reset		= ep93xx_nway_reset,
+	.get_link		= ep93xx_get_link,
+};
+
+struct net_device *ep93xx_dev_alloc(struct ep93xx_eth_data *data)
+{
+	struct net_device *dev;
+	struct ep93xx_priv *ep;
+
+	dev = alloc_etherdev(sizeof(struct ep93xx_priv));
+	if (dev == NULL)
+		return NULL;
+	ep = netdev_priv(dev);
+
+	memcpy(dev->dev_addr, data->dev_addr, ETH_ALEN);
+
+	dev->get_stats = ep93xx_get_stats;
+	dev->ethtool_ops = &ep93xx_ethtool_ops;
+	dev->poll = ep93xx_poll;
+	dev->hard_start_xmit = ep93xx_xmit;
+	dev->open = ep93xx_open;
+	dev->stop = ep93xx_close;
+	dev->do_ioctl = ep93xx_ioctl;
+
+	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
+	dev->weight = 64;
+
+	return dev;
+}
+
+
+static int ep93xx_eth_remove(struct platform_device *pdev)
+{
+	struct net_device *dev;
+	struct ep93xx_priv *ep;
+
+	dev = platform_get_drvdata(pdev);
+	if (dev == NULL)
+		return 0;
+	platform_set_drvdata(pdev, NULL);
+
+	ep = netdev_priv(dev);
+
+	/* @@@ Force down.  */
+	unregister_netdev(dev);
+	ep93xx_free_buffers(ep);
+
+	if (ep->base_addr != NULL)
+		iounmap(ep->base_addr);
+
+	if (ep->res != NULL) {
+		release_resource(ep->res);
+		kfree(ep->res);
+	}
+
+	free_netdev(dev);
+
+	return 0;
+}
+
+static int ep93xx_eth_probe(struct platform_device *pdev)
+{
+	struct ep93xx_eth_data *data;
+	struct net_device *dev;
+	struct ep93xx_priv *ep;
+	int err;
+
+	data = pdev->dev.platform_data;
+	if (pdev == NULL)
+		return -ENODEV;
+
+	dev = ep93xx_dev_alloc(data);
+	if (dev == NULL) {
+		err = -ENOMEM;
+		goto err_out;
+	}
+	ep = netdev_priv(dev);
+
+	platform_set_drvdata(pdev, dev);
+
+	ep->res = request_mem_region(pdev->resource[0].start,
+			pdev->resource[0].end - pdev->resource[0].start + 1,
+			pdev->dev.bus_id);
+	if (ep->res == NULL) {
+		dev_err(&pdev->dev, "Could not reserve memory region\n");
+		err = -ENOMEM;
+		goto err_out;
+	}
+
+	ep->base_addr = ioremap(pdev->resource[0].start,
+			pdev->resource[0].end - pdev->resource[0].start);
+	if (ep->base_addr == NULL) {
+		dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
+		err = -EIO;
+		goto err_out;
+	}
+	ep->irq = pdev->resource[1].start;
+
+	ep->mii.phy_id = data->phy_id;
+	ep->mii.phy_id_mask = 0x1f;
+	ep->mii.reg_num_mask = 0x1f;
+	ep->mii.dev = dev;
+	ep->mii.mdio_read = ep93xx_mdio_read;
+	ep->mii.mdio_write = ep93xx_mdio_write;
+	ep->mdc_divisor = 40;	/* Max HCLK 100 MHz, min MDIO clk 2.5 MHz.  */
+
+	err = register_netdev(dev);
+	if (err) {
+		dev_err(&pdev->dev, "Failed to register netdev\n");
+		goto err_out;
+	}
+
+	printk(KERN_INFO "%s: ep93xx on-chip ethernet, IRQ %d, "
+			 "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x.\n", dev->name,
+			ep->irq, data->dev_addr[0], data->dev_addr[1],
+			data->dev_addr[2], data->dev_addr[3],
+			data->dev_addr[4], data->dev_addr[5]);
+
+	return 0;
+
+err_out:
+	ep93xx_eth_remove(pdev);
+	return err;
+}
+
+
+static struct platform_driver ep93xx_eth_driver = {
+	.probe		= ep93xx_eth_probe,
+	.remove		= ep93xx_eth_remove,
+	.driver		= {
+		.name	= "ep93xx-eth",
+	},
+};
+
+static int __init ep93xx_eth_init_module(void)
+{
+	printk(KERN_INFO DRV_MODULE_NAME " version " DRV_MODULE_VERSION " loading\n");
+	return platform_driver_register(&ep93xx_eth_driver);
+}
+
+static void __exit ep93xx_eth_cleanup_module(void)
+{
+	platform_driver_unregister(&ep93xx_eth_driver);
+}
+
+module_init(ep93xx_eth_init_module);
+module_exit(ep93xx_eth_cleanup_module);
+MODULE_LICENSE("GPL");

+ 1 - 1
drivers/net/arm/etherh.c

@@ -626,7 +626,7 @@ static int etherh_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 	return 0;
 }
 
-static struct ethtool_ops etherh_ethtool_ops = {
+static const struct ethtool_ops etherh_ethtool_ops = {
 	.get_settings	= etherh_get_settings,
 	.set_settings	= etherh_set_settings,
 	.get_drvinfo	= etherh_get_drvinfo,

+ 14 - 16
drivers/net/at1700.c

@@ -18,7 +18,7 @@
 	straight-forward Fujitsu MB86965 implementations.
 
 	Modification for Fujitsu FMV-18X cards is done by Yutaka Tamiya
-	(tamy@flab.fujitsu.co.jp). 
+	(tamy@flab.fujitsu.co.jp).
 
   Sources:
     The Fujitsu MB86965 datasheet.
@@ -58,7 +58,7 @@
 #include <asm/dma.h>
 
 static char version[] __initdata =
-	"at1700.c:v1.15 4/7/98  Donald Becker (becker@cesdis.gsfc.nasa.gov)\n";
+	"at1700.c:v1.16 9/11/06  Donald Becker (becker@cesdis.gsfc.nasa.gov)\n";
 
 #define DRV_NAME "at1700"
 
@@ -168,7 +168,7 @@ static struct net_device_stats *net_get_stats(struct net_device *dev);
 static void set_rx_mode(struct net_device *dev);
 static void net_tx_timeout (struct net_device *dev);
 
-
+
 #ifdef CONFIG_MCA_LEGACY
 struct at1720_mca_adapters_struct {
 	char* name;
@@ -201,7 +201,7 @@ static void cleanup_card(struct net_device *dev)
 	struct net_local *lp = netdev_priv(dev);
 	if (lp->mca_slot >= 0)
 		mca_mark_as_unused(lp->mca_slot);
-#endif	
+#endif
 	free_irq(dev->irq, NULL);
 	release_region(dev->base_addr, AT1700_IO_EXTENT);
 }
@@ -301,7 +301,7 @@ static int __init at1700_probe1(struct net_device *dev, int ioaddr)
 		for (j = 0; at1720_mca_adapters[j].name != NULL; j ++) {
 			slot = 0;
 			while (slot != MCA_NOTFOUND) {
-				
+
 				slot = mca_find_unused_adapter( at1720_mca_adapters[j].id, slot );
 				if (slot == MCA_NOTFOUND) break;
 
@@ -315,7 +315,7 @@ static int __init at1700_probe1(struct net_device *dev, int ioaddr)
 					if (( pos3 & 0x07) == at1700_ioaddr_pattern[l_i])
 						break;
 				ioaddr = at1700_mca_probe_list[l_i];
-				
+
 				for (irq = 0; irq < 0x10; irq++)
 					if (((((pos4>>4) & 0x0f) | (pos3 & 0xf0)) & 0xff) == at1700_irq_pattern[irq])
 						break;
@@ -328,7 +328,7 @@ static int __init at1700_probe1(struct net_device *dev, int ioaddr)
 				}
 
 				dev->irq = irq;
-				
+
 				/* claim the slot */
 				mca_set_adapter_name( slot, at1720_mca_adapters[j].name );
 				mca_mark_as_used(slot);
@@ -353,7 +353,7 @@ static int __init at1700_probe1(struct net_device *dev, int ioaddr)
 	else {
 		goto err_out;
 	}
-			
+
 #ifdef CONFIG_MCA_LEGACY
 found:
 #endif
@@ -487,7 +487,7 @@ err_out:
 	return ret;
 }
 
-
+
 /*  EEPROM_Ctrl bits. */
 #define EE_SHIFT_CLK	0x40	/* EEPROM shift clock, in reg. 16. */
 #define EE_CS			0x20	/* EEPROM chip select, in reg. 16. */
@@ -528,7 +528,7 @@ static int __init read_eeprom(long ioaddr, int location)
 	return retval;
 }
 
-
+
 
 static int net_open(struct net_device *dev)
 {
@@ -645,7 +645,7 @@ static int net_send_packet (struct sk_buff *skb, struct net_device *dev)
 
 	return 0;
 }
-
+
 /* The typical workload of the driver:
    Handle the network interface interrupts. */
 static irqreturn_t
@@ -663,9 +663,9 @@ net_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 
 	ioaddr = dev->base_addr;
 	lp = netdev_priv(dev);
-	
+
 	spin_lock (&lp->lock);
-	
+
 	status = inw(ioaddr + TX_STATUS);
 	outw(status, ioaddr + TX_STATUS);
 
@@ -851,8 +851,6 @@ set_rx_mode(struct net_device *dev)
 	int i;
 
 	if (dev->flags & IFF_PROMISC) {
-		/* Unconditionally log net taps. */
-		printk("%s: Promiscuous mode enabled.\n", dev->name);
 		memset(mc_filter, 0xff, sizeof(mc_filter));
 		outb(3, ioaddr + RX_MODE);	/* Enable promiscuous mode */
 	} else if (dev->mc_count > MC_FILTERBREAK
@@ -921,7 +919,7 @@ cleanup_module(void)
 #endif /* MODULE */
 MODULE_LICENSE("GPL");
 
-
+
 /*
  * Local variables:
  *  compile-command: "gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c at1700.c"

+ 7 - 7
drivers/net/atari_bionet.c

@@ -460,7 +460,7 @@ bionet_send_packet(struct sk_buff *skb, struct net_device *dev) {
 		if (bionet_debug >1) {
 			u_char *data = nic_packet->buffer, *p;
 			int i;
-			
+
 			printk( "%s: TX pkt type 0x%4x from ", dev->name,
 				  ((u_short *)data)[6]);
 
@@ -551,7 +551,7 @@ bionet_poll_rx(struct net_device *dev) {
 			/* 'skb->data' points to the start of sk_buff data area.
 			 */
 			memcpy(skb->data, nic_packet->buffer, pkt_len);
-			skb->protocol = eth_type_trans( skb, dev ); 
+			skb->protocol = eth_type_trans( skb, dev );
 			netif_rx(skb);
 			dev->last_rx = jiffies;
 			lp->stats.rx_packets++;
@@ -565,17 +565,17 @@ bionet_poll_rx(struct net_device *dev) {
  			if (bionet_debug >1) {
  				u_char *data = nic_packet->buffer, *p;
  				int i;
- 				
+
  				printk( "%s: RX pkt type 0x%4x from ", dev->name,
  					  ((u_short *)data)[6]);
- 					 
- 				
+
+
  				for( p = &data[6], i = 0; i < 6; i++ )
  					printk("%02x%s", *p++,i != 5 ? ":" : "" );
  				printk(" to ");
  				for( p = data, i = 0; i < 6; i++ )
  					printk("%02x%s", *p++,i != 5 ? ":" : "" "\n" );
- 
+
  				printk( "%s: ", dev->name );
  				printk(" data %02x%02x %02x%02x%02x%02x %02x%02x%02x%02x %02x%02x%02x%02x %02x%02x%02x%02x"
  				       " %02x%02x%02x%02x len %d\n",
@@ -636,7 +636,7 @@ bionet_close(struct net_device *dev) {
 /* Get the current statistics.
    This may be called with the card open or closed.
  */
-static struct net_device_stats *net_get_stats(struct net_device *dev) 
+static struct net_device_stats *net_get_stats(struct net_device *dev)
 {
 	struct net_local *lp = netdev_priv(dev);
 	return &lp->stats;

+ 1 - 1
drivers/net/atari_pamsnet.c

@@ -857,7 +857,7 @@ pamsnet_close(struct net_device *dev) {
 /* Get the current statistics.
    This may be called with the card open or closed.
  */
-static struct net_device_stats *net_get_stats(struct net_device *dev) 
+static struct net_device_stats *net_get_stats(struct net_device *dev)
 {
 	struct net_local *lp = netdev_priv(dev);
 	return &lp->stats;

+ 11 - 11
drivers/net/atarilance.c

@@ -356,7 +356,7 @@ static void lance_tx_timeout (struct net_device *dev);
 
 
 
-
+
 
 static void *slow_memcpy( void *dst, const void *src, size_t len )
 
@@ -549,7 +549,7 @@ static unsigned long __init lance_probe1( struct net_device *dev,
 		memaddr == (unsigned short *)0xffe00000) {
 		/* PAMs card and Riebl on ST use level 5 autovector */
 		if (request_irq(IRQ_AUTO_5, lance_interrupt, IRQ_TYPE_PRIO,
-		            "PAM/Riebl-ST Ethernet", dev)) { 
+		            "PAM/Riebl-ST Ethernet", dev)) {
 			printk( "Lance: request for irq %d failed\n", IRQ_AUTO_5 );
 			return( 0 );
 		}
@@ -639,7 +639,7 @@ static unsigned long __init lance_probe1( struct net_device *dev,
 	/* XXX MSch */
 	dev->tx_timeout = lance_tx_timeout;
 	dev->watchdog_timeo = TX_TIMEOUT;
-			
+
 
 #if 0
 	dev->start = 0;
@@ -650,7 +650,7 @@ static unsigned long __init lance_probe1( struct net_device *dev,
 	return( 1 );
 }
 
-
+
 static int lance_open( struct net_device *dev )
 
 {	struct lance_private *lp = (struct lance_private *)dev->priv;
@@ -744,7 +744,7 @@ static void lance_tx_timeout (struct net_device *dev)
 {
 	struct lance_private *lp = (struct lance_private *) dev->priv;
 	struct lance_ioreg	 *IO = lp->iobase;
-	
+
 	AREG = CSR0;
 	DPRINTK( 1, ( "%s: transmit timed out, status %04x, resetting.\n",
 			  dev->name, DREG ));
@@ -772,7 +772,7 @@ static void lance_tx_timeout (struct net_device *dev)
 							  -MEM->tx_head[i].length,
 							  MEM->tx_head[i].misc ));
 		}
-#endif 	 
+#endif
 	/* XXX MSch: maybe purge/reinit ring here */
 	/* lance_restart, essentially */
 	lance_init_ring(dev);
@@ -802,12 +802,12 @@ static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
 	/* PAM-Card has a bug: Can only send packets with even number of bytes! */
 	else if (lp->cardtype == PAM_CARD && (len & 1))
 		++len;
-		
+
 	if (len > skb->len) {
 		if (skb_padto(skb, len))
 			return 0;
 	}
-		
+
 	netif_stop_queue (dev);
 
 	/* Fill in a Tx ring entry */
@@ -1121,7 +1121,7 @@ static void set_multicast_list( struct net_device *dev )
 
 	if (dev->flags & IFF_PROMISC) {
 		/* Log any net taps. */
-		DPRINTK( 1, ( "%s: Promiscuous mode enabled.\n", dev->name ));
+		DPRINTK( 2, ( "%s: Promiscuous mode enabled.\n", dev->name ));
 		REGA( CSR15 ) = 0x8000; /* Set promiscuous mode */
 	} else {
 		short multicast_table[4];
@@ -1175,7 +1175,7 @@ static int lance_set_mac_address( struct net_device *dev, void *addr )
 	return( 0 );
 }
 
-
+
 #ifdef MODULE
 static struct net_device *atarilance_dev;
 
@@ -1195,7 +1195,7 @@ void cleanup_module(void)
 }
 
 #endif /* MODULE */
-
+
 
 /*
  * Local variables:

+ 1 - 1
drivers/net/atp.c

@@ -221,7 +221,7 @@ static struct net_device *root_atp_dev;
    If dev->base_addr == 1, always return failure.
    If dev->base_addr == 2, allocate space for the device and return success
    (detachable devices only).
-   
+
    FIXME: we should use the parport layer for this
    */
 static int __init atp_init(void)

+ 35 - 36
drivers/net/au1000_eth.c

@@ -6,8 +6,8 @@
  * Copyright 2002 TimeSys Corp.
  * Added ethtool/mii-tool support,
  * Copyright 2004 Matt Porter <mporter@kernel.crashing.org>
- * Update: 2004 Bjoern Riemer, riemer@fokus.fraunhofer.de 
- * or riemer@riemer-nt.de: fixed the link beat detection with 
+ * Update: 2004 Bjoern Riemer, riemer@fokus.fraunhofer.de
+ * or riemer@riemer-nt.de: fixed the link beat detection with
  * ioctls (SIOCGMIIPHY)
  * Copyright 2006 Herbert Valerio Riedel <hvr@gnu.org>
  *  converted to use linux-2.6.x's PHY framework
@@ -32,7 +32,7 @@
  *
  * ########################################################################
  *
- * 
+ *
  */
 
 #include <linux/module.h>
@@ -72,7 +72,7 @@ static int au1000_debug = 3;
 #endif
 
 #define DRV_NAME	"au1000_eth"
-#define DRV_VERSION	"1.5"
+#define DRV_VERSION	"1.6"
 #define DRV_AUTHOR	"Pete Popov <ppopov@embeddedalley.com>"
 #define DRV_DESC	"Au1xxx on-chip Ethernet driver"
 
@@ -107,13 +107,13 @@ extern char * __init prom_getcmdline(void);
 /*
  * Theory of operation
  *
- * The Au1000 MACs use a simple rx and tx descriptor ring scheme. 
- * There are four receive and four transmit descriptors.  These 
- * descriptors are not in memory; rather, they are just a set of 
+ * The Au1000 MACs use a simple rx and tx descriptor ring scheme.
+ * There are four receive and four transmit descriptors.  These
+ * descriptors are not in memory; rather, they are just a set of
  * hardware registers.
  *
  * Since the Au1000 has a coherent data cache, the receive and
- * transmit buffers are allocated from the KSEG0 segment. The 
+ * transmit buffers are allocated from the KSEG0 segment. The
  * hardware registers, however, are still mapped at KSEG1 to
  * make sure there's no out-of-order writes, and that all writes
  * complete immediately.
@@ -123,7 +123,7 @@ extern char * __init prom_getcmdline(void);
  * the mac address is, and the mac address is not passed on the
  * command line.
  */
-static unsigned char au1000_mac_addr[6] __devinitdata = { 
+static unsigned char au1000_mac_addr[6] __devinitdata = {
 	0x00, 0x50, 0xc2, 0x0c, 0x30, 0x00
 };
 
@@ -207,13 +207,13 @@ static int mdio_read(struct net_device *dev, int phy_addr, int reg)
 	while (*mii_control_reg & MAC_MII_BUSY) {
 		mdelay(1);
 		if (--timedout == 0) {
-			printk(KERN_ERR "%s: read_MII busy timeout!!\n", 
+			printk(KERN_ERR "%s: read_MII busy timeout!!\n",
 					dev->name);
 			return -1;
 		}
 	}
 
-	mii_control = MAC_SET_MII_SELECT_REG(reg) | 
+	mii_control = MAC_SET_MII_SELECT_REG(reg) |
 		MAC_SET_MII_SELECT_PHY(phy_addr) | MAC_MII_READ;
 
 	*mii_control_reg = mii_control;
@@ -222,7 +222,7 @@ static int mdio_read(struct net_device *dev, int phy_addr, int reg)
 	while (*mii_control_reg & MAC_MII_BUSY) {
 		mdelay(1);
 		if (--timedout == 0) {
-			printk(KERN_ERR "%s: mdio_read busy timeout!!\n", 
+			printk(KERN_ERR "%s: mdio_read busy timeout!!\n",
 					dev->name);
 			return -1;
 		}
@@ -241,13 +241,13 @@ static void mdio_write(struct net_device *dev, int phy_addr, int reg, u16 value)
 	while (*mii_control_reg & MAC_MII_BUSY) {
 		mdelay(1);
 		if (--timedout == 0) {
-			printk(KERN_ERR "%s: mdio_write busy timeout!!\n", 
+			printk(KERN_ERR "%s: mdio_write busy timeout!!\n",
 					dev->name);
 			return;
 		}
 	}
 
-	mii_control = MAC_SET_MII_SELECT_REG(reg) | 
+	mii_control = MAC_SET_MII_SELECT_REG(reg) |
 		MAC_SET_MII_SELECT_PHY(phy_addr) | MAC_MII_WRITE;
 
 	*mii_data_reg = value;
@@ -394,7 +394,7 @@ static int mii_probe (struct net_device *dev)
 
 /*
  * Buffer allocation/deallocation routines. The buffer descriptor returned
- * has the virtual and dma address of a buffer suitable for 
+ * has the virtual and dma address of a buffer suitable for
  * both, receive and transmit operations.
  */
 static db_dest_t *GetFreeDB(struct au1000_private *aup)
@@ -500,22 +500,22 @@ static void reset_mac(struct net_device *dev)
 	spin_unlock_irqrestore(&aup->lock, flags);
 }
 
-/* 
+/*
  * Setup the receive and transmit "rings".  These pointers are the addresses
  * of the rx and tx MAC DMA registers so they are fixed by the hardware --
  * these are not descriptors sitting in memory.
  */
-static void 
+static void
 setup_hw_rings(struct au1000_private *aup, u32 rx_base, u32 tx_base)
 {
 	int i;
 
 	for (i = 0; i < NUM_RX_DMA; i++) {
-		aup->rx_dma_ring[i] = 
+		aup->rx_dma_ring[i] =
 			(volatile rx_dma_t *) (rx_base + sizeof(rx_dma_t)*i);
 	}
 	for (i = 0; i < NUM_TX_DMA; i++) {
-		aup->tx_dma_ring[i] = 
+		aup->tx_dma_ring[i] =
 			(volatile tx_dma_t *) (tx_base + sizeof(tx_dma_t)*i);
 	}
 }
@@ -608,7 +608,7 @@ au1000_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
 	info->regdump_len = 0;
 }
 
-static struct ethtool_ops au1000_ethtool_ops = {
+static const struct ethtool_ops au1000_ethtool_ops = {
 	.get_settings = au1000_get_settings,
 	.set_settings = au1000_set_settings,
 	.get_drvinfo = au1000_get_drvinfo,
@@ -691,7 +691,7 @@ static struct net_device * au1000_probe(int port_num)
 				/* Use the hard coded MAC addresses */
 			else {
 				str2eaddr(ethaddr, pmac + strlen("ethaddr="));
-				memcpy(au1000_mac_addr, ethaddr, 
+				memcpy(au1000_mac_addr, ethaddr,
 				       sizeof(au1000_mac_addr));
 			}
 		}
@@ -780,8 +780,8 @@ static struct net_device * au1000_probe(int port_num)
 	dev->tx_timeout = au1000_tx_timeout;
 	dev->watchdog_timeo = ETH_TX_TIMEOUT;
 
-	/* 
-	 * The boot code uses the ethernet controller, so reset it to start 
+	/*
+	 * The boot code uses the ethernet controller, so reset it to start
 	 * fresh.  au1000_init() expects that the device is in reset state.
 	 */
 	reset_mac(dev);
@@ -810,7 +810,7 @@ err_out:
 	return NULL;
 }
 
-/* 
+/*
  * Initialize the interface.
  *
  * When the device powers up, the clocks are disabled and the
@@ -826,7 +826,7 @@ static int au1000_init(struct net_device *dev)
 	int i;
 	u32 control;
 
-	if (au1000_debug > 4) 
+	if (au1000_debug > 4)
 		printk("%s: au1000_init\n", dev->name);
 
 	/* bring the device out of reset */
@@ -1102,8 +1102,8 @@ static int au1000_tx(struct sk_buff *skb, struct net_device *dev)
 	int i;
 
 	if (au1000_debug > 5)
-		printk("%s: tx: aup %x len=%d, data=%p, head %d\n", 
-				dev->name, (unsigned)aup, skb->len, 
+		printk("%s: tx: aup %x len=%d, data=%p, head %d\n",
+				dev->name, (unsigned)aup, skb->len,
 				skb->data, aup->tx_head);
 
 	ptxd = aup->tx_dma_ring[aup->tx_head];
@@ -1127,7 +1127,7 @@ static int au1000_tx(struct sk_buff *skb, struct net_device *dev)
 	pDB = aup->tx_db_inuse[aup->tx_head];
 	memcpy((void *)pDB->vaddr, skb->data, skb->len);
 	if (skb->len < ETH_ZLEN) {
-		for (i=skb->len; i<ETH_ZLEN; i++) { 
+		for (i=skb->len; i<ETH_ZLEN; i++) {
 			((char *)pDB->vaddr)[i] = 0;
 		}
 		ptxd->len = ETH_ZLEN;
@@ -1166,7 +1166,7 @@ static inline void update_rx_stats(struct net_device *dev, u32 status)
 		if (status & RX_COLL)
 			ps->collisions++;
 	}
-	else 
+	else
 		ps->rx_bytes += status & RX_FRAME_LEN_MASK;
 
 }
@@ -1215,13 +1215,13 @@ static int au1000_rx(struct net_device *dev)
 		}
 		else {
 			if (au1000_debug > 4) {
-				if (status & RX_MISSED_FRAME) 
+				if (status & RX_MISSED_FRAME)
 					printk("rx miss\n");
-				if (status & RX_WDOG_TIMER) 
+				if (status & RX_WDOG_TIMER)
 					printk("rx wdog\n");
-				if (status & RX_RUNT) 
+				if (status & RX_RUNT)
 					printk("rx runt\n");
-				if (status & RX_OVERLEN) 
+				if (status & RX_OVERLEN)
 					printk("rx overlen\n");
 				if (status & RX_COLL)
 					printk("rx coll\n");
@@ -1287,12 +1287,11 @@ static void set_rx_mode(struct net_device *dev)
 {
 	struct au1000_private *aup = (struct au1000_private *) dev->priv;
 
-	if (au1000_debug > 4) 
+	if (au1000_debug > 4)
 		printk("%s: set_rx_mode: flags=%x\n", dev->name, dev->flags);
 
 	if (dev->flags & IFF_PROMISC) {			/* Set promiscuous. */
 		aup->mac->control |= MAC_PROMISCUOUS;
-		printk(KERN_INFO "%s: Promiscuous mode enabled.\n", dev->name);
 	} else if ((dev->flags & IFF_ALLMULTI)  ||
 			   dev->mc_count > MULTICAST_FILTER_LIMIT) {
 		aup->mac->control |= MAC_PASS_ALL_MULTI;
@@ -1306,7 +1305,7 @@ static void set_rx_mode(struct net_device *dev)
 		mc_filter[1] = mc_filter[0] = 0;
 		for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
 			 i++, mclist = mclist->next) {
-			set_bit(ether_crc(ETH_ALEN, mclist->dmi_addr)>>26, 
+			set_bit(ether_crc(ETH_ALEN, mclist->dmi_addr)>>26,
 					(long *)mc_filter);
 		}
 		aup->mac->multi_hash_high = mc_filter[1];

+ 6 - 6
drivers/net/au1000_eth.h

@@ -23,7 +23,7 @@
  *
  * ########################################################################
  *
- * 
+ *
  */
 
 
@@ -40,8 +40,8 @@
 
 #define MULTICAST_FILTER_LIMIT 64
 
-/* 
- * Data Buffer Descriptor. Data buffers must be aligned on 32 byte 
+/*
+ * Data Buffer Descriptor. Data buffers must be aligned on 32 byte
  * boundary for both, receive and transmit.
  */
 typedef struct db_dest {
@@ -51,7 +51,7 @@ typedef struct db_dest {
 } db_dest_t;
 
 /*
- * The transmit and receive descriptors are memory 
+ * The transmit and receive descriptors are memory
  * mapped registers.
  */
 typedef struct tx_dma {
@@ -107,9 +107,9 @@ struct au1000_private {
 
 	struct phy_device *phy_dev;
 	struct mii_bus mii_bus;
-	
+
 	/* These variables are just for quick access to certain regs addresses. */
-	volatile mac_reg_t *mac;  /* mac registers                      */   
+	volatile mac_reg_t *mac;  /* mac registers                      */
 	volatile u32 *enable;     /* address of MAC Enable Register     */
 
 	u32 vaddr;                /* virtual address of rx/tx buffers   */

+ 2 - 2
drivers/net/b44.c

@@ -2012,7 +2012,7 @@ static int b44_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
 	return 0;
 }
 
-static struct ethtool_ops b44_ethtool_ops = {
+static const struct ethtool_ops b44_ethtool_ops = {
 	.get_drvinfo		= b44_get_drvinfo,
 	.get_settings		= b44_get_settings,
 	.set_settings		= b44_set_settings,
@@ -2354,7 +2354,7 @@ static int __init b44_init(void)
 	dma_desc_align_mask = ~(dma_desc_align_size - 1);
 	dma_desc_sync_size = max_t(unsigned int, dma_desc_align_size, sizeof(struct dma_desc));
 
-	return pci_module_init(&b44_driver);
+	return pci_register_driver(&b44_driver);
 }
 
 static void __exit b44_cleanup(void)

+ 27 - 27
drivers/net/bmac.c

@@ -333,7 +333,7 @@ bmac_init_registers(struct net_device *dev)
 		udelay(10000);
 	}
 
-	bmwrite(dev, RSEED, (unsigned short)0x1968);		
+	bmwrite(dev, RSEED, (unsigned short)0x1968);
 
 	regValue = bmread(dev, XIFC);
 	regValue |= TxOutputEnable;
@@ -373,7 +373,7 @@ bmac_init_registers(struct net_device *dev)
 	bmwrite(dev, BHASH2, bp->hash_table_mask[1]); 	/* bits 31 - 16 */
 	bmwrite(dev, BHASH1, bp->hash_table_mask[2]); 	/* bits 47 - 32 */
 	bmwrite(dev, BHASH0, bp->hash_table_mask[3]); 	/* bits 63 - 48 */
-	
+
 	pWord16 = (unsigned short *)dev->dev_addr;
 	bmwrite(dev, MADD0, *pWord16++);
 	bmwrite(dev, MADD1, *pWord16++);
@@ -411,11 +411,11 @@ bmac_start_chip(struct net_device *dev)
 	/* enable rx dma channel */
 	dbdma_continue(rd);
 
-	oldConfig = bmread(dev, TXCFG);		
+	oldConfig = bmread(dev, TXCFG);
 	bmwrite(dev, TXCFG, oldConfig | TxMACEnable );
 
 	/* turn on rx plus any other bits already on (promiscuous possibly) */
-	oldConfig = bmread(dev, RXCFG);		
+	oldConfig = bmread(dev, RXCFG);
 	bmwrite(dev, RXCFG, oldConfig | RxMACEnable );
 	udelay(20000);
 }
@@ -456,12 +456,12 @@ static void bmac_init_chip(struct net_device *dev)
 #ifdef CONFIG_PM
 static int bmac_suspend(struct macio_dev *mdev, pm_message_t state)
 {
-	struct net_device* dev = macio_get_drvdata(mdev);	
+	struct net_device* dev = macio_get_drvdata(mdev);
 	struct bmac_data *bp = netdev_priv(dev);
 	unsigned long flags;
 	unsigned short config;
 	int i;
-	
+
 	netif_device_detach(dev);
 	/* prolly should wait for dma to finish & turn off the chip */
 	spin_lock_irqsave(&bp->lock, flags);
@@ -477,7 +477,7 @@ static int bmac_suspend(struct macio_dev *mdev, pm_message_t state)
 	if (bp->opened) {
 		volatile struct dbdma_regs __iomem *rd = bp->rx_dma;
 		volatile struct dbdma_regs __iomem *td = bp->tx_dma;
-			
+
 		config = bmread(dev, RXCFG);
 		bmwrite(dev, RXCFG, (config & ~RxMACEnable));
 		config = bmread(dev, TXCFG);
@@ -506,7 +506,7 @@ static int bmac_suspend(struct macio_dev *mdev, pm_message_t state)
 
 static int bmac_resume(struct macio_dev *mdev)
 {
-	struct net_device* dev = macio_get_drvdata(mdev);	
+	struct net_device* dev = macio_get_drvdata(mdev);
 	struct bmac_data *bp = netdev_priv(dev);
 
 	/* see if this is enough */
@@ -855,12 +855,12 @@ crc416(unsigned int curval, unsigned short nxtval)
 		else high_crc_set = 1;
 
 		cur = cur << 1;
-	
+
 		if ((next & 0x0001) == 0) low_data_set = 0;
 		else low_data_set = 1;
 
 		next = next >> 1;
-	
+
 		/* do the XOR */
 		if (high_crc_set ^ low_data_set) cur = cur ^ ENET_CRCPOLY;
 	}
@@ -869,7 +869,7 @@ crc416(unsigned int curval, unsigned short nxtval)
 
 static unsigned int
 bmac_crc(unsigned short *address)
-{	
+{
 	unsigned int newcrc;
 
 	XXDEBUG(("bmac_crc: addr=%#04x, %#04x, %#04x\n", *address, address[1], address[2]));
@@ -887,7 +887,7 @@ bmac_crc(unsigned short *address)
 
 static void
 bmac_addhash(struct bmac_data *bp, unsigned char *addr)
-{	
+{
 	unsigned int	 crc;
 	unsigned short	 mask;
 
@@ -902,7 +902,7 @@ bmac_addhash(struct bmac_data *bp, unsigned char *addr)
 
 static void
 bmac_removehash(struct bmac_data *bp, unsigned char *addr)
-{	
+{
 	unsigned int crc;
 	unsigned char mask;
 
@@ -1054,13 +1054,13 @@ static void bmac_set_multicast(struct net_device *dev)
 		bmwrite(dev, RXCFG, rx_cfg);
 	} else {
 		u16 hash_table[4];
-	
+
 		rx_cfg = bmread(dev, RXCFG);
 		rx_cfg &= ~RxPromiscEnable;
 		bmwrite(dev, RXCFG, rx_cfg);
 
 		for(i = 0; i < 4; i++) hash_table[i] = 0;
-	
+
 		for(i = 0; i < dev->mc_count; i++) {
 			addrs = dmi->dmi_addr;
 			dmi = dmi->next;
@@ -1220,7 +1220,7 @@ bmac_get_station_address(struct net_device *dev, unsigned char *ea)
 	int i;
 	unsigned short data;
 
-	for (i = 0; i < 6; i++)	
+	for (i = 0; i < 6; i++)
 		{
 			reset_and_select_srom(dev);
 			data = read_srom(dev, i + EnetAddressOffset/2, SROMAddressBits);
@@ -1244,7 +1244,7 @@ static void bmac_reset_and_enable(struct net_device *dev)
 	bmac_start_chip(dev);
 	bmwrite(dev, INTDISABLE, EnableNormal);
 	bp->sleeping = 0;
-	
+
 	/*
 	 * It seems that the bmac can't receive until it's transmitted
 	 * a packet.  So we give it a dummy packet to transmit.
@@ -1289,7 +1289,7 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_device_i
 		printk(KERN_ERR "BMAC: alloc_etherdev failed, out of memory\n");
 		return -ENOMEM;
 	}
-		
+
 	bp = netdev_priv(dev);
 	SET_MODULE_OWNER(dev);
 	SET_NETDEV_DEV(dev, &mdev->ofdev.dev);
@@ -1382,7 +1382,7 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_device_i
 		printk("%c%.2x", (j? ':': ' '), dev->dev_addr[j]);
 	XXDEBUG((", base_addr=%#0lx", dev->base_addr));
 	printk("\n");
-	
+
 	return 0;
 
 err_out_irq2:
@@ -1474,7 +1474,7 @@ bmac_start(struct net_device *dev)
 
 	if (bp->sleeping)
 		return;
-		
+
 	spin_lock_irqsave(&bp->lock, flags);
 	while (1) {
 		i = bp->tx_fill + 1;
@@ -1562,9 +1562,9 @@ static void bmac_tx_timeout(unsigned long data)
 	}
 
 	/* turn it back on */
-	oldConfig = bmread(dev, RXCFG);		
+	oldConfig = bmread(dev, RXCFG);
 	bmwrite(dev, RXCFG, oldConfig | RxMACEnable );
-	oldConfig = bmread(dev, TXCFG);		
+	oldConfig = bmread(dev, TXCFG);
 	bmwrite(dev, TXCFG, oldConfig | TxMACEnable );
 
 	spin_unlock_irqrestore(&bp->lock, flags);
@@ -1574,10 +1574,10 @@ static void bmac_tx_timeout(unsigned long data)
 static void dump_dbdma(volatile struct dbdma_cmd *cp,int count)
 {
 	int i,*ip;
-	
+
 	for (i=0;i< count;i++) {
 		ip = (int*)(cp+i);
-	
+
 		printk("dbdma req 0x%x addr 0x%x baddr 0x%x xfer/res 0x%x\n",
 		       ld_le32(ip+0),
 		       ld_le32(ip+1),
@@ -1633,7 +1633,7 @@ static int __devexit bmac_remove(struct macio_dev *mdev)
 	unregister_netdev(dev);
 
        	free_irq(dev->irq, dev);
-	free_irq(bp->tx_dma_intr, dev);	
+	free_irq(bp->tx_dma_intr, dev);
 	free_irq(bp->rx_dma_intr, dev);
 
 	iounmap((void __iomem *)dev->base_addr);
@@ -1647,7 +1647,7 @@ static int __devexit bmac_remove(struct macio_dev *mdev)
 	return 0;
 }
 
-static struct of_device_id bmac_match[] = 
+static struct of_device_id bmac_match[] =
 {
 	{
 	.name 		= "bmac",
@@ -1662,7 +1662,7 @@ static struct of_device_id bmac_match[] =
 };
 MODULE_DEVICE_TABLE (of, bmac_match);
 
-static struct macio_driver bmac_driver = 
+static struct macio_driver bmac_driver =
 {
 	.name 		= "bmac",
 	.match_table	= bmac_match,

+ 1 - 1
drivers/net/bmac.h

@@ -14,7 +14,7 @@
  * (HME) controller.  See sunhme.h
  */
 
- 
+
 /* register offsets */
 
 /* global status and control */

+ 83 - 83
drivers/net/bnx2.c

@@ -148,7 +148,7 @@ static struct flash_spec flash_table[] =
 	 SAIFUN_FLASH_BYTE_ADDR_MASK, 0,
 	 "Entry 0100"},
 	/* Entry 0101: ST M45PE10 (non-buffered flash, TetonII B0) */
-	{0x19000002, 0x5b808201, 0x000500db, 0x03840253, 0xaf020406,        
+	{0x19000002, 0x5b808201, 0x000500db, 0x03840253, 0xaf020406,
 	 0, ST_MICRO_FLASH_PAGE_BITS, ST_MICRO_FLASH_PAGE_SIZE,
 	 ST_MICRO_FLASH_BYTE_ADDR_MASK, ST_MICRO_FLASH_BASE_TOTAL_SIZE*2,
 	 "Entry 0101: ST M45PE10 (128kB non-bufferred)"},
@@ -317,7 +317,7 @@ bnx2_write_phy(struct bnx2 *bp, u32 reg, u32 val)
 		BNX2_EMAC_MDIO_COMM_COMMAND_WRITE |
 		BNX2_EMAC_MDIO_COMM_START_BUSY | BNX2_EMAC_MDIO_COMM_DISEXT;
 	REG_WR(bp, BNX2_EMAC_MDIO_COMM, val1);
-    
+
 	for (i = 0; i < 50; i++) {
 		udelay(10);
 
@@ -585,7 +585,7 @@ bnx2_resolve_flow_ctrl(struct bnx2 *bp)
 	u32 local_adv, remote_adv;
 
 	bp->flow_ctrl = 0;
-	if ((bp->autoneg & (AUTONEG_SPEED | AUTONEG_FLOW_CTRL)) != 
+	if ((bp->autoneg & (AUTONEG_SPEED | AUTONEG_FLOW_CTRL)) !=
 		(AUTONEG_SPEED | AUTONEG_FLOW_CTRL)) {
 
 		if (bp->duplex == DUPLEX_FULL) {
@@ -1087,7 +1087,7 @@ bnx2_setup_serdes_phy(struct bnx2 *bp)
 
 #define PHY_ALL_10_100_SPEED (ADVERTISE_10HALF | ADVERTISE_10FULL | \
 	ADVERTISE_100HALF | ADVERTISE_100FULL | ADVERTISE_CSMA)
-	
+
 #define PHY_ALL_1000_SPEED (ADVERTISE_1000HALF | ADVERTISE_1000FULL)
 
 static int
@@ -1120,7 +1120,7 @@ bnx2_setup_copper_phy(struct bnx2 *bp)
 			new_adv_reg |= ADVERTISE_100FULL;
 		if (bp->advertising & ADVERTISED_1000baseT_Full)
 			new_adv1000_reg |= ADVERTISE_1000FULL;
-		
+
 		new_adv_reg |= ADVERTISE_CSMA;
 
 		new_adv_reg |= bnx2_phy_get_pause_adv(bp);
@@ -1157,7 +1157,7 @@ bnx2_setup_copper_phy(struct bnx2 *bp)
 
 		bnx2_read_phy(bp, MII_BMSR, &bmsr);
 		bnx2_read_phy(bp, MII_BMSR, &bmsr);
-		
+
 		if (bmsr & BMSR_LSTATUS) {
 			/* Force link down */
 			bnx2_write_phy(bp, MII_BMCR, BMCR_LOOPBACK);
@@ -1547,7 +1547,7 @@ bnx2_alloc_bad_rbuf(struct bnx2 *bp)
 }
 
 static void
-bnx2_set_mac_addr(struct bnx2 *bp) 
+bnx2_set_mac_addr(struct bnx2 *bp)
 {
 	u32 val;
 	u8 *mac_addr = bp->dev->dev_addr;
@@ -1556,7 +1556,7 @@ bnx2_set_mac_addr(struct bnx2 *bp)
 
 	REG_WR(bp, BNX2_EMAC_MAC_MATCH0, val);
 
-	val = (mac_addr[2] << 24) | (mac_addr[3] << 16) | 
+	val = (mac_addr[2] << 24) | (mac_addr[3] << 16) |
 		(mac_addr[4] << 8) | mac_addr[5];
 
 	REG_WR(bp, BNX2_EMAC_MAC_MATCH1, val);
@@ -1638,7 +1638,7 @@ bnx2_tx_int(struct bnx2 *bp)
 
 		tx_buf = &bp->tx_buf_ring[sw_ring_cons];
 		skb = tx_buf->skb;
-#ifdef BCM_TSO 
+#ifdef BCM_TSO
 		/* partial BD completions possible with TSO packets */
 		if (skb_is_gso(skb)) {
 			u16 last_idx, last_ring_idx;
@@ -1984,12 +1984,12 @@ bnx2_poll(struct net_device *dev, int *budget)
 
 		if (orig_budget > dev->quota)
 			orig_budget = dev->quota;
-		
+
 		work_done = bnx2_rx_int(bp, orig_budget);
 		*budget -= work_done;
 		dev->quota -= work_done;
 	}
-	
+
 	bp->last_status_idx = bp->status_blk->status_idx;
 	rmb();
 
@@ -2322,7 +2322,7 @@ bnx2_init_cpus(struct bnx2 *bp)
 	cpu_reg.bp = BNX2_RXP_CPU_HW_BREAKPOINT;
 	cpu_reg.spad_base = BNX2_RXP_SCRATCH;
 	cpu_reg.mips_view_base = 0x8000000;
-    
+
 	fw.ver_major = bnx2_RXP_b06FwReleaseMajor;
 	fw.ver_minor = bnx2_RXP_b06FwReleaseMinor;
 	fw.ver_fix = bnx2_RXP_b06FwReleaseFix;
@@ -2374,7 +2374,7 @@ bnx2_init_cpus(struct bnx2 *bp)
 	cpu_reg.bp = BNX2_TXP_CPU_HW_BREAKPOINT;
 	cpu_reg.spad_base = BNX2_TXP_SCRATCH;
 	cpu_reg.mips_view_base = 0x8000000;
-    
+
 	fw.ver_major = bnx2_TXP_b06FwReleaseMajor;
 	fw.ver_minor = bnx2_TXP_b06FwReleaseMinor;
 	fw.ver_fix = bnx2_TXP_b06FwReleaseFix;
@@ -2426,7 +2426,7 @@ bnx2_init_cpus(struct bnx2 *bp)
 	cpu_reg.bp = BNX2_TPAT_CPU_HW_BREAKPOINT;
 	cpu_reg.spad_base = BNX2_TPAT_SCRATCH;
 	cpu_reg.mips_view_base = 0x8000000;
-    
+
 	fw.ver_major = bnx2_TPAT_b06FwReleaseMajor;
 	fw.ver_minor = bnx2_TPAT_b06FwReleaseMinor;
 	fw.ver_fix = bnx2_TPAT_b06FwReleaseFix;
@@ -2478,7 +2478,7 @@ bnx2_init_cpus(struct bnx2 *bp)
 	cpu_reg.bp = BNX2_COM_CPU_HW_BREAKPOINT;
 	cpu_reg.spad_base = BNX2_COM_SCRATCH;
 	cpu_reg.mips_view_base = 0x8000000;
-    
+
 	fw.ver_major = bnx2_COM_b06FwReleaseMajor;
 	fw.ver_minor = bnx2_COM_b06FwReleaseMinor;
 	fw.ver_fix = bnx2_COM_b06FwReleaseFix;
@@ -2741,7 +2741,7 @@ bnx2_enable_nvram_access(struct bnx2 *bp)
 
 	val = REG_RD(bp, BNX2_NVM_ACCESS_ENABLE);
 	/* Enable both bits, even on read. */
-	REG_WR(bp, BNX2_NVM_ACCESS_ENABLE, 
+	REG_WR(bp, BNX2_NVM_ACCESS_ENABLE,
 	       val | BNX2_NVM_ACCESS_ENABLE_EN | BNX2_NVM_ACCESS_ENABLE_WR_EN);
 }
 
@@ -2752,7 +2752,7 @@ bnx2_disable_nvram_access(struct bnx2 *bp)
 
 	val = REG_RD(bp, BNX2_NVM_ACCESS_ENABLE);
 	/* Disable both bits, even after read. */
-	REG_WR(bp, BNX2_NVM_ACCESS_ENABLE, 
+	REG_WR(bp, BNX2_NVM_ACCESS_ENABLE,
 		val & ~(BNX2_NVM_ACCESS_ENABLE_EN |
 			BNX2_NVM_ACCESS_ENABLE_WR_EN));
 }
@@ -3143,7 +3143,7 @@ bnx2_nvram_write(struct bnx2 *bp, u32 offset, u8 *data_buf,
 		/* Find the data_start addr */
 		data_start = (written == 0) ? offset32 : page_start;
 		/* Find the data_end addr */
-		data_end = (page_end > offset32 + len32) ? 
+		data_end = (page_end > offset32 + len32) ?
 			(offset32 + len32) : page_end;
 
 		/* Request access to the flash interface. */
@@ -3164,8 +3164,8 @@ bnx2_nvram_write(struct bnx2 *bp, u32 offset, u8 *data_buf,
 					cmd_flags |= BNX2_NVM_COMMAND_LAST;
 				}
 				rc = bnx2_nvram_read_dword(bp,
-					page_start + j, 
-					&flash_buffer[j], 
+					page_start + j,
+					&flash_buffer[j],
 					cmd_flags);
 
 				if (rc)
@@ -3192,7 +3192,7 @@ bnx2_nvram_write(struct bnx2 *bp, u32 offset, u8 *data_buf,
 		if (bp->flash_info->buffered == 0) {
 			for (addr = page_start; addr < data_start;
 				addr += 4, i += 4) {
-				
+
 				rc = bnx2_nvram_write_dword(bp, addr,
 					&flash_buffer[i], cmd_flags);
 
@@ -3226,7 +3226,7 @@ bnx2_nvram_write(struct bnx2 *bp, u32 offset, u8 *data_buf,
 		if (bp->flash_info->buffered == 0) {
 			for (addr = data_end; addr < page_end;
 				addr += 4, i += 4) {
-			
+
 				if (addr == page_end-4) {
 					cmd_flags = BNX2_NVM_COMMAND_LAST;
                 		}
@@ -3351,9 +3351,9 @@ bnx2_init_chip(struct bnx2 *bp)
 	val = BNX2_DMA_CONFIG_DATA_BYTE_SWAP |
 	      BNX2_DMA_CONFIG_DATA_WORD_SWAP |
 #ifdef __BIG_ENDIAN
-	      BNX2_DMA_CONFIG_CNTL_BYTE_SWAP | 
+	      BNX2_DMA_CONFIG_CNTL_BYTE_SWAP |
 #endif
-	      BNX2_DMA_CONFIG_CNTL_WORD_SWAP | 
+	      BNX2_DMA_CONFIG_CNTL_WORD_SWAP |
 	      DMA_READ_CHANS << 12 |
 	      DMA_WRITE_CHANS << 16;
 
@@ -3446,7 +3446,7 @@ bnx2_init_chip(struct bnx2 *bp)
 	REG_WR(bp, BNX2_HC_STATISTICS_ADDR_H,
 	       (u64) bp->stats_blk_mapping >> 32);
 
-	REG_WR(bp, BNX2_HC_TX_QUICK_CONS_TRIP, 
+	REG_WR(bp, BNX2_HC_TX_QUICK_CONS_TRIP,
 	       (bp->tx_quick_cons_trip_int << 16) | bp->tx_quick_cons_trip);
 
 	REG_WR(bp, BNX2_HC_RX_QUICK_CONS_TRIP,
@@ -3511,7 +3511,7 @@ bnx2_init_tx_ring(struct bnx2 *bp)
 	bp->tx_wake_thresh = bp->tx_ring_size / 2;
 
 	txbd = &bp->tx_desc_ring[MAX_TX_DESC_CNT];
-		
+
 	txbd->tx_bd_haddr_hi = (u64) bp->tx_desc_mapping >> 32;
 	txbd->tx_bd_haddr_lo = (u64) bp->tx_desc_mapping & 0xffffffff;
 
@@ -3519,7 +3519,7 @@ bnx2_init_tx_ring(struct bnx2 *bp)
 	bp->tx_cons = 0;
 	bp->hw_tx_cons = 0;
 	bp->tx_prod_bseq = 0;
-	
+
 	val = BNX2_L2CTX_TYPE_TYPE_L2;
 	val |= BNX2_L2CTX_TYPE_SIZE_L2;
 	CTX_WR(bp, GET_CID_ADDR(TX_CID), BNX2_L2CTX_TYPE, val);
@@ -3540,7 +3540,7 @@ bnx2_init_rx_ring(struct bnx2 *bp)
 {
 	struct rx_bd *rxbd;
 	int i;
-	u16 prod, ring_prod; 
+	u16 prod, ring_prod;
 	u32 val;
 
 	/* 8 for CRC and VLAN */
@@ -3552,7 +3552,7 @@ bnx2_init_rx_ring(struct bnx2 *bp)
 	bp->rx_cons = 0;
 	bp->hw_rx_cons = 0;
 	bp->rx_prod_bseq = 0;
-		
+
 	for (i = 0; i < bp->rx_max_ring; i++) {
 		int j;
 
@@ -3927,7 +3927,7 @@ bnx2_test_memory(struct bnx2 *bp)
 			return ret;
 		}
 	}
-	
+
 	return ret;
 }
 
@@ -4124,7 +4124,7 @@ bnx2_test_link(struct bnx2 *bp)
 	bnx2_read_phy(bp, MII_BMSR, &bmsr);
 	bnx2_read_phy(bp, MII_BMSR, &bmsr);
 	spin_unlock_bh(&bp->phy_lock);
-		
+
 	if (bmsr & BMSR_LSTATUS) {
 		return 0;
 	}
@@ -4291,7 +4291,7 @@ bnx2_open(struct net_device *dev)
 		bnx2_free_mem(bp);
 		return rc;
 	}
-	
+
 	mod_timer(&bp->timer, jiffies + bp->current_interval);
 
 	atomic_set(&bp->intr_sem, 0);
@@ -4431,7 +4431,7 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
 		vlan_tag_flags |=
 			(TX_BD_FLAGS_VLAN_TAG | (vlan_tx_tag_get(skb) << 16));
 	}
-#ifdef BCM_TSO 
+#ifdef BCM_TSO
 	if ((mss = skb_shinfo(skb)->gso_size) &&
 		(skb->len > (bp->dev->mtu + ETH_HLEN))) {
 		u32 tcp_opt_len, ip_tcp_len;
@@ -4470,7 +4470,7 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	}
 
 	mapping = pci_map_single(bp->pdev, skb->data, len, PCI_DMA_TODEVICE);
-	
+
 	tx_buf = &bp->tx_buf_ring[ring_prod];
 	tx_buf->skb = skb;
 	pci_unmap_addr_set(tx_buf, mapping, mapping);
@@ -4600,23 +4600,23 @@ bnx2_get_stats(struct net_device *dev)
 	net_stats->tx_bytes =
 		GET_NET_STATS(stats_blk->stat_IfHCOutOctets);
 
-	net_stats->multicast = 
+	net_stats->multicast =
 		GET_NET_STATS(stats_blk->stat_IfHCOutMulticastPkts);
 
-	net_stats->collisions = 
+	net_stats->collisions =
 		(unsigned long) stats_blk->stat_EtherStatsCollisions;
 
-	net_stats->rx_length_errors = 
+	net_stats->rx_length_errors =
 		(unsigned long) (stats_blk->stat_EtherStatsUndersizePkts +
 		stats_blk->stat_EtherStatsOverrsizePkts);
 
-	net_stats->rx_over_errors = 
+	net_stats->rx_over_errors =
 		(unsigned long) stats_blk->stat_IfInMBUFDiscards;
 
-	net_stats->rx_frame_errors = 
+	net_stats->rx_frame_errors =
 		(unsigned long) stats_blk->stat_Dot3StatsAlignmentErrors;
 
-	net_stats->rx_crc_errors = 
+	net_stats->rx_crc_errors =
 		(unsigned long) stats_blk->stat_Dot3StatsFCSErrors;
 
 	net_stats->rx_errors = net_stats->rx_length_errors +
@@ -4637,7 +4637,7 @@ bnx2_get_stats(struct net_device *dev)
 	}
 
 	net_stats->tx_errors =
-    		(unsigned long) 
+    		(unsigned long)
 		stats_blk->stat_emac_tx_stat_dot3statsinternalmactransmiterrors
 		+
 		net_stats->tx_aborted_errors +
@@ -4698,7 +4698,7 @@ bnx2_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 
 	return 0;
 }
-  
+
 static int
 bnx2_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
@@ -4711,7 +4711,7 @@ bnx2_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 	if (cmd->autoneg == AUTONEG_ENABLE) {
 		autoneg |= AUTONEG_SPEED;
 
-		cmd->advertising &= ETHTOOL_ALL_COPPER_SPEED; 
+		cmd->advertising &= ETHTOOL_ALL_COPPER_SPEED;
 
 		/* allow advertising 1 speed */
 		if ((cmd->advertising == ADVERTISED_10baseT_Half) ||
@@ -4988,7 +4988,7 @@ bnx2_set_coalesce(struct net_device *dev, struct ethtool_coalesce *coal)
 	bp->rx_ticks = (u16) coal->rx_coalesce_usecs;
 	if (bp->rx_ticks > 0x3ff) bp->rx_ticks = 0x3ff;
 
-	bp->rx_quick_cons_trip = (u16) coal->rx_max_coalesced_frames; 
+	bp->rx_quick_cons_trip = (u16) coal->rx_max_coalesced_frames;
 	if (bp->rx_quick_cons_trip > 0xff) bp->rx_quick_cons_trip = 0xff;
 
 	bp->rx_ticks_int = (u16) coal->rx_coalesce_usecs_irq;
@@ -5206,46 +5206,46 @@ static const unsigned long bnx2_stats_offset_arr[BNX2_NUM_STATS] = {
     STATS_OFFSET32(stat_IfHCOutMulticastPkts_hi),
     STATS_OFFSET32(stat_IfHCOutBroadcastPkts_hi),
     STATS_OFFSET32(stat_emac_tx_stat_dot3statsinternalmactransmiterrors),
-    STATS_OFFSET32(stat_Dot3StatsCarrierSenseErrors),                 
-    STATS_OFFSET32(stat_Dot3StatsFCSErrors),                          
-    STATS_OFFSET32(stat_Dot3StatsAlignmentErrors),                    
-    STATS_OFFSET32(stat_Dot3StatsSingleCollisionFrames),              
-    STATS_OFFSET32(stat_Dot3StatsMultipleCollisionFrames),            
-    STATS_OFFSET32(stat_Dot3StatsDeferredTransmissions),              
-    STATS_OFFSET32(stat_Dot3StatsExcessiveCollisions),                
-    STATS_OFFSET32(stat_Dot3StatsLateCollisions),                     
-    STATS_OFFSET32(stat_EtherStatsCollisions),                        
-    STATS_OFFSET32(stat_EtherStatsFragments),                         
-    STATS_OFFSET32(stat_EtherStatsJabbers),                           
-    STATS_OFFSET32(stat_EtherStatsUndersizePkts),                     
-    STATS_OFFSET32(stat_EtherStatsOverrsizePkts),                     
-    STATS_OFFSET32(stat_EtherStatsPktsRx64Octets),                    
-    STATS_OFFSET32(stat_EtherStatsPktsRx65Octetsto127Octets),         
-    STATS_OFFSET32(stat_EtherStatsPktsRx128Octetsto255Octets),        
-    STATS_OFFSET32(stat_EtherStatsPktsRx256Octetsto511Octets),        
-    STATS_OFFSET32(stat_EtherStatsPktsRx512Octetsto1023Octets),       
-    STATS_OFFSET32(stat_EtherStatsPktsRx1024Octetsto1522Octets),      
-    STATS_OFFSET32(stat_EtherStatsPktsRx1523Octetsto9022Octets),      
-    STATS_OFFSET32(stat_EtherStatsPktsTx64Octets),                    
-    STATS_OFFSET32(stat_EtherStatsPktsTx65Octetsto127Octets),         
-    STATS_OFFSET32(stat_EtherStatsPktsTx128Octetsto255Octets),        
-    STATS_OFFSET32(stat_EtherStatsPktsTx256Octetsto511Octets),        
-    STATS_OFFSET32(stat_EtherStatsPktsTx512Octetsto1023Octets),       
-    STATS_OFFSET32(stat_EtherStatsPktsTx1024Octetsto1522Octets),      
-    STATS_OFFSET32(stat_EtherStatsPktsTx1523Octetsto9022Octets),      
-    STATS_OFFSET32(stat_XonPauseFramesReceived),                      
-    STATS_OFFSET32(stat_XoffPauseFramesReceived),                     
-    STATS_OFFSET32(stat_OutXonSent),                                  
-    STATS_OFFSET32(stat_OutXoffSent),                                 
-    STATS_OFFSET32(stat_MacControlFramesReceived),                    
-    STATS_OFFSET32(stat_IfInFramesL2FilterDiscards),                  
-    STATS_OFFSET32(stat_IfInMBUFDiscards),                            
+    STATS_OFFSET32(stat_Dot3StatsCarrierSenseErrors),
+    STATS_OFFSET32(stat_Dot3StatsFCSErrors),
+    STATS_OFFSET32(stat_Dot3StatsAlignmentErrors),
+    STATS_OFFSET32(stat_Dot3StatsSingleCollisionFrames),
+    STATS_OFFSET32(stat_Dot3StatsMultipleCollisionFrames),
+    STATS_OFFSET32(stat_Dot3StatsDeferredTransmissions),
+    STATS_OFFSET32(stat_Dot3StatsExcessiveCollisions),
+    STATS_OFFSET32(stat_Dot3StatsLateCollisions),
+    STATS_OFFSET32(stat_EtherStatsCollisions),
+    STATS_OFFSET32(stat_EtherStatsFragments),
+    STATS_OFFSET32(stat_EtherStatsJabbers),
+    STATS_OFFSET32(stat_EtherStatsUndersizePkts),
+    STATS_OFFSET32(stat_EtherStatsOverrsizePkts),
+    STATS_OFFSET32(stat_EtherStatsPktsRx64Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsRx65Octetsto127Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsRx128Octetsto255Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsRx256Octetsto511Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsRx512Octetsto1023Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsRx1024Octetsto1522Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsRx1523Octetsto9022Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsTx64Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsTx65Octetsto127Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsTx128Octetsto255Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsTx256Octetsto511Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsTx512Octetsto1023Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsTx1024Octetsto1522Octets),
+    STATS_OFFSET32(stat_EtherStatsPktsTx1523Octetsto9022Octets),
+    STATS_OFFSET32(stat_XonPauseFramesReceived),
+    STATS_OFFSET32(stat_XoffPauseFramesReceived),
+    STATS_OFFSET32(stat_OutXonSent),
+    STATS_OFFSET32(stat_OutXoffSent),
+    STATS_OFFSET32(stat_MacControlFramesReceived),
+    STATS_OFFSET32(stat_IfInFramesL2FilterDiscards),
+    STATS_OFFSET32(stat_IfInMBUFDiscards),
     STATS_OFFSET32(stat_FwRxDrop),
 };
 
 /* stat_IfHCInBadOctets and stat_Dot3StatsCarrierSenseErrors are
  * skipped because of errata.
- */               
+ */
 static u8 bnx2_5706_stats_len_arr[BNX2_NUM_STATS] = {
 	8,0,8,8,8,8,8,8,8,8,
 	4,0,4,4,4,4,4,4,4,4,
@@ -5429,7 +5429,7 @@ bnx2_phys_id(struct net_device *dev, u32 data)
 	return 0;
 }
 
-static struct ethtool_ops bnx2_ethtool_ops = {
+static const struct ethtool_ops bnx2_ethtool_ops = {
 	.get_settings		= bnx2_get_settings,
 	.set_settings		= bnx2_set_settings,
 	.get_drvinfo		= bnx2_get_drvinfo,
@@ -5665,7 +5665,7 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
 		bp->flags |= PCIX_FLAG;
 
 		clkreg = REG_RD(bp, BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS);
-		
+
 		clkreg &= BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET;
 		switch (clkreg) {
 		case BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_133MHZ:
@@ -5762,7 +5762,7 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
 	bp->tx_quick_cons_trip = 20;
 	bp->tx_ticks_int = 80;
 	bp->tx_ticks = 80;
-		
+
 	bp->rx_quick_cons_trip_int = 6;
 	bp->rx_quick_cons_trip = 6;
 	bp->rx_ticks_int = 18;
@@ -6016,7 +6016,7 @@ static struct pci_driver bnx2_pci_driver = {
 
 static int __init bnx2_init(void)
 {
-	return pci_module_init(&bnx2_pci_driver);
+	return pci_register_driver(&bnx2_pci_driver);
 }
 
 static void __exit bnx2_cleanup(void)

+ 41 - 41
drivers/net/bnx2.h

@@ -22,9 +22,9 @@
  */
 struct tx_bd {
 	u32 tx_bd_haddr_hi;
-	u32 tx_bd_haddr_lo;                                   
-	u32 tx_bd_mss_nbytes;                                     
-	u32 tx_bd_vlan_tag_flags;                                      
+	u32 tx_bd_haddr_lo;
+	u32 tx_bd_mss_nbytes;
+	u32 tx_bd_vlan_tag_flags;
 		#define TX_BD_FLAGS_CONN_FAULT		(1<<0)
 		#define TX_BD_FLAGS_TCP_UDP_CKSUM	(1<<1)
 		#define TX_BD_FLAGS_IP_CKSUM		(1<<2)
@@ -3893,7 +3893,7 @@ struct bnx2 {
 	u16		tx_cons __attribute__((aligned(L1_CACHE_BYTES)));
 	u16		hw_tx_cons;
 
-#ifdef BCM_VLAN 
+#ifdef BCM_VLAN
 	struct			vlan_group *vlgrp;
 #endif
 
@@ -3950,7 +3950,7 @@ struct bnx2 {
 #define CHIP_REV_Ax			0x00000000
 #define CHIP_REV_Bx			0x00001000
 #define CHIP_REV_Cx			0x00002000
-    
+
 #define CHIP_METAL(bp)			(((bp)->chip_id) & 0x00000ff0)
 #define CHIP_BONDING(bp)		(((bp)->chip_id) & 0x0000000f)
 
@@ -3969,7 +3969,7 @@ struct bnx2 {
 
 	u32			phy_addr;
 	u32			phy_id;
-	
+
 	u16			bus_speed_mhz;
 	u8			wol;
 
@@ -4025,7 +4025,7 @@ struct bnx2 {
 
 	u32			advertising;
 
-	u8			req_flow_ctrl;	/* flow ctrl advertisement */ 
+	u8			req_flow_ctrl;	/* flow ctrl advertisement */
 						/* settings or forced      */
 						/* settings                */
 	u8			autoneg;
@@ -4179,7 +4179,7 @@ struct fw_info {
 #define BNX2_DRV_MSG_DATA_WAIT1			 0x00020000
 #define BNX2_DRV_MSG_DATA_WAIT2			 0x00030000
 #define BNX2_DRV_MSG_DATA_WAIT3			 0x00040000
-        
+
 #define BNX2_DRV_MSG_SEQ			 0x0000ffff
 
 #define BNX2_FW_MB				0x00000008
@@ -4189,38 +4189,38 @@ struct fw_info {
 #define BNX2_FW_MSG_STATUS_FAILURE		 0x00ff0000
 
 #define BNX2_LINK_STATUS			0x0000000c
-#define BNX2_LINK_STATUS_INIT_VALUE		 0xffffffff 
-#define BNX2_LINK_STATUS_LINK_UP		 0x1 
-#define BNX2_LINK_STATUS_LINK_DOWN		 0x0 
+#define BNX2_LINK_STATUS_INIT_VALUE		 0xffffffff
+#define BNX2_LINK_STATUS_LINK_UP		 0x1
+#define BNX2_LINK_STATUS_LINK_DOWN		 0x0
 #define BNX2_LINK_STATUS_SPEED_MASK		 0x1e
-#define BNX2_LINK_STATUS_AN_INCOMPLETE		 (0<<1) 
-#define BNX2_LINK_STATUS_10HALF			 (1<<1) 
-#define BNX2_LINK_STATUS_10FULL			 (2<<1) 
-#define BNX2_LINK_STATUS_100HALF		 (3<<1) 
-#define BNX2_LINK_STATUS_100BASE_T4		 (4<<1) 
-#define BNX2_LINK_STATUS_100FULL		 (5<<1) 
-#define BNX2_LINK_STATUS_1000HALF		 (6<<1) 
-#define BNX2_LINK_STATUS_1000FULL		 (7<<1) 
-#define BNX2_LINK_STATUS_2500HALF		 (8<<1) 
-#define BNX2_LINK_STATUS_2500FULL		 (9<<1) 
-#define BNX2_LINK_STATUS_AN_ENABLED		 (1<<5) 
-#define BNX2_LINK_STATUS_AN_COMPLETE		 (1<<6) 
-#define BNX2_LINK_STATUS_PARALLEL_DET		 (1<<7) 
-#define BNX2_LINK_STATUS_RESERVED		 (1<<8) 
-#define BNX2_LINK_STATUS_PARTNER_AD_1000FULL	 (1<<9) 
-#define BNX2_LINK_STATUS_PARTNER_AD_1000HALF	 (1<<10) 
-#define BNX2_LINK_STATUS_PARTNER_AD_100BT4	 (1<<11) 
-#define BNX2_LINK_STATUS_PARTNER_AD_100FULL	 (1<<12) 
-#define BNX2_LINK_STATUS_PARTNER_AD_100HALF	 (1<<13) 
-#define BNX2_LINK_STATUS_PARTNER_AD_10FULL	 (1<<14) 
-#define BNX2_LINK_STATUS_PARTNER_AD_10HALF	 (1<<15) 
-#define BNX2_LINK_STATUS_TX_FC_ENABLED		 (1<<16) 
-#define BNX2_LINK_STATUS_RX_FC_ENABLED		 (1<<17) 
-#define BNX2_LINK_STATUS_PARTNER_SYM_PAUSE_CAP	 (1<<18) 
-#define BNX2_LINK_STATUS_PARTNER_ASYM_PAUSE_CAP	 (1<<19) 
-#define BNX2_LINK_STATUS_SERDES_LINK		 (1<<20) 
-#define BNX2_LINK_STATUS_PARTNER_AD_2500FULL	 (1<<21) 
-#define BNX2_LINK_STATUS_PARTNER_AD_2500HALF	 (1<<22) 
+#define BNX2_LINK_STATUS_AN_INCOMPLETE		 (0<<1)
+#define BNX2_LINK_STATUS_10HALF			 (1<<1)
+#define BNX2_LINK_STATUS_10FULL			 (2<<1)
+#define BNX2_LINK_STATUS_100HALF		 (3<<1)
+#define BNX2_LINK_STATUS_100BASE_T4		 (4<<1)
+#define BNX2_LINK_STATUS_100FULL		 (5<<1)
+#define BNX2_LINK_STATUS_1000HALF		 (6<<1)
+#define BNX2_LINK_STATUS_1000FULL		 (7<<1)
+#define BNX2_LINK_STATUS_2500HALF		 (8<<1)
+#define BNX2_LINK_STATUS_2500FULL		 (9<<1)
+#define BNX2_LINK_STATUS_AN_ENABLED		 (1<<5)
+#define BNX2_LINK_STATUS_AN_COMPLETE		 (1<<6)
+#define BNX2_LINK_STATUS_PARALLEL_DET		 (1<<7)
+#define BNX2_LINK_STATUS_RESERVED		 (1<<8)
+#define BNX2_LINK_STATUS_PARTNER_AD_1000FULL	 (1<<9)
+#define BNX2_LINK_STATUS_PARTNER_AD_1000HALF	 (1<<10)
+#define BNX2_LINK_STATUS_PARTNER_AD_100BT4	 (1<<11)
+#define BNX2_LINK_STATUS_PARTNER_AD_100FULL	 (1<<12)
+#define BNX2_LINK_STATUS_PARTNER_AD_100HALF	 (1<<13)
+#define BNX2_LINK_STATUS_PARTNER_AD_10FULL	 (1<<14)
+#define BNX2_LINK_STATUS_PARTNER_AD_10HALF	 (1<<15)
+#define BNX2_LINK_STATUS_TX_FC_ENABLED		 (1<<16)
+#define BNX2_LINK_STATUS_RX_FC_ENABLED		 (1<<17)
+#define BNX2_LINK_STATUS_PARTNER_SYM_PAUSE_CAP	 (1<<18)
+#define BNX2_LINK_STATUS_PARTNER_ASYM_PAUSE_CAP	 (1<<19)
+#define BNX2_LINK_STATUS_SERDES_LINK		 (1<<20)
+#define BNX2_LINK_STATUS_PARTNER_AD_2500FULL	 (1<<21)
+#define BNX2_LINK_STATUS_PARTNER_AD_2500HALF	 (1<<22)
 
 #define BNX2_DRV_PULSE_MB			0x00000010
 #define BNX2_DRV_PULSE_SEQ_MASK			 0x00007fff
@@ -4400,7 +4400,7 @@ struct fw_info {
 					  0x00020000)
 #define BNX2_BC_STATE_RESET_TYPE_VAUX	 (BNX2_BC_STATE_RESET_TYPE_SIG | \
 					  0x00030000)
-#define BNX2_BC_STATE_RESET_TYPE_DRV_MASK	 DRV_MSG_CODE         
+#define BNX2_BC_STATE_RESET_TYPE_DRV_MASK	 DRV_MSG_CODE
 #define BNX2_BC_STATE_RESET_TYPE_DRV_RESET (BNX2_BC_STATE_RESET_TYPE_SIG | \
 					    DRV_MSG_CODE_RESET)
 #define BNX2_BC_STATE_RESET_TYPE_DRV_UNLOAD (BNX2_BC_STATE_RESET_TYPE_SIG | \
@@ -4443,7 +4443,7 @@ struct fw_info {
 #define BNX2_BC_STATE_ERR_DRV_DEAD		 (BNX2_BC_STATE_SIGN | 0x0500)
 #define BNX2_BC_STATE_ERR_NO_RXP		 (BNX2_BC_STATE_SIGN | 0x0600)
 #define BNX2_BC_STATE_ERR_TOO_MANY_RBUF		 (BNX2_BC_STATE_SIGN | 0x0700)
-	
+
 #define BNX2_BC_STATE_DEBUG_CMD			0x1dc
 #define BNX2_BC_STATE_BC_DBG_CMD_SIGNATURE	 0x42440000
 #define BNX2_BC_STATE_BC_DBG_CMD_SIGNATURE_MASK	 0xffff0000

+ 1 - 1
drivers/net/bonding/bond_main.c

@@ -4130,7 +4130,7 @@ static void bond_ethtool_get_drvinfo(struct net_device *bond_dev,
 	snprintf(drvinfo->fw_version, 32, "%d", BOND_ABI_VERSION);
 }
 
-static struct ethtool_ops bond_ethtool_ops = {
+static const struct ethtool_ops bond_ethtool_ops = {
 	.get_tx_csum		= ethtool_op_get_tx_csum,
 	.get_tso		= ethtool_op_get_tso,
 	.get_ufo		= ethtool_op_get_ufo,

+ 34 - 34
drivers/net/bsd_comp.c

@@ -1,5 +1,5 @@
 /*
- * Update: The Berkeley copyright was changed, and the change 
+ * Update: The Berkeley copyright was changed, and the change
  * is retroactive to all "true" BSD software (ie everything
  * from UCB as opposed to other peoples code that just carried
  * the same license). The new copyright doesn't clash with the
@@ -256,9 +256,9 @@ static int bsd_check (struct bsd_db *db)	/* 1=output CLEAR */
 	    db->in_count  -= (db->in_count  >> 2);
 	    db->bytes_out -= (db->bytes_out >> 2);
 	  }
-	
+
 	db->checkpoint = db->in_count + CHECK_GAP;
-	
+
 	if (db->max_ent >= db->maxmaxcode)
 	  {
 	    /* Reset the dictionary only if the ratio is worse,
@@ -274,7 +274,7 @@ static int bsd_check (struct bsd_db *db)	/* 1=output CLEAR */
 	      {
 		new_ratio /= db->bytes_out;
 	      }
-	    
+
 	    if (new_ratio < db->ratio || new_ratio < 1 * RATIO_SCALE)
 	      {
 		bsd_clear (db);
@@ -293,7 +293,7 @@ static int bsd_check (struct bsd_db *db)	/* 1=output CLEAR */
 static void bsd_comp_stats (void *state, struct compstat *stats)
   {
     struct bsd_db *db = (struct bsd_db *) state;
-    
+
     stats->unc_bytes    = db->uncomp_bytes;
     stats->unc_packets  = db->uncomp_count;
     stats->comp_bytes   = db->comp_bytes;
@@ -325,7 +325,7 @@ static void bsd_reset (void *state)
 static void bsd_free (void *state)
 {
 	struct bsd_db *db = state;
-    
+
 	if (!db)
 		return;
 
@@ -468,7 +468,7 @@ static int bsd_init (void *state, unsigned char *options,
   {
     struct bsd_db *db = state;
     int indx;
-    
+
     if ((opt_len != 3) || (options[0] != CI_BSD_COMPRESS) || (options[1] != 3)
 	|| (BSD_VERSION(options[2]) != BSD_CURRENT_VERSION)
 	|| (BSD_NBITS(options[2]) != db->maxbits)
@@ -500,9 +500,9 @@ static int bsd_init (void *state, unsigned char *options,
     if (debug)
 #endif
       db->debug = 1;
-    
+
     bsd_reset(db);
-    
+
     return 1;
   }
 
@@ -660,7 +660,7 @@ static int bsd_compress (void *state, unsigned char *rptr, unsigned char *obuf,
 	fcode = BSD_KEY  (ent, c);
 	hval  = BSD_HASH (ent, c, hshift);
 	dictp = dict_ptr (db, hval);
-	
+
 	/* Validate and then check the entry. */
 	if (dictp->codem1 >= max_ent)
 	  {
@@ -672,7 +672,7 @@ static int bsd_compress (void *state, unsigned char *rptr, unsigned char *obuf,
 	    ent = dictp->codem1 + 1;
 	    continue;	/* found (prefix,suffix) */
 	  }
-	
+
 	/* continue probing until a match or invalid entry */
 	disp = (hval == 0) ? 1 : hval;
 
@@ -693,10 +693,10 @@ static int bsd_compress (void *state, unsigned char *rptr, unsigned char *obuf,
 
 	ent = dictp->codem1 + 1;	/* finally found (prefix,suffix) */
 	continue;
-	
+
 nomatch:
 	OUTPUT(ent);		/* output the prefix */
-	
+
 	/* code -> hashtable */
 	if (max_ent < db->maxmaxcode)
 	  {
@@ -710,7 +710,7 @@ nomatch:
 		db->n_bits = ++n_bits;
 		mxcode     = MAXCODE (n_bits);
 	      }
-	    
+
 	    /* Invalidate old hash table entry using
 	     * this code, and then take it over.
 	     */
@@ -738,7 +738,7 @@ nomatch:
 	  }
 	ent = c;
       }
-    
+
     OUTPUT(ent);		/* output the last code */
 
     db->bytes_out    += olen - PPP_HDRLEN - BSD_OVHD;
@@ -760,7 +760,7 @@ nomatch:
       {
 	OUTPUT (CLEAR);
       }
-    
+
     /*
      * Pad dribble bits of last code with ones.
      * Do not emit a completely useless byte of ones.
@@ -770,7 +770,7 @@ nomatch:
       {
 	PUTBYTE((accm | (0xff << (bitno-8))) >> 24);
       }
-    
+
     /*
      * Increase code size if we would have without the packet
      * boundary because the decompressor will do so.
@@ -856,7 +856,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
     bitno    = 32;		/* 1st valid bit in accm */
     n_bits   = db->n_bits;
     tgtbitno = 32 - n_bits;	/* bitno when we have a code */
-    
+
     /*
      * Save the address/control from the PPP header
      * and then get the sequence number.
@@ -869,7 +869,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 
     ibuf += (PPP_HDRLEN + 2);
     ilen  = isize - (PPP_HDRLEN + 2);
-    
+
     /*
      * Check the sequence number and give up if it differs from
      * the value we're expecting.
@@ -897,7 +897,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
     *wptr++ = adrs;
     *wptr++ = ctrl;
     *wptr++ = 0;
-    
+
     oldcode = CLEAR;
     explen  = 3;
 
@@ -934,7 +934,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 	/*
 	 * The dictionary must only be cleared at the end of a packet.
 	 */
-	
+
 	if (incode == CLEAR)
 	  {
 	    if (ilen > 0)
@@ -945,7 +945,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 		  }
 		return DECOMP_FATALERROR;	/* probably a bug */
 	      }
-	    
+
 	    bsd_clear(db);
 	    break;
 	  }
@@ -962,7 +962,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 	      }
 	    return DECOMP_FATALERROR;	/* probably a bug */
 	  }
-	
+
 	/* Special case for KwKwK string. */
 	if (incode > max_ent)
 	  {
@@ -974,7 +974,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 	    finchar = incode;
 	    extra   = 0;
 	  }
-	
+
 	codelen = *(lens_ptr (db, finchar));
 	explen += codelen + extra;
 	if (explen > osize)
@@ -989,7 +989,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 	      }
 	    return DECOMP_FATALERROR;
 	  }
-	
+
 	/*
 	 * Decode this code and install it in the decompressed buffer.
 	 */
@@ -999,7 +999,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 	while (finchar > LAST)
 	  {
 	    struct bsd_dict *dictp2 = dict_ptr (db, finchar);
-	    
+
 	    dictp = dict_ptr (db, dictp2->cptr);
 #ifdef DEBUG
 	    if (--codelen <= 0 || dictp->codem1 != finchar-1)
@@ -1029,7 +1029,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 	    finchar = dictp->f.hs.prefix;
 	  }
 	*--p = finchar;
-	
+
 #ifdef DEBUG
 	if (--codelen != 0)
 	  {
@@ -1037,12 +1037,12 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 		   db->unit, codelen, incode, max_ent);
 	  }
 #endif
-	
+
 	if (extra)		/* the KwKwK case again */
 	  {
 	    *wptr++ = finchar;
 	  }
-	
+
 	/*
 	 * If not first code in a packet, and
 	 * if not out of code space, then allocate a new code.
@@ -1057,11 +1057,11 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 	    unsigned short  *lens1,  *lens2;
 	    unsigned long fcode;
 	    int hval, disp, indx;
-	    
+
 	    fcode = BSD_KEY(oldcode,finchar);
 	    hval  = BSD_HASH(oldcode,finchar,db->hshift);
 	    dictp = dict_ptr (db, hval);
-	    
+
 	    /* look for a free hash table entry */
 	    if (dictp->codem1 < max_ent)
 	      {
@@ -1077,7 +1077,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 		  }
 		while (dictp->codem1 < max_ent);
 	      }
-	    
+
 	    /*
 	     * Invalidate previous hash table entry
 	     * assigned this code, and then take it over
@@ -1101,7 +1101,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
 	    lens1  = lens_ptr (db, max_ent);
 	    lens2  = lens_ptr (db, oldcode);
 	    *lens1 = *lens2 + 1;
-	    
+
 	    /* Expand code size if needed. */
 	    if (max_ent >= MAXCODE(n_bits) && max_ent < db->maxmaxcode)
 	      {
@@ -1127,7 +1127,7 @@ static int bsd_decompress (void *state, unsigned char *ibuf, int isize,
       }
     return explen;
   }
-     
+
 /*************************************************************
  * Table of addresses for the BSD compression module
  *************************************************************/

+ 270 - 270
drivers/net/cassini.c

@@ -43,7 +43,7 @@
  *  -- on page reclamation, the driver swaps the page with a spare page.
  *     if that page is still in use, it frees its reference to that page,
  *     and allocates a new page for use. otherwise, it just recycles the
- *     the page. 
+ *     the page.
  *
  * NOTE: cassini can parse the header. however, it's not worth it
  *       as long as the network stack requires a header copy.
@@ -60,10 +60,10 @@
  * interrupts, but the INT# assignment needs to be set up properly by
  * the BIOS and conveyed to the driver. PCI BIOSes don't know how to do
  * that. also, the two descriptor rings are designed to distinguish between
- * encrypted and non-encrypted packets, but we use them for buffering 
+ * encrypted and non-encrypted packets, but we use them for buffering
  * instead.
  *
- * by default, the selective clear mask is set up to process rx packets.  
+ * by default, the selective clear mask is set up to process rx packets.
  */
 
 
@@ -112,7 +112,7 @@
 #endif
 
 /* select which firmware to use */
-#define USE_HP_WORKAROUND     
+#define USE_HP_WORKAROUND
 #define HP_WORKAROUND_DEFAULT /* select which firmware to use as default */
 #define CAS_HP_ALT_FIRMWARE   cas_prog_null /* alternate firmware */
 
@@ -168,7 +168,7 @@
 #define STOP_TRIES_PHY 1000
 #define STOP_TRIES     5000
 
-/* specify a minimum frame size to deal with some fifo issues 
+/* specify a minimum frame size to deal with some fifo issues
  * max mtu == 2 * page size - ethernet header - 64 - swivel =
  *            2 * page_size - 0x50
  */
@@ -207,7 +207,7 @@ MODULE_PARM_DESC(link_mode, "default link mode");
  * being confused and never showing a link status of "up."
  */
 #define DEFAULT_LINKDOWN_TIMEOUT 5
-/* 
+/*
  * Value in seconds, for user input.
  */
 static int linkdown_timeout = DEFAULT_LINKDOWN_TIMEOUT;
@@ -249,7 +249,7 @@ static inline void cas_lock_tx(struct cas *cp)
 {
 	int i;
 
-	for (i = 0; i < N_TX_RINGS; i++)  
+	for (i = 0; i < N_TX_RINGS; i++)
 		spin_lock(&cp->tx_lock[i]);
 }
 
@@ -278,8 +278,8 @@ static inline void cas_unlock_tx(struct cas *cp)
 {
 	int i;
 
-	for (i = N_TX_RINGS; i > 0; i--)  
-		spin_unlock(&cp->tx_lock[i - 1]);  
+	for (i = N_TX_RINGS; i > 0; i--)
+		spin_unlock(&cp->tx_lock[i - 1]);
 }
 
 static inline void cas_unlock_all(struct cas *cp)
@@ -316,7 +316,7 @@ static void cas_disable_irq(struct cas *cp, const int ring)
 #ifdef USE_PCI_INTD
 		case 3:
 #endif
-			writel(INTRN_MASK_CLEAR_ALL | INTRN_MASK_RX_EN, 
+			writel(INTRN_MASK_CLEAR_ALL | INTRN_MASK_RX_EN,
 			       cp->regs + REG_PLUS_INTRN_MASK(ring));
 			break;
 #endif
@@ -415,7 +415,7 @@ static inline void cas_entropy_reset(struct cas *cp)
 	if ((cp->cas_flags & CAS_FLAG_ENTROPY_DEV) == 0)
 		return;
 
-	writel(BIM_LOCAL_DEV_PAD | BIM_LOCAL_DEV_PROM | BIM_LOCAL_DEV_EXT, 
+	writel(BIM_LOCAL_DEV_PAD | BIM_LOCAL_DEV_PROM | BIM_LOCAL_DEV_EXT,
 	       cp->regs + REG_BIM_LOCAL_DEV_EN);
 	writeb(ENTROPY_RESET_STC_MODE, cp->regs + REG_ENTROPY_RESET);
 	writeb(0x55, cp->regs + REG_ENTROPY_RAND_REG);
@@ -426,7 +426,7 @@ static inline void cas_entropy_reset(struct cas *cp)
 #endif
 }
 
-/* access to the phy. the following assumes that we've initialized the MIF to 
+/* access to the phy. the following assumes that we've initialized the MIF to
  * be in frame rather than bit-bang mode
  */
 static u16 cas_phy_read(struct cas *cp, int reg)
@@ -439,7 +439,7 @@ static u16 cas_phy_read(struct cas *cp, int reg)
 	cmd |= CAS_BASE(MIF_FRAME_REG_ADDR, reg);
 	cmd |= MIF_FRAME_TURN_AROUND_MSB;
 	writel(cmd, cp->regs + REG_MIF_FRAME);
-	
+
 	/* poll for completion */
 	while (limit-- > 0) {
 		udelay(10);
@@ -461,7 +461,7 @@ static int cas_phy_write(struct cas *cp, int reg, u16 val)
 	cmd |= MIF_FRAME_TURN_AROUND_MSB;
 	cmd |= val & MIF_FRAME_DATA_MASK;
 	writel(cmd, cp->regs + REG_MIF_FRAME);
-	
+
 	/* poll for completion */
 	while (limit-- > 0) {
 		udelay(10);
@@ -474,7 +474,7 @@ static int cas_phy_write(struct cas *cp, int reg, u16 val)
 
 static void cas_phy_powerup(struct cas *cp)
 {
-	u16 ctl = cas_phy_read(cp, MII_BMCR);	
+	u16 ctl = cas_phy_read(cp, MII_BMCR);
 
 	if ((ctl & BMCR_PDOWN) == 0)
 		return;
@@ -484,7 +484,7 @@ static void cas_phy_powerup(struct cas *cp)
 
 static void cas_phy_powerdown(struct cas *cp)
 {
-	u16 ctl = cas_phy_read(cp, MII_BMCR);	
+	u16 ctl = cas_phy_read(cp, MII_BMCR);
 
 	if (ctl & BMCR_PDOWN)
 		return;
@@ -495,7 +495,7 @@ static void cas_phy_powerdown(struct cas *cp)
 /* cp->lock held. note: the last put_page will free the buffer */
 static int cas_page_free(struct cas *cp, cas_page_t *page)
 {
-	pci_unmap_page(cp->pdev, page->dma_addr, cp->page_size, 
+	pci_unmap_page(cp->pdev, page->dma_addr, cp->page_size,
 		       PCI_DMA_FROMDEVICE);
 	cas_buffer_dec(page);
 	__free_pages(page->buffer, cp->page_order);
@@ -507,7 +507,7 @@ static int cas_page_free(struct cas *cp, cas_page_t *page)
 #define RX_USED_ADD(x, y)       ((x)->used += (y))
 #define RX_USED_SET(x, y)       ((x)->used  = (y))
 #else
-#define RX_USED_ADD(x, y) 
+#define RX_USED_ADD(x, y)
 #define RX_USED_SET(x, y)
 #endif
 
@@ -602,7 +602,7 @@ static void cas_spare_recover(struct cas *cp, const gfp_t flags)
 	list_splice(&cp->rx_inuse_list, &list);
 	INIT_LIST_HEAD(&cp->rx_inuse_list);
 	spin_unlock(&cp->rx_inuse_lock);
-	
+
 	list_for_each_safe(elem, tmp, &list) {
 		cas_page_t *page = list_entry(elem, cas_page_t, list);
 
@@ -627,7 +627,7 @@ static void cas_spare_recover(struct cas *cp, const gfp_t flags)
 		list_splice(&list, &cp->rx_inuse_list);
 		spin_unlock(&cp->rx_inuse_lock);
 	}
-	
+
 	spin_lock(&cp->rx_spare_lock);
 	needed = cp->rx_spares_needed;
 	spin_unlock(&cp->rx_spare_lock);
@@ -639,7 +639,7 @@ static void cas_spare_recover(struct cas *cp, const gfp_t flags)
 	i = 0;
 	while (i < needed) {
 		cas_page_t *spare = cas_page_alloc(cp, flags);
-		if (!spare) 
+		if (!spare)
 			break;
 		list_add(&spare->list, &list);
 		i++;
@@ -695,12 +695,12 @@ static cas_page_t *cas_page_dequeue(struct cas *cp)
 static void cas_mif_poll(struct cas *cp, const int enable)
 {
 	u32 cfg;
-	
-	cfg  = readl(cp->regs + REG_MIF_CFG); 
+
+	cfg  = readl(cp->regs + REG_MIF_CFG);
 	cfg &= (MIF_CFG_MDIO_0 | MIF_CFG_MDIO_1);
 
 	if (cp->phy_type & CAS_PHY_MII_MDIO1)
-		cfg |= MIF_CFG_PHY_SELECT; 
+		cfg |= MIF_CFG_PHY_SELECT;
 
 	/* poll and interrupt on link status change. */
 	if (enable) {
@@ -708,8 +708,8 @@ static void cas_mif_poll(struct cas *cp, const int enable)
 		cfg |= CAS_BASE(MIF_CFG_POLL_REG, MII_BMSR);
 		cfg |= CAS_BASE(MIF_CFG_POLL_PHY, cp->phy_addr);
 	}
-	writel((enable) ? ~(BMSR_LSTATUS | BMSR_ANEGCOMPLETE) : 0xFFFF, 
-	       cp->regs + REG_MIF_MASK); 
+	writel((enable) ? ~(BMSR_LSTATUS | BMSR_ANEGCOMPLETE) : 0xFFFF,
+	       cp->regs + REG_MIF_MASK);
 	writel(cfg, cp->regs + REG_MIF_CFG);
 }
 
@@ -759,7 +759,7 @@ start_aneg:
 	/*
 	 * WTZ: If the old state was link_up, we turn off the carrier
 	 * to replicate everything we do elsewhere on a link-down
-	 * event when we were already in a link-up state..  
+	 * event when we were already in a link-up state..
 	 */
 	if (oldstate == link_up)
 		netif_carrier_off(cp->dev);
@@ -767,7 +767,7 @@ start_aneg:
 		/*
 		 * WTZ: This branch will simply schedule a full reset after
 		 * we explicitly changed link modes in an ioctl. See if this
-		 * fixes the link-problems we were having for forced mode. 
+		 * fixes the link-problems we were having for forced mode.
 		 */
 		atomic_inc(&cp->reset_task_pending);
 		atomic_inc(&cp->reset_task_pending_all);
@@ -795,7 +795,7 @@ start_aneg:
 	} else {
 		cas_mif_poll(cp, 0);
 		ctl = cas_phy_read(cp, MII_BMCR);
-		ctl &= ~(BMCR_FULLDPLX | BMCR_SPEED100 | 
+		ctl &= ~(BMCR_FULLDPLX | BMCR_SPEED100 |
 			 CAS_BMCR_SPEED1000 | BMCR_ANENABLE);
 		ctl |= cp->link_cntl;
 		if (ctl & BMCR_ANENABLE) {
@@ -818,7 +818,7 @@ static int cas_reset_mii_phy(struct cas *cp)
 {
 	int limit = STOP_TRIES_PHY;
 	u16 val;
-	
+
 	cas_phy_write(cp, MII_BMCR, BMCR_RESET);
 	udelay(100);
 	while (limit--) {
@@ -901,17 +901,17 @@ static void cas_phy_init(struct cas *cp)
 			val = cas_phy_read(cp, BROADCOM_MII_REG4);
 			if (val & 0x0080) {
 				/* link workaround */
-				cas_phy_write(cp, BROADCOM_MII_REG4, 
+				cas_phy_write(cp, BROADCOM_MII_REG4,
 					      val & ~0x0080);
 			}
-			
+
 		} else if (cp->cas_flags & CAS_FLAG_SATURN) {
-			writel((cp->phy_type & CAS_PHY_MII_MDIO0) ? 
-			       SATURN_PCFG_FSI : 0x0, 
+			writel((cp->phy_type & CAS_PHY_MII_MDIO0) ?
+			       SATURN_PCFG_FSI : 0x0,
 			       cp->regs + REG_SATURN_PCFG);
 
 			/* load firmware to address 10Mbps auto-negotiation
-			 * issue. NOTE: this will need to be changed if the 
+			 * issue. NOTE: this will need to be changed if the
 			 * default firmware gets fixed.
 			 */
 			if (PHY_NS_DP83065 == cp->phy_id) {
@@ -930,9 +930,9 @@ static void cas_phy_init(struct cas *cp)
 			      cas_phy_read(cp, MII_ADVERTISE) |
 			      (ADVERTISE_10HALF | ADVERTISE_10FULL |
 			       ADVERTISE_100HALF | ADVERTISE_100FULL |
-			       CAS_ADVERTISE_PAUSE | 
+			       CAS_ADVERTISE_PAUSE |
 			       CAS_ADVERTISE_ASYM_PAUSE));
-		
+
 		if (cp->cas_flags & CAS_FLAG_1000MB_CAP) {
 			/* make sure that we don't advertise half
 			 * duplex to avoid a chip issue
@@ -963,7 +963,7 @@ static void cas_phy_init(struct cas *cp)
 		limit = STOP_TRIES;
 		while (limit-- > 0) {
 			udelay(10);
-			if ((readl(cp->regs + REG_PCS_MII_CTRL) & 
+			if ((readl(cp->regs + REG_PCS_MII_CTRL) &
 			     PCS_MII_RESET) == 0)
 				break;
 		}
@@ -980,7 +980,7 @@ static void cas_phy_init(struct cas *cp)
 		/* Advertise all capabilities except half-duplex. */
 		val  = readl(cp->regs + REG_PCS_MII_ADVERT);
 		val &= ~PCS_MII_ADVERT_HD;
-		val |= (PCS_MII_ADVERT_FD | PCS_MII_ADVERT_SYM_PAUSE | 
+		val |= (PCS_MII_ADVERT_FD | PCS_MII_ADVERT_SYM_PAUSE |
 			PCS_MII_ADVERT_ASYM_PAUSE);
 		writel(val, cp->regs + REG_PCS_MII_ADVERT);
 
@@ -1014,7 +1014,7 @@ static int cas_pcs_link_check(struct cas *cp)
 		     PCS_MII_STATUS_REMOTE_FAULT)) ==
 	    (PCS_MII_STATUS_AUTONEG_COMP | PCS_MII_STATUS_REMOTE_FAULT)) {
 		if (netif_msg_link(cp))
-			printk(KERN_INFO "%s: PCS RemoteFault\n", 
+			printk(KERN_INFO "%s: PCS RemoteFault\n",
 			       cp->dev->name);
 	}
 
@@ -1033,7 +1033,7 @@ static int cas_pcs_link_check(struct cas *cp)
 			if (cp->opened) {
 				cp->lstate = link_up;
 				cp->link_transition = LINK_TRANSITION_LINK_UP;
-				
+
 				cas_set_link_modes(cp);
 				netif_carrier_on(cp->dev);
 			}
@@ -1044,8 +1044,8 @@ static int cas_pcs_link_check(struct cas *cp)
 		    cp->link_transition != LINK_TRANSITION_REQUESTED_RESET &&
 		    !cp->link_transition_jiffies_valid) {
 			/*
-			 * force a reset, as a workaround for the 
-			 * link-failure problem. May want to move this to a 
+			 * force a reset, as a workaround for the
+			 * link-failure problem. May want to move this to a
 			 * point a bit earlier in the sequence. If we had
 			 * generated a reset a short time ago, we'll wait for
 			 * the link timer to check the status until a
@@ -1103,17 +1103,17 @@ static int cas_pcs_link_check(struct cas *cp)
 	return retval;
 }
 
-static int cas_pcs_interrupt(struct net_device *dev, 
+static int cas_pcs_interrupt(struct net_device *dev,
 			     struct cas *cp, u32 status)
 {
 	u32 stat = readl(cp->regs + REG_PCS_INTR_STATUS);
 
-	if ((stat & PCS_INTR_STATUS_LINK_CHANGE) == 0) 
+	if ((stat & PCS_INTR_STATUS_LINK_CHANGE) == 0)
 		return 0;
 	return cas_pcs_link_check(cp);
 }
 
-static int cas_txmac_interrupt(struct net_device *dev, 
+static int cas_txmac_interrupt(struct net_device *dev,
 			       struct cas *cp, u32 status)
 {
 	u32 txmac_stat = readl(cp->regs + REG_MAC_TX_STATUS);
@@ -1168,7 +1168,7 @@ static int cas_txmac_interrupt(struct net_device *dev,
 	return 0;
 }
 
-static void cas_load_firmware(struct cas *cp, cas_hp_inst_t *firmware) 
+static void cas_load_firmware(struct cas *cp, cas_hp_inst_t *firmware)
 {
 	cas_hp_inst_t *inst;
 	u32 val;
@@ -1203,12 +1203,12 @@ static void cas_load_firmware(struct cas *cp, cas_hp_inst_t *firmware)
 
 static void cas_init_rx_dma(struct cas *cp)
 {
-	u64 desc_dma = cp->block_dvma; 
+	u64 desc_dma = cp->block_dvma;
 	u32 val;
 	int i, size;
 
 	/* rx free descriptors */
-	val = CAS_BASE(RX_CFG_SWIVEL, RX_SWIVEL_OFF_VAL); 
+	val = CAS_BASE(RX_CFG_SWIVEL, RX_SWIVEL_OFF_VAL);
 	val |= CAS_BASE(RX_CFG_DESC_RING, RX_DESC_RINGN_INDEX(0));
 	val |= CAS_BASE(RX_CFG_COMP_RING, RX_COMP_RINGN_INDEX(0));
 	if ((N_RX_DESC_RINGS > 1) &&
@@ -1216,27 +1216,27 @@ static void cas_init_rx_dma(struct cas *cp)
 		val |= CAS_BASE(RX_CFG_DESC_RING1, RX_DESC_RINGN_INDEX(1));
 	writel(val, cp->regs + REG_RX_CFG);
 
-	val = (unsigned long) cp->init_rxds[0] - 
+	val = (unsigned long) cp->init_rxds[0] -
 		(unsigned long) cp->init_block;
 	writel((desc_dma + val) >> 32, cp->regs + REG_RX_DB_HI);
 	writel((desc_dma + val) & 0xffffffff, cp->regs + REG_RX_DB_LOW);
 	writel(RX_DESC_RINGN_SIZE(0) - 4, cp->regs + REG_RX_KICK);
 
 	if (cp->cas_flags & CAS_FLAG_REG_PLUS) {
-		/* rx desc 2 is for IPSEC packets. however, 
+		/* rx desc 2 is for IPSEC packets. however,
 		 * we don't it that for that purpose.
 		 */
-		val = (unsigned long) cp->init_rxds[1] - 
+		val = (unsigned long) cp->init_rxds[1] -
 			(unsigned long) cp->init_block;
 		writel((desc_dma + val) >> 32, cp->regs + REG_PLUS_RX_DB1_HI);
-		writel((desc_dma + val) & 0xffffffff, cp->regs + 
+		writel((desc_dma + val) & 0xffffffff, cp->regs +
 		       REG_PLUS_RX_DB1_LOW);
-		writel(RX_DESC_RINGN_SIZE(1) - 4, cp->regs + 
+		writel(RX_DESC_RINGN_SIZE(1) - 4, cp->regs +
 		       REG_PLUS_RX_KICK1);
 	}
-	
+
 	/* rx completion registers */
-	val = (unsigned long) cp->init_rxcs[0] - 
+	val = (unsigned long) cp->init_rxcs[0] -
 		(unsigned long) cp->init_block;
 	writel((desc_dma + val) >> 32, cp->regs + REG_RX_CB_HI);
 	writel((desc_dma + val) & 0xffffffff, cp->regs + REG_RX_CB_LOW);
@@ -1244,11 +1244,11 @@ static void cas_init_rx_dma(struct cas *cp)
 	if (cp->cas_flags & CAS_FLAG_REG_PLUS) {
 		/* rx comp 2-4 */
 		for (i = 1; i < MAX_RX_COMP_RINGS; i++) {
-			val = (unsigned long) cp->init_rxcs[i] - 
+			val = (unsigned long) cp->init_rxcs[i] -
 				(unsigned long) cp->init_block;
-			writel((desc_dma + val) >> 32, cp->regs + 
+			writel((desc_dma + val) >> 32, cp->regs +
 			       REG_PLUS_RX_CBN_HI(i));
-			writel((desc_dma + val) & 0xffffffff, cp->regs + 
+			writel((desc_dma + val) & 0xffffffff, cp->regs +
 			       REG_PLUS_RX_CBN_LOW(i));
 		}
 	}
@@ -1265,21 +1265,21 @@ static void cas_init_rx_dma(struct cas *cp)
 
 		/* 2 is different from 3 and 4 */
 		if (N_RX_COMP_RINGS > 1)
-			writel(INTR_RX_DONE_ALT | INTR_RX_BUF_UNAVAIL_1, 
+			writel(INTR_RX_DONE_ALT | INTR_RX_BUF_UNAVAIL_1,
 			       cp->regs + REG_PLUS_ALIASN_CLEAR(1));
 
-		for (i = 2; i < N_RX_COMP_RINGS; i++) 
-			writel(INTR_RX_DONE_ALT, 
+		for (i = 2; i < N_RX_COMP_RINGS; i++)
+			writel(INTR_RX_DONE_ALT,
 			       cp->regs + REG_PLUS_ALIASN_CLEAR(i));
 	}
 
 	/* set up pause thresholds */
 	val  = CAS_BASE(RX_PAUSE_THRESH_OFF,
 			cp->rx_pause_off / RX_PAUSE_THRESH_QUANTUM);
-	val |= CAS_BASE(RX_PAUSE_THRESH_ON, 
+	val |= CAS_BASE(RX_PAUSE_THRESH_ON,
 			cp->rx_pause_on / RX_PAUSE_THRESH_QUANTUM);
 	writel(val, cp->regs + REG_RX_PAUSE_THRESH);
-	
+
 	/* zero out dma reassembly buffers */
 	for (i = 0; i < 64; i++) {
 		writel(i, cp->regs + REG_RX_TABLE_ADDR);
@@ -1318,7 +1318,7 @@ static void cas_init_rx_dma(struct cas *cp)
 	 * this should be tunable.
 	 */
 	writel(0x0, cp->regs + REG_RX_RED);
-	
+
 	/* receive page sizes. default == 2K (0x800) */
 	val = 0;
 	if (cp->page_size == 0x1000)
@@ -1327,7 +1327,7 @@ static void cas_init_rx_dma(struct cas *cp)
 		val = 0x2;
 	else if (cp->page_size == 0x4000)
 		val = 0x3;
-	
+
 	/* round mtu + offset. constrain to page size. */
 	size = cp->dev->mtu + 64;
 	if (size > cp->page_size)
@@ -1344,11 +1344,11 @@ static void cas_init_rx_dma(struct cas *cp)
 
 	cp->mtu_stride = 1 << (i + 10);
 	val  = CAS_BASE(RX_PAGE_SIZE, val);
-	val |= CAS_BASE(RX_PAGE_SIZE_MTU_STRIDE, i); 
+	val |= CAS_BASE(RX_PAGE_SIZE_MTU_STRIDE, i);
 	val |= CAS_BASE(RX_PAGE_SIZE_MTU_COUNT, cp->page_size >> (i + 10));
 	val |= CAS_BASE(RX_PAGE_SIZE_MTU_OFF, 0x1);
 	writel(val, cp->regs + REG_RX_PAGE_SIZE);
-	
+
 	/* enable the header parser if desired */
 	if (CAS_HP_FIRMWARE == cas_prog_null)
 		return;
@@ -1362,7 +1362,7 @@ static void cas_init_rx_dma(struct cas *cp)
 static inline void cas_rxc_init(struct cas_rx_comp *rxc)
 {
 	memset(rxc, 0, sizeof(*rxc));
-	rxc->word4 = cpu_to_le64(RX_COMP4_ZERO); 
+	rxc->word4 = cpu_to_le64(RX_COMP4_ZERO);
 }
 
 /* NOTE: we use the ENC RX DESC ring for spares. the rx_page[0,1]
@@ -1385,9 +1385,9 @@ static inline cas_page_t *cas_page_spare(struct cas *cp, const int index)
 	}
 	return new;
 }
-				   
+
 /* this needs to be changed if we actually use the ENC RX DESC ring */
-static cas_page_t *cas_page_swap(struct cas *cp, const int ring, 
+static cas_page_t *cas_page_swap(struct cas *cp, const int ring,
 				 const int index)
 {
 	cas_page_t **page0 = cp->rx_pages[0];
@@ -1400,7 +1400,7 @@ static cas_page_t *cas_page_swap(struct cas *cp, const int ring,
 			page1[index] = page0[index];
 			page0[index] = new;
 		}
-	} 
+	}
 	RX_USED_SET(page0[index], 0);
 	return page0[index];
 }
@@ -1424,11 +1424,11 @@ static void cas_clean_rxds(struct cas *cp)
 	for (i = 0; i < size; i++) {
 		cas_page_t *page = cas_page_swap(cp, 0, i);
 		rxd[i].buffer = cpu_to_le64(page->dma_addr);
-		rxd[i].index  = cpu_to_le64(CAS_BASE(RX_INDEX_NUM, i) | 
+		rxd[i].index  = cpu_to_le64(CAS_BASE(RX_INDEX_NUM, i) |
 					    CAS_BASE(RX_INDEX_RING, 0));
 	}
 
-	cp->rx_old[0]  = RX_DESC_RINGN_SIZE(0) - 4; 
+	cp->rx_old[0]  = RX_DESC_RINGN_SIZE(0) - 4;
 	cp->rx_last[0] = 0;
 	cp->cas_flags &= ~CAS_FLAG_RXD_POST(0);
 }
@@ -1533,7 +1533,7 @@ static int cas_rxmac_interrupt(struct net_device *dev, struct cas *cp,
 
 	/* these are all rollovers */
 	spin_lock(&cp->stat_lock[0]);
-	if (stat & MAC_RX_ALIGN_ERR) 
+	if (stat & MAC_RX_ALIGN_ERR)
 		cp->net_stats[0].rx_frame_errors += 0x10000;
 
 	if (stat & MAC_RX_CRC_ERR)
@@ -1579,12 +1579,12 @@ static int cas_mac_interrupt(struct net_device *dev, struct cas *cp,
 	return 0;
 }
 
-	
+
 /* Must be invoked under cp->lock. */
 static inline int cas_mdio_link_not_up(struct cas *cp)
 {
 	u16 val;
-	
+
 	switch (cp->lstate) {
 	case link_force_ret:
 		if (netif_msg_link(cp))
@@ -1595,7 +1595,7 @@ static inline int cas_mdio_link_not_up(struct cas *cp)
 		cp->lstate = link_force_ok;
 		cp->link_transition = LINK_TRANSITION_LINK_CONFIG;
 		break;
-		
+
 	case link_aneg:
 		val = cas_phy_read(cp, MII_BMCR);
 
@@ -1604,7 +1604,7 @@ static inline int cas_mdio_link_not_up(struct cas *cp)
 		 */
 		val &= ~(BMCR_ANRESTART | BMCR_ANENABLE);
 		val |= BMCR_FULLDPLX;
-		val |= (cp->cas_flags & CAS_FLAG_1000MB_CAP) ? 
+		val |= (cp->cas_flags & CAS_FLAG_1000MB_CAP) ?
 			CAS_BMCR_SPEED1000 : BMCR_SPEED100;
 		cas_phy_write(cp, MII_BMCR, val);
 		cp->timer_ticks = 5;
@@ -1646,11 +1646,11 @@ static int cas_mii_link_check(struct cas *cp, const u16 bmsr)
 
 	if (bmsr & BMSR_LSTATUS) {
 		/* Ok, here we got a link. If we had it due to a forced
-		 * fallback, and we were configured for autoneg, we 
+		 * fallback, and we were configured for autoneg, we
 		 * retry a short autoneg pass. If you know your hub is
 		 * broken, use ethtool ;)
 		 */
-		if ((cp->lstate == link_force_try) && 
+		if ((cp->lstate == link_force_try) &&
 		    (cp->link_cntl & BMCR_ANENABLE)) {
 			cp->lstate = link_force_ret;
 			cp->link_transition = LINK_TRANSITION_LINK_CONFIG;
@@ -1690,10 +1690,10 @@ static int cas_mii_link_check(struct cas *cp, const u16 bmsr)
 			printk(KERN_INFO "%s: Link down\n",
 			       cp->dev->name);
 		restart = 1;
-		
+
 	} else if (++cp->timer_ticks > 10)
 		cas_mdio_link_not_up(cp);
-		
+
 	return restart;
 }
 
@@ -1908,7 +1908,7 @@ static inline void cas_tx_ringN(struct cas *cp, int ring, int limit)
 
 		skbs[entry] = NULL;
 		cp->tx_tiny_use[ring][entry].nbufs = 0;
-		
+
 		for (frag = 0; frag <= skb_shinfo(skb)->nr_frags; frag++) {
 			struct cas_tx_desc *txd = txds + entry;
 
@@ -1923,7 +1923,7 @@ static inline void cas_tx_ringN(struct cas *cp, int ring, int limit)
 			if (cp->tx_tiny_use[ring][entry].used) {
 				cp->tx_tiny_use[ring][entry].used = 0;
 				entry = TX_DESC_NEXT(ring, entry);
-			} 
+			}
 		}
 
 		spin_lock(&cp->stat_lock[ring]);
@@ -1964,14 +1964,14 @@ static void cas_tx(struct net_device *dev, struct cas *cp,
 #else
 		limit = readl(cp->regs + REG_TX_COMPN(ring));
 #endif
-		if (cp->tx_old[ring] != limit) 
+		if (cp->tx_old[ring] != limit)
 			cas_tx_ringN(cp, ring, limit);
 	}
 }
 
 
-static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc, 
-			      int entry, const u64 *words, 
+static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
+			      int entry, const u64 *words,
 			      struct sk_buff **skbref)
 {
 	int dlen, hlen, len, i, alloclen;
@@ -1979,19 +1979,19 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
 	struct cas_page *page;
 	struct sk_buff *skb;
 	void *addr, *crcaddr;
-	char *p; 
+	char *p;
 
 	hlen = CAS_VAL(RX_COMP2_HDR_SIZE, words[1]);
 	dlen = CAS_VAL(RX_COMP1_DATA_SIZE, words[0]);
 	len  = hlen + dlen;
 
-	if (RX_COPY_ALWAYS || (words[2] & RX_COMP3_SMALL_PKT)) 
+	if (RX_COPY_ALWAYS || (words[2] & RX_COMP3_SMALL_PKT))
 		alloclen = len;
-	else 
+	else
 		alloclen = max(hlen, RX_COPY_MIN);
 
 	skb = dev_alloc_skb(alloclen + swivel + cp->crc_size);
-	if (skb == NULL) 
+	if (skb == NULL)
 		return -1;
 
 	*skbref = skb;
@@ -2003,7 +2003,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
 	if (hlen) { /* always copy header pages */
 		i = CAS_VAL(RX_COMP2_HDR_INDEX, words[1]);
 		page = cp->rx_pages[CAS_VAL(RX_INDEX_RING, i)][CAS_VAL(RX_INDEX_NUM, i)];
-		off = CAS_VAL(RX_COMP2_HDR_OFF, words[1]) * 0x100 + 
+		off = CAS_VAL(RX_COMP2_HDR_OFF, words[1]) * 0x100 +
 			swivel;
 
 		i = hlen;
@@ -2019,7 +2019,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
 		RX_USED_ADD(page, 0x100);
 		p += hlen;
 		swivel = 0;
-	} 
+	}
 
 
 	if (alloclen < (hlen + dlen)) {
@@ -2070,7 +2070,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
 		frag->page = page->buffer;
 		frag->page_offset = off;
 		frag->size = hlen - swivel;
-		
+
 		/* any more data? */
 		if ((words[0] & RX_COMP1_SPLIT_PKT) && ((dlen -= hlen) > 0)) {
 			hlen = dlen;
@@ -2078,8 +2078,8 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
 
 			i = CAS_VAL(RX_COMP2_NEXT_INDEX, words[1]);
 			page = cp->rx_pages[CAS_VAL(RX_INDEX_RING, i)][CAS_VAL(RX_INDEX_NUM, i)];
-			pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr, 
-					    hlen + cp->crc_size, 
+			pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr,
+					    hlen + cp->crc_size,
 					    PCI_DMA_FROMDEVICE);
 			pci_dma_sync_single_for_device(cp->pdev, page->dma_addr,
 					    hlen + cp->crc_size,
@@ -2087,7 +2087,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
 
 			skb_shinfo(skb)->nr_frags++;
 			skb->data_len += hlen;
-			skb->len      += hlen; 
+			skb->len      += hlen;
 			frag++;
 
 			get_page(page->buffer);
@@ -2134,14 +2134,14 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
 			RX_USED_ADD(page, cp->mtu_stride);
 		else
 			RX_USED_ADD(page, i);
-	
+
 		/* any more data? */
 		if ((words[0] & RX_COMP1_SPLIT_PKT) && ((dlen -= hlen) > 0)) {
 			p += hlen;
 			i = CAS_VAL(RX_COMP2_NEXT_INDEX, words[1]);
 			page = cp->rx_pages[CAS_VAL(RX_INDEX_RING, i)][CAS_VAL(RX_INDEX_NUM, i)];
-			pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr, 
-					    dlen + cp->crc_size, 
+			pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr,
+					    dlen + cp->crc_size,
 					    PCI_DMA_FROMDEVICE);
 			addr = cas_page_map(page->buffer);
 			memcpy(p, addr, dlen + cp->crc_size);
@@ -2149,7 +2149,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
 					    dlen + cp->crc_size,
 					    PCI_DMA_FROMDEVICE);
 			cas_page_unmap(addr);
-			RX_USED_ADD(page, dlen + cp->crc_size); 
+			RX_USED_ADD(page, dlen + cp->crc_size);
 		}
 end_copy_pkt:
 		if (cp->crc_size) {
@@ -2174,7 +2174,7 @@ end_copy_pkt:
 
 
 /* we can handle up to 64 rx flows at a time. we do the same thing
- * as nonreassm except that we batch up the buffers. 
+ * as nonreassm except that we batch up the buffers.
  * NOTE: we currently just treat each flow as a bunch of packets that
  *       we pass up. a better way would be to coalesce the packets
  *       into a jumbo packet. to do that, we need to do the following:
@@ -2184,7 +2184,7 @@ end_copy_pkt:
  *          data length and merge the checksums.
  *       3) on flow release, fix up the header.
  *       4) make sure the higher layer doesn't care.
- * because packets get coalesced, we shouldn't run into fragment count 
+ * because packets get coalesced, we shouldn't run into fragment count
  * issues.
  */
 static inline void cas_rx_flow_pkt(struct cas *cp, const u64 *words,
@@ -2192,8 +2192,8 @@ static inline void cas_rx_flow_pkt(struct cas *cp, const u64 *words,
 {
 	int flowid = CAS_VAL(RX_COMP3_FLOWID, words[2]) & (N_RX_FLOWS - 1);
 	struct sk_buff_head *flow = &cp->rx_flows[flowid];
-	
-	/* this is protected at a higher layer, so no need to 
+
+	/* this is protected at a higher layer, so no need to
 	 * do any additional locking here. stick the buffer
 	 * at the end.
 	 */
@@ -2218,19 +2218,19 @@ static void cas_post_page(struct cas *cp, const int ring, const int index)
 	new = cas_page_swap(cp, ring, index);
 	cp->init_rxds[ring][entry].buffer = cpu_to_le64(new->dma_addr);
 	cp->init_rxds[ring][entry].index  =
-		cpu_to_le64(CAS_BASE(RX_INDEX_NUM, index) | 
+		cpu_to_le64(CAS_BASE(RX_INDEX_NUM, index) |
 			    CAS_BASE(RX_INDEX_RING, ring));
 
 	entry = RX_DESC_ENTRY(ring, entry + 1);
 	cp->rx_old[ring] = entry;
-	
+
 	if (entry % 4)
 		return;
 
 	if (ring == 0)
 		writel(entry, cp->regs + REG_RX_KICK);
 	else if ((N_RX_DESC_RINGS > 1) &&
-		 (cp->cas_flags & CAS_FLAG_REG_PLUS)) 
+		 (cp->cas_flags & CAS_FLAG_REG_PLUS))
 		writel(entry, cp->regs + REG_PLUS_RX_KICK1);
 }
 
@@ -2249,7 +2249,7 @@ static int cas_post_rxds_ringN(struct cas *cp, int ring, int num)
 		       cp->dev->name, ring, entry);
 
 	cluster = -1;
-	count = entry & 0x3; 
+	count = entry & 0x3;
 	last = RX_DESC_ENTRY(ring, num ? entry + num - 4: entry - 4);
 	released = 0;
 	while (entry != last) {
@@ -2257,12 +2257,12 @@ static int cas_post_rxds_ringN(struct cas *cp, int ring, int num)
 		if (cas_buffer_count(page[entry]) > 1) {
 			cas_page_t *new = cas_page_dequeue(cp);
 			if (!new) {
-				/* let the timer know that we need to 
+				/* let the timer know that we need to
 				 * do this again
 				 */
 				cp->cas_flags |= CAS_FLAG_RXD_POST(ring);
 				if (!timer_pending(&cp->link_timer))
-					mod_timer(&cp->link_timer, jiffies + 
+					mod_timer(&cp->link_timer, jiffies +
 						  CAS_LINK_FAST_TIMEOUT);
 				cp->rx_old[ring]  = entry;
 				cp->rx_last[ring] = num ? num - released : 0;
@@ -2271,10 +2271,10 @@ static int cas_post_rxds_ringN(struct cas *cp, int ring, int num)
 			spin_lock(&cp->rx_inuse_lock);
 			list_add(&page[entry]->list, &cp->rx_inuse_list);
 			spin_unlock(&cp->rx_inuse_lock);
-			cp->init_rxds[ring][entry].buffer = 
+			cp->init_rxds[ring][entry].buffer =
 				cpu_to_le64(new->dma_addr);
 			page[entry] = new;
-			
+
 		}
 
 		if (++count == 4) {
@@ -2286,13 +2286,13 @@ static int cas_post_rxds_ringN(struct cas *cp, int ring, int num)
 	}
 	cp->rx_old[ring] = entry;
 
-	if (cluster < 0) 
+	if (cluster < 0)
 		return 0;
 
 	if (ring == 0)
 		writel(cluster, cp->regs + REG_RX_KICK);
 	else if ((N_RX_DESC_RINGS > 1) &&
-		 (cp->cas_flags & CAS_FLAG_REG_PLUS)) 
+		 (cp->cas_flags & CAS_FLAG_REG_PLUS))
 		writel(cluster, cp->regs + REG_PLUS_RX_KICK1);
 	return 0;
 }
@@ -2301,14 +2301,14 @@ static int cas_post_rxds_ringN(struct cas *cp, int ring, int num)
 /* process a completion ring. packets are set up in three basic ways:
  * small packets: should be copied header + data in single buffer.
  * large packets: header and data in a single buffer.
- * split packets: header in a separate buffer from data. 
+ * split packets: header in a separate buffer from data.
  *                data may be in multiple pages. data may be > 256
- *                bytes but in a single page. 
+ *                bytes but in a single page.
  *
  * NOTE: RX page posting is done in this routine as well. while there's
  *       the capability of using multiple RX completion rings, it isn't
  *       really worthwhile due to the fact that the page posting will
- *       force serialization on the single descriptor ring. 
+ *       force serialization on the single descriptor ring.
  */
 static int cas_rx_ringN(struct cas *cp, int ring, int budget)
 {
@@ -2319,7 +2319,7 @@ static int cas_rx_ringN(struct cas *cp, int ring, int budget)
 	if (netif_msg_intr(cp))
 		printk(KERN_DEBUG "%s: rx[%d] interrupt, done: %d/%d\n",
 		       cp->dev->name, ring,
-		       readl(cp->regs + REG_RX_COMP_HEAD), 
+		       readl(cp->regs + REG_RX_COMP_HEAD),
 		       cp->rx_new[ring]);
 
 	entry = cp->rx_new[ring];
@@ -2375,7 +2375,7 @@ static int cas_rx_ringN(struct cas *cp, int ring, int budget)
 		 */
 		if (RX_DONT_BATCH || (type == 0x2)) {
 			/* non-reassm: these always get released */
-			cas_skb_release(skb); 
+			cas_skb_release(skb);
 		} else {
 			cas_rx_flow_pkt(cp, words, skb);
 		}
@@ -2396,7 +2396,7 @@ static int cas_rx_ringN(struct cas *cp, int ring, int budget)
 			i = CAS_VAL(RX_INDEX_NUM, i);
 			cas_post_page(cp, dring, i);
 		}
-		
+
 		if (words[0] & RX_COMP1_RELEASE_DATA) {
 			i = CAS_VAL(RX_COMP1_DATA_INDEX, words[0]);
 			dring = CAS_VAL(RX_INDEX_RING, i);
@@ -2412,7 +2412,7 @@ static int cas_rx_ringN(struct cas *cp, int ring, int budget)
 		}
 
 		/* skip to the next entry */
-		entry = RX_COMP_ENTRY(ring, entry + 1 + 
+		entry = RX_COMP_ENTRY(ring, entry + 1 +
 				      CAS_VAL(RX_COMP1_SKIP, words[0]));
 #ifdef USE_NAPI
 		if (budget && (npackets >= budget))
@@ -2436,12 +2436,12 @@ static void cas_post_rxcs_ringN(struct net_device *dev,
 	int last, entry;
 
 	last = cp->rx_cur[ring];
-	entry = cp->rx_new[ring]; 
+	entry = cp->rx_new[ring];
 	if (netif_msg_intr(cp))
 		printk(KERN_DEBUG "%s: rxc[%d] interrupt, done: %d/%d\n",
 		       dev->name, ring, readl(cp->regs + REG_RX_COMP_HEAD),
 		       entry);
-	
+
 	/* zero and re-mark descriptors */
 	while (last != entry) {
 		cas_rxc_init(rxc + last);
@@ -2451,21 +2451,21 @@ static void cas_post_rxcs_ringN(struct net_device *dev,
 
 	if (ring == 0)
 		writel(last, cp->regs + REG_RX_COMP_TAIL);
-	else if (cp->cas_flags & CAS_FLAG_REG_PLUS) 
+	else if (cp->cas_flags & CAS_FLAG_REG_PLUS)
 		writel(last, cp->regs + REG_PLUS_RX_COMPN_TAIL(ring));
 }
 
 
 
-/* cassini can use all four PCI interrupts for the completion ring. 
+/* cassini can use all four PCI interrupts for the completion ring.
  * rings 3 and 4 are identical
  */
 #if defined(USE_PCI_INTC) || defined(USE_PCI_INTD)
-static inline void cas_handle_irqN(struct net_device *dev, 
+static inline void cas_handle_irqN(struct net_device *dev,
 				   struct cas *cp, const u32 status,
 				   const int ring)
 {
-	if (status & (INTR_RX_COMP_FULL_ALT | INTR_RX_COMP_AF_ALT)) 
+	if (status & (INTR_RX_COMP_FULL_ALT | INTR_RX_COMP_AF_ALT))
 		cas_post_rxcs_ringN(dev, cp, ring);
 }
 
@@ -2505,7 +2505,7 @@ static irqreturn_t cas_interruptN(int irq, void *dev_id, struct pt_regs *regs)
 static inline void cas_handle_irq1(struct cas *cp, const u32 status)
 {
 	if (status & INTR_RX_BUF_UNAVAIL_1) {
-		/* Frame arrived, no free RX buffers available. 
+		/* Frame arrived, no free RX buffers available.
 		 * NOTE: we can get this on a link transition. */
 		cas_post_rxds_ringN(cp, 1, 0);
 		spin_lock(&cp->stat_lock[1]);
@@ -2513,8 +2513,8 @@ static inline void cas_handle_irq1(struct cas *cp, const u32 status)
 		spin_unlock(&cp->stat_lock[1]);
 	}
 
-	if (status & INTR_RX_BUF_AE_1) 
-		cas_post_rxds_ringN(cp, 1, RX_DESC_RINGN_SIZE(1) - 
+	if (status & INTR_RX_BUF_AE_1)
+		cas_post_rxds_ringN(cp, 1, RX_DESC_RINGN_SIZE(1) -
 				    RX_AE_FREEN_VAL(1));
 
 	if (status & (INTR_RX_COMP_AF | INTR_RX_COMP_FULL))
@@ -2558,7 +2558,7 @@ static inline void cas_handle_irq(struct net_device *dev,
 		cas_abnormal_irq(dev, cp, status);
 
 	if (status & INTR_RX_BUF_UNAVAIL) {
-		/* Frame arrived, no free RX buffers available. 
+		/* Frame arrived, no free RX buffers available.
 		 * NOTE: we can get this on a link transition.
 		 */
 		cas_post_rxds_ringN(cp, 0, 0);
@@ -2625,7 +2625,7 @@ static int cas_poll(struct net_device *dev, int *budget)
 	todo = min(*budget, dev->quota);
 
 	/* to make sure we're fair with the work we loop through each
-	 * ring N_RX_COMP_RING times with a request of 
+	 * ring N_RX_COMP_RING times with a request of
 	 * todo / N_RX_COMP_RINGS
 	 */
 	enable_intr = 1;
@@ -2784,13 +2784,13 @@ static void cas_write_txd(struct cas *cp, int ring, int entry,
 	txd->buffer = cpu_to_le64(mapping);
 }
 
-static inline void *tx_tiny_buf(struct cas *cp, const int ring, 
+static inline void *tx_tiny_buf(struct cas *cp, const int ring,
 				const int entry)
 {
 	return cp->tx_tiny_bufs[ring] + TX_TINY_BUF_LEN*entry;
 }
 
-static inline dma_addr_t tx_tiny_map(struct cas *cp, const int ring, 
+static inline dma_addr_t tx_tiny_map(struct cas *cp, const int ring,
 				     const int entry, const int tentry)
 {
 	cp->tx_tiny_use[ring][tentry].nbufs++;
@@ -2798,7 +2798,7 @@ static inline dma_addr_t tx_tiny_map(struct cas *cp, const int ring,
 	return cp->tx_tiny_dvma[ring] + TX_TINY_BUF_LEN*entry;
 }
 
-static inline int cas_xmit_tx_ringN(struct cas *cp, int ring, 
+static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
 				    struct sk_buff *skb)
 {
 	struct net_device *dev = cp->dev;
@@ -2811,7 +2811,7 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
 	spin_lock_irqsave(&cp->tx_lock[ring], flags);
 
 	/* This is a hard error, log it. */
-	if (TX_BUFFS_AVAIL(cp, ring) <= 
+	if (TX_BUFFS_AVAIL(cp, ring) <=
 	    CAS_TABORT(cp)*(skb_shinfo(skb)->nr_frags + 1)) {
 		netif_stop_queue(dev);
 		spin_unlock_irqrestore(&cp->tx_lock[ring], flags);
@@ -2827,7 +2827,7 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
 		csum_start_off = (u64) (skb->h.raw - skb->data);
 		csum_stuff_off = (u64) ((skb->h.raw + skb->csum) - skb->data);
 
-		ctrl =  TX_DESC_CSUM_EN | 
+		ctrl =  TX_DESC_CSUM_EN |
 			CAS_BASE(TX_DESC_CSUM_START, csum_start_off) |
 			CAS_BASE(TX_DESC_CSUM_STUFF, csum_stuff_off);
 	}
@@ -2845,17 +2845,17 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
 	tabort = cas_calc_tabort(cp, (unsigned long) skb->data, len);
 	if (unlikely(tabort)) {
 		/* NOTE: len is always >  tabort */
-		cas_write_txd(cp, ring, entry, mapping, len - tabort, 
+		cas_write_txd(cp, ring, entry, mapping, len - tabort,
 			      ctrl | TX_DESC_SOF, 0);
 		entry = TX_DESC_NEXT(ring, entry);
 
-		memcpy(tx_tiny_buf(cp, ring, entry), skb->data + 
+		memcpy(tx_tiny_buf(cp, ring, entry), skb->data +
 		       len - tabort, tabort);
 		mapping = tx_tiny_map(cp, ring, entry, tentry);
 		cas_write_txd(cp, ring, entry, mapping, tabort, ctrl,
 			      (nr_frags == 0));
 	} else {
-		cas_write_txd(cp, ring, entry, mapping, len, ctrl | 
+		cas_write_txd(cp, ring, entry, mapping, len, ctrl |
 			      TX_DESC_SOF, (nr_frags == 0));
 	}
 	entry = TX_DESC_NEXT(ring, entry);
@@ -2876,10 +2876,10 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
 			cas_write_txd(cp, ring, entry, mapping, len - tabort,
 				      ctrl, 0);
 			entry = TX_DESC_NEXT(ring, entry);
-			
+
 			addr = cas_page_map(fragp->page);
 			memcpy(tx_tiny_buf(cp, ring, entry),
-			       addr + fragp->page_offset + len - tabort, 
+			       addr + fragp->page_offset + len - tabort,
 			       tabort);
 			cas_page_unmap(addr);
 			mapping = tx_tiny_map(cp, ring, entry, tentry);
@@ -2898,12 +2898,12 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
 	if (netif_msg_tx_queued(cp))
 		printk(KERN_DEBUG "%s: tx[%d] queued, slot %d, skblen %d, "
 		       "avail %d\n",
-		       dev->name, ring, entry, skb->len, 
+		       dev->name, ring, entry, skb->len,
 		       TX_BUFFS_AVAIL(cp, ring));
 	writel(entry, cp->regs + REG_TX_KICKN(ring));
 	spin_unlock_irqrestore(&cp->tx_lock[ring], flags);
 	return 0;
-} 
+}
 
 static int cas_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
@@ -2912,7 +2912,7 @@ static int cas_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	/* this is only used as a load-balancing hint, so it doesn't
 	 * need to be SMP safe
 	 */
-	static int ring; 
+	static int ring;
 
 	if (skb_padto(skb, cp->min_frame_size))
 		return 0;
@@ -2943,14 +2943,14 @@ static void cas_init_tx_dma(struct cas *cp)
 	/* enable completion writebacks, enable paced mode,
 	 * disable read pipe, and disable pre-interrupt compwbs
 	 */
-	val =   TX_CFG_COMPWB_Q1 | TX_CFG_COMPWB_Q2 | 
+	val =   TX_CFG_COMPWB_Q1 | TX_CFG_COMPWB_Q2 |
 		TX_CFG_COMPWB_Q3 | TX_CFG_COMPWB_Q4 |
-		TX_CFG_DMA_RDPIPE_DIS | TX_CFG_PACED_MODE | 
+		TX_CFG_DMA_RDPIPE_DIS | TX_CFG_PACED_MODE |
 		TX_CFG_INTR_COMPWB_DIS;
 
 	/* write out tx ring info and tx desc bases */
 	for (i = 0; i < MAX_TX_RINGS; i++) {
-		off = (unsigned long) cp->init_txds[i] - 
+		off = (unsigned long) cp->init_txds[i] -
 			(unsigned long) cp->init_block;
 
 		val |= CAS_TX_RINGN_BASE(i);
@@ -2991,7 +2991,7 @@ static u32 cas_setup_multicast(struct cas *cp)
 {
 	u32 rxcfg = 0;
 	int i;
-	
+
 	if (cp->dev->flags & IFF_PROMISC) {
 		rxcfg |= MAC_RX_CFG_PROMISC_EN;
 
@@ -3016,16 +3016,16 @@ static u32 cas_setup_multicast(struct cas *cp)
 				writel(0x0, cp->regs + REG_MAC_ADDRN(i*3 + 2));
 				continue;
 			}
-			writel((dmi->dmi_addr[4] << 8) | dmi->dmi_addr[5], 
+			writel((dmi->dmi_addr[4] << 8) | dmi->dmi_addr[5],
 			       cp->regs + REG_MAC_ADDRN(i*3 + 0));
-			writel((dmi->dmi_addr[2] << 8) | dmi->dmi_addr[3], 
+			writel((dmi->dmi_addr[2] << 8) | dmi->dmi_addr[3],
 			       cp->regs + REG_MAC_ADDRN(i*3 + 1));
-			writel((dmi->dmi_addr[0] << 8) | dmi->dmi_addr[1], 
+			writel((dmi->dmi_addr[0] << 8) | dmi->dmi_addr[1],
 			       cp->regs + REG_MAC_ADDRN(i*3 + 2));
 			dmi = dmi->next;
 		}
 
-		/* use hw hash table for the next series of 
+		/* use hw hash table for the next series of
 		 * multicast addresses
 		 */
 		memset(hash_table, 0, sizeof(hash_table));
@@ -3036,7 +3036,7 @@ static u32 cas_setup_multicast(struct cas *cp)
 			dmi = dmi->next;
 		}
 	    	for (i=0; i < 16; i++)
-			writel(hash_table[i], cp->regs + 
+			writel(hash_table[i], cp->regs +
 			       REG_MAC_HASH_TABLEN(i));
 		rxcfg |= MAC_RX_CFG_HASH_FILTER_EN;
 	}
@@ -3121,23 +3121,23 @@ static void cas_init_mac(struct cas *cp)
 	writel(0x00, cp->regs + REG_MAC_IPG0);
 	writel(0x08, cp->regs + REG_MAC_IPG1);
 	writel(0x04, cp->regs + REG_MAC_IPG2);
-	
+
 	/* change later for 802.3z */
-	writel(0x40, cp->regs + REG_MAC_SLOT_TIME); 
+	writel(0x40, cp->regs + REG_MAC_SLOT_TIME);
 
 	/* min frame + FCS */
 	writel(ETH_ZLEN + 4, cp->regs + REG_MAC_FRAMESIZE_MIN);
 
 	/* Ethernet payload + header + FCS + optional VLAN tag. NOTE: we
-	 * specify the maximum frame size to prevent RX tag errors on 
+	 * specify the maximum frame size to prevent RX tag errors on
 	 * oversized frames.
 	 */
 	writel(CAS_BASE(MAC_FRAMESIZE_MAX_BURST, 0x2000) |
-	       CAS_BASE(MAC_FRAMESIZE_MAX_FRAME, 
-			(CAS_MAX_MTU + ETH_HLEN + 4 + 4)), 
+	       CAS_BASE(MAC_FRAMESIZE_MAX_FRAME,
+			(CAS_MAX_MTU + ETH_HLEN + 4 + 4)),
 	       cp->regs + REG_MAC_FRAMESIZE_MAX);
 
-	/* NOTE: crc_size is used as a surrogate for half-duplex. 
+	/* NOTE: crc_size is used as a surrogate for half-duplex.
 	 * workaround saturn half-duplex issue by increasing preamble
 	 * size to 65 bytes.
 	 */
@@ -3180,7 +3180,7 @@ static void cas_init_mac(struct cas *cp)
 	 * spin_lock_irqsave, but we are called only in cas_init_hw and
 	 * cas_init_hw is protected by cas_lock_all, which calls
 	 * spin_lock_irq (so it doesn't need to save the flags, and
-	 * we should be OK for the writel, as that is the only 
+	 * we should be OK for the writel, as that is the only
 	 * difference).
 	 */
 	cp->mac_rx_cfg = rxcfg = cas_setup_multicast(cp);
@@ -3229,7 +3229,7 @@ static int cas_vpd_match(const void __iomem *p, const char *str)
 {
 	int len = strlen(str) + 1;
 	int i;
-	
+
 	for (i = 0; i < len; i++) {
 		if (readb(p + i) != str[i])
 			return 0;
@@ -3246,7 +3246,7 @@ static int cas_vpd_match(const void __iomem *p, const char *str)
  *     number.
  *  3) fiber cards don't have bridges, so their slot numbers don't
  *     mean anything.
- *  4) we don't actually know we have a fiber card until after 
+ *  4) we don't actually know we have a fiber card until after
  *     the mac addresses are parsed.
  */
 static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,
@@ -3278,15 +3278,15 @@ static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,
 		    (readb(p + i + 1) == 0x43) &&
 		    (readb(p + i + 2) == 0x49) &&
 		    (readb(p + i + 3) == 0x52)) {
-			base = p + (readb(p + i + 8) | 
+			base = p + (readb(p + i + 8) |
 				    (readb(p + i + 9) << 8));
 			break;
-		}		
+		}
 	}
 
 	if (!base || (readb(base) != 0x82))
 		goto use_random_mac_addr;
-	
+
 	i = (readb(base + 1) | (readb(base + 2) << 8)) + 3;
 	while (i < EXPANSION_ROM_SIZE) {
 		if (readb(base + i) != 0x90) /* no vpd found */
@@ -3304,20 +3304,20 @@ static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,
 			char type;
 
 			p += 3;
-			
+
 			/* look for the following things:
 			 * -- correct length == 29
-			 * 3 (type) + 2 (size) + 
-			 * 18 (strlen("local-mac-address") + 1) + 
-			 * 6 (mac addr) 
+			 * 3 (type) + 2 (size) +
+			 * 18 (strlen("local-mac-address") + 1) +
+			 * 6 (mac addr)
 			 * -- VPD Instance 'I'
 			 * -- VPD Type Bytes 'B'
 			 * -- VPD data length == 6
 			 * -- property string == local-mac-address
-			 * 
+			 *
 			 * -- correct length == 24
-			 * 3 (type) + 2 (size) + 
-			 * 12 (strlen("entropy-dev") + 1) + 
+			 * 3 (type) + 2 (size) +
+			 * 12 (strlen("entropy-dev") + 1) +
 			 * 7 (strlen("vms110") + 1)
 			 * -- VPD Instance 'I'
 			 * -- VPD Type String 'B'
@@ -3325,17 +3325,17 @@ static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,
 			 * -- property string == entropy-dev
 			 *
 			 * -- correct length == 18
-			 * 3 (type) + 2 (size) + 
-			 * 9 (strlen("phy-type") + 1) + 
+			 * 3 (type) + 2 (size) +
+			 * 9 (strlen("phy-type") + 1) +
 			 * 4 (strlen("pcs") + 1)
 			 * -- VPD Instance 'I'
 			 * -- VPD Type String 'S'
 			 * -- VPD data length == 4
 			 * -- property string == phy-type
-			 * 
+			 *
 			 * -- correct length == 23
-			 * 3 (type) + 2 (size) + 
-			 * 14 (strlen("phy-interface") + 1) + 
+			 * 3 (type) + 2 (size) +
+			 * 14 (strlen("phy-interface") + 1) +
 			 * 4 (strlen("pcs") + 1)
 			 * -- VPD Instance 'I'
 			 * -- VPD Type String 'S'
@@ -3349,14 +3349,14 @@ static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,
 			type = readb(p + 3);
 			if (type == 'B') {
 				if ((klen == 29) && readb(p + 4) == 6 &&
-				    cas_vpd_match(p + 5, 
+				    cas_vpd_match(p + 5,
 						  "local-mac-address")) {
-					if (mac_off++ > offset) 
+					if (mac_off++ > offset)
 						goto next;
 
 					/* set mac address */
-					for (j = 0; j < 6; j++) 
-						dev_addr[j] = 
+					for (j = 0; j < 6; j++)
+						dev_addr[j] =
 							readb(p + 23 + j);
 					goto found_mac;
 				}
@@ -3366,7 +3366,7 @@ static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,
 				goto next;
 
 #ifdef USE_ENTROPY_DEV
-			if ((klen == 24) && 
+			if ((klen == 24) &&
 			    cas_vpd_match(p + 5, "entropy-dev") &&
 			    cas_vpd_match(p + 17, "vms110")) {
 				cp->cas_flags |= CAS_FLAG_ENTROPY_DEV;
@@ -3384,7 +3384,7 @@ static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,
 					goto found_phy;
 				}
 			}
-			
+
 			if ((klen == 23) && readb(p + 4) == 4 &&
 			    cas_vpd_match(p + 5, "phy-interface")) {
 				if (cas_vpd_match(p + 19, "pcs")) {
@@ -3462,12 +3462,12 @@ static int cas_check_invariants(struct cas *cp)
 	int i;
 
 	/* get page size for rx buffers. */
-	cp->page_order = 0; 
+	cp->page_order = 0;
 #ifdef USE_PAGE_ORDER
 	if (PAGE_SHIFT < CAS_JUMBO_PAGE_SHIFT) {
 		/* see if we can allocate larger pages */
-		struct page *page = alloc_pages(GFP_ATOMIC, 
-						CAS_JUMBO_PAGE_SHIFT - 
+		struct page *page = alloc_pages(GFP_ATOMIC,
+						CAS_JUMBO_PAGE_SHIFT -
 						PAGE_SHIFT);
 		if (page) {
 			__free_pages(page, CAS_JUMBO_PAGE_SHIFT - PAGE_SHIFT);
@@ -3483,15 +3483,15 @@ static int cas_check_invariants(struct cas *cp)
 	cp->tx_fifo_size = readl(cp->regs + REG_TX_FIFO_SIZE) * 64;
 	cp->rx_fifo_size = RX_FIFO_SIZE;
 
-	/* finish phy determination. MDIO1 takes precedence over MDIO0 if 
+	/* finish phy determination. MDIO1 takes precedence over MDIO0 if
 	 * they're both connected.
 	 */
-	cp->phy_type = cas_get_vpd_info(cp, cp->dev->dev_addr, 
+	cp->phy_type = cas_get_vpd_info(cp, cp->dev->dev_addr,
 					PCI_SLOT(pdev->devfn));
 	if (cp->phy_type & CAS_PHY_SERDES) {
 		cp->cas_flags |= CAS_FLAG_1000MB_CAP;
 		return 0; /* no more checking needed */
-	} 
+	}
 
 	/* MII */
 	cfg = readl(cp->regs + REG_MIF_CFG);
@@ -3525,7 +3525,7 @@ static int cas_check_invariants(struct cas *cp)
 done:
 	/* see if we can do gigabit */
 	cfg = cas_phy_read(cp, MII_BMSR);
-	if ((cfg & CAS_BMSR_1000_EXTEND) && 
+	if ((cfg & CAS_BMSR_1000_EXTEND) &&
 	    cas_phy_read(cp, CAS_MII_1000_EXTEND))
 		cp->cas_flags |= CAS_FLAG_1000MB_CAP;
 	return 0;
@@ -3537,7 +3537,7 @@ static inline void cas_start_dma(struct cas *cp)
 	int i;
 	u32 val;
 	int txfailed = 0;
-	
+
 	/* enable dma */
 	val = readl(cp->regs + REG_TX_CFG) | TX_CFG_DMA_EN;
 	writel(val, cp->regs + REG_TX_CFG);
@@ -3563,8 +3563,8 @@ static inline void cas_start_dma(struct cas *cp)
 		val = readl(cp->regs + REG_MAC_RX_CFG);
 		if ((val & MAC_RX_CFG_EN)) {
 			if (txfailed) {
-			  printk(KERN_ERR 
-				 "%s: enabling mac failed [tx:%08x:%08x].\n", 
+			  printk(KERN_ERR
+				 "%s: enabling mac failed [tx:%08x:%08x].\n",
 				 cp->dev->name,
 				 readl(cp->regs + REG_MIF_STATE_MACHINE),
 				 readl(cp->regs + REG_MAC_STATE_MACHINE));
@@ -3573,7 +3573,7 @@ static inline void cas_start_dma(struct cas *cp)
 		}
 		udelay(10);
 	}
-	printk(KERN_ERR "%s: enabling mac failed [%s:%08x:%08x].\n", 
+	printk(KERN_ERR "%s: enabling mac failed [%s:%08x:%08x].\n",
 	       cp->dev->name,
 	       (txfailed? "tx,rx":"rx"),
 	       readl(cp->regs + REG_MIF_STATE_MACHINE),
@@ -3585,11 +3585,11 @@ enable_rx_done:
 	writel(0, cp->regs + REG_RX_COMP_TAIL);
 
 	if (cp->cas_flags & CAS_FLAG_REG_PLUS) {
-		if (N_RX_DESC_RINGS > 1) 
-			writel(RX_DESC_RINGN_SIZE(1) - 4, 
+		if (N_RX_DESC_RINGS > 1)
+			writel(RX_DESC_RINGN_SIZE(1) - 4,
 			       cp->regs + REG_PLUS_RX_KICK1);
 
-		for (i = 1; i < N_RX_COMP_RINGS; i++) 
+		for (i = 1; i < N_RX_COMP_RINGS; i++)
 			writel(0, cp->regs + REG_PLUS_RX_COMPN_TAIL(i));
 	}
 }
@@ -3615,7 +3615,7 @@ static void cas_read_mii_link_mode(struct cas *cp, int *fd, int *spd,
 	*fd = 0;
 	*spd = 10;
 	*pause = 0;
-	
+
 	/* use GMII registers */
 	val = cas_phy_read(cp, MII_LPA);
 	if (val & CAS_LPA_PAUSE)
@@ -3656,7 +3656,7 @@ static void cas_set_link_modes(struct cas *cp)
 		cas_mif_poll(cp, 0);
 		val = cas_phy_read(cp, MII_BMCR);
 		if (val & BMCR_ANENABLE) {
-			cas_read_mii_link_mode(cp, &full_duplex, &speed, 
+			cas_read_mii_link_mode(cp, &full_duplex, &speed,
 					       &pause);
 		} else {
 			if (val & BMCR_FULLDPLX)
@@ -3689,7 +3689,7 @@ static void cas_set_link_modes(struct cas *cp)
 		if (!full_duplex)
 			val |= MAC_XIF_DISABLE_ECHO;
 	}
-	if (full_duplex) 
+	if (full_duplex)
 		val |= MAC_XIF_FDPLX_LED;
 	if (speed == 1000)
 		val |= MAC_XIF_GMII_MODE;
@@ -3709,17 +3709,17 @@ static void cas_set_link_modes(struct cas *cp)
 	/* val now set up for REG_MAC_TX_CFG */
 
 	/* If gigabit and half-duplex, enable carrier extension
-	 * mode.  increase slot time to 512 bytes as well. 
+	 * mode.  increase slot time to 512 bytes as well.
 	 * else, disable it and make sure slot time is 64 bytes.
 	 * also activate checksum bug workaround
 	 */
 	if ((speed == 1000) && !full_duplex) {
-		writel(val | MAC_TX_CFG_CARRIER_EXTEND, 
+		writel(val | MAC_TX_CFG_CARRIER_EXTEND,
 		       cp->regs + REG_MAC_TX_CFG);
 
 		val = readl(cp->regs + REG_MAC_RX_CFG);
 		val &= ~MAC_RX_CFG_STRIP_FCS; /* checksum workaround */
-		writel(val | MAC_RX_CFG_CARRIER_EXTEND, 
+		writel(val | MAC_RX_CFG_CARRIER_EXTEND,
 		       cp->regs + REG_MAC_RX_CFG);
 
 		writel(0x200, cp->regs + REG_MAC_SLOT_TIME);
@@ -3731,7 +3731,7 @@ static void cas_set_link_modes(struct cas *cp)
 	} else {
 		writel(val, cp->regs + REG_MAC_TX_CFG);
 
-		/* checksum bug workaround. don't strip FCS when in 
+		/* checksum bug workaround. don't strip FCS when in
 		 * half-duplex mode
 		 */
 		val = readl(cp->regs + REG_MAC_RX_CFG);
@@ -3744,7 +3744,7 @@ static void cas_set_link_modes(struct cas *cp)
 			cp->crc_size = 4;
 			cp->min_frame_size = CAS_MIN_FRAME;
 		}
-		writel(val & ~MAC_RX_CFG_CARRIER_EXTEND, 
+		writel(val & ~MAC_RX_CFG_CARRIER_EXTEND,
 		       cp->regs + REG_MAC_RX_CFG);
 		writel(0x40, cp->regs + REG_MAC_SLOT_TIME);
 	}
@@ -3772,7 +3772,7 @@ static void cas_set_link_modes(struct cas *cp)
 		val |= MAC_CTRL_CFG_SEND_PAUSE_EN;
 		if (pause & 0x01) { /* symmetric pause */
 			val |= MAC_CTRL_CFG_RECV_PAUSE_EN;
-		} 
+		}
 	}
 	writel(val, cp->regs + REG_MAC_CTRL_CFG);
 	cas_start_dma(cp);
@@ -3804,7 +3804,7 @@ static void cas_init_hw(struct cas *cp, int restart_link)
  */
 static void cas_hard_reset(struct cas *cp)
 {
-	writel(BIM_LOCAL_DEV_SOFT_0, cp->regs + REG_BIM_LOCAL_DEV_EN); 
+	writel(BIM_LOCAL_DEV_SOFT_0, cp->regs + REG_BIM_LOCAL_DEV_EN);
 	udelay(20);
 	pci_restore_state(cp->pdev);
 }
@@ -3822,7 +3822,7 @@ static void cas_global_reset(struct cas *cp, int blkflag)
 		 * need some special handling if the chip is set into a
 		 * loopback mode.
 		 */
-		writel((SW_RESET_TX | SW_RESET_RX | SW_RESET_BLOCK_PCS_SLINK), 
+		writel((SW_RESET_TX | SW_RESET_RX | SW_RESET_BLOCK_PCS_SLINK),
 		       cp->regs + REG_SW_RESET);
 	} else {
 		writel(SW_RESET_TX | SW_RESET_RX, cp->regs + REG_SW_RESET);
@@ -3842,16 +3842,16 @@ static void cas_global_reset(struct cas *cp, int blkflag)
 
 done:
 	/* enable various BIM interrupts */
-	writel(BIM_CFG_DPAR_INTR_ENABLE | BIM_CFG_RMA_INTR_ENABLE | 
+	writel(BIM_CFG_DPAR_INTR_ENABLE | BIM_CFG_RMA_INTR_ENABLE |
 	       BIM_CFG_RTA_INTR_ENABLE, cp->regs + REG_BIM_CFG);
 
 	/* clear out pci error status mask for handled errors.
 	 * we don't deal with DMA counter overflows as they happen
 	 * all the time.
 	 */
-	writel(0xFFFFFFFFU & ~(PCI_ERR_BADACK | PCI_ERR_DTRTO | 
-			       PCI_ERR_OTHER | PCI_ERR_BIM_DMA_WRITE | 
-			       PCI_ERR_BIM_DMA_READ), cp->regs + 
+	writel(0xFFFFFFFFU & ~(PCI_ERR_BADACK | PCI_ERR_DTRTO |
+			       PCI_ERR_OTHER | PCI_ERR_BIM_DMA_WRITE |
+			       PCI_ERR_BIM_DMA_READ), cp->regs +
 	       REG_PCI_ERR_STATUS_MASK);
 
 	/* set up for MII by default to address mac rx reset timeout
@@ -3912,7 +3912,7 @@ static void cas_shutdown(struct cas *cp)
 #else
 	while (atomic_read(&cp->reset_task_pending))
 		schedule();
-#endif	
+#endif
 	/* Actually stop the chip */
 	cas_lock_all_save(cp, flags);
 	cas_reset(cp, 0);
@@ -3942,7 +3942,7 @@ static int cas_change_mtu(struct net_device *dev, int new_mtu)
 	}
 	schedule_work(&cp->reset_task);
 #else
-	atomic_set(&cp->reset_task_pending, (cp->phy_type & CAS_PHY_SERDES) ? 
+	atomic_set(&cp->reset_task_pending, (cp->phy_type & CAS_PHY_SERDES) ?
 		   CAS_RESET_ALL : CAS_RESET_MTU);
 	printk(KERN_ERR "reset called in cas_change_mtu\n");
 	schedule_work(&cp->reset_task);
@@ -3976,7 +3976,7 @@ static void cas_clean_txd(struct cas *cp, int ring)
 			 * needs to be unmapped.
 			 */
 			daddr = le64_to_cpu(txd[ent].buffer);
-			dlen  =  CAS_VAL(TX_DESC_BUFLEN, 
+			dlen  =  CAS_VAL(TX_DESC_BUFLEN,
 					 le64_to_cpu(txd[ent].control));
 			pci_unmap_page(cp->pdev, daddr, dlen,
 				       PCI_DMA_TODEVICE);
@@ -4047,7 +4047,7 @@ static inline int cas_alloc_rx_desc(struct cas *cp, int ring)
 
 	size = RX_DESC_RINGN_SIZE(ring);
 	for (i = 0; i < size; i++) {
-		if ((page[i] = cas_page_alloc(cp, GFP_KERNEL)) == NULL) 
+		if ((page[i] = cas_page_alloc(cp, GFP_KERNEL)) == NULL)
 			return -1;
 	}
 	return 0;
@@ -4114,7 +4114,7 @@ static void cas_reset_task(void *data)
 		 * call to cas_init_hw will restart auto negotiation.
 		 * Setting the second argument of cas_reset to
 		 * !(pending == CAS_RESET_ALL) will set this argument
-		 * to 1 (avoiding reinitializing the PHY for the normal 
+		 * to 1 (avoiding reinitializing the PHY for the normal
 		 * PCS case) when auto negotiation is not restarted.
 		 */
 #if 1
@@ -4151,9 +4151,9 @@ static void cas_link_timer(unsigned long data)
 
 	if (link_transition_timeout != 0 &&
 	    cp->link_transition_jiffies_valid &&
-	    ((jiffies - cp->link_transition_jiffies) > 
+	    ((jiffies - cp->link_transition_jiffies) >
 	      (link_transition_timeout))) {
-		/* One-second counter so link-down workaround doesn't 
+		/* One-second counter so link-down workaround doesn't
 		 * cause resets to occur so fast as to fool the switch
 		 * into thinking the link is down.
 		 */
@@ -4173,10 +4173,10 @@ static void cas_link_timer(unsigned long data)
 #if 1
 	if (atomic_read(&cp->reset_task_pending_all) ||
 	    atomic_read(&cp->reset_task_pending_spare) ||
-	    atomic_read(&cp->reset_task_pending_mtu)) 
+	    atomic_read(&cp->reset_task_pending_mtu))
 		goto done;
 #else
-	if (atomic_read(&cp->reset_task_pending)) 
+	if (atomic_read(&cp->reset_task_pending))
 		goto done;
 #endif
 
@@ -4268,7 +4268,7 @@ done:
 	spin_unlock_irqrestore(&cp->lock, flags);
 }
 
-/* tiny buffers are used to avoid target abort issues with 
+/* tiny buffers are used to avoid target abort issues with
  * older cassini's
  */
 static void cas_tx_tiny_free(struct cas *cp)
@@ -4280,7 +4280,7 @@ static void cas_tx_tiny_free(struct cas *cp)
 		if (!cp->tx_tiny_bufs[i])
 			continue;
 
-		pci_free_consistent(pdev, TX_TINY_BUF_BLOCK, 
+		pci_free_consistent(pdev, TX_TINY_BUF_BLOCK,
 				    cp->tx_tiny_bufs[i],
 				    cp->tx_tiny_dvma[i]);
 		cp->tx_tiny_bufs[i] = NULL;
@@ -4293,7 +4293,7 @@ static int cas_tx_tiny_alloc(struct cas *cp)
 	int i;
 
 	for (i = 0; i < N_TX_RINGS; i++) {
-		cp->tx_tiny_bufs[i] = 
+		cp->tx_tiny_bufs[i] =
 			pci_alloc_consistent(pdev, TX_TINY_BUF_BLOCK,
 					     &cp->tx_tiny_dvma[i]);
 		if (!cp->tx_tiny_bufs[i]) {
@@ -4322,7 +4322,7 @@ static int cas_open(struct net_device *dev)
 		/* Reset the chip */
 		cas_lock_all_save(cp, flags);
 		/* We set the second arg to cas_reset to zero
-		 * because cas_init_hw below will have its second 
+		 * because cas_init_hw below will have its second
 		 * argument set to non-zero, which will force
 		 * autonegotiation to start.
 		 */
@@ -4338,19 +4338,19 @@ static int cas_open(struct net_device *dev)
 	err = -ENOMEM;
 	if (cas_alloc_rxds(cp) < 0)
 		goto err_tx_tiny;
-	
+
 	/* allocate spares */
 	cas_spare_init(cp);
 	cas_spare_recover(cp, GFP_KERNEL);
 
 	/* We can now request the interrupt as we know it's masked
 	 * on the controller. cassini+ has up to 4 interrupts
-	 * that can be used, but you need to do explicit pci interrupt 
+	 * that can be used, but you need to do explicit pci interrupt
 	 * mapping to expose them
 	 */
 	if (request_irq(cp->pdev->irq, cas_interrupt,
 			IRQF_SHARED, dev->name, (void *) dev)) {
-		printk(KERN_ERR "%s: failed to request irq !\n", 
+		printk(KERN_ERR "%s: failed to request irq !\n",
 		       cp->dev->name);
 		err = -EAGAIN;
 		goto err_spare;
@@ -4388,9 +4388,9 @@ static int cas_close(struct net_device *dev)
 
 	/* Stop traffic, mark us closed */
 	cas_lock_all_save(cp, flags);
-	cp->opened = 0;	
+	cp->opened = 0;
 	cas_reset(cp, 0);
-	cas_phy_init(cp); 
+	cas_phy_init(cp);
 	cas_begin_auto_negotiation(cp, NULL);
 	cas_clean_rings(cp);
 	cas_unlock_all_restore(cp, flags);
@@ -4483,7 +4483,7 @@ static struct net_device_stats *cas_get_stats(struct net_device *dev)
 	/* we collate all of the stats into net_stats[N_TX_RING] */
 	if (!cp->hw_running)
 		return stats + N_TX_RINGS;
-	
+
 	/* collect outstanding stats */
 	/* WTZ: the Cassini spec gives these as 16 bit counters but
 	 * stored in 32-bit words.  Added a mask of 0xffff to be safe,
@@ -4493,11 +4493,11 @@ static struct net_device_stats *cas_get_stats(struct net_device *dev)
 	 * that consistent.
 	 */
 	spin_lock_irqsave(&cp->stat_lock[N_TX_RINGS], flags);
-	stats[N_TX_RINGS].rx_crc_errors += 
+	stats[N_TX_RINGS].rx_crc_errors +=
 	  readl(cp->regs + REG_MAC_FCS_ERR) & 0xffff;
-	stats[N_TX_RINGS].rx_frame_errors += 
+	stats[N_TX_RINGS].rx_frame_errors +=
 		readl(cp->regs + REG_MAC_ALIGN_ERR) &0xffff;
-	stats[N_TX_RINGS].rx_length_errors += 
+	stats[N_TX_RINGS].rx_length_errors +=
 		readl(cp->regs + REG_MAC_LEN_ERR) & 0xffff;
 #if 1
 	tmp = (readl(cp->regs + REG_MAC_COLL_EXCESS) & 0xffff) +
@@ -4506,7 +4506,7 @@ static struct net_device_stats *cas_get_stats(struct net_device *dev)
 	stats[N_TX_RINGS].collisions +=
 	  tmp + (readl(cp->regs + REG_MAC_COLL_NORMAL) & 0xffff);
 #else
-	stats[N_TX_RINGS].tx_aborted_errors += 
+	stats[N_TX_RINGS].tx_aborted_errors +=
 		readl(cp->regs + REG_MAC_COLL_EXCESS);
 	stats[N_TX_RINGS].collisions += readl(cp->regs + REG_MAC_COLL_EXCESS) +
 		readl(cp->regs + REG_MAC_COLL_LATE);
@@ -4525,7 +4525,7 @@ static struct net_device_stats *cas_get_stats(struct net_device *dev)
 
 	for (i = 0; i < N_TX_RINGS; i++) {
 		spin_lock(&cp->stat_lock[i]);
-		stats[N_TX_RINGS].rx_length_errors += 
+		stats[N_TX_RINGS].rx_length_errors +=
 			stats[i].rx_length_errors;
 		stats[N_TX_RINGS].rx_crc_errors += stats[i].rx_crc_errors;
 		stats[N_TX_RINGS].rx_packets    += stats[i].rx_packets;
@@ -4550,10 +4550,10 @@ static void cas_set_multicast(struct net_device *dev)
 	u32 rxcfg, rxcfg_new;
 	unsigned long flags;
 	int limit = STOP_TRIES;
-	
+
 	if (!cp->hw_running)
 		return;
-		
+
 	spin_lock_irqsave(&cp->lock, flags);
 	rxcfg = readl(cp->regs + REG_MAC_RX_CFG);
 
@@ -4619,22 +4619,22 @@ static int cas_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 			XCVR_INTERNAL : XCVR_EXTERNAL;
 		cmd->phy_address = cp->phy_addr;
 		cmd->advertising |= ADVERTISED_TP | ADVERTISED_MII |
-			ADVERTISED_10baseT_Half | 
-			ADVERTISED_10baseT_Full | 
-			ADVERTISED_100baseT_Half | 
+			ADVERTISED_10baseT_Half |
+			ADVERTISED_10baseT_Full |
+			ADVERTISED_100baseT_Half |
 			ADVERTISED_100baseT_Full;
 
 		cmd->supported |=
-			(SUPPORTED_10baseT_Half | 
+			(SUPPORTED_10baseT_Half |
 			 SUPPORTED_10baseT_Full |
-			 SUPPORTED_100baseT_Half | 
+			 SUPPORTED_100baseT_Half |
 			 SUPPORTED_100baseT_Full |
 			 SUPPORTED_TP | SUPPORTED_MII);
 
 		if (cp->hw_running) {
 			cas_mif_poll(cp, 0);
 			bmcr = cas_phy_read(cp, MII_BMCR);
-			cas_read_mii_link_mode(cp, &full_duplex, 
+			cas_read_mii_link_mode(cp, &full_duplex,
 					       &speed, &pause);
 			cas_mif_poll(cp, 1);
 		}
@@ -4647,9 +4647,9 @@ static int cas_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 		cmd->advertising |= ADVERTISED_FIBRE;
 
 		if (cp->hw_running) {
-			/* pcs uses the same bits as mii */ 
+			/* pcs uses the same bits as mii */
 			bmcr = readl(cp->regs + REG_PCS_MII_CTRL);
-			cas_read_pcs_link_mode(cp, &full_duplex, 
+			cas_read_pcs_link_mode(cp, &full_duplex,
 					       &speed, &pause);
 		}
 	}
@@ -4667,8 +4667,8 @@ static int cas_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 		cmd->autoneg = AUTONEG_DISABLE;
 		cmd->speed =
 			(bmcr & CAS_BMCR_SPEED1000) ?
-			SPEED_1000 : 
-			((bmcr & BMCR_SPEED100) ? SPEED_100: 
+			SPEED_1000 :
+			((bmcr & BMCR_SPEED100) ? SPEED_100:
 			 SPEED_10);
 		cmd->duplex =
 			(bmcr & BMCR_FULLDPLX) ?
@@ -4676,7 +4676,7 @@ static int cas_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 	}
 	if (linkstate != link_up) {
 		/* Force these to "unknown" if the link is not up and
-		 * autonogotiation in enabled. We can set the link 
+		 * autonogotiation in enabled. We can set the link
 		 * speed to 0, but not cmd->duplex,
 		 * because its legal values are 0 and 1.  Ethtool will
 		 * print the value reported in parentheses after the
@@ -4783,7 +4783,7 @@ static int cas_get_stats_count(struct net_device *dev)
 
 static void cas_get_strings(struct net_device *dev, u32 stringset, u8 *data)
 {
-	 memcpy(data, &ethtool_cassini_statnames, 
+	 memcpy(data, &ethtool_cassini_statnames,
 					 CAS_NUM_STAT_KEYS * ETH_GSTRING_LEN);
 }
 
@@ -4812,7 +4812,7 @@ static void cas_get_ethtool_stats(struct net_device *dev,
 	BUG_ON(i != CAS_NUM_STAT_KEYS);
 }
 
-static struct ethtool_ops cas_ethtool_ops = {
+static const struct ethtool_ops cas_ethtool_ops = {
 	.get_drvinfo		= cas_get_drvinfo,
 	.get_settings		= cas_get_settings,
 	.set_settings		= cas_set_settings,
@@ -4833,7 +4833,7 @@ static int cas_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 	struct mii_ioctl_data *data = if_mii(ifr);
 	unsigned long flags;
 	int rc = -EOPNOTSUPP;
-	
+
 	/* Hold the PM mutex while doing ioctl's or we may collide
 	 * with open/close and power management and oops.
 	 */
@@ -4933,11 +4933,11 @@ static int __devinit cas_init_one(struct pci_dev *pdev,
 	pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE,
 			     &orig_cacheline_size);
 	if (orig_cacheline_size < CAS_PREF_CACHELINE_SIZE) {
-		cas_cacheline_size = 
-			(CAS_PREF_CACHELINE_SIZE < SMP_CACHE_BYTES) ? 
+		cas_cacheline_size =
+			(CAS_PREF_CACHELINE_SIZE < SMP_CACHE_BYTES) ?
 			CAS_PREF_CACHELINE_SIZE : SMP_CACHE_BYTES;
-		if (pci_write_config_byte(pdev, 
-					  PCI_CACHE_LINE_SIZE, 
+		if (pci_write_config_byte(pdev,
+					  PCI_CACHE_LINE_SIZE,
 					  cas_cacheline_size)) {
 			dev_err(&pdev->dev, "Could not set PCI cache "
 			       "line size\n");
@@ -4977,7 +4977,7 @@ static int __devinit cas_init_one(struct pci_dev *pdev,
 	cp->orig_cacheline_size = cas_cacheline_size ? orig_cacheline_size: 0;
 #endif
 	cp->dev = dev;
-	cp->msg_enable = (cassini_debug < 0) ? CAS_DEF_MSG_ENABLE : 
+	cp->msg_enable = (cassini_debug < 0) ? CAS_DEF_MSG_ENABLE :
 	  cassini_debug;
 
 	cp->link_transition = LINK_TRANSITION_UNKNOWN;
@@ -5041,13 +5041,13 @@ static int __devinit cas_init_one(struct pci_dev *pdev,
 		goto err_out_iounmap;
 	}
 
-	for (i = 0; i < N_TX_RINGS; i++) 
+	for (i = 0; i < N_TX_RINGS; i++)
 		cp->init_txds[i] = cp->init_block->txds[i];
 
-	for (i = 0; i < N_RX_DESC_RINGS; i++) 
+	for (i = 0; i < N_RX_DESC_RINGS; i++)
 		cp->init_rxds[i] = cp->init_block->rxds[i];
 
-	for (i = 0; i < N_RX_COMP_RINGS; i++) 
+	for (i = 0; i < N_RX_COMP_RINGS; i++)
 		cp->init_rxcs[i] = cp->init_block->rxcs[i];
 
 	for (i = 0; i < N_RX_FLOWS; i++)
@@ -5087,11 +5087,11 @@ static int __devinit cas_init_one(struct pci_dev *pdev,
 
 	i = readl(cp->regs + REG_BIM_CFG);
 	printk(KERN_INFO "%s: Sun Cassini%s (%sbit/%sMHz PCI/%s) "
-	       "Ethernet[%d] ",  dev->name, 
-	       (cp->cas_flags & CAS_FLAG_REG_PLUS) ? "+" : "", 
+	       "Ethernet[%d] ",  dev->name,
+	       (cp->cas_flags & CAS_FLAG_REG_PLUS) ? "+" : "",
 	       (i & BIM_CFG_32BIT) ? "32" : "64",
 	       (i & BIM_CFG_66MHZ) ? "66" : "33",
-	       (cp->phy_type == CAS_PHY_SERDES) ? "Fi" : "Cu", pdev->irq); 
+	       (cp->phy_type == CAS_PHY_SERDES) ? "Fi" : "Cu", pdev->irq);
 
 	for (i = 0; i < 6; i++)
 		printk("%2.2x%c", dev->dev_addr[i],
@@ -5123,7 +5123,7 @@ err_out_free_res:
 
 err_write_cacheline:
 	/* Try to restore it in case the error occured after we
-	 * set it. 
+	 * set it.
 	 */
 	pci_write_config_byte(pdev, PCI_CACHE_LINE_SIZE, orig_cacheline_size);
 
@@ -5157,7 +5157,7 @@ static void __devexit cas_remove_one(struct pci_dev *pdev)
 		/* Restore the cache line size if we had modified
 		 * it.
 		 */
-		pci_write_config_byte(pdev, PCI_CACHE_LINE_SIZE, 
+		pci_write_config_byte(pdev, PCI_CACHE_LINE_SIZE,
 				      cp->orig_cacheline_size);
 	}
 #endif
@@ -5178,7 +5178,7 @@ static int cas_suspend(struct pci_dev *pdev, pm_message_t state)
 	unsigned long flags;
 
 	mutex_lock(&cp->pm_mutex);
-	
+
 	/* If the driver is opened, we stop the DMA */
 	if (cp->opened) {
 		netif_device_detach(dev);
@@ -5245,7 +5245,7 @@ static int __init cas_init(void)
 	else
 		link_transition_timeout = 0;
 
-	return pci_module_init(&cas_driver);
+	return pci_register_driver(&cas_driver);
 }
 
 static void __exit cas_cleanup(void)

+ 383 - 383
drivers/net/cassini.h

@@ -21,7 +21,7 @@
  *
  * vendor id: 0x108E (Sun Microsystems, Inc.)
  * device id: 0xabba (Cassini)
- * revision ids: 0x01 = Cassini 
+ * revision ids: 0x01 = Cassini
  *               0x02 = Cassini rev 2
  *               0x10 = Cassini+
  *               0x11 = Cassini+ 0.2u
@@ -46,16 +46,16 @@
  * appear in cassini+. REG_MINUS_ addresses only appear in cassini.
  */
 #define CAS_ID_REV2          0x02
-#define CAS_ID_REVPLUS       0x10 
-#define CAS_ID_REVPLUS02u    0x11 
+#define CAS_ID_REVPLUS       0x10
+#define CAS_ID_REVPLUS02u    0x11
 #define CAS_ID_REVSATURNB2   0x30
 
 /** global resources **/
 
 /* this register sets the weights for the weighted round robin arbiter. e.g.,
  * if rx weight == 1 and tx weight == 0, rx == 2x tx transfer credit
- * for its next turn to access the pci bus. 
- * map: 0x0 = x1, 0x1 = x2, 0x2 = x4, 0x3 = x8 
+ * for its next turn to access the pci bus.
+ * map: 0x0 = x1, 0x1 = x2, 0x2 = x4, 0x3 = x8
  * DEFAULT: 0x0, SIZE: 5 bits
  */
 #define  REG_CAWR	               0x0004  /* core arbitration weight */
@@ -66,8 +66,8 @@
 #define    CAWR_RR_DIS                 0x10    /* [4] */
 
 /* if enabled, BIM can send bursts across PCI bus > cacheline size. burst
- * sizes determined by length of packet or descriptor transfer and the 
- * max length allowed by the target. 
+ * sizes determined by length of packet or descriptor transfer and the
+ * max length allowed by the target.
  * DEFAULT: 0x0, SIZE: 1 bit
  */
 #define  REG_INF_BURST                 0x0008  /* infinite burst enable reg */
@@ -75,21 +75,21 @@
 
 /* top level interrupts [0-9] are auto-cleared to 0 when the status
  * register is read. second level interrupts [13 - 18] are cleared at
- * the source. tx completion register 3 is replicated in [19 - 31] 
+ * the source. tx completion register 3 is replicated in [19 - 31]
  * DEFAULT: 0x00000000, SIZE: 29 bits
  */
 #define  REG_INTR_STATUS               0x000C  /* interrupt status register */
-#define    INTR_TX_INTME               0x00000001  /* frame w/ INT ME desc bit set 
+#define    INTR_TX_INTME               0x00000001  /* frame w/ INT ME desc bit set
 						      xferred from host queue to
 						      TX FIFO */
 #define    INTR_TX_ALL                 0x00000002  /* all xmit frames xferred into
 						      TX FIFO. i.e.,
-						      TX Kick == TX complete. if 
+						      TX Kick == TX complete. if
 						      PACED_MODE set, then TX FIFO
 						      also empty */
-#define    INTR_TX_DONE                0x00000004  /* any frame xferred into tx 
+#define    INTR_TX_DONE                0x00000004  /* any frame xferred into tx
 						      FIFO */
-#define    INTR_TX_TAG_ERROR           0x00000008  /* TX FIFO tag framing 
+#define    INTR_TX_TAG_ERROR           0x00000008  /* TX FIFO tag framing
 						      corrupted. FATAL ERROR */
 #define    INTR_RX_DONE                0x00000010  /* at least 1 frame xferred
 						      from RX FIFO to host mem.
@@ -98,18 +98,18 @@
 						      intr blanking. */
 #define    INTR_RX_BUF_UNAVAIL         0x00000020  /* no more receive buffers.
 						      RX Kick == RX complete */
-#define    INTR_RX_TAG_ERROR           0x00000040  /* RX FIFO tag framing 
+#define    INTR_RX_TAG_ERROR           0x00000040  /* RX FIFO tag framing
 						      corrupted. FATAL ERROR */
 #define    INTR_RX_COMP_FULL           0x00000080  /* no more room in completion
 						      ring to post descriptors.
 						      RX complete head incr to
 						      almost reach RX complete
 						      tail */
-#define    INTR_RX_BUF_AE              0x00000100  /* less than the 
+#define    INTR_RX_BUF_AE              0x00000100  /* less than the
 						      programmable threshold #
 						      of free descr avail for
 						      hw use */
-#define    INTR_RX_COMP_AF             0x00000200  /* less than the 
+#define    INTR_RX_COMP_AF             0x00000200  /* less than the
 						      programmable threshold #
 						      of descr spaces for hw
 						      use in completion descr
@@ -119,17 +119,17 @@
 						      from fifo during DMA or
 						      header parser provides TCP
 						      header and payload size >
-						      MAC packet size. 
+						      MAC packet size.
 						      FATAL ERROR */
 #define    INTR_SUMMARY                0x00001000  /* summary interrupt bit. this
-						      bit will be set if an interrupt 
+						      bit will be set if an interrupt
 						      generated on the pci bus. useful
-						      when driver is polling for 
+						      when driver is polling for
 						      interrupts */
 #define    INTR_PCS_STATUS             0x00002000  /* PCS interrupt status register */
-#define    INTR_TX_MAC_STATUS          0x00004000  /* TX MAC status register has at 
+#define    INTR_TX_MAC_STATUS          0x00004000  /* TX MAC status register has at
 						      least 1 unmasked interrupt set */
-#define    INTR_RX_MAC_STATUS          0x00008000  /* RX MAC status register has at 
+#define    INTR_RX_MAC_STATUS          0x00008000  /* RX MAC status register has at
 						      least 1 unmasked interrupt set */
 #define    INTR_MAC_CTRL_STATUS        0x00010000  /* MAC control status register has
 						      at least 1 unmasked interrupt
@@ -137,9 +137,9 @@
 #define    INTR_MIF_STATUS             0x00020000  /* MIF status register has at least
 						      1 unmasked interrupt set */
 #define    INTR_PCI_ERROR_STATUS       0x00040000  /* PCI error status register in the
-						      BIF has at least 1 unmasked 
+						      BIF has at least 1 unmasked
 						      interrupt set */
-#define    INTR_TX_COMP_3_MASK         0xFFF80000  /* mask for TX completion 
+#define    INTR_TX_COMP_3_MASK         0xFFF80000  /* mask for TX completion
 						      3 reg data */
 #define    INTR_TX_COMP_3_SHIFT        19
 #define    INTR_ERROR_MASK (INTR_MIF_STATUS | INTR_PCI_ERROR_STATUS | \
@@ -149,7 +149,7 @@
                             INTR_MAC_CTRL_STATUS)
 
 /* determines which status events will cause an interrupt. layout same
- * as REG_INTR_STATUS. 
+ * as REG_INTR_STATUS.
  * DEFAULT: 0xFFFFFFFF, SIZE: 16 bits
  */
 #define  REG_INTR_MASK                 0x0010  /* Interrupt mask */
@@ -158,18 +158,18 @@
  * useful when driver is polling for interrupts. layout same as REG_INTR_MASK.
  * DEFAULT: 0x00000000, SIZE: 12 bits
  */
-#define  REG_ALIAS_CLEAR               0x0014  /* alias clear mask 
+#define  REG_ALIAS_CLEAR               0x0014  /* alias clear mask
 						  (used w/ status alias) */
 /* same as REG_INTR_STATUS except that only bits cleared are those selected by
- * REG_ALIAS_CLEAR 
+ * REG_ALIAS_CLEAR
  * DEFAULT: 0x00000000, SIZE: 29 bits
  */
-#define  REG_INTR_STATUS_ALIAS         0x001C  /* interrupt status alias 
+#define  REG_INTR_STATUS_ALIAS         0x001C  /* interrupt status alias
 						  (selective clear) */
 
 /* DEFAULT: 0x0, SIZE: 3 bits */
 #define  REG_PCI_ERR_STATUS            0x1000  /* PCI error status */
-#define    PCI_ERR_BADACK              0x01    /* reserved in Cassini+. 
+#define    PCI_ERR_BADACK              0x01    /* reserved in Cassini+.
 						  set if no ACK64# during ABS64 cycle
 						  in Cassini. */
 #define    PCI_ERR_DTRTO               0x02    /* delayed xaction timeout. set if
@@ -179,16 +179,16 @@
 						  unused in Cassini. */
 #define    PCI_ERR_BIM_DMA_READ        0x10    /* BIM received 0 count DMA read req.
 						  unused in Cassini. */
-#define    PCI_ERR_BIM_DMA_TIMEOUT     0x20    /* BIM received 255 retries during 
+#define    PCI_ERR_BIM_DMA_TIMEOUT     0x20    /* BIM received 255 retries during
 						  DMA. unused in cassini. */
 
 /* mask for PCI status events that will set PCI_ERR_STATUS. if cleared, event
- * causes an interrupt to be generated. 
+ * causes an interrupt to be generated.
  * DEFAULT: 0x7, SIZE: 3 bits
  */
 #define  REG_PCI_ERR_STATUS_MASK       0x1004  /* PCI Error status mask */
 
-/* used to configure PCI related parameters that are not in PCI config space. 
+/* used to configure PCI related parameters that are not in PCI config space.
  * DEFAULT: 0bxx000, SIZE: 5 bits
  */
 #define  REG_BIM_CFG                0x1008  /* BIM Configuration */
@@ -201,7 +201,7 @@
 #define    BIM_CFG_RMA_INTR_ENABLE  0x040   /* master abort intr enable */
 #define    BIM_CFG_RTA_INTR_ENABLE  0x080   /* target abort intr enable */
 #define    BIM_CFG_RESERVED2        0x100   /* reserved */
-#define    BIM_CFG_BIM_DISABLE      0x200   /* stop BIM DMA. use before global 
+#define    BIM_CFG_BIM_DISABLE      0x200   /* stop BIM DMA. use before global
 					       reset. reserved in Cassini. */
 #define    BIM_CFG_BIM_STATUS       0x400   /* (ro) 1 = BIM DMA suspended.
 						  reserved in Cassini. */
@@ -212,7 +212,7 @@
 #define  REG_BIM_DIAG                  0x100C  /* BIM Diagnostic */
 #define    BIM_DIAG_MSTR_SM_MASK       0x3FFFFF00 /* PCI master controller state
 						     machine bits [21:0] */
-#define    BIM_DIAG_BRST_SM_MASK       0x7F    /* PCI burst controller state 
+#define    BIM_DIAG_BRST_SM_MASK       0x7F    /* PCI burst controller state
 						  machine bits [6:0] */
 
 /* writing to SW_RESET_TX and SW_RESET_RX will issue a global
@@ -224,14 +224,14 @@
 #define    SW_RESET_RX                 0x00000002  /* reset RX DMA engine. poll until
 						      cleared to 0. */
 #define    SW_RESET_RSTOUT             0x00000004  /* force RSTOUT# pin active (low).
-						      resets PHY and anything else 
+						      resets PHY and anything else
 						      connected to RSTOUT#. RSTOUT#
 						      is also activated by local PCI
-						      reset when hot-swap is being 
+						      reset when hot-swap is being
 						      done. */
-#define    SW_RESET_BLOCK_PCS_SLINK    0x00000008  /* if a global reset is done with 
-						      this bit set, PCS and SLINK 
-						      modules won't be reset. 
+#define    SW_RESET_BLOCK_PCS_SLINK    0x00000008  /* if a global reset is done with
+						      this bit set, PCS and SLINK
+						      modules won't be reset.
 						      i.e., link won't drop. */
 #define    SW_RESET_BREQ_SM_MASK       0x00007F00  /* breq state machine [6:0] */
 #define    SW_RESET_PCIARB_SM_MASK     0x00070000  /* pci arbitration state bits:
@@ -252,7 +252,7 @@
 						      0b01: AD_ACK_RX
 						      0b10: AD_ACK_TX
 						      0b11: AD_IDL_TX */
-#define    SW_RESET_WRPCI_SM_MASK      0x06000000  /* write pci state bits 
+#define    SW_RESET_WRPCI_SM_MASK      0x06000000  /* write pci state bits
 						      0b00: WR_PCI_WAT
 						      0b01: WR_PCI_RDY
 						      0b11: WR_PCI_ACK */
@@ -268,7 +268,7 @@
  * value written has both lower and upper 32-bit halves rotated to the right
  * one bit position. e.g., FFFFFFFF FFFFFFFF -> 7FFFFFFF 7FFFFFFF
  */
-#define  REG_MINUS_BIM_DATAPATH_TEST   0x1018  /* Cassini: BIM datapath test 
+#define  REG_MINUS_BIM_DATAPATH_TEST   0x1018  /* Cassini: BIM datapath test
 						  Cassini+: reserved */
 
 /* output enables are provided for each device's chip select and for the rest
@@ -276,12 +276,12 @@
  * bits are connected to general purpus control/status bits.
  * DEFAULT: 0x7
  */
-#define  REG_BIM_LOCAL_DEV_EN          0x1020  /* BIM local device 
+#define  REG_BIM_LOCAL_DEV_EN          0x1020  /* BIM local device
 						  output EN. default: 0x7 */
 #define    BIM_LOCAL_DEV_PAD           0x01    /* address bus, RW signal, and
 						  OE signal output enable on the
 						  local bus interface. these
-						  are shared between both local 
+						  are shared between both local
 						  bus devices. tristate when 0. */
 #define    BIM_LOCAL_DEV_PROM          0x02    /* PROM chip select */
 #define    BIM_LOCAL_DEV_EXT           0x04    /* secondary local bus device chip
@@ -291,8 +291,8 @@
 #define    BIM_LOCAL_DEV_HW_RESET      0x20    /* internal hw reset. Cassini+ only. */
 
 /* access 24 entry BIM read and write buffers. put address in REG_BIM_BUFFER_ADDR
- * and read/write from/to it REG_BIM_BUFFER_DATA_LOW and _DATA_HI. 
- * _DATA_HI should be the last access of the sequence. 
+ * and read/write from/to it REG_BIM_BUFFER_DATA_LOW and _DATA_HI.
+ * _DATA_HI should be the last access of the sequence.
  * DEFAULT: undefined
  */
 #define  REG_BIM_BUFFER_ADDR           0x1024  /* BIM buffer address. for
@@ -304,10 +304,10 @@
 #define  REG_BIM_BUFFER_DATA_LOW       0x1028  /* BIM buffer data low */
 #define  REG_BIM_BUFFER_DATA_HI        0x102C  /* BIM buffer data high */
 
-/* set BIM_RAM_BIST_START to start built-in self test for BIM read buffer. 
+/* set BIM_RAM_BIST_START to start built-in self test for BIM read buffer.
  * bit auto-clears when done with status read from _SUMMARY and _PASS bits.
  */
-#define  REG_BIM_RAM_BIST              0x102C  /* BIM RAM (read buffer) BIST 
+#define  REG_BIM_RAM_BIST              0x102C  /* BIM RAM (read buffer) BIST
 						  control/status */
 #define    BIM_RAM_BIST_RD_START       0x01    /* start BIST for BIM read buffer */
 #define    BIM_RAM_BIST_WR_START       0x02    /* start BIST for BIM write buffer.
@@ -321,7 +321,7 @@
 #define    BIM_RAM_BIST_RD_LOW_PASS    0x10    /* read low bank passes BIST */
 #define    BIM_RAM_BIST_RD_HI_PASS     0x20    /* read high bank passes BIST */
 #define    BIM_RAM_BIST_WR_LOW_PASS    0x40    /* write low bank passes BIST.
-						  Cassini only. reserved in 
+						  Cassini only. reserved in
 						  Cassini+. */
 #define    BIM_RAM_BIST_WR_HI_PASS     0x80    /* write high bank passes BIST.
 						  Cassini only. reserved in
@@ -333,7 +333,7 @@
 #define  REG_BIM_DIAG_MUX              0x1030  /* BIM diagnostic probe mux
 						  select register */
 
-/* enable probe monitoring mode and select data appearing on the P_A* bus. bit 
+/* enable probe monitoring mode and select data appearing on the P_A* bus. bit
  * values for _SEL_HI_MASK and _SEL_LOW_MASK:
  * 0x0: internal probe[7:0] (pci arb state, wtc empty w, wtc full w, wtc empty w,
  *                           wtc empty r, post pci)
@@ -353,7 +353,7 @@
  * 0xe: hp probe[7:0] 	      0xf: mac probe[7:0]
  */
 #define  REG_PLUS_PROBE_MUX_SELECT     0x1034 /* Cassini+: PROBE MUX SELECT */
-#define    PROBE_MUX_EN                0x80000000 /* allow probe signals to be 
+#define    PROBE_MUX_EN                0x80000000 /* allow probe signals to be
 						     driven on local bus P_A[15:0]
 						     for debugging */
 #define    PROBE_MUX_SUB_MUX_MASK      0x0000FF00 /* select sub module probe signals:
@@ -362,28 +362,28 @@
 						     0x30 = tx[1:0]
 						     0xC0 = hp[1:0] */
 #define    PROBE_MUX_SEL_HI_MASK       0x000000F0 /* select which module to appear
-						     on P_A[15:8]. see above for 
+						     on P_A[15:8]. see above for
 						     values. */
 #define    PROBE_MUX_SEL_LOW_MASK      0x0000000F /* select which module to appear
-						     on P_A[7:0]. see above for 
+						     on P_A[7:0]. see above for
 						     values. */
 
-/* values mean the same thing as REG_INTR_MASK excep that it's for INTB. 
+/* values mean the same thing as REG_INTR_MASK excep that it's for INTB.
  DEFAULT: 0x1F */
 #define  REG_PLUS_INTR_MASK_1          0x1038 /* Cassini+: interrupt mask
 						 register 2 for INTB */
 #define  REG_PLUS_INTRN_MASK(x)       (REG_PLUS_INTR_MASK_1 + ((x) - 1)*16)
-/* bits correspond to both _MASK and _STATUS registers. _ALT corresponds to 
- * all of the alternate (2-4) INTR registers while _1 corresponds to only 
- * _MASK_1 and _STATUS_1 registers. 
+/* bits correspond to both _MASK and _STATUS registers. _ALT corresponds to
+ * all of the alternate (2-4) INTR registers while _1 corresponds to only
+ * _MASK_1 and _STATUS_1 registers.
  * DEFAULT: 0x7 for MASK registers, 0x0 for ALIAS_CLEAR registers
  */
-#define    INTR_RX_DONE_ALT              0x01  
+#define    INTR_RX_DONE_ALT              0x01
 #define    INTR_RX_COMP_FULL_ALT         0x02
 #define    INTR_RX_COMP_AF_ALT           0x04
 #define    INTR_RX_BUF_UNAVAIL_1         0x08
 #define    INTR_RX_BUF_AE_1              0x10 /* almost empty */
-#define    INTRN_MASK_RX_EN              0x80     
+#define    INTRN_MASK_RX_EN              0x80
 #define    INTRN_MASK_CLEAR_ALL          (INTR_RX_DONE_ALT | \
                                           INTR_RX_COMP_FULL_ALT | \
                                           INTR_RX_COMP_AF_ALT | \
@@ -399,7 +399,7 @@
 						 register 2 for INTB */
 #define  REG_PLUS_ALIASN_CLEAR(x)      (REG_PLUS_ALIAS_CLEAR_1 + ((x) - 1)*16)
 
-#define  REG_PLUS_INTR_STATUS_ALIAS_1  0x1044 /* Cassini+: interrupt status 
+#define  REG_PLUS_INTR_STATUS_ALIAS_1  0x1044 /* Cassini+: interrupt status
 						 register alias 2 for INTB */
 #define  REG_PLUS_INTRN_STATUS_ALIAS(x) (REG_PLUS_INTR_STATUS_ALIAS_1 + ((x) - 1)*16)
 
@@ -411,18 +411,18 @@
 #define   SATURN_PCFG_CLA             0x00000004 /* 1 = phy link100led */
 #define   SATURN_PCFG_LLA             0x00000008 /* 1 = phy link1000led */
 #define   SATURN_PCFG_RLA             0x00000010 /* 1 = phy duplexled */
-#define   SATURN_PCFG_PDS             0x00000020 /* phy debug mode. 
+#define   SATURN_PCFG_PDS             0x00000020 /* phy debug mode.
 						    0 = normal */
-#define   SATURN_PCFG_MTP             0x00000080 /* test point select */ 
-#define   SATURN_PCFG_GMO             0x00000100 /* GMII observe. 1 = 
+#define   SATURN_PCFG_MTP             0x00000080 /* test point select */
+#define   SATURN_PCFG_GMO             0x00000100 /* GMII observe. 1 =
 						    GMII on SERDES pins for
 						    monitoring. */
 #define   SATURN_PCFG_FSI             0x00000200 /* 1 = freeze serdes/gmii. all
 						    pins configed as outputs.
 						    for power saving when using
 						    internal phy. */
-#define   SATURN_PCFG_LAD             0x00000800 /* 0 = mac core led ctrl 
-						    polarity from strapping 
+#define   SATURN_PCFG_LAD             0x00000800 /* 0 = mac core led ctrl
+						    polarity from strapping
 						    value.
 						    1 = mac core led ctrl
 						    polarity active low. */
@@ -433,26 +433,26 @@
 #define MAX_TX_RINGS                  (1 << MAX_TX_RINGS_SHIFT)
 #define MAX_TX_RINGS_MASK             (MAX_TX_RINGS - 1)
 
-/* TX configuration. 
- * descr ring sizes size = 32 * (1 << n), n < 9. e.g., 0x8 = 8k. default: 0x8 
+/* TX configuration.
+ * descr ring sizes size = 32 * (1 << n), n < 9. e.g., 0x8 = 8k. default: 0x8
  * DEFAULT: 0x3F000001
  */
 #define  REG_TX_CFG                    0x2004  /* TX config */
 #define    TX_CFG_DMA_EN               0x00000001  /* enable TX DMA. if cleared, DMA
 						      will stop after xfer of current
 						      buffer has been completed. */
-#define    TX_CFG_FIFO_PIO_SEL         0x00000002  /* TX DMA FIFO can be 
-						      accessed w/ FIFO addr 
-						      and data registers. 
-						      TX DMA should be 
+#define    TX_CFG_FIFO_PIO_SEL         0x00000002  /* TX DMA FIFO can be
+						      accessed w/ FIFO addr
+						      and data registers.
+						      TX DMA should be
 						      disabled. */
 #define    TX_CFG_DESC_RING0_MASK      0x0000003C  /* # desc entries in
 						      ring 1. */
 #define    TX_CFG_DESC_RING0_SHIFT     2
 #define    TX_CFG_DESC_RINGN_MASK(a)   (TX_CFG_DESC_RING0_MASK << (a)*4)
 #define    TX_CFG_DESC_RINGN_SHIFT(a)  (TX_CFG_DESC_RING0_SHIFT + (a)*4)
-#define    TX_CFG_PACED_MODE           0x00100000  /* TX_ALL only set after 
-						      TX FIFO becomes empty. 
+#define    TX_CFG_PACED_MODE           0x00100000  /* TX_ALL only set after
+						      TX FIFO becomes empty.
 						      if 0, TX_ALL set
 						      if descr queue empty. */
 #define    TX_CFG_DMA_RDPIPE_DIS       0x01000000  /* always set to 1 */
@@ -470,26 +470,26 @@
 						      through Q4 */
 #define    TX_CFG_INTR_COMPWB_DIS      0x20000000  /* disable pre-interrupt completion
 						      writeback */
-#define    TX_CFG_CTX_SEL_MASK         0xC0000000  /* selects tx test port 
+#define    TX_CFG_CTX_SEL_MASK         0xC0000000  /* selects tx test port
 						      connection
-						      0b00: tx mac req, 
+						      0b00: tx mac req,
 						            tx mac retry req,
 							    tx ack and tx tag.
-						      0b01: txdma rd req, 
+						      0b01: txdma rd req,
 						            txdma rd ack,
 							    txdma rd rdy,
 							    txdma rd type0
-						      0b11: txdma wr req, 
+						      0b11: txdma wr req,
 						            txdma wr ack,
 							    txdma wr rdy,
 							    txdma wr xfr done. */
 #define    TX_CFG_CTX_SEL_SHIFT        30
-						      
+
 /* 11-bit counters that point to next location in FIFO to be loaded/retrieved.
  * used for diagnostics only.
  */
 #define  REG_TX_FIFO_WRITE_PTR         0x2014  /* TX FIFO write pointer */
-#define  REG_TX_FIFO_SHADOW_WRITE_PTR  0x2018  /* TX FIFO shadow write 
+#define  REG_TX_FIFO_SHADOW_WRITE_PTR  0x2018  /* TX FIFO shadow write
 						  pointer. temp hold reg.
 					          diagnostics only. */
 #define  REG_TX_FIFO_READ_PTR          0x201C  /* TX FIFO read pointer */
@@ -509,7 +509,7 @@
 #define    TX_SM_1_CACHE_MASK          0x03C00000   /* desc. prefetch cache controller
 						       state machine */
 #define    TX_SM_1_CBQ_ARB_MASK        0xF8000000   /* CBQ arbiter state machine */
-						         
+
 #define  REG_TX_SM_2                   0x202C  /* TX state machine reg #2 */
 #define    TX_SM_2_COMP_WB_MASK        0x07    /* completion writeback sm */
 #define	   TX_SM_2_SUB_LOAD_MASK       0x38    /* sub load state machine */
@@ -521,9 +521,9 @@
 #define  REG_TX_DATA_PTR_LOW           0x2030  /* TX data pointer low */
 #define  REG_TX_DATA_PTR_HI            0x2034  /* TX data pointer high */
 
-/* 13 bit registers written by driver w/ descriptor value that follows 
+/* 13 bit registers written by driver w/ descriptor value that follows
  * last valid xmit descriptor. kick # and complete # values are used by
- * the xmit dma engine to control tx descr fetching. if > 1 valid 
+ * the xmit dma engine to control tx descr fetching. if > 1 valid
  * tx descr is available within the cache line being read, cassini will
  * internally cache up to 4 of them. 0 on reset. _KICK = rw, _COMP = ro.
  */
@@ -532,12 +532,12 @@
 #define  REG_TX_COMP0                  0x2048  /* TX completion reg #1 */
 #define  REG_TX_COMPN(x)               (REG_TX_COMP0 + (x)*4)
 
-/* values of TX_COMPLETE_1-4 are written. each completion register 
- * is 2bytes in size and contiguous. 8B allocation w/ 8B alignment. 
+/* values of TX_COMPLETE_1-4 are written. each completion register
+ * is 2bytes in size and contiguous. 8B allocation w/ 8B alignment.
  * NOTE: completion reg values are only written back prior to TX_INTME and
- * TX_ALL interrupts. at all other times, the most up-to-date index values 
- * should be obtained from the REG_TX_COMPLETE_# registers. 
- * here's the layout: 
+ * TX_ALL interrupts. at all other times, the most up-to-date index values
+ * should be obtained from the REG_TX_COMPLETE_# registers.
+ * here's the layout:
  * offset from base addr      completion # byte
  *           0                TX_COMPLETE_1_MSB
  *	     1                TX_COMPLETE_1_LSB
@@ -558,7 +558,7 @@
 #define    TX_COMPWB_LSB_MASK       0x000000000000FF00ULL
 #define    TX_COMPWB_LSB_SHIFT      8
 #define    TX_COMPWB_NEXT(x)        ((x) >> 16)
-						      
+
 /* 53 MSB used as base address. 11 LSB assumed to be 0. TX desc pointer must
  * be 2KB-aligned. */
 #define  REG_TX_DB0_LOW         0x2060  /* TX descriptor base low #1 */
@@ -594,11 +594,11 @@
 #define  REG_TX_FIFO_DATA_HI_T0        0x2114  /* TX FIFO data high t0 */
 #define  REG_TX_FIFO_SIZE              0x2118  /* (ro) TX FIFO size = 0x090 = 9KB */
 
-/* 9-bit register controls BIST of TX FIFO. bit set indicates that the BIST 
+/* 9-bit register controls BIST of TX FIFO. bit set indicates that the BIST
  * passed for the specified memory
  */
 #define  REG_TX_RAMBIST                0x211C /* TX RAMBIST control/status */
-#define    TX_RAMBIST_STATE            0x01C0 /* progress state of RAMBIST 
+#define    TX_RAMBIST_STATE            0x01C0 /* progress state of RAMBIST
 						 controller state machine */
 #define    TX_RAMBIST_RAM33A_PASS      0x0020 /* RAM33A passed */
 #define    TX_RAMBIST_RAM32A_PASS      0x0010 /* RAM32A passed */
@@ -612,33 +612,33 @@
 #define MAX_RX_DESC_RINGS              2
 #define MAX_RX_COMP_RINGS              4
 
-/* receive DMA channel configuration. default: 0x80910 
+/* receive DMA channel configuration. default: 0x80910
  * free ring size       = (1 << n)*32  -> [32 - 8k]
- * completion ring size = (1 << n)*128 -> [128 - 32k], n < 9 
+ * completion ring size = (1 << n)*128 -> [128 - 32k], n < 9
  * DEFAULT: 0x80910
  */
 #define  REG_RX_CFG                     0x4000  /* RX config */
 #define    RX_CFG_DMA_EN                0x00000001 /* enable RX DMA. 0 stops
 							 channel as soon as current
 							 frame xfer has completed.
-							 driver should disable MAC 
-							 for 200ms before disabling 
+							 driver should disable MAC
+							 for 200ms before disabling
 							 RX */
-#define    RX_CFG_DESC_RING_MASK        0x0000001E /* # desc entries in RX 
-							 free desc ring. 
+#define    RX_CFG_DESC_RING_MASK        0x0000001E /* # desc entries in RX
+							 free desc ring.
 							 def: 0x8 = 8k */
 #define    RX_CFG_DESC_RING_SHIFT       1
 #define    RX_CFG_COMP_RING_MASK        0x000001E0 /* # desc entries in RX complete
 							 ring. def: 0x8 = 32k */
 #define    RX_CFG_COMP_RING_SHIFT       5
-#define    RX_CFG_BATCH_DIS             0x00000200 /* disable receive desc 
+#define    RX_CFG_BATCH_DIS             0x00000200 /* disable receive desc
 						      batching. def: 0x0 =
 						      enabled */
-#define    RX_CFG_SWIVEL_MASK           0x00001C00 /* byte offset of the 1st 
-						      data byte of the packet 
+#define    RX_CFG_SWIVEL_MASK           0x00001C00 /* byte offset of the 1st
+						      data byte of the packet
 						      w/in 8 byte boundares.
-						      this swivels the data 
-						      DMA'ed to header 
+						      this swivels the data
+						      DMA'ed to header
 						      buffers, jumbo buffers
 						      when header split is not
 						      requested and MTU sized
@@ -647,17 +647,17 @@
 
 /* cassini+ only */
 #define    RX_CFG_DESC_RING1_MASK       0x000F0000 /* # of desc entries in
-							 RX free desc ring 2. 
+							 RX free desc ring 2.
 							 def: 0x8 = 8k */
 #define    RX_CFG_DESC_RING1_SHIFT      16
 
 
-/* the page size register allows cassini chips to do the following with 
+/* the page size register allows cassini chips to do the following with
  * received data:
  * [--------------------------------------------------------------] page
  * [off][buf1][pad][off][buf2][pad][off][buf3][pad][off][buf4][pad]
  * |--------------| = PAGE_SIZE_BUFFER_STRIDE
- * page = PAGE_SIZE 
+ * page = PAGE_SIZE
  * offset = PAGE_SIZE_MTU_OFF
  * for the above example, MTU_BUFFER_COUNT = 4.
  * NOTE: as is apparent, you need to ensure that the following holds:
@@ -667,20 +667,20 @@
 #define  REG_RX_PAGE_SIZE               0x4004  /* RX page size */
 #define    RX_PAGE_SIZE_MASK            0x00000003 /* size of pages pointed to
 						      by receive descriptors.
-						      if jumbo buffers are 
-						      supported the page size 
+						      if jumbo buffers are
+						      supported the page size
 						      should not be < 8k.
 						      0b00 = 2k, 0b01 = 4k
 						      0b10 = 8k, 0b11 = 16k
 						      DEFAULT: 8k */
 #define    RX_PAGE_SIZE_SHIFT           0
 #define    RX_PAGE_SIZE_MTU_COUNT_MASK  0x00007800 /* # of MTU buffers the hw
-						      packs into a page. 
+						      packs into a page.
 						      DEFAULT: 4 */
 #define    RX_PAGE_SIZE_MTU_COUNT_SHIFT 11
 #define    RX_PAGE_SIZE_MTU_STRIDE_MASK 0x18000000 /* # of bytes that separate
-							 each MTU buffer + 
-							 offset from each 
+							 each MTU buffer +
+							 offset from each
 							 other.
 							 0b00 = 1k, 0b01 = 2k
 							 0b10 = 4k, 0b11 = 8k
@@ -688,24 +688,24 @@
 #define    RX_PAGE_SIZE_MTU_STRIDE_SHIFT 27
 #define    RX_PAGE_SIZE_MTU_OFF_MASK    0xC0000000 /* offset in each page that
 						      hw writes the MTU buffer
-						      into. 
-						      0b00 = 0,  
+						      into.
+						      0b00 = 0,
 						      0b01 = 64 bytes
 						      0b10 = 96, 0b11 = 128
 						      DEFAULT: 0x1 */
 #define    RX_PAGE_SIZE_MTU_OFF_SHIFT   30
-							 
-/* 11-bit counter points to next location in RX FIFO to be loaded/read. 
+
+/* 11-bit counter points to next location in RX FIFO to be loaded/read.
  * shadow write pointers enable retries in case of early receive aborts.
  * DEFAULT: 0x0. generated on 64-bit boundaries.
  */
 #define  REG_RX_FIFO_WRITE_PTR             0x4008  /* RX FIFO write pointer */
 #define  REG_RX_FIFO_READ_PTR              0x400C  /* RX FIFO read pointer */
-#define  REG_RX_IPP_FIFO_SHADOW_WRITE_PTR  0x4010  /* RX IPP FIFO shadow write 
+#define  REG_RX_IPP_FIFO_SHADOW_WRITE_PTR  0x4010  /* RX IPP FIFO shadow write
 						      pointer */
 #define  REG_RX_IPP_FIFO_SHADOW_READ_PTR   0x4014  /* RX IPP FIFO shadow read
 						      pointer */
-#define  REG_RX_IPP_FIFO_READ_PTR          0x400C  /* RX IPP FIFO read 
+#define  REG_RX_IPP_FIFO_READ_PTR          0x400C  /* RX IPP FIFO read
 						      pointer. (8-bit counter) */
 
 /* current state of RX DMA state engines + other info
@@ -738,7 +738,7 @@
 							 0x2 = wait xon
 							 0x3 = wait xon ack */
 #define    RX_DEBUG_DATA_STATE_MASK        0x000001E00 /* unload data state machine
-							 states: 
+							 states:
 							 0x0 = idle data
 							 0x1 = header begin
 							 0x2 = xfer header
@@ -747,7 +747,7 @@
 							 0x5 = xfer mtu
 							 0x6 = xfer mtu ld
 							 0x7 = jumbo begin
-							 0x8 = xfer jumbo 
+							 0x8 = xfer jumbo
 							 0x9 = xfer jumbo ld
 							 0xa = reas begin
 							 0xb = xfer reas
@@ -776,15 +776,15 @@
  * XOFF PAUSE uses pause time value pre-programmed in the Send PAUSE MAC reg
  * XON PAUSE uses a pause time of 0. granularity of threshold is 64bytes.
  * PAUSE thresholds defined in terms of FIFO occupancy and may be translated
- * into FIFO vacancy using RX_FIFO_SIZE. setting ON will trigger XON frames 
+ * into FIFO vacancy using RX_FIFO_SIZE. setting ON will trigger XON frames
  * when FIFO reaches 0. OFF threshold should not be > size of RX FIFO. max
- * value is is 0x6F. 
+ * value is is 0x6F.
  * DEFAULT: 0x00078
  */
 #define  REG_RX_PAUSE_THRESH               0x4020  /* RX pause thresholds */
 #define    RX_PAUSE_THRESH_QUANTUM         64
 #define    RX_PAUSE_THRESH_OFF_MASK        0x000001FF /* XOFF PAUSE emitted when
-							 RX FIFO occupancy > 
+							 RX FIFO occupancy >
 							 value*64B */
 #define    RX_PAUSE_THRESH_OFF_SHIFT       0
 #define    RX_PAUSE_THRESH_ON_MASK         0x001FF000 /* XON PAUSE emitted after
@@ -797,9 +797,9 @@
 #define    RX_PAUSE_THRESH_ON_SHIFT        12
 
 /* 13-bit register used to control RX desc fetching and intr generation. if 4+
- * valid RX descriptors are available, Cassini will read 4 at a time. 
+ * valid RX descriptors are available, Cassini will read 4 at a time.
  * writing N means that all desc up to *but* excluding N are available. N must
- * be a multiple of 4 (N % 4 = 0). first desc should be cache-line aligned. 
+ * be a multiple of 4 (N % 4 = 0). first desc should be cache-line aligned.
  * DEFAULT: 0 on reset
  */
 #define  REG_RX_KICK                    0x4024  /* RX kick reg */
@@ -807,16 +807,16 @@
 /* 8KB aligned 64-bit pointer to the base of the RX free/completion rings.
  * lower 13 bits of the low register are hard-wired to 0.
  */
-#define  REG_RX_DB_LOW                     0x4028  /* RX descriptor ring 
+#define  REG_RX_DB_LOW                     0x4028  /* RX descriptor ring
 							 base low */
 #define  REG_RX_DB_HI                      0x402C  /* RX descriptor ring
 							 base hi */
 #define  REG_RX_CB_LOW                     0x4030  /* RX completion ring
 							 base low */
-#define  REG_RX_CB_HI                      0x4034  /* RX completion ring 
+#define  REG_RX_CB_HI                      0x4034  /* RX completion ring
 							 base hi */
 /* 13-bit register indicate desc used by cassini for receive frames. used
- * for diagnostic purposes. 
+ * for diagnostic purposes.
  * DEFAULT: 0 on reset
  */
 #define  REG_RX_COMP                       0x4038  /* (ro) RX completion */
@@ -837,9 +837,9 @@
 /* values used for receive interrupt blanking. loaded each time the ISR is read
  * DEFAULT: 0x00000000
  */
-#define  REG_RX_BLANK                      0x4044  /* RX blanking register 
+#define  REG_RX_BLANK                      0x4044  /* RX blanking register
 							 for ISR read */
-#define    RX_BLANK_INTR_PKT_MASK          0x000001FF /* RX_DONE intr asserted if 
+#define    RX_BLANK_INTR_PKT_MASK          0x000001FF /* RX_DONE intr asserted if
 							 this many sets of completion
 							 writebacks (up to 2 packets)
 							 occur since the last time
@@ -849,33 +849,33 @@
 #define    RX_BLANK_INTR_TIME_MASK         0x3FFFF000 /* RX_DONE interrupt asserted
 							 if that many clocks were
 							 counted since last time the
-							 ISR was read. 
+							 ISR was read.
 							 each count is 512 core
 							 clocks (125MHz). 0 = no
 							 time blanking */
 #define    RX_BLANK_INTR_TIME_SHIFT        12
 
-/* values used for interrupt generation based on threshold values of how 
+/* values used for interrupt generation based on threshold values of how
  * many free desc and completion entries are available for hw use.
  * DEFAULT: 0x00000000
  */
-#define  REG_RX_AE_THRESH                  0x4048  /* RX almost empty 
+#define  REG_RX_AE_THRESH                  0x4048  /* RX almost empty
 							 thresholds */
-#define    RX_AE_THRESH_FREE_MASK          0x00001FFF /* RX_BUF_AE will be 
+#define    RX_AE_THRESH_FREE_MASK          0x00001FFF /* RX_BUF_AE will be
 							 generated if # desc
-							 avail for hw use <= 
+							 avail for hw use <=
 							 # */
 #define    RX_AE_THRESH_FREE_SHIFT         0
 #define    RX_AE_THRESH_COMP_MASK          0x0FFFE000 /* RX_COMP_AE will be
-							 generated if # of 
+							 generated if # of
 							 completion entries
-							 avail for hw use <= 
+							 avail for hw use <=
 							 # */
 #define    RX_AE_THRESH_COMP_SHIFT         13
 
-/* probabilities for random early drop (RED) thresholds on a FIFO threshold 
- * basis. probability should increase when the FIFO level increases. control 
- * packets are never dropped and not counted in stats. probability programmed 
+/* probabilities for random early drop (RED) thresholds on a FIFO threshold
+ * basis. probability should increase when the FIFO level increases. control
+ * packets are never dropped and not counted in stats. probability programmed
  * on a 12.5% granularity. e.g., 0x1 = 1/8 packets dropped.
  * DEFAULT: 0x00000000
  */
@@ -885,8 +885,8 @@
 #define    RX_RED_8K_10K_FIFO_MASK       0x00FF0000 /*  8KB < FIFO thresh < 10KB */
 #define    RX_RED_10K_12K_FIFO_MASK      0xFF000000 /* 10KB < FIFO thresh < 12KB */
 
-/* FIFO fullness levels for RX FIFO, RX control FIFO, and RX IPP FIFO. 
- * RX control FIFO = # of packets in RX FIFO. 
+/* FIFO fullness levels for RX FIFO, RX control FIFO, and RX IPP FIFO.
+ * RX control FIFO = # of packets in RX FIFO.
  * DEFAULT: 0x0
  */
 #define  REG_RX_FIFO_FULLNESS              0x4050  /* (ro) RX FIFO fullness */
@@ -895,12 +895,12 @@
 #define    RX_FIFO_FULLNESS_RX_PKT_MASK    0x000000FF /* # packets in RX FIFO */
 #define  REG_RX_IPP_PACKET_COUNT           0x4054  /* RX IPP packet counter */
 #define  REG_RX_WORK_DMA_PTR_LOW           0x4058  /* RX working DMA ptr low */
-#define  REG_RX_WORK_DMA_PTR_HI            0x405C  /* RX working DMA ptr 
+#define  REG_RX_WORK_DMA_PTR_HI            0x405C  /* RX working DMA ptr
 						      high */
 
 /* BIST testing ro RX FIFO, RX control FIFO, and RX IPP FIFO. only RX BIST
  * START/COMPLETE is writeable. START will clear when the BIST has completed
- * checking all 17 RAMS. 
+ * checking all 17 RAMS.
  * DEFAULT: 0bxxxx xxxxx xxxx xxxx xxxx x000 0000 0000 00x0
  */
 #define  REG_RX_BIST                       0x4060  /* (ro) RX BIST */
@@ -923,41 +923,41 @@
 #define    RX_BIST_REAS_27_PASS            0x00080000 /* RX Reas 27 passed */
 #define    RX_BIST_STATE_MASK              0x00078000 /* BIST state machine */
 #define    RX_BIST_SUMMARY                 0x00000002 /* when BIST complete,
-							 summary pass bit 
+							 summary pass bit
 							 contains AND of BIST
 							 results of all 16
 							 RAMS */
-#define    RX_BIST_START                   0x00000001 /* write 1 to start 
+#define    RX_BIST_START                   0x00000001 /* write 1 to start
 							 BIST. self clears
 							 on completion. */
 
 /* next location in RX CTRL FIFO that will be loaded w/ data from RX IPP/read
- * from to retrieve packet control info. 
+ * from to retrieve packet control info.
  * DEFAULT: 0
  */
-#define  REG_RX_CTRL_FIFO_WRITE_PTR        0x4064  /* (ro) RX control FIFO 
+#define  REG_RX_CTRL_FIFO_WRITE_PTR        0x4064  /* (ro) RX control FIFO
 						      write ptr */
 #define  REG_RX_CTRL_FIFO_READ_PTR         0x4068  /* (ro) RX control FIFO read
 						      ptr */
 
 /* receive interrupt blanking. loaded each time interrupt alias register is
- * read. 
+ * read.
  * DEFAULT: 0x0
  */
 #define  REG_RX_BLANK_ALIAS_READ           0x406C  /* RX blanking register for
 						      alias read */
-#define    RX_BAR_INTR_PACKET_MASK         0x000001FF /* assert RX_DONE if # 
-							 completion writebacks 
-							 > # since last ISR 
-							 read. 0 = no 
-							 blanking. up to 2 
-							 packets per 
+#define    RX_BAR_INTR_PACKET_MASK         0x000001FF /* assert RX_DONE if #
+							 completion writebacks
+							 > # since last ISR
+							 read. 0 = no
+							 blanking. up to 2
+							 packets per
 							 completion wb. */
 #define    RX_BAR_INTR_TIME_MASK           0x3FFFF000 /* assert RX_DONE if #
 							 clocks > # since last
 							 ISR read. each count
 							 is 512 core clocks
-							 (125MHz). 0 = no 
+							 (125MHz). 0 = no
 							 blanking. */
 
 /* diagnostic access to RX FIFO. 32 LSB accessed via DATA_LOW. 32 MSB accessed
@@ -981,13 +981,13 @@
  * should be last write access of the write sequence.
  * DEFAULT: undefined
  */
-#define  REG_RX_CTRL_FIFO_ADDR             0x4094  /* RX Control FIFO and 
+#define  REG_RX_CTRL_FIFO_ADDR             0x4094  /* RX Control FIFO and
 						      Batching FIFO addr */
-#define  REG_RX_CTRL_FIFO_DATA_LOW         0x4098  /* RX Control FIFO data 
+#define  REG_RX_CTRL_FIFO_DATA_LOW         0x4098  /* RX Control FIFO data
 						      low */
-#define  REG_RX_CTRL_FIFO_DATA_MID         0x409C  /* RX Control FIFO data 
+#define  REG_RX_CTRL_FIFO_DATA_MID         0x409C  /* RX Control FIFO data
 						      mid */
-#define  REG_RX_CTRL_FIFO_DATA_HI          0x4100  /* RX Control FIFO data 
+#define  REG_RX_CTRL_FIFO_DATA_HI          0x4100  /* RX Control FIFO data
 						      hi and flow id */
 #define    RX_CTRL_FIFO_DATA_HI_CTRL       0x0001  /* upper bit of ctrl word */
 #define    RX_CTRL_FIFO_DATA_HI_FLOW_MASK  0x007E  /* flow id */
@@ -1004,7 +1004,7 @@
 						      T1 */
 
 /* 64-bit pointer to receive data buffer in host memory used for headers and
- * small packets. MSB in high register. loaded by DMA state machine and 
+ * small packets. MSB in high register. loaded by DMA state machine and
  * increments as DMA writes receive data. only 50 LSB are incremented. top
  * 13 bits taken from RX descriptor.
  * DEFAULT: undefined
@@ -1013,17 +1013,17 @@
 						      low */
 #define  REG_RX_HEADER_PAGE_PTR_HI         0x411C  /* (ro) RX header page ptr
 						      high */
-#define  REG_RX_MTU_PAGE_PTR_LOW           0x4120  /* (ro) RX MTU page pointer 
+#define  REG_RX_MTU_PAGE_PTR_LOW           0x4120  /* (ro) RX MTU page pointer
 						      low */
-#define  REG_RX_MTU_PAGE_PTR_HI            0x4124  /* (ro) RX MTU page pointer 
+#define  REG_RX_MTU_PAGE_PTR_HI            0x4124  /* (ro) RX MTU page pointer
 						      high */
 
 /* PIO diagnostic access to RX reassembly DMA Table RAM. 6-bit register holds
  * one of 64 79-bit locations in the RX Reassembly DMA table and the addr of
- * one of the 64 byte locations in the Batching table. LOW holds 32 LSB. 
+ * one of the 64 byte locations in the Batching table. LOW holds 32 LSB.
  * MID holds the next 32 LSB. HIGH holds the 15 MSB. RX_DMA_EN must be set
  * to 0 for PIO access. DATA_HIGH should be last write of write sequence.
- * layout:  
+ * layout:
  * reassmbl ptr [78:15] | reassmbl index [14:1] | reassmbl entry valid [0]
  * DEFAULT: undefined
  */
@@ -1033,7 +1033,7 @@
 
 #define  REG_RX_TABLE_DATA_LOW         0x412C  /* RX reassembly DMA table
 						  data low */
-#define  REG_RX_TABLE_DATA_MID         0x4130  /* RX reassembly DMA table 
+#define  REG_RX_TABLE_DATA_MID         0x4130  /* RX reassembly DMA table
 						  data mid */
 #define  REG_RX_TABLE_DATA_HI          0x4134  /* RX reassembly DMA table
 						  data high */
@@ -1053,11 +1053,11 @@
 #define  REG_PLUS_RX_CBN_LOW(x)        (REG_PLUS_RX_CB1_LOW + 8*((x) - 1))
 #define  REG_PLUS_RX_CBN_HI(x)         (REG_PLUS_RX_CB1_HI + 8*((x) - 1))
 #define  REG_PLUS_RX_KICK1             0x4220  /* RX Kick 2 register */
-#define  REG_PLUS_RX_COMP1             0x4224  /* (ro) RX completion 2 
+#define  REG_PLUS_RX_COMP1             0x4224  /* (ro) RX completion 2
 						  reg */
-#define  REG_PLUS_RX_COMP1_HEAD        0x4228  /* (ro) RX completion 2 
+#define  REG_PLUS_RX_COMP1_HEAD        0x4228  /* (ro) RX completion 2
 						  head reg. 4 total. */
-#define  REG_PLUS_RX_COMP1_TAIL        0x422C  /* RX completion 2 
+#define  REG_PLUS_RX_COMP1_TAIL        0x422C  /* RX completion 2
 						  tail reg. 4 total. */
 #define  REG_PLUS_RX_COMPN_HEAD(x)    (REG_PLUS_RX_COMP1_HEAD + 8*((x) - 1))
 #define  REG_PLUS_RX_COMPN_TAIL(x)    (REG_PLUS_RX_COMP1_TAIL + 8*((x) - 1))
@@ -1068,13 +1068,13 @@
 
 /** header parser registers **/
 
-/* RX parser configuration register. 
+/* RX parser configuration register.
  * DEFAULT: 0x1651004
  */
-#define  REG_HP_CFG                       0x4140  /* header parser 
+#define  REG_HP_CFG                       0x4140  /* header parser
 						     configuration reg */
 #define    HP_CFG_PARSE_EN                0x00000001 /* enab header parsing */
-#define    HP_CFG_NUM_CPU_MASK            0x000000FC /* # processors 
+#define    HP_CFG_NUM_CPU_MASK            0x000000FC /* # processors
 						      0 = 64. 0x3f = 63 */
 #define    HP_CFG_NUM_CPU_SHIFT           2
 #define    HP_CFG_SYN_INC_MASK            0x00000100 /* SYN bit won't increment
@@ -1088,7 +1088,7 @@
 /* access to RX Instruction RAM. 5-bit register/counter holds addr
  * of 39 bit entry to be read/written. 32 LSB in _DATA_LOW. 7 MSB in _DATA_HI.
  * RX_DMA_EN must be 0 for RX instr PIO access. DATA_HI should be last access
- * of sequence. 
+ * of sequence.
  * DEFAULT: undefined
  */
 #define  REG_HP_INSTR_RAM_ADDR             0x4144  /* HP instruction RAM
@@ -1104,7 +1104,7 @@
 #define    HP_INSTR_RAM_LOW_OUTEN_SHIFT    20
 #define    HP_INSTR_RAM_LOW_OUTARG_MASK    0xFFC00000
 #define    HP_INSTR_RAM_LOW_OUTARG_SHIFT   22
-#define  REG_HP_INSTR_RAM_DATA_MID         0x414C  /* HP instruction RAM 
+#define  REG_HP_INSTR_RAM_DATA_MID         0x414C  /* HP instruction RAM
 						      data mid */
 #define    HP_INSTR_RAM_MID_OUTARG_MASK    0x00000003
 #define    HP_INSTR_RAM_MID_OUTARG_SHIFT   0
@@ -1131,7 +1131,7 @@
  * 11-bit register. Data fills the LSB portion of bus if less than 32 bits.
  * DATA_RAM: write RAM_FDB_DATA with index to access DATA_RAM.
  * RAM bytes = 4*(x - 1) + [3:0]. e.g., 0 -> [3:0], 31 -> [123:120]
- * FLOWDB: write DATA_RAM_FDB register and then read/write FDB1-12 to access 
+ * FLOWDB: write DATA_RAM_FDB register and then read/write FDB1-12 to access
  * flow database.
  * RX_DMA_EN must be 0 for RX parser RAM PIO access. RX Parser RAM data reg
  * should be the last write access of the write sequence.
@@ -1139,17 +1139,17 @@
  */
 #define  REG_HP_DATA_RAM_FDB_ADDR          0x4154  /* HP data and FDB
 						      RAM address */
-#define    HP_DATA_RAM_FDB_DATA_MASK       0x001F  /* select 1 of 86 byte 
-						      locations in header 
-						      parser data ram to 
+#define    HP_DATA_RAM_FDB_DATA_MASK       0x001F  /* select 1 of 86 byte
+						      locations in header
+						      parser data ram to
 						      read/write */
 #define    HP_DATA_RAM_FDB_FDB_MASK        0x3F00  /* 1 of 64 353-bit locations
 						      in the flow database */
 #define  REG_HP_DATA_RAM_DATA              0x4158  /* HP data RAM data */
 
-/* HP flow database registers: 1 - 12, 0x415C - 0x4188, 4 8-bit bytes 
+/* HP flow database registers: 1 - 12, 0x415C - 0x4188, 4 8-bit bytes
  * FLOW_DB(1) = IP_SA[127:96], FLOW_DB(2) = IP_SA[95:64]
- * FLOW_DB(3) = IP_SA[63:32],  FLOW_DB(4) = IP_SA[31:0] 
+ * FLOW_DB(3) = IP_SA[63:32],  FLOW_DB(4) = IP_SA[31:0]
  * FLOW_DB(5) = IP_DA[127:96], FLOW_DB(6) = IP_DA[95:64]
  * FLOW_DB(7) = IP_DA[63:32],  FLOW_DB(8) = IP_DA[31:0]
  * FLOW_DB(9) = {TCP_SP[15:0],TCP_DP[15:0]}
@@ -1159,7 +1159,7 @@
 #define  REG_HP_FLOW_DB0                   0x415C  /* HP flow database 1 reg */
 #define  REG_HP_FLOW_DBN(x)                (REG_HP_FLOW_DB0 + (x)*4)
 
-/* diagnostics for RX Header Parser block. 
+/* diagnostics for RX Header Parser block.
  * ASUN: the header parser state machine register is used for diagnostics
  * purposes. however, the spec doesn't have any details on it.
  */
@@ -1167,7 +1167,7 @@
 #define  REG_HP_STATUS0                    0x4190  /* (ro) HP status 1 */
 #define    HP_STATUS0_SAP_MASK             0xFFFF0000 /* SAP */
 #define    HP_STATUS0_L3_OFF_MASK          0x0000FE00 /* L3 offset */
-#define    HP_STATUS0_LB_CPUNUM_MASK       0x000001F8 /* load balancing CPU 
+#define    HP_STATUS0_LB_CPUNUM_MASK       0x000001F8 /* load balancing CPU
 							 number */
 #define    HP_STATUS0_HRP_OPCODE_MASK      0x00000007 /* HRP opcode */
 
@@ -1179,11 +1179,11 @@
 
 #define  REG_HP_STATUS2                    0x4198  /* (ro) HP status 3 */
 #define    HP_STATUS2_ACCUR2_MASK          0xF0000000 /* accu R2[3:0] */
-#define    HP_STATUS2_CSUM_OFF_MASK        0x07F00000 /* checksum start 
+#define    HP_STATUS2_CSUM_OFF_MASK        0x07F00000 /* checksum start
 							 start offset */
 #define    HP_STATUS2_ACCUR1_MASK          0x000FE000 /* accu R1 */
 #define    HP_STATUS2_FORCE_DROP           0x00001000 /* force drop */
-#define    HP_STATUS2_BWO_REASSM           0x00000800 /* batching w/o 
+#define    HP_STATUS2_BWO_REASSM           0x00000800 /* batching w/o
 							 reassembly */
 #define    HP_STATUS2_JH_SPLIT_EN          0x00000400 /* jumbo header split
 							 enable */
@@ -1191,9 +1191,9 @@
 							 check */
 #define    HP_STATUS2_DATA_MASK_ZERO       0x00000100 /* mask of data length
 							 equal to zero */
-#define    HP_STATUS2_FORCE_TCP_CHECK      0x00000080 /* force tcp payload 
+#define    HP_STATUS2_FORCE_TCP_CHECK      0x00000080 /* force tcp payload
 							 chk */
-#define    HP_STATUS2_MASK_TCP_THRESH      0x00000040 /* mask of payload 
+#define    HP_STATUS2_MASK_TCP_THRESH      0x00000040 /* mask of payload
 							 threshold */
 #define    HP_STATUS2_NO_ASSIST            0x00000020 /* no assist */
 #define    HP_STATUS2_CTRL_PACKET_FLAG     0x00000010 /* control packet flag */
@@ -1214,7 +1214,7 @@
 #define    HP_RAM_BIST_HP_INSTR2_PASS      0x10000000 /* HP instr ram 2 */
 #define    HP_RAM_BIST_FDBM_AGE0_PASS      0x08000000 /* FDBM aging RAM0 */
 #define    HP_RAM_BIST_FDBM_AGE1_PASS      0x04000000 /* FDBM aging RAM1 */
-#define    HP_RAM_BIST_FDBM_FLOWID00_PASS  0x02000000 /* FDBM flowid RAM0 
+#define    HP_RAM_BIST_FDBM_FLOWID00_PASS  0x02000000 /* FDBM flowid RAM0
 							 bank 0 */
 #define    HP_RAM_BIST_FDBM_FLOWID10_PASS  0x01000000 /* FDBM flowid RAM1
 							 bank 0 */
@@ -1247,25 +1247,25 @@
 /* execute a pause flow control frame transmission
  DEFAULT: 0x0XXXX */
 #define  REG_MAC_SEND_PAUSE                0x6008  /* send pause command reg */
-#define    MAC_SEND_PAUSE_TIME_MASK        0x0000FFFF /* value of pause time 
+#define    MAC_SEND_PAUSE_TIME_MASK        0x0000FFFF /* value of pause time
 							 to be sent on network
-							 in units of slot 
+							 in units of slot
 							 times */
 #define    MAC_SEND_PAUSE_SEND             0x00010000 /* send pause flow ctrl
 							 frame on network */
 
 /* bit set indicates that event occurred. auto-cleared when status register
- * is read and have corresponding mask bits in mask register. events will 
- * trigger an interrupt if the corresponding mask bit is 0. 
+ * is read and have corresponding mask bits in mask register. events will
+ * trigger an interrupt if the corresponding mask bit is 0.
  * status register default: 0x00000000
  * mask register default = 0xFFFFFFFF on reset
  */
 #define  REG_MAC_TX_STATUS                 0x6010  /* TX MAC status reg */
-#define    MAC_TX_FRAME_XMIT               0x0001  /* successful frame 
+#define    MAC_TX_FRAME_XMIT               0x0001  /* successful frame
 						      transmision */
-#define    MAC_TX_UNDERRUN                 0x0002  /* terminated frame 
+#define    MAC_TX_UNDERRUN                 0x0002  /* terminated frame
 						      transmission due to
-						      data starvation in the 
+						      data starvation in the
 						      xmit data path */
 #define    MAC_TX_MAX_PACKET_ERR           0x0004  /* frame exceeds max allowed
 						      length passed to TX MAC
@@ -1286,7 +1286,7 @@
 #define  REG_MAC_RX_STATUS                 0x6014  /* RX MAC status reg */
 #define    MAC_RX_FRAME_RECV               0x0001  /* successful receipt of
 						      a frame */
-#define    MAC_RX_OVERFLOW                 0x0002  /* dropped frame due to 
+#define    MAC_RX_OVERFLOW                 0x0002  /* dropped frame due to
 						      RX FIFO overflow */
 #define    MAC_RX_FRAME_COUNT              0x0004  /* rollover of receive frame
 						      counter */
@@ -1294,27 +1294,27 @@
 						      error counter */
 #define    MAC_RX_CRC_ERR                  0x0010  /* rollover of crc error
 						      counter */
-#define    MAC_RX_LEN_ERR                  0x0020  /* rollover of length 
+#define    MAC_RX_LEN_ERR                  0x0020  /* rollover of length
 						      error counter */
-#define    MAC_RX_VIOL_ERR                 0x0040  /* rollover of code 
+#define    MAC_RX_VIOL_ERR                 0x0040  /* rollover of code
 						      violation error */
 
 /* DEFAULT: 0xXXXX0000 on reset */
 #define  REG_MAC_CTRL_STATUS               0x6018  /* MAC control status reg */
-#define    MAC_CTRL_PAUSE_RECEIVED         0x00000001  /* successful 
-							  reception of a 
-							  pause control 
+#define    MAC_CTRL_PAUSE_RECEIVED         0x00000001  /* successful
+							  reception of a
+							  pause control
 							  frame */
-#define    MAC_CTRL_PAUSE_STATE            0x00000002  /* MAC has made a 
-							  transition from 
-							  "not paused" to 
+#define    MAC_CTRL_PAUSE_STATE            0x00000002  /* MAC has made a
+							  transition from
+							  "not paused" to
 							  "paused" */
-#define    MAC_CTRL_NOPAUSE_STATE          0x00000004  /* MAC has made a 
-							  transition from 
+#define    MAC_CTRL_NOPAUSE_STATE          0x00000004  /* MAC has made a
+							  transition from
 							  "paused" to "not
 							  paused" */
 #define    MAC_CTRL_PAUSE_TIME_MASK        0xFFFF0000  /* value of pause time
-							  operand that was 
+							  operand that was
 							  received in the last
 							  pause flow control
 							  frame */
@@ -1326,13 +1326,13 @@
 /* layout identical to CTRL MAC[2:0] */
 #define  REG_MAC_CTRL_MASK                 0x6028  /* MAC control mask reg */
 
-/* to ensure proper operation, CFG_EN must be cleared to 0 and a delay 
+/* to ensure proper operation, CFG_EN must be cleared to 0 and a delay
  * imposed before writes to other bits in the TX_MAC_CFG register or any of
  * the MAC parameters is performed. delay dependent upon time required to
  * transmit a maximum size frame (= MAC_FRAMESIZE_MAX*8/Mbps). e.g.,
- * the delay for a 1518-byte frame on a 100Mbps network is 125us. 
- * alternatively, just poll TX_CFG_EN until it reads back as 0. 
- * NOTE: on half-duplex 1Gbps, TX_CFG_CARRIER_EXTEND and 
+ * the delay for a 1518-byte frame on a 100Mbps network is 125us.
+ * alternatively, just poll TX_CFG_EN until it reads back as 0.
+ * NOTE: on half-duplex 1Gbps, TX_CFG_CARRIER_EXTEND and
  * RX_CFG_CARRIER_EXTEND should be set and the SLOT_TIME register should
  * be 0x200 (slot time of 512 bytes)
  */
@@ -1340,12 +1340,12 @@
 #define    MAC_TX_CFG_EN                0x0001  /* enable TX MAC. 0 will
 						      force TXMAC state
 						      machine to remain in
-						      idle state or to 
+						      idle state or to
 						      transition to idle state
 						      on completion of an
 						      ongoing packet. */
 #define    MAC_TX_CFG_IGNORE_CARRIER    0x0002  /* disable CSMA/CD deferral
-						   process. set to 1 when 
+						   process. set to 1 when
 						   full duplex and 0 when
 						   half duplex */
 #define    MAC_TX_CFG_IGNORE_COLL       0x0004  /* disable CSMA/CD backoff
@@ -1353,32 +1353,32 @@
 						   full duplex and 0 when
 						   half duplex */
 #define    MAC_TX_CFG_IPG_EN            0x0008  /* enable extension of the
-						   Rx-to-TX IPG. after 
-						   receiving a frame, TX 
-						   MAC will reset its 
-						   deferral process to 
+						   Rx-to-TX IPG. after
+						   receiving a frame, TX
+						   MAC will reset its
+						   deferral process to
 						   carrier sense for the
 						   amount of time = IPG0 +
-						   IPG1 and commit to 
+						   IPG1 and commit to
 						   transmission for time
 						   specified in IPG2. when
 						   0 or when xmitting frames
 						   back-to-pack (Tx-to-Tx
-						   IPG), TX MAC ignores 
+						   IPG), TX MAC ignores
 						   IPG0 and will only use
 						   IPG1 for deferral time.
 						   IPG2 still used. */
 #define    MAC_TX_CFG_NEVER_GIVE_UP_EN  0x0010  /* TX MAC will not easily
-						   give up on frame 
-						   xmission. if backoff 
+						   give up on frame
+						   xmission. if backoff
 						   algorithm reaches the
 						   ATTEMPT_LIMIT, it will
 						   clear attempts counter
 						   and continue trying to
-						   send the frame as 
-						   specified by 
+						   send the frame as
+						   specified by
 						   GIVE_UP_LIM. when 0,
-						   TX MAC will execute 
+						   TX MAC will execute
 						   standard CSMA/CD prot. */
 #define    MAC_TX_CFG_NEVER_GIVE_UP_LIM 0x0020  /* when set, TX MAC will
 						   continue to try to xmit
@@ -1386,13 +1386,13 @@
 						   0, TX MAC will continue
 						   to try xmitting until
 						   successful or backoff
-						   algorithm reaches 
+						   algorithm reaches
 						   ATTEMPT_LIMIT*16 */
 #define    MAC_TX_CFG_NO_BACKOFF        0x0040  /* modify CSMA/CD to disable
 						   backoff algorithm. TX
 						   MAC will not back off
 						   after a xmission attempt
-						   that resulted in a 
+						   that resulted in a
 						   collision. */
 #define    MAC_TX_CFG_SLOW_DOWN         0x0080  /* modify CSMA/CD so that
 						   deferral process is reset
@@ -1408,11 +1408,11 @@
 						   packets. when clear, CRC
 						   generation is dependent
 						   upon NO_CRC bit in the
-						   xmit control word from 
+						   xmit control word from
 						   TX DMA */
 #define    MAC_TX_CFG_CARRIER_EXTEND    0x0200  /* enables xmit part of the
-						   carrier extension 
-						   feature. this allows for 
+						   carrier extension
+						   feature. this allows for
 						   longer collision domains
 						   by extending the carrier
 						   and collision window
@@ -1422,44 +1422,44 @@
 						   for half-duplex at 1Gbps,
 						   clear otherwise. */
 
-/* when CRC is not stripped, reassembly packets will not contain the CRC. 
+/* when CRC is not stripped, reassembly packets will not contain the CRC.
  * these will be stripped by HRP because it reassembles layer 4 data, and the
- * CRC is layer 2. however, non-reassembly packets will still contain the CRC 
+ * CRC is layer 2. however, non-reassembly packets will still contain the CRC
  * when passed to the host. to ensure proper operation, need to wait 3.2ms
  * after clearing RX_CFG_EN before writing to any other RX MAC registers
  * or other MAC parameters. alternatively, poll RX_CFG_EN until it clears
- * to 0. similary, HASH_FILTER_EN and ADDR_FILTER_EN have the same 
+ * to 0. similary, HASH_FILTER_EN and ADDR_FILTER_EN have the same
  * restrictions as CFG_EN.
  */
 #define  REG_MAC_RX_CFG                 0x6034  /* RX MAC config reg */
 #define    MAC_RX_CFG_EN                0x0001  /* enable RX MAC */
 #define    MAC_RX_CFG_STRIP_PAD         0x0002  /* always program to 0.
 						   feature not supported */
-#define    MAC_RX_CFG_STRIP_FCS         0x0004  /* RX MAC will strip the 
-						   last 4 bytes of a 
+#define    MAC_RX_CFG_STRIP_FCS         0x0004  /* RX MAC will strip the
+						   last 4 bytes of a
 						   received frame. */
 #define    MAC_RX_CFG_PROMISC_EN        0x0008  /* promiscuous mode */
-#define    MAC_RX_CFG_PROMISC_GROUP_EN  0x0010  /* accept all valid 
+#define    MAC_RX_CFG_PROMISC_GROUP_EN  0x0010  /* accept all valid
 						   multicast frames (group
 						   bit in DA field set) */
 #define    MAC_RX_CFG_HASH_FILTER_EN    0x0020  /* use hash table to filter
 						   multicast addresses */
-#define    MAC_RX_CFG_ADDR_FILTER_EN    0x0040  /* cause RX MAC to use 
-						   address filtering regs 
+#define    MAC_RX_CFG_ADDR_FILTER_EN    0x0040  /* cause RX MAC to use
+						   address filtering regs
 						   to filter both unicast
-						   and multicast 
+						   and multicast
 						   addresses */
 #define    MAC_RX_CFG_DISABLE_DISCARD   0x0080  /* pass errored frames to
 						   RX DMA by setting BAD
 						   bit but not Abort bit
-						   in the status. CRC, 
+						   in the status. CRC,
 						   framing, and length errs
-						   will not increment 
+						   will not increment
 						   error counters. frames
 						   which don't match dest
 						   addr will be passed up
 						   w/ BAD bit set. */
-#define    MAC_RX_CFG_CARRIER_EXTEND    0x0100  /* enable reception of 
+#define    MAC_RX_CFG_CARRIER_EXTEND    0x0100  /* enable reception of
 						   packet bursts generated
 						   by carrier extension
 						   with packet bursting
@@ -1468,18 +1468,18 @@
 
 /* DEFAULT: 0x0 */
 #define  REG_MAC_CTRL_CFG               0x6038  /* MAC control config reg */
-#define    MAC_CTRL_CFG_SEND_PAUSE_EN   0x0001  /* respond to requests for 
-						   sending pause flow ctrl 
+#define    MAC_CTRL_CFG_SEND_PAUSE_EN   0x0001  /* respond to requests for
+						   sending pause flow ctrl
 						   frames */
-#define    MAC_CTRL_CFG_RECV_PAUSE_EN   0x0002  /* respond to received 
+#define    MAC_CTRL_CFG_RECV_PAUSE_EN   0x0002  /* respond to received
 						   pause flow ctrl frames */
 #define    MAC_CTRL_CFG_PASS_CTRL       0x0004  /* pass valid MAC ctrl
 						   packets to RX DMA */
 
 /* to ensure proper operation, a global initialization sequence should be
  * performed when a loopback config is entered or exited. if programmed after
- * a hw or global sw reset, RX/TX MAC software reset and initialization 
- * should be done to ensure stable clocking. 
+ * a hw or global sw reset, RX/TX MAC software reset and initialization
+ * should be done to ensure stable clocking.
  * DEFAULT: 0x0
  */
 #define  REG_MAC_XIF_CFG                0x603C  /* XIF config reg */
@@ -1489,26 +1489,26 @@
 						      path to GMII recv data
 						      path. phy mode register
 						      clock selection must be
-						      set to GMII mode and 
+						      set to GMII mode and
 						      GMII_MODE should be set
 						      to 1. in loopback mode,
 						      REFCLK will drive the
 						      entire mac core. 0 for
 						      normal operation. */
 #define    MAC_XIF_DISABLE_ECHO            0x0004  /* disables receive data
-						      path during packet 
+						      path during packet
 						      xmission. clear to 0
 						      in any full duplex mode,
 						      in any loopback mode,
 						      or in half-duplex SERDES
 						      or SLINK modes. set when
-						      in half-duplex when 
+						      in half-duplex when
 						      using external phy. */
 #define    MAC_XIF_GMII_MODE               0x0008  /* MAC operates with GMII
 						      clocks and datapath */
 #define    MAC_XIF_MII_BUFFER_OUTPUT_EN    0x0010  /* MII_BUF_EN pin. enable
 						      external tristate buffer
-						      on the MII receive 
+						      on the MII receive
 						      bus. */
 #define    MAC_XIF_LINK_LED                0x0020  /* LINKLED# active (low) */
 #define    MAC_XIF_FDPLX_LED               0x0040  /* FDPLXLED# active (low) */
@@ -1521,7 +1521,7 @@
 						      recommended: 0x04 */
 #define  REG_MAC_SLOT_TIME                 0x604C  /* slot time reg
 						      recommended: 0x40 */
-#define  REG_MAC_FRAMESIZE_MIN             0x6050  /* min frame size reg 
+#define  REG_MAC_FRAMESIZE_MIN             0x6050  /* min frame size reg
 						      recommended: 0x40 */
 
 /* FRAMESIZE_MAX holds both the max frame size as well as the max burst size.
@@ -1536,39 +1536,39 @@
 						      preamble bytes that the
 						      TX MAC will xmit at the
 						      beginning of each frame
-						      value should be 2 or 
-						      greater. recommended 
+						      value should be 2 or
+						      greater. recommended
 						      value: 0x07 */
-#define  REG_MAC_JAM_SIZE                  0x605C  /* jam size reg. duration 
+#define  REG_MAC_JAM_SIZE                  0x605C  /* jam size reg. duration
 						      of jam in units of media
 						      byte time. recommended
 						      value: 0x04 */
 #define  REG_MAC_ATTEMPT_LIMIT             0x6060  /* attempt limit reg. #
 						      of attempts TX MAC will
-						      make to xmit a frame 
+						      make to xmit a frame
 						      before it resets its
 						      attempts counter. after
-						      the limit has been 
+						      the limit has been
 						      reached, TX MAC may or
 						      may not drop the frame
 						      dependent upon value
-						      in TX_MAC_CFG. 
-						      recommended 
+						      in TX_MAC_CFG.
+						      recommended
 						      value: 0x10 */
 #define  REG_MAC_CTRL_TYPE                 0x6064  /* MAC control type reg.
-						      type field of a MAC 
+						      type field of a MAC
 						      ctrl frame. recommended
 						      value: 0x8808 */
 
 /* mac address registers: 0 - 44, 0x6080 - 0x6130, 4 8-bit bytes.
- * register           contains                   comparison  
+ * register           contains                   comparison
  *    0        16 MSB of primary MAC addr        [47:32] of DA field
  *    1        16 middle bits ""                 [31:16] of DA field
  *    2        16 LSB ""                         [15:0] of DA field
  *    3*x      16MSB of alt MAC addr 1-15        [47:32] of DA field
  *    4*x      16 middle bits ""                 [31:16]
  *    5*x      16 LSB ""                         [15:0]
- *    42       16 MSB of MAC CTRL addr           [47:32] of DA. 
+ *    42       16 MSB of MAC CTRL addr           [47:32] of DA.
  *    43       16 middle bits ""                 [31:16]
  *    44       16 LSB ""                         [15:0]
  *    MAC CTRL addr must be the reserved multicast addr for MAC CTRL frames.
@@ -1586,39 +1586,39 @@
 #define  REG_MAC_ADDRN(x)                  (REG_MAC_ADDR0 + (x)*4)
 #define  REG_MAC_ADDR_FILTER0              0x614C  /* address filter 0 reg
 						      [47:32] */
-#define  REG_MAC_ADDR_FILTER1              0x6150  /* address filter 1 reg 
+#define  REG_MAC_ADDR_FILTER1              0x6150  /* address filter 1 reg
 						      [31:16] */
-#define  REG_MAC_ADDR_FILTER2              0x6154  /* address filter 2 reg 
+#define  REG_MAC_ADDR_FILTER2              0x6154  /* address filter 2 reg
 						      [15:0] */
 #define  REG_MAC_ADDR_FILTER2_1_MASK       0x6158  /* address filter 2 and 1
 						      mask reg. 8-bit reg
 						      contains nibble mask for
 						      reg 2 and 1. */
-#define  REG_MAC_ADDR_FILTER0_MASK         0x615C  /* address filter 0 mask 
+#define  REG_MAC_ADDR_FILTER0_MASK         0x615C  /* address filter 0 mask
 						      reg */
 
-/* hash table registers: 0 - 15, 0x6160 - 0x619C, 4 8-bit bytes 
+/* hash table registers: 0 - 15, 0x6160 - 0x619C, 4 8-bit bytes
  * 16-bit registers contain bits of the hash table.
- * reg x  -> [16*(15 - x) + 15 : 16*(15 - x)]. 
+ * reg x  -> [16*(15 - x) + 15 : 16*(15 - x)].
  * e.g., 15 -> [15:0], 0 -> [255:240]
  */
 #define  REG_MAC_HASH_TABLE0               0x6160  /* hash table 0 reg */
 #define  REG_MAC_HASH_TABLEN(x)            (REG_MAC_HASH_TABLE0 + (x)*4)
 
-/* statistics registers. these registers generate an interrupt on 
+/* statistics registers. these registers generate an interrupt on
  * overflow. recommended initialization: 0x0000. most are 16-bits except
  * for PEAK_ATTEMPTS register which is 8 bits.
  */
-#define  REG_MAC_COLL_NORMAL               0x61A0 /* normal collision 
+#define  REG_MAC_COLL_NORMAL               0x61A0 /* normal collision
 						     counter. */
 #define  REG_MAC_COLL_FIRST                0x61A4 /* first attempt
-						     successful collision 
+						     successful collision
 						     counter */
-#define  REG_MAC_COLL_EXCESS               0x61A8 /* excessive collision 
+#define  REG_MAC_COLL_EXCESS               0x61A8 /* excessive collision
 						     counter */
 #define  REG_MAC_COLL_LATE                 0x61AC /* late collision counter */
-#define  REG_MAC_TIMER_DEFER               0x61B0 /* defer timer. time base 
-						     is the media byte 
+#define  REG_MAC_TIMER_DEFER               0x61B0 /* defer timer. time base
+						     is the media byte
 						     clock/256 */
 #define  REG_MAC_ATTEMPTS_PEAK             0x61B4 /* peak attempts reg */
 #define  REG_MAC_RECV_FRAME                0x61B8 /* receive frame counter */
@@ -1633,13 +1633,13 @@
 						   10-bit register used as a
 						   seed  for the random number
 						   generator for the CSMA/CD
-						   backoff algorithm. only 
+						   backoff algorithm. only
 						   programmed after power-on
-						   reset and should be a 
-						   random value which has a 
-						   high likelihood of being 
-						   unique for each MAC 
-						   attached to a network 
+						   reset and should be a
+						   random value which has a
+						   high likelihood of being
+						   unique for each MAC
+						   attached to a network
 						   segment (e.g., 10 LSB of
 						   MAC address) */
 
@@ -1649,7 +1649,7 @@
 
 /* 27-bit register has the current state for key state machines in the MAC */
 #define  REG_MAC_STATE_MACHINE             0x61D0 /* (ro) state machine reg */
-#define    MAC_SM_RLM_MASK                 0x07800000 
+#define    MAC_SM_RLM_MASK                 0x07800000
 #define    MAC_SM_RLM_SHIFT                23
 #define    MAC_SM_RX_FC_MASK               0x00700000
 #define    MAC_SM_RX_FC_SHIFT              20
@@ -1666,26 +1666,26 @@
 #define    MAC_SM_TX_FIFO_EMPTY_MASK       0x00000007
 #define    MAC_SM_TX_FIFO_EMPTY_SHIFT      0
 
-/** MIF registers. the MIF can be programmed in either bit-bang or 
+/** MIF registers. the MIF can be programmed in either bit-bang or
  *  frame mode.
  **/
 #define  REG_MIF_BIT_BANG_CLOCK            0x6200 /* MIF bit-bang clock.
-						   1 -> 0 will generate a 
+						   1 -> 0 will generate a
 						   rising edge. 0 -> 1 will
 						   generate a falling edge. */
 #define  REG_MIF_BIT_BANG_DATA             0x6204 /* MIF bit-bang data. 1-bit
 						     register generates data */
-#define  REG_MIF_BIT_BANG_OUTPUT_EN        0x6208 /* MIF bit-bang output 
-						     enable. enable when 
+#define  REG_MIF_BIT_BANG_OUTPUT_EN        0x6208 /* MIF bit-bang output
+						     enable. enable when
 						     xmitting data from MIF to
 						     transceiver. */
 
-/* 32-bit register serves as an instruction register when the MIF is 
+/* 32-bit register serves as an instruction register when the MIF is
  * programmed in frame mode. load this register w/ a valid instruction
  * (as per IEEE 802.3u MII spec). poll this register to check for instruction
  * execution completion. during a read operation, this register will also
- * contain the 16-bit data returned by the tranceiver. unless specified 
- * otherwise, fields are considered "don't care" when polling for 
+ * contain the 16-bit data returned by the tranceiver. unless specified
+ * otherwise, fields are considered "don't care" when polling for
  * completion.
  */
 #define  REG_MIF_FRAME                     0x620C /* MIF frame/output reg */
@@ -1693,14 +1693,14 @@
 							 load w/ 01 when
 							 issuing an instr */
 #define    MIF_FRAME_ST                    0x40000000 /* STart of frame */
-#define    MIF_FRAME_OPCODE_MASK           0x30000000 /* opcode. 01 for a 
-							 write. 10 for a 
+#define    MIF_FRAME_OPCODE_MASK           0x30000000 /* opcode. 01 for a
+							 write. 10 for a
 							 read */
 #define    MIF_FRAME_OP_READ               0x20000000 /* read OPcode */
 #define    MIF_FRAME_OP_WRITE              0x10000000 /* write OPcode */
 #define    MIF_FRAME_PHY_ADDR_MASK         0x0F800000 /* phy address. when
 							 issuing an instr,
-							 this field should be 
+							 this field should be
 							 loaded w/ the XCVR
 							 addr */
 #define    MIF_FRAME_PHY_ADDR_SHIFT        23
@@ -1724,12 +1724,12 @@
 							 to be written in
 							 transceiver reg for a
 							 write. doesn't matter
-							 in a read. when 
-							 polling for 
+							 in a read. when
+							 polling for
 							 completion, field is
 							 "don't care" for write
-							 and 16-bit data 
-							 returned by the 
+							 and 16-bit data
+							 returned by the
 							 transceiver for a
 							 read (if valid bit
 							 is set) */
@@ -1748,16 +1748,16 @@
 #define    MIF_CFG_POLL_REG_SHIFT       3
 #define    MIF_CFG_MDIO_0               0x0100 /* (ro) dual purpose.
 						  when MDIO_0 is idle,
-						  1 -> tranceiver is 
+						  1 -> tranceiver is
 						  connected to MDIO_0.
 						  when MIF is communicating
-						  w/ MDIO_0 in bit-bang 
+						  w/ MDIO_0 in bit-bang
 						  mode, this bit indicates
 						  the incoming bit stream
 						  during a read op */
 #define    MIF_CFG_MDIO_1               0x0200 /* (ro) dual purpose.
-						  when MDIO_1 is idle, 
-						  1 -> transceiver is 
+						  when MDIO_1 is idle,
+						  1 -> transceiver is
 						  connected to MDIO_1.
 						  when MIF is communicating
 						  w/ MDIO_1 in bit-bang
@@ -1770,7 +1770,7 @@
 
 /* 16-bit register used to determine which bits in the POLL_STATUS portion of
  * the MIF_STATUS register will cause an interrupt. if a mask bit is 0,
- * corresponding bit of the POLL_STATUS will generate a MIF interrupt when 
+ * corresponding bit of the POLL_STATUS will generate a MIF interrupt when
  * set. DEFAULT: 0xFFFF
  */
 #define  REG_MIF_MASK                      0x6214 /* MIF mask reg */
@@ -1779,7 +1779,7 @@
 #define  REG_MIF_STATUS                    0x6218 /* MIF status reg */
 #define    MIF_STATUS_POLL_DATA_MASK       0xFFFF0000 /* poll data contains
 							 the "latest image"
-							 update of the XCVR 
+							 update of the XCVR
 							 reg being read */
 #define    MIF_STATUS_POLL_DATA_SHIFT      16
 #define    MIF_STATUS_POLL_STATUS_MASK     0x0000FFFF /* poll status indicates
@@ -1792,19 +1792,19 @@
 
 /* 7-bit register has current state for all state machines in the MIF */
 #define  REG_MIF_STATE_MACHINE             0x621C /* MIF state machine reg */
-#define    MIF_SM_CONTROL_MASK             0x07   /* control state machine 
+#define    MIF_SM_CONTROL_MASK             0x07   /* control state machine
 						     state */
 #define    MIF_SM_EXECUTION_MASK           0x60   /* execution state machine
 						     state */
 
 /** PCS/Serialink. the following registers are equivalent to the standard
- *  MII management registers except that they're directly mapped in 
+ *  MII management registers except that they're directly mapped in
  *  Cassini's register space.
  **/
 
 /* the auto-negotiation enable bit should be programmed the same at
  * the link partner as in the local device to enable auto-negotiation to
- * complete. when that bit is reprogrammed, auto-neg/manual config is 
+ * complete. when that bit is reprogrammed, auto-neg/manual config is
  * restarted automatically.
  * DEFAULT: 0x1040
  */
@@ -1815,10 +1815,10 @@
 						     to MAC interface is
 						     activated regardless
 						     of activity */
-#define    PCS_MII_CTRL_DUPLEX             0x0100 /* forced 0x0. PCS 
+#define    PCS_MII_CTRL_DUPLEX             0x0100 /* forced 0x0. PCS
 						     behaviour same for
 						     half and full dplx */
-#define    PCS_MII_RESTART_AUTONEG         0x0200 /* self clearing. 
+#define    PCS_MII_RESTART_AUTONEG         0x0200 /* self clearing.
 						     restart auto-
 						     negotiation */
 #define    PCS_MII_ISOLATE                 0x0400 /* read as 0. ignored
@@ -1829,10 +1829,10 @@
 						     through automatic
 						     link config before it
 						     can be used. when 0,
-						     link can be used 
+						     link can be used
 						     w/out any link config
 						     phase */
-#define    PCS_MII_10_100_SEL              0x2000 /* read as 0. ignored on 
+#define    PCS_MII_10_100_SEL              0x2000 /* read as 0. ignored on
 						     writes */
 #define    PCS_MII_RESET                   0x8000 /* reset PCS. self-clears
 						     when done */
@@ -1841,7 +1841,7 @@
 #define  REG_PCS_MII_STATUS                0x9004 /* PCS MII status reg */
 #define    PCS_MII_STATUS_EXTEND_CAP       0x0001 /* reads 0 */
 #define    PCS_MII_STATUS_JABBER_DETECT    0x0002 /* reads 0 */
-#define    PCS_MII_STATUS_LINK_STATUS      0x0004 /* 1 -> link up. 
+#define    PCS_MII_STATUS_LINK_STATUS      0x0004 /* 1 -> link up.
 						     0 -> link down. 0 is
 						     latched so that 0 is
 						     kept until read. read
@@ -1853,7 +1853,7 @@
 						     from received link code
 						     word. only valid after
 						     auto-neg completed */
-#define    PCS_MII_STATUS_AUTONEG_COMP     0x0020 /* 1 -> auto-negotiation 
+#define    PCS_MII_STATUS_AUTONEG_COMP     0x0020 /* 1 -> auto-negotiation
 						          completed
 						     0 -> auto-negotiation not
 						     completed */
@@ -1862,7 +1862,7 @@
 						     a 1000 Base-X PHY. writes
 						     to it are ignored */
 
-/* used during auto-negotiation. 
+/* used during auto-negotiation.
  * DEFAULT: 0x00E0
  */
 #define  REG_PCS_MII_ADVERT                0x9008 /* PCS MII advertisement
@@ -1873,7 +1873,7 @@
 						      1000 Base-X */
 #define    PCS_MII_ADVERT_SYM_PAUSE        0x0080  /* advertise PAUSE
 						      symmetric capability */
-#define    PCS_MII_ADVERT_ASYM_PAUSE       0x0100  /* advertises PAUSE 
+#define    PCS_MII_ADVERT_ASYM_PAUSE       0x0100  /* advertises PAUSE
 						      asymmetric capability */
 #define    PCS_MII_ADVERT_RF_MASK          0x3000 /* remote fault. write bit13
 						     to optionally indicate to
@@ -1881,7 +1881,7 @@
 						     going off-line. bit12 will
 						     get set when signal
 						     detect == FAIL and will
-						     remain set until 
+						     remain set until
 						     successful negotiation */
 #define    PCS_MII_ADVERT_ACK              0x4000 /* (ro) */
 #define    PCS_MII_ADVERT_NEXT_PAGE        0x8000 /* (ro) forced 0x0 */
@@ -1905,7 +1905,7 @@
 						     0 when modifying
 						     PCS_MII_ADVERT */
 #define    PCS_CFG_SD_OVERRIDE             0x02   /* sets signal detect to
-						     OK. bit is 
+						     OK. bit is
 						     non-resettable */
 #define    PCS_CFG_SD_ACTIVE_LOW           0x04   /* changes interpretation
 						     of optical signal to make
@@ -1914,23 +1914,23 @@
 #define    PCS_CFG_JITTER_STUDY_MASK       0x18   /* used to make jitter
 						     measurements. a single
 						     code group is xmitted
-						     regularly. 
+						     regularly.
 						     0x0 = normal operation
-						     0x1 = high freq test 
+						     0x1 = high freq test
 						           pattern, D21.5
 						     0x2 = low freq test
 						           pattern, K28.7
 						     0x3 = reserved */
 #define    PCS_CFG_10MS_TIMER_OVERRIDE     0x20   /* shortens 10-20ms auto-
-						     negotiation timer to 
+						     negotiation timer to
 						     a few cycles for test
 						     purposes */
 
 /* used for diagnostic purposes. bits 20-22 autoclear on read */
-#define  REG_PCS_STATE_MACHINE             0x9014 /* (ro) PCS state machine 
+#define  REG_PCS_STATE_MACHINE             0x9014 /* (ro) PCS state machine
 						     and diagnostic reg */
-#define    PCS_SM_TX_STATE_MASK            0x0000000F /* 0 and 1 indicate 
-							 xmission of idle. 
+#define    PCS_SM_TX_STATE_MASK            0x0000000F /* 0 and 1 indicate
+							 xmission of idle.
 							 otherwise, xmission of
 							 a packet */
 #define    PCS_SM_RX_STATE_MASK            0x000000F0 /* 0 indicates reception
@@ -1943,39 +1943,39 @@
 							 Config codes. cycling
 							 through 0-1 indicates
 							 reception of idles */
-#define    PCS_SM_LINK_STATE_MASK          0x0001E000 
+#define    PCS_SM_LINK_STATE_MASK          0x0001E000
 #define        SM_LINK_STATE_UP            0x00016000 /* link state is up */
 
 #define    PCS_SM_LOSS_LINK_C              0x00100000 /* loss of link due to
-							 recept of Config 
+							 recept of Config
 							 codes */
 #define    PCS_SM_LOSS_LINK_SYNC           0x00200000 /* loss of link due to
 							 loss of sync */
-#define    PCS_SM_LOSS_SIGNAL_DETECT       0x00400000 /* signal detect goes 
+#define    PCS_SM_LOSS_SIGNAL_DETECT       0x00400000 /* signal detect goes
 							 from OK to FAIL. bit29
-							 will also be set if 
+							 will also be set if
 							 this is set */
 #define    PCS_SM_NO_LINK_BREAKLINK        0x01000000 /* link not up due to
 							receipt of breaklink
 							C codes from partner.
 							C codes w/ 0 content
 							received triggering
-							start/restart of 
-							autonegotiation. 
+							start/restart of
+							autonegotiation.
 							should be sent for
 							no longer than 20ms */
-#define    PCS_SM_NO_LINK_SERDES           0x02000000 /* serdes being 
+#define    PCS_SM_NO_LINK_SERDES           0x02000000 /* serdes being
 							initialized. see serdes
 							state reg */
 #define    PCS_SM_NO_LINK_C                0x04000000 /* C codes not stable or
 							 not received */
-#define    PCS_SM_NO_LINK_SYNC             0x08000000 /* word sync not 
+#define    PCS_SM_NO_LINK_SYNC             0x08000000 /* word sync not
 							 achieved */
-#define    PCS_SM_NO_LINK_WAIT_C           0x10000000 /* waiting for C codes 
+#define    PCS_SM_NO_LINK_WAIT_C           0x10000000 /* waiting for C codes
 							 w/ ack bit set */
 #define    PCS_SM_NO_LINK_NO_IDLE          0x20000000 /* link partner continues
-							 to send C codes 
-							 instead of idle 
+							 to send C codes
+							 instead of idle
 							 symbols or pkt data */
 
 /* this register indicates interrupt changes in specific PCS MII status bits.
@@ -1991,21 +1991,21 @@
  * DEFAULT: none
  */
 #define  REG_PCS_DATAPATH_MODE             0x9050 /* datapath mode reg */
-#define    PCS_DATAPATH_MODE_MII           0x00 /* PCS is not used and 
-						   MII/GMII is selected. 
+#define    PCS_DATAPATH_MODE_MII           0x00 /* PCS is not used and
+						   MII/GMII is selected.
 						   selection between MII and
-						   GMII is controlled by 
+						   GMII is controlled by
 						   XIF_CFG */
 #define    PCS_DATAPATH_MODE_SERDES        0x02 /* PCS is used via the
 						   10-bit interface */
 
 /* input to serdes chip or serialink block */
 #define  REG_PCS_SERDES_CTRL              0x9054 /* serdes control reg */
-#define    PCS_SERDES_CTRL_LOOPBACK       0x01   /* enable loopback on 
+#define    PCS_SERDES_CTRL_LOOPBACK       0x01   /* enable loopback on
 						    serdes interface */
 #define    PCS_SERDES_CTRL_SYNCD_EN       0x02   /* enable sync carrier
 						    detection. should be
-						    0x0 for normal 
+						    0x0 for normal
 						    operation */
 #define    PCS_SERDES_CTRL_LOCKREF       0x04   /* frequency-lock RBC[0:1]
 						   to REFCLK when set.
@@ -2014,28 +2014,28 @@
 						   serial data */
 
 /* multiplex test outputs into the PROM address (PA_3 through PA_0) pins.
- * should be 0x0 for normal operations. 
+ * should be 0x0 for normal operations.
  * 0b000          normal operation, PROM address[3:0] selected
- * 0b001          rxdma req, rxdma ack, rxdma ready, rxdma read 
- * 0b010          rxmac req, rx ack, rx tag, rx clk shared 
- * 0b011          txmac req, tx ack, tx tag, tx retry req 
- * 0b100          tx tp3, tx tp2, tx tp1, tx tp0 
+ * 0b001          rxdma req, rxdma ack, rxdma ready, rxdma read
+ * 0b010          rxmac req, rx ack, rx tag, rx clk shared
+ * 0b011          txmac req, tx ack, tx tag, tx retry req
+ * 0b100          tx tp3, tx tp2, tx tp1, tx tp0
  * 0b101          R period RX, R period TX, R period HP, R period BIM
  * DEFAULT: 0x0
  */
 #define  REG_PCS_SHARED_OUTPUT_SEL         0x9058 /* shared output select */
 #define    PCS_SOS_PROM_ADDR_MASK          0x0007
 
-/* used for diagnostics. this register indicates progress of the SERDES 
- * boot up. 
+/* used for diagnostics. this register indicates progress of the SERDES
+ * boot up.
  * 0b00       undergoing reset
  * 0b01       waiting 500us while lockrefn is asserted
  * 0b10       waiting for comma detect
- * 0b11       receive data is synchronized 
+ * 0b11       receive data is synchronized
  * DEFAULT: 0x0
  */
 #define  REG_PCS_SERDES_STATE              0x905C /* (ro) serdes state */
-#define    PCS_SERDES_STATE_MASK           0x03   
+#define    PCS_SERDES_STATE_MASK           0x03
 
 /* used for diagnostics. indicates number of packets transmitted or received.
  * counters rollover w/out generating an interrupt.
@@ -2044,18 +2044,18 @@
 #define  REG_PCS_PACKET_COUNT              0x9060 /* (ro) PCS packet counter */
 #define    PCS_PACKET_COUNT_TX             0x000007FF /* pkts xmitted by PCS */
 #define    PCS_PACKET_COUNT_RX             0x07FF0000 /* pkts recvd by PCS
-							 whether they 
+							 whether they
 							 encountered an error
 							 or not */
 
-/** LocalBus Devices. the following provides run-time access to the 
+/** LocalBus Devices. the following provides run-time access to the
  *  Cassini's PROM
  ***/
 #define  REG_EXPANSION_ROM_RUN_START       0x100000 /* expansion rom run time
 						       access */
 #define  REG_EXPANSION_ROM_RUN_END         0x17FFFF
 
-#define  REG_SECOND_LOCALBUS_START         0x180000 /* secondary local bus 
+#define  REG_SECOND_LOCALBUS_START         0x180000 /* secondary local bus
 						       device */
 #define  REG_SECOND_LOCALBUS_END           0x1FFFFF
 
@@ -2103,7 +2103,7 @@
 #define   CAS_MII_1000_EXTEND     0x0F
 
 #define   CAS_BMSR_1000_EXTEND    0x0100 /* supports 1000Base-T extended status */
-/* 
+/*
  * if autoneg is disabled, here's the table:
  * BMCR_SPEED100 = 100Mbps
  * BMCR_SPEED1000 = 1000Mbps
@@ -2145,7 +2145,7 @@ typedef struct cas_hp_inst {
 	u8 outenab;  /* output enable: 0 = not, 1 = if match
 			 2 = if !match, 3 = always */
 	u8 outshift; /* barrel shift right, 4 bits */
-	u16 outmask; 
+	u16 outmask;
 } cas_hp_inst_t;
 
 /* comparison */
@@ -2232,9 +2232,9 @@ typedef struct cas_hp_inst {
 
 #ifdef USE_HP_IP46TCP4
 static cas_hp_inst_t cas_prog_ip46tcp4tab[] = {
-	CAS_PROG_IP46TCP4_PREAMBLE, 
-	{ "TCP seq", /* DADDR should point to dest port */ 
-	  0x0000, 0x0000, OP_EQ, 0, S1_TCPFG, 4, S1_TCPFG, LD_SEQ, 
+	CAS_PROG_IP46TCP4_PREAMBLE,
+	{ "TCP seq", /* DADDR should point to dest port */
+	  0x0000, 0x0000, OP_EQ, 0, S1_TCPFG, 4, S1_TCPFG, LD_SEQ,
 	  0x081,  3, 0x0, 0xffff}, /* Load TCP seq # */
 	{ "TCP control flags", 0x0000, 0x0000, OP_EQ,  0, S1_TCPHL, 0,
 	  S1_TCPHL, ST_FLG, 0x045,  3, 0x0, 0x002f}, /* Load TCP flags */
@@ -2263,7 +2263,7 @@ static cas_hp_inst_t cas_prog_ip46tcp4tab[] = {
 static cas_hp_inst_t cas_prog_ip46tcp4nohttptab[] = {
 	CAS_PROG_IP46TCP4_PREAMBLE,
 	{ "TCP seq", /* DADDR should point to dest port */
-	  0xFFFF, 0x0080, OP_EQ,  0, S2_HTTP,  0, S1_TCPFG, LD_SEQ, 
+	  0xFFFF, 0x0080, OP_EQ,  0, S2_HTTP,  0, S1_TCPFG, LD_SEQ,
 	  0x081,  3, 0x0, 0xffff} , /* Load TCP seq # */
 	{ "TCP control flags", 0xFFFF, 0x8080, OP_EQ,  0, S2_HTTP,  0,
 	  S1_TCPHL, ST_FLG, 0x145,  2, 0x0, 0x002f, }, /* Load TCP flags */
@@ -2328,7 +2328,7 @@ static cas_hp_inst_t cas_prog_ip4fragtab[] = {
 	{ "TCP seq",	/* DADDR should point to dest port */
 	  0x0000, 0x0000, OP_EQ,  0, S3_TCPFG, 4, S3_TCPFG, LD_SEQ,
 	  0x081,  3, 0x0, 0xffff}, /* Load TCP seq # */
-	{ "TCP control flags", 0x0000, 0x0000, OP_EQ,  0, S3_TCPHL, 0, 
+	{ "TCP control flags", 0x0000, 0x0000, OP_EQ,  0, S3_TCPHL, 0,
 	  S3_TCPHL, ST_FLG, 0x045,  3, 0x0, 0x002f}, /* Load TCP flags */
 	{ "TCP length", 0x0000, 0x0000, OP_EQ,  0, S3_TCPHc, 0, S3_TCPHc,
 	  LD_R1,  0x205,  3, 0xB, 0xf000},
@@ -2338,7 +2338,7 @@ static cas_hp_inst_t cas_prog_ip4fragtab[] = {
 	  LD_FID, 0x103,  3, 0x0, 0xffff}, /* FID IP4 src+dst */
 	{ "IP4 frag offset", 0x0000, 0x0000, OP_EQ,  0, S3_FOFF,  0, S3_FOFF,
 	  LD_SEQ, 0x040,  1, 0xD, 0xfff8},
-	{ "Cleanup", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0, S1_PCKT,  
+	{ "Cleanup", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0, S1_PCKT,
 	  IM_CTL, 0x001,  3, 0x0, 0x0001},
 	{ NULL },
 };
@@ -2356,11 +2356,11 @@ static cas_hp_inst_t cas_prog_ip46tcp4batchtab[] = {
 	{ "TCP seq",	/* DADDR should point to dest port */
 	  0x0000, 0x0000, OP_EQ,  0, S1_TCPFG, 0, S1_TCPFG, LD_SEQ,
 	  0x081,  3, 0x0, 0xffff}, /* Load TCP seq # */
-	{ "TCP control flags", 0x0000, 0x0000, OP_EQ,  0, S1_TCPHL, 0, 
+	{ "TCP control flags", 0x0000, 0x0000, OP_EQ,  0, S1_TCPHL, 0,
 	  S1_TCPHL, ST_FLG, 0x000,  3, 0x0, 0x0000}, /* Load TCP flags */
-	{ "TCP length", 0x0000, 0x0000, OP_EQ,  0, S1_TCPHc, 0, 
+	{ "TCP length", 0x0000, 0x0000, OP_EQ,  0, S1_TCPHc, 0,
 	  S1_TCPHc, LD_R1,  0x205,  3, 0xB, 0xf000},
-	{ "TCP length cont", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0, 
+	{ "TCP length cont", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0,
 	  S1_PCKT,  IM_CTL, 0x040,  3, 0x0, 0xffff}, /* set batch bit */
 	{ "Cleanup", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0, S1_PCKT,
 	  IM_CTL, 0x001,  3, 0x0, 0x0001},
@@ -2381,7 +2381,7 @@ static cas_hp_inst_t cas_prog_ip46tcp4batchtab[] = {
 static cas_hp_inst_t  cas_prog_workaroundtab[] = {
 	{ "packet arrival?", 0xffff, 0x0000, OP_NP,  6, S1_VLAN,  0,
 	  S1_PCKT,  CL_REG, 0x3ff,  1, 0x0, 0x0000} ,
-	{ "VLAN?", 0xffff, 0x8100, OP_EQ,  1, S1_CFI, 0, S1_8023, 
+	{ "VLAN?", 0xffff, 0x8100, OP_EQ,  1, S1_CFI, 0, S1_8023,
 	  IM_CTL, 0x04a,  3, 0x0, 0xffff},
 	{ "CFI?", 0x1000, 0x1000, OP_EQ,  0, S1_CLNP,  1, S1_8023,
 	  CL_REG, 0x000,  0, 0x0, 0x0000},
@@ -2395,7 +2395,7 @@ static cas_hp_inst_t  cas_prog_workaroundtab[] = {
 	  IM_SAP, 0x6AE,  3, 0x0, 0xffff},
 	{ "IPV4 cont?", 0xff00, 0x4500, OP_EQ,  3, S1_IPV4F, 0, S1_CLNP,
 	  LD_SUM, 0x00a,  1, 0x0, 0x0000},
-	{ "IPV4 frag?", 0x3fff, 0x0000, OP_EQ,  1, S1_TCP44, 0, S1_CLNP,  
+	{ "IPV4 frag?", 0x3fff, 0x0000, OP_EQ,  1, S1_TCP44, 0, S1_CLNP,
 	  LD_LEN, 0x03e,  1, 0x0, 0xffff},
 	{ "TCP44?", 0x00ff, 0x0006, OP_EQ,  7, S1_TCPSQ, 0, S1_CLNP,
 	  LD_FID, 0x182,  3, 0x0, 0xffff}, /* FID IP4&TCP src+dst */
@@ -2408,7 +2408,7 @@ static cas_hp_inst_t  cas_prog_workaroundtab[] = {
 	{ "TCP64?", 0xff00, 0x0600, OP_EQ, 18, S1_TCPSQ, 0, S1_CLNP,
 	  LD_LEN, 0x03f,  1, 0x0, 0xffff},
 	{ "TCP seq",      /* DADDR should point to dest port */
-	  0x0000, 0x0000, OP_EQ,  0, S1_TCPFG, 4, S1_TCPFG, LD_SEQ, 
+	  0x0000, 0x0000, OP_EQ,  0, S1_TCPFG, 4, S1_TCPFG, LD_SEQ,
 	  0x081,  3, 0x0, 0xffff}, /* Load TCP seq # */
 	{ "TCP control flags", 0x0000, 0x0000, OP_EQ,  0, S1_TCPHL, 0,
 	  S1_TCPHL, ST_FLG, 0x045,  3, 0x0, 0x002f}, /* Load TCP flags */
@@ -2429,7 +2429,7 @@ static cas_hp_inst_t  cas_prog_workaroundtab[] = {
 
 #ifdef USE_HP_ENCRYPT
 static cas_hp_inst_t  cas_prog_encryptiontab[] = {
-	{ "packet arrival?", 0xffff, 0x0000, OP_NP,  6, S1_VLAN,  0, 
+	{ "packet arrival?", 0xffff, 0x0000, OP_NP,  6, S1_VLAN,  0,
 	  S1_PCKT,  CL_REG, 0x3ff,  1, 0x0, 0x0000},
 	{ "VLAN?", 0xffff, 0x8100, OP_EQ,  1, S1_CFI,   0, S1_8023,
 	  IM_CTL, 0x00a,  3, 0x0, 0xffff},
@@ -2439,19 +2439,19 @@ static cas_hp_inst_t  cas_prog_encryptiontab[] = {
 	00,
 #endif
 	{ "CFI?", /* FIND CFI and If FIND go to CleanUP1 (ignore and send to host) */
-	  0x1000, 0x1000, OP_EQ,  0, S1_CLNP,  1, S1_8023,  
+	  0x1000, 0x1000, OP_EQ,  0, S1_CLNP,  1, S1_8023,
 	  CL_REG, 0x000,  0, 0x0, 0x0000},
-	{ "8023?", 0xffff, 0x0600, OP_LT,  1, S1_LLC,   0, S1_IPV4, 
+	{ "8023?", 0xffff, 0x0600, OP_LT,  1, S1_LLC,   0, S1_IPV4,
 	  CL_REG, 0x000,  0, 0x0, 0x0000},
-	{ "LLC?", 0xffff, 0xaaaa, OP_EQ,  1, S1_LLCc,  0, S1_CLNP, 
+	{ "LLC?", 0xffff, 0xaaaa, OP_EQ,  1, S1_LLCc,  0, S1_CLNP,
 	  CL_REG, 0x000,  0, 0x0, 0x0000},
 	{ "LLCc?", 0xff00, 0x0300, OP_EQ,  2, S1_IPV4,  0, S1_CLNP,
 	  CL_REG, 0x000,  0, 0x0, 0x0000},
-	{ "IPV4?", 0xffff, 0x0800, OP_EQ,  1, S1_IPV4c, 0, S1_IPV6,  
+	{ "IPV4?", 0xffff, 0x0800, OP_EQ,  1, S1_IPV4c, 0, S1_IPV6,
 	  LD_SAP, 0x100,  3, 0x0, 0xffff},
-	{ "IPV4 cont?", 0xff00, 0x4500, OP_EQ,  3, S1_IPV4F, 0, S1_CLNP,  
+	{ "IPV4 cont?", 0xff00, 0x4500, OP_EQ,  3, S1_IPV4F, 0, S1_CLNP,
 	  LD_SUM, 0x00a,  1, 0x0, 0x0000},
-	{ "IPV4 frag?", 0x3fff, 0x0000, OP_EQ,  1, S1_TCP44, 0, S1_CLNP, 
+	{ "IPV4 frag?", 0x3fff, 0x0000, OP_EQ,  1, S1_TCP44, 0, S1_CLNP,
 	  LD_LEN, 0x03e,  1, 0x0, 0xffff},
 	{ "TCP44?", 0x00ff, 0x0006, OP_EQ,  7, S1_TCPSQ, 0, S1_ESP4,
 	  LD_FID, 0x182,  1, 0x0, 0xffff}, /* FID IP4&TCP src+dst */
@@ -2459,9 +2459,9 @@ static cas_hp_inst_t  cas_prog_encryptiontab[] = {
 	  LD_SUM, 0x015,  1, 0x0, 0x0000},
 	{ "IPV6 len", 0xf000, 0x6000, OP_EQ,  0, S1_IPV6c, 0, S1_CLNP,
 	  IM_R1,  0x128,  1, 0x0, 0xffff},
-	{ "IPV6 cont?", 0x0000, 0x0000, OP_EQ,  3, S1_TCP64, 0, S1_CLNP, 
+	{ "IPV6 cont?", 0x0000, 0x0000, OP_EQ,  3, S1_TCP64, 0, S1_CLNP,
 	  LD_FID, 0x484,  1, 0x0, 0xffff}, /*  FID IP6&TCP src+dst */
-	{ "TCP64?", 
+	{ "TCP64?",
 #if 0
 //@@@0xff00, 0x0600, OP_EQ, 18, S1_TCPSQ, 0, S1_ESP6,  LD_LEN, 0x03f,  1, 0x0, 0xffff,
 #endif
@@ -2472,10 +2472,10 @@ static cas_hp_inst_t  cas_prog_encryptiontab[] = {
 	  0x081,  3, 0x0, 0xffff}, /* Load TCP seq # */
 	{ "TCP control flags", 0xFFFF, 0x8080, OP_EQ,  0, S2_HTTP,  0,
 	  S1_TCPHL, ST_FLG, 0x145,  2, 0x0, 0x002f}, /* Load TCP flags */
-	{ "TCP length", 0x0000, 0x0000, OP_EQ,  0, S1_TCPHc, 0, S1_TCPHc, 
+	{ "TCP length", 0x0000, 0x0000, OP_EQ,  0, S1_TCPHc, 0, S1_TCPHc,
 	  LD_R1,  0x205,  3, 0xB, 0xf000} ,
 	{ "TCP length cont", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0,
-	  S1_PCKT,  LD_HDR, 0x0ff,  3, 0x0, 0xffff}, 
+	  S1_PCKT,  LD_HDR, 0x0ff,  3, 0x0, 0xffff},
 	{ "Cleanup", 0x0000, 0x0000, OP_EQ,  0, S1_CLNP2,  0, S1_CLNP2,
 	  IM_CTL, 0x001,  3, 0x0, 0x0001},
 	{ "Cleanup 2", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0, S1_PCKT,
@@ -2483,7 +2483,7 @@ static cas_hp_inst_t  cas_prog_encryptiontab[] = {
 	{ "Drop packet", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0, S1_PCKT,
 	  IM_CTL, 0x080,  3, 0x0, 0xffff},
 	{ "No HTTP", 0x0000, 0x0000, OP_EQ,  0, S1_PCKT,  0, S1_PCKT,
-	  IM_CTL, 0x044,  3, 0x0, 0xffff}, 
+	  IM_CTL, 0x044,  3, 0x0, 0xffff},
 	{ "IPV4 ESP encrypted?",  /* S1_ESP4 */
 	  0x00ff, 0x0032, OP_EQ,  0, S1_CLNP2, 0, S1_AH4, IM_CTL,
 	  0x021, 1,  0x0, 0xffff},
@@ -4044,7 +4044,7 @@ cas_saturn_patch_t cas_saturn_patch[] = {
  * deal with that, i just allocate rings to create the desired
  * alignment. here are the constraints:
  *   RX DESC and COMP rings must be 8KB aligned
- *   TX DESC must be 2KB aligned. 
+ *   TX DESC must be 2KB aligned.
  * if you change the numbers, be cognizant of how the alignment will change
  * in INIT_BLOCK as well.
  */
@@ -4095,20 +4095,20 @@ cas_saturn_patch_t cas_saturn_patch[] = {
 /* min is 2k, but we can't do jumbo frames unless it's at least 8k */
 #define CAS_MIN_PAGE_SHIFT            11 /* 2048 */
 #define CAS_JUMBO_PAGE_SHIFT          13 /* 8192 */
-#define CAS_MAX_PAGE_SHIFT            14 /* 16384 */             
+#define CAS_MAX_PAGE_SHIFT            14 /* 16384 */
 
 #define TX_DESC_BUFLEN_MASK         0x0000000000003FFFULL /* buffer length in
 							     bytes. 0 - 9256 */
 #define TX_DESC_BUFLEN_SHIFT        0
 #define TX_DESC_CSUM_START_MASK     0x00000000001F8000ULL /* checksum start. #
-							     of bytes to be 
+							     of bytes to be
 							     skipped before
 							     csum calc begins.
 							     value must be
 							     even */
 #define TX_DESC_CSUM_START_SHIFT    15
 #define TX_DESC_CSUM_STUFF_MASK     0x000000001FE00000ULL /* checksum stuff.
-							     byte offset w/in 
+							     byte offset w/in
 							     the pkt for the
 							     1st csum byte.
 							     must be > 8 */
@@ -4137,7 +4137,7 @@ struct cas_rx_desc {
 
 /* received packets are put on the completion ring. */
 /* word 1 */
-#define RX_COMP1_DATA_SIZE_MASK           0x0000000007FFE000ULL   
+#define RX_COMP1_DATA_SIZE_MASK           0x0000000007FFE000ULL
 #define RX_COMP1_DATA_SIZE_SHIFT          13
 #define RX_COMP1_DATA_OFF_MASK            0x000001FFF8000000ULL
 #define RX_COMP1_DATA_OFF_SHIFT           27
@@ -4147,8 +4147,8 @@ struct cas_rx_desc {
 #define RX_COMP1_SKIP_SHIFT               55
 #define RX_COMP1_RELEASE_NEXT             0x0200000000000000ULL
 #define RX_COMP1_SPLIT_PKT                0x0400000000000000ULL
-#define RX_COMP1_RELEASE_FLOW             0x0800000000000000ULL  
-#define RX_COMP1_RELEASE_DATA             0x1000000000000000ULL  
+#define RX_COMP1_RELEASE_FLOW             0x0800000000000000ULL
+#define RX_COMP1_RELEASE_DATA             0x1000000000000000ULL
 #define RX_COMP1_RELEASE_HDR              0x2000000000000000ULL
 #define RX_COMP1_TYPE_MASK                0xC000000000000000ULL
 #define RX_COMP1_TYPE_SHIFT               62
@@ -4201,7 +4201,7 @@ struct cas_rx_desc {
 
 /* we encode the following: ring/index/release. only 14 bits
  * are usable.
- * NOTE: the encoding is dependent upon RX_DESC_RING_SIZE and 
+ * NOTE: the encoding is dependent upon RX_DESC_RING_SIZE and
  *       MAX_RX_DESC_RINGS. */
 #define RX_INDEX_NUM_MASK                 0x0000000000000FFFULL
 #define RX_INDEX_NUM_SHIFT                0
@@ -4214,7 +4214,7 @@ struct cas_rx_comp {
 	u64     word2;
 	u64     word3;
 	u64     word4;
-}; 
+};
 
 enum link_state {
 	link_down = 0,	/* No link, will retry */
@@ -4235,9 +4235,9 @@ typedef struct cas_page {
 
 /* some alignment constraints:
  * TX DESC, RX DESC, and RX COMP must each be 8K aligned.
- * TX COMPWB must be 8-byte aligned. 
+ * TX COMPWB must be 8-byte aligned.
  * to accomplish this, here's what we do:
- * 
+ *
  * INIT_BLOCK_RX_COMP  = 64k (already aligned)
  * INIT_BLOCK_RX_DESC  = 8k
  * INIT_BLOCK_TX       = 8k
@@ -4250,9 +4250,9 @@ typedef struct cas_page {
 
 struct cas_init_block {
 	struct cas_rx_comp rxcs[N_RX_COMP_RINGS][INIT_BLOCK_RX_COMP];
-	struct cas_rx_desc rxds[N_RX_DESC_RINGS][INIT_BLOCK_RX_DESC]; 
+	struct cas_rx_desc rxds[N_RX_DESC_RINGS][INIT_BLOCK_RX_DESC];
 	struct cas_tx_desc txds[N_TX_RINGS][INIT_BLOCK_TX];
-	u64 tx_compwb; 
+	u64 tx_compwb;
 };
 
 /* tiny buffers to deal with target abort issue. we allocate a bit
@@ -4278,7 +4278,7 @@ struct cas {
 	int tx_new[N_TX_RINGS], tx_old[N_TX_RINGS];
 	int rx_old[N_RX_DESC_RINGS];
 	int rx_cur[N_RX_COMP_RINGS], rx_new[N_RX_COMP_RINGS];
-	int rx_last[N_RX_DESC_RINGS]; 
+	int rx_last[N_RX_DESC_RINGS];
 
 	/* Set when chip is actually in operational state
 	 * (ie. not power managed) */
@@ -4337,7 +4337,7 @@ struct cas {
 	int                     min_frame_size; /* for tx fifo workaround */
 
 	/* page size allocation */
-	int                     page_size; 
+	int                     page_size;
 	int                     page_order;
 	int                     mtu_stride;
 
@@ -4362,7 +4362,7 @@ struct cas {
 #ifdef CONFIG_CASSINI_QGE_DEBUG
 	atomic_t interrupt_seen; /* 1 if any interrupts are getting through */
 #endif
-	
+
 	/* Link-down problem workaround */
 #define LINK_TRANSITION_UNKNOWN 	0
 #define LINK_TRANSITION_ON_FAILURE 	1
@@ -4383,7 +4383,7 @@ struct cas {
 	int 			casreg_len; /* reg-space size for dumping */
 	u64			pause_entered;
 	u16			pause_last_time_recvd;
-  
+
 	dma_addr_t block_dvma, tx_tiny_dvma[N_TX_RINGS];
 	struct pci_dev *pdev;
 	struct net_device *dev;
@@ -4394,7 +4394,7 @@ struct cas {
 #define RX_COMP_ENTRY(r, x) ((x) & (RX_COMP_RINGN_SIZE(r) - 1))
 
 #define TX_BUFF_COUNT(r, x, y)    ((x) <= (y) ? ((y) - (x)) : \
-        (TX_DESC_RINGN_SIZE(r) - (x) + (y)))    
+        (TX_DESC_RINGN_SIZE(r) - (x) + (y)))
 
 #define TX_BUFFS_AVAIL(cp, i)	((cp)->tx_old[(i)] <= (cp)->tx_new[(i)] ? \
         (cp)->tx_old[(i)] + (TX_DESC_RINGN_SIZE(i) - 1) - (cp)->tx_new[(i)] : \

+ 2 - 2
drivers/net/chelsio/cxgb2.c

@@ -779,7 +779,7 @@ static int get_eeprom(struct net_device *dev, struct ethtool_eeprom *e,
 	return 0;
 }
 
-static struct ethtool_ops t1_ethtool_ops = {
+static const struct ethtool_ops t1_ethtool_ops = {
 	.get_settings      = get_settings,
 	.set_settings      = set_settings,
 	.get_drvinfo       = get_drvinfo,
@@ -1243,7 +1243,7 @@ static struct pci_driver driver = {
 
 static int __init t1_init_module(void)
 {
-	return pci_module_init(&driver);
+	return pci_register_driver(&driver);
 }
 
 static void __exit t1_cleanup_module(void)

+ 2 - 2
drivers/net/cris/eth_v10.c

@@ -434,7 +434,7 @@ static void e100_reset_transceiver(struct net_device* net);
 static void e100_clear_network_leds(unsigned long dummy);
 static void e100_set_network_leds(int active);
 
-static struct ethtool_ops e100_ethtool_ops;
+static const struct ethtool_ops e100_ethtool_ops;
 
 static void broadcom_check_speed(struct net_device* dev);
 static void broadcom_check_duplex(struct net_device* dev);
@@ -1552,7 +1552,7 @@ static int e100_nway_reset(struct net_device *dev)
 	return 0;
 }
 
-static struct ethtool_ops e100_ethtool_ops = {
+static const struct ethtool_ops e100_ethtool_ops = {
 	.get_settings	= e100_get_settings,
 	.set_settings	= e100_set_settings,
 	.get_drvinfo	= e100_get_drvinfo,

+ 41 - 41
drivers/net/cs89x0.c

@@ -15,13 +15,13 @@
   Changelog:
 
   Mike Cruse        : mcruse@cti-ltd.com
-                    : Changes for Linux 2.0 compatibility. 
+                    : Changes for Linux 2.0 compatibility.
                     : Added dev_id parameter in net_interrupt(),
                     : request_irq() and free_irq(). Just NULL for now.
 
   Mike Cruse        : Added MOD_INC_USE_COUNT and MOD_DEC_USE_COUNT macros
                     : in net_open() and net_close() so kerneld would know
-                    : that the module is in use and wouldn't eject the 
+                    : that the module is in use and wouldn't eject the
                     : driver prematurely.
 
   Mike Cruse        : Rewrote init_module() and cleanup_module using 8390.c
@@ -31,7 +31,7 @@
 
   Russ Nelson       : Jul 13 1998.  Added RxOnly DMA support.
 
-  Melody Lee        : Aug 10 1999.  Changes for Linux 2.2.5 compatibility. 
+  Melody Lee        : Aug 10 1999.  Changes for Linux 2.2.5 compatibility.
                     : email: ethernet@crystal.cirrus.com
 
   Alan Cox          : Removed 1.2 support, added 2.1 extra counters.
@@ -163,12 +163,12 @@ static char version[] __initdata =
 /* First, a few definitions that the brave might change.
    A zero-terminated list of I/O addresses to be probed. Some special flags..
       Addr & 1 = Read back the address port, look for signature and reset
-                 the page window before probing 
-      Addr & 3 = Reset the page window and probe 
+                 the page window before probing
+      Addr & 3 = Reset the page window and probe
    The CLPS eval board has the Cirrus chip at 0x80090300, in ARM IO space,
    but it is possible that a Cirrus board could be plugged into the ISA
    slots. */
-/* The cs8900 has 4 IRQ pins, software selectable. cs8900_irq_map maps 
+/* The cs8900 has 4 IRQ pins, software selectable. cs8900_irq_map maps
    them to system IRQ numbers. This mapping is card specific and is set to
    the configuration of the Cirrus Eval board for this chip. */
 #ifdef CONFIG_ARCH_CLPS7500
@@ -299,7 +299,7 @@ static int __init media_fn(char *str)
 
 __setup("cs89x0_media=", media_fn);
 
-
+
 /* Check for a network adaptor of this type, and return '0' iff one exists.
    If dev->base_addr == 0, probe all likely locations.
    If dev->base_addr == 1, always return failure.
@@ -630,7 +630,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 	       dev->base_addr);
 
 	reset_chip(dev);
-   
+
         /* Here we read the current configuration of the chip. If there
 	   is no Extended EEPROM then the idea is to not disturb the chip
 	   configuration, it should have been correctly setup by automatic
@@ -654,7 +654,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 		cnt = (*confd++ & 0x00ff) >> 1;
 		while (--cnt > 0) {
 			__u16 j = *confd++;
-			
+
 			switch (j & 0x0fff) {
 			case PP_IA:
 				for (i = 0; i < ETH_ALEN/2; i++) {
@@ -670,7 +670,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 	} else
 #endif
 
-        if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) == 
+        if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) ==
 	      (EEPROM_OK|EEPROM_PRESENT)) {
 	        /* Load the MAC. */
 		for (i=0; i < ETH_ALEN/2; i++) {
@@ -679,17 +679,17 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 		        dev->dev_addr[i*2] = Addr & 0xFF;
 		        dev->dev_addr[i*2+1] = Addr >> 8;
 		}
-   
-	   	/* Load the Adapter Configuration. 
-		   Note:  Barring any more specific information from some 
-		   other source (ie EEPROM+Schematics), we would not know 
-		   how to operate a 10Base2 interface on the AUI port. 
-		   However, since we  do read the status of HCB1 and use 
-		   settings that always result in calls to control_dc_dc(dev,0) 
-		   a BNC interface should work if the enable pin 
-		   (dc/dc converter) is on HCB1. It will be called AUI 
+
+	   	/* Load the Adapter Configuration.
+		   Note:  Barring any more specific information from some
+		   other source (ie EEPROM+Schematics), we would not know
+		   how to operate a 10Base2 interface on the AUI port.
+		   However, since we  do read the status of HCB1 and use
+		   settings that always result in calls to control_dc_dc(dev,0)
+		   a BNC interface should work if the enable pin
+		   (dc/dc converter) is on HCB1. It will be called AUI
 		   however. */
-	   
+
 		lp->adapter_cnf = 0;
 		i = readreg(dev, PP_LineCTL);
 		/* Preserve the setting of the HCB1 pin. */
@@ -706,22 +706,22 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 			lp->adapter_cnf |=  A_CNF_AUI | A_CNF_MEDIA_AUI;
 		/* Check if the card is in Auto mode. */
 		if ((i & (AUI_ONLY | AUTO_AUI_10BASET)) == AUTO_AUI_10BASET)
-			lp->adapter_cnf |=  A_CNF_AUI | A_CNF_10B_T | 
+			lp->adapter_cnf |=  A_CNF_AUI | A_CNF_10B_T |
 			A_CNF_MEDIA_AUI | A_CNF_MEDIA_10B_T | A_CNF_MEDIA_AUTO;
-		
+
 		if (net_debug > 1)
 			printk(KERN_INFO "%s: PP_LineCTL=0x%x, adapter_cnf=0x%x\n",
 					dev->name, i, lp->adapter_cnf);
 
 		/* IRQ. Other chips already probe, see below. */
-		if (lp->chip_type == CS8900) 
+		if (lp->chip_type == CS8900)
 			lp->isa_config = readreg(dev, PP_CS8900_ISAINT) & INT_NO_MASK;
-	   
+
 		printk( "[Cirrus EEPROM] ");
 	}
 
         printk("\n");
-   
+
 	/* First check to see if an EEPROM is attached. */
 #ifdef CONFIG_SH_HICOSH4 /* no EEPROM on HiCO, don't hazzle with it here */
 	if (1) {
@@ -736,13 +736,13 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 		/* Check if the chip was able to read its own configuration starting
 		   at 0 in the EEPROM*/
 		if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) !=
-		    (EEPROM_OK|EEPROM_PRESENT)) 
+		    (EEPROM_OK|EEPROM_PRESENT))
                 	printk(KERN_WARNING "cs89x0: Extended EEPROM checksum bad and no Cirrus EEPROM, relying on command line\n");
-		   
+
         } else {
 		/* This reads an extended EEPROM that is not documented
 		   in the CS8900 datasheet. */
-		
+
                 /* get transmission control word  but keep the autonegotiation bits */
                 if (!lp->auto_neg_cnf) lp->auto_neg_cnf = eeprom_buff[AUTO_NEG_CNF_OFFSET/2];
                 /* Store adapter configuration */
@@ -810,7 +810,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 				printk("\ncs89x0: invalid ISA interrupt number %d\n", i);
 			else
 				i = cs8900_irq_map[i];
-			
+
 			lp->irq_map = CS8900_IRQ_MAP; /* fixed IRQ map for CS8900 */
 		} else {
 			int irq_map_buff[IRQ_MAP_LEN/2];
@@ -875,7 +875,7 @@ out1:
 	return retval;
 }
 
-
+
 /*********************************
  * This page contains DMA routines
 **********************************/
@@ -1064,14 +1064,14 @@ void  __init reset_chip(struct net_device *dev)
 		;
 }
 
-
+
 static void
 control_dc_dc(struct net_device *dev, int on_not_off)
 {
 	struct net_local *lp = netdev_priv(dev);
 	unsigned int selfcontrol;
 	int timenow = jiffies;
-	/* control the DC to DC convertor in the SelfControl register.  
+	/* control the DC to DC convertor in the SelfControl register.
 	   Note: This is hooked up to a general purpose pin, might not
 	   always be a DC to DC convertor. */
 
@@ -1240,7 +1240,7 @@ detect_bnc(struct net_device *dev)
 		return DETECTED_NONE;
 }
 
-
+
 static void
 write_irq(struct net_device *dev, int chip_type, int irq)
 {
@@ -1544,7 +1544,7 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev)
 		 * Gasp!  It hasn't.  But that shouldn't happen since
 		 * we're waiting for TxOk, so return 1 and requeue this packet.
 		 */
-		
+
 		spin_unlock_irq(&lp->lock);
 		if (net_debug) printk("cs89x0: Tx buffer not free!\n");
 		return 1;
@@ -1569,10 +1569,10 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev)
 
 	return 0;
 }
-
+
 /* The typical workload of the driver:
    Handle the network interface interrupts. */
-   
+
 static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 {
 	struct net_device *dev = dev_id;
@@ -1740,7 +1740,7 @@ net_close(struct net_device *dev)
 #endif
 
 	netif_stop_queue(dev);
-	
+
 	writereg(dev, PP_RxCFG, 0);
 	writereg(dev, PP_TxCFG, 0);
 	writereg(dev, PP_BufCFG, 0);
@@ -1791,7 +1791,7 @@ static void set_multicast_list(struct net_device *dev)
 		/* The multicast-accept list is initialized to accept-all, and we
 		   rely on higher-level filtering for now. */
 		lp->rx_mode = RX_MULTCAST_ACCEPT;
-	} 
+	}
 	else
 		lp->rx_mode = 0;
 
@@ -1833,8 +1833,8 @@ static int set_mac_address(struct net_device *dev, void *p)
 static struct net_device *dev_cs89x0;
 
 /*
- * Support the 'debug' module parm even if we're compiled for non-debug to 
- * avoid breaking someone's startup scripts 
+ * Support the 'debug' module parm even if we're compiled for non-debug to
+ * avoid breaking someone's startup scripts
  */
 
 static int io;
@@ -1983,7 +1983,7 @@ cleanup_module(void)
 	free_netdev(dev_cs89x0);
 }
 #endif /* MODULE */
-
+
 /*
  * Local variables:
  *  version-control: t

+ 2 - 2
drivers/net/cs89x0.h

@@ -427,8 +427,8 @@
 #define DMA_SIZE (16*1024) /*  Size of dma buffer - 16k */
 
 #define CS8900 0x0000
-#define CS8920 0x4000   
-#define CS8920M 0x6000   
+#define CS8920 0x4000
+#define CS8920M 0x6000
 #define REVISON_BITS 0x1F00
 #define EEVER_NUMBER 0x12
 #define CHKSUM_LEN 0x14

+ 2 - 2
drivers/net/de600.c

@@ -179,7 +179,7 @@ static inline void trigger_interrupt(struct net_device *dev)
  * Copy a buffer to the adapter transmit page memory.
  * Start sending.
  */
- 
+
 static int de600_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	unsigned long flags;
@@ -272,7 +272,7 @@ static irqreturn_t de600_interrupt(int irq, void *dev_id, struct pt_regs * regs)
 	}
 
 	spin_lock(&de600_lock);
-	
+
 	select_nic();
 	irq_status = de600_read_status(dev);
 

+ 19 - 19
drivers/net/de620.c

@@ -40,7 +40,7 @@
  *****************************************************************************/
 static const char version[] =
 	"de620.c: $Revision: 1.40 $,  Bjorn Ekwall <bj0rn@blox.se>\n";
-
+
 /***********************************************************************
  *
  * "Tuning" section.
@@ -115,7 +115,7 @@ static const char version[] =
 #define COUNT_LOOPS
  */
 #endif
-
+
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
@@ -250,7 +250,7 @@ static struct nic {
 	byte	Media;
 	byte	SCR;
 } nic_data;
-
+
 /**********************************************************
  *                                                        *
  * Convenience macros/functions for D-Link DE-620 adapter *
@@ -432,7 +432,7 @@ de620_get_register(struct net_device *dev, byte reg)
 
 	return value;
 }
-
+
 /*********************************************************************
  *
  * Open/initialize the board.
@@ -515,10 +515,10 @@ static void de620_set_multicast_list(struct net_device *dev)
 }
 
 /*******************************************************
- *	
+ *
  * Handle timeouts on transmit
  */
- 
+
 static void de620_timeout(struct net_device *dev)
 {
 	printk(KERN_WARNING "%s: transmit timed out, %s?\n", dev->name, "network cable problem");
@@ -540,9 +540,9 @@ static int de620_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	byte using_txbuf;
 
 	using_txbuf = de620_tx_buffs(dev); /* Peek at the adapter */
-	
+
 	netif_stop_queue(dev);
-	
+
 
 	if ((len = skb->len) < RUNT)
 		len = RUNT;
@@ -584,7 +584,7 @@ static int de620_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	dev_kfree_skb (skb);
 	return 0;
 }
-
+
 /*****************************************************
  *
  * Handle the network interface interrupts.
@@ -599,7 +599,7 @@ de620_interrupt(int irq_in, void *dev_id, struct pt_regs *regs)
 	int again = 0;
 
 	spin_lock(&de620_lock);
-	
+
 	/* Read the status register (_not_ the status port) */
 	irq_status = de620_get_register(dev, R_STS);
 
@@ -615,7 +615,7 @@ de620_interrupt(int irq_in, void *dev_id, struct pt_regs *regs)
 
 	if(de620_tx_buffs(dev) != (TXBF0 | TXBF1))
 		netif_wake_queue(dev);
-		
+
 	spin_unlock(&de620_lock);
 	return IRQ_HANDLED;
 }
@@ -720,7 +720,7 @@ static int de620_rx_intr(struct net_device *dev)
 
 	return (next_rx_page != curr_page); /* That was slightly tricky... */
 }
-
+
 /*********************************************
  *
  * Reset the adapter to a known state
@@ -803,7 +803,7 @@ static int adapter_init(struct net_device *dev)
 
 	return 0; /* all ok */
 }
-
+
 /******************************************************************************
  *
  * Only start-up code below
@@ -827,7 +827,7 @@ struct net_device * __init de620_probe(int unit)
 	SET_MODULE_OWNER(dev);
 
 	spin_lock_init(&de620_lock);
-	
+
 	/*
 	 * This is where the base_addr and irq gets set.
 	 * Tunable at compile-time and insmod-time
@@ -840,7 +840,7 @@ struct net_device * __init de620_probe(int unit)
 		sprintf(dev->name, "eth%d", unit);
 		netdev_boot_setup_check(dev);
 	}
-	
+
 	if (de620_debug)
 		printk(version);
 
@@ -889,7 +889,7 @@ struct net_device * __init de620_probe(int unit)
 	dev->tx_timeout 	= de620_timeout;
 	dev->watchdog_timeo	= HZ*2;
 	dev->set_multicast_list = de620_set_multicast_list;
-	
+
 	/* base_addr and irq are already set, see above! */
 
 	/* dump eeprom */
@@ -917,7 +917,7 @@ out1:
 out:
 	return ERR_PTR(err);
 }
-
+
 /**********************************
  *
  * Read info from on-board EEPROM
@@ -1003,7 +1003,7 @@ static int __init read_eeprom(struct net_device *dev)
 
 	return 0; /* no errors */
 }
-
+
 /******************************************************************************
  *
  * Loadable module skeleton
@@ -1029,7 +1029,7 @@ void cleanup_module(void)
 #endif /* MODULE */
 MODULE_LICENSE("GPL");
 
-
+
 /*
  * (add '-DMODULE' when compiling as loadable module)
  *

+ 4 - 4
drivers/net/declance.c

@@ -1,4 +1,4 @@
-/*     
+/*
  *    Lance ethernet driver for the MIPS processor based
  *      DECstation family
  *
@@ -158,9 +158,9 @@ MODULE_LICENSE("GPL");
 
 /* The DS2000/3000 have a linear 64 KB buffer.
 
- * The PMAD-AA has 128 kb buffer on-board. 
+ * The PMAD-AA has 128 kb buffer on-board.
  *
- * The IOASIC LANCE devices use a shared memory region. This region as seen 
+ * The IOASIC LANCE devices use a shared memory region. This region as seen
  * from the CPU is (max) 128 KB long and has to be on an 128 KB boundary.
  * The LANCE sees this as a 64 KB long continuous memory region.
  *
@@ -882,7 +882,7 @@ static int lance_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	skblen = skb->len;
 
 	len = skblen;
-	
+
 	if (len < ETH_ZLEN) {
 		if (skb_padto(skb, ETH_ZLEN))
 			return 0;

+ 135 - 135
drivers/net/defxx.c

@@ -275,7 +275,7 @@ static void		dfx_xmt_flush(DFX_board_t *bp);
 
 static struct net_device *root_dfx_eisa_dev;
 
-
+
 /*
  * =======================
  * = dfx_port_write_byte =
@@ -283,13 +283,13 @@ static struct net_device *root_dfx_eisa_dev;
  * = dfx_port_write_long =
  * = dfx_port_read_long  =
  * =======================
- *   
+ *
  * Overview:
  *   Routines for reading and writing values from/to adapter
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp     - pointer to board information
  *   offset - register offset from base I/O address
@@ -301,7 +301,7 @@ static struct net_device *root_dfx_eisa_dev;
  * Functional Description:
  *   These routines perform the correct operation to read or write
  *   the adapter register.
- *   
+ *
  *   EISA port block base addresses are based on the slot number in which the
  *   controller is installed.  For example, if the EISA controller is installed
  *   in slot 4, the port block base address is 0x4000.  If the controller is
@@ -377,18 +377,18 @@ static inline void dfx_port_read_long(
 	*data = inl(port);
 	}
 
-
+
 /*
  * =============
  * = dfx_init_one_pci_or_eisa =
  * =============
- *   
+ *
  * Overview:
  *   Initializes a supported FDDI EISA or PCI controller
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   pdev - pointer to pci device information (NULL for EISA)
  *   ioaddr - pointer to port (NULL for PCI)
@@ -537,18 +537,18 @@ static int __init dfx_eisa_init(void)
 	}
 	return rc;
 }
-
+
 /*
  * ================
  * = dfx_bus_init =
  * ================
- *   
+ *
  * Overview:
  *   Initializes EISA and PCI controller bus-specific logic.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   dev - pointer to device information
  *
@@ -672,19 +672,19 @@ static void __devinit dfx_bus_init(struct net_device *dev)
 		}
 	}
 
-
+
 /*
  * ========================
  * = dfx_bus_config_check =
  * ========================
- *   
+ *
  * Overview:
  *   Checks the configuration (burst size, full-duplex, etc.)  If any parameters
  *   are illegal, then this routine will set new defaults.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -766,19 +766,19 @@ static void __devinit dfx_bus_config_check(DFX_board_t *bp)
 		}
 	}
 
-
+
 /*
  * ===================
  * = dfx_driver_init =
  * ===================
- *   
+ *
  * Overview:
  *   Initializes remaining adapter board structure information
  *   and makes sure adapter is in a safe state prior to dfx_open().
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   dev - pointer to device information
  *   print_name - printable device name
@@ -984,18 +984,18 @@ static int __devinit dfx_driver_init(struct net_device *dev,
 	return(DFX_K_SUCCESS);
 }
 
-
+
 /*
  * =================
  * = dfx_adap_init =
  * =================
- *   
+ *
  * Overview:
  *   Brings the adapter to the link avail/link unavailable state.
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *   get_buffers - non-zero if buffers to be allocated
@@ -1188,18 +1188,18 @@ static int dfx_adap_init(DFX_board_t *bp, int get_buffers)
 	return(DFX_K_SUCCESS);
 	}
 
-
+
 /*
  * ============
  * = dfx_open =
  * ============
- *   
+ *
  * Overview:
  *   Opens the adapter
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   dev - pointer to device information
  *
@@ -1225,7 +1225,7 @@ static int dfx_open(struct net_device *dev)
 	DFX_board_t	*bp = dev->priv;
 
 	DBG_printk("In dfx_open...\n");
-	
+
 	/* Register IRQ - support shared interrupts by passing device ptr */
 
 	ret = request_irq(dev->irq, dfx_interrupt, IRQF_SHARED, dev->name, dev);
@@ -1276,18 +1276,18 @@ static int dfx_open(struct net_device *dev)
 	return(0);
 }
 
-
+
 /*
  * =============
  * = dfx_close =
  * =============
- *   
+ *
  * Overview:
  *   Closes the device/module.
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   dev - pointer to device information
  *
@@ -1360,26 +1360,26 @@ static int dfx_close(struct net_device *dev)
 	/* Clear device structure flags */
 
 	netif_stop_queue(dev);
-	
+
 	/* Deregister (free) IRQ */
 
 	free_irq(dev->irq, dev);
-	
+
 	return(0);
 }
 
-
+
 /*
  * ======================
  * = dfx_int_pr_halt_id =
  * ======================
- *   
+ *
  * Overview:
  *   Displays halt id's in string form.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -1452,18 +1452,18 @@ static void dfx_int_pr_halt_id(DFX_board_t	*bp)
 		}
 	}
 
-
+
 /*
  * ==========================
  * = dfx_int_type_0_process =
  * ==========================
- *   
+ *
  * Overview:
  *   Processes Type 0 interrupts.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -1569,7 +1569,7 @@ static void dfx_int_type_0_process(DFX_board_t	*bp)
 	/* Check for adapter state change */
 
 	if (type_0_status & PI_TYPE_0_STAT_M_STATE_CHANGE)
-		{                     
+		{
 		/* Get latest adapter state */
 
 		state = dfx_hw_adap_state_rd(bp);	/* get adapter state */
@@ -1604,18 +1604,18 @@ static void dfx_int_type_0_process(DFX_board_t	*bp)
 		}
 	}
 
-
+
 /*
  * ==================
  * = dfx_int_common =
  * ==================
- *   
+ *
  * Overview:
  *   Interrupt service routine (ISR)
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -1678,7 +1678,7 @@ static void dfx_int_common(struct net_device *dev)
 		dfx_int_type_0_process(bp);	/* process Type 0 interrupts */
 	}
 
-
+
 /*
  * =================
  * = dfx_interrupt =
@@ -1780,18 +1780,18 @@ static irqreturn_t dfx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 	return IRQ_HANDLED;
 }
 
-
+
 /*
  * =====================
  * = dfx_ctl_get_stats =
  * =====================
- *   
+ *
  * Overview:
  *   Get statistics for FDDI adapter
- *  
+ *
  * Returns:
  *   Pointer to FDDI statistics structure
- *       
+ *
  * Arguments:
  *   dev - pointer to device information
  *
@@ -1967,19 +1967,19 @@ static struct net_device_stats *dfx_ctl_get_stats(struct net_device *dev)
 	return((struct net_device_stats *) &bp->stats);
 	}
 
-
+
 /*
  * ==============================
  * = dfx_ctl_set_multicast_list =
  * ==============================
- *   
+ *
  * Overview:
  *   Enable/Disable LLC frame promiscuous mode reception
  *   on the adapter and/or update multicast address table.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   dev - pointer to device information
  *
@@ -2088,19 +2088,19 @@ static void dfx_ctl_set_multicast_list(struct net_device *dev)
 		}
 	}
 
-
+
 /*
  * ===========================
  * = dfx_ctl_set_mac_address =
  * ===========================
- *   
+ *
  * Overview:
  *   Add node address override (unicast address) to adapter
  *   CAM and update dev_addr field in device table.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   dev  - pointer to device information
  *   addr - pointer to sockaddr structure containing unicast address to add
@@ -2178,7 +2178,7 @@ static int dfx_ctl_set_mac_address(struct net_device *dev, void *addr)
 	return(0);			/* always return zero */
 	}
 
-
+
 /*
  * ======================
  * = dfx_ctl_update_cam =
@@ -2263,7 +2263,7 @@ static int dfx_ctl_update_cam(DFX_board_t *bp)
 	return(DFX_K_SUCCESS);
 	}
 
-
+
 /*
  * ==========================
  * = dfx_ctl_update_filters =
@@ -2272,10 +2272,10 @@ static int dfx_ctl_update_cam(DFX_board_t *bp)
  * Overview:
  *   Procedure to update adapter filters with desired
  *   filter settings.
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -2329,18 +2329,18 @@ static int dfx_ctl_update_filters(DFX_board_t *bp)
 	return(DFX_K_SUCCESS);
 	}
 
-
+
 /*
  * ======================
  * = dfx_hw_dma_cmd_req =
  * ======================
- *   
+ *
  * Overview:
  *   Sends PDQ DMA command to adapter firmware
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -2374,9 +2374,9 @@ static int dfx_hw_dma_cmd_req(DFX_board_t *bp)
 	{
 	int status;			/* adapter status */
 	int timeout_cnt;	/* used in for loops */
-	
+
 	/* Make sure the adapter is in a state that we can issue the DMA command in */
-	
+
 	status = dfx_hw_adap_state_rd(bp);
 	if ((status == PI_STATE_K_RESET)		||
 		(status == PI_STATE_K_HALTED)		||
@@ -2397,7 +2397,7 @@ static int dfx_hw_dma_cmd_req(DFX_board_t *bp)
 	dfx_port_write_long(bp, PI_PDQ_K_REG_CMD_RSP_PROD, bp->cmd_rsp_reg.lword);
 
 	/* Put request buffer on the command request queue */
-	
+
 	bp->descr_block_virt->cmd_req[bp->cmd_req_reg.index.prod].long_0 = (u32) (PI_XMT_DESCR_M_SOP |
 			PI_XMT_DESCR_M_EOP | (PI_CMD_REQ_K_SIZE_MAX << PI_XMT_DESCR_V_SEG_LEN));
 	bp->descr_block_virt->cmd_req[bp->cmd_req_reg.index.prod].long_1 = bp->cmd_req_phys;
@@ -2419,7 +2419,7 @@ static int dfx_hw_dma_cmd_req(DFX_board_t *bp)
 			break;
 		udelay(100);			/* wait for 100 microseconds */
 		}
-	if (timeout_cnt == 0) 
+	if (timeout_cnt == 0)
 		return(DFX_K_HW_TIMEOUT);
 
 	/* Bump (and wrap) the completion index and write out to register */
@@ -2439,7 +2439,7 @@ static int dfx_hw_dma_cmd_req(DFX_board_t *bp)
 			break;
 		udelay(100);			/* wait for 100 microseconds */
 		}
-	if (timeout_cnt == 0) 
+	if (timeout_cnt == 0)
 		return(DFX_K_HW_TIMEOUT);
 
 	/* Bump (and wrap) the completion index and write out to register */
@@ -2450,18 +2450,18 @@ static int dfx_hw_dma_cmd_req(DFX_board_t *bp)
 	return(DFX_K_SUCCESS);
 	}
 
-
+
 /*
  * ========================
  * = dfx_hw_port_ctrl_req =
  * ========================
- *   
+ *
  * Overview:
  *   Sends PDQ port control command to adapter firmware
- *  
+ *
  * Returns:
  *   Host data register value in host_data if ptr is not NULL
- *       
+ *
  * Arguments:
  *   bp			- pointer to board information
  *	 command	- port control command
@@ -2497,7 +2497,7 @@ static int dfx_hw_port_ctrl_req(
 	int			timeout_cnt;	/* used in for loops */
 
 	/* Set Command Error bit in command longword */
-	
+
 	port_cmd = (PI_UINT32) (command | PI_PCTRL_M_CMD_ERROR);
 
 	/* Issue port command to the adapter */
@@ -2520,12 +2520,12 @@ static int dfx_hw_port_ctrl_req(
 			break;
 		udelay(100);			/* wait for 100 microseconds */
 		}
-	if (timeout_cnt == 0) 
+	if (timeout_cnt == 0)
 		return(DFX_K_HW_TIMEOUT);
 
 	/*
-	 * If the address of host_data is non-zero, assume caller has supplied a  
-	 * non NULL pointer, and return the contents of the HOST_DATA register in 
+	 * If the address of host_data is non-zero, assume caller has supplied a
+	 * non NULL pointer, and return the contents of the HOST_DATA register in
 	 * it.
 	 */
 
@@ -2534,18 +2534,18 @@ static int dfx_hw_port_ctrl_req(
 	return(DFX_K_SUCCESS);
 	}
 
-
+
 /*
  * =====================
  * = dfx_hw_adap_reset =
  * =====================
- *   
+ *
  * Overview:
  *   Resets adapter
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp   - pointer to board information
  *   type - type of reset to perform
@@ -2588,18 +2588,18 @@ static void dfx_hw_adap_reset(
 	dfx_port_write_long(bp, PI_PDQ_K_REG_PORT_RESET, 0);
 	}
 
-
+
 /*
  * ========================
  * = dfx_hw_adap_state_rd =
  * ========================
- *   
+ *
  * Overview:
  *   Returns current adapter state
- *  
+ *
  * Returns:
  *   Adapter state per PDQ Port Specification
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -2624,18 +2624,18 @@ static int dfx_hw_adap_state_rd(DFX_board_t *bp)
 	return((port_status & PI_PSTATUS_M_STATE) >> PI_PSTATUS_V_STATE);
 	}
 
-
+
 /*
  * =====================
  * = dfx_hw_dma_uninit =
  * =====================
- *   
+ *
  * Overview:
  *   Brings adapter to DMA_UNAVAILABLE state
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   bp   - pointer to board information
  *   type - type of reset to perform
@@ -2672,38 +2672,38 @@ static int dfx_hw_dma_uninit(DFX_board_t *bp, PI_UINT32 type)
 			break;
 		udelay(100);					/* wait for 100 microseconds */
 		}
-	if (timeout_cnt == 0) 
+	if (timeout_cnt == 0)
 		return(DFX_K_HW_TIMEOUT);
 	return(DFX_K_SUCCESS);
 	}
-
+
 /*
  *	Align an sk_buff to a boundary power of 2
  *
  */
- 
+
 static void my_skb_align(struct sk_buff *skb, int n)
 {
 	unsigned long x = (unsigned long)skb->data;
 	unsigned long v;
-	
+
 	v = ALIGN(x, n);	/* Where we want to be */
-	
+
 	skb_reserve(skb, v - x);
 }
 
-
+
 /*
  * ================
  * = dfx_rcv_init =
  * ================
- *   
+ *
  * Overview:
  *   Produces buffers to adapter LLC Host receive descriptor block
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *   get_buffers - non-zero if buffers to be allocated
@@ -2764,7 +2764,7 @@ static int dfx_rcv_init(DFX_board_t *bp, int get_buffers)
 			 * align to 128 bytes for compatibility with
 			 * the old EISA boards.
 			 */
-			 
+
 			my_skb_align(newskb, 128);
 			bp->descr_block_virt->rcv_data[i + j].long_1 =
 				(u32)pci_map_single(bp->pci_dev, newskb->data,
@@ -2795,18 +2795,18 @@ static int dfx_rcv_init(DFX_board_t *bp, int get_buffers)
 	return 0;
 	}
 
-
+
 /*
  * =========================
  * = dfx_rcv_queue_process =
  * =========================
- *   
+ *
  * Overview:
  *   Process received LLC frames.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -2880,7 +2880,7 @@ static void dfx_rcv_queue_process(
 					newskb = dev_alloc_skb(NEW_SKB_SIZE);
 					if (newskb){
 						rx_in_place = 1;
-						
+
 						my_skb_align(newskb, 128);
 						skb = (struct sk_buff *)bp->p_rcv_buff_va[entry];
 						pci_unmap_single(bp->pci_dev,
@@ -2914,7 +2914,7 @@ static void dfx_rcv_queue_process(
 
 						memcpy(skb->data, p_buff + RCV_BUFF_K_PADDING, pkt_len+3);
 					}
-					
+
 					skb_reserve(skb,3);		/* adjust data field so that it points to FC byte */
 					skb_put(skb, pkt_len);		/* pass up packet length, NOT including CRC */
 					skb->dev = bp->dev;		/* pass up device pointer */
@@ -2945,18 +2945,18 @@ static void dfx_rcv_queue_process(
 		}
 	}
 
-
+
 /*
  * =====================
  * = dfx_xmt_queue_pkt =
  * =====================
- *   
+ *
  * Overview:
  *   Queues packets for transmission
- *  
+ *
  * Returns:
  *   Condition code
- *       
+ *
  * Arguments:
  *   skb - pointer to sk_buff to queue for transmission
  *   dev - pointer to device information
@@ -3020,7 +3020,7 @@ static int dfx_xmt_queue_pkt(
 	unsigned long		flags;
 
 	netif_stop_queue(dev);
-	
+
 	/*
 	 * Verify that incoming transmit request is OK
 	 *
@@ -3032,7 +3032,7 @@ static int dfx_xmt_queue_pkt(
 
 	if (!IN_RANGE(skb->len, FDDI_K_LLC_ZLEN, FDDI_K_LLC_LEN))
 	{
-		printk("%s: Invalid packet length - %u bytes\n", 
+		printk("%s: Invalid packet length - %u bytes\n",
 			dev->name, skb->len);
 		bp->xmt_length_errors++;		/* bump error counter */
 		netif_wake_queue(dev);
@@ -3065,7 +3065,7 @@ static int dfx_xmt_queue_pkt(
 		}
 
 	spin_lock_irqsave(&bp->lock, flags);
-	
+
 	/* Get the current producer and the next free xmt data descriptor */
 
 	prod		= bp->rcv_xmt_reg.index.xmt_prod;
@@ -3167,18 +3167,18 @@ static int dfx_xmt_queue_pkt(
 	return(0);							/* packet queued to adapter */
 	}
 
-
+
 /*
  * ================
  * = dfx_xmt_done =
  * ================
- *   
+ *
  * Overview:
  *   Processes all frames that have been transmitted.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -3246,18 +3246,18 @@ static int dfx_xmt_done(DFX_board_t *bp)
 	return freed;
 	}
 
-
+
 /*
  * =================
  * = dfx_rcv_flush =
  * =================
- *   
+ *
  * Overview:
  *   Remove all skb's in the receive ring.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -3299,14 +3299,14 @@ static inline void dfx_rcv_flush( DFX_board_t *bp )
  * =================
  * = dfx_xmt_flush =
  * =================
- *   
+ *
  * Overview:
  *   Processes all frames whether they've been transmitted
  *   or not.
- *  
+ *
  * Returns:
  *   None
- *       
+ *
  * Arguments:
  *   bp - pointer to board information
  *
@@ -3444,13 +3444,13 @@ static int __init dfx_init(void)
 {
 	int rc_pci, rc_eisa;
 
-	rc_pci = pci_module_init(&dfx_driver);
+	rc_pci = pci_register_driver(&dfx_driver);
 	if (rc_pci >= 0) dfx_have_pci = 1;
-	
+
 	rc_eisa = dfx_eisa_init();
 	if (rc_eisa >= 0) dfx_have_eisa = 1;
 
-	return ((rc_eisa < 0) ? 0 : rc_eisa)  + ((rc_pci < 0) ? 0 : rc_pci); 
+	return ((rc_eisa < 0) ? 0 : rc_eisa)  + ((rc_pci < 0) ? 0 : rc_pci);
 }
 
 static void __exit dfx_cleanup(void)
@@ -3459,8 +3459,8 @@ static void __exit dfx_cleanup(void)
 		pci_unregister_driver(&dfx_driver);
 	if (dfx_have_eisa)
 		dfx_eisa_cleanup();
-		
-}	
+
+}
 
 module_init(dfx_init);
 module_exit(dfx_cleanup);
@@ -3469,7 +3469,7 @@ MODULE_DESCRIPTION("DEC FDDIcontroller EISA/PCI (DEFEA/DEFPA) driver "
 		   DRV_VERSION " " DRV_RELDATE);
 MODULE_LICENSE("GPL");
 
-
+
 /*
  * Local variables:
  * kernel-compile-command: "gcc -D__KERNEL__ -I/root/linux/include -Wall -Wstrict-prototypes -O2 -pipe -fomit-frame-pointer -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -c defxx.c"

+ 96 - 96
drivers/net/defxx.h

@@ -45,7 +45,7 @@ typedef struct							/* 64-bit counter */
 	} PI_CNTR;
 
 typedef struct							/* LAN address */
-	{										
+	{
 	PI_UINT32  lwrd_0;
 	PI_UINT32  lwrd_1;
 	} PI_LAN_ADDR;
@@ -146,7 +146,7 @@ typedef struct							/* Station ID address */
 #define PI_STATE_K_LINK_UNAVAIL	 		5
 #define PI_STATE_K_HALTED		   		6
 #define PI_STATE_K_RING_MEMBER			7
-#define PI_STATE_K_NUMBER				8 
+#define PI_STATE_K_NUMBER				8
 
 /* Define codes for command type */
 
@@ -175,9 +175,9 @@ typedef struct							/* Station ID address */
 #define PI_ITEM_K_EOL					0x00 	/* End-of-Item list 		  */
 #define PI_ITEM_K_T_REQ					0x01 	/* DECnet T_REQ 			  */
 #define PI_ITEM_K_TVX					0x02 	/* DECnet TVX 				  */
-#define PI_ITEM_K_RESTRICTED_TOKEN		0x03 	/* DECnet Restricted Token 	  */	 
+#define PI_ITEM_K_RESTRICTED_TOKEN		0x03 	/* DECnet Restricted Token 	  */
 #define PI_ITEM_K_LEM_THRESHOLD			0x04 	/* DECnet LEM Threshold 	  */
-#define PI_ITEM_K_RING_PURGER			0x05 	/* DECnet Ring Purger Enable  */	
+#define PI_ITEM_K_RING_PURGER			0x05 	/* DECnet Ring Purger Enable  */
 #define PI_ITEM_K_CNTR_INTERVAL			0x06 	/* Chars_Set 				  */
 #define PI_ITEM_K_IND_GROUP_PROM		0x07 	/* Filters_Set 				  */
 #define PI_ITEM_K_GROUP_PROM			0x08 	/* Filters_Set 				  */
@@ -283,16 +283,16 @@ typedef struct
 
 /* Start Response */
 
-typedef struct 
+typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	} PI_CMD_START_RSP;
 
 /* Filters_Set Request */
 
 #define PI_CMD_FILTERS_SET_K_ITEMS_MAX  63		/* Fits in a 512 byte buffer */
 
-typedef struct 
+typedef struct
 	{
 	PI_UINT32		cmd_type;
 	PI_ITEM_LIST	item[PI_CMD_FILTERS_SET_K_ITEMS_MAX];
@@ -302,21 +302,21 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	} PI_CMD_FILTERS_SET_RSP;
 
 /* Filters_Get Request */
 
 typedef struct
 	{
-	PI_UINT32		cmd_type;   
+	PI_UINT32		cmd_type;
 	} PI_CMD_FILTERS_GET_REQ;
 
 /* Filters_Get Response */
 
-typedef struct 
+typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	PI_UINT32		ind_group_prom;
 	PI_UINT32		group_prom;
 	PI_UINT32		broadcast_all;
@@ -339,14 +339,14 @@ typedef struct
 		PI_UINT32	item_code;
 		PI_UINT32	value;
 		PI_UINT32	item_index;
-		} item[PI_CMD_CHARS_SET_K_ITEMS_MAX];	
+		} item[PI_CMD_CHARS_SET_K_ITEMS_MAX];
 	} PI_CMD_CHARS_SET_REQ;
 
 /* Chars_Set Response */
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	} PI_CMD_CHARS_SET_RSP;
 
 
@@ -362,20 +362,20 @@ typedef struct
 		PI_UINT32	item_code;
 		PI_UINT32	value;
 		PI_UINT32	item_index;
-		} item[PI_CMD_SNMP_SET_K_ITEMS_MAX];	
+		} item[PI_CMD_SNMP_SET_K_ITEMS_MAX];
 	} PI_CMD_SNMP_SET_REQ;
 
 /* SNMP_Set Response */
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	} PI_CMD_SNMP_SET_RSP;
 
 
 /* SMT_MIB_Set Request */
 
-#define PI_CMD_SMT_MIB_SET_K_ITEMS_MAX 42	/* Max number of items */ 
+#define PI_CMD_SMT_MIB_SET_K_ITEMS_MAX 42	/* Max number of items */
 
 typedef struct
 	{
@@ -392,7 +392,7 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	} PI_CMD_SMT_MIB_SET_RSP;
 
 /* SMT_MIB_Get Request */
@@ -407,8 +407,8 @@ typedef struct
 typedef struct						  /* Refer to ANSI FDDI SMT Rev. 7.3 */
 	{
 	PI_RSP_HEADER  header;
-	
-	/* SMT GROUP */														  
+
+	/* SMT GROUP */
 
 	PI_STATION_ID  	smt_station_id;
 	PI_UINT32 		smt_op_version_id;
@@ -485,7 +485,7 @@ typedef struct						  /* Refer to ANSI FDDI SMT Rev. 7.3 */
 	PI_UINT32		port_connection_capabilities[PI_PHY_K_MAX];
 	PI_UINT32		port_bs_flag[PI_PHY_K_MAX];
 	PI_UINT32		port_ler_estimate[PI_PHY_K_MAX];
-	PI_UINT32		port_ler_cutoff[PI_PHY_K_MAX];	
+	PI_UINT32		port_ler_cutoff[PI_PHY_K_MAX];
 	PI_UINT32		port_ler_alarm[PI_PHY_K_MAX];
 	PI_UINT32		port_connect_state[PI_PHY_K_MAX];
 	PI_UINT32		port_pcm_state[PI_PHY_K_MAX];
@@ -497,7 +497,7 @@ typedef struct						  /* Refer to ANSI FDDI SMT Rev. 7.3 */
 
 	PI_CNTR	   		path_ring_latency;
 
-	} PI_CMD_SMT_MIB_GET_RSP; 
+	} PI_CMD_SMT_MIB_GET_RSP;
 
 
 /*
@@ -506,7 +506,7 @@ typedef struct						  /* Refer to ANSI FDDI SMT Rev. 7.3 */
  *  certain host-sent SMT frames such as PMF Get and Set requests.  The
  *  codes have been taken from the MIB summary section of ANSI SMT 7.3.
  */
-	
+
 #define PI_GRP_K_SMT_STATION_ID			0x100A
 #define PI_ITEM_K_SMT_STATION_ID		0x100B
 #define PI_ITEM_K_SMT_OP_VERS_ID		0x100D
@@ -536,7 +536,7 @@ typedef struct						  /* Refer to ANSI FDDI SMT Rev. 7.3 */
 #define PI_ITEM_K_SMT_REM_DISC_FLAG		0x102C
 #define PI_ITEM_K_SMT_STATION_STATUS	0x102D
 #define PI_ITEM_K_SMT_PEER_WRAP_FLAG	0x102E
-	
+
 #define PI_GRP_K_SMT_MIB_OPERATION	 	0x1032
 #define PI_ITEM_K_SMT_MSG_TIME_STAMP 	0x1033
 #define PI_ITEM_K_SMT_TRN_TIME_STAMP 	0x1034
@@ -643,9 +643,9 @@ typedef struct
 
 /* Addr_Filter_Set Response */
 
-typedef struct 
+typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	} PI_CMD_ADDR_FILTER_SET_RSP;
 
 /* Addr_Filter_Get Request */
@@ -659,7 +659,7 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	PI_LAN_ADDR		entry[PI_CMD_ADDR_FILTER_K_SIZE];
 	} PI_CMD_ADDR_FILTER_GET_RSP;
 
@@ -674,7 +674,7 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	PI_STATION_ID   station_id;						/* Station */
 	PI_UINT32		station_type;
 	PI_UINT32		smt_ver_id;
@@ -728,66 +728,66 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;		
+	PI_RSP_HEADER   header;
 
 	/* SMT GROUP */
 
-	PI_STATION_ID   smt_station_id;			
+	PI_STATION_ID   smt_station_id;
 	PI_UINT32		smt_op_version_id;
 	PI_UINT32		smt_hi_version_id;
 	PI_UINT32		smt_lo_version_id;
-	PI_UINT32		smt_mac_ct;				
-	PI_UINT32		smt_non_master_ct;			
-	PI_UINT32		smt_master_ct;				
-	PI_UINT32		smt_paths_available;			
-	PI_UINT32		smt_config_capabilities;		
-	PI_UINT32		smt_config_policy;		
-	PI_UINT32		smt_connection_policy;		
-	PI_UINT32		smt_t_notify;	
+	PI_UINT32		smt_mac_ct;
+	PI_UINT32		smt_non_master_ct;
+	PI_UINT32		smt_master_ct;
+	PI_UINT32		smt_paths_available;
+	PI_UINT32		smt_config_capabilities;
+	PI_UINT32		smt_config_policy;
+	PI_UINT32		smt_connection_policy;
+	PI_UINT32		smt_t_notify;
 	PI_UINT32		smt_status_reporting;
-	PI_UINT32		smt_ecm_state;	
-	PI_UINT32		smt_cf_state;	
-	PI_UINT32		smt_hold_state;		
+	PI_UINT32		smt_ecm_state;
+	PI_UINT32		smt_cf_state;
+	PI_UINT32		smt_hold_state;
 	PI_UINT32		smt_remote_disconnect_flag;
-	PI_UINT32		smt_station_action;			
+	PI_UINT32		smt_station_action;
 
 	/* MAC GROUP */
 
-	PI_UINT32		mac_frame_status_capabilities;	
+	PI_UINT32		mac_frame_status_capabilities;
 	PI_UINT32		mac_t_max_greatest_lower_bound;
 	PI_UINT32		mac_tvx_greatest_lower_bound;
 	PI_UINT32		mac_paths_available;
 	PI_UINT32		mac_current_path;
-	PI_LAN_ADDR		mac_upstream_nbr;			
-	PI_LAN_ADDR		mac_old_upstream_nbr;		
-	PI_UINT32		mac_dup_addr_test;			
+	PI_LAN_ADDR		mac_upstream_nbr;
+	PI_LAN_ADDR		mac_old_upstream_nbr;
+	PI_UINT32		mac_dup_addr_test;
 	PI_UINT32		mac_paths_requested;
 	PI_UINT32		mac_downstream_port_type;
-	PI_LAN_ADDR		mac_smt_address;			
-	PI_UINT32		mac_t_req;				
+	PI_LAN_ADDR		mac_smt_address;
+	PI_UINT32		mac_t_req;
 	PI_UINT32		mac_t_neg;
-	PI_UINT32		mac_t_max;				
-	PI_UINT32		mac_tvx_value;			
-	PI_UINT32		mac_t_min;				
+	PI_UINT32		mac_t_max;
+	PI_UINT32		mac_tvx_value;
+	PI_UINT32		mac_t_min;
 	PI_UINT32		mac_current_frame_status;
 	/*			  	mac_frame_cts 			*/
 	/* 				mac_error_cts 			*/
 	/* 		   		mac_lost_cts 			*/
-	PI_UINT32		mac_frame_error_threshold;		
-	PI_UINT32		mac_frame_error_ratio;		
+	PI_UINT32		mac_frame_error_threshold;
+	PI_UINT32		mac_frame_error_ratio;
 	PI_UINT32		mac_rmt_state;
 	PI_UINT32		mac_da_flag;
-	PI_UINT32		mac_una_da_flag;			
+	PI_UINT32		mac_una_da_flag;
 	PI_UINT32		mac_frame_condition;
-	PI_UINT32		mac_chip_set;			
-	PI_UINT32		mac_action;				
+	PI_UINT32		mac_chip_set;
+	PI_UINT32		mac_action;
 
 	/* PATH GROUP => Does not need to be implemented */
 
 	/* PORT GROUP */
 
-	PI_UINT32		port_pc_type[PI_PHY_K_MAX];			
-	PI_UINT32		port_pc_neighbor[PI_PHY_K_MAX];			
+	PI_UINT32		port_pc_type[PI_PHY_K_MAX];
+	PI_UINT32		port_pc_neighbor[PI_PHY_K_MAX];
 	PI_UINT32		port_connection_policies[PI_PHY_K_MAX];
 	PI_UINT32		port_remote_mac_indicated[PI_PHY_K_MAX];
 	PI_UINT32		port_ce_state[PI_PHY_K_MAX];
@@ -798,17 +798,17 @@ typedef struct
 	PI_UINT32		port_tb_max[PI_PHY_K_MAX];
 	PI_UINT32		port_bs_flag[PI_PHY_K_MAX];
 	/*				port_lct_fail_cts[PI_PHY_K_MAX];	*/
-	PI_UINT32		port_ler_estimate[PI_PHY_K_MAX];				
+	PI_UINT32		port_ler_estimate[PI_PHY_K_MAX];
 	/*				port_lem_reject_cts[PI_PHY_K_MAX];	*/
 	/*				port_lem_cts[PI_PHY_K_MAX];		*/
-	PI_UINT32		port_ler_cutoff[PI_PHY_K_MAX];				
-	PI_UINT32		port_ler_alarm[PI_PHY_K_MAX];				
+	PI_UINT32		port_ler_cutoff[PI_PHY_K_MAX];
+	PI_UINT32		port_ler_alarm[PI_PHY_K_MAX];
 	PI_UINT32		port_connect_state[PI_PHY_K_MAX];
 	PI_UINT32		port_pcm_state[PI_PHY_K_MAX];
 	PI_UINT32		port_pc_withhold[PI_PHY_K_MAX];
-	PI_UINT32		port_ler_condition[PI_PHY_K_MAX];				
-	PI_UINT32		port_chip_set[PI_PHY_K_MAX];				
-	PI_UINT32		port_action[PI_PHY_K_MAX];				
+	PI_UINT32		port_ler_condition[PI_PHY_K_MAX];
+	PI_UINT32		port_chip_set[PI_PHY_K_MAX];
+	PI_UINT32		port_action[PI_PHY_K_MAX];
 
 	/* ATTACHMENT GROUP */
 
@@ -833,7 +833,7 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;		
+	PI_RSP_HEADER   header;
 
 	/* SMT GROUP */
 
@@ -841,7 +841,7 @@ typedef struct
 
 	/* MAC GROUP */
 
-	PI_UINT32		emac_link_state;			
+	PI_UINT32		emac_link_state;
 	PI_UINT32		emac_ring_purger_state;
 	PI_UINT32		emac_ring_purger_enable;
 	PI_UINT32		emac_frame_strip_mode;
@@ -915,9 +915,9 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
-	PI_CNTR		time_since_reset;			
-	PI_CNTR_BLK		cntrs;				
+	PI_RSP_HEADER   header;
+	PI_CNTR		time_since_reset;
+	PI_CNTR_BLK		cntrs;
 	} PI_CMD_CNTRS_GET_RSP;
 
 /* Counters_Set Request */
@@ -925,14 +925,14 @@ typedef struct
 typedef struct
 	{
 	PI_UINT32	cmd_type;
-	PI_CNTR_BLK	cntrs;				
+	PI_CNTR_BLK	cntrs;
 	} PI_CMD_CNTRS_SET_REQ;
 
 /* Counters_Set Response */
 
-typedef struct 
+typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	} PI_CMD_CNTRS_SET_RSP;
 
 /* Error_Log_Clear Request */
@@ -946,7 +946,7 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	} PI_CMD_ERROR_LOG_CLEAR_RSP;
 
 /* Error_Log_Get Request */
@@ -966,7 +966,7 @@ typedef struct
 
 typedef struct
 	{
-	struct 
+	struct
 		{
 		PI_UINT32	fru_imp_mask;
 		PI_UINT32	test_id;
@@ -977,7 +977,7 @@ typedef struct
 
 typedef struct
 	{
-	PI_RSP_HEADER   header;	
+	PI_RSP_HEADER   header;
 	PI_UINT32		event_status;
 	PI_UINT32		caller_id;
 	PI_UINT32		timestamp_l;
@@ -993,7 +993,7 @@ typedef struct
 #define PI_LOG_EVENT_STATUS_K_VALID		0	/* Valid Event Status 		*/
 #define PI_LOG_EVENT_STATUS_K_INVALID	1	/* Invalid Event Status 	*/
 #define PI_LOG_CALLER_ID_K_NONE		 	0	/* No caller 				*/
-#define PI_LOG_CALLER_ID_K_SELFTEST	 	1	/* Normal power-up selftest */			
+#define PI_LOG_CALLER_ID_K_SELFTEST	 	1	/* Normal power-up selftest */
 #define PI_LOG_CALLER_ID_K_MFG		 	2	/* Mfg power-up selftest 	*/
 #define PI_LOG_CALLER_ID_K_ONLINE		3	/* On-line diagnostics 		*/
 #define PI_LOG_CALLER_ID_K_HW			4	/* Hardware 				*/
@@ -1026,7 +1026,7 @@ typedef union
 	PI_CMD_DEC_EXT_MIB_GET_REQ	dec_mib_get;
 	PI_CMD_SMT_MIB_SET_REQ		smt_mib_set;
 	PI_CMD_SMT_MIB_GET_REQ		smt_mib_get;
-	char						pad[PI_CMD_REQ_K_SIZE_MAX]; 
+	char						pad[PI_CMD_REQ_K_SIZE_MAX];
 	} PI_DMA_CMD_REQ;
 
 typedef union
@@ -1048,7 +1048,7 @@ typedef union
 	PI_CMD_DEC_EXT_MIB_GET_RSP	dec_mib_get;
 	PI_CMD_SMT_MIB_SET_RSP		smt_mib_set;
 	PI_CMD_SMT_MIB_GET_RSP		smt_mib_get;
-	char						pad[PI_CMD_RSP_K_SIZE_MAX]; 
+	char						pad[PI_CMD_RSP_K_SIZE_MAX];
 	} PI_DMA_CMD_RSP;
 
 typedef union
@@ -1094,7 +1094,7 @@ typedef struct
 #define PI_DESCR_BLK_K_SMT_HOST 	0x1000
 #define PI_DESCR_BLK_K_UNSOL		0x1200
 #define PI_DESCR_BLK_K_CMD_RSP		0x1280
-#define PI_DESCR_BLK_K_CMD_REQ		0x1300	
+#define PI_DESCR_BLK_K_CMD_REQ		0x1300
 
 /* Define format of a rcv descr (Rcv Data, Cmd Rsp, Unsolicited, SMT Host)   */
 /*   Note a field has been added for later versions of the PDQ to allow for  */
@@ -1110,10 +1110,10 @@ typedef struct
 	} PI_RCV_DESCR;
 
 #define	PI_RCV_DESCR_M_SOP	  		0x80000000
-#define PI_RCV_DESCR_M_SEG_LEN_LO 	0x60000000 
-#define PI_RCV_DESCR_M_MBZ	  		0x60000000 
+#define PI_RCV_DESCR_M_SEG_LEN_LO 	0x60000000
+#define PI_RCV_DESCR_M_MBZ	  		0x60000000
 #define PI_RCV_DESCR_M_SEG_LEN		0x1F800000
-#define PI_RCV_DESCR_M_SEG_LEN_HI	0x1FF00000	  
+#define PI_RCV_DESCR_M_SEG_LEN_HI	0x1FF00000
 #define PI_RCV_DESCR_M_SEG_CNT	  	0x000F0000
 #define PI_RCV_DESCR_M_BUFF_HI	  	0x0000FFFF
 
@@ -1121,7 +1121,7 @@ typedef struct
 #define PI_RCV_DESCR_V_SEG_LEN_LO 	29
 #define PI_RCV_DESCR_V_MBZ	  		29
 #define PI_RCV_DESCR_V_SEG_LEN	  	23
-#define PI_RCV_DESCR_V_SEG_LEN_HI 	20	  
+#define PI_RCV_DESCR_V_SEG_LEN_HI 	20
 #define PI_RCV_DESCR_V_SEG_CNT	  	16
 #define PI_RCV_DESCR_V_BUFF_HI	 	0
 
@@ -1135,7 +1135,7 @@ typedef struct
 
 #define	PI_XMT_DESCR_M_SOP			0x80000000
 #define PI_XMT_DESCR_M_EOP			0x40000000
-#define PI_XMT_DESCR_M_MBZ			0x20000000 
+#define PI_XMT_DESCR_M_MBZ			0x20000000
 #define PI_XMT_DESCR_M_SEG_LEN		0x1FFF0000
 #define PI_XMT_DESCR_M_BUFF_HI		0x0000FFFF
 
@@ -1195,7 +1195,7 @@ typedef struct
 #define PI_PCTRL_M_CONS_BLOCK			0x0040
 #define PI_PCTRL_M_UNINIT				0x0020
 #define PI_PCTRL_M_RING_MEMBER			0x0010
-#define PI_PCTRL_M_MLA					0x0008		
+#define PI_PCTRL_M_MLA					0x0008
 #define PI_PCTRL_M_FW_REV_READ			0x0004
 #define PI_PCTRL_M_DEV_SPECIFIC			0x0002
 #define PI_PCTRL_M_SUB_CMD				0x0001
@@ -1230,12 +1230,12 @@ typedef struct
 
 #define PI_PDATA_A_INIT_M_DESC_BLK_ADDR			0x0FFFFE000
 #define PI_PDATA_A_INIT_M_RESERVED				0x000001FFC
-#define PI_PDATA_A_INIT_M_BSWAP_DATA			0x000000002 
+#define PI_PDATA_A_INIT_M_BSWAP_DATA			0x000000002
 #define PI_PDATA_A_INIT_M_BSWAP_LITERAL			0x000000001
 
 #define PI_PDATA_A_INIT_V_DESC_BLK_ADDR			13
 #define PI_PDATA_A_INIT_V_RESERVED				3
-#define PI_PDATA_A_INIT_V_BSWAP_DATA			1 
+#define PI_PDATA_A_INIT_V_BSWAP_DATA			1
 #define PI_PDATA_A_INIT_V_BSWAP_LITERAL			0
 
 /* Port Reset Register */
@@ -1281,11 +1281,11 @@ typedef struct
 #define PI_HALT_ID_K_IMAGE_CRC_ERROR	7   		/* Image is bad, update it */
 #define PI_HALT_ID_K_BUS_EXCEPTION	 	8   		/* 68K bus exception	   */
 
-/* Host Interrupt Enable Register as seen by host */ 
+/* Host Interrupt Enable Register as seen by host */
 
 #define PI_HOST_INT_M_XMT_DATA_ENB		0x80000000	/* Type 2 Enables */
-#define PI_HOST_INT_M_RCV_DATA_ENB		0x40000000  
-#define PI_HOST_INT_M_SMT_HOST_ENB		0x10000000	/* Type 1 Enables */ 
+#define PI_HOST_INT_M_RCV_DATA_ENB		0x40000000
+#define PI_HOST_INT_M_SMT_HOST_ENB		0x10000000	/* Type 1 Enables */
 #define PI_HOST_INT_M_UNSOL_ENB			0x20000000
 #define PI_HOST_INT_M_CMD_RSP_ENB		0x08000000
 #define PI_HOST_INT_M_CMD_REQ_ENB		0x04000000
@@ -1301,8 +1301,8 @@ typedef struct
 #define PI_HOST_INT_M_BUS_PAR_ERR		0x00000001
 
 #define PI_HOST_INT_V_XMT_DATA_ENB		31			/* Type 2 Enables */
-#define PI_HOST_INT_V_RCV_DATA_ENB		30  
-#define PI_HOST_INT_V_SMT_HOST_ENB		29			/* Type 1 Enables */ 
+#define PI_HOST_INT_V_RCV_DATA_ENB		30
+#define PI_HOST_INT_V_SMT_HOST_ENB		29			/* Type 1 Enables */
 #define PI_HOST_INT_V_UNSOL_ENB			28
 #define PI_HOST_INT_V_CMD_RSP_ENB		27
 #define PI_HOST_INT_V_CMD_REQ_ENB		26
@@ -1333,8 +1333,8 @@ typedef struct
 #define PI_TYPE_0_STAT_M_PM_PAR_ERR		0x00000002
 #define PI_TYPE_0_STAT_M_BUS_PAR_ERR	0x00000001
 
-#define PI_TYPE_0_STAT_V_1MS			7			
-#define PI_TYPE_0_STAT_V_20MS			6	
+#define PI_TYPE_0_STAT_V_1MS			7
+#define PI_TYPE_0_STAT_V_20MS			6
 #define PI_TYPE_0_STAT_V_CSR_CMD_DONE	5
 #define PI_TYPE_0_STAT_V_STATE_CHANGE	4
 #define PI_TYPE_0_STAT_V_XMT_FLUSH		3
@@ -1692,7 +1692,7 @@ typedef struct DFX_board_tag
 	{
 	/* Keep virtual and physical pointers to locked, physically contiguous memory */
 
-	char				*kmalloced;					/* pci_free_consistent this on unload */ 
+	char				*kmalloced;					/* pci_free_consistent this on unload */
 	dma_addr_t			kmalloced_dma;
 	/* DMA handle for the above */
 	PI_DESCR_BLOCK			*descr_block_virt;				/* PDQ descriptor block virt address */
@@ -1739,9 +1739,9 @@ typedef struct DFX_board_tag
 	/* Store pointers to transmit buffers for transmit completion code */
 
 	XMT_DRIVER_DESCR		xmt_drv_descr_blk[PI_XMT_DATA_K_NUM_ENTRIES];
-	
+
 	/* Transmit spinlocks */
-	
+
 	spinlock_t			lock;
 
 	/* Store device, bus-specific, and parameter information for this adapter */

+ 55 - 55
drivers/net/depca.c

@@ -4,9 +4,9 @@
 
 
                       Copyright 1994 David C. Davies
-		                   and 
+		                   and
 			 United States Government
-	 (as represented by the Director, National Security Agency).  
+	 (as represented by the Director, National Security Agency).
 
                Copyright 1995  Digital Equipment Corporation.
 
@@ -61,7 +61,7 @@
        Digital Equipment Corporation, 1989
     8) "DEC EtherWORKS Turbo_(TP BNC) Ethernet Controller Owners Manual",
        Digital Equipment corporation, 1991, Pub. #EK-DE202-OM.001
-    
+
 
     Peter Bauer's depca.c (V0.5) was referred to when debugging V0.1 of this
     driver.
@@ -135,20 +135,20 @@
        [Alan Cox: Changed the code to allow command line irq/io assignments]
        [Dave Davies: Changed the code to allow command line mem/name
                                                                 assignments]
-    6) run the net startup bits for your eth?? interface manually 
-    (usually /etc/rc.inet[12] at boot time). 
+    6) run the net startup bits for your eth?? interface manually
+    (usually /etc/rc.inet[12] at boot time).
     7) enjoy!
 
     Note that autoprobing is not allowed in loadable modules - the system is
     already up and running and you're messing with interrupts.
 
-    To unload a module, turn off the associated interface 
+    To unload a module, turn off the associated interface
     'ifconfig eth?? down' then 'rmmod depca'.
 
     To assign a base memory address for the shared memory  when running as a
     loadable module, see 5 above.  To include the adapter  name (if you have
     no PROM  but know the card name)  also see 5  above. Note that this last
-    option  will not work  with kernel  built-in  depca's. 
+    option  will not work  with kernel  built-in  depca's.
 
     The shared memory assignment for a loadable module  makes sense to avoid
     the 'memory autoprobe' picking the wrong shared memory  (for the case of
@@ -157,7 +157,7 @@
     ************************************************************************
     Support for MCA EtherWORKS cards added 11-3-98.
     Verified to work with up to 2 DE212 cards in a system (although not
-      fully stress-tested).  
+      fully stress-tested).
 
     Currently known bugs/limitations:
 
@@ -176,7 +176,7 @@
     ----------------
 
     Version   Date        Description
-  
+
       0.1     25-jan-94   Initial writing.
       0.2     27-jan-94   Added LANCE TX hardware buffer chaining.
       0.3      1-feb-94   Added multiple DEPCA support.
@@ -190,7 +190,7 @@
       0.351   30-apr-94   Added EISA support. Added DE422 recognition.
       0.36    16-may-94   DE422 fix released.
       0.37    22-jul-94   Added MODULE support
-      0.38    15-aug-94   Added DBR ROM switch in depca_close(). 
+      0.38    15-aug-94   Added DBR ROM switch in depca_close().
                           Multi DEPCA bug fix.
       0.38axp 15-sep-94   Special version for Alpha AXP Linux V1.0.
       0.381   12-dec-94   Added DE101 recognition, fix multicast bug.
@@ -198,17 +198,17 @@
       0.383   22-feb-95   Fix for conflict with VESA SCSI reported by
                           <stromain@alf.dec.com>
       0.384   17-mar-95   Fix a ring full bug reported by <bkm@star.rl.ac.uk>
-      0.385    3-apr-95   Fix a recognition bug reported by 
+      0.385    3-apr-95   Fix a recognition bug reported by
                                                 <ryan.niemi@lastfrontier.com>
       0.386   21-apr-95   Fix the last fix...sorry, must be galloping senility
       0.40    25-May-95   Rewrite for portability & updated.
                           ALPHA support from <jestabro@amt.tay1.dec.com>
       0.41    26-Jun-95   Added verify_area() calls in depca_ioctl() from
                           suggestion by <heiko@colossus.escape.de>
-      0.42    27-Dec-95   Add 'mem' shared memory assignment for loadable 
+      0.42    27-Dec-95   Add 'mem' shared memory assignment for loadable
                           modules.
                           Add 'adapter_name' for loadable modules when no PROM.
-			  Both above from a suggestion by 
+			  Both above from a suggestion by
 			  <pchen@woodruffs121.residence.gatech.edu>.
 			  Add new multicasting code.
       0.421   22-Apr-96	  Fix alloc_device() bug <jari@markkus2.fimr.fi>
@@ -218,7 +218,7 @@
       0.44     1-Sep-97   Fix *_probe() to test check_region() first - bug
                            reported by <mmogilvi@elbert.uccs.edu>
       0.45     3-Nov-98   Added support for MCA EtherWORKS (DE210/DE212) cards
-                           by <tymm@computer.org> 
+                           by <tymm@computer.org>
       0.451    5-Nov-98   Fixed mca stuff cuz I'm a dummy. <tymm@computer.org>
       0.5     14-Nov-98   Re-spin for 2.1.x kernels.
       0.51    27-Jun-99   Correct received packet length for CRC from
@@ -411,7 +411,7 @@ static struct platform_driver depca_isa_driver = {
 		.name   = depca_string,
 	},
 };
-	
+
 /*
 ** Miscellaneous info...
 */
@@ -421,14 +421,14 @@ static struct platform_driver depca_isa_driver = {
 ** Memory Alignment. Each descriptor is 4 longwords long. To force a
 ** particular alignment on the TX descriptor, adjust DESC_SKIP_LEN and
 ** DESC_ALIGN. DEPCA_ALIGN aligns the start address of the private memory area
-** and hence the RX descriptor ring's first entry. 
+** and hence the RX descriptor ring's first entry.
 */
 #define DEPCA_ALIGN4      ((u_long)4 - 1)	/* 1 longword align */
 #define DEPCA_ALIGN8      ((u_long)8 - 1)	/* 2 longword (quadword) align */
 #define DEPCA_ALIGN         DEPCA_ALIGN8	/* Keep the LANCE happy... */
 
 /*
-** The DEPCA Rx and Tx ring descriptors. 
+** The DEPCA Rx and Tx ring descriptors.
 */
 struct depca_rx_desc {
 	volatile s32 base;
@@ -591,7 +591,7 @@ static int __init depca_hw_init (struct net_device *dev, struct device *device)
 	 */
 
 	ioaddr = dev->base_addr;
-	
+
 	STOP_DEPCA;
 
 	nicsr = inb(DEPCA_NICSR);
@@ -610,7 +610,7 @@ static int __init depca_hw_init (struct net_device *dev, struct device *device)
 
 	printk ("%s: %s at 0x%04lx",
 	        device->bus_id, depca_signature[lp->adapter], ioaddr);
-	
+
 	switch (lp->depca_bus) {
 #ifdef CONFIG_MCA
 	case DEPCA_BUS_MCA:
@@ -657,7 +657,7 @@ static int __init depca_hw_init (struct net_device *dev, struct device *device)
 		if (lp->depca_bus != DEPCA_BUS_MCA)
 			mem_start += 0x8000;
 	}
-	
+
 	if ((mem_len = (NUM_RX_DESC * (sizeof(struct depca_rx_desc) + RX_BUFF_SZ) + NUM_TX_DESC * (sizeof(struct depca_tx_desc) + TX_BUFF_SZ) + sizeof(struct depca_init)))
 	    > (netRAM << 10)) {
 		printk(",\n       requests %dkB RAM: only %dkB is available!\n", (mem_len >> 10), netRAM);
@@ -682,7 +682,7 @@ static int __init depca_hw_init (struct net_device *dev, struct device *device)
 		printk(KERN_ERR "depca: cannot request ISA memory, aborting\n");
 		goto out_priv;
 	}
-		
+
 	status = -EIO;
 	lp->sh_mem = ioremap(mem_start, mem_len);
 	if (lp->sh_mem == NULL) {
@@ -811,7 +811,7 @@ static int __init depca_hw_init (struct net_device *dev, struct device *device)
 
 	device->driver_data = dev;
 	SET_NETDEV_DEV (dev, device);
-	
+
 	status = register_netdev(dev);
 	if (status == 0)
 		return 0;
@@ -822,7 +822,7 @@ out1:
 out_priv:
 	return status;
 }
-
+
 
 static int depca_open(struct net_device *dev)
 {
@@ -924,8 +924,8 @@ static void depca_tx_timeout(struct net_device *dev)
 }
 
 
-/* 
-** Writes a socket buffer to TX descriptor ring and starts transmission 
+/*
+** Writes a socket buffer to TX descriptor ring and starts transmission
 */
 static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
@@ -939,7 +939,7 @@ static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 	if (skb_padto(skb, ETH_ZLEN))
 		goto out;
-	
+
 	netif_stop_queue(dev);
 
 	if (TX_BUFFS_AVAIL) {	/* Fill in a Tx ring entry */
@@ -963,7 +963,7 @@ static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev)
 }
 
 /*
-** The DEPCA interrupt handler. 
+** The DEPCA interrupt handler.
 */
 static irqreturn_t depca_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
@@ -1053,8 +1053,8 @@ static int depca_rx(struct net_device *dev)
 						memcpy_fromio(buf, lp->rx_buff[lp->rx_old], pkt_len);
 					}
 
-					/* 
-					   ** Notify the upper protocol layers that there is another 
+					/*
+					   ** Notify the upper protocol layers that there is another
 					   ** packet to handle
 					 */
 					skb->protocol = eth_type_trans(skb, dev);
@@ -1167,9 +1167,9 @@ static int depca_close(struct net_device *dev)
 		printk("%s: Shutting down ethercard, status was %2.2x.\n", dev->name, inw(DEPCA_DATA));
 	}
 
-	/* 
+	/*
 	   ** We stop the DEPCA here -- it occasionally polls
-	   ** memory if we don't. 
+	   ** memory if we don't.
 	 */
 	outw(STOP, DEPCA_DATA);
 
@@ -1320,12 +1320,12 @@ static void SetMulticastFilter(struct net_device *dev)
 static int __init depca_common_init (u_long ioaddr, struct net_device **devp)
 {
 	int status = 0;
-	
+
 	if (!request_region (ioaddr, DEPCA_TOTAL_SIZE, depca_string)) {
 		status = -EBUSY;
 		goto out;
 	}
-	
+
 	if (DevicePresent(ioaddr)) {
 		status = -ENODEV;
 		goto out_release;
@@ -1337,7 +1337,7 @@ static int __init depca_common_init (u_long ioaddr, struct net_device **devp)
 	}
 
 	return 0;
-	
+
  out_release:
 	release_region (ioaddr, DEPCA_TOTAL_SIZE);
  out:
@@ -1359,16 +1359,16 @@ static int __init depca_mca_probe(struct device *device)
 	struct depca_private *lp;
 
 	/*
-	** Search for the adapter.  If an address has been given, search 
+	** Search for the adapter.  If an address has been given, search
 	** specifically for the card at that address.  Otherwise find the
 	** first card in the system.
 	*/
-	
+
 	pos[0] = mca_device_read_stored_pos(mdev, 2);
 	pos[1] = mca_device_read_stored_pos(mdev, 3);
 
 	/*
-	** IO of card is handled by bits 1 and 2 of pos0.    
+	** IO of card is handled by bits 1 and 2 of pos0.
 	**
 	**    bit2 bit1    IO
 	**       0    0    0x2c00
@@ -1381,12 +1381,12 @@ static int __init depca_mca_probe(struct device *device)
 
 	/*
 	** Found the adapter we were looking for. Now start setting it up.
-	** 
+	**
 	** First work on decoding the IRQ.  It's stored in the lower 4 bits
 	** of pos1.  Bits are as follows (from the ADF file):
 	**
-	**      Bits           
-	**   3   2   1   0    IRQ 
+	**      Bits
+	**   3   2   1   0    IRQ
 	**   --------------------
 	**   0   0   1   0     5
 	**   0   0   0   1     9
@@ -1435,7 +1435,7 @@ static int __init depca_mca_probe(struct device *device)
 	strncpy(mdev->name, depca_mca_adapter_name[mdev->index],
 		sizeof(mdev->name));
 	mca_device_set_claim(mdev, 1);
-	
+
         /*
 	** Get everything allocated and initialized...  (almost just
 	** like the ISA and EISA probes)
@@ -1452,10 +1452,10 @@ static int __init depca_mca_probe(struct device *device)
 	lp->depca_bus = DEPCA_BUS_MCA;
 	lp->adapter = depca_mca_adapter_type[mdev->index];
 	lp->mem_start = mem_start;
-	
+
 	if ((err = depca_hw_init(dev, device)))
 		goto out_free;
-			
+
 	return 0;
 
  out_free:
@@ -1479,7 +1479,7 @@ static void __init depca_platform_probe (void)
 
 	for (i = 0; depca_io_ports[i].iobase; i++) {
 		depca_io_ports[i].device = NULL;
-		
+
 		/* if an address has been specified on the command
 		 * line, use it (if valid) */
 		if (io && io != depca_io_ports[i].iobase)
@@ -1503,7 +1503,7 @@ static void __init depca_platform_probe (void)
 		 * no hardware at this address. Unregister it, as the
 		 * release fuction will take care of freeing the
 		 * allocated structure */
-			
+
 			depca_io_ports[i].device = NULL;
 			pldev->dev.platform_data = NULL;
 			platform_device_unregister (pldev);
@@ -1541,7 +1541,7 @@ static int __init depca_isa_probe (struct platform_device *device)
 		goto out;
 
 	adapter = depca_shmem_probe (&mem_start);
-	
+
 	if (adapter == unknown) {
 		status = -ENODEV;
 		goto out_free;
@@ -1554,10 +1554,10 @@ static int __init depca_isa_probe (struct platform_device *device)
 	lp->depca_bus = DEPCA_BUS_ISA;
 	lp->adapter = adapter;
 	lp->mem_start = mem_start;
-	
+
 	if ((status = depca_hw_init(dev, &device->dev)))
 		goto out_free;
-	
+
 	return 0;
 
  out_free:
@@ -1591,7 +1591,7 @@ static int __init depca_eisa_probe (struct device *device)
 	 * it's address with the ethernet prom)... As we don't parse
 	 * the EISA configuration structures (yet... :-), just rely on
 	 * the ISA probing to sort it out... */
-	
+
 	depca_shmem_probe (&mem_start);
 
 	dev->base_addr = ioaddr;
@@ -1600,10 +1600,10 @@ static int __init depca_eisa_probe (struct device *device)
 	lp->depca_bus = DEPCA_BUS_EISA;
 	lp->adapter = edev->id.driver_data;
 	lp->mem_start = mem_start;
-	
+
 	if ((status = depca_hw_init(dev, device)))
 		goto out_free;
-	
+
 	return 0;
 
  out_free:
@@ -1650,7 +1650,7 @@ static int __init DepcaSignature(char *name, u_long base_addr)
 	 * used, at least on x86. Instead, reserve a memory region a
 	 * board would certainly use. If it works, go ahead. If not,
 	 * run like hell... */
-	
+
 	if (!request_mem_region (mem_addr, 16, depca_string))
 		return unknown;
 
@@ -1699,7 +1699,7 @@ static int __init DepcaSignature(char *name, u_long base_addr)
 ** if the first address octet is a 0x08 - this minimises the chances of
 ** messing around with some other hardware, but it assumes that this DEPCA
 ** card initialized itself correctly.
-** 
+**
 ** Search the Ethernet address ROM for the signature. Since the ROM address
 ** counter can start at an arbitrary point, the search must include the entire
 ** probe sequence length plus the (length_of_the_signature - 1).
@@ -1804,7 +1804,7 @@ static int load_packet(struct net_device *dev, struct sk_buff *skb)
 	entry = lp->tx_new;	/* Ring around buffer number. */
 	end = (entry + (skb->len - 1) / TX_BUFF_SZ) & lp->txRingMask;
 	if (!(readl(&lp->tx_ring[end].base) & T_OWN)) {	/* Enough room? */
-		/* 
+		/*
 		   ** Caution: the write order is important here... don't set up the
 		   ** ownership rights until all the other information is in place.
 		 */
@@ -2086,7 +2086,7 @@ static int __init depca_module_init (void)
 #endif
 	err |= platform_driver_register (&depca_isa_driver);
 	depca_platform_probe ();
-	
+
         return err;
 }
 

+ 14 - 14
drivers/net/depca.h

@@ -20,17 +20,17 @@
 #define DEPCA_RBSA  ioaddr+0x0e   /* RAM buffer starting address (2k buff.) */
 
 /*
-** These are LANCE registers addressable through DEPCA_ADDR 
+** These are LANCE registers addressable through DEPCA_ADDR
 */
 #define CSR0       0
 #define CSR1       1
 #define CSR2       2
 #define CSR3       3
 
-/* 
-** NETWORK INTERFACE CSR (NI_CSR) bit definitions 
+/*
+** NETWORK INTERFACE CSR (NI_CSR) bit definitions
 */
- 
+
 #define TO       	0x0100	/* Time Out for remote boot */
 #define SHE      	0x0080  /* SHadow memory Enable */
 #define BS       	0x0040  /* Bank Select */
@@ -42,8 +42,8 @@
 #define IEN      	0x0002	/* Interrupt tristate ENable (1->enable) */
 #define LED      	0x0001	/* LED control */
 
-/* 
-** Control and Status Register 0 (CSR0) bit definitions 
+/*
+** Control and Status Register 0 (CSR0) bit definitions
 */
 
 #define ERR     	0x8000 	/* Error summary */
@@ -74,7 +74,7 @@
 #define BCON    	0x0001	/* Byte CONtrol */
 
 /*
-** Initialization Block Mode Register 
+** Initialization Block Mode Register
 */
 
 #define PROM       	0x8000 	/* Promiscuous Mode */
@@ -88,7 +88,7 @@
 #define DRX        	0x0001 	/* Disable the Receiver */
 
 /*
-** Receive Message Descriptor 1 (RMD1) bit definitions. 
+** Receive Message Descriptor 1 (RMD1) bit definitions.
 */
 
 #define R_OWN       0x80000000 	/* Owner bit 0 = host, 1 = lance */
@@ -101,7 +101,7 @@
 #define R_ENP     	0x0100 	/* End of Packet */
 
 /*
-** Transmit Message Descriptor 1 (TMD1) bit definitions. 
+** Transmit Message Descriptor 1 (TMD1) bit definitions.
 */
 
 #define T_OWN       0x80000000 	/* Owner bit 0 = host, 1 = lance */
@@ -125,10 +125,10 @@
 #define TMD3_LCAR    0x0800	/* Loss of CARrier */
 #define TMD3_RTRY    0x0400	/* ReTRY error */
 
-/* 
-** EISA configuration Register (CNFG) bit definitions 
+/*
+** EISA configuration Register (CNFG) bit definitions
 */
- 
+
 #define TIMEOUT       	0x0100	/* 0:2.5 mins, 1: 30 secs */
 #define REMOTE      	0x0080  /* Remote Boot Enable -> 1 */
 #define IRQ11       	0x0040  /* Enable -> 1 */
@@ -165,8 +165,8 @@ struct depca_ioctl {
 	unsigned char  __user *data;       /* Pointer to the data buffer */
 };
 
-/* 
-** Recognised commands for the driver 
+/*
+** Recognised commands for the driver
 */
 #define DEPCA_GET_HWADDR	0x01 /* Get the hardware address */
 #define DEPCA_SET_HWADDR	0x02 /* Get the hardware address */

+ 13 - 13
drivers/net/dgrs.c

@@ -874,7 +874,7 @@ static int dgrs_ioctl(struct net_device *devN, struct ifreq *ifr, int cmd)
 			privN->bcomm->bc_filter_port = ioc.port;
 			privN->bcomm->bc_filter_num = ioc.filter;
 			privN->bcomm->bc_filter_len = ioc.len;
-	
+
 			if (ioc.len)
 			{
 				if(copy_from_user(S2HN(privN->bcomm->bc_filter_area),
@@ -986,7 +986,7 @@ ack_intr:
 /*
  *	Download the board firmware
  */
-static int __init 
+static int __init
 dgrs_download(struct net_device *dev0)
 {
 	DGRS_PRIV	*priv0 = (DGRS_PRIV *) dev0->priv;
@@ -1150,7 +1150,7 @@ dgrs_download(struct net_device *dev0)
 /*
  *	Probe (init) a board
  */
-static int __init 
+static int __init
 dgrs_probe1(struct net_device *dev)
 {
 	DGRS_PRIV	*priv = (DGRS_PRIV *) dev->priv;
@@ -1190,7 +1190,7 @@ dgrs_probe1(struct net_device *dev)
 	 */
 	if (priv->plxreg)
 		OUTL(dev->base_addr + PLX_LCL2PCI_DOORBELL, 1);
-	
+
 	rc = request_irq(dev->irq, &dgrs_intr, IRQF_SHARED, "RightSwitch", dev);
 	if (rc)
 		goto err_out;
@@ -1228,7 +1228,7 @@ err_out:
        	return rc;
 }
 
-static int __init 
+static int __init
 dgrs_initclone(struct net_device *dev)
 {
 	DGRS_PRIV	*priv = (DGRS_PRIV *) dev->priv;
@@ -1243,7 +1243,7 @@ dgrs_initclone(struct net_device *dev)
 	return (0);
 }
 
-static struct net_device * __init 
+static struct net_device * __init
 dgrs_found_device(
 	int		io,
 	ulong		mem,
@@ -1276,9 +1276,9 @@ dgrs_found_device(
 
 	SET_MODULE_OWNER(dev);
 	SET_NETDEV_DEV(dev, pdev);
-	
+
 	ret = dgrs_probe1(dev);
-	if (ret) 
+	if (ret)
 		goto err1;
 
 	ret = register_netdev(dev);
@@ -1301,7 +1301,7 @@ dgrs_found_device(
 			/* Allocate new dev and priv structures */
 		devN = alloc_etherdev(sizeof(DGRS_PRIV));
 		ret = -ENOMEM;
-		if (!devN) 
+		if (!devN)
 			goto fail;
 
 		/* Don't copy the network device structure! */
@@ -1335,7 +1335,7 @@ dgrs_found_device(
 	}
 	return dev;
 
- fail:	
+ fail:
 	while (i >= 0) {
 		struct net_device *d = priv->devtbl[i--];
 		unregister_netdev(d);
@@ -1480,7 +1480,7 @@ static int __init dgrs_eisa_probe (struct device *gendev)
 		return -EBUSY;
 	}
 
-	if ( ! (inb(io+ES4H_EC) & ES4H_EC_ENABLE) ) 
+	if ( ! (inb(io+ES4H_EC) & ES4H_EC_ENABLE) )
 		goto err_out;
 
 	mem = (inb(io+ES4H_AS_31_24) << 24)
@@ -1504,11 +1504,11 @@ static int __init dgrs_eisa_probe (struct device *gendev)
 static int __devexit dgrs_eisa_remove(struct device *gendev)
 {
 	struct net_device *dev = gendev->driver_data;
-	
+
 	dgrs_remove(dev);
 
 	release_region(dev->base_addr, 256);
-		
+
 	free_netdev(dev);
 	return 0;
 }

+ 2 - 2
drivers/net/dgrs.h

@@ -31,8 +31,8 @@ typedef struct dgrs_ioctl {
 	unsigned short	filter;	/* filter number for command, if needed */
 } DGRS_IOCTL;
 
-/* 
- *	Commands for the driver 
+/*
+ *	Commands for the driver
  */
 #define	DGRS_GETMEM		0x01	/* Get the dual port memory address */
 #define	DGRS_SETFILTER		0x02	/* Set a filter */

+ 1 - 1
drivers/net/dgrs_asstruct.h

@@ -19,7 +19,7 @@
 #	define	S1(t,x)		_Off=(_Off+0)&~0; x=_Off; _Off=_Off+1
 #	define	S2(t,x)		_Off=(_Off+1)&~1; x=_Off; _Off=_Off+2
 #	define	S4(t,x)		_Off=(_Off+3)&~3; x=_Off; _Off=_Off+4
-#	define	END_STRUCT(x)	_Off=(_Off+3)&~3; x=_Off 
+#	define	END_STRUCT(x)	_Off=(_Off+3)&~3; x=_Off
 
 #else	/* C */
 

+ 1 - 1
drivers/net/dgrs_bcomm.h

@@ -27,7 +27,7 @@
  *	bc_nowait
  *	bc_hostarea_len
  *	bc_filter_len
- *			
+ *
  */
 BEGIN_STRUCT(bios_comm)
 	S4(ulong, bc_intflag)	/* Count of all interrupts */

+ 2 - 2
drivers/net/dgrs_ether.h

@@ -49,7 +49,7 @@ typedef struct
 	int		buf_cnt;	/* Total RBD's allocated */
 
 	/* Rx Statistics */
-	ulong		cnt_rx_cnt;	/* Total packets rcvd, good and bad */ 
+	ulong		cnt_rx_cnt;	/* Total packets rcvd, good and bad */
 	ulong		cnt_rx_good;	/* Total good packets rcvd */
 	ulong		cnt_rx_bad;	/* Total of all bad packets rcvd */
 					/* Subtotals can be gotten from SCB */
@@ -94,7 +94,7 @@ typedef struct
 	 *	Filter 0: input filter
 	 *	Filter 1: output filter
 	 */
-	
+
 	ulong		*filter_space[NFILTERS];
 	FILTER_FUNC	*filter_func[NFILTERS];
 	ulong		filter_cnt[NFILTERS];

+ 1 - 1
drivers/net/dgrs_i82596.h

@@ -455,7 +455,7 @@ typedef volatile struct
 /************************************************************************/
 typedef volatile struct
 {
-	ulong		sysbus;	
+	ulong		sysbus;
 	ulong		dummy;
 	I596_ISCP	*iscpp;
 } I596_SCP;

+ 82 - 82
drivers/net/dl2k.c

@@ -17,7 +17,7 @@
 #include <linux/dma-mapping.h>
 
 static char version[] __devinitdata =
-      KERN_INFO DRV_NAME " " DRV_VERSION " " DRV_RELDATE "\n";	
+      KERN_INFO DRV_NAME " " DRV_VERSION " " DRV_RELDATE "\n";
 #define MAX_UNITS 8
 static int mtu[MAX_UNITS];
 static int vlan[MAX_UNITS];
@@ -83,7 +83,7 @@ static int mii_read (struct net_device *dev, int phy_addr, int reg_num);
 static int mii_write (struct net_device *dev, int phy_addr, int reg_num,
 		      u16 data);
 
-static struct ethtool_ops ethtool_ops;
+static const struct ethtool_ops ethtool_ops;
 
 static int __devinit
 rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent)
@@ -144,9 +144,9 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent)
 		if (media[card_idx] != NULL) {
 			np->an_enable = 0;
 			if (strcmp (media[card_idx], "auto") == 0 ||
-			    strcmp (media[card_idx], "autosense") == 0 || 
+			    strcmp (media[card_idx], "autosense") == 0 ||
 			    strcmp (media[card_idx], "0") == 0 ) {
-				np->an_enable = 2; 
+				np->an_enable = 2;
 			} else if (strcmp (media[card_idx], "100mbps_fd") == 0 ||
 			    strcmp (media[card_idx], "4") == 0) {
 				np->speed = 100;
@@ -232,7 +232,7 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent)
 	err = find_miiphy (dev);
 	if (err)
 		goto err_out_unmap_rx;
-	
+
 	/* Fiber device? */
 	np->phy_media = (readw(ioaddr + ASICCtrl) & PhyMedia) ? 1 : 0;
 	np->link_status = 0;
@@ -263,11 +263,11 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent)
 		dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2],
 		dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5], irq);
 	if (tx_coalesce > 1)
-		printk(KERN_INFO "tx_coalesce:\t%d packets\n", 
+		printk(KERN_INFO "tx_coalesce:\t%d packets\n",
 				tx_coalesce);
 	if (np->coalesce)
 		printk(KERN_INFO "rx_coalesce:\t%d packets\n"
-		       KERN_INFO "rx_timeout: \t%d ns\n", 
+		       KERN_INFO "rx_timeout: \t%d ns\n",
 				np->rx_coalesce, np->rx_timeout*640);
 	if (np->vlan)
 		printk(KERN_INFO "vlan(id):\t%d\n", np->vlan);
@@ -339,7 +339,7 @@ parse_eeprom (struct net_device *dev)
 	}
 #ifdef	MEM_MAPPING
 	ioaddr = dev->base_addr;
-#endif	
+#endif
 	/* Check CRC */
 	crc = ~ether_crc_le (256 - 4, sromdata);
 	if (psrom->crc != crc) {
@@ -400,16 +400,16 @@ rio_open (struct net_device *dev)
 	long ioaddr = dev->base_addr;
 	int i;
 	u16 macctrl;
-	
+
 	i = request_irq (dev->irq, &rio_interrupt, IRQF_SHARED, dev->name, dev);
 	if (i)
 		return i;
-	
+
 	/* Reset all logic functions */
 	writew (GlobalReset | DMAReset | FIFOReset | NetworkReset | HostReset,
 		ioaddr + ASICCtrl + 2);
 	mdelay(10);
-	
+
 	/* DebugCtrl bit 4, 5, 9 must set */
 	writel (readl (ioaddr + DebugCtrl) | 0x0230, ioaddr + DebugCtrl);
 
@@ -440,7 +440,7 @@ rio_open (struct net_device *dev)
 	/* VLAN supported */
 	if (np->vlan) {
 		/* priority field in RxDMAIntCtrl  */
-		writel (readl(ioaddr + RxDMAIntCtrl) | 0x7 << 10, 
+		writel (readl(ioaddr + RxDMAIntCtrl) | 0x7 << 10,
 			ioaddr + RxDMAIntCtrl);
 		/* VLANId */
 		writew (np->vlan, ioaddr + VLANId);
@@ -459,9 +459,9 @@ rio_open (struct net_device *dev)
 	add_timer (&np->timer);
 
 	/* Start Tx/Rx */
-	writel (readl (ioaddr + MACCtrl) | StatsEnable | RxEnable | TxEnable, 
+	writel (readl (ioaddr + MACCtrl) | StatsEnable | RxEnable | TxEnable,
 			ioaddr + MACCtrl);
-	
+
 	macctrl = 0;
 	macctrl |= (np->vlan) ? AutoVLANuntagging : 0;
 	macctrl |= (np->full_duplex) ? DuplexSelect : 0;
@@ -470,13 +470,13 @@ rio_open (struct net_device *dev)
 	writew(macctrl,	ioaddr + MACCtrl);
 
 	netif_start_queue (dev);
-	
+
 	/* Enable default interrupts */
 	EnableInt ();
 	return 0;
 }
 
-static void 
+static void
 rio_timer (unsigned long data)
 {
 	struct net_device *dev = (struct net_device *)data;
@@ -521,7 +521,7 @@ rio_timer (unsigned long data)
 	np->timer.expires = jiffies + next_tick;
 	add_timer(&np->timer);
 }
-	
+
 static void
 rio_tx_timeout (struct net_device *dev)
 {
@@ -632,12 +632,12 @@ start_xmit (struct sk_buff *skb, struct net_device *dev)
 	 * Work around: Always use 1 descriptor in 10Mbps mode */
 	if (entry % np->tx_coalesce == 0 || np->speed == 10)
 		txdesc->status = cpu_to_le64 (entry | tfc_vlan_tag |
-					      WordAlignDisable | 
+					      WordAlignDisable |
 					      TxDMAIndicate |
 					      (1 << FragCountShift));
 	else
 		txdesc->status = cpu_to_le64 (entry | tfc_vlan_tag |
-					      WordAlignDisable | 
+					      WordAlignDisable |
 					      (1 << FragCountShift));
 
 	/* TxDMAPollNow */
@@ -658,7 +658,7 @@ start_xmit (struct sk_buff *skb, struct net_device *dev)
 			dev->base_addr + TFDListPtr0);
 		writel (0, dev->base_addr + TFDListPtr1);
 	}
-	
+
 	/* NETDEV WATCHDOG timer */
 	dev->trans_start = jiffies;
 	return 0;
@@ -677,7 +677,7 @@ rio_interrupt (int irq, void *dev_instance, struct pt_regs *rgs)
 	ioaddr = dev->base_addr;
 	np = netdev_priv(dev);
 	while (1) {
-		int_status = readw (ioaddr + IntStatus); 
+		int_status = readw (ioaddr + IntStatus);
 		writew (int_status, ioaddr + IntStatus);
 		int_status &= DEFAULT_INTR;
 		if (int_status == 0 || --cnt < 0)
@@ -693,7 +693,7 @@ rio_interrupt (int irq, void *dev_instance, struct pt_regs *rgs)
 			if (tx_status & 0x01)
 				tx_error (dev, tx_status);
 			/* Free used tx skbuffs */
-			rio_free_tx (dev, 1);		
+			rio_free_tx (dev, 1);
 		}
 
 		/* Handle uncommon events */
@@ -706,19 +706,19 @@ rio_interrupt (int irq, void *dev_instance, struct pt_regs *rgs)
 	return IRQ_RETVAL(handled);
 }
 
-static void 
-rio_free_tx (struct net_device *dev, int irq) 
+static void
+rio_free_tx (struct net_device *dev, int irq)
 {
 	struct netdev_private *np = netdev_priv(dev);
 	int entry = np->old_tx % TX_RING_SIZE;
 	int tx_use = 0;
 	unsigned long flag = 0;
-	
+
 	if (irq)
 		spin_lock(&np->tx_lock);
 	else
 		spin_lock_irqsave(&np->tx_lock, flag);
-			
+
 	/* Free used tx skbuffs */
 	while (entry != np->cur_tx) {
 		struct sk_buff *skb;
@@ -744,11 +744,11 @@ rio_free_tx (struct net_device *dev, int irq)
 		spin_unlock_irqrestore(&np->tx_lock, flag);
 	np->old_tx = entry;
 
-	/* If the ring is no longer full, clear tx_full and 
+	/* If the ring is no longer full, clear tx_full and
 	   call netif_wake_queue() */
 
 	if (netif_queue_stopped(dev) &&
-	    ((np->cur_tx - np->old_tx + TX_RING_SIZE) % TX_RING_SIZE 
+	    ((np->cur_tx - np->old_tx + TX_RING_SIZE) % TX_RING_SIZE
 	    < TX_QUEUE_LEN - 1 || np->speed == 10)) {
 		netif_wake_queue (dev);
 	}
@@ -805,11 +805,11 @@ tx_error (struct net_device *dev, int tx_status)
 		/* Let TxStartThresh stay default value */
 	}
 	/* Maximum Collisions */
-#ifdef ETHER_STATS	
-	if (tx_status & 0x08) 
+#ifdef ETHER_STATS
+	if (tx_status & 0x08)
 		np->stats.collisions16++;
 #else
-	if (tx_status & 0x08) 
+	if (tx_status & 0x08)
 		np->stats.collisions++;
 #endif
 	/* Restart the Tx */
@@ -862,7 +862,7 @@ receive_packet (struct net_device *dev)
 				np->rx_skbuff[entry] = NULL;
 			} else if ((skb = dev_alloc_skb (pkt_len + 2)) != NULL) {
 				pci_dma_sync_single_for_cpu(np->pdev,
-				  			    desc->fraginfo & 
+				  			    desc->fraginfo &
 							    	DMA_48BIT_MASK,
 							    np->rx_buf_sz,
 							    PCI_DMA_FROMDEVICE);
@@ -880,12 +880,12 @@ receive_packet (struct net_device *dev)
 							       PCI_DMA_FROMDEVICE);
 			}
 			skb->protocol = eth_type_trans (skb, dev);
-#if 0			
+#if 0
 			/* Checksum done by hw, but csum value unavailable. */
-			if (np->pci_rev_id >= 0x0c && 
+			if (np->pci_rev_id >= 0x0c &&
 				!(frame_status & (TCPError | UDPError | IPError))) {
 				skb->ip_summed = CHECKSUM_UNNECESSARY;
-			} 
+			}
 #endif
 			netif_rx (skb);
 			dev->last_rx = jiffies;
@@ -945,14 +945,14 @@ rio_error (struct net_device *dev, int int_status)
 				mii_get_media (dev);
 			if (np->speed == 1000)
 				np->tx_coalesce = tx_coalesce;
-			else 
+			else
 				np->tx_coalesce = 1;
 			macctrl = 0;
 			macctrl |= (np->vlan) ? AutoVLANuntagging : 0;
 			macctrl |= (np->full_duplex) ? DuplexSelect : 0;
-			macctrl |= (np->tx_flow) ? 
+			macctrl |= (np->tx_flow) ?
 				TxFlowControlEnable : 0;
-			macctrl |= (np->rx_flow) ? 
+			macctrl |= (np->rx_flow) ?
 				RxFlowControlEnable : 0;
 			writew(macctrl,	ioaddr + MACCtrl);
 			np->link_status = 1;
@@ -969,7 +969,7 @@ rio_error (struct net_device *dev, int int_status)
 		get_stats (dev);
 	}
 
-	/* PCI Error, a catastronphic error related to the bus interface 
+	/* PCI Error, a catastronphic error related to the bus interface
 	   occurs, set GlobalReset and HostReset to reset. */
 	if (int_status & HostError) {
 		printk (KERN_ERR "%s: HostError! IntStatus %4.4x.\n",
@@ -991,16 +991,16 @@ get_stats (struct net_device *dev)
 
 	/* All statistics registers need to be acknowledged,
 	   else statistic overflow could cause problems */
-	
+
 	np->stats.rx_packets += readl (ioaddr + FramesRcvOk);
 	np->stats.tx_packets += readl (ioaddr + FramesXmtOk);
 	np->stats.rx_bytes += readl (ioaddr + OctetRcvOk);
 	np->stats.tx_bytes += readl (ioaddr + OctetXmtOk);
 
 	np->stats.multicast = readl (ioaddr + McstFramesRcvdOk);
-	np->stats.collisions += readl (ioaddr + SingleColFrames) 
-			     +  readl (ioaddr + MultiColFrames); 
-	
+	np->stats.collisions += readl (ioaddr + SingleColFrames)
+			     +  readl (ioaddr + MultiColFrames);
+
 	/* detailed tx errors */
 	stat_reg = readw (ioaddr + FramesAbortXSColls);
 	np->stats.tx_aborted_errors += stat_reg;
@@ -1047,7 +1047,7 @@ clear_stats (struct net_device *dev)
 	long ioaddr = dev->base_addr;
 #ifdef MEM_MAPPING
 	int i;
-#endif 
+#endif
 
 	/* All statistics registers need to be acknowledged,
 	   else statistic overflow could cause problems */
@@ -1060,7 +1060,7 @@ clear_stats (struct net_device *dev)
 	readl (ioaddr + SingleColFrames);
 	readl (ioaddr + MultiColFrames);
 	readl (ioaddr + LateCollisions);
-	/* detailed rx errors */		
+	/* detailed rx errors */
 	readw (ioaddr + FrameTooLongErrors);
 	readw (ioaddr + InRangeLengthErrors);
 	readw (ioaddr + FramesCheckSeqErrors);
@@ -1086,7 +1086,7 @@ clear_stats (struct net_device *dev)
 #ifdef MEM_MAPPING
 	for (i = 0x100; i <= 0x150; i += 4)
 		readl (ioaddr + i);
-#endif 
+#endif
 	readw (ioaddr + TxJumboFrames);
 	readw (ioaddr + RxJumboFrames);
 	readw (ioaddr + TCPCheckSumErrors);
@@ -1118,26 +1118,26 @@ set_multicast (struct net_device *dev)
 	u32 hash_table[2];
 	u16 rx_mode = 0;
 	struct netdev_private *np = netdev_priv(dev);
-	
+
 	hash_table[0] = hash_table[1] = 0;
 	/* RxFlowcontrol DA: 01-80-C2-00-00-01. Hash index=0x39 */
 	hash_table[1] |= cpu_to_le32(0x02000000);
 	if (dev->flags & IFF_PROMISC) {
 		/* Receive all frames promiscuously. */
 		rx_mode = ReceiveAllFrames;
-	} else if ((dev->flags & IFF_ALLMULTI) || 
+	} else if ((dev->flags & IFF_ALLMULTI) ||
 			(dev->mc_count > multicast_filter_limit)) {
 		/* Receive broadcast and multicast frames */
 		rx_mode = ReceiveBroadcast | ReceiveMulticast | ReceiveUnicast;
 	} else if (dev->mc_count > 0) {
 		int i;
 		struct dev_mc_list *mclist;
-		/* Receive broadcast frames and multicast frames filtering 
+		/* Receive broadcast frames and multicast frames filtering
 		   by Hashtable */
 		rx_mode =
 		    ReceiveBroadcast | ReceiveMulticastHash | ReceiveUnicast;
-		for (i=0, mclist = dev->mc_list; mclist && i < dev->mc_count; 
-				i++, mclist=mclist->next) 
+		for (i=0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+				i++, mclist=mclist->next)
 		{
 			int bit, index = 0;
 			int crc = ether_crc_le (ETH_ALEN, mclist->dmi_addr);
@@ -1167,7 +1167,7 @@ static void rio_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info
 	strcpy(info->driver, "dl2k");
 	strcpy(info->version, DRV_VERSION);
 	strcpy(info->bus_info, pci_name(np->pdev));
-}	
+}
 
 static int rio_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
@@ -1177,10 +1177,10 @@ static int rio_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 		cmd->supported = SUPPORTED_Autoneg | SUPPORTED_FIBRE;
 		cmd->advertising= ADVERTISED_Autoneg | ADVERTISED_FIBRE;
 		cmd->port = PORT_FIBRE;
-		cmd->transceiver = XCVR_INTERNAL;	
+		cmd->transceiver = XCVR_INTERNAL;
 	} else {
 		/* copper device */
-		cmd->supported = SUPPORTED_10baseT_Half | 
+		cmd->supported = SUPPORTED_10baseT_Half |
 			SUPPORTED_10baseT_Full | SUPPORTED_100baseT_Half
 			| SUPPORTED_100baseT_Full | SUPPORTED_1000baseT_Full |
 			SUPPORTED_Autoneg | SUPPORTED_MII;
@@ -1191,7 +1191,7 @@ static int rio_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 		cmd->port = PORT_MII;
 		cmd->transceiver = XCVR_INTERNAL;
 	}
-	if ( np->link_status ) { 
+	if ( np->link_status ) {
 		cmd->speed = np->speed;
 		cmd->duplex = np->full_duplex ? DUPLEX_FULL : DUPLEX_HALF;
 	} else {
@@ -1202,9 +1202,9 @@ static int rio_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 		cmd->autoneg = AUTONEG_ENABLE;
 	else
 		cmd->autoneg = AUTONEG_DISABLE;
-	
+
 	cmd->phy_address = np->phy_addr;
-	return 0;				   
+	return 0;
 }
 
 static int rio_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
@@ -1217,22 +1217,22 @@ static int rio_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 		else {
 			np->an_enable = 1;
 			mii_set_media(dev);
-			return 0;	
-		}	
+			return 0;
+		}
 	} else {
 		np->an_enable = 0;
 		if (np->speed == 1000) {
-			cmd->speed = SPEED_100;			
+			cmd->speed = SPEED_100;
 			cmd->duplex = DUPLEX_FULL;
 			printk("Warning!! Can't disable Auto negotiation in 1000Mbps, change to Manual 100Mbps, Full duplex.\n");
 		}
 		switch(cmd->speed + cmd->duplex) {
-		
+
 		case SPEED_10 + DUPLEX_HALF:
 			np->speed = 10;
 			np->full_duplex = 0;
 			break;
-		
+
 		case SPEED_10 + DUPLEX_FULL:
 			np->speed = 10;
 			np->full_duplex = 1;
@@ -1248,7 +1248,7 @@ static int rio_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 		case SPEED_1000 + DUPLEX_HALF:/* not supported */
 		case SPEED_1000 + DUPLEX_FULL:/* not supported */
 		default:
-			return -EINVAL;	
+			return -EINVAL;
 		}
 		mii_set_media(dev);
 	}
@@ -1261,7 +1261,7 @@ static u32 rio_get_link(struct net_device *dev)
 	return np->link_status;
 }
 
-static struct ethtool_ops ethtool_ops = {
+static const struct ethtool_ops ethtool_ops = {
 	.get_drvinfo = rio_get_drvinfo,
 	.get_settings = rio_get_settings,
 	.set_settings = rio_set_settings,
@@ -1274,7 +1274,7 @@ rio_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
 	int phy_addr;
 	struct netdev_private *np = netdev_priv(dev);
 	struct mii_data *miidata = (struct mii_data *) &rq->ifr_ifru;
-	
+
 	struct netdev_desc *desc;
 	int i;
 
@@ -1282,7 +1282,7 @@ rio_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
 	switch (cmd) {
 	case SIOCDEVPRIVATE:
 		break;
-	
+
 	case SIOCDEVPRIVATE + 1:
 		miidata->out_value = mii_read (dev, phy_addr, miidata->reg_num);
 		break;
@@ -1467,7 +1467,7 @@ mii_get_media (struct net_device *dev)
 			/* Auto-Negotiation not completed */
 			return -1;
 		}
-		negotiate.image = mii_read (dev, phy_addr, MII_ANAR) & 
+		negotiate.image = mii_read (dev, phy_addr, MII_ANAR) &
 			mii_read (dev, phy_addr, MII_ANLPAR);
 		mscr.image = mii_read (dev, phy_addr, MII_MSCR);
 		mssr.image = mii_read (dev, phy_addr, MII_MSSR);
@@ -1519,9 +1519,9 @@ mii_get_media (struct net_device *dev)
 			printk ("Half duplex\n");
 		}
 	}
-	if (np->tx_flow) 
+	if (np->tx_flow)
 		printk(KERN_INFO "Enable Tx Flow Control\n");
-	else	
+	else
 		printk(KERN_INFO "Disable Tx Flow Control\n");
 	if (np->rx_flow)
 		printk(KERN_INFO "Enable Rx Flow Control\n");
@@ -1561,7 +1561,7 @@ mii_set_media (struct net_device *dev)
 		pscr.image = mii_read (dev, phy_addr, MII_PHY_SCR);
 		pscr.bits.mdi_crossover_mode = 3;	/* 11'b */
 		mii_write (dev, phy_addr, MII_PHY_SCR, pscr.image);
-		
+
 		/* Soft reset PHY */
 		mii_write (dev, phy_addr, MII_BMCR, MII_BMCR_RESET);
 		bmcr.image = 0;
@@ -1639,7 +1639,7 @@ mii_get_media_pcs (struct net_device *dev)
 			/* Auto-Negotiation not completed */
 			return -1;
 		}
-		negotiate.image = mii_read (dev, phy_addr, PCS_ANAR) & 
+		negotiate.image = mii_read (dev, phy_addr, PCS_ANAR) &
 			mii_read (dev, phy_addr, PCS_ANLPAR);
 		np->speed = 1000;
 		if (negotiate.bits.full_duplex) {
@@ -1666,9 +1666,9 @@ mii_get_media_pcs (struct net_device *dev)
 			printk ("Half duplex\n");
 		}
 	}
-	if (np->tx_flow) 
+	if (np->tx_flow)
 		printk(KERN_INFO "Enable Tx Flow Control\n");
-	else	
+	else
 		printk(KERN_INFO "Disable Tx Flow Control\n");
 	if (np->rx_flow)
 		printk(KERN_INFO "Enable Rx Flow Control\n");
@@ -1694,9 +1694,9 @@ mii_set_media_pcs (struct net_device *dev)
 		/* Advertise capabilities */
 		esr.image = mii_read (dev, phy_addr, PCS_ESR);
 		anar.image = mii_read (dev, phy_addr, MII_ANAR);
-		anar.bits.half_duplex = 
+		anar.bits.half_duplex =
 			esr.bits.media_1000BT_HD | esr.bits.media_1000BX_HD;
-		anar.bits.full_duplex = 
+		anar.bits.full_duplex =
 			esr.bits.media_1000BT_FD | esr.bits.media_1000BX_FD;
 		anar.bits.pause = 1;
 		anar.bits.asymmetric = 1;
@@ -1754,14 +1754,14 @@ rio_close (struct net_device *dev)
 	synchronize_irq (dev->irq);
 	free_irq (dev->irq, dev);
 	del_timer_sync (&np->timer);
-	
+
 	/* Free all the skbuffs in the queue. */
 	for (i = 0; i < RX_RING_SIZE; i++) {
 		np->rx_ring[i].status = 0;
 		np->rx_ring[i].fraginfo = 0;
 		skb = np->rx_skbuff[i];
 		if (skb) {
-			pci_unmap_single(np->pdev, 
+			pci_unmap_single(np->pdev,
 					 np->rx_ring[i].fraginfo & DMA_48BIT_MASK,
 					 skb->len, PCI_DMA_FROMDEVICE);
 			dev_kfree_skb (skb);
@@ -1771,7 +1771,7 @@ rio_close (struct net_device *dev)
 	for (i = 0; i < TX_RING_SIZE; i++) {
 		skb = np->tx_skbuff[i];
 		if (skb) {
-			pci_unmap_single(np->pdev, 
+			pci_unmap_single(np->pdev,
 					 np->tx_ring[i].fraginfo & DMA_48BIT_MASK,
 					 skb->len, PCI_DMA_TODEVICE);
 			dev_kfree_skb (skb);
@@ -1815,7 +1815,7 @@ static struct pci_driver rio_driver = {
 static int __init
 rio_init (void)
 {
-	return pci_module_init (&rio_driver);
+	return pci_register_driver(&rio_driver);
 }
 
 static void __exit
@@ -1828,9 +1828,9 @@ module_init (rio_init);
 module_exit (rio_exit);
 
 /*
- 
-Compile command: 
- 
+
+Compile command:
+
 gcc -D__KERNEL__ -DMODULE -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -c dl2k.c
 
 Read Documentation/networking/dl2k.txt for details.

+ 3 - 3
drivers/net/dl2k.h

@@ -1,5 +1,5 @@
 /*  D-Link DL2000-based Gigabit Ethernet Adapter Linux driver */
-/*  
+/*
     Copyright (c) 2001, 2002 by D-Link Corporation
     Written by Edward Peng.<edward_peng@dlink.com.tw>
     Created 03-May-2001, base on Linux' sundance.c.
@@ -216,7 +216,7 @@ enum MACCtrl_bits {
 enum ASICCtrl_LoWord_bits {
 	PhyMedia = 0x0080,
 };
-	
+
 enum ASICCtrl_HiWord_bits {
 	GlobalReset = 0x0001,
 	RxReset = 0x0002,
@@ -596,7 +596,7 @@ typedef union t_PCS_ANLPAR {
 } ANLPAR_PCS_t, *PANLPAR_PCS_t;
 
 enum _pcs_anlpar {
-	PCS_ANLPAR_NEXT_PAGE = PCS_ANAR_NEXT_PAGE, 
+	PCS_ANLPAR_NEXT_PAGE = PCS_ANAR_NEXT_PAGE,
 	PCS_ANLPAR_REMOTE_FAULT = PCS_ANAR_REMOTE_FAULT,
 	PCS_ANLPAR_ASYMMETRIC = PCS_ANAR_ASYMMETRIC,
 	PCS_ANLPAR_PAUSE = PCS_ANAR_PAUSE,

+ 14 - 14
drivers/net/dummy.c

@@ -11,7 +11,7 @@
 	One solution is to set up a dummy link using PPP/SLIP/PLIP,
 	but this seems (to me) too much overhead for too little gain.
 	This driver provides a small alternative. Thus you can do
-	
+
 	[when not running slip]
 		ifconfig dummy slip.addr.ess.here up
 	[to go to slip]
@@ -44,9 +44,9 @@ static int dummy_set_address(struct net_device *dev, void *p)
 {
 	struct sockaddr *sa = p;
 
-	if (!is_valid_ether_addr(sa->sa_data)) 
+	if (!is_valid_ether_addr(sa->sa_data))
 		return -EADDRNOTAVAIL;
-		
+
 	memcpy(dev->dev_addr, sa->sa_data, ETH_ALEN);
 	return 0;
 }
@@ -111,7 +111,7 @@ static int __init dummy_init_one(int index)
 		free_netdev(dev_dummy);
 		dev_dummy = NULL;
 	} else {
-		dummies[index] = dev_dummy; 
+		dummies[index] = dev_dummy;
 	}
 
 	return err;
@@ -121,30 +121,30 @@ static void dummy_free_one(int index)
 {
 	unregister_netdev(dummies[index]);
 	free_netdev(dummies[index]);
-} 
+}
 
 static int __init dummy_init_module(void)
-{ 
+{
 	int i, err = 0;
-	dummies = kmalloc(numdummies * sizeof(void *), GFP_KERNEL); 
+	dummies = kmalloc(numdummies * sizeof(void *), GFP_KERNEL);
 	if (!dummies)
-		return -ENOMEM; 
+		return -ENOMEM;
 	for (i = 0; i < numdummies && !err; i++)
-		err = dummy_init_one(i); 
-	if (err) { 
+		err = dummy_init_one(i);
+	if (err) {
 		i--;
 		while (--i >= 0)
 			dummy_free_one(i);
 	}
 	return err;
-} 
+}
 
 static void __exit dummy_cleanup_module(void)
 {
 	int i;
-	for (i = 0; i < numdummies; i++) 
-		dummy_free_one(i); 
-	kfree(dummies);	
+	for (i = 0; i < numdummies; i++)
+		dummy_free_one(i);
+	kfree(dummies);
 }
 
 module_init(dummy_init_module);

+ 14 - 18
drivers/net/e100.c

@@ -1,7 +1,7 @@
 /*******************************************************************************
 
 
-  Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved.
+  Copyright(c) 1999 - 2006 Intel Corporation. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the Free
@@ -158,10 +158,10 @@
 
 
 #define DRV_NAME		"e100"
-#define DRV_EXT		"-NAPI"
-#define DRV_VERSION		"3.5.10-k2"DRV_EXT
+#define DRV_EXT			"-NAPI"
+#define DRV_VERSION		"3.5.16-k2"DRV_EXT
 #define DRV_DESCRIPTION		"Intel(R) PRO/100 Network Driver"
-#define DRV_COPYRIGHT		"Copyright(c) 1999-2005 Intel Corporation"
+#define DRV_COPYRIGHT		"Copyright(c) 1999-2006 Intel Corporation"
 #define PFX			DRV_NAME ": "
 
 #define E100_WATCHDOG_PERIOD	(2 * HZ)
@@ -1395,15 +1395,11 @@ static int e100_phy_init(struct nic *nic)
 	}
 
 	if((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
-	   (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000))) {
-		/* enable/disable MDI/MDI-X auto-switching.
-		   MDI/MDI-X auto-switching is disabled for 82551ER/QM chips */
-		if((nic->mac == mac_82551_E) || (nic->mac == mac_82551_F) ||
-		   (nic->mac == mac_82551_10) || (nic->mii.force_media) ||
-		   !(nic->eeprom[eeprom_cnfg_mdix] & eeprom_mdix_enabled))
-			mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG, 0);
-		else
-			mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG, NCONFIG_AUTO_SWITCH);
+	   (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
+		!(nic->eeprom[eeprom_cnfg_mdix] & eeprom_mdix_enabled))) {
+		/* enable/disable MDI/MDI-X auto-switching. */
+		mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
+				nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
 	}
 
 	return 0;
@@ -1767,11 +1763,10 @@ static inline void e100_start_receiver(struct nic *nic, struct rx *rx)
 #define RFD_BUF_LEN (sizeof(struct rfd) + VLAN_ETH_FRAME_LEN)
 static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx)
 {
-	if(!(rx->skb = dev_alloc_skb(RFD_BUF_LEN + NET_IP_ALIGN)))
+	if(!(rx->skb = netdev_alloc_skb(nic->netdev, RFD_BUF_LEN + NET_IP_ALIGN)))
 		return -ENOMEM;
 
 	/* Align, init, and map the RFD. */
-	rx->skb->dev = nic->netdev;
 	skb_reserve(rx->skb, NET_IP_ALIGN);
 	memcpy(rx->skb->data, &nic->blank_rfd, sizeof(struct rfd));
 	rx->dma_addr = pci_map_single(nic->pdev, rx->skb->data,
@@ -2147,7 +2142,7 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode)
 
 	e100_start_receiver(nic, NULL);
 
-	if(!(skb = dev_alloc_skb(ETH_DATA_LEN))) {
+	if(!(skb = netdev_alloc_skb(nic->netdev, ETH_DATA_LEN))) {
 		err = -ENOMEM;
 		goto err_loopback_none;
 	}
@@ -2482,7 +2477,7 @@ static void e100_get_strings(struct net_device *netdev, u32 stringset, u8 *data)
 	}
 }
 
-static struct ethtool_ops e100_ethtool_ops = {
+static const struct ethtool_ops e100_ethtool_ops = {
 	.get_settings		= e100_get_settings,
 	.set_settings		= e100_set_settings,
 	.get_drvinfo		= e100_get_drvinfo,
@@ -2799,6 +2794,7 @@ static pci_ers_result_t e100_io_error_detected(struct pci_dev *pdev, pci_channel
 	/* Detach; put netif into state similar to hotplug unplug. */
 	netif_poll_enable(netdev);
 	netif_device_detach(netdev);
+	pci_disable_device(pdev);
 
 	/* Request a slot reset. */
 	return PCI_ERS_RESULT_NEED_RESET;
@@ -2877,7 +2873,7 @@ static int __init e100_init_module(void)
 		printk(KERN_INFO PFX "%s, %s\n", DRV_DESCRIPTION, DRV_VERSION);
 		printk(KERN_INFO PFX "%s\n", DRV_COPYRIGHT);
 	}
-	return pci_module_init(&e100_driver);
+	return pci_register_driver(&e100_driver);
 }
 
 static void __exit e100_cleanup_module(void)

+ 3 - 3
drivers/net/e1000/e1000.h

@@ -242,12 +242,10 @@ struct e1000_adapter {
 	struct timer_list watchdog_timer;
 	struct timer_list phy_info_timer;
 	struct vlan_group *vlgrp;
-    	uint16_t mng_vlan_id;
+	uint16_t mng_vlan_id;
 	uint32_t bd_number;
 	uint32_t rx_buffer_len;
-	uint32_t part_num;
 	uint32_t wol;
-	uint32_t ksp3_port_a;
 	uint32_t smartspeed;
 	uint32_t en_mng_pt;
 	uint16_t link_speed;
@@ -342,7 +340,9 @@ struct e1000_adapter {
 	boolean_t tso_force;
 #endif
 	boolean_t smart_power_down;	/* phy smart power down */
+	boolean_t quad_port_a;
 	unsigned long flags;
+	uint32_t eeprom_wol;
 };
 
 enum e1000_state_t {

+ 157 - 122
drivers/net/e1000/e1000_ethtool.c

@@ -183,6 +183,9 @@ e1000_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
 		return -EINVAL;
 	}
 
+	while (test_and_set_bit(__E1000_RESETTING, &adapter->flags))
+		msleep(1);
+
 	if (ecmd->autoneg == AUTONEG_ENABLE) {
 		hw->autoneg = 1;
 		if (hw->media_type == e1000_media_type_fiber)
@@ -199,16 +202,20 @@ e1000_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
 						  ADVERTISED_TP;
 		ecmd->advertising = hw->autoneg_advertised;
 	} else
-		if (e1000_set_spd_dplx(adapter, ecmd->speed + ecmd->duplex))
+		if (e1000_set_spd_dplx(adapter, ecmd->speed + ecmd->duplex)) {
+			clear_bit(__E1000_RESETTING, &adapter->flags);
 			return -EINVAL;
+		}
 
 	/* reset the link */
 
-	if (netif_running(adapter->netdev))
-		e1000_reinit_locked(adapter);
-	else
+	if (netif_running(adapter->netdev)) {
+		e1000_down(adapter);
+		e1000_up(adapter);
+	} else
 		e1000_reset(adapter);
 
+	clear_bit(__E1000_RESETTING, &adapter->flags);
 	return 0;
 }
 
@@ -238,9 +245,13 @@ e1000_set_pauseparam(struct net_device *netdev,
 {
 	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct e1000_hw *hw = &adapter->hw;
+	int retval = 0;
 
 	adapter->fc_autoneg = pause->autoneg;
 
+	while (test_and_set_bit(__E1000_RESETTING, &adapter->flags))
+		msleep(1);
+
 	if (pause->rx_pause && pause->tx_pause)
 		hw->fc = e1000_fc_full;
 	else if (pause->rx_pause && !pause->tx_pause)
@@ -253,15 +264,17 @@ e1000_set_pauseparam(struct net_device *netdev,
 	hw->original_fc = hw->fc;
 
 	if (adapter->fc_autoneg == AUTONEG_ENABLE) {
-		if (netif_running(adapter->netdev))
-			e1000_reinit_locked(adapter);
-		else
+		if (netif_running(adapter->netdev)) {
+			e1000_down(adapter);
+			e1000_up(adapter);
+		} else
 			e1000_reset(adapter);
 	} else
-		return ((hw->media_type == e1000_media_type_fiber) ?
-			e1000_setup_link(hw) : e1000_force_mac_fc(hw));
+		retval = ((hw->media_type == e1000_media_type_fiber) ?
+			   e1000_setup_link(hw) : e1000_force_mac_fc(hw));
 
-	return 0;
+	clear_bit(__E1000_RESETTING, &adapter->flags);
+	return retval;
 }
 
 static uint32_t
@@ -415,12 +428,12 @@ e1000_get_regs(struct net_device *netdev,
 		regs_buff[23] = regs_buff[18]; /* mdix mode */
 		e1000_write_phy_reg(hw, IGP01E1000_PHY_PAGE_SELECT, 0x0);
 	} else {
-        	e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_STATUS, &phy_data);
+		e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_STATUS, &phy_data);
 		regs_buff[13] = (uint32_t)phy_data; /* cable length */
 		regs_buff[14] = 0;  /* Dummy (to align w/ IGP phy reg dump) */
 		regs_buff[15] = 0;  /* Dummy (to align w/ IGP phy reg dump) */
 		regs_buff[16] = 0;  /* Dummy (to align w/ IGP phy reg dump) */
-        	e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data);
+		e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data);
 		regs_buff[17] = (uint32_t)phy_data; /* extended 10bt distance */
 		regs_buff[18] = regs_buff[13]; /* cable polarity */
 		regs_buff[19] = 0;  /* Dummy (to align w/ IGP phy reg dump) */
@@ -696,7 +709,6 @@ e1000_set_ringparam(struct net_device *netdev,
 	}
 
 	clear_bit(__E1000_RESETTING, &adapter->flags);
-
 	return 0;
 err_setup_tx:
 	e1000_free_all_rx_resources(adapter);
@@ -881,21 +893,22 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
 
 	*data = 0;
 
+	/* NOTE: we don't test MSI interrupts here, yet */
 	/* Hook up test interrupt handler just for this test */
 	if (!request_irq(irq, &e1000_test_intr, IRQF_PROBE_SHARED,
-			 netdev->name, netdev)) {
- 		shared_int = FALSE;
- 	} else if (request_irq(irq, &e1000_test_intr, IRQF_SHARED,
-			      netdev->name, netdev)){
+			 netdev->name, netdev))
+		shared_int = FALSE;
+	else if (request_irq(irq, &e1000_test_intr, IRQF_SHARED,
+			      netdev->name, netdev)) {
 		*data = 1;
 		return -1;
 	}
-	DPRINTK(PROBE,INFO, "testing %s interrupt\n",
+	DPRINTK(HW, INFO, "testing %s interrupt\n",
 	        (shared_int ? "shared" : "unshared"));
 
 	/* Disable all the interrupts */
 	E1000_WRITE_REG(&adapter->hw, IMC, 0xFFFFFFFF);
-	msec_delay(10);
+	msleep(10);
 
 	/* Test each interrupt */
 	for (; i < 10; i++) {
@@ -915,7 +928,7 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
 			adapter->test_icr = 0;
 			E1000_WRITE_REG(&adapter->hw, IMC, mask);
 			E1000_WRITE_REG(&adapter->hw, ICS, mask);
-			msec_delay(10);
+			msleep(10);
 
 			if (adapter->test_icr & mask) {
 				*data = 3;
@@ -932,7 +945,7 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
 		adapter->test_icr = 0;
 		E1000_WRITE_REG(&adapter->hw, IMS, mask);
 		E1000_WRITE_REG(&adapter->hw, ICS, mask);
-		msec_delay(10);
+		msleep(10);
 
 		if (!(adapter->test_icr & mask)) {
 			*data = 4;
@@ -949,7 +962,7 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
 			adapter->test_icr = 0;
 			E1000_WRITE_REG(&adapter->hw, IMC, ~mask & 0x00007FFF);
 			E1000_WRITE_REG(&adapter->hw, ICS, ~mask & 0x00007FFF);
-			msec_delay(10);
+			msleep(10);
 
 			if (adapter->test_icr) {
 				*data = 5;
@@ -960,7 +973,7 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
 
 	/* Disable all the interrupts */
 	E1000_WRITE_REG(&adapter->hw, IMC, 0xFFFFFFFF);
-	msec_delay(10);
+	msleep(10);
 
 	/* Unhook test interrupt handler */
 	free_irq(irq, netdev);
@@ -1256,11 +1269,10 @@ e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
 		e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x9140);
 		/* autoneg off */
 		e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x8140);
-	} else if (adapter->hw.phy_type == e1000_phy_gg82563) {
+	} else if (adapter->hw.phy_type == e1000_phy_gg82563)
 		e1000_write_phy_reg(&adapter->hw,
 		                    GG82563_PHY_KMRN_MODE_CTRL,
 		                    0x1CC);
-	}
 
 	ctrl_reg = E1000_READ_REG(&adapter->hw, CTRL);
 
@@ -1288,9 +1300,9 @@ e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
 	}
 
 	if (adapter->hw.media_type == e1000_media_type_copper &&
-	   adapter->hw.phy_type == e1000_phy_m88) {
+	   adapter->hw.phy_type == e1000_phy_m88)
 		ctrl_reg |= E1000_CTRL_ILOS; /* Invert Loss of Signal */
-	} else {
+	else {
 		/* Set the ILOS bit on the fiber Nic is half
 		 * duplex link is detected. */
 		stat_reg = E1000_READ_REG(&adapter->hw, STATUS);
@@ -1383,7 +1395,7 @@ e1000_setup_loopback_test(struct e1000_adapter *adapter)
 #define E1000_SERDES_LB_ON 0x410
 			e1000_set_phy_loopback(adapter);
 			E1000_WRITE_REG(hw, SCTL, E1000_SERDES_LB_ON);
-			msec_delay(10);
+			msleep(10);
 			return 0;
 			break;
 		default:
@@ -1416,7 +1428,7 @@ e1000_loopback_cleanup(struct e1000_adapter *adapter)
 		    hw->media_type == e1000_media_type_internal_serdes) {
 #define E1000_SERDES_LB_OFF 0x400
 			E1000_WRITE_REG(hw, SCTL, E1000_SERDES_LB_OFF);
-			msec_delay(10);
+			msleep(10);
 			break;
 		}
 		/* Fall Through */
@@ -1426,11 +1438,10 @@ e1000_loopback_cleanup(struct e1000_adapter *adapter)
 	case e1000_82546_rev_3:
 	default:
 		hw->autoneg = TRUE;
-		if (hw->phy_type == e1000_phy_gg82563) {
+		if (hw->phy_type == e1000_phy_gg82563)
 			e1000_write_phy_reg(hw,
 					    GG82563_PHY_KMRN_MODE_CTRL,
 					    0x180);
-		}
 		e1000_read_phy_reg(hw, PHY_CTRL, &phy_reg);
 		if (phy_reg & MII_CR_LOOPBACK) {
 			phy_reg &= ~MII_CR_LOOPBACK;
@@ -1497,7 +1508,7 @@ e1000_run_loopback_test(struct e1000_adapter *adapter)
 			if (unlikely(++k == txdr->count)) k = 0;
 		}
 		E1000_WRITE_REG(&adapter->hw, TDT, k);
-		msec_delay(200);
+		msleep(200);
 		time = jiffies; /* set the start time for the receive */
 		good_cnt = 0;
 		do { /* receive the sent packets */
@@ -1568,14 +1579,14 @@ e1000_link_test(struct e1000_adapter *adapter, uint64_t *data)
 			e1000_check_for_link(&adapter->hw);
 			if (adapter->hw.serdes_link_down == FALSE)
 				return *data;
-			msec_delay(20);
+			msleep(20);
 		} while (i++ < 3750);
 
 		*data = 1;
 	} else {
 		e1000_check_for_link(&adapter->hw);
 		if (adapter->hw.autoneg)  /* if auto_neg is set wait for it */
-			msec_delay(4000);
+			msleep(4000);
 
 		if (!(E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_LU)) {
 			*data = 1;
@@ -1590,6 +1601,8 @@ e1000_diag_test_count(struct net_device *netdev)
 	return E1000_TEST_LEN;
 }
 
+extern void e1000_power_up_phy(struct e1000_adapter *);
+
 static void
 e1000_diag_test(struct net_device *netdev,
 		   struct ethtool_test *eth_test, uint64_t *data)
@@ -1606,6 +1619,8 @@ e1000_diag_test(struct net_device *netdev,
 		uint8_t forced_speed_duplex = adapter->hw.forced_speed_duplex;
 		uint8_t autoneg = adapter->hw.autoneg;
 
+		DPRINTK(HW, INFO, "offline testing starting\n");
+
 		/* Link test performed before hardware reset so autoneg doesn't
 		 * interfere with test result */
 		if (e1000_link_test(adapter, &data[4]))
@@ -1629,6 +1644,8 @@ e1000_diag_test(struct net_device *netdev,
 			eth_test->flags |= ETH_TEST_FL_FAILED;
 
 		e1000_reset(adapter);
+		/* make sure the phy is powered up */
+		e1000_power_up_phy(adapter);
 		if (e1000_loopback_test(adapter, &data[3]))
 			eth_test->flags |= ETH_TEST_FL_FAILED;
 
@@ -1642,6 +1659,7 @@ e1000_diag_test(struct net_device *netdev,
 		if (if_running)
 			dev_open(netdev);
 	} else {
+		DPRINTK(HW, INFO, "online testing starting\n");
 		/* Online tests */
 		if (e1000_link_test(adapter, &data[4]))
 			eth_test->flags |= ETH_TEST_FL_FAILED;
@@ -1657,14 +1675,12 @@ e1000_diag_test(struct net_device *netdev,
 	msleep_interruptible(4 * 1000);
 }
 
-static void
-e1000_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
+static int e1000_wol_exclusion(struct e1000_adapter *adapter, struct ethtool_wolinfo *wol)
 {
-	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct e1000_hw *hw = &adapter->hw;
+	int retval = 1; /* fail by default */
 
-	switch (adapter->hw.device_id) {
-	case E1000_DEV_ID_82542:
+	switch (hw->device_id) {
 	case E1000_DEV_ID_82543GC_FIBER:
 	case E1000_DEV_ID_82543GC_COPPER:
 	case E1000_DEV_ID_82544EI_FIBER:
@@ -1672,52 +1688,87 @@ e1000_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
 	case E1000_DEV_ID_82545EM_FIBER:
 	case E1000_DEV_ID_82545EM_COPPER:
 	case E1000_DEV_ID_82546GB_QUAD_COPPER:
+	case E1000_DEV_ID_82546GB_PCIE:
+		/* these don't support WoL at all */
 		wol->supported = 0;
-		wol->wolopts   = 0;
-		return;
-
-	case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3:
-		/* device id 10B5 port-A supports wol */
-		if (!adapter->ksp3_port_a) {
-			wol->supported = 0;
-			return;
-		}
-		/* KSP3 does not suppport UCAST wake-ups for any interface */
-		wol->supported = WAKE_MCAST | WAKE_BCAST | WAKE_MAGIC;
-
-		if (adapter->wol & E1000_WUFC_EX)
-			DPRINTK(DRV, ERR, "Interface does not support "
-		        "directed (unicast) frame wake-up packets\n");
-		wol->wolopts = 0;
-		goto do_defaults;
-
+		break;
 	case E1000_DEV_ID_82546EB_FIBER:
 	case E1000_DEV_ID_82546GB_FIBER:
 	case E1000_DEV_ID_82571EB_FIBER:
-		/* Wake events only supported on port A for dual fiber */
+	case E1000_DEV_ID_82571EB_SERDES:
+	case E1000_DEV_ID_82571EB_COPPER:
+		/* Wake events not supported on port B */
 		if (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1) {
 			wol->supported = 0;
-			wol->wolopts   = 0;
-			return;
+			break;
 		}
-		/* Fall Through */
-
+		/* return success for non excluded adapter ports */
+		retval = 0;
+		break;
+	case E1000_DEV_ID_82571EB_QUAD_COPPER:
+	case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3:
+		/* quad port adapters only support WoL on port A */
+		if (!adapter->quad_port_a) {
+			wol->supported = 0;
+			break;
+		}
+		/* return success for non excluded adapter ports */
+		retval = 0;
+		break;
 	default:
-		wol->supported = WAKE_UCAST | WAKE_MCAST |
-				 WAKE_BCAST | WAKE_MAGIC;
-		wol->wolopts = 0;
+		/* dual port cards only support WoL on port A from now on
+		 * unless it was enabled in the eeprom for port B
+		 * so exclude FUNC_1 ports from having WoL enabled */
+		if (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1 &&
+		    !adapter->eeprom_wol) {
+			wol->supported = 0;
+			break;
+		}
 
-do_defaults:
-		if (adapter->wol & E1000_WUFC_EX)
-			wol->wolopts |= WAKE_UCAST;
-		if (adapter->wol & E1000_WUFC_MC)
-			wol->wolopts |= WAKE_MCAST;
-		if (adapter->wol & E1000_WUFC_BC)
-			wol->wolopts |= WAKE_BCAST;
-		if (adapter->wol & E1000_WUFC_MAG)
-			wol->wolopts |= WAKE_MAGIC;
+		retval = 0;
+	}
+
+	return retval;
+}
+
+static void
+e1000_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
+{
+	struct e1000_adapter *adapter = netdev_priv(netdev);
+
+	wol->supported = WAKE_UCAST | WAKE_MCAST |
+	                 WAKE_BCAST | WAKE_MAGIC;
+	wol->wolopts = 0;
+
+	/* this function will set ->supported = 0 and return 1 if wol is not
+	 * supported by this hardware */
+	if (e1000_wol_exclusion(adapter, wol))
 		return;
+
+	/* apply any specific unsupported masks here */
+	switch (adapter->hw.device_id) {
+	case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3:
+		/* KSP3 does not suppport UCAST wake-ups */
+		wol->supported &= ~WAKE_UCAST;
+
+		if (adapter->wol & E1000_WUFC_EX)
+			DPRINTK(DRV, ERR, "Interface does not support "
+		        "directed (unicast) frame wake-up packets\n");
+		break;
+	default:
+		break;
 	}
+
+	if (adapter->wol & E1000_WUFC_EX)
+		wol->wolopts |= WAKE_UCAST;
+	if (adapter->wol & E1000_WUFC_MC)
+		wol->wolopts |= WAKE_MCAST;
+	if (adapter->wol & E1000_WUFC_BC)
+		wol->wolopts |= WAKE_BCAST;
+	if (adapter->wol & E1000_WUFC_MAG)
+		wol->wolopts |= WAKE_MAGIC;
+
+	return;
 }
 
 static int
@@ -1726,51 +1777,35 @@ e1000_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
 	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct e1000_hw *hw = &adapter->hw;
 
-	switch (adapter->hw.device_id) {
-	case E1000_DEV_ID_82542:
-	case E1000_DEV_ID_82543GC_FIBER:
-	case E1000_DEV_ID_82543GC_COPPER:
-	case E1000_DEV_ID_82544EI_FIBER:
-	case E1000_DEV_ID_82546EB_QUAD_COPPER:
-	case E1000_DEV_ID_82546GB_QUAD_COPPER:
-	case E1000_DEV_ID_82545EM_FIBER:
-	case E1000_DEV_ID_82545EM_COPPER:
+	if (wol->wolopts & (WAKE_PHY | WAKE_ARP | WAKE_MAGICSECURE))
+		return -EOPNOTSUPP;
+
+	if (e1000_wol_exclusion(adapter, wol))
 		return wol->wolopts ? -EOPNOTSUPP : 0;
 
+	switch (hw->device_id) {
 	case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3:
-		/* device id 10B5 port-A supports wol */
-		if (!adapter->ksp3_port_a)
-			return wol->wolopts ? -EOPNOTSUPP : 0;
-
 		if (wol->wolopts & WAKE_UCAST) {
 			DPRINTK(DRV, ERR, "Interface does not support "
 		        "directed (unicast) frame wake-up packets\n");
 			return -EOPNOTSUPP;
 		}
-
-	case E1000_DEV_ID_82546EB_FIBER:
-	case E1000_DEV_ID_82546GB_FIBER:
-	case E1000_DEV_ID_82571EB_FIBER:
-		/* Wake events only supported on port A for dual fiber */
-		if (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)
-			return wol->wolopts ? -EOPNOTSUPP : 0;
-		/* Fall Through */
-
+		break;
 	default:
-		if (wol->wolopts & (WAKE_PHY | WAKE_ARP | WAKE_MAGICSECURE))
-			return -EOPNOTSUPP;
+		break;
+	}
 
-		adapter->wol = 0;
+	/* these settings will always override what we currently have */
+	adapter->wol = 0;
 
-		if (wol->wolopts & WAKE_UCAST)
-			adapter->wol |= E1000_WUFC_EX;
-		if (wol->wolopts & WAKE_MCAST)
-			adapter->wol |= E1000_WUFC_MC;
-		if (wol->wolopts & WAKE_BCAST)
-			adapter->wol |= E1000_WUFC_BC;
-		if (wol->wolopts & WAKE_MAGIC)
-			adapter->wol |= E1000_WUFC_MAG;
-	}
+	if (wol->wolopts & WAKE_UCAST)
+		adapter->wol |= E1000_WUFC_EX;
+	if (wol->wolopts & WAKE_MCAST)
+		adapter->wol |= E1000_WUFC_MC;
+	if (wol->wolopts & WAKE_BCAST)
+		adapter->wol |= E1000_WUFC_BC;
+	if (wol->wolopts & WAKE_MAGIC)
+		adapter->wol |= E1000_WUFC_MAG;
 
 	return 0;
 }
@@ -1887,7 +1922,7 @@ e1000_get_strings(struct net_device *netdev, uint32_t stringset, uint8_t *data)
 	}
 }
 
-static struct ethtool_ops e1000_ethtool_ops = {
+static const struct ethtool_ops e1000_ethtool_ops = {
 	.get_settings           = e1000_get_settings,
 	.set_settings           = e1000_set_settings,
 	.get_drvinfo            = e1000_get_drvinfo,
@@ -1895,8 +1930,8 @@ static struct ethtool_ops e1000_ethtool_ops = {
 	.get_regs               = e1000_get_regs,
 	.get_wol                = e1000_get_wol,
 	.set_wol                = e1000_set_wol,
-	.get_msglevel	        = e1000_get_msglevel,
-	.set_msglevel	        = e1000_set_msglevel,
+	.get_msglevel           = e1000_get_msglevel,
+	.set_msglevel           = e1000_set_msglevel,
 	.nway_reset             = e1000_nway_reset,
 	.get_link               = ethtool_op_get_link,
 	.get_eeprom_len         = e1000_get_eeprom_len,
@@ -1904,17 +1939,17 @@ static struct ethtool_ops e1000_ethtool_ops = {
 	.set_eeprom             = e1000_set_eeprom,
 	.get_ringparam          = e1000_get_ringparam,
 	.set_ringparam          = e1000_set_ringparam,
-	.get_pauseparam		= e1000_get_pauseparam,
-	.set_pauseparam		= e1000_set_pauseparam,
-	.get_rx_csum		= e1000_get_rx_csum,
-	.set_rx_csum		= e1000_set_rx_csum,
-	.get_tx_csum		= e1000_get_tx_csum,
-	.set_tx_csum		= e1000_set_tx_csum,
-	.get_sg			= ethtool_op_get_sg,
-	.set_sg			= ethtool_op_set_sg,
+	.get_pauseparam         = e1000_get_pauseparam,
+	.set_pauseparam         = e1000_set_pauseparam,
+	.get_rx_csum            = e1000_get_rx_csum,
+	.set_rx_csum            = e1000_set_rx_csum,
+	.get_tx_csum            = e1000_get_tx_csum,
+	.set_tx_csum            = e1000_set_tx_csum,
+	.get_sg                 = ethtool_op_get_sg,
+	.set_sg                 = ethtool_op_set_sg,
 #ifdef NETIF_F_TSO
-	.get_tso		= ethtool_op_get_tso,
-	.set_tso		= e1000_set_tso,
+	.get_tso                = ethtool_op_get_tso,
+	.set_tso                = e1000_set_tso,
 #endif
 	.self_test_count        = e1000_diag_test_count,
 	.self_test              = e1000_diag_test,
@@ -1922,7 +1957,7 @@ static struct ethtool_ops e1000_ethtool_ops = {
 	.phys_id                = e1000_phys_id,
 	.get_stats_count        = e1000_get_stats_count,
 	.get_ethtool_stats      = e1000_get_ethtool_stats,
-	.get_perm_addr		= ethtool_op_get_perm_addr,
+	.get_perm_addr          = ethtool_op_get_perm_addr,
 };
 
 void e1000_set_ethtool_ops(struct net_device *netdev)

+ 575 - 592
drivers/net/e1000/e1000_hw.c

@@ -31,6 +31,7 @@
  * Shared functions for accessing and configuring the MAC
  */
 
+
 #include "e1000_hw.h"
 
 static int32_t e1000_set_phy_type(struct e1000_hw *hw);
@@ -166,10 +167,10 @@ e1000_set_phy_type(struct e1000_hw *hw)
 {
     DEBUGFUNC("e1000_set_phy_type");
 
-    if(hw->mac_type == e1000_undefined)
+    if (hw->mac_type == e1000_undefined)
         return -E1000_ERR_PHY_TYPE;
 
-    switch(hw->phy_id) {
+    switch (hw->phy_id) {
     case M88E1000_E_PHY_ID:
     case M88E1000_I_PHY_ID:
     case M88E1011_I_PHY_ID:
@@ -177,10 +178,10 @@ e1000_set_phy_type(struct e1000_hw *hw)
         hw->phy_type = e1000_phy_m88;
         break;
     case IGP01E1000_I_PHY_ID:
-        if(hw->mac_type == e1000_82541 ||
-           hw->mac_type == e1000_82541_rev_2 ||
-           hw->mac_type == e1000_82547 ||
-           hw->mac_type == e1000_82547_rev_2) {
+        if (hw->mac_type == e1000_82541 ||
+            hw->mac_type == e1000_82541_rev_2 ||
+            hw->mac_type == e1000_82547 ||
+            hw->mac_type == e1000_82547_rev_2) {
             hw->phy_type = e1000_phy_igp;
             break;
         }
@@ -207,6 +208,7 @@ e1000_set_phy_type(struct e1000_hw *hw)
     return E1000_SUCCESS;
 }
 
+
 /******************************************************************************
  * IGP phy init script - initializes the GbE PHY
  *
@@ -220,8 +222,8 @@ e1000_phy_init_script(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_phy_init_script");
 
-    if(hw->phy_init_script) {
-        msec_delay(20);
+    if (hw->phy_init_script) {
+        msleep(20);
 
         /* Save off the current value of register 0x2F5B to be restored at
          * the end of this routine. */
@@ -230,13 +232,13 @@ e1000_phy_init_script(struct e1000_hw *hw)
         /* Disabled the PHY transmitter */
         e1000_write_phy_reg(hw, 0x2F5B, 0x0003);
 
-        msec_delay(20);
+        msleep(20);
 
         e1000_write_phy_reg(hw,0x0000,0x0140);
 
-        msec_delay(5);
+        msleep(5);
 
-        switch(hw->mac_type) {
+        switch (hw->mac_type) {
         case e1000_82541:
         case e1000_82547:
             e1000_write_phy_reg(hw, 0x1F95, 0x0001);
@@ -268,27 +270,27 @@ e1000_phy_init_script(struct e1000_hw *hw)
 
         e1000_write_phy_reg(hw, 0x0000, 0x3300);
 
-        msec_delay(20);
+        msleep(20);
 
         /* Now enable the transmitter */
         e1000_write_phy_reg(hw, 0x2F5B, phy_saved_data);
 
-        if(hw->mac_type == e1000_82547) {
+        if (hw->mac_type == e1000_82547) {
             uint16_t fused, fine, coarse;
 
             /* Move to analog registers page */
             e1000_read_phy_reg(hw, IGP01E1000_ANALOG_SPARE_FUSE_STATUS, &fused);
 
-            if(!(fused & IGP01E1000_ANALOG_SPARE_FUSE_ENABLED)) {
+            if (!(fused & IGP01E1000_ANALOG_SPARE_FUSE_ENABLED)) {
                 e1000_read_phy_reg(hw, IGP01E1000_ANALOG_FUSE_STATUS, &fused);
 
                 fine = fused & IGP01E1000_ANALOG_FUSE_FINE_MASK;
                 coarse = fused & IGP01E1000_ANALOG_FUSE_COARSE_MASK;
 
-                if(coarse > IGP01E1000_ANALOG_FUSE_COARSE_THRESH) {
+                if (coarse > IGP01E1000_ANALOG_FUSE_COARSE_THRESH) {
                     coarse -= IGP01E1000_ANALOG_FUSE_COARSE_10;
                     fine -= IGP01E1000_ANALOG_FUSE_FINE_1;
-                } else if(coarse == IGP01E1000_ANALOG_FUSE_COARSE_THRESH)
+                } else if (coarse == IGP01E1000_ANALOG_FUSE_COARSE_THRESH)
                     fine -= IGP01E1000_ANALOG_FUSE_FINE_10;
 
                 fused = (fused & IGP01E1000_ANALOG_FUSE_POLY_MASK) |
@@ -387,6 +389,7 @@ e1000_set_mac_type(struct e1000_hw *hw)
     case E1000_DEV_ID_82571EB_COPPER:
     case E1000_DEV_ID_82571EB_FIBER:
     case E1000_DEV_ID_82571EB_SERDES:
+    case E1000_DEV_ID_82571EB_QUAD_COPPER:
             hw->mac_type = e1000_82571;
         break;
     case E1000_DEV_ID_82572EI_COPPER:
@@ -418,7 +421,7 @@ e1000_set_mac_type(struct e1000_hw *hw)
         return -E1000_ERR_MAC_TYPE;
     }
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_ich8lan:
         hw->swfwhw_semaphore_present = TRUE;
         hw->asf_firmware_present = TRUE;
@@ -456,7 +459,7 @@ e1000_set_media_type(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_set_media_type");
 
-    if(hw->mac_type != e1000_82543) {
+    if (hw->mac_type != e1000_82543) {
         /* tbi_compatibility is only valid on 82543 */
         hw->tbi_compatibility_en = FALSE;
     }
@@ -516,16 +519,16 @@ e1000_reset_hw(struct e1000_hw *hw)
     DEBUGFUNC("e1000_reset_hw");
 
     /* For 82542 (rev 2.0), disable MWI before issuing a device reset */
-    if(hw->mac_type == e1000_82542_rev2_0) {
+    if (hw->mac_type == e1000_82542_rev2_0) {
         DEBUGOUT("Disabling MWI on 82542 rev 2.0\n");
         e1000_pci_clear_mwi(hw);
     }
 
-    if(hw->bus_type == e1000_bus_type_pci_express) {
+    if (hw->bus_type == e1000_bus_type_pci_express) {
         /* Prevent the PCI-E bus from sticking if there is no TLP connection
          * on the last TLP read/write transaction when MAC is reset.
          */
-        if(e1000_disable_pciex_master(hw) != E1000_SUCCESS) {
+        if (e1000_disable_pciex_master(hw) != E1000_SUCCESS) {
             DEBUGOUT("PCI-E Master disable polling has failed.\n");
         }
     }
@@ -548,19 +551,19 @@ e1000_reset_hw(struct e1000_hw *hw)
     /* Delay to allow any outstanding PCI transactions to complete before
      * resetting the device
      */
-    msec_delay(10);
+    msleep(10);
 
     ctrl = E1000_READ_REG(hw, CTRL);
 
     /* Must reset the PHY before resetting the MAC */
-    if((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) {
+    if ((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) {
         E1000_WRITE_REG(hw, CTRL, (ctrl | E1000_CTRL_PHY_RST));
-        msec_delay(5);
+        msleep(5);
     }
 
     /* Must acquire the MDIO ownership before MAC reset.
      * Ownership defaults to firmware after a reset. */
-    if(hw->mac_type == e1000_82573) {
+    if (hw->mac_type == e1000_82573) {
         timeout = 10;
 
         extcnf_ctrl = E1000_READ_REG(hw, EXTCNF_CTRL);
@@ -570,14 +573,14 @@ e1000_reset_hw(struct e1000_hw *hw)
             E1000_WRITE_REG(hw, EXTCNF_CTRL, extcnf_ctrl);
             extcnf_ctrl = E1000_READ_REG(hw, EXTCNF_CTRL);
 
-            if(extcnf_ctrl & E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP)
+            if (extcnf_ctrl & E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP)
                 break;
             else
                 extcnf_ctrl |= E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP;
 
-            msec_delay(2);
+            msleep(2);
             timeout--;
-        } while(timeout);
+        } while (timeout);
     }
 
     /* Workaround for ICH8 bit corruption issue in FIFO memory */
@@ -595,7 +598,7 @@ e1000_reset_hw(struct e1000_hw *hw)
      */
     DEBUGOUT("Issuing a global reset to MAC\n");
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
         case e1000_82544:
         case e1000_82540:
         case e1000_82545:
@@ -623,7 +626,7 @@ e1000_reset_hw(struct e1000_hw *hw)
 
             e1000_get_software_flag(hw);
             E1000_WRITE_REG(hw, CTRL, (ctrl | E1000_CTRL_RST));
-            msec_delay(5);
+            msleep(5);
             break;
         default:
             E1000_WRITE_REG(hw, CTRL, (ctrl | E1000_CTRL_RST));
@@ -634,7 +637,7 @@ e1000_reset_hw(struct e1000_hw *hw)
      * device.  Later controllers reload the EEPROM automatically, so just wait
      * for reload to complete.
      */
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
         case e1000_82542_rev2_0:
         case e1000_82542_rev2_1:
         case e1000_82543:
@@ -646,14 +649,14 @@ e1000_reset_hw(struct e1000_hw *hw)
             E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext);
             E1000_WRITE_FLUSH(hw);
             /* Wait for EEPROM reload */
-            msec_delay(2);
+            msleep(2);
             break;
         case e1000_82541:
         case e1000_82541_rev_2:
         case e1000_82547:
         case e1000_82547_rev_2:
             /* Wait for EEPROM reload */
-            msec_delay(20);
+            msleep(20);
             break;
         case e1000_82573:
             if (e1000_is_onboard_nvm_eeprom(hw) == FALSE) {
@@ -669,24 +672,24 @@ e1000_reset_hw(struct e1000_hw *hw)
         case e1000_ich8lan:
         case e1000_80003es2lan:
             ret_val = e1000_get_auto_rd_done(hw);
-            if(ret_val)
+            if (ret_val)
                 /* We don't want to continue accessing MAC registers. */
                 return ret_val;
             break;
         default:
             /* Wait for EEPROM reload (it happens automatically) */
-            msec_delay(5);
+            msleep(5);
             break;
     }
 
     /* Disable HW ARPs on ASF enabled adapters */
-    if(hw->mac_type >= e1000_82540 && hw->mac_type <= e1000_82547_rev_2) {
+    if (hw->mac_type >= e1000_82540 && hw->mac_type <= e1000_82547_rev_2) {
         manc = E1000_READ_REG(hw, MANC);
         manc &= ~(E1000_MANC_ARP_EN);
         E1000_WRITE_REG(hw, MANC, manc);
     }
 
-    if((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) {
+    if ((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) {
         e1000_phy_init_script(hw);
 
         /* Configure activity LED after PHY reset */
@@ -704,8 +707,8 @@ e1000_reset_hw(struct e1000_hw *hw)
     icr = E1000_READ_REG(hw, ICR);
 
     /* If MWI was previously enabled, reenable it. */
-    if(hw->mac_type == e1000_82542_rev2_0) {
-        if(hw->pci_cmd_word & CMD_MEM_WRT_INVALIDATE)
+    if (hw->mac_type == e1000_82542_rev2_0) {
+        if (hw->pci_cmd_word & PCI_COMMAND_INVALIDATE)
             e1000_pci_set_mwi(hw);
     }
 
@@ -745,9 +748,20 @@ e1000_init_hw(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_init_hw");
 
+    /* force full DMA clock frequency for 10/100 on ICH8 A0-B0 */
+    if (hw->mac_type == e1000_ich8lan) {
+        reg_data = E1000_READ_REG(hw, TARC0);
+        reg_data |= 0x30000000;
+        E1000_WRITE_REG(hw, TARC0, reg_data);
+
+        reg_data = E1000_READ_REG(hw, STATUS);
+        reg_data &= ~0x80000000;
+        E1000_WRITE_REG(hw, STATUS, reg_data);
+    }
+
     /* Initialize Identification LED */
     ret_val = e1000_id_led_init(hw);
-    if(ret_val) {
+    if (ret_val) {
         DEBUGOUT("Error Initializing Identification LED\n");
         return ret_val;
     }
@@ -765,12 +779,12 @@ e1000_init_hw(struct e1000_hw *hw)
     }
 
     /* For 82542 (rev 2.0), disable MWI and put the receiver into reset */
-    if(hw->mac_type == e1000_82542_rev2_0) {
+    if (hw->mac_type == e1000_82542_rev2_0) {
         DEBUGOUT("Disabling MWI on 82542 rev 2.0\n");
         e1000_pci_clear_mwi(hw);
         E1000_WRITE_REG(hw, RCTL, E1000_RCTL_RST);
         E1000_WRITE_FLUSH(hw);
-        msec_delay(5);
+        msleep(5);
     }
 
     /* Setup the receive address. This involves initializing all of the Receive
@@ -779,11 +793,11 @@ e1000_init_hw(struct e1000_hw *hw)
     e1000_init_rx_addrs(hw);
 
     /* For 82542 (rev 2.0), take the receiver out of reset and enable MWI */
-    if(hw->mac_type == e1000_82542_rev2_0) {
+    if (hw->mac_type == e1000_82542_rev2_0) {
         E1000_WRITE_REG(hw, RCTL, 0);
         E1000_WRITE_FLUSH(hw);
-        msec_delay(1);
-        if(hw->pci_cmd_word & CMD_MEM_WRT_INVALIDATE)
+        msleep(1);
+        if (hw->pci_cmd_word & PCI_COMMAND_INVALIDATE)
             e1000_pci_set_mwi(hw);
     }
 
@@ -792,7 +806,7 @@ e1000_init_hw(struct e1000_hw *hw)
     mta_size = E1000_MC_TBL_SIZE;
     if (hw->mac_type == e1000_ich8lan)
         mta_size = E1000_MC_TBL_SIZE_ICH8LAN;
-    for(i = 0; i < mta_size; i++) {
+    for (i = 0; i < mta_size; i++) {
         E1000_WRITE_REG_ARRAY(hw, MTA, i, 0);
         /* use write flush to prevent Memory Write Block (MWB) from
          * occuring when accessing our register space */
@@ -804,18 +818,18 @@ e1000_init_hw(struct e1000_hw *hw)
      * gives equal priority to transmits and receives.  Valid only on
      * 82542 and 82543 silicon.
      */
-    if(hw->dma_fairness && hw->mac_type <= e1000_82543) {
+    if (hw->dma_fairness && hw->mac_type <= e1000_82543) {
         ctrl = E1000_READ_REG(hw, CTRL);
         E1000_WRITE_REG(hw, CTRL, ctrl | E1000_CTRL_PRIOR);
     }
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_82545_rev_3:
     case e1000_82546_rev_3:
         break;
     default:
         /* Workaround for PCI-X problem when BIOS sets MMRBC incorrectly. */
-        if(hw->bus_type == e1000_bus_type_pcix) {
+        if (hw->bus_type == e1000_bus_type_pcix) {
             e1000_read_pci_cfg(hw, PCIX_COMMAND_REGISTER, &pcix_cmd_word);
             e1000_read_pci_cfg(hw, PCIX_STATUS_REGISTER_HI,
                 &pcix_stat_hi_word);
@@ -823,9 +837,9 @@ e1000_init_hw(struct e1000_hw *hw)
                 PCIX_COMMAND_MMRBC_SHIFT;
             stat_mmrbc = (pcix_stat_hi_word & PCIX_STATUS_HI_MMRBC_MASK) >>
                 PCIX_STATUS_HI_MMRBC_SHIFT;
-            if(stat_mmrbc == PCIX_STATUS_HI_MMRBC_4K)
+            if (stat_mmrbc == PCIX_STATUS_HI_MMRBC_4K)
                 stat_mmrbc = PCIX_STATUS_HI_MMRBC_2K;
-            if(cmd_mmrbc > stat_mmrbc) {
+            if (cmd_mmrbc > stat_mmrbc) {
                 pcix_cmd_word &= ~PCIX_COMMAND_MMRBC_MASK;
                 pcix_cmd_word |= stat_mmrbc << PCIX_COMMAND_MMRBC_SHIFT;
                 e1000_write_pci_cfg(hw, PCIX_COMMAND_REGISTER,
@@ -837,13 +851,13 @@ e1000_init_hw(struct e1000_hw *hw)
 
     /* More time needed for PHY to initialize */
     if (hw->mac_type == e1000_ich8lan)
-        msec_delay(15);
+        msleep(15);
 
     /* Call a subroutine to configure the link and setup flow control. */
     ret_val = e1000_setup_link(hw);
 
     /* Set the transmit descriptor write-back policy */
-    if(hw->mac_type > e1000_82544) {
+    if (hw->mac_type > e1000_82544) {
         ctrl = E1000_READ_REG(hw, TXDCTL);
         ctrl = (ctrl & ~E1000_TXDCTL_WTHRESH) | E1000_TXDCTL_FULL_TX_DESC_WB;
         switch (hw->mac_type) {
@@ -894,14 +908,13 @@ e1000_init_hw(struct e1000_hw *hw)
     case e1000_ich8lan:
         ctrl = E1000_READ_REG(hw, TXDCTL1);
         ctrl = (ctrl & ~E1000_TXDCTL_WTHRESH) | E1000_TXDCTL_FULL_TX_DESC_WB;
-        if(hw->mac_type >= e1000_82571)
+        if (hw->mac_type >= e1000_82571)
             ctrl |= E1000_TXDCTL_COUNT_DESC;
         E1000_WRITE_REG(hw, TXDCTL1, ctrl);
         break;
     }
 
 
-
     if (hw->mac_type == e1000_82573) {
         uint32_t gcr = E1000_READ_REG(hw, GCR);
         gcr |= E1000_GCR_L1_ACT_WITHOUT_L0S_RX;
@@ -945,10 +958,10 @@ e1000_adjust_serdes_amplitude(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_adjust_serdes_amplitude");
 
-    if(hw->media_type != e1000_media_type_internal_serdes)
+    if (hw->media_type != e1000_media_type_internal_serdes)
         return E1000_SUCCESS;
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_82545_rev_3:
     case e1000_82546_rev_3:
         break;
@@ -961,11 +974,11 @@ e1000_adjust_serdes_amplitude(struct e1000_hw *hw)
         return ret_val;
     }
 
-    if(eeprom_data != EEPROM_RESERVED_WORD) {
+    if (eeprom_data != EEPROM_RESERVED_WORD) {
         /* Adjust SERDES output amplitude only. */
         eeprom_data &= EEPROM_SERDES_AMPLITUDE_MASK;
         ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_EXT_CTRL, eeprom_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     }
 
@@ -1033,10 +1046,10 @@ e1000_setup_link(struct e1000_hw *hw)
      * in case we get disconnected and then reconnected into a different
      * hub or switch with different Flow Control capabilities.
      */
-    if(hw->mac_type == e1000_82542_rev2_0)
+    if (hw->mac_type == e1000_82542_rev2_0)
         hw->fc &= (~e1000_fc_tx_pause);
 
-    if((hw->mac_type < e1000_82543) && (hw->report_tx_early == 1))
+    if ((hw->mac_type < e1000_82543) && (hw->report_tx_early == 1))
         hw->fc &= (~e1000_fc_rx_pause);
 
     hw->original_fc = hw->fc;
@@ -1051,12 +1064,12 @@ e1000_setup_link(struct e1000_hw *hw)
      * or e1000_phy_setup() is called.
      */
     if (hw->mac_type == e1000_82543) {
-		ret_val = e1000_read_eeprom(hw, EEPROM_INIT_CONTROL2_REG,
-									1, &eeprom_data);
-		if (ret_val) {
-			DEBUGOUT("EEPROM Read Error\n");
-			return -E1000_ERR_EEPROM;
-		}
+        ret_val = e1000_read_eeprom(hw, EEPROM_INIT_CONTROL2_REG,
+                                    1, &eeprom_data);
+        if (ret_val) {
+            DEBUGOUT("EEPROM Read Error\n");
+            return -E1000_ERR_EEPROM;
+        }
         ctrl_ext = ((eeprom_data & EEPROM_WORD0F_SWPDIO_EXT) <<
                     SWDPIO__EXT_SHIFT);
         E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext);
@@ -1089,14 +1102,14 @@ e1000_setup_link(struct e1000_hw *hw)
      * ability to transmit pause frames in not enabled, then these
      * registers will be set to 0.
      */
-    if(!(hw->fc & e1000_fc_tx_pause)) {
+    if (!(hw->fc & e1000_fc_tx_pause)) {
         E1000_WRITE_REG(hw, FCRTL, 0);
         E1000_WRITE_REG(hw, FCRTH, 0);
     } else {
         /* We need to set up the Receive Threshold high and low water marks
          * as well as (optionally) enabling the transmission of XON frames.
          */
-        if(hw->fc_send_xon) {
+        if (hw->fc_send_xon) {
             E1000_WRITE_REG(hw, FCRTL, (hw->fc_low_water | E1000_FCRTL_XONE));
             E1000_WRITE_REG(hw, FCRTH, hw->fc_high_water);
         } else {
@@ -1143,11 +1156,11 @@ e1000_setup_fiber_serdes_link(struct e1000_hw *hw)
      * the EEPROM.
      */
     ctrl = E1000_READ_REG(hw, CTRL);
-    if(hw->media_type == e1000_media_type_fiber)
+    if (hw->media_type == e1000_media_type_fiber)
         signal = (hw->mac_type > e1000_82544) ? E1000_CTRL_SWDPIN1 : 0;
 
     ret_val = e1000_adjust_serdes_amplitude(hw);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     /* Take the link out of reset */
@@ -1155,7 +1168,7 @@ e1000_setup_fiber_serdes_link(struct e1000_hw *hw)
 
     /* Adjust VCO speed to improve BER performance */
     ret_val = e1000_set_vco_speed(hw);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     e1000_config_collision_dist(hw);
@@ -1218,7 +1231,7 @@ e1000_setup_fiber_serdes_link(struct e1000_hw *hw)
     E1000_WRITE_FLUSH(hw);
 
     hw->txcw = txcw;
-    msec_delay(1);
+    msleep(1);
 
     /* If we have a signal (the cable is plugged in) then poll for a "Link-Up"
      * indication in the Device Status Register.  Time-out if a link isn't
@@ -1226,15 +1239,15 @@ e1000_setup_fiber_serdes_link(struct e1000_hw *hw)
      * less than 500 milliseconds even if the other end is doing it in SW).
      * For internal serdes, we just assume a signal is present, then poll.
      */
-    if(hw->media_type == e1000_media_type_internal_serdes ||
+    if (hw->media_type == e1000_media_type_internal_serdes ||
        (E1000_READ_REG(hw, CTRL) & E1000_CTRL_SWDPIN1) == signal) {
         DEBUGOUT("Looking for Link\n");
-        for(i = 0; i < (LINK_UP_TIMEOUT / 10); i++) {
-            msec_delay(10);
+        for (i = 0; i < (LINK_UP_TIMEOUT / 10); i++) {
+            msleep(10);
             status = E1000_READ_REG(hw, STATUS);
-            if(status & E1000_STATUS_LU) break;
+            if (status & E1000_STATUS_LU) break;
         }
-        if(i == (LINK_UP_TIMEOUT / 10)) {
+        if (i == (LINK_UP_TIMEOUT / 10)) {
             DEBUGOUT("Never got a valid link from auto-neg!!!\n");
             hw->autoneg_failed = 1;
             /* AutoNeg failed to achieve a link, so we'll call
@@ -1243,7 +1256,7 @@ e1000_setup_fiber_serdes_link(struct e1000_hw *hw)
              * non-autonegotiating link partners.
              */
             ret_val = e1000_check_for_link(hw);
-            if(ret_val) {
+            if (ret_val) {
                 DEBUGOUT("Error while checking for link\n");
                 return ret_val;
             }
@@ -1277,7 +1290,7 @@ e1000_copper_link_preconfig(struct e1000_hw *hw)
      * the PHY speed and duplex configuration is. In addition, we need to
      * perform a hardware reset on the PHY to take it out of reset.
      */
-    if(hw->mac_type > e1000_82543) {
+    if (hw->mac_type > e1000_82543) {
         ctrl |= E1000_CTRL_SLU;
         ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX);
         E1000_WRITE_REG(hw, CTRL, ctrl);
@@ -1285,13 +1298,13 @@ e1000_copper_link_preconfig(struct e1000_hw *hw)
         ctrl |= (E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX | E1000_CTRL_SLU);
         E1000_WRITE_REG(hw, CTRL, ctrl);
         ret_val = e1000_phy_hw_reset(hw);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     }
 
     /* Make sure we have a valid PHY */
     ret_val = e1000_detect_gig_phy(hw);
-    if(ret_val) {
+    if (ret_val) {
         DEBUGOUT("Error, did not detect valid phy.\n");
         return ret_val;
     }
@@ -1299,19 +1312,19 @@ e1000_copper_link_preconfig(struct e1000_hw *hw)
 
     /* Set PHY to class A mode (if necessary) */
     ret_val = e1000_set_phy_mode(hw);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
-    if((hw->mac_type == e1000_82545_rev_3) ||
+    if ((hw->mac_type == e1000_82545_rev_3) ||
        (hw->mac_type == e1000_82546_rev_3)) {
         ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data);
         phy_data |= 0x00000008;
         ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data);
     }
 
-    if(hw->mac_type <= e1000_82543 ||
-       hw->mac_type == e1000_82541 || hw->mac_type == e1000_82547 ||
-       hw->mac_type == e1000_82541_rev_2 || hw->mac_type == e1000_82547_rev_2)
+    if (hw->mac_type <= e1000_82543 ||
+        hw->mac_type == e1000_82541 || hw->mac_type == e1000_82547 ||
+        hw->mac_type == e1000_82541_rev_2 || hw->mac_type == e1000_82547_rev_2)
         hw->phy_reset_disable = FALSE;
 
    return E1000_SUCCESS;
@@ -1341,8 +1354,8 @@ e1000_copper_link_igp_setup(struct e1000_hw *hw)
         return ret_val;
     }
 
-    /* Wait 10ms for MAC to configure PHY from eeprom settings */
-    msec_delay(15);
+    /* Wait 15ms for MAC to configure PHY from eeprom settings */
+    msleep(15);
     if (hw->mac_type != e1000_ich8lan) {
     /* Configure activity LED after PHY reset */
     led_ctrl = E1000_READ_REG(hw, LEDCTL);
@@ -1351,11 +1364,14 @@ e1000_copper_link_igp_setup(struct e1000_hw *hw)
     E1000_WRITE_REG(hw, LEDCTL, led_ctrl);
     }
 
-    /* disable lplu d3 during driver init */
-    ret_val = e1000_set_d3_lplu_state(hw, FALSE);
-    if (ret_val) {
-        DEBUGOUT("Error Disabling LPLU D3\n");
-        return ret_val;
+    /* The NVM settings will configure LPLU in D3 for IGP2 and IGP3 PHYs */
+    if (hw->phy_type == e1000_phy_igp) {
+        /* disable lplu d3 during driver init */
+        ret_val = e1000_set_d3_lplu_state(hw, FALSE);
+        if (ret_val) {
+            DEBUGOUT("Error Disabling LPLU D3\n");
+            return ret_val;
+        }
     }
 
     /* disable lplu d0 during driver init */
@@ -1393,45 +1409,45 @@ e1000_copper_link_igp_setup(struct e1000_hw *hw)
         }
     }
     ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CTRL, phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     /* set auto-master slave resolution settings */
-    if(hw->autoneg) {
+    if (hw->autoneg) {
         e1000_ms_type phy_ms_setting = hw->master_slave;
 
-        if(hw->ffe_config_state == e1000_ffe_config_active)
+        if (hw->ffe_config_state == e1000_ffe_config_active)
             hw->ffe_config_state = e1000_ffe_config_enabled;
 
-        if(hw->dsp_config_state == e1000_dsp_config_activated)
+        if (hw->dsp_config_state == e1000_dsp_config_activated)
             hw->dsp_config_state = e1000_dsp_config_enabled;
 
         /* when autonegotiation advertisment is only 1000Mbps then we
           * should disable SmartSpeed and enable Auto MasterSlave
           * resolution as hardware default. */
-        if(hw->autoneg_advertised == ADVERTISE_1000_FULL) {
+        if (hw->autoneg_advertised == ADVERTISE_1000_FULL) {
             /* Disable SmartSpeed */
-            ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG, &phy_data);
-            if(ret_val)
+            ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
+                                         &phy_data);
+            if (ret_val)
                 return ret_val;
             phy_data &= ~IGP01E1000_PSCFR_SMART_SPEED;
-            ret_val = e1000_write_phy_reg(hw,
-                                                  IGP01E1000_PHY_PORT_CONFIG,
-                                                  phy_data);
-            if(ret_val)
+            ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
+                                          phy_data);
+            if (ret_val)
                 return ret_val;
             /* Set auto Master/Slave resolution process */
             ret_val = e1000_read_phy_reg(hw, PHY_1000T_CTRL, &phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
             phy_data &= ~CR_1000T_MS_ENABLE;
             ret_val = e1000_write_phy_reg(hw, PHY_1000T_CTRL, phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         }
 
         ret_val = e1000_read_phy_reg(hw, PHY_1000T_CTRL, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         /* load defaults for future use */
@@ -1455,7 +1471,7 @@ e1000_copper_link_igp_setup(struct e1000_hw *hw)
             break;
         }
         ret_val = e1000_write_phy_reg(hw, PHY_1000T_CTRL, phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     }
 
@@ -1476,12 +1492,12 @@ e1000_copper_link_ggp_setup(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_copper_link_ggp_setup");
 
-    if(!hw->phy_reset_disable) {
+    if (!hw->phy_reset_disable) {
 
         /* Enable CRS on TX for half-duplex operation. */
         ret_val = e1000_read_phy_reg(hw, GG82563_PHY_MAC_SPEC_CTRL,
                                      &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_data |= GG82563_MSCR_ASSERT_CRS_ON_TX;
@@ -1490,7 +1506,7 @@ e1000_copper_link_ggp_setup(struct e1000_hw *hw)
 
         ret_val = e1000_write_phy_reg(hw, GG82563_PHY_MAC_SPEC_CTRL,
                                       phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         /* Options:
@@ -1501,7 +1517,7 @@ e1000_copper_link_ggp_setup(struct e1000_hw *hw)
          *   3 - Auto for 1000Base-T only (MDI-X for 10/100Base-T modes)
          */
         ret_val = e1000_read_phy_reg(hw, GG82563_PHY_SPEC_CTRL, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_data &= ~GG82563_PSCR_CROSSOVER_MODE_MASK;
@@ -1526,11 +1542,11 @@ e1000_copper_link_ggp_setup(struct e1000_hw *hw)
          *   1 - Enabled
          */
         phy_data &= ~GG82563_PSCR_POLARITY_REVERSAL_DISABLE;
-        if(hw->disable_polarity_correction == 1)
+        if (hw->disable_polarity_correction == 1)
             phy_data |= GG82563_PSCR_POLARITY_REVERSAL_DISABLE;
         ret_val = e1000_write_phy_reg(hw, GG82563_PHY_SPEC_CTRL, phy_data);
 
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         /* SW Reset the PHY so all changes take effect */
@@ -1586,9 +1602,9 @@ e1000_copper_link_ggp_setup(struct e1000_hw *hw)
                 return ret_val;
 
             phy_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER;
-
             ret_val = e1000_write_phy_reg(hw, GG82563_PHY_KMRN_MODE_CTRL,
                                           phy_data);
+
             if (ret_val)
                 return ret_val;
         }
@@ -1623,12 +1639,12 @@ e1000_copper_link_mgp_setup(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_copper_link_mgp_setup");
 
-    if(hw->phy_reset_disable)
+    if (hw->phy_reset_disable)
         return E1000_SUCCESS;
 
     /* Enable CRS on TX. This must be set for half-duplex operation. */
     ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     phy_data |= M88E1000_PSCR_ASSERT_CRS_ON_TX;
@@ -1665,7 +1681,7 @@ e1000_copper_link_mgp_setup(struct e1000_hw *hw)
      *   1 - Enabled
      */
     phy_data &= ~M88E1000_PSCR_POLARITY_REVERSAL;
-    if(hw->disable_polarity_correction == 1)
+    if (hw->disable_polarity_correction == 1)
         phy_data |= M88E1000_PSCR_POLARITY_REVERSAL;
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data);
     if (ret_val)
@@ -1705,7 +1721,7 @@ e1000_copper_link_mgp_setup(struct e1000_hw *hw)
 
     /* SW Reset the PHY so all changes take effect */
     ret_val = e1000_phy_reset(hw);
-    if(ret_val) {
+    if (ret_val) {
         DEBUGOUT("Error Resetting the PHY\n");
         return ret_val;
     }
@@ -1735,7 +1751,7 @@ e1000_copper_link_autoneg(struct e1000_hw *hw)
     /* If autoneg_advertised is zero, we assume it was not defaulted
      * by the calling code so we set to advertise full capability.
      */
-    if(hw->autoneg_advertised == 0)
+    if (hw->autoneg_advertised == 0)
         hw->autoneg_advertised = AUTONEG_ADVERTISE_SPEED_DEFAULT;
 
     /* IFE phy only supports 10/100 */
@@ -1744,7 +1760,7 @@ e1000_copper_link_autoneg(struct e1000_hw *hw)
 
     DEBUGOUT("Reconfiguring auto-neg advertisement params\n");
     ret_val = e1000_phy_setup_autoneg(hw);
-    if(ret_val) {
+    if (ret_val) {
         DEBUGOUT("Error Setting up Auto-Negotiation\n");
         return ret_val;
     }
@@ -1754,20 +1770,20 @@ e1000_copper_link_autoneg(struct e1000_hw *hw)
      * the Auto Neg Restart bit in the PHY control register.
      */
     ret_val = e1000_read_phy_reg(hw, PHY_CTRL, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     phy_data |= (MII_CR_AUTO_NEG_EN | MII_CR_RESTART_AUTO_NEG);
     ret_val = e1000_write_phy_reg(hw, PHY_CTRL, phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     /* Does the user want to wait for Auto-Neg to complete here, or
      * check at a later time (for example, callback routine).
      */
-    if(hw->wait_autoneg_complete) {
+    if (hw->wait_autoneg_complete) {
         ret_val = e1000_wait_autoneg(hw);
-        if(ret_val) {
+        if (ret_val) {
             DEBUGOUT("Error while waiting for autoneg to complete\n");
             return ret_val;
         }
@@ -1778,7 +1794,6 @@ e1000_copper_link_autoneg(struct e1000_hw *hw)
     return E1000_SUCCESS;
 }
 
-
 /******************************************************************************
 * Config the MAC and the PHY after link is up.
 *   1) Set up the MAC to the current PHY speed/duplex
@@ -1797,25 +1812,25 @@ e1000_copper_link_postconfig(struct e1000_hw *hw)
     int32_t ret_val;
     DEBUGFUNC("e1000_copper_link_postconfig");
 
-    if(hw->mac_type >= e1000_82544) {
+    if (hw->mac_type >= e1000_82544) {
         e1000_config_collision_dist(hw);
     } else {
         ret_val = e1000_config_mac_to_phy(hw);
-        if(ret_val) {
+        if (ret_val) {
             DEBUGOUT("Error configuring MAC to PHY settings\n");
             return ret_val;
         }
     }
     ret_val = e1000_config_fc_after_link_up(hw);
-    if(ret_val) {
+    if (ret_val) {
         DEBUGOUT("Error Configuring Flow Control\n");
         return ret_val;
     }
 
     /* Config DSP to improve Giga link quality */
-    if(hw->phy_type == e1000_phy_igp) {
+    if (hw->phy_type == e1000_phy_igp) {
         ret_val = e1000_config_dsp_after_link_change(hw, TRUE);
-        if(ret_val) {
+        if (ret_val) {
             DEBUGOUT("Error Configuring DSP after link up\n");
             return ret_val;
         }
@@ -1861,7 +1876,7 @@ e1000_setup_copper_link(struct e1000_hw *hw)
 
     /* Check if it is a valid PHY and set PHY mode if necessary. */
     ret_val = e1000_copper_link_preconfig(hw);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     switch (hw->mac_type) {
@@ -1882,30 +1897,30 @@ e1000_setup_copper_link(struct e1000_hw *hw)
         hw->phy_type == e1000_phy_igp_3 ||
         hw->phy_type == e1000_phy_igp_2) {
         ret_val = e1000_copper_link_igp_setup(hw);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     } else if (hw->phy_type == e1000_phy_m88) {
         ret_val = e1000_copper_link_mgp_setup(hw);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     } else if (hw->phy_type == e1000_phy_gg82563) {
         ret_val = e1000_copper_link_ggp_setup(hw);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     }
 
-    if(hw->autoneg) {
+    if (hw->autoneg) {
         /* Setup autoneg and flow control advertisement
           * and perform autonegotiation */
         ret_val = e1000_copper_link_autoneg(hw);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     } else {
         /* PHY will be set to 10H, 10F, 100H,or 100F
           * depending on value from forced_speed_duplex. */
         DEBUGOUT("Forcing speed and duplex\n");
         ret_val = e1000_phy_force_speed_duplex(hw);
-        if(ret_val) {
+        if (ret_val) {
             DEBUGOUT("Error Forcing Speed and Duplex\n");
             return ret_val;
         }
@@ -1914,18 +1929,18 @@ e1000_setup_copper_link(struct e1000_hw *hw)
     /* Check link status. Wait up to 100 microseconds for link to become
      * valid.
      */
-    for(i = 0; i < 10; i++) {
+    for (i = 0; i < 10; i++) {
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
-        if(phy_data & MII_SR_LINK_STATUS) {
+        if (phy_data & MII_SR_LINK_STATUS) {
             /* Config the MAC and PHY after link is up */
             ret_val = e1000_copper_link_postconfig(hw);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             DEBUGOUT("Valid link established!!!\n");
@@ -2027,7 +2042,7 @@ e1000_phy_setup_autoneg(struct e1000_hw *hw)
 
     /* Read the MII Auto-Neg Advertisement Register (Address 4). */
     ret_val = e1000_read_phy_reg(hw, PHY_AUTONEG_ADV, &mii_autoneg_adv_reg);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     if (hw->phy_type != e1000_phy_ife) {
@@ -2055,36 +2070,36 @@ e1000_phy_setup_autoneg(struct e1000_hw *hw)
     DEBUGOUT1("autoneg_advertised %x\n", hw->autoneg_advertised);
 
     /* Do we want to advertise 10 Mb Half Duplex? */
-    if(hw->autoneg_advertised & ADVERTISE_10_HALF) {
+    if (hw->autoneg_advertised & ADVERTISE_10_HALF) {
         DEBUGOUT("Advertise 10mb Half duplex\n");
         mii_autoneg_adv_reg |= NWAY_AR_10T_HD_CAPS;
     }
 
     /* Do we want to advertise 10 Mb Full Duplex? */
-    if(hw->autoneg_advertised & ADVERTISE_10_FULL) {
+    if (hw->autoneg_advertised & ADVERTISE_10_FULL) {
         DEBUGOUT("Advertise 10mb Full duplex\n");
         mii_autoneg_adv_reg |= NWAY_AR_10T_FD_CAPS;
     }
 
     /* Do we want to advertise 100 Mb Half Duplex? */
-    if(hw->autoneg_advertised & ADVERTISE_100_HALF) {
+    if (hw->autoneg_advertised & ADVERTISE_100_HALF) {
         DEBUGOUT("Advertise 100mb Half duplex\n");
         mii_autoneg_adv_reg |= NWAY_AR_100TX_HD_CAPS;
     }
 
     /* Do we want to advertise 100 Mb Full Duplex? */
-    if(hw->autoneg_advertised & ADVERTISE_100_FULL) {
+    if (hw->autoneg_advertised & ADVERTISE_100_FULL) {
         DEBUGOUT("Advertise 100mb Full duplex\n");
         mii_autoneg_adv_reg |= NWAY_AR_100TX_FD_CAPS;
     }
 
     /* We do not allow the Phy to advertise 1000 Mb Half Duplex */
-    if(hw->autoneg_advertised & ADVERTISE_1000_HALF) {
+    if (hw->autoneg_advertised & ADVERTISE_1000_HALF) {
         DEBUGOUT("Advertise 1000mb Half duplex requested, request denied!\n");
     }
 
     /* Do we want to advertise 1000 Mb Full Duplex? */
-    if(hw->autoneg_advertised & ADVERTISE_1000_FULL) {
+    if (hw->autoneg_advertised & ADVERTISE_1000_FULL) {
         DEBUGOUT("Advertise 1000mb Full duplex\n");
         mii_1000t_ctrl_reg |= CR_1000T_FD_CAPS;
         if (hw->phy_type == e1000_phy_ife) {
@@ -2146,7 +2161,7 @@ e1000_phy_setup_autoneg(struct e1000_hw *hw)
     }
 
     ret_val = e1000_write_phy_reg(hw, PHY_AUTONEG_ADV, mii_autoneg_adv_reg);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     DEBUGOUT1("Auto-Neg Advertising %x\n", mii_autoneg_adv_reg);
@@ -2194,7 +2209,7 @@ e1000_phy_force_speed_duplex(struct e1000_hw *hw)
 
     /* Read the MII Control Register. */
     ret_val = e1000_read_phy_reg(hw, PHY_CTRL, &mii_ctrl_reg);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     /* We need to disable autoneg in order to force link and duplex. */
@@ -2202,8 +2217,8 @@ e1000_phy_force_speed_duplex(struct e1000_hw *hw)
     mii_ctrl_reg &= ~MII_CR_AUTO_NEG_EN;
 
     /* Are we forcing Full or Half Duplex? */
-    if(hw->forced_speed_duplex == e1000_100_full ||
-       hw->forced_speed_duplex == e1000_10_full) {
+    if (hw->forced_speed_duplex == e1000_100_full ||
+        hw->forced_speed_duplex == e1000_10_full) {
         /* We want to force full duplex so we SET the full duplex bits in the
          * Device and MII Control Registers.
          */
@@ -2220,7 +2235,7 @@ e1000_phy_force_speed_duplex(struct e1000_hw *hw)
     }
 
     /* Are we forcing 100Mbps??? */
-    if(hw->forced_speed_duplex == e1000_100_full ||
+    if (hw->forced_speed_duplex == e1000_100_full ||
        hw->forced_speed_duplex == e1000_100_half) {
         /* Set the 100Mb bit and turn off the 1000Mb and 10Mb bits. */
         ctrl |= E1000_CTRL_SPD_100;
@@ -2243,7 +2258,7 @@ e1000_phy_force_speed_duplex(struct e1000_hw *hw)
     if ((hw->phy_type == e1000_phy_m88) ||
         (hw->phy_type == e1000_phy_gg82563)) {
         ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         /* Clear Auto-Crossover to force MDI manually. M88E1000 requires MDI
@@ -2251,7 +2266,7 @@ e1000_phy_force_speed_duplex(struct e1000_hw *hw)
          */
         phy_data &= ~M88E1000_PSCR_AUTO_X_MODE;
         ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         DEBUGOUT1("M88E1000 PSCR: %x \n", phy_data);
@@ -2275,20 +2290,20 @@ e1000_phy_force_speed_duplex(struct e1000_hw *hw)
          * forced whenever speed or duplex are forced.
          */
         ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CTRL, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_data &= ~IGP01E1000_PSCR_AUTO_MDIX;
         phy_data &= ~IGP01E1000_PSCR_FORCE_MDI_MDIX;
 
         ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CTRL, phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     }
 
     /* Write back the modified PHY MII control register. */
     ret_val = e1000_write_phy_reg(hw, PHY_CTRL, mii_ctrl_reg);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     udelay(1);
@@ -2300,50 +2315,50 @@ e1000_phy_force_speed_duplex(struct e1000_hw *hw)
      * only if the user has set wait_autoneg_complete to 1, which is
      * the default.
      */
-    if(hw->wait_autoneg_complete) {
+    if (hw->wait_autoneg_complete) {
         /* We will wait for autoneg to complete. */
         DEBUGOUT("Waiting for forced speed/duplex link.\n");
         mii_status_reg = 0;
 
         /* We will wait for autoneg to complete or 4.5 seconds to expire. */
-        for(i = PHY_FORCE_TIME; i > 0; i--) {
+        for (i = PHY_FORCE_TIME; i > 0; i--) {
             /* Read the MII Status Register and wait for Auto-Neg Complete bit
              * to be set.
              */
             ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
-            if(mii_status_reg & MII_SR_LINK_STATUS) break;
-            msec_delay(100);
+            if (mii_status_reg & MII_SR_LINK_STATUS) break;
+            msleep(100);
         }
-        if((i == 0) &&
+        if ((i == 0) &&
            ((hw->phy_type == e1000_phy_m88) ||
             (hw->phy_type == e1000_phy_gg82563))) {
             /* We didn't get link.  Reset the DSP and wait again for link. */
             ret_val = e1000_phy_reset_dsp(hw);
-            if(ret_val) {
+            if (ret_val) {
                 DEBUGOUT("Error Resetting PHY DSP\n");
                 return ret_val;
             }
         }
         /* This loop will early-out if the link condition has been met.  */
-        for(i = PHY_FORCE_TIME; i > 0; i--) {
-            if(mii_status_reg & MII_SR_LINK_STATUS) break;
-            msec_delay(100);
+        for (i = PHY_FORCE_TIME; i > 0; i--) {
+            if (mii_status_reg & MII_SR_LINK_STATUS) break;
+            msleep(100);
             /* Read the MII Status Register and wait for Auto-Neg Complete bit
              * to be set.
              */
             ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         }
     }
@@ -2354,32 +2369,31 @@ e1000_phy_force_speed_duplex(struct e1000_hw *hw)
          * defaults back to a 2.5MHz clock when the PHY is reset.
          */
         ret_val = e1000_read_phy_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_data |= M88E1000_EPSCR_TX_CLK_25;
         ret_val = e1000_write_phy_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL, phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         /* In addition, because of the s/w reset above, we need to enable CRS on
          * TX.  This must be set for both full and half duplex operation.
          */
         ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_data |= M88E1000_PSCR_ASSERT_CRS_ON_TX;
         ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
-        if((hw->mac_type == e1000_82544 || hw->mac_type == e1000_82543) &&
-           (!hw->autoneg) &&
-           (hw->forced_speed_duplex == e1000_10_full ||
-            hw->forced_speed_duplex == e1000_10_half)) {
+        if ((hw->mac_type == e1000_82544 || hw->mac_type == e1000_82543) &&
+            (!hw->autoneg) && (hw->forced_speed_duplex == e1000_10_full ||
+             hw->forced_speed_duplex == e1000_10_half)) {
             ret_val = e1000_polarity_reversal_workaround(hw);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         }
     } else if (hw->phy_type == e1000_phy_gg82563) {
@@ -2470,10 +2484,10 @@ e1000_config_mac_to_phy(struct e1000_hw *hw)
      * registers depending on negotiated values.
      */
     ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_STATUS, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
-    if(phy_data & M88E1000_PSSR_DPLX)
+    if (phy_data & M88E1000_PSSR_DPLX)
         ctrl |= E1000_CTRL_FD;
     else
         ctrl &= ~E1000_CTRL_FD;
@@ -2483,9 +2497,9 @@ e1000_config_mac_to_phy(struct e1000_hw *hw)
     /* Set up speed in the Device Control register depending on
      * negotiated values.
      */
-    if((phy_data & M88E1000_PSSR_SPEED) == M88E1000_PSSR_1000MBS)
+    if ((phy_data & M88E1000_PSSR_SPEED) == M88E1000_PSSR_1000MBS)
         ctrl |= E1000_CTRL_SPD_1000;
-    else if((phy_data & M88E1000_PSSR_SPEED) == M88E1000_PSSR_100MBS)
+    else if ((phy_data & M88E1000_PSSR_SPEED) == M88E1000_PSSR_100MBS)
         ctrl |= E1000_CTRL_SPD_100;
 
     /* Write the configured values back to the Device Control Reg. */
@@ -2553,7 +2567,7 @@ e1000_force_mac_fc(struct e1000_hw *hw)
     }
 
     /* Disable TX Flow Control for 82542 (rev 2.0) */
-    if(hw->mac_type == e1000_82542_rev2_0)
+    if (hw->mac_type == e1000_82542_rev2_0)
         ctrl &= (~E1000_CTRL_TFCE);
 
     E1000_WRITE_REG(hw, CTRL, ctrl);
@@ -2587,11 +2601,12 @@ e1000_config_fc_after_link_up(struct e1000_hw *hw)
      * so we had to force link.  In this case, we need to force the
      * configuration of the MAC to match the "fc" parameter.
      */
-    if(((hw->media_type == e1000_media_type_fiber) && (hw->autoneg_failed)) ||
-       ((hw->media_type == e1000_media_type_internal_serdes) && (hw->autoneg_failed)) ||
-       ((hw->media_type == e1000_media_type_copper) && (!hw->autoneg))) {
+    if (((hw->media_type == e1000_media_type_fiber) && (hw->autoneg_failed)) ||
+        ((hw->media_type == e1000_media_type_internal_serdes) &&
+         (hw->autoneg_failed)) ||
+        ((hw->media_type == e1000_media_type_copper) && (!hw->autoneg))) {
         ret_val = e1000_force_mac_fc(hw);
-        if(ret_val) {
+        if (ret_val) {
             DEBUGOUT("Error forcing flow control settings\n");
             return ret_val;
         }
@@ -2602,19 +2617,19 @@ e1000_config_fc_after_link_up(struct e1000_hw *hw)
      * has completed, and if so, how the PHY and link partner has
      * flow control configured.
      */
-    if((hw->media_type == e1000_media_type_copper) && hw->autoneg) {
+    if ((hw->media_type == e1000_media_type_copper) && hw->autoneg) {
         /* Read the MII Status Register and check to see if AutoNeg
          * has completed.  We read this twice because this reg has
          * some "sticky" (latched) bits.
          */
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
-        if(mii_status_reg & MII_SR_AUTONEG_COMPLETE) {
+        if (mii_status_reg & MII_SR_AUTONEG_COMPLETE) {
             /* The AutoNeg process has completed, so we now need to
              * read both the Auto Negotiation Advertisement Register
              * (Address 4) and the Auto_Negotiation Base Page Ability
@@ -2623,11 +2638,11 @@ e1000_config_fc_after_link_up(struct e1000_hw *hw)
              */
             ret_val = e1000_read_phy_reg(hw, PHY_AUTONEG_ADV,
                                          &mii_nway_adv_reg);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
             ret_val = e1000_read_phy_reg(hw, PHY_LP_ABILITY,
                                          &mii_nway_lp_ability_reg);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             /* Two bits in the Auto Negotiation Advertisement Register
@@ -2664,15 +2679,15 @@ e1000_config_fc_after_link_up(struct e1000_hw *hw)
              *   1   |   DC    |   1   |   DC    | e1000_fc_full
              *
              */
-            if((mii_nway_adv_reg & NWAY_AR_PAUSE) &&
-               (mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE)) {
+            if ((mii_nway_adv_reg & NWAY_AR_PAUSE) &&
+                (mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE)) {
                 /* Now we need to check if the user selected RX ONLY
                  * of pause frames.  In this case, we had to advertise
                  * FULL flow control because we could not advertise RX
                  * ONLY. Hence, we must now check to see if we need to
                  * turn OFF  the TRANSMISSION of PAUSE frames.
                  */
-                if(hw->original_fc == e1000_fc_full) {
+                if (hw->original_fc == e1000_fc_full) {
                     hw->fc = e1000_fc_full;
                     DEBUGOUT("Flow Control = FULL.\n");
                 } else {
@@ -2688,10 +2703,10 @@ e1000_config_fc_after_link_up(struct e1000_hw *hw)
              *   0   |    1    |   1   |    1    | e1000_fc_tx_pause
              *
              */
-            else if(!(mii_nway_adv_reg & NWAY_AR_PAUSE) &&
-                    (mii_nway_adv_reg & NWAY_AR_ASM_DIR) &&
-                    (mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE) &&
-                    (mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) {
+            else if (!(mii_nway_adv_reg & NWAY_AR_PAUSE) &&
+                     (mii_nway_adv_reg & NWAY_AR_ASM_DIR) &&
+                     (mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE) &&
+                     (mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) {
                 hw->fc = e1000_fc_tx_pause;
                 DEBUGOUT("Flow Control = TX PAUSE frames only.\n");
             }
@@ -2703,10 +2718,10 @@ e1000_config_fc_after_link_up(struct e1000_hw *hw)
              *   1   |    1    |   0   |    1    | e1000_fc_rx_pause
              *
              */
-            else if((mii_nway_adv_reg & NWAY_AR_PAUSE) &&
-                    (mii_nway_adv_reg & NWAY_AR_ASM_DIR) &&
-                    !(mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE) &&
-                    (mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) {
+            else if ((mii_nway_adv_reg & NWAY_AR_PAUSE) &&
+                     (mii_nway_adv_reg & NWAY_AR_ASM_DIR) &&
+                     !(mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE) &&
+                     (mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) {
                 hw->fc = e1000_fc_rx_pause;
                 DEBUGOUT("Flow Control = RX PAUSE frames only.\n");
             }
@@ -2730,9 +2745,9 @@ e1000_config_fc_after_link_up(struct e1000_hw *hw)
              * be asked to delay transmission of packets than asking
              * our link partner to pause transmission of frames.
              */
-            else if((hw->original_fc == e1000_fc_none ||
-                     hw->original_fc == e1000_fc_tx_pause) ||
-                    hw->fc_strict_ieee) {
+            else if ((hw->original_fc == e1000_fc_none ||
+                      hw->original_fc == e1000_fc_tx_pause) ||
+                      hw->fc_strict_ieee) {
                 hw->fc = e1000_fc_none;
                 DEBUGOUT("Flow Control = NONE.\n");
             } else {
@@ -2745,19 +2760,19 @@ e1000_config_fc_after_link_up(struct e1000_hw *hw)
              * enabled per IEEE 802.3 spec.
              */
             ret_val = e1000_get_speed_and_duplex(hw, &speed, &duplex);
-            if(ret_val) {
+            if (ret_val) {
                 DEBUGOUT("Error getting link speed and duplex\n");
                 return ret_val;
             }
 
-            if(duplex == HALF_DUPLEX)
+            if (duplex == HALF_DUPLEX)
                 hw->fc = e1000_fc_none;
 
             /* Now we call a subroutine to actually force the MAC
              * controller to use the correct flow control settings.
              */
             ret_val = e1000_force_mac_fc(hw);
-            if(ret_val) {
+            if (ret_val) {
                 DEBUGOUT("Error forcing flow control settings\n");
                 return ret_val;
             }
@@ -2796,13 +2811,13 @@ e1000_check_for_link(struct e1000_hw *hw)
      * set when the optics detect a signal. On older adapters, it will be
      * cleared when there is a signal.  This applies to fiber media only.
      */
-    if((hw->media_type == e1000_media_type_fiber) ||
-       (hw->media_type == e1000_media_type_internal_serdes)) {
+    if ((hw->media_type == e1000_media_type_fiber) ||
+        (hw->media_type == e1000_media_type_internal_serdes)) {
         rxcw = E1000_READ_REG(hw, RXCW);
 
-        if(hw->media_type == e1000_media_type_fiber) {
+        if (hw->media_type == e1000_media_type_fiber) {
             signal = (hw->mac_type > e1000_82544) ? E1000_CTRL_SWDPIN1 : 0;
-            if(status & E1000_STATUS_LU)
+            if (status & E1000_STATUS_LU)
                 hw->get_link_status = FALSE;
         }
     }
@@ -2813,20 +2828,20 @@ e1000_check_for_link(struct e1000_hw *hw)
      * receive a Link Status Change interrupt or we have Rx Sequence
      * Errors.
      */
-    if((hw->media_type == e1000_media_type_copper) && hw->get_link_status) {
+    if ((hw->media_type == e1000_media_type_copper) && hw->get_link_status) {
         /* First we want to see if the MII Status Register reports
          * link.  If so, then we want to get the current speed/duplex
          * of the PHY.
          * Read the register twice since the link bit is sticky.
          */
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
-        if(phy_data & MII_SR_LINK_STATUS) {
+        if (phy_data & MII_SR_LINK_STATUS) {
             hw->get_link_status = FALSE;
             /* Check if there was DownShift, must be checked immediately after
              * link-up */
@@ -2840,10 +2855,10 @@ e1000_check_for_link(struct e1000_hw *hw)
              * happen due to the execution of this workaround.
              */
 
-            if((hw->mac_type == e1000_82544 || hw->mac_type == e1000_82543) &&
-               (!hw->autoneg) &&
-               (hw->forced_speed_duplex == e1000_10_full ||
-                hw->forced_speed_duplex == e1000_10_half)) {
+            if ((hw->mac_type == e1000_82544 || hw->mac_type == e1000_82543) &&
+                (!hw->autoneg) &&
+                (hw->forced_speed_duplex == e1000_10_full ||
+                 hw->forced_speed_duplex == e1000_10_half)) {
                 E1000_WRITE_REG(hw, IMC, 0xffffffff);
                 ret_val = e1000_polarity_reversal_workaround(hw);
                 icr = E1000_READ_REG(hw, ICR);
@@ -2860,7 +2875,7 @@ e1000_check_for_link(struct e1000_hw *hw)
         /* If we are forcing speed/duplex, then we simply return since
          * we have already determined whether we have link or not.
          */
-        if(!hw->autoneg) return -E1000_ERR_CONFIG;
+        if (!hw->autoneg) return -E1000_ERR_CONFIG;
 
         /* optimize the dsp settings for the igp phy */
         e1000_config_dsp_after_link_change(hw, TRUE);
@@ -2873,11 +2888,11 @@ e1000_check_for_link(struct e1000_hw *hw)
          * speed/duplex on the MAC to the current PHY speed/duplex
          * settings.
          */
-        if(hw->mac_type >= e1000_82544)
+        if (hw->mac_type >= e1000_82544)
             e1000_config_collision_dist(hw);
         else {
             ret_val = e1000_config_mac_to_phy(hw);
-            if(ret_val) {
+            if (ret_val) {
                 DEBUGOUT("Error configuring MAC to PHY settings\n");
                 return ret_val;
             }
@@ -2888,7 +2903,7 @@ e1000_check_for_link(struct e1000_hw *hw)
          * have had to re-autoneg with a different link partner.
          */
         ret_val = e1000_config_fc_after_link_up(hw);
-        if(ret_val) {
+        if (ret_val) {
             DEBUGOUT("Error configuring flow control\n");
             return ret_val;
         }
@@ -2900,7 +2915,7 @@ e1000_check_for_link(struct e1000_hw *hw)
          * at gigabit speed, then TBI compatibility is not needed.  If we are
          * at gigabit speed, we turn on TBI compatibility.
          */
-        if(hw->tbi_compatibility_en) {
+        if (hw->tbi_compatibility_en) {
             uint16_t speed, duplex;
             ret_val = e1000_get_speed_and_duplex(hw, &speed, &duplex);
             if (ret_val) {
@@ -2911,7 +2926,7 @@ e1000_check_for_link(struct e1000_hw *hw)
                 /* If link speed is not set to gigabit speed, we do not need
                  * to enable TBI compatibility.
                  */
-                if(hw->tbi_compatibility_on) {
+                if (hw->tbi_compatibility_on) {
                     /* If we previously were in the mode, turn it off. */
                     rctl = E1000_READ_REG(hw, RCTL);
                     rctl &= ~E1000_RCTL_SBP;
@@ -2924,7 +2939,7 @@ e1000_check_for_link(struct e1000_hw *hw)
                  * packets. Some frames have an additional byte on the end and
                  * will look like CRC errors to to the hardware.
                  */
-                if(!hw->tbi_compatibility_on) {
+                if (!hw->tbi_compatibility_on) {
                     hw->tbi_compatibility_on = TRUE;
                     rctl = E1000_READ_REG(hw, RCTL);
                     rctl |= E1000_RCTL_SBP;
@@ -2940,12 +2955,12 @@ e1000_check_for_link(struct e1000_hw *hw)
      * auto-negotiation time to complete, in case the cable was just plugged
      * in. The autoneg_failed flag does this.
      */
-    else if((((hw->media_type == e1000_media_type_fiber) &&
+    else if ((((hw->media_type == e1000_media_type_fiber) &&
               ((ctrl & E1000_CTRL_SWDPIN1) == signal)) ||
-             (hw->media_type == e1000_media_type_internal_serdes)) &&
-            (!(status & E1000_STATUS_LU)) &&
-            (!(rxcw & E1000_RXCW_C))) {
-        if(hw->autoneg_failed == 0) {
+              (hw->media_type == e1000_media_type_internal_serdes)) &&
+              (!(status & E1000_STATUS_LU)) &&
+              (!(rxcw & E1000_RXCW_C))) {
+        if (hw->autoneg_failed == 0) {
             hw->autoneg_failed = 1;
             return 0;
         }
@@ -2961,7 +2976,7 @@ e1000_check_for_link(struct e1000_hw *hw)
 
         /* Configure Flow Control after forcing link up. */
         ret_val = e1000_config_fc_after_link_up(hw);
-        if(ret_val) {
+        if (ret_val) {
             DEBUGOUT("Error configuring flow control\n");
             return ret_val;
         }
@@ -2971,9 +2986,9 @@ e1000_check_for_link(struct e1000_hw *hw)
      * Device Control register in an attempt to auto-negotiate with our link
      * partner.
      */
-    else if(((hw->media_type == e1000_media_type_fiber) ||
-             (hw->media_type == e1000_media_type_internal_serdes)) &&
-            (ctrl & E1000_CTRL_SLU) && (rxcw & E1000_RXCW_C)) {
+    else if (((hw->media_type == e1000_media_type_fiber) ||
+              (hw->media_type == e1000_media_type_internal_serdes)) &&
+              (ctrl & E1000_CTRL_SLU) && (rxcw & E1000_RXCW_C)) {
         DEBUGOUT("RXing /C/, enable AutoNeg and stop forcing link.\n");
         E1000_WRITE_REG(hw, TXCW, hw->txcw);
         E1000_WRITE_REG(hw, CTRL, (ctrl & ~E1000_CTRL_SLU));
@@ -2983,12 +2998,12 @@ e1000_check_for_link(struct e1000_hw *hw)
     /* If we force link for non-auto-negotiation switch, check link status
      * based on MAC synchronization for internal serdes media type.
      */
-    else if((hw->media_type == e1000_media_type_internal_serdes) &&
-            !(E1000_TXCW_ANE & E1000_READ_REG(hw, TXCW))) {
+    else if ((hw->media_type == e1000_media_type_internal_serdes) &&
+             !(E1000_TXCW_ANE & E1000_READ_REG(hw, TXCW))) {
         /* SYNCH bit and IV bit are sticky. */
         udelay(10);
-        if(E1000_RXCW_SYNCH & E1000_READ_REG(hw, RXCW)) {
-            if(!(rxcw & E1000_RXCW_IV)) {
+        if (E1000_RXCW_SYNCH & E1000_READ_REG(hw, RXCW)) {
+            if (!(rxcw & E1000_RXCW_IV)) {
                 hw->serdes_link_down = FALSE;
                 DEBUGOUT("SERDES: Link is up.\n");
             }
@@ -2997,8 +3012,8 @@ e1000_check_for_link(struct e1000_hw *hw)
             DEBUGOUT("SERDES: Link is down.\n");
         }
     }
-    if((hw->media_type == e1000_media_type_internal_serdes) &&
-       (E1000_TXCW_ANE & E1000_READ_REG(hw, TXCW))) {
+    if ((hw->media_type == e1000_media_type_internal_serdes) &&
+        (E1000_TXCW_ANE & E1000_READ_REG(hw, TXCW))) {
         hw->serdes_link_down = !(E1000_STATUS_LU & E1000_READ_REG(hw, STATUS));
     }
     return E1000_SUCCESS;
@@ -3022,12 +3037,12 @@ e1000_get_speed_and_duplex(struct e1000_hw *hw,
 
     DEBUGFUNC("e1000_get_speed_and_duplex");
 
-    if(hw->mac_type >= e1000_82543) {
+    if (hw->mac_type >= e1000_82543) {
         status = E1000_READ_REG(hw, STATUS);
-        if(status & E1000_STATUS_SPEED_1000) {
+        if (status & E1000_STATUS_SPEED_1000) {
             *speed = SPEED_1000;
             DEBUGOUT("1000 Mbs, ");
-        } else if(status & E1000_STATUS_SPEED_100) {
+        } else if (status & E1000_STATUS_SPEED_100) {
             *speed = SPEED_100;
             DEBUGOUT("100 Mbs, ");
         } else {
@@ -3035,7 +3050,7 @@ e1000_get_speed_and_duplex(struct e1000_hw *hw,
             DEBUGOUT("10 Mbs, ");
         }
 
-        if(status & E1000_STATUS_FD) {
+        if (status & E1000_STATUS_FD) {
             *duplex = FULL_DUPLEX;
             DEBUGOUT("Full Duplex\n");
         } else {
@@ -3052,18 +3067,18 @@ e1000_get_speed_and_duplex(struct e1000_hw *hw,
      * if it is operating at half duplex.  Here we set the duplex settings to
      * match the duplex in the link partner's capabilities.
      */
-    if(hw->phy_type == e1000_phy_igp && hw->speed_downgraded) {
+    if (hw->phy_type == e1000_phy_igp && hw->speed_downgraded) {
         ret_val = e1000_read_phy_reg(hw, PHY_AUTONEG_EXP, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
-        if(!(phy_data & NWAY_ER_LP_NWAY_CAPS))
+        if (!(phy_data & NWAY_ER_LP_NWAY_CAPS))
             *duplex = HALF_DUPLEX;
         else {
             ret_val = e1000_read_phy_reg(hw, PHY_LP_ABILITY, &phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
-            if((*speed == SPEED_100 && !(phy_data & NWAY_LPAR_100TX_FD_CAPS)) ||
+            if ((*speed == SPEED_100 && !(phy_data & NWAY_LPAR_100TX_FD_CAPS)) ||
                (*speed == SPEED_10 && !(phy_data & NWAY_LPAR_10T_FD_CAPS)))
                 *duplex = HALF_DUPLEX;
         }
@@ -3104,20 +3119,20 @@ e1000_wait_autoneg(struct e1000_hw *hw)
     DEBUGOUT("Waiting for Auto-Neg to complete.\n");
 
     /* We will wait for autoneg to complete or 4.5 seconds to expire. */
-    for(i = PHY_AUTO_NEG_TIME; i > 0; i--) {
+    for (i = PHY_AUTO_NEG_TIME; i > 0; i--) {
         /* Read the MII Status Register and wait for Auto-Neg
          * Complete bit to be set.
          */
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
-        if(phy_data & MII_SR_AUTONEG_COMPLETE) {
+        if (phy_data & MII_SR_AUTONEG_COMPLETE) {
             return E1000_SUCCESS;
         }
-        msec_delay(100);
+        msleep(100);
     }
     return E1000_SUCCESS;
 }
@@ -3187,14 +3202,16 @@ e1000_shift_out_mdi_bits(struct e1000_hw *hw,
     /* Set MDIO_DIR and MDC_DIR direction bits to be used as output pins. */
     ctrl |= (E1000_CTRL_MDIO_DIR | E1000_CTRL_MDC_DIR);
 
-    while(mask) {
+    while (mask) {
         /* A "1" is shifted out to the PHY by setting the MDIO bit to "1" and
          * then raising and lowering the Management Data Clock. A "0" is
          * shifted out to the PHY by setting the MDIO bit to "0" and then
          * raising and lowering the clock.
          */
-        if(data & mask) ctrl |= E1000_CTRL_MDIO;
-        else ctrl &= ~E1000_CTRL_MDIO;
+        if (data & mask)
+            ctrl |= E1000_CTRL_MDIO;
+        else
+            ctrl &= ~E1000_CTRL_MDIO;
 
         E1000_WRITE_REG(hw, CTRL, ctrl);
         E1000_WRITE_FLUSH(hw);
@@ -3245,12 +3262,13 @@ e1000_shift_in_mdi_bits(struct e1000_hw *hw)
     e1000_raise_mdi_clk(hw, &ctrl);
     e1000_lower_mdi_clk(hw, &ctrl);
 
-    for(data = 0, i = 0; i < 16; i++) {
+    for (data = 0, i = 0; i < 16; i++) {
         data = data << 1;
         e1000_raise_mdi_clk(hw, &ctrl);
         ctrl = E1000_READ_REG(hw, CTRL);
         /* Check to see if we shifted in a "1". */
-        if(ctrl & E1000_CTRL_MDIO) data |= 1;
+        if (ctrl & E1000_CTRL_MDIO)
+            data |= 1;
         e1000_lower_mdi_clk(hw, &ctrl);
     }
 
@@ -3276,7 +3294,7 @@ e1000_swfw_sync_acquire(struct e1000_hw *hw, uint16_t mask)
     if (!hw->swfw_sync_present)
         return e1000_get_hw_eeprom_semaphore(hw);
 
-    while(timeout) {
+    while (timeout) {
             if (e1000_get_hw_eeprom_semaphore(hw))
                 return -E1000_ERR_SWFW_SYNC;
 
@@ -3288,7 +3306,7 @@ e1000_swfw_sync_acquire(struct e1000_hw *hw, uint16_t mask)
             /* firmware currently using resource (fwmask) */
             /* or other software thread currently using resource (swmask) */
             e1000_put_hw_eeprom_semaphore(hw);
-            msec_delay_irq(5);
+            mdelay(5);
             timeout--;
     }
 
@@ -3365,7 +3383,7 @@ e1000_read_phy_reg(struct e1000_hw *hw,
        (reg_addr > MAX_PHY_MULTI_PAGE_REG)) {
         ret_val = e1000_write_phy_reg_ex(hw, IGP01E1000_PHY_PAGE_SELECT,
                                          (uint16_t)reg_addr);
-        if(ret_val) {
+        if (ret_val) {
             e1000_swfw_sync_release(hw, swfw);
             return ret_val;
         }
@@ -3410,12 +3428,12 @@ e1000_read_phy_reg_ex(struct e1000_hw *hw,
 
     DEBUGFUNC("e1000_read_phy_reg_ex");
 
-    if(reg_addr > MAX_PHY_REG_ADDRESS) {
+    if (reg_addr > MAX_PHY_REG_ADDRESS) {
         DEBUGOUT1("PHY Address %d is out of range\n", reg_addr);
         return -E1000_ERR_PARAM;
     }
 
-    if(hw->mac_type > e1000_82543) {
+    if (hw->mac_type > e1000_82543) {
         /* Set up Op-code, Phy Address, and register address in the MDI
          * Control register.  The MAC will take care of interfacing with the
          * PHY to retrieve the desired data.
@@ -3427,16 +3445,16 @@ e1000_read_phy_reg_ex(struct e1000_hw *hw,
         E1000_WRITE_REG(hw, MDIC, mdic);
 
         /* Poll the ready bit to see if the MDI read completed */
-        for(i = 0; i < 64; i++) {
+        for (i = 0; i < 64; i++) {
             udelay(50);
             mdic = E1000_READ_REG(hw, MDIC);
-            if(mdic & E1000_MDIC_READY) break;
+            if (mdic & E1000_MDIC_READY) break;
         }
-        if(!(mdic & E1000_MDIC_READY)) {
+        if (!(mdic & E1000_MDIC_READY)) {
             DEBUGOUT("MDI Read did not complete\n");
             return -E1000_ERR_PHY;
         }
-        if(mdic & E1000_MDIC_ERROR) {
+        if (mdic & E1000_MDIC_ERROR) {
             DEBUGOUT("MDI Error\n");
             return -E1000_ERR_PHY;
         }
@@ -3505,7 +3523,7 @@ e1000_write_phy_reg(struct e1000_hw *hw,
        (reg_addr > MAX_PHY_MULTI_PAGE_REG)) {
         ret_val = e1000_write_phy_reg_ex(hw, IGP01E1000_PHY_PAGE_SELECT,
                                          (uint16_t)reg_addr);
-        if(ret_val) {
+        if (ret_val) {
             e1000_swfw_sync_release(hw, swfw);
             return ret_val;
         }
@@ -3550,12 +3568,12 @@ e1000_write_phy_reg_ex(struct e1000_hw *hw,
 
     DEBUGFUNC("e1000_write_phy_reg_ex");
 
-    if(reg_addr > MAX_PHY_REG_ADDRESS) {
+    if (reg_addr > MAX_PHY_REG_ADDRESS) {
         DEBUGOUT1("PHY Address %d is out of range\n", reg_addr);
         return -E1000_ERR_PARAM;
     }
 
-    if(hw->mac_type > e1000_82543) {
+    if (hw->mac_type > e1000_82543) {
         /* Set up Op-code, Phy Address, register address, and data intended
          * for the PHY register in the MDI Control register.  The MAC will take
          * care of interfacing with the PHY to send the desired data.
@@ -3568,12 +3586,12 @@ e1000_write_phy_reg_ex(struct e1000_hw *hw,
         E1000_WRITE_REG(hw, MDIC, mdic);
 
         /* Poll the ready bit to see if the MDI read completed */
-        for(i = 0; i < 640; i++) {
+        for (i = 0; i < 641; i++) {
             udelay(5);
             mdic = E1000_READ_REG(hw, MDIC);
-            if(mdic & E1000_MDIC_READY) break;
+            if (mdic & E1000_MDIC_READY) break;
         }
-        if(!(mdic & E1000_MDIC_READY)) {
+        if (!(mdic & E1000_MDIC_READY)) {
             DEBUGOUT("MDI Write did not complete\n");
             return -E1000_ERR_PHY;
         }
@@ -3685,7 +3703,7 @@ e1000_phy_hw_reset(struct e1000_hw *hw)
 
     DEBUGOUT("Resetting Phy...\n");
 
-    if(hw->mac_type > e1000_82543) {
+    if (hw->mac_type > e1000_82543) {
         if ((hw->mac_type == e1000_80003es2lan) &&
             (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)) {
             swfw = E1000_SWFW_PHY1_SM;
@@ -3707,7 +3725,7 @@ e1000_phy_hw_reset(struct e1000_hw *hw)
         E1000_WRITE_FLUSH(hw);
 
         if (hw->mac_type < e1000_82571)
-            msec_delay(10);
+            msleep(10);
         else
             udelay(100);
 
@@ -3715,7 +3733,7 @@ e1000_phy_hw_reset(struct e1000_hw *hw)
         E1000_WRITE_FLUSH(hw);
 
         if (hw->mac_type >= e1000_82571)
-            msec_delay_irq(10);
+            mdelay(10);
         e1000_swfw_sync_release(hw, swfw);
     } else {
         /* Read the Extended Device Control Register, assert the PHY_RESET_DIR
@@ -3726,14 +3744,14 @@ e1000_phy_hw_reset(struct e1000_hw *hw)
         ctrl_ext &= ~E1000_CTRL_EXT_SDP4_DATA;
         E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext);
         E1000_WRITE_FLUSH(hw);
-        msec_delay(10);
+        msleep(10);
         ctrl_ext |= E1000_CTRL_EXT_SDP4_DATA;
         E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext);
         E1000_WRITE_FLUSH(hw);
     }
     udelay(150);
 
-    if((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) {
+    if ((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) {
         /* Configure activity LED after PHY reset */
         led_ctrl = E1000_READ_REG(hw, LEDCTL);
         led_ctrl &= IGP_ACTIVITY_LED_MASK;
@@ -3743,14 +3761,13 @@ e1000_phy_hw_reset(struct e1000_hw *hw)
 
     /* Wait for FW to finish PHY configuration. */
     ret_val = e1000_get_phy_cfg_done(hw);
+    if (ret_val != E1000_SUCCESS)
+        return ret_val;
     e1000_release_software_semaphore(hw);
 
-        if ((hw->mac_type == e1000_ich8lan) &&
-            (hw->phy_type == e1000_phy_igp_3)) {
-            ret_val = e1000_init_lcd_from_nvm(hw);
-            if (ret_val)
-                return ret_val;
-        }
+    if ((hw->mac_type == e1000_ich8lan) && (hw->phy_type == e1000_phy_igp_3))
+        ret_val = e1000_init_lcd_from_nvm(hw);
+
     return ret_val;
 }
 
@@ -3781,25 +3798,25 @@ e1000_phy_reset(struct e1000_hw *hw)
     case e1000_82572:
     case e1000_ich8lan:
         ret_val = e1000_phy_hw_reset(hw);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         break;
     default:
         ret_val = e1000_read_phy_reg(hw, PHY_CTRL, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_data |= MII_CR_RESET;
         ret_val = e1000_write_phy_reg(hw, PHY_CTRL, phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         udelay(1);
         break;
     }
 
-    if(hw->phy_type == e1000_phy_igp || hw->phy_type == e1000_phy_igp_2)
+    if (hw->phy_type == e1000_phy_igp || hw->phy_type == e1000_phy_igp_2)
         e1000_phy_init_script(hw);
 
     return E1000_SUCCESS;
@@ -3877,8 +3894,8 @@ e1000_kumeran_lock_loss_workaround(struct e1000_hw *hw)
     if (hw->kmrn_lock_loss_workaround_disabled)
         return E1000_SUCCESS;
 
-    /* Make sure link is up before proceeding. If not just return.
-     * Attempting this while link is negotiating fouls up link
+    /* Make sure link is up before proceeding.  If not just return.
+     * Attempting this while link is negotiating fouled up link
      * stability */
     ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
     ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
@@ -3900,7 +3917,7 @@ e1000_kumeran_lock_loss_workaround(struct e1000_hw *hw)
 
             /* Issue PHY reset */
             e1000_phy_hw_reset(hw);
-            msec_delay_irq(5);
+            mdelay(5);
         }
         /* Disable GigE link negotiation */
         reg = E1000_READ_REG(hw, PHY_CTRL);
@@ -3955,34 +3972,34 @@ e1000_detect_gig_phy(struct e1000_hw *hw)
     hw->phy_id = (uint32_t) (phy_id_high << 16);
     udelay(20);
     ret_val = e1000_read_phy_reg(hw, PHY_ID2, &phy_id_low);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     hw->phy_id |= (uint32_t) (phy_id_low & PHY_REVISION_MASK);
     hw->phy_revision = (uint32_t) phy_id_low & ~PHY_REVISION_MASK;
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_82543:
-        if(hw->phy_id == M88E1000_E_PHY_ID) match = TRUE;
+        if (hw->phy_id == M88E1000_E_PHY_ID) match = TRUE;
         break;
     case e1000_82544:
-        if(hw->phy_id == M88E1000_I_PHY_ID) match = TRUE;
+        if (hw->phy_id == M88E1000_I_PHY_ID) match = TRUE;
         break;
     case e1000_82540:
     case e1000_82545:
     case e1000_82545_rev_3:
     case e1000_82546:
     case e1000_82546_rev_3:
-        if(hw->phy_id == M88E1011_I_PHY_ID) match = TRUE;
+        if (hw->phy_id == M88E1011_I_PHY_ID) match = TRUE;
         break;
     case e1000_82541:
     case e1000_82541_rev_2:
     case e1000_82547:
     case e1000_82547_rev_2:
-        if(hw->phy_id == IGP01E1000_I_PHY_ID) match = TRUE;
+        if (hw->phy_id == IGP01E1000_I_PHY_ID) match = TRUE;
         break;
     case e1000_82573:
-        if(hw->phy_id == M88E1111_I_PHY_ID) match = TRUE;
+        if (hw->phy_id == M88E1111_I_PHY_ID) match = TRUE;
         break;
     case e1000_80003es2lan:
         if (hw->phy_id == GG82563_E_PHY_ID) match = TRUE;
@@ -4021,14 +4038,14 @@ e1000_phy_reset_dsp(struct e1000_hw *hw)
     do {
         if (hw->phy_type != e1000_phy_gg82563) {
             ret_val = e1000_write_phy_reg(hw, 29, 0x001d);
-            if(ret_val) break;
+            if (ret_val) break;
         }
         ret_val = e1000_write_phy_reg(hw, 30, 0x00c1);
-        if(ret_val) break;
+        if (ret_val) break;
         ret_val = e1000_write_phy_reg(hw, 30, 0x0000);
-        if(ret_val) break;
+        if (ret_val) break;
         ret_val = E1000_SUCCESS;
-    } while(0);
+    } while (0);
 
     return ret_val;
 }
@@ -4060,23 +4077,23 @@ e1000_phy_igp_get_info(struct e1000_hw *hw,
 
     /* Check polarity status */
     ret_val = e1000_check_polarity(hw, &polarity);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     phy_info->cable_polarity = polarity;
 
     ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_STATUS, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     phy_info->mdix_mode = (phy_data & IGP01E1000_PSSR_MDIX) >>
                           IGP01E1000_PSSR_MDIX_SHIFT;
 
-    if((phy_data & IGP01E1000_PSSR_SPEED_MASK) ==
+    if ((phy_data & IGP01E1000_PSSR_SPEED_MASK) ==
        IGP01E1000_PSSR_SPEED_1000MBPS) {
         /* Local/Remote Receiver Information are only valid at 1000 Mbps */
         ret_val = e1000_read_phy_reg(hw, PHY_1000T_STATUS, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_info->local_rx = (phy_data & SR_1000T_LOCAL_RX_STATUS) >>
@@ -4086,19 +4103,19 @@ e1000_phy_igp_get_info(struct e1000_hw *hw,
 
         /* Get cable length */
         ret_val = e1000_get_cable_length(hw, &min_length, &max_length);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         /* Translate to old method */
         average = (max_length + min_length) / 2;
 
-        if(average <= e1000_igp_cable_length_50)
+        if (average <= e1000_igp_cable_length_50)
             phy_info->cable_length = e1000_cable_length_50;
-        else if(average <= e1000_igp_cable_length_80)
+        else if (average <= e1000_igp_cable_length_80)
             phy_info->cable_length = e1000_cable_length_50_80;
-        else if(average <= e1000_igp_cable_length_110)
+        else if (average <= e1000_igp_cable_length_110)
             phy_info->cable_length = e1000_cable_length_80_110;
-        else if(average <= e1000_igp_cable_length_140)
+        else if (average <= e1000_igp_cable_length_140)
             phy_info->cable_length = e1000_cable_length_110_140;
         else
             phy_info->cable_length = e1000_cable_length_140;
@@ -4174,7 +4191,7 @@ e1000_phy_m88_get_info(struct e1000_hw *hw,
     phy_info->downshift = (e1000_downshift)hw->speed_downgraded;
 
     ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     phy_info->extended_10bt_distance =
@@ -4186,12 +4203,12 @@ e1000_phy_m88_get_info(struct e1000_hw *hw,
 
     /* Check polarity status */
     ret_val = e1000_check_polarity(hw, &polarity);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
     phy_info->cable_polarity = polarity;
 
     ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_STATUS, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     phy_info->mdix_mode = (phy_data & M88E1000_PSSR_MDIX) >>
@@ -4214,7 +4231,7 @@ e1000_phy_m88_get_info(struct e1000_hw *hw,
         }
 
         ret_val = e1000_read_phy_reg(hw, PHY_1000T_STATUS, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_info->local_rx = (phy_data & SR_1000T_LOCAL_RX_STATUS) >>
@@ -4251,20 +4268,20 @@ e1000_phy_get_info(struct e1000_hw *hw,
     phy_info->local_rx = e1000_1000t_rx_status_undefined;
     phy_info->remote_rx = e1000_1000t_rx_status_undefined;
 
-    if(hw->media_type != e1000_media_type_copper) {
+    if (hw->media_type != e1000_media_type_copper) {
         DEBUGOUT("PHY info is only valid for copper media\n");
         return -E1000_ERR_CONFIG;
     }
 
     ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
-    if((phy_data & MII_SR_LINK_STATUS) != MII_SR_LINK_STATUS) {
+    if ((phy_data & MII_SR_LINK_STATUS) != MII_SR_LINK_STATUS) {
         DEBUGOUT("PHY info is only valid if link is up\n");
         return -E1000_ERR_CONFIG;
     }
@@ -4284,7 +4301,7 @@ e1000_validate_mdi_setting(struct e1000_hw *hw)
 {
     DEBUGFUNC("e1000_validate_mdi_settings");
 
-    if(!hw->autoneg && (hw->mdix == 0 || hw->mdix == 3)) {
+    if (!hw->autoneg && (hw->mdix == 0 || hw->mdix == 3)) {
         DEBUGOUT("Invalid MDI setting detected\n");
         hw->mdix = 1;
         return -E1000_ERR_CONFIG;
@@ -4331,7 +4348,7 @@ e1000_init_eeprom_params(struct e1000_hw *hw)
         eeprom->type = e1000_eeprom_microwire;
         eeprom->opcode_bits = 3;
         eeprom->delay_usec = 50;
-        if(eecd & E1000_EECD_SIZE) {
+        if (eecd & E1000_EECD_SIZE) {
             eeprom->word_size = 256;
             eeprom->address_bits = 8;
         } else {
@@ -4399,7 +4416,7 @@ e1000_init_eeprom_params(struct e1000_hw *hw)
         }
         eeprom->use_eerd = TRUE;
         eeprom->use_eewr = TRUE;
-        if(e1000_is_onboard_nvm_eeprom(hw) == FALSE) {
+        if (e1000_is_onboard_nvm_eeprom(hw) == FALSE) {
             eeprom->type = e1000_eeprom_flash;
             eeprom->word_size = 2048;
 
@@ -4460,17 +4477,17 @@ e1000_init_eeprom_params(struct e1000_hw *hw)
         /* eeprom_size will be an enum [0..8] that maps to eeprom sizes 128B to
          * 32KB (incremented by powers of 2).
          */
-        if(hw->mac_type <= e1000_82547_rev_2) {
+        if (hw->mac_type <= e1000_82547_rev_2) {
             /* Set to default value for initial eeprom read. */
             eeprom->word_size = 64;
             ret_val = e1000_read_eeprom(hw, EEPROM_CFG, 1, &eeprom_size);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
             eeprom_size = (eeprom_size & EEPROM_SIZE_MASK) >> EEPROM_SIZE_SHIFT;
             /* 256B eeprom size was not supported in earlier hardware, so we
              * bump eeprom_size up one to ensure that "1" (which maps to 256B)
              * is never the result used in the shifting logic below. */
-            if(eeprom_size)
+            if (eeprom_size)
                 eeprom_size++;
         } else {
             eeprom_size = (uint16_t)((eecd & E1000_EECD_SIZE_EX_MASK) >>
@@ -4555,7 +4572,7 @@ e1000_shift_out_ee_bits(struct e1000_hw *hw,
          */
         eecd &= ~E1000_EECD_DI;
 
-        if(data & mask)
+        if (data & mask)
             eecd |= E1000_EECD_DI;
 
         E1000_WRITE_REG(hw, EECD, eecd);
@@ -4568,7 +4585,7 @@ e1000_shift_out_ee_bits(struct e1000_hw *hw,
 
         mask = mask >> 1;
 
-    } while(mask);
+    } while (mask);
 
     /* We leave the "DI" bit set to "0" when we leave this routine. */
     eecd &= ~E1000_EECD_DI;
@@ -4600,14 +4617,14 @@ e1000_shift_in_ee_bits(struct e1000_hw *hw,
     eecd &= ~(E1000_EECD_DO | E1000_EECD_DI);
     data = 0;
 
-    for(i = 0; i < count; i++) {
+    for (i = 0; i < count; i++) {
         data = data << 1;
         e1000_raise_ee_clk(hw, &eecd);
 
         eecd = E1000_READ_REG(hw, EECD);
 
         eecd &= ~(E1000_EECD_DI);
-        if(eecd & E1000_EECD_DO)
+        if (eecd & E1000_EECD_DO)
             data |= 1;
 
         e1000_lower_ee_clk(hw, &eecd);
@@ -4638,17 +4655,17 @@ e1000_acquire_eeprom(struct e1000_hw *hw)
 
     if (hw->mac_type != e1000_82573) {
         /* Request EEPROM Access */
-        if(hw->mac_type > e1000_82544) {
+        if (hw->mac_type > e1000_82544) {
             eecd |= E1000_EECD_REQ;
             E1000_WRITE_REG(hw, EECD, eecd);
             eecd = E1000_READ_REG(hw, EECD);
-            while((!(eecd & E1000_EECD_GNT)) &&
+            while ((!(eecd & E1000_EECD_GNT)) &&
                   (i < E1000_EEPROM_GRANT_ATTEMPTS)) {
                 i++;
                 udelay(5);
                 eecd = E1000_READ_REG(hw, EECD);
             }
-            if(!(eecd & E1000_EECD_GNT)) {
+            if (!(eecd & E1000_EECD_GNT)) {
                 eecd &= ~E1000_EECD_REQ;
                 E1000_WRITE_REG(hw, EECD, eecd);
                 DEBUGOUT("Could not acquire EEPROM grant\n");
@@ -4691,7 +4708,7 @@ e1000_standby_eeprom(struct e1000_hw *hw)
 
     eecd = E1000_READ_REG(hw, EECD);
 
-    if(eeprom->type == e1000_eeprom_microwire) {
+    if (eeprom->type == e1000_eeprom_microwire) {
         eecd &= ~(E1000_EECD_CS | E1000_EECD_SK);
         E1000_WRITE_REG(hw, EECD, eecd);
         E1000_WRITE_FLUSH(hw);
@@ -4714,7 +4731,7 @@ e1000_standby_eeprom(struct e1000_hw *hw)
         E1000_WRITE_REG(hw, EECD, eecd);
         E1000_WRITE_FLUSH(hw);
         udelay(eeprom->delay_usec);
-    } else if(eeprom->type == e1000_eeprom_spi) {
+    } else if (eeprom->type == e1000_eeprom_spi) {
         /* Toggle CS to flush commands */
         eecd |= E1000_EECD_CS;
         E1000_WRITE_REG(hw, EECD, eecd);
@@ -4748,7 +4765,7 @@ e1000_release_eeprom(struct e1000_hw *hw)
         E1000_WRITE_REG(hw, EECD, eecd);
 
         udelay(hw->eeprom.delay_usec);
-    } else if(hw->eeprom.type == e1000_eeprom_microwire) {
+    } else if (hw->eeprom.type == e1000_eeprom_microwire) {
         /* cleanup eeprom */
 
         /* CS on Microwire is active-high */
@@ -4770,7 +4787,7 @@ e1000_release_eeprom(struct e1000_hw *hw)
     }
 
     /* Stop requesting EEPROM access */
-    if(hw->mac_type > e1000_82544) {
+    if (hw->mac_type > e1000_82544) {
         eecd &= ~E1000_EECD_REQ;
         E1000_WRITE_REG(hw, EECD, eecd);
     }
@@ -4808,12 +4825,12 @@ e1000_spi_eeprom_ready(struct e1000_hw *hw)
         retry_count += 5;
 
         e1000_standby_eeprom(hw);
-    } while(retry_count < EEPROM_MAX_RETRY_SPI);
+    } while (retry_count < EEPROM_MAX_RETRY_SPI);
 
     /* ATMEL SPI write time could vary from 0-20mSec on 3.3V devices (and
      * only 0-5mSec on 5V devices)
      */
-    if(retry_count >= EEPROM_MAX_RETRY_SPI) {
+    if (retry_count >= EEPROM_MAX_RETRY_SPI) {
         DEBUGOUT("SPI EEPROM Status error\n");
         return -E1000_ERR_EEPROM;
     }
@@ -4844,7 +4861,7 @@ e1000_read_eeprom(struct e1000_hw *hw,
     /* A check for invalid values:  offset too large, too many words, and not
      * enough words.
      */
-    if((offset >= eeprom->word_size) || (words > eeprom->word_size - offset) ||
+    if ((offset >= eeprom->word_size) || (words > eeprom->word_size - offset) ||
        (words == 0)) {
         DEBUGOUT("\"words\" parameter out of bounds\n");
         return -E1000_ERR_EEPROM;
@@ -4852,7 +4869,7 @@ e1000_read_eeprom(struct e1000_hw *hw,
 
     /* FLASH reads without acquiring the semaphore are safe */
     if (e1000_is_onboard_nvm_eeprom(hw) == TRUE &&
-    hw->eeprom.use_eerd == FALSE) {
+        hw->eeprom.use_eerd == FALSE) {
         switch (hw->mac_type) {
         case e1000_80003es2lan:
             break;
@@ -4879,7 +4896,7 @@ e1000_read_eeprom(struct e1000_hw *hw,
         uint16_t word_in;
         uint8_t read_opcode = EEPROM_READ_OPCODE_SPI;
 
-        if(e1000_spi_eeprom_ready(hw)) {
+        if (e1000_spi_eeprom_ready(hw)) {
             e1000_release_eeprom(hw);
             return -E1000_ERR_EEPROM;
         }
@@ -4887,7 +4904,7 @@ e1000_read_eeprom(struct e1000_hw *hw,
         e1000_standby_eeprom(hw);
 
         /* Some SPI eeproms use the 8th address bit embedded in the opcode */
-        if((eeprom->address_bits == 8) && (offset >= 128))
+        if ((eeprom->address_bits == 8) && (offset >= 128))
             read_opcode |= EEPROM_A8_OPCODE_SPI;
 
         /* Send the READ command (opcode + addr)  */
@@ -4903,7 +4920,7 @@ e1000_read_eeprom(struct e1000_hw *hw,
             word_in = e1000_shift_in_ee_bits(hw, 16);
             data[i] = (word_in >> 8) | (word_in << 8);
         }
-    } else if(eeprom->type == e1000_eeprom_microwire) {
+    } else if (eeprom->type == e1000_eeprom_microwire) {
         for (i = 0; i < words; i++) {
             /* Send the READ command (opcode + addr)  */
             e1000_shift_out_ee_bits(hw, EEPROM_READ_OPCODE_MICROWIRE,
@@ -4948,7 +4965,7 @@ e1000_read_eeprom_eerd(struct e1000_hw *hw,
         E1000_WRITE_REG(hw, EERD, eerd);
         error = e1000_poll_eerd_eewr_done(hw, E1000_EEPROM_POLL_READ);
 
-        if(error) {
+        if (error) {
             break;
         }
         data[i] = (E1000_READ_REG(hw, EERD) >> E1000_EEPROM_RW_REG_DATA);
@@ -4985,7 +5002,7 @@ e1000_write_eeprom_eewr(struct e1000_hw *hw,
                          E1000_EEPROM_RW_REG_START;
 
         error = e1000_poll_eerd_eewr_done(hw, E1000_EEPROM_POLL_WRITE);
-        if(error) {
+        if (error) {
             break;
         }
 
@@ -4993,7 +5010,7 @@ e1000_write_eeprom_eewr(struct e1000_hw *hw,
 
         error = e1000_poll_eerd_eewr_done(hw, E1000_EEPROM_POLL_WRITE);
 
-        if(error) {
+        if (error) {
             break;
         }
     }
@@ -5014,13 +5031,13 @@ e1000_poll_eerd_eewr_done(struct e1000_hw *hw, int eerd)
     uint32_t i, reg = 0;
     int32_t done = E1000_ERR_EEPROM;
 
-    for(i = 0; i < attempts; i++) {
-        if(eerd == E1000_EEPROM_POLL_READ)
+    for (i = 0; i < attempts; i++) {
+        if (eerd == E1000_EEPROM_POLL_READ)
             reg = E1000_READ_REG(hw, EERD);
         else
             reg = E1000_READ_REG(hw, EEWR);
 
-        if(reg & E1000_EEPROM_RW_REG_DONE) {
+        if (reg & E1000_EEPROM_RW_REG_DONE) {
             done = E1000_SUCCESS;
             break;
         }
@@ -5052,7 +5069,7 @@ e1000_is_onboard_nvm_eeprom(struct e1000_hw *hw)
         eecd = ((eecd >> 15) & 0x03);
 
         /* If both bits are set, device is Flash type */
-        if(eecd == 0x03) {
+        if (eecd == 0x03) {
             return FALSE;
         }
     }
@@ -5117,7 +5134,7 @@ e1000_validate_eeprom_checksum(struct e1000_hw *hw)
         checksum += eeprom_data;
     }
 
-    if(checksum == (uint16_t) EEPROM_SUM)
+    if (checksum == (uint16_t) EEPROM_SUM)
         return E1000_SUCCESS;
     else {
         DEBUGOUT("EEPROM Checksum Invalid\n");
@@ -5142,15 +5159,15 @@ e1000_update_eeprom_checksum(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_update_eeprom_checksum");
 
-    for(i = 0; i < EEPROM_CHECKSUM_REG; i++) {
-        if(e1000_read_eeprom(hw, i, 1, &eeprom_data) < 0) {
+    for (i = 0; i < EEPROM_CHECKSUM_REG; i++) {
+        if (e1000_read_eeprom(hw, i, 1, &eeprom_data) < 0) {
             DEBUGOUT("EEPROM Read Error\n");
             return -E1000_ERR_EEPROM;
         }
         checksum += eeprom_data;
     }
     checksum = (uint16_t) EEPROM_SUM - checksum;
-    if(e1000_write_eeprom(hw, EEPROM_CHECKSUM_REG, 1, &checksum) < 0) {
+    if (e1000_write_eeprom(hw, EEPROM_CHECKSUM_REG, 1, &checksum) < 0) {
         DEBUGOUT("EEPROM Write Error\n");
         return -E1000_ERR_EEPROM;
     } else if (hw->eeprom.type == e1000_eeprom_flash) {
@@ -5162,7 +5179,7 @@ e1000_update_eeprom_checksum(struct e1000_hw *hw)
         ctrl_ext = E1000_READ_REG(hw, CTRL_EXT);
         ctrl_ext |= E1000_CTRL_EXT_EE_RST;
         E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext);
-        msec_delay(10);
+        msleep(10);
     }
     return E1000_SUCCESS;
 }
@@ -5192,14 +5209,14 @@ e1000_write_eeprom(struct e1000_hw *hw,
     /* A check for invalid values:  offset too large, too many words, and not
      * enough words.
      */
-    if((offset >= eeprom->word_size) || (words > eeprom->word_size - offset) ||
+    if ((offset >= eeprom->word_size) || (words > eeprom->word_size - offset) ||
        (words == 0)) {
         DEBUGOUT("\"words\" parameter out of bounds\n");
         return -E1000_ERR_EEPROM;
     }
 
     /* 82573 writes only through eewr */
-    if(eeprom->use_eewr == TRUE)
+    if (eeprom->use_eewr == TRUE)
         return e1000_write_eeprom_eewr(hw, offset, words, data);
 
     if (eeprom->type == e1000_eeprom_ich8)
@@ -5209,11 +5226,11 @@ e1000_write_eeprom(struct e1000_hw *hw,
     if (e1000_acquire_eeprom(hw) != E1000_SUCCESS)
         return -E1000_ERR_EEPROM;
 
-    if(eeprom->type == e1000_eeprom_microwire) {
+    if (eeprom->type == e1000_eeprom_microwire) {
         status = e1000_write_eeprom_microwire(hw, offset, words, data);
     } else {
         status = e1000_write_eeprom_spi(hw, offset, words, data);
-        msec_delay(10);
+        msleep(10);
     }
 
     /* Done with writing */
@@ -5245,7 +5262,7 @@ e1000_write_eeprom_spi(struct e1000_hw *hw,
     while (widx < words) {
         uint8_t write_opcode = EEPROM_WRITE_OPCODE_SPI;
 
-        if(e1000_spi_eeprom_ready(hw)) return -E1000_ERR_EEPROM;
+        if (e1000_spi_eeprom_ready(hw)) return -E1000_ERR_EEPROM;
 
         e1000_standby_eeprom(hw);
 
@@ -5256,7 +5273,7 @@ e1000_write_eeprom_spi(struct e1000_hw *hw,
         e1000_standby_eeprom(hw);
 
         /* Some SPI eeproms use the 8th address bit embedded in the opcode */
-        if((eeprom->address_bits == 8) && (offset >= 128))
+        if ((eeprom->address_bits == 8) && (offset >= 128))
             write_opcode |= EEPROM_A8_OPCODE_SPI;
 
         /* Send the Write command (8-bit opcode + addr) */
@@ -5278,7 +5295,7 @@ e1000_write_eeprom_spi(struct e1000_hw *hw,
              * operation, while the smaller eeproms are capable of an 8-byte
              * PAGE WRITE operation.  Break the inner loop to pass new address
              */
-            if((((offset + widx)*2) % eeprom->page_size) == 0) {
+            if ((((offset + widx)*2) % eeprom->page_size) == 0) {
                 e1000_standby_eeprom(hw);
                 break;
             }
@@ -5344,12 +5361,12 @@ e1000_write_eeprom_microwire(struct e1000_hw *hw,
          * signal that the command has been completed by raising the DO signal.
          * If DO does not go high in 10 milliseconds, then error out.
          */
-        for(i = 0; i < 200; i++) {
+        for (i = 0; i < 200; i++) {
             eecd = E1000_READ_REG(hw, EECD);
-            if(eecd & E1000_EECD_DO) break;
+            if (eecd & E1000_EECD_DO) break;
             udelay(50);
         }
-        if(i == 200) {
+        if (i == 200) {
             DEBUGOUT("EEPROM Write did not complete\n");
             return -E1000_ERR_EEPROM;
         }
@@ -5539,40 +5556,6 @@ e1000_commit_shadow_ram(struct e1000_hw *hw)
     return error;
 }
 
-/******************************************************************************
- * Reads the adapter's part number from the EEPROM
- *
- * hw - Struct containing variables accessed by shared code
- * part_num - Adapter's part number
- *****************************************************************************/
-int32_t
-e1000_read_part_num(struct e1000_hw *hw,
-                    uint32_t *part_num)
-{
-    uint16_t offset = EEPROM_PBA_BYTE_1;
-    uint16_t eeprom_data;
-
-    DEBUGFUNC("e1000_read_part_num");
-
-    /* Get word 0 from EEPROM */
-    if(e1000_read_eeprom(hw, offset, 1, &eeprom_data) < 0) {
-        DEBUGOUT("EEPROM Read Error\n");
-        return -E1000_ERR_EEPROM;
-    }
-    /* Save word 0 in upper half of part_num */
-    *part_num = (uint32_t) (eeprom_data << 16);
-
-    /* Get word 1 from EEPROM */
-    if(e1000_read_eeprom(hw, ++offset, 1, &eeprom_data) < 0) {
-        DEBUGOUT("EEPROM Read Error\n");
-        return -E1000_ERR_EEPROM;
-    }
-    /* Save word 1 in lower half of part_num */
-    *part_num |= eeprom_data;
-
-    return E1000_SUCCESS;
-}
-
 /******************************************************************************
  * Reads the adapter's MAC address from the EEPROM and inverts the LSB for the
  * second function of dual function devices
@@ -5587,9 +5570,9 @@ e1000_read_mac_addr(struct e1000_hw * hw)
 
     DEBUGFUNC("e1000_read_mac_addr");
 
-    for(i = 0; i < NODE_ADDRESS_SIZE; i += 2) {
+    for (i = 0; i < NODE_ADDRESS_SIZE; i += 2) {
         offset = i >> 1;
-        if(e1000_read_eeprom(hw, offset, 1, &eeprom_data) < 0) {
+        if (e1000_read_eeprom(hw, offset, 1, &eeprom_data) < 0) {
             DEBUGOUT("EEPROM Read Error\n");
             return -E1000_ERR_EEPROM;
         }
@@ -5604,12 +5587,12 @@ e1000_read_mac_addr(struct e1000_hw * hw)
     case e1000_82546_rev_3:
     case e1000_82571:
     case e1000_80003es2lan:
-        if(E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)
+        if (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)
             hw->perm_mac_addr[5] ^= 0x01;
         break;
     }
 
-    for(i = 0; i < NODE_ADDRESS_SIZE; i++)
+    for (i = 0; i < NODE_ADDRESS_SIZE; i++)
         hw->mac_addr[i] = hw->perm_mac_addr[i];
     return E1000_SUCCESS;
 }
@@ -5648,7 +5631,7 @@ e1000_init_rx_addrs(struct e1000_hw *hw)
 
     /* Zero out the other 15 receive addresses. */
     DEBUGOUT("Clearing RAR[1-15]\n");
-    for(i = 1; i < rar_num; i++) {
+    for (i = 1; i < rar_num; i++) {
         E1000_WRITE_REG_ARRAY(hw, RA, (i << 1), 0);
         E1000_WRITE_FLUSH(hw);
         E1000_WRITE_REG_ARRAY(hw, RA, ((i << 1) + 1), 0);
@@ -5699,7 +5682,7 @@ e1000_mc_addr_list_update(struct e1000_hw *hw,
     if ((hw->mac_type == e1000_82571) && (hw->laa_is_present == TRUE))
         num_rar_entry -= 1;
 
-    for(i = rar_used_count; i < num_rar_entry; i++) {
+    for (i = rar_used_count; i < num_rar_entry; i++) {
         E1000_WRITE_REG_ARRAY(hw, RA, (i << 1), 0);
         E1000_WRITE_FLUSH(hw);
         E1000_WRITE_REG_ARRAY(hw, RA, ((i << 1) + 1), 0);
@@ -5711,13 +5694,13 @@ e1000_mc_addr_list_update(struct e1000_hw *hw,
     num_mta_entry = E1000_NUM_MTA_REGISTERS;
     if (hw->mac_type == e1000_ich8lan)
         num_mta_entry = E1000_NUM_MTA_REGISTERS_ICH8LAN;
-    for(i = 0; i < num_mta_entry; i++) {
+    for (i = 0; i < num_mta_entry; i++) {
         E1000_WRITE_REG_ARRAY(hw, MTA, i, 0);
         E1000_WRITE_FLUSH(hw);
     }
 
     /* Add the new addresses */
-    for(i = 0; i < mc_addr_count; i++) {
+    for (i = 0; i < mc_addr_count; i++) {
         DEBUGOUT(" Adding the multicast addresses:\n");
         DEBUGOUT7(" MC Addr #%d =%.2X %.2X %.2X %.2X %.2X %.2X\n", i,
                   mc_addr_list[i * (ETH_LENGTH_OF_ADDRESS + pad)],
@@ -5849,7 +5832,7 @@ e1000_mta_set(struct e1000_hw *hw,
      * in the MTA, save off the previous entry before writing and
      * restore the old value after writing.
      */
-    if((hw->mac_type == e1000_82544) && ((hash_reg & 0x1) == 1)) {
+    if ((hw->mac_type == e1000_82544) && ((hash_reg & 0x1) == 1)) {
         temp = E1000_READ_REG_ARRAY(hw, MTA, (hash_reg - 1));
         E1000_WRITE_REG_ARRAY(hw, MTA, hash_reg, mta);
         E1000_WRITE_FLUSH(hw);
@@ -5999,7 +5982,7 @@ e1000_id_led_init(struct e1000_hw * hw)
 
     DEBUGFUNC("e1000_id_led_init");
 
-    if(hw->mac_type < e1000_82540) {
+    if (hw->mac_type < e1000_82540) {
         /* Nothing to do */
         return E1000_SUCCESS;
     }
@@ -6009,7 +5992,7 @@ e1000_id_led_init(struct e1000_hw * hw)
     hw->ledctl_mode1 = hw->ledctl_default;
     hw->ledctl_mode2 = hw->ledctl_default;
 
-    if(e1000_read_eeprom(hw, EEPROM_ID_LED_SETTINGS, 1, &eeprom_data) < 0) {
+    if (e1000_read_eeprom(hw, EEPROM_ID_LED_SETTINGS, 1, &eeprom_data) < 0) {
         DEBUGOUT("EEPROM Read Error\n");
         return -E1000_ERR_EEPROM;
     }
@@ -6026,7 +6009,7 @@ e1000_id_led_init(struct e1000_hw * hw)
     }
     for (i = 0; i < 4; i++) {
         temp = (eeprom_data >> (i << 2)) & led_mask;
-        switch(temp) {
+        switch (temp) {
         case ID_LED_ON1_DEF2:
         case ID_LED_ON1_ON2:
         case ID_LED_ON1_OFF2:
@@ -6043,7 +6026,7 @@ e1000_id_led_init(struct e1000_hw * hw)
             /* Do nothing */
             break;
         }
-        switch(temp) {
+        switch (temp) {
         case ID_LED_DEF1_ON2:
         case ID_LED_ON1_ON2:
         case ID_LED_OFF1_ON2:
@@ -6077,7 +6060,7 @@ e1000_setup_led(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_setup_led");
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_82542_rev2_0:
     case e1000_82542_rev2_1:
     case e1000_82543:
@@ -6091,16 +6074,16 @@ e1000_setup_led(struct e1000_hw *hw)
         /* Turn off PHY Smart Power Down (if enabled) */
         ret_val = e1000_read_phy_reg(hw, IGP01E1000_GMII_FIFO,
                                      &hw->phy_spd_default);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         ret_val = e1000_write_phy_reg(hw, IGP01E1000_GMII_FIFO,
                                       (uint16_t)(hw->phy_spd_default &
                                       ~IGP01E1000_GMII_SPD));
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         /* Fall Through */
     default:
-        if(hw->media_type == e1000_media_type_fiber) {
+        if (hw->media_type == e1000_media_type_fiber) {
             ledctl = E1000_READ_REG(hw, LEDCTL);
             /* Save current LEDCTL settings */
             hw->ledctl_default = ledctl;
@@ -6111,7 +6094,7 @@ e1000_setup_led(struct e1000_hw *hw)
             ledctl |= (E1000_LEDCTL_MODE_LED_OFF <<
                        E1000_LEDCTL_LED0_MODE_SHIFT);
             E1000_WRITE_REG(hw, LEDCTL, ledctl);
-        } else if(hw->media_type == e1000_media_type_copper)
+        } else if (hw->media_type == e1000_media_type_copper)
             E1000_WRITE_REG(hw, LEDCTL, hw->ledctl_mode1);
         break;
     }
@@ -6119,6 +6102,7 @@ e1000_setup_led(struct e1000_hw *hw)
     return E1000_SUCCESS;
 }
 
+
 /******************************************************************************
  * Used on 82571 and later Si that has LED blink bits.
  * Callers must use their own timer and should have already called
@@ -6169,7 +6153,7 @@ e1000_cleanup_led(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_cleanup_led");
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_82542_rev2_0:
     case e1000_82542_rev2_1:
     case e1000_82543:
@@ -6183,7 +6167,7 @@ e1000_cleanup_led(struct e1000_hw *hw)
         /* Turn on PHY Smart Power Down (if previously enabled) */
         ret_val = e1000_write_phy_reg(hw, IGP01E1000_GMII_FIFO,
                                       hw->phy_spd_default);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         /* Fall Through */
     default:
@@ -6211,7 +6195,7 @@ e1000_led_on(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_led_on");
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_82542_rev2_0:
     case e1000_82542_rev2_1:
     case e1000_82543:
@@ -6220,7 +6204,7 @@ e1000_led_on(struct e1000_hw *hw)
         ctrl |= E1000_CTRL_SWDPIO0;
         break;
     case e1000_82544:
-        if(hw->media_type == e1000_media_type_fiber) {
+        if (hw->media_type == e1000_media_type_fiber) {
             /* Set SW Defineable Pin 0 to turn on the LED */
             ctrl |= E1000_CTRL_SWDPIN0;
             ctrl |= E1000_CTRL_SWDPIO0;
@@ -6231,7 +6215,7 @@ e1000_led_on(struct e1000_hw *hw)
         }
         break;
     default:
-        if(hw->media_type == e1000_media_type_fiber) {
+        if (hw->media_type == e1000_media_type_fiber) {
             /* Clear SW Defineable Pin 0 to turn on the LED */
             ctrl &= ~E1000_CTRL_SWDPIN0;
             ctrl |= E1000_CTRL_SWDPIO0;
@@ -6262,7 +6246,7 @@ e1000_led_off(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_led_off");
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_82542_rev2_0:
     case e1000_82542_rev2_1:
     case e1000_82543:
@@ -6271,7 +6255,7 @@ e1000_led_off(struct e1000_hw *hw)
         ctrl |= E1000_CTRL_SWDPIO0;
         break;
     case e1000_82544:
-        if(hw->media_type == e1000_media_type_fiber) {
+        if (hw->media_type == e1000_media_type_fiber) {
             /* Clear SW Defineable Pin 0 to turn off the LED */
             ctrl &= ~E1000_CTRL_SWDPIN0;
             ctrl |= E1000_CTRL_SWDPIO0;
@@ -6282,7 +6266,7 @@ e1000_led_off(struct e1000_hw *hw)
         }
         break;
     default:
-        if(hw->media_type == e1000_media_type_fiber) {
+        if (hw->media_type == e1000_media_type_fiber) {
             /* Set SW Defineable Pin 0 to turn off the LED */
             ctrl |= E1000_CTRL_SWDPIN0;
             ctrl |= E1000_CTRL_SWDPIO0;
@@ -6306,7 +6290,7 @@ e1000_led_off(struct e1000_hw *hw)
  *
  * hw - Struct containing variables accessed by shared code
  *****************************************************************************/
-static void
+void
 e1000_clear_hw_cntrs(struct e1000_hw *hw)
 {
     volatile uint32_t temp;
@@ -6369,7 +6353,7 @@ e1000_clear_hw_cntrs(struct e1000_hw *hw)
     temp = E1000_READ_REG(hw, MPTC);
     temp = E1000_READ_REG(hw, BPTC);
 
-    if(hw->mac_type < e1000_82543) return;
+    if (hw->mac_type < e1000_82543) return;
 
     temp = E1000_READ_REG(hw, ALGNERRC);
     temp = E1000_READ_REG(hw, RXERRC);
@@ -6378,13 +6362,13 @@ e1000_clear_hw_cntrs(struct e1000_hw *hw)
     temp = E1000_READ_REG(hw, TSCTC);
     temp = E1000_READ_REG(hw, TSCTFC);
 
-    if(hw->mac_type <= e1000_82544) return;
+    if (hw->mac_type <= e1000_82544) return;
 
     temp = E1000_READ_REG(hw, MGTPRC);
     temp = E1000_READ_REG(hw, MGTPDC);
     temp = E1000_READ_REG(hw, MGTPTC);
 
-    if(hw->mac_type <= e1000_82547_rev_2) return;
+    if (hw->mac_type <= e1000_82547_rev_2) return;
 
     temp = E1000_READ_REG(hw, IAC);
     temp = E1000_READ_REG(hw, ICRXOC);
@@ -6415,8 +6399,8 @@ e1000_reset_adaptive(struct e1000_hw *hw)
 {
     DEBUGFUNC("e1000_reset_adaptive");
 
-    if(hw->adaptive_ifs) {
-        if(!hw->ifs_params_forced) {
+    if (hw->adaptive_ifs) {
+        if (!hw->ifs_params_forced) {
             hw->current_ifs_val = 0;
             hw->ifs_min_val = IFS_MIN;
             hw->ifs_max_val = IFS_MAX;
@@ -6443,12 +6427,12 @@ e1000_update_adaptive(struct e1000_hw *hw)
 {
     DEBUGFUNC("e1000_update_adaptive");
 
-    if(hw->adaptive_ifs) {
-        if((hw->collision_delta * hw->ifs_ratio) > hw->tx_packet_delta) {
-            if(hw->tx_packet_delta > MIN_NUM_XMITS) {
+    if (hw->adaptive_ifs) {
+        if ((hw->collision_delta * hw->ifs_ratio) > hw->tx_packet_delta) {
+            if (hw->tx_packet_delta > MIN_NUM_XMITS) {
                 hw->in_ifs_mode = TRUE;
-                if(hw->current_ifs_val < hw->ifs_max_val) {
-                    if(hw->current_ifs_val == 0)
+                if (hw->current_ifs_val < hw->ifs_max_val) {
+                    if (hw->current_ifs_val == 0)
                         hw->current_ifs_val = hw->ifs_min_val;
                     else
                         hw->current_ifs_val += hw->ifs_step_size;
@@ -6456,7 +6440,7 @@ e1000_update_adaptive(struct e1000_hw *hw)
                 }
             }
         } else {
-            if(hw->in_ifs_mode && (hw->tx_packet_delta <= MIN_NUM_XMITS)) {
+            if (hw->in_ifs_mode && (hw->tx_packet_delta <= MIN_NUM_XMITS)) {
                 hw->current_ifs_val = 0;
                 hw->in_ifs_mode = FALSE;
                 E1000_WRITE_REG(hw, AIT, 0);
@@ -6503,46 +6487,46 @@ e1000_tbi_adjust_stats(struct e1000_hw *hw,
      * This could be simplified if all environments supported
      * 64-bit integers.
      */
-    if(carry_bit && ((stats->gorcl & 0x80000000) == 0))
+    if (carry_bit && ((stats->gorcl & 0x80000000) == 0))
         stats->gorch++;
     /* Is this a broadcast or multicast?  Check broadcast first,
      * since the test for a multicast frame will test positive on
      * a broadcast frame.
      */
-    if((mac_addr[0] == (uint8_t) 0xff) && (mac_addr[1] == (uint8_t) 0xff))
+    if ((mac_addr[0] == (uint8_t) 0xff) && (mac_addr[1] == (uint8_t) 0xff))
         /* Broadcast packet */
         stats->bprc++;
-    else if(*mac_addr & 0x01)
+    else if (*mac_addr & 0x01)
         /* Multicast packet */
         stats->mprc++;
 
-    if(frame_len == hw->max_frame_size) {
+    if (frame_len == hw->max_frame_size) {
         /* In this case, the hardware has overcounted the number of
          * oversize frames.
          */
-        if(stats->roc > 0)
+        if (stats->roc > 0)
             stats->roc--;
     }
 
     /* Adjust the bin counters when the extra byte put the frame in the
      * wrong bin. Remember that the frame_len was adjusted above.
      */
-    if(frame_len == 64) {
+    if (frame_len == 64) {
         stats->prc64++;
         stats->prc127--;
-    } else if(frame_len == 127) {
+    } else if (frame_len == 127) {
         stats->prc127++;
         stats->prc255--;
-    } else if(frame_len == 255) {
+    } else if (frame_len == 255) {
         stats->prc255++;
         stats->prc511--;
-    } else if(frame_len == 511) {
+    } else if (frame_len == 511) {
         stats->prc511++;
         stats->prc1023--;
-    } else if(frame_len == 1023) {
+    } else if (frame_len == 1023) {
         stats->prc1023++;
         stats->prc1522--;
-    } else if(frame_len == 1522) {
+    } else if (frame_len == 1522) {
         stats->prc1522++;
     }
 }
@@ -6582,10 +6566,10 @@ e1000_get_bus_info(struct e1000_hw *hw)
         hw->bus_type = (status & E1000_STATUS_PCIX_MODE) ?
                        e1000_bus_type_pcix : e1000_bus_type_pci;
 
-        if(hw->device_id == E1000_DEV_ID_82546EB_QUAD_COPPER) {
+        if (hw->device_id == E1000_DEV_ID_82546EB_QUAD_COPPER) {
             hw->bus_speed = (hw->bus_type == e1000_bus_type_pci) ?
                             e1000_bus_speed_66 : e1000_bus_speed_120;
-        } else if(hw->bus_type == e1000_bus_type_pci) {
+        } else if (hw->bus_type == e1000_bus_type_pci) {
             hw->bus_speed = (status & E1000_STATUS_PCI66) ?
                             e1000_bus_speed_66 : e1000_bus_speed_33;
         } else {
@@ -6680,11 +6664,11 @@ e1000_get_cable_length(struct e1000_hw *hw,
     *min_length = *max_length = 0;
 
     /* Use old method for Phy older than IGP */
-    if(hw->phy_type == e1000_phy_m88) {
+    if (hw->phy_type == e1000_phy_m88) {
 
         ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_STATUS,
                                      &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         cable_length = (phy_data & M88E1000_PSSR_CABLE_LENGTH) >>
                        M88E1000_PSSR_CABLE_LENGTH_SHIFT;
@@ -6743,7 +6727,7 @@ e1000_get_cable_length(struct e1000_hw *hw,
             return -E1000_ERR_PHY;
             break;
         }
-    } else if(hw->phy_type == e1000_phy_igp) { /* For IGP PHY */
+    } else if (hw->phy_type == e1000_phy_igp) { /* For IGP PHY */
         uint16_t cur_agc_value;
         uint16_t min_agc_value = IGP01E1000_AGC_LENGTH_TABLE_SIZE;
         uint16_t agc_reg_array[IGP01E1000_PHY_CHANNEL_NUM] =
@@ -6752,10 +6736,10 @@ e1000_get_cable_length(struct e1000_hw *hw,
                                                           IGP01E1000_PHY_AGC_C,
                                                           IGP01E1000_PHY_AGC_D};
         /* Read the AGC registers for all channels */
-        for(i = 0; i < IGP01E1000_PHY_CHANNEL_NUM; i++) {
+        for (i = 0; i < IGP01E1000_PHY_CHANNEL_NUM; i++) {
 
             ret_val = e1000_read_phy_reg(hw, agc_reg_array[i], &phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             cur_agc_value = phy_data >> IGP01E1000_AGC_LENGTH_SHIFT;
@@ -6805,7 +6789,7 @@ e1000_get_cable_length(struct e1000_hw *hw,
             if (ret_val)
                 return ret_val;
 
-	    /* Getting bits 15:9, which represent the combination of course and
+            /* Getting bits 15:9, which represent the combination of course and
              * fine gain values.  The result is a number that can be put into
              * the lookup table to obtain the approximate cable length. */
             cur_agc_index = (phy_data >> IGP02E1000_AGC_LENGTH_SHIFT) &
@@ -6870,7 +6854,7 @@ e1000_check_polarity(struct e1000_hw *hw,
         /* return the Polarity bit in the Status register. */
         ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_STATUS,
                                      &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
         *polarity = (phy_data & M88E1000_PSSR_REV_POLARITY) >>
                     M88E1000_PSSR_REV_POLARITY_SHIFT;
@@ -6880,18 +6864,18 @@ e1000_check_polarity(struct e1000_hw *hw,
         /* Read the Status register to check the speed */
         ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_STATUS,
                                      &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         /* If speed is 1000 Mbps, must read the IGP01E1000_PHY_PCS_INIT_REG to
          * find the polarity status */
-        if((phy_data & IGP01E1000_PSSR_SPEED_MASK) ==
+        if ((phy_data & IGP01E1000_PSSR_SPEED_MASK) ==
            IGP01E1000_PSSR_SPEED_1000MBPS) {
 
             /* Read the GIG initialization PCS register (0x00B4) */
             ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PCS_INIT_REG,
                                          &phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             /* Check the polarity bits */
@@ -6940,7 +6924,7 @@ e1000_check_downshift(struct e1000_hw *hw)
         hw->phy_type == e1000_phy_igp_2) {
         ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_LINK_HEALTH,
                                      &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         hw->speed_downgraded = (phy_data & IGP01E1000_PLHR_SS_DOWNGRADE) ? 1 : 0;
@@ -6948,7 +6932,7 @@ e1000_check_downshift(struct e1000_hw *hw)
                (hw->phy_type == e1000_phy_gg82563)) {
         ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_STATUS,
                                      &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         hw->speed_downgraded = (phy_data & M88E1000_PSSR_DOWNSHIFT) >>
@@ -6988,42 +6972,42 @@ e1000_config_dsp_after_link_change(struct e1000_hw *hw,
 
     DEBUGFUNC("e1000_config_dsp_after_link_change");
 
-    if(hw->phy_type != e1000_phy_igp)
+    if (hw->phy_type != e1000_phy_igp)
         return E1000_SUCCESS;
 
-    if(link_up) {
+    if (link_up) {
         ret_val = e1000_get_speed_and_duplex(hw, &speed, &duplex);
-        if(ret_val) {
+        if (ret_val) {
             DEBUGOUT("Error getting link speed and duplex\n");
             return ret_val;
         }
 
-        if(speed == SPEED_1000) {
+        if (speed == SPEED_1000) {
 
             ret_val = e1000_get_cable_length(hw, &min_length, &max_length);
             if (ret_val)
                 return ret_val;
 
-            if((hw->dsp_config_state == e1000_dsp_config_enabled) &&
+            if ((hw->dsp_config_state == e1000_dsp_config_enabled) &&
                 min_length >= e1000_igp_cable_length_50) {
 
-                for(i = 0; i < IGP01E1000_PHY_CHANNEL_NUM; i++) {
+                for (i = 0; i < IGP01E1000_PHY_CHANNEL_NUM; i++) {
                     ret_val = e1000_read_phy_reg(hw, dsp_reg_array[i],
                                                  &phy_data);
-                    if(ret_val)
+                    if (ret_val)
                         return ret_val;
 
                     phy_data &= ~IGP01E1000_PHY_EDAC_MU_INDEX;
 
                     ret_val = e1000_write_phy_reg(hw, dsp_reg_array[i],
                                                   phy_data);
-                    if(ret_val)
+                    if (ret_val)
                         return ret_val;
                 }
                 hw->dsp_config_state = e1000_dsp_config_activated;
             }
 
-            if((hw->ffe_config_state == e1000_ffe_config_enabled) &&
+            if ((hw->ffe_config_state == e1000_ffe_config_enabled) &&
                (min_length < e1000_igp_cable_length_50)) {
 
                 uint16_t ffe_idle_err_timeout = FFE_IDLE_ERR_COUNT_TIMEOUT_20;
@@ -7032,119 +7016,119 @@ e1000_config_dsp_after_link_change(struct e1000_hw *hw,
                 /* clear previous idle error counts */
                 ret_val = e1000_read_phy_reg(hw, PHY_1000T_STATUS,
                                              &phy_data);
-                if(ret_val)
+                if (ret_val)
                     return ret_val;
 
-                for(i = 0; i < ffe_idle_err_timeout; i++) {
+                for (i = 0; i < ffe_idle_err_timeout; i++) {
                     udelay(1000);
                     ret_val = e1000_read_phy_reg(hw, PHY_1000T_STATUS,
                                                  &phy_data);
-                    if(ret_val)
+                    if (ret_val)
                         return ret_val;
 
                     idle_errs += (phy_data & SR_1000T_IDLE_ERROR_CNT);
-                    if(idle_errs > SR_1000T_PHY_EXCESSIVE_IDLE_ERR_COUNT) {
+                    if (idle_errs > SR_1000T_PHY_EXCESSIVE_IDLE_ERR_COUNT) {
                         hw->ffe_config_state = e1000_ffe_config_active;
 
                         ret_val = e1000_write_phy_reg(hw,
                                     IGP01E1000_PHY_DSP_FFE,
                                     IGP01E1000_PHY_DSP_FFE_CM_CP);
-                        if(ret_val)
+                        if (ret_val)
                             return ret_val;
                         break;
                     }
 
-                    if(idle_errs)
+                    if (idle_errs)
                         ffe_idle_err_timeout = FFE_IDLE_ERR_COUNT_TIMEOUT_100;
                 }
             }
         }
     } else {
-        if(hw->dsp_config_state == e1000_dsp_config_activated) {
+        if (hw->dsp_config_state == e1000_dsp_config_activated) {
             /* Save off the current value of register 0x2F5B to be restored at
              * the end of the routines. */
             ret_val = e1000_read_phy_reg(hw, 0x2F5B, &phy_saved_data);
 
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             /* Disable the PHY transmitter */
             ret_val = e1000_write_phy_reg(hw, 0x2F5B, 0x0003);
 
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
-            msec_delay_irq(20);
+            mdelay(20);
 
             ret_val = e1000_write_phy_reg(hw, 0x0000,
                                           IGP01E1000_IEEE_FORCE_GIGA);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
-            for(i = 0; i < IGP01E1000_PHY_CHANNEL_NUM; i++) {
+            for (i = 0; i < IGP01E1000_PHY_CHANNEL_NUM; i++) {
                 ret_val = e1000_read_phy_reg(hw, dsp_reg_array[i], &phy_data);
-                if(ret_val)
+                if (ret_val)
                     return ret_val;
 
                 phy_data &= ~IGP01E1000_PHY_EDAC_MU_INDEX;
                 phy_data |=  IGP01E1000_PHY_EDAC_SIGN_EXT_9_BITS;
 
                 ret_val = e1000_write_phy_reg(hw,dsp_reg_array[i], phy_data);
-                if(ret_val)
+                if (ret_val)
                     return ret_val;
             }
 
             ret_val = e1000_write_phy_reg(hw, 0x0000,
                                           IGP01E1000_IEEE_RESTART_AUTONEG);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
-            msec_delay_irq(20);
+            mdelay(20);
 
             /* Now enable the transmitter */
             ret_val = e1000_write_phy_reg(hw, 0x2F5B, phy_saved_data);
 
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             hw->dsp_config_state = e1000_dsp_config_enabled;
         }
 
-        if(hw->ffe_config_state == e1000_ffe_config_active) {
+        if (hw->ffe_config_state == e1000_ffe_config_active) {
             /* Save off the current value of register 0x2F5B to be restored at
              * the end of the routines. */
             ret_val = e1000_read_phy_reg(hw, 0x2F5B, &phy_saved_data);
 
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             /* Disable the PHY transmitter */
             ret_val = e1000_write_phy_reg(hw, 0x2F5B, 0x0003);
 
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
-            msec_delay_irq(20);
+            mdelay(20);
 
             ret_val = e1000_write_phy_reg(hw, 0x0000,
                                           IGP01E1000_IEEE_FORCE_GIGA);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
             ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_DSP_FFE,
                                           IGP01E1000_PHY_DSP_FFE_DEFAULT);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             ret_val = e1000_write_phy_reg(hw, 0x0000,
                                           IGP01E1000_IEEE_RESTART_AUTONEG);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
-            msec_delay_irq(20);
+            mdelay(20);
 
             /* Now enable the transmitter */
             ret_val = e1000_write_phy_reg(hw, 0x2F5B, phy_saved_data);
 
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             hw->ffe_config_state = e1000_ffe_config_enabled;
@@ -7169,20 +7153,20 @@ e1000_set_phy_mode(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_set_phy_mode");
 
-    if((hw->mac_type == e1000_82545_rev_3) &&
-       (hw->media_type == e1000_media_type_copper)) {
+    if ((hw->mac_type == e1000_82545_rev_3) &&
+        (hw->media_type == e1000_media_type_copper)) {
         ret_val = e1000_read_eeprom(hw, EEPROM_PHY_CLASS_WORD, 1, &eeprom_data);
-        if(ret_val) {
+        if (ret_val) {
             return ret_val;
         }
 
-        if((eeprom_data != EEPROM_RESERVED_WORD) &&
-           (eeprom_data & EEPROM_PHY_CLASS_A)) {
+        if ((eeprom_data != EEPROM_RESERVED_WORD) &&
+            (eeprom_data & EEPROM_PHY_CLASS_A)) {
             ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, 0x000B);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
             ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, 0x8104);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             hw->phy_reset_disable = FALSE;
@@ -7233,16 +7217,16 @@ e1000_set_d3_lplu_state(struct e1000_hw *hw,
         phy_ctrl = E1000_READ_REG(hw, PHY_CTRL);
     } else {
         ret_val = e1000_read_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     }
 
-    if(!active) {
-        if(hw->mac_type == e1000_82541_rev_2 ||
-           hw->mac_type == e1000_82547_rev_2) {
+    if (!active) {
+        if (hw->mac_type == e1000_82541_rev_2 ||
+            hw->mac_type == e1000_82547_rev_2) {
             phy_data &= ~IGP01E1000_GMII_FLEX_SPD;
             ret_val = e1000_write_phy_reg(hw, IGP01E1000_GMII_FIFO, phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         } else {
             if (hw->mac_type == e1000_ich8lan) {
@@ -7264,13 +7248,13 @@ e1000_set_d3_lplu_state(struct e1000_hw *hw,
         if (hw->smart_speed == e1000_smart_speed_on) {
             ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
                                          &phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             phy_data |= IGP01E1000_PSCFR_SMART_SPEED;
             ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
                                           phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         } else if (hw->smart_speed == e1000_smart_speed_off) {
             ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
@@ -7281,19 +7265,19 @@ e1000_set_d3_lplu_state(struct e1000_hw *hw,
             phy_data &= ~IGP01E1000_PSCFR_SMART_SPEED;
             ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
                                           phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         }
 
-    } else if((hw->autoneg_advertised == AUTONEG_ADVERTISE_SPEED_DEFAULT) ||
-              (hw->autoneg_advertised == AUTONEG_ADVERTISE_10_ALL ) ||
-              (hw->autoneg_advertised == AUTONEG_ADVERTISE_10_100_ALL)) {
+    } else if ((hw->autoneg_advertised == AUTONEG_ADVERTISE_SPEED_DEFAULT) ||
+               (hw->autoneg_advertised == AUTONEG_ADVERTISE_10_ALL ) ||
+               (hw->autoneg_advertised == AUTONEG_ADVERTISE_10_100_ALL)) {
 
-        if(hw->mac_type == e1000_82541_rev_2 ||
+        if (hw->mac_type == e1000_82541_rev_2 ||
             hw->mac_type == e1000_82547_rev_2) {
             phy_data |= IGP01E1000_GMII_FLEX_SPD;
             ret_val = e1000_write_phy_reg(hw, IGP01E1000_GMII_FIFO, phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         } else {
             if (hw->mac_type == e1000_ich8lan) {
@@ -7310,12 +7294,12 @@ e1000_set_d3_lplu_state(struct e1000_hw *hw,
 
         /* When LPLU is enabled we should disable SmartSpeed */
         ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_data &= ~IGP01E1000_PSCFR_SMART_SPEED;
         ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG, phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
     }
@@ -7345,14 +7329,14 @@ e1000_set_d0_lplu_state(struct e1000_hw *hw,
     uint16_t phy_data;
     DEBUGFUNC("e1000_set_d0_lplu_state");
 
-    if(hw->mac_type <= e1000_82547_rev_2)
+    if (hw->mac_type <= e1000_82547_rev_2)
         return E1000_SUCCESS;
 
     if (hw->mac_type == e1000_ich8lan) {
         phy_ctrl = E1000_READ_REG(hw, PHY_CTRL);
     } else {
         ret_val = e1000_read_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
     }
 
@@ -7374,13 +7358,13 @@ e1000_set_d0_lplu_state(struct e1000_hw *hw,
         if (hw->smart_speed == e1000_smart_speed_on) {
             ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
                                          &phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
 
             phy_data |= IGP01E1000_PSCFR_SMART_SPEED;
             ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
                                           phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         } else if (hw->smart_speed == e1000_smart_speed_off) {
             ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
@@ -7391,7 +7375,7 @@ e1000_set_d0_lplu_state(struct e1000_hw *hw,
             phy_data &= ~IGP01E1000_PSCFR_SMART_SPEED;
             ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG,
                                           phy_data);
-            if(ret_val)
+            if (ret_val)
                 return ret_val;
         }
 
@@ -7410,12 +7394,12 @@ e1000_set_d0_lplu_state(struct e1000_hw *hw,
 
         /* When LPLU is enabled we should disable SmartSpeed */
         ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG, &phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         phy_data &= ~IGP01E1000_PSCFR_SMART_SPEED;
         ret_val = e1000_write_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG, phy_data);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
     }
@@ -7436,7 +7420,7 @@ e1000_set_vco_speed(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_set_vco_speed");
 
-    switch(hw->mac_type) {
+    switch (hw->mac_type) {
     case e1000_82545_rev_3:
     case e1000_82546_rev_3:
        break;
@@ -7447,39 +7431,39 @@ e1000_set_vco_speed(struct e1000_hw *hw)
     /* Set PHY register 30, page 5, bit 8 to 0 */
 
     ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, &default_page);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, 0x0005);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     phy_data &= ~M88E1000_PHY_VCO_REG_BIT8;
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     /* Set PHY register 30, page 4, bit 11 to 1 */
 
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, 0x0004);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     ret_val = e1000_read_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, &phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     phy_data |= M88E1000_PHY_VCO_REG_BIT11;
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, phy_data);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, default_page);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     return E1000_SUCCESS;
@@ -7535,7 +7519,7 @@ e1000_mng_enable_host_if(struct e1000_hw * hw)
         hicr = E1000_READ_REG(hw, HICR);
         if (!(hicr & E1000_HICR_C))
             break;
-        msec_delay_irq(1);
+        mdelay(1);
     }
 
     if (i == E1000_MNG_DHCP_COMMAND_TIMEOUT) {
@@ -7558,7 +7542,7 @@ e1000_mng_host_if_write(struct e1000_hw * hw, uint8_t *buffer,
 {
     uint8_t *tmp;
     uint8_t *bufptr = buffer;
-    uint32_t data;
+    uint32_t data = 0;
     uint16_t remaining, i, j, prev_bytes;
 
     /* sum = only sum of the data and it is not checksum */
@@ -7638,7 +7622,7 @@ e1000_mng_write_cmd_header(struct e1000_hw * hw,
 
     buffer = (uint8_t *) hdr;
     i = length;
-    while(i--)
+    while (i--)
         sum += buffer[i];
 
     hdr->checksum = 0 - sum;
@@ -7661,8 +7645,7 @@ e1000_mng_write_cmd_header(struct e1000_hw * hw,
  * returns  - E1000_SUCCESS for success.
  ****************************************************************************/
 static int32_t
-e1000_mng_write_commit(
-    struct e1000_hw * hw)
+e1000_mng_write_commit(struct e1000_hw * hw)
 {
     uint32_t hicr;
 
@@ -7834,75 +7817,75 @@ e1000_polarity_reversal_workaround(struct e1000_hw *hw)
     /* Disable the transmitter on the PHY */
 
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, 0x0019);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, 0xFFFF);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, 0x0000);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     /* This loop will early-out if the NO link condition has been met. */
-    for(i = PHY_FORCE_TIME; i > 0; i--) {
+    for (i = PHY_FORCE_TIME; i > 0; i--) {
         /* Read the MII Status Register and wait for Link Status bit
          * to be clear.
          */
 
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
-        if((mii_status_reg & ~MII_SR_LINK_STATUS) == 0) break;
-        msec_delay_irq(100);
+        if ((mii_status_reg & ~MII_SR_LINK_STATUS) == 0) break;
+        mdelay(100);
     }
 
     /* Recommended delay time after link has been lost */
-    msec_delay_irq(1000);
+    mdelay(1000);
 
     /* Now we will re-enable th transmitter on the PHY */
 
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, 0x0019);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
-    msec_delay_irq(50);
+    mdelay(50);
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, 0xFFF0);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
-    msec_delay_irq(50);
+    mdelay(50);
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, 0xFF00);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
-    msec_delay_irq(50);
+    mdelay(50);
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_GEN_CONTROL, 0x0000);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     ret_val = e1000_write_phy_reg(hw, M88E1000_PHY_PAGE_SELECT, 0x0000);
-    if(ret_val)
+    if (ret_val)
         return ret_val;
 
     /* This loop will early-out if the link condition has been met. */
-    for(i = PHY_FORCE_TIME; i > 0; i--) {
+    for (i = PHY_FORCE_TIME; i > 0; i--) {
         /* Read the MII Status Register and wait for Link Status bit
          * to be set.
          */
 
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
         ret_val = e1000_read_phy_reg(hw, PHY_STATUS, &mii_status_reg);
-        if(ret_val)
+        if (ret_val)
             return ret_val;
 
-        if(mii_status_reg & MII_SR_LINK_STATUS) break;
-        msec_delay_irq(100);
+        if (mii_status_reg & MII_SR_LINK_STATUS) break;
+        mdelay(100);
     }
     return E1000_SUCCESS;
 }
@@ -7980,15 +7963,15 @@ e1000_disable_pciex_master(struct e1000_hw *hw)
 
     e1000_set_pci_express_master_disable(hw);
 
-    while(timeout) {
-        if(!(E1000_READ_REG(hw, STATUS) & E1000_STATUS_GIO_MASTER_ENABLE))
+    while (timeout) {
+        if (!(E1000_READ_REG(hw, STATUS) & E1000_STATUS_GIO_MASTER_ENABLE))
             break;
         else
             udelay(100);
         timeout--;
     }
 
-    if(!timeout) {
+    if (!timeout) {
         DEBUGOUT("Master requests are pending.\n");
         return -E1000_ERR_MASTER_REQUESTS_PENDING;
     }
@@ -8015,7 +7998,7 @@ e1000_get_auto_rd_done(struct e1000_hw *hw)
 
     switch (hw->mac_type) {
     default:
-        msec_delay(5);
+        msleep(5);
         break;
     case e1000_82571:
     case e1000_82572:
@@ -8025,11 +8008,11 @@ e1000_get_auto_rd_done(struct e1000_hw *hw)
         while (timeout) {
             if (E1000_READ_REG(hw, EECD) & E1000_EECD_AUTO_RD)
                 break;
-            else msec_delay(1);
+            else msleep(1);
             timeout--;
         }
 
-        if(!timeout) {
+        if (!timeout) {
             DEBUGOUT("Auto read by HW from EEPROM has not completed.\n");
             return -E1000_ERR_RESET;
         }
@@ -8040,7 +8023,7 @@ e1000_get_auto_rd_done(struct e1000_hw *hw)
      * Need to wait for PHY configuration completion before accessing NVM
      * and PHY. */
     if (hw->mac_type == e1000_82573)
-        msec_delay(25);
+        msleep(25);
 
     return E1000_SUCCESS;
 }
@@ -8064,7 +8047,7 @@ e1000_get_phy_cfg_done(struct e1000_hw *hw)
 
     switch (hw->mac_type) {
     default:
-        msec_delay_irq(10);
+        mdelay(10);
         break;
     case e1000_80003es2lan:
         /* Separate *_CFG_DONE_* bit for each port */
@@ -8077,7 +8060,7 @@ e1000_get_phy_cfg_done(struct e1000_hw *hw)
             if (E1000_READ_REG(hw, EEMNGCTL) & cfg_mask)
                 break;
             else
-                msec_delay(1);
+                msleep(1);
             timeout--;
         }
 
@@ -8110,7 +8093,7 @@ e1000_get_hw_eeprom_semaphore(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_get_hw_eeprom_semaphore");
 
-    if(!hw->eeprom_semaphore_present)
+    if (!hw->eeprom_semaphore_present)
         return E1000_SUCCESS;
 
     if (hw->mac_type == e1000_80003es2lan) {
@@ -8121,20 +8104,20 @@ e1000_get_hw_eeprom_semaphore(struct e1000_hw *hw)
 
     /* Get the FW semaphore. */
     timeout = hw->eeprom.word_size + 1;
-    while(timeout) {
+    while (timeout) {
         swsm = E1000_READ_REG(hw, SWSM);
         swsm |= E1000_SWSM_SWESMBI;
         E1000_WRITE_REG(hw, SWSM, swsm);
         /* if we managed to set the bit we got the semaphore. */
         swsm = E1000_READ_REG(hw, SWSM);
-        if(swsm & E1000_SWSM_SWESMBI)
+        if (swsm & E1000_SWSM_SWESMBI)
             break;
 
         udelay(50);
         timeout--;
     }
 
-    if(!timeout) {
+    if (!timeout) {
         /* Release semaphores */
         e1000_put_hw_eeprom_semaphore(hw);
         DEBUGOUT("Driver can't access the Eeprom - SWESMBI bit is set.\n");
@@ -8159,7 +8142,7 @@ e1000_put_hw_eeprom_semaphore(struct e1000_hw *hw)
 
     DEBUGFUNC("e1000_put_hw_eeprom_semaphore");
 
-    if(!hw->eeprom_semaphore_present)
+    if (!hw->eeprom_semaphore_present)
         return;
 
     swsm = E1000_READ_REG(hw, SWSM);
@@ -8192,16 +8175,16 @@ e1000_get_software_semaphore(struct e1000_hw *hw)
     if (hw->mac_type != e1000_80003es2lan)
         return E1000_SUCCESS;
 
-    while(timeout) {
+    while (timeout) {
         swsm = E1000_READ_REG(hw, SWSM);
         /* If SMBI bit cleared, it is now set and we hold the semaphore */
-        if(!(swsm & E1000_SWSM_SMBI))
+        if (!(swsm & E1000_SWSM_SMBI))
             break;
-        msec_delay_irq(1);
+        mdelay(1);
         timeout--;
     }
 
-    if(!timeout) {
+    if (!timeout) {
         DEBUGOUT("Driver can't access device - SMBI bit is set.\n");
         return -E1000_ERR_RESET;
     }
@@ -8277,7 +8260,7 @@ e1000_arc_subsystem_valid(struct e1000_hw *hw)
     case e1000_82573:
     case e1000_80003es2lan:
         fwsm = E1000_READ_REG(hw, FWSM);
-        if((fwsm & E1000_FWSM_MODE_MASK) != 0)
+        if ((fwsm & E1000_FWSM_MODE_MASK) != 0)
             return TRUE;
         break;
     case e1000_ich8lan:
@@ -8356,7 +8339,7 @@ e1000_get_software_flag(struct e1000_hw *hw)
             extcnf_ctrl = E1000_READ_REG(hw, EXTCNF_CTRL);
             if (extcnf_ctrl & E1000_EXTCNF_CTRL_SWFLAG)
                 break;
-            msec_delay_irq(1);
+            mdelay(1);
             timeout--;
         }
 

+ 14 - 12
drivers/net/e1000/e1000_hw.h

@@ -336,9 +336,9 @@ uint32_t e1000_enable_mng_pass_thru(struct e1000_hw *hw);
 #define E1000_HI_MAX_MNG_DATA_LENGTH    0x6F8   /* Host Interface data length */
 
 #define E1000_MNG_DHCP_COMMAND_TIMEOUT  10      /* Time in ms to process MNG command */
-#define E1000_MNG_DHCP_COOKIE_OFFSET	0x6F0   /* Cookie offset */
-#define E1000_MNG_DHCP_COOKIE_LENGTH	0x10    /* Cookie length */
-#define E1000_MNG_IAMT_MODE		0x3
+#define E1000_MNG_DHCP_COOKIE_OFFSET    0x6F0   /* Cookie offset */
+#define E1000_MNG_DHCP_COOKIE_LENGTH    0x10    /* Cookie length */
+#define E1000_MNG_IAMT_MODE             0x3
 #define E1000_MNG_ICH_IAMT_MODE         0x2
 #define E1000_IAMT_SIGNATURE            0x544D4149 /* Intel(R) Active Management Technology signature */
 
@@ -385,7 +385,7 @@ struct e1000_host_mng_dhcp_cookie{
 #endif
 
 int32_t e1000_mng_write_dhcp_info(struct e1000_hw *hw, uint8_t *buffer,
-							uint16_t length);
+                                  uint16_t length);
 boolean_t e1000_check_mng_mode(struct e1000_hw *hw);
 boolean_t e1000_enable_tx_pkt_filtering(struct e1000_hw *hw);
 
@@ -470,6 +470,7 @@ int32_t e1000_check_phy_reset_block(struct e1000_hw *hw);
 #define E1000_DEV_ID_82571EB_COPPER      0x105E
 #define E1000_DEV_ID_82571EB_FIBER       0x105F
 #define E1000_DEV_ID_82571EB_SERDES      0x1060
+#define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4
 #define E1000_DEV_ID_82572EI_COPPER      0x107D
 #define E1000_DEV_ID_82572EI_FIBER       0x107E
 #define E1000_DEV_ID_82572EI_SERDES      0x107F
@@ -523,7 +524,7 @@ int32_t e1000_check_phy_reset_block(struct e1000_hw *hw);
 
 
 /* 802.1q VLAN Packet Sizes */
-#define VLAN_TAG_SIZE                     4     /* 802.3ac tag (not DMAed) */
+#define VLAN_TAG_SIZE  4     /* 802.3ac tag (not DMAed) */
 
 /* Ethertype field values */
 #define ETHERNET_IEEE_VLAN_TYPE 0x8100  /* 802.3ac packet */
@@ -697,6 +698,7 @@ union e1000_rx_desc_packet_split {
     E1000_RXDEXT_STATERR_CXE |            \
     E1000_RXDEXT_STATERR_RXE)
 
+
 /* Transmit Descriptor */
 struct e1000_tx_desc {
     uint64_t buffer_addr;       /* Address of the descriptor's data buffer */
@@ -2086,7 +2088,7 @@ struct e1000_hw {
 #define E1000_MANC_EN_IP_ADDR_FILTER    0x00400000 /* Enable IP address
                                                     * filtering */
 #define E1000_MANC_EN_XSUM_FILTER   0x00800000 /* Enable checksum filtering */
-#define E1000_MANC_BR_EN            0x01000000 /* Enable broadcast filtering */
+#define E1000_MANC_BR_EN         0x01000000 /* Enable broadcast filtering */
 #define E1000_MANC_SMB_REQ       0x01000000 /* SMBus Request */
 #define E1000_MANC_SMB_GNT       0x02000000 /* SMBus Grant */
 #define E1000_MANC_SMB_CLK_IN    0x04000000 /* SMBus Clock In */
@@ -2172,7 +2174,7 @@ struct e1000_host_command_info {
 
 #define E1000_MDALIGN          4096
 
-/* PCI-Ex registers */
+/* PCI-Ex registers*/
 
 /* PCI-Ex Control Register */
 #define E1000_GCR_RXD_NO_SNOOP          0x00000001
@@ -2224,7 +2226,7 @@ struct e1000_host_command_info {
 #define EEPROM_EWDS_OPCODE_MICROWIRE  0x10 /* EEPROM erast/write disable */
 
 /* EEPROM Commands - SPI */
-#define EEPROM_MAX_RETRY_SPI    5000 /* Max wait of 5ms, for RDY signal */
+#define EEPROM_MAX_RETRY_SPI        5000 /* Max wait of 5ms, for RDY signal */
 #define EEPROM_READ_OPCODE_SPI      0x03  /* EEPROM read opcode */
 #define EEPROM_WRITE_OPCODE_SPI     0x02  /* EEPROM write opcode */
 #define EEPROM_A8_OPCODE_SPI        0x08  /* opcode bit-3 = address bit-8 */
@@ -3082,10 +3084,10 @@ struct e1000_host_command_info {
 
 /* DSP Distance Register (Page 5, Register 26) */
 #define GG82563_DSPD_CABLE_LENGTH               0x0007 /* 0 = <50M;
-							      1 = 50-80M;
-							      2 = 80-110M;
-							      3 = 110-140M;
-							      4 = >140M */
+                                                          1 = 50-80M;
+                                                          2 = 80-110M;
+                                                          3 = 110-140M;
+                                                          4 = >140M */
 
 /* Kumeran Mode Control Register (Page 193, Register 16) */
 #define GG82563_KMCR_PHY_LEDS_EN                    0x0020 /* 1=PHY LEDs, 0=Kumeran Inband LEDs */

+ 92 - 62
drivers/net/e1000/e1000_main.c

@@ -36,7 +36,7 @@ static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver";
 #else
 #define DRIVERNAPI "-NAPI"
 #endif
-#define DRV_VERSION "7.1.9-k4"DRIVERNAPI
+#define DRV_VERSION "7.2.7-k2"DRIVERNAPI
 char e1000_driver_version[] = DRV_VERSION;
 static char e1000_copyright[] = "Copyright (c) 1999-2006 Intel Corporation.";
 
@@ -99,6 +99,7 @@ static struct pci_device_id e1000_pci_tbl[] = {
 	INTEL_E1000_ETHERNET_DEVICE(0x1098),
 	INTEL_E1000_ETHERNET_DEVICE(0x1099),
 	INTEL_E1000_ETHERNET_DEVICE(0x109A),
+	INTEL_E1000_ETHERNET_DEVICE(0x10A4),
 	INTEL_E1000_ETHERNET_DEVICE(0x10B5),
 	INTEL_E1000_ETHERNET_DEVICE(0x10B9),
 	INTEL_E1000_ETHERNET_DEVICE(0x10BA),
@@ -245,7 +246,7 @@ e1000_init_module(void)
 
 	printk(KERN_INFO "%s\n", e1000_copyright);
 
-	ret = pci_module_init(&e1000_driver);
+	ret = pci_register_driver(&e1000_driver);
 
 	return ret;
 }
@@ -485,7 +486,7 @@ e1000_up(struct e1000_adapter *adapter)
  *
  **/
 
-static void e1000_power_up_phy(struct e1000_adapter *adapter)
+void e1000_power_up_phy(struct e1000_adapter *adapter)
 {
 	uint16_t mii_reg = 0;
 
@@ -682,9 +683,9 @@ e1000_probe(struct pci_dev *pdev,
 	unsigned long flash_start, flash_len;
 
 	static int cards_found = 0;
-	static int e1000_ksp3_port_a = 0; /* global ksp3 port a indication */
+	static int global_quad_port_a = 0; /* global ksp3 port a indication */
 	int i, err, pci_using_dac;
-	uint16_t eeprom_data;
+	uint16_t eeprom_data = 0;
 	uint16_t eeprom_apme_mask = E1000_EEPROM_APME;
 	if ((err = pci_enable_device(pdev)))
 		return err;
@@ -696,21 +697,20 @@ e1000_probe(struct pci_dev *pdev,
 		if ((err = pci_set_dma_mask(pdev, DMA_32BIT_MASK)) &&
 		    (err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK))) {
 			E1000_ERR("No usable DMA configuration, aborting\n");
-			return err;
+			goto err_dma;
 		}
 		pci_using_dac = 0;
 	}
 
 	if ((err = pci_request_regions(pdev, e1000_driver_name)))
-		return err;
+		goto err_pci_reg;
 
 	pci_set_master(pdev);
 
+	err = -ENOMEM;
 	netdev = alloc_etherdev(sizeof(struct e1000_adapter));
-	if (!netdev) {
-		err = -ENOMEM;
+	if (!netdev)
 		goto err_alloc_etherdev;
-	}
 
 	SET_MODULE_OWNER(netdev);
 	SET_NETDEV_DEV(netdev, &pdev->dev);
@@ -725,11 +725,10 @@ e1000_probe(struct pci_dev *pdev,
 	mmio_start = pci_resource_start(pdev, BAR_0);
 	mmio_len = pci_resource_len(pdev, BAR_0);
 
+	err = -EIO;
 	adapter->hw.hw_addr = ioremap(mmio_start, mmio_len);
-	if (!adapter->hw.hw_addr) {
-		err = -EIO;
+	if (!adapter->hw.hw_addr)
 		goto err_ioremap;
-	}
 
 	for (i = BAR_1; i <= BAR_5; i++) {
 		if (pci_resource_len(pdev, i) == 0)
@@ -774,6 +773,7 @@ e1000_probe(struct pci_dev *pdev,
 	if ((err = e1000_sw_init(adapter)))
 		goto err_sw_init;
 
+	err = -EIO;
 	/* Flash BAR mapping must happen after e1000_sw_init
 	 * because it depends on mac_type */
 	if ((adapter->hw.mac_type == e1000_ich8lan) &&
@@ -781,24 +781,13 @@ e1000_probe(struct pci_dev *pdev,
 		flash_start = pci_resource_start(pdev, 1);
 		flash_len = pci_resource_len(pdev, 1);
 		adapter->hw.flash_address = ioremap(flash_start, flash_len);
-		if (!adapter->hw.flash_address) {
-			err = -EIO;
+		if (!adapter->hw.flash_address)
 			goto err_flashmap;
-		}
 	}
 
-	if ((err = e1000_check_phy_reset_block(&adapter->hw)))
+	if (e1000_check_phy_reset_block(&adapter->hw))
 		DPRINTK(PROBE, INFO, "PHY reset is blocked due to SOL/IDER session.\n");
 
-	/* if ksp3, indicate if it's port a being setup */
-	if (pdev->device == E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3 &&
-			e1000_ksp3_port_a == 0)
-		adapter->ksp3_port_a = 1;
-	e1000_ksp3_port_a++;
-	/* Reset for multiple KP3 adapters */
-	if (e1000_ksp3_port_a == 4)
-		e1000_ksp3_port_a = 0;
-
 	if (adapter->hw.mac_type >= e1000_82543) {
 		netdev->features = NETIF_F_SG |
 				   NETIF_F_HW_CSUM |
@@ -830,7 +819,7 @@ e1000_probe(struct pci_dev *pdev,
 
 	if (e1000_init_eeprom_params(&adapter->hw)) {
 		E1000_ERR("EEPROM initialization failed\n");
-		return -EIO;
+		goto err_eeprom;
 	}
 
 	/* before reading the EEPROM, reset the controller to
@@ -842,7 +831,6 @@ e1000_probe(struct pci_dev *pdev,
 
 	if (e1000_validate_eeprom_checksum(&adapter->hw) < 0) {
 		DPRINTK(PROBE, ERR, "The EEPROM Checksum Is Not Valid\n");
-		err = -EIO;
 		goto err_eeprom;
 	}
 
@@ -855,12 +843,9 @@ e1000_probe(struct pci_dev *pdev,
 
 	if (!is_valid_ether_addr(netdev->perm_addr)) {
 		DPRINTK(PROBE, ERR, "Invalid MAC Address\n");
-		err = -EIO;
 		goto err_eeprom;
 	}
 
-	e1000_read_part_num(&adapter->hw, &(adapter->part_num));
-
 	e1000_get_bus_info(&adapter->hw);
 
 	init_timer(&adapter->tx_fifo_stall_timer);
@@ -921,7 +906,38 @@ e1000_probe(struct pci_dev *pdev,
 		break;
 	}
 	if (eeprom_data & eeprom_apme_mask)
-		adapter->wol |= E1000_WUFC_MAG;
+		adapter->eeprom_wol |= E1000_WUFC_MAG;
+
+	/* now that we have the eeprom settings, apply the special cases
+	 * where the eeprom may be wrong or the board simply won't support
+	 * wake on lan on a particular port */
+	switch (pdev->device) {
+	case E1000_DEV_ID_82546GB_PCIE:
+		adapter->eeprom_wol = 0;
+		break;
+	case E1000_DEV_ID_82546EB_FIBER:
+	case E1000_DEV_ID_82546GB_FIBER:
+	case E1000_DEV_ID_82571EB_FIBER:
+		/* Wake events only supported on port A for dual fiber
+		 * regardless of eeprom setting */
+		if (E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_FUNC_1)
+			adapter->eeprom_wol = 0;
+		break;
+	case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3:
+	case E1000_DEV_ID_82571EB_QUAD_COPPER:
+		/* if quad port adapter, disable WoL on all but port A */
+		if (global_quad_port_a != 0)
+			adapter->eeprom_wol = 0;
+		else
+			adapter->quad_port_a = 1;
+		/* Reset for multiple quad port adapters */
+		if (++global_quad_port_a == 4)
+			global_quad_port_a = 0;
+		break;
+	}
+
+	/* initialize the wol settings based on the eeprom settings */
+	adapter->wol = adapter->eeprom_wol;
 
 	/* print bus type/speed/width info */
 	{
@@ -964,16 +980,33 @@ e1000_probe(struct pci_dev *pdev,
 	return 0;
 
 err_register:
+	e1000_release_hw_control(adapter);
+err_eeprom:
+	if (!e1000_check_phy_reset_block(&adapter->hw))
+		e1000_phy_hw_reset(&adapter->hw);
+
 	if (adapter->hw.flash_address)
 		iounmap(adapter->hw.flash_address);
 err_flashmap:
+#ifdef CONFIG_E1000_NAPI
+	for (i = 0; i < adapter->num_rx_queues; i++)
+		dev_put(&adapter->polling_netdev[i]);
+#endif
+
+	kfree(adapter->tx_ring);
+	kfree(adapter->rx_ring);
+#ifdef CONFIG_E1000_NAPI
+	kfree(adapter->polling_netdev);
+#endif
 err_sw_init:
-err_eeprom:
 	iounmap(adapter->hw.hw_addr);
 err_ioremap:
 	free_netdev(netdev);
 err_alloc_etherdev:
 	pci_release_regions(pdev);
+err_pci_reg:
+err_dma:
+	pci_disable_device(pdev);
 	return err;
 }
 
@@ -1208,7 +1241,7 @@ e1000_open(struct net_device *netdev)
 
 	err = e1000_request_irq(adapter);
 	if (err)
-		goto err_up;
+		goto err_req_irq;
 
 	e1000_power_up_phy(adapter);
 
@@ -1229,6 +1262,9 @@ e1000_open(struct net_device *netdev)
 	return E1000_SUCCESS;
 
 err_up:
+	e1000_power_down_phy(adapter);
+	e1000_free_irq(adapter);
+err_req_irq:
 	e1000_free_all_rx_resources(adapter);
 err_setup_rx:
 	e1000_free_all_tx_resources(adapter);
@@ -1381,10 +1417,6 @@ setup_tx_desc_die:
  * 				  (Descriptors) for all queues
  * @adapter: board private structure
  *
- * If this function returns with an error, then it's possible one or
- * more of the rings is populated (while the rest are not).  It is the
- * callers duty to clean those orphaned rings.
- *
  * Return 0 on success, negative on failure
  **/
 
@@ -1398,6 +1430,9 @@ e1000_setup_all_tx_resources(struct e1000_adapter *adapter)
 		if (err) {
 			DPRINTK(PROBE, ERR,
 				"Allocation for Tx Queue %u failed\n", i);
+			for (i-- ; i >= 0; i--)
+				e1000_free_tx_resources(adapter,
+							&adapter->tx_ring[i]);
 			break;
 		}
 	}
@@ -1499,8 +1534,6 @@ e1000_configure_tx(struct e1000_adapter *adapter)
 	} else if (hw->mac_type == e1000_80003es2lan) {
 		tarc = E1000_READ_REG(hw, TARC0);
 		tarc |= 1;
-		if (hw->media_type == e1000_media_type_internal_serdes)
-			tarc |= (1 << 20);
 		E1000_WRITE_REG(hw, TARC0, tarc);
 		tarc = E1000_READ_REG(hw, TARC1);
 		tarc |= 1;
@@ -1639,10 +1672,6 @@ setup_rx_desc_die:
  * 				  (Descriptors) for all queues
  * @adapter: board private structure
  *
- * If this function returns with an error, then it's possible one or
- * more of the rings is populated (while the rest are not).  It is the
- * callers duty to clean those orphaned rings.
- *
  * Return 0 on success, negative on failure
  **/
 
@@ -1656,6 +1685,9 @@ e1000_setup_all_rx_resources(struct e1000_adapter *adapter)
 		if (err) {
 			DPRINTK(PROBE, ERR,
 				"Allocation for Rx Queue %u failed\n", i);
+			for (i-- ; i >= 0; i--)
+				e1000_free_rx_resources(adapter,
+							&adapter->rx_ring[i]);
 			break;
 		}
 	}
@@ -2442,10 +2474,9 @@ e1000_watchdog(unsigned long data)
 			 * disable receives in the ISR and
 			 * reset device here in the watchdog
 			 */
-			if (adapter->hw.mac_type == e1000_80003es2lan) {
+			if (adapter->hw.mac_type == e1000_80003es2lan)
 				/* reset device */
 				schedule_work(&adapter->reset_task);
-			}
 		}
 
 		e1000_smartspeed(adapter);
@@ -2545,7 +2576,7 @@ e1000_tso(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,
 			cmd_length = E1000_TXD_CMD_IP;
 			ipcse = skb->h.raw - skb->data - 1;
 #ifdef NETIF_F_TSO_IPV6
-		} else if (skb->protocol == ntohs(ETH_P_IPV6)) {
+		} else if (skb->protocol == htons(ETH_P_IPV6)) {
 			skb->nh.ipv6h->payload_len = 0;
 			skb->h.th->check =
 				~csum_ipv6_magic(&skb->nh.ipv6h->saddr,
@@ -3680,7 +3711,7 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
 			E1000_DBG("%s: Receive packet consumed multiple"
 				  " buffers\n", netdev->name);
 			/* recycle */
-			buffer_info-> skb = skb;
+			buffer_info->skb = skb;
 			goto next_desc;
 		}
 
@@ -3711,7 +3742,6 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
 			    netdev_alloc_skb(netdev, length + NET_IP_ALIGN);
 			if (new_skb) {
 				skb_reserve(new_skb, NET_IP_ALIGN);
-				new_skb->dev = netdev;
 				memcpy(new_skb->data - NET_IP_ALIGN,
 				       skb->data - NET_IP_ALIGN,
 				       length + NET_IP_ALIGN);
@@ -3978,13 +4008,13 @@ e1000_alloc_rx_buffers(struct e1000_adapter *adapter,
 	buffer_info = &rx_ring->buffer_info[i];
 
 	while (cleaned_count--) {
-		if (!(skb = buffer_info->skb))
-			skb = netdev_alloc_skb(netdev, bufsz);
-		else {
+		skb = buffer_info->skb;
+		if (skb) {
 			skb_trim(skb, 0);
 			goto map_skb;
 		}
 
+		skb = netdev_alloc_skb(netdev, bufsz);
 		if (unlikely(!skb)) {
 			/* Better luck next round */
 			adapter->alloc_rx_buff_failed++;
@@ -4009,10 +4039,10 @@ e1000_alloc_rx_buffers(struct e1000_adapter *adapter,
 				dev_kfree_skb(skb);
 				dev_kfree_skb(oldskb);
 				break; /* while !buffer_info->skb */
-			} else {
-				/* Use new allocation */
-				dev_kfree_skb(oldskb);
 			}
+
+			/* Use new allocation */
+			dev_kfree_skb(oldskb);
 		}
 		/* Make buffer alignment 2 beyond a 16 byte boundary
 		 * this will result in a 16 byte aligned IP header after
@@ -4020,8 +4050,6 @@ e1000_alloc_rx_buffers(struct e1000_adapter *adapter,
 		 */
 		skb_reserve(skb, NET_IP_ALIGN);
 
-		skb->dev = netdev;
-
 		buffer_info->skb = skb;
 		buffer_info->length = adapter->rx_buffer_len;
 map_skb:
@@ -4135,8 +4163,6 @@ e1000_alloc_rx_buffers_ps(struct e1000_adapter *adapter,
 		 */
 		skb_reserve(skb, NET_IP_ALIGN);
 
-		skb->dev = netdev;
-
 		buffer_info->skb = skb;
 		buffer_info->length = adapter->rx_ps_bsize0;
 		buffer_info->dma = pci_map_single(pdev, skb->data,
@@ -4628,7 +4654,7 @@ e1000_suspend(struct pci_dev *pdev, pm_message_t state)
 		e1000_set_multi(netdev);
 
 		/* turn on all-multi mode if wake on multicast is enabled */
-		if (adapter->wol & E1000_WUFC_MC) {
+		if (wufc & E1000_WUFC_MC) {
 			rctl = E1000_READ_REG(&adapter->hw, RCTL);
 			rctl |= E1000_RCTL_MPE;
 			E1000_WRITE_REG(&adapter->hw, RCTL, rctl);
@@ -4700,11 +4726,14 @@ e1000_resume(struct pci_dev *pdev)
 {
 	struct net_device *netdev = pci_get_drvdata(pdev);
 	struct e1000_adapter *adapter = netdev_priv(netdev);
-	uint32_t manc, ret_val;
+	uint32_t manc, err;
 
 	pci_set_power_state(pdev, PCI_D0);
 	e1000_pci_restore_state(adapter);
-	ret_val = pci_enable_device(pdev);
+	if ((err = pci_enable_device(pdev))) {
+		printk(KERN_ERR "e1000: Cannot enable PCI device from suspend\n");
+		return err;
+	}
 	pci_set_master(pdev);
 
 	pci_enable_wake(pdev, PCI_D3hot, 0);
@@ -4782,6 +4811,7 @@ static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev, pci_channe
 
 	if (netif_running(netdev))
 		e1000_down(adapter);
+	pci_disable_device(pdev);
 
 	/* Request a slot slot reset. */
 	return PCI_ERS_RESULT_NEED_RESET;

+ 0 - 19
drivers/net/e1000/e1000_osdep.h

@@ -42,25 +42,6 @@
 #include <linux/interrupt.h>
 #include <linux/sched.h>
 
-#ifndef msec_delay
-#define msec_delay(x)	do { if(in_interrupt()) { \
-				/* Don't mdelay in interrupt context! */ \
-	                	BUG(); \
-			} else { \
-				msleep(x); \
-			} } while (0)
-
-/* Some workarounds require millisecond delays and are run during interrupt
- * context.  Most notably, when establishing link, the phy may need tweaking
- * but cannot process phy register reads/writes faster than millisecond
- * intervals...and we establish link due to a "link status change" interrupt.
- */
-#define msec_delay_irq(x) mdelay(x)
-#endif
-
-#define PCI_COMMAND_REGISTER   PCI_COMMAND
-#define CMD_MEM_WRT_INVALIDATE PCI_COMMAND_INVALIDATE
-
 typedef enum {
 #undef FALSE
     FALSE = 0,

+ 110 - 51
drivers/net/e1000/e1000_param.c

@@ -324,7 +324,6 @@ e1000_check_options(struct e1000_adapter *adapter)
 		DPRINTK(PROBE, NOTICE,
 		       "Warning: no configuration for board #%i\n", bd);
 		DPRINTK(PROBE, NOTICE, "Using defaults for all values\n");
-		bd = E1000_MAX_NIC;
 	}
 
 	{ /* Transmit Descriptor Count */
@@ -342,9 +341,14 @@ e1000_check_options(struct e1000_adapter *adapter)
 		opt.arg.r.max = mac_type < e1000_82544 ?
 			E1000_MAX_TXD : E1000_MAX_82544_TXD;
 
-		tx_ring->count = TxDescriptors[bd];
-		e1000_validate_option(&tx_ring->count, &opt, adapter);
-		E1000_ROUNDUP(tx_ring->count, REQ_TX_DESCRIPTOR_MULTIPLE);
+		if (num_TxDescriptors > bd) {
+			tx_ring->count = TxDescriptors[bd];
+			e1000_validate_option(&tx_ring->count, &opt, adapter);
+			E1000_ROUNDUP(tx_ring->count,
+						REQ_TX_DESCRIPTOR_MULTIPLE);
+		} else {
+			tx_ring->count = opt.def;
+		}
 		for (i = 0; i < adapter->num_tx_queues; i++)
 			tx_ring[i].count = tx_ring->count;
 	}
@@ -363,9 +367,14 @@ e1000_check_options(struct e1000_adapter *adapter)
 		opt.arg.r.max = mac_type < e1000_82544 ? E1000_MAX_RXD :
 			E1000_MAX_82544_RXD;
 
-		rx_ring->count = RxDescriptors[bd];
-		e1000_validate_option(&rx_ring->count, &opt, adapter);
-		E1000_ROUNDUP(rx_ring->count, REQ_RX_DESCRIPTOR_MULTIPLE);
+		if (num_RxDescriptors > bd) {
+			rx_ring->count = RxDescriptors[bd];
+			e1000_validate_option(&rx_ring->count, &opt, adapter);
+			E1000_ROUNDUP(rx_ring->count,
+						REQ_RX_DESCRIPTOR_MULTIPLE);
+		} else {
+			rx_ring->count = opt.def;
+		}
 		for (i = 0; i < adapter->num_rx_queues; i++)
 			rx_ring[i].count = rx_ring->count;
 	}
@@ -377,9 +386,13 @@ e1000_check_options(struct e1000_adapter *adapter)
 			.def  = OPTION_ENABLED
 		};
 
-		int rx_csum = XsumRX[bd];
-		e1000_validate_option(&rx_csum, &opt, adapter);
-		adapter->rx_csum = rx_csum;
+		if (num_XsumRX > bd) {
+			int rx_csum = XsumRX[bd];
+			e1000_validate_option(&rx_csum, &opt, adapter);
+			adapter->rx_csum = rx_csum;
+		} else {
+			adapter->rx_csum = opt.def;
+		}
 	}
 	{ /* Flow Control */
 
@@ -399,9 +412,13 @@ e1000_check_options(struct e1000_adapter *adapter)
 					 .p = fc_list }}
 		};
 
-		int fc = FlowControl[bd];
-		e1000_validate_option(&fc, &opt, adapter);
-		adapter->hw.fc = adapter->hw.original_fc = fc;
+		if (num_FlowControl > bd) {
+			int fc = FlowControl[bd];
+			e1000_validate_option(&fc, &opt, adapter);
+			adapter->hw.fc = adapter->hw.original_fc = fc;
+		} else {
+			adapter->hw.fc = adapter->hw.original_fc = opt.def;
+		}
 	}
 	{ /* Transmit Interrupt Delay */
 		struct e1000_option opt = {
@@ -413,8 +430,13 @@ e1000_check_options(struct e1000_adapter *adapter)
 					 .max = MAX_TXDELAY }}
 		};
 
-		adapter->tx_int_delay = TxIntDelay[bd];
-		e1000_validate_option(&adapter->tx_int_delay, &opt, adapter);
+		if (num_TxIntDelay > bd) {
+			adapter->tx_int_delay = TxIntDelay[bd];
+			e1000_validate_option(&adapter->tx_int_delay, &opt,
+			                      adapter);
+		} else {
+			adapter->tx_int_delay = opt.def;
+		}
 	}
 	{ /* Transmit Absolute Interrupt Delay */
 		struct e1000_option opt = {
@@ -426,9 +448,13 @@ e1000_check_options(struct e1000_adapter *adapter)
 					 .max = MAX_TXABSDELAY }}
 		};
 
-		adapter->tx_abs_int_delay = TxAbsIntDelay[bd];
-		e1000_validate_option(&adapter->tx_abs_int_delay, &opt,
-		                      adapter);
+		if (num_TxAbsIntDelay > bd) {
+			adapter->tx_abs_int_delay = TxAbsIntDelay[bd];
+			e1000_validate_option(&adapter->tx_abs_int_delay, &opt,
+			                      adapter);
+		} else {
+			adapter->tx_abs_int_delay = opt.def;
+		}
 	}
 	{ /* Receive Interrupt Delay */
 		struct e1000_option opt = {
@@ -440,8 +466,13 @@ e1000_check_options(struct e1000_adapter *adapter)
 					 .max = MAX_RXDELAY }}
 		};
 
-		adapter->rx_int_delay = RxIntDelay[bd];
-		e1000_validate_option(&adapter->rx_int_delay, &opt, adapter);
+		if (num_RxIntDelay > bd) {
+			adapter->rx_int_delay = RxIntDelay[bd];
+			e1000_validate_option(&adapter->rx_int_delay, &opt,
+			                      adapter);
+		} else {
+			adapter->rx_int_delay = opt.def;
+		}
 	}
 	{ /* Receive Absolute Interrupt Delay */
 		struct e1000_option opt = {
@@ -453,9 +484,13 @@ e1000_check_options(struct e1000_adapter *adapter)
 					 .max = MAX_RXABSDELAY }}
 		};
 
-		adapter->rx_abs_int_delay = RxAbsIntDelay[bd];
-		e1000_validate_option(&adapter->rx_abs_int_delay, &opt,
-		                      adapter);
+		if (num_RxAbsIntDelay > bd) {
+			adapter->rx_abs_int_delay = RxAbsIntDelay[bd];
+			e1000_validate_option(&adapter->rx_abs_int_delay, &opt,
+			                      adapter);
+		} else {
+			adapter->rx_abs_int_delay = opt.def;
+		}
 	}
 	{ /* Interrupt Throttling Rate */
 		struct e1000_option opt = {
@@ -467,18 +502,24 @@ e1000_check_options(struct e1000_adapter *adapter)
 					 .max = MAX_ITR }}
 		};
 
-		adapter->itr = InterruptThrottleRate[bd];
-		switch (adapter->itr) {
-		case 0:
-			DPRINTK(PROBE, INFO, "%s turned off\n", opt.name);
-			break;
-		case 1:
-			DPRINTK(PROBE, INFO, "%s set to dynamic mode\n",
-				opt.name);
-			break;
-		default:
-			e1000_validate_option(&adapter->itr, &opt, adapter);
-			break;
+		if (num_InterruptThrottleRate > bd) {
+			adapter->itr = InterruptThrottleRate[bd];
+			switch (adapter->itr) {
+			case 0:
+				DPRINTK(PROBE, INFO, "%s turned off\n",
+				        opt.name);
+				break;
+			case 1:
+				DPRINTK(PROBE, INFO, "%s set to dynamic mode\n",
+				        opt.name);
+				break;
+			default:
+				e1000_validate_option(&adapter->itr, &opt,
+				                      adapter);
+				break;
+			}
+		} else {
+			adapter->itr = opt.def;
 		}
 	}
 	{ /* Smart Power Down */
@@ -489,9 +530,13 @@ e1000_check_options(struct e1000_adapter *adapter)
 			.def  = OPTION_DISABLED
 		};
 
-		int spd = SmartPowerDownEnable[bd];
-		e1000_validate_option(&spd, &opt, adapter);
-		adapter->smart_power_down = spd;
+		if (num_SmartPowerDownEnable > bd) {
+			int spd = SmartPowerDownEnable[bd];
+			e1000_validate_option(&spd, &opt, adapter);
+			adapter->smart_power_down = spd;
+		} else {
+			adapter->smart_power_down = opt.def;
+		}
 	}
 	{ /* Kumeran Lock Loss Workaround */
 		struct e1000_option opt = {
@@ -501,9 +546,13 @@ e1000_check_options(struct e1000_adapter *adapter)
 			.def  = OPTION_ENABLED
 		};
 
+		if (num_KumeranLockLoss > bd) {
 			int kmrn_lock_loss = KumeranLockLoss[bd];
 			e1000_validate_option(&kmrn_lock_loss, &opt, adapter);
 			adapter->hw.kmrn_lock_loss_workaround_disabled = !kmrn_lock_loss;
+		} else {
+			adapter->hw.kmrn_lock_loss_workaround_disabled = !opt.def;
+		}
 	}
 
 	switch (adapter->hw.media_type) {
@@ -530,18 +579,17 @@ static void __devinit
 e1000_check_fiber_options(struct e1000_adapter *adapter)
 {
 	int bd = adapter->bd_number;
-	bd = bd > E1000_MAX_NIC ? E1000_MAX_NIC : bd;
-	if ((Speed[bd] != OPTION_UNSET)) {
+	if (num_Speed > bd) {
 		DPRINTK(PROBE, INFO, "Speed not valid for fiber adapters, "
 		       "parameter ignored\n");
 	}
 
-	if ((Duplex[bd] != OPTION_UNSET)) {
+	if (num_Duplex > bd) {
 		DPRINTK(PROBE, INFO, "Duplex not valid for fiber adapters, "
 		       "parameter ignored\n");
 	}
 
-	if ((AutoNeg[bd] != OPTION_UNSET) && (AutoNeg[bd] != 0x20)) {
+	if ((num_AutoNeg > bd) && (AutoNeg[bd] != 0x20)) {
 		DPRINTK(PROBE, INFO, "AutoNeg other than 1000/Full is "
 				 "not valid for fiber adapters, "
 				 "parameter ignored\n");
@@ -560,7 +608,6 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
 {
 	int speed, dplx, an;
 	int bd = adapter->bd_number;
-	bd = bd > E1000_MAX_NIC ? E1000_MAX_NIC : bd;
 
 	{ /* Speed */
 		struct e1000_opt_list speed_list[] = {{          0, "" },
@@ -577,8 +624,12 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
 					 .p = speed_list }}
 		};
 
-		speed = Speed[bd];
-		e1000_validate_option(&speed, &opt, adapter);
+		if (num_Speed > bd) {
+			speed = Speed[bd];
+			e1000_validate_option(&speed, &opt, adapter);
+		} else {
+			speed = opt.def;
+		}
 	}
 	{ /* Duplex */
 		struct e1000_opt_list dplx_list[] = {{           0, "" },
@@ -600,11 +651,15 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
 			        "Speed/Duplex/AutoNeg parameter ignored.\n");
 			return;
 		}
-		dplx = Duplex[bd];
-		e1000_validate_option(&dplx, &opt, adapter);
+		if (num_Duplex > bd) {
+			dplx = Duplex[bd];
+			e1000_validate_option(&dplx, &opt, adapter);
+		} else {
+			dplx = opt.def;
+		}
 	}
 
-	if (AutoNeg[bd] != OPTION_UNSET && (speed != 0 || dplx != 0)) {
+	if ((num_AutoNeg > bd) && (speed != 0 || dplx != 0)) {
 		DPRINTK(PROBE, INFO,
 		       "AutoNeg specified along with Speed or Duplex, "
 		       "parameter ignored\n");
@@ -653,15 +708,19 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
 					 .p = an_list }}
 		};
 
-		an = AutoNeg[bd];
-		e1000_validate_option(&an, &opt, adapter);
+		if (num_AutoNeg > bd) {
+			an = AutoNeg[bd];
+			e1000_validate_option(&an, &opt, adapter);
+		} else {
+			an = opt.def;
+		}
 		adapter->hw.autoneg_advertised = an;
 	}
 
 	switch (speed + dplx) {
 	case 0:
 		adapter->hw.autoneg = adapter->fc_autoneg = 1;
-		if (Speed[bd] != OPTION_UNSET || Duplex[bd] != OPTION_UNSET)
+		if ((num_Speed > bd) && (speed != 0 || dplx != 0))
 			DPRINTK(PROBE, INFO,
 			       "Speed and duplex autonegotiation enabled\n");
 		break;

+ 2 - 2
drivers/net/e2100.c

@@ -110,7 +110,7 @@ static void e21_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr,
 
 static int e21_close(struct net_device *dev);
 
-
+
 /*  Probe for the E2100 series ethercards.  These cards have an 8390 at the
 	base address and the station address at both offset 0x10 and 0x18.  I read
 	the station address from offset 0x18 to avoid the dataport of NE2000
@@ -403,7 +403,7 @@ e21_close(struct net_device *dev)
 	return 0;
 }
 
-
+
 #ifdef MODULE
 #define MAX_E21_CARDS	4	/* Max number of E21 cards per module */
 static struct net_device *dev_e21[MAX_E21_CARDS];

+ 3 - 4
drivers/net/eepro.c

@@ -154,7 +154,7 @@ static const char version[] =
 #include <asm/dma.h>
 
 #define DRV_NAME "eepro"
-#define DRV_VERSION "0.13b"
+#define DRV_VERSION "0.13c"
 
 #define compat_dev_kfree_skb( skb, mode ) dev_kfree_skb( (skb) )
 /* I had reports of looong delays with SLOW_DOWN defined as udelay(2) */
@@ -743,7 +743,7 @@ static void __init eepro_print_info (struct net_device *dev)
 		printEEPROMInfo(dev);
 }
 
-static struct ethtool_ops eepro_ethtool_ops;
+static const struct ethtool_ops eepro_ethtool_ops;
 
 /* This is the real probe routine.  Linux has a history of friendly device
    probes on the ISA bus.  A good device probe avoids doing writes, and
@@ -1333,7 +1333,6 @@ set_multicast_list(struct net_device *dev)
 		mode = inb(ioaddr + REG3);
 		outb(mode, ioaddr + REG3); /* writing reg. 3 to complete the update */
 		eepro_sw2bank0(ioaddr); /* Return to BANK 0 now */
-		printk(KERN_INFO "%s: promiscuous mode enabled.\n", dev->name);
 	}
 
 	else if (dev->mc_count==0 )
@@ -1772,7 +1771,7 @@ static void eepro_ethtool_get_drvinfo(struct net_device *dev,
 	sprintf(drvinfo->bus_info, "ISA 0x%lx", dev->base_addr);
 }
 
-static struct ethtool_ops eepro_ethtool_ops = {
+static const struct ethtool_ops eepro_ethtool_ops = {
 	.get_settings	= eepro_ethtool_get_settings,
 	.get_drvinfo 	= eepro_ethtool_get_drvinfo,
 };

+ 20 - 20
drivers/net/eepro100.c

@@ -494,9 +494,9 @@ static struct net_device_stats *speedo_get_stats(struct net_device *dev);
 static int speedo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
 static void set_rx_mode(struct net_device *dev);
 static void speedo_show_state(struct net_device *dev);
-static struct ethtool_ops ethtool_ops;
+static const struct ethtool_ops ethtool_ops;
+
 
-
 
 #ifdef honor_default_port
 /* Optional driver feature to allow forcing the transceiver setting.
@@ -646,7 +646,7 @@ static int __devinit speedo_found1(struct pci_dev *pdev,
 		option = 0;
 
 	rtnl_lock();
-	if (dev_alloc_name(dev, dev->name) < 0) 
+	if (dev_alloc_name(dev, dev->name) < 0)
 		goto err_free_unlock;
 
 	/* Read the station address EEPROM before doing the reset.
@@ -825,10 +825,10 @@ static int __devinit speedo_found1(struct pci_dev *pdev,
 	sp->mii_if.dev = dev;
 	sp->mii_if.mdio_read = mdio_read;
 	sp->mii_if.mdio_write = mdio_write;
-	
+
 	sp->rx_bug = (eeprom[3] & 0x03) == 3 ? 0 : 1;
-	if (((pdev->device > 0x1030 && (pdev->device < 0x103F))) 
-	    || (pdev->device == 0x2449) || (pdev->device == 0x2459) 
+	if (((pdev->device > 0x1030 && (pdev->device < 0x103F)))
+	    || (pdev->device == 0x2449) || (pdev->device == 0x2459)
             || (pdev->device == 0x245D)) {
 	    	sp->chip_id = 1;
 	}
@@ -1208,7 +1208,7 @@ static void speedo_show_state(struct net_device *dev)
 	int i;
 
 	if (netif_msg_pktdata(sp)) {
-		printk(KERN_DEBUG "%s: Tx ring dump,  Tx queue %u / %u:\n", 
+		printk(KERN_DEBUG "%s: Tx ring dump,  Tx queue %u / %u:\n",
 		    dev->name, sp->cur_tx, sp->dirty_tx);
 		for (i = 0; i < TX_RING_SIZE; i++)
 			printk(KERN_DEBUG "%s:  %c%c%2d %8.8x.\n", dev->name,
@@ -1586,7 +1586,7 @@ static irqreturn_t speedo_interrupt(int irq, void *dev_instance, struct pt_regs
 
 		/* Always check if all rx buffers are allocated.  --SAW */
 		speedo_refill_rx_buffers(dev, 0);
-		
+
 		spin_lock(&sp->lock);
 		/*
 		 * The chip may have suspended reception for various reasons.
@@ -1607,8 +1607,8 @@ static irqreturn_t speedo_interrupt(int irq, void *dev_instance, struct pt_regs
 			/* these are all reserved values */
 			break;
 		}
-		
-		
+
+
 		/* User interrupt, Command/Tx unit interrupt or CU not active. */
 		if (status & 0xA400) {
 			speedo_tx_buffer_gc(dev);
@@ -1619,7 +1619,7 @@ static irqreturn_t speedo_interrupt(int irq, void *dev_instance, struct pt_regs
 				netif_wake_queue(dev); /* Attention: under a spinlock.  --SAW */
 			}
 		}
-		
+
 		spin_unlock(&sp->lock);
 
 		if (--boguscnt < 0) {
@@ -2015,7 +2015,7 @@ static void speedo_set_msglevel(struct net_device *dev, u32 v)
 	sp->msg_enable = v;
 }
 
-static struct ethtool_ops ethtool_ops = {
+static const struct ethtool_ops ethtool_ops = {
 	.get_drvinfo = speedo_get_drvinfo,
 	.get_settings = speedo_get_settings,
 	.set_settings = speedo_set_settings,
@@ -2263,7 +2263,7 @@ static void set_rx_mode(struct net_device *dev)
 
 	sp->rx_mode = new_rx_mode;
 }
-
+
 #ifdef CONFIG_PM
 static int eepro100_suspend(struct pci_dev *pdev, pm_message_t state)
 {
@@ -2275,12 +2275,12 @@ static int eepro100_suspend(struct pci_dev *pdev, pm_message_t state)
 
 	if (!netif_running(dev))
 		return 0;
-		
+
 	del_timer_sync(&sp->timer);
 
 	netif_device_detach(dev);
 	iowrite32(PortPartialReset, ioaddr + SCBPort);
-	
+
 	/* XXX call pci_set_power_state ()? */
 	pci_disable_device(pdev);
 	pci_set_power_state (pdev, PCI_D3hot);
@@ -2324,7 +2324,7 @@ static void __devexit eepro100_remove_one (struct pci_dev *pdev)
 {
 	struct net_device *dev = pci_get_drvdata (pdev);
 	struct speedo_private *sp = netdev_priv(dev);
-	
+
 	unregister_netdev(dev);
 
 	release_region(pci_resource_start(pdev, 1), pci_resource_len(pdev, 1));
@@ -2337,7 +2337,7 @@ static void __devexit eepro100_remove_one (struct pci_dev *pdev)
 	pci_disable_device(pdev);
 	free_netdev(dev);
 }
-
+
 static struct pci_device_id eepro100_pci_tbl[] = {
 	{ PCI_VENDOR_ID_INTEL, 0x1229, PCI_ANY_ID, PCI_ANY_ID, },
 	{ PCI_VENDOR_ID_INTEL, 0x1209, PCI_ANY_ID, PCI_ANY_ID, },
@@ -2368,7 +2368,7 @@ static struct pci_device_id eepro100_pci_tbl[] = {
 	{ 0,}
 };
 MODULE_DEVICE_TABLE(pci, eepro100_pci_tbl);
-	
+
 static struct pci_driver eepro100_driver = {
 	.name		= "eepro100",
 	.id_table	= eepro100_pci_tbl,
@@ -2385,7 +2385,7 @@ static int __init eepro100_init_module(void)
 #ifdef MODULE
 	printk(version);
 #endif
-	return pci_module_init(&eepro100_driver);
+	return pci_register_driver(&eepro100_driver);
 }
 
 static void __exit eepro100_cleanup_module(void)
@@ -2395,7 +2395,7 @@ static void __exit eepro100_cleanup_module(void)
 
 module_init(eepro100_init_module);
 module_exit(eepro100_cleanup_module);
-
+
 /*
  * Local variables:
  *  compile-command: "gcc -DMODULE -D__KERNEL__ -I/usr/src/linux/net/inet -Wall -Wstrict-prototypes -O6 -c eepro100.c `[ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS`"

+ 49 - 49
drivers/net/eexpress.c

@@ -77,7 +77,7 @@
  * CU before submitting a packet for transmission, and then restarts it as soon
  * as the process of handing the packet is complete. This is definitely an
  * unnecessary slowdown if the card is running in 16-bit mode; therefore one
- * should detect 16-bit vs 8-bit mode from the EEPROM settings and act 
+ * should detect 16-bit vs 8-bit mode from the EEPROM settings and act
  * accordingly. In 8-bit mode with this bugfix I'm getting about 150 K/s for
  * ftp's, which is significantly better than I get in DOS, so the overhead of
  * stopping and restarting the CU with each transmit is not prohibitive in
@@ -96,7 +96,7 @@
 #ifndef LOCKUP16
 #define LOCKUP16 0
 #endif
-  
+
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
@@ -177,7 +177,7 @@ static unsigned short start_code[] = {
 
 /* 0x20 -- start of 82586 CU program */
 #define CONF_LINK 0x20
-	0x0000,Cmd_Config,      
+	0x0000,Cmd_Config,
 	0x0032,                 /* link to next command */
 	0x080c,                 /* 12 bytes follow : fifo threshold=8 */
 	0x2e40,                 /* don't rx bad frames
@@ -187,10 +187,10 @@ static unsigned short start_code[] = {
 				 */
 	0x6000,                 /* default backoff method & priority
 				 * interframe spacing = 0x60 */
-	0xf200,                 /* slot time=0x200 
+	0xf200,                 /* slot time=0x200
 				 * max collision retry = 0xf */
 #define CONF_PROMISC  0x2e
-	0x0000,                 /* no HDLC : normal CRC : enable broadcast 
+	0x0000,                 /* no HDLC : normal CRC : enable broadcast
 				 * disable promiscuous/multicast modes */
 	0x003c,                 /* minimum frame length = 60 octets) */
 
@@ -237,7 +237,7 @@ static unsigned short mca_iomap[] = {
 };
 /* bits 5-7 of the second POS register */
 static char mca_irqmap[] = { 12, 9, 3, 4, 5, 10, 11, 15 };
-#endif 
+#endif
 
 /*
  * Prototypes for Linux interface
@@ -356,7 +356,7 @@ static int __init do_express_probe(struct net_device *dev)
 		 */
 		while (slot != MCA_NOTFOUND) {
 			int pos0, pos1;
-			
+
 			slot = mca_find_unused_adapter(0x628B, slot);
 			if (slot == MCA_NOTFOUND)
 				break;
@@ -366,10 +366,10 @@ static int __init do_express_probe(struct net_device *dev)
 			ioaddr = mca_iomap[pos1&0xf];
 
 			dev->irq = mca_irqmap[(pos1>>4)&0x7];
-			
+
 			/*
 			 * XXX: Transciever selection is done
-			 * differently on the MCA version.  
+			 * differently on the MCA version.
 			 * How to get it to select something
 			 * other than external/AUI is currently
 			 * unknown.  This code is just for looks. -- ASF
@@ -482,7 +482,7 @@ static int eexp_open(struct net_device *dev)
 			, ioaddr+0xc000);
 		goto err_out4;
 	}
-	
+
 	if (lp->width) {
 		printk("%s: forcing ASIC to 8-bit mode\n", dev->name);
 		outb(inb(dev->base_addr+Config)&~4, dev->base_addr+Config);
@@ -518,7 +518,7 @@ static int eexp_close(struct net_device *dev)
 	int irq = dev->irq;
 
 	netif_stop_queue(dev);
-	
+
 	outb(SIRQ_dis|irqrmap[irq],ioaddr+SET_IRQ);
 	lp->started = 0;
 	scb_command(dev, SCB_CUsuspend|SCB_RUsuspend);
@@ -630,14 +630,14 @@ static void eexp_timeout(struct net_device *dev)
 	unsigned long flags;
 #endif
 	int status;
-	
+
 	disable_irq(dev->irq);
 
 	/*
 	 *	Best would be to use synchronize_irq(); spin_lock() here
 	 *	lets make it work first..
 	 */
-	 
+
 #ifdef CONFIG_SMP
 	spin_lock_irqsave(&lp->lock, flags);
 #endif
@@ -653,7 +653,7 @@ static void eexp_timeout(struct net_device *dev)
 		scb_command(dev, SCB_CUabort);
 		outb(0,dev->base_addr+SIGNAL_CA);
 	}
-	netif_wake_queue(dev);	
+	netif_wake_queue(dev);
 #ifdef CONFIG_SMP
 	spin_unlock_irqrestore(&lp->lock, flags);
 #endif
@@ -687,11 +687,11 @@ static int eexp_xmit(struct sk_buff *buf, struct net_device *dev)
 	 *	Best would be to use synchronize_irq(); spin_lock() here
 	 *	lets make it work first..
 	 */
-	 
+
 #ifdef CONFIG_SMP
 	spin_lock_irqsave(&lp->lock, flags);
 #endif
-  
+
 	{
 		unsigned short *data = (unsigned short *)buf->data;
 
@@ -739,7 +739,7 @@ static unsigned short eexp_start_irq(struct net_device *dev,
 		outw(CONF_DIAG_RESULT & ~31, ioaddr + SM_PTR);
 		diag_status = inw(ioaddr + SHADOW(CONF_DIAG_RESULT));
 		if (diag_status & 1<<11) {
-			printk(KERN_WARNING "%s: 82586 failed self-test\n", 
+			printk(KERN_WARNING "%s: 82586 failed self-test\n",
 			       dev->name);
 		} else if (!(diag_status & 1<<13)) {
 			printk(KERN_WARNING "%s: 82586 self-test failed to complete\n", dev->name);
@@ -749,7 +749,7 @@ static unsigned short eexp_start_irq(struct net_device *dev,
 		tdr_status = inw(ioaddr + SHADOW(CONF_TDR_RESULT));
 		if (tdr_status & (TDR_SHORT|TDR_OPEN)) {
 			printk(KERN_WARNING "%s: TDR reports cable %s at %d tick%s\n", dev->name, (tdr_status & TDR_SHORT)?"short":"broken", tdr_status & TDR_TIME, ((tdr_status & TDR_TIME) != 1) ? "s" : "");
-		} 
+		}
 		else if (tdr_status & TDR_XCVRPROBLEM) {
 			printk(KERN_WARNING "%s: TDR reports transceiver problem\n", dev->name);
 		}
@@ -761,7 +761,7 @@ static unsigned short eexp_start_irq(struct net_device *dev,
 			printk("%s: TDR is ga-ga (status %04x)\n", dev->name,
 			       tdr_status);
 		}
-			
+
 		lp->started |= STARTED_CU;
 		scb_wrcbl(dev, lp->tx_link);
 		/* if the RU isn't running, start it now */
@@ -774,7 +774,7 @@ static unsigned short eexp_start_irq(struct net_device *dev,
 		ack_cmd |= SCB_CUstart | 0x2000;
 	}
 
-	if ((dev->flags & IFF_UP) && !(lp->started & STARTED_RU) && SCB_RUstat(status)==4) 
+	if ((dev->flags & IFF_UP) && !(lp->started & STARTED_RU) && SCB_RUstat(status)==4)
 		lp->started|=STARTED_RU;
 
 	return ack_cmd;
@@ -788,7 +788,7 @@ static void eexp_cmd_clear(struct net_device *dev)
 		printk("%s: command didn't clear\n", dev->name);
 	}
 }
-	
+
 static irqreturn_t eexp_irq(int irq, void *dev_info, struct pt_regs *regs)
 {
 	struct net_device *dev = dev_info;
@@ -813,7 +813,7 @@ static irqreturn_t eexp_irq(int irq, void *dev_info, struct pt_regs *regs)
 
 	outb(SIRQ_dis|irqrmap[irq],ioaddr+SET_IRQ);
 
-	
+
 	status = scb_status(dev);
 
 #if NET_DEBUG > 4
@@ -836,14 +836,14 @@ static irqreturn_t eexp_irq(int irq, void *dev_info, struct pt_regs *regs)
 					printk("%s: tx interrupt but no status\n", dev->name);
 				}
 			}
-			
-			if (SCB_rxdframe(status)) 
+
+			if (SCB_rxdframe(status))
 				eexp_hw_rx_pio(dev);
 
 			status = scb_status(dev);
 		} while (status & 0xc000);
 
-		if (SCB_RUdead(status)) 
+		if (SCB_RUdead(status))
 		{
 			printk(KERN_WARNING "%s: RU stopped: status %04x\n",
 			       dev->name,status);
@@ -867,9 +867,9 @@ static irqreturn_t eexp_irq(int irq, void *dev_info, struct pt_regs *regs)
 			scb_wrrfa(dev, lp->rx_buf_start);
 			scb_command(dev, SCB_RUstart);
 			outb(0,ioaddr+SIGNAL_CA);
-		} 
+		}
 	} else {
-		if (status & 0x8000) 
+		if (status & 0x8000)
 			ack_cmd = eexp_start_irq(dev, status);
 		else
 			ack_cmd = SCB_ack(status);
@@ -879,14 +879,14 @@ static irqreturn_t eexp_irq(int irq, void *dev_info, struct pt_regs *regs)
 
 	eexp_cmd_clear(dev);
 
-	outb(SIRQ_en|irqrmap[irq],ioaddr+SET_IRQ); 
+	outb(SIRQ_en|irqrmap[irq],ioaddr+SET_IRQ);
 
-#if NET_DEBUG > 6 
+#if NET_DEBUG > 6
 	printk("%s: leaving eexp_irq()\n", dev->name);
 #endif
 	outw(old_read_ptr, ioaddr+READ_PTR);
 	outw(old_write_ptr, ioaddr+WRITE_PTR);
-	
+
 	spin_unlock(&lp->lock);
 	return IRQ_HANDLED;
 }
@@ -934,7 +934,7 @@ static void eexp_hw_rx_pio(struct net_device *dev)
 
  	do {
  		unsigned short rfd_cmd, rx_next, pbuf, pkt_len;
-  
+
 		outw(rx_block, ioaddr + READ_PTR);
 		status = inw(ioaddr + DATAPORT);
 
@@ -943,7 +943,7 @@ static void eexp_hw_rx_pio(struct net_device *dev)
 			rfd_cmd = inw(ioaddr + DATAPORT);
 			rx_next = inw(ioaddr + DATAPORT);
 			pbuf = inw(ioaddr + DATAPORT);
- 
+
 			outw(pbuf, ioaddr + READ_PTR);
 			pkt_len = inw(ioaddr + DATAPORT);
 
@@ -955,17 +955,17 @@ static void eexp_hw_rx_pio(struct net_device *dev)
 			}
 			else if (pbuf!=rx_block+0x16)
 			{
-				printk(KERN_WARNING "%s: rfd and rbd out of sync 0x%04x 0x%04x\n", 
+				printk(KERN_WARNING "%s: rfd and rbd out of sync 0x%04x 0x%04x\n",
 				       dev->name, rx_block+0x16, pbuf);
 				continue;
 			}
-			else if ((pkt_len & 0xc000)!=0xc000) 
+			else if ((pkt_len & 0xc000)!=0xc000)
 			{
 				printk(KERN_WARNING "%s: EOF or F not set on received buffer (%04x)\n",
 				       dev->name, pkt_len & 0xc000);
   				continue;
   			}
-  			else if (!FD_OK(status)) 
+  			else if (!FD_OK(status))
 			{
 				lp->stats.rx_errors++;
 				if (FD_CRC(status))
@@ -1025,9 +1025,9 @@ static void eexp_hw_tx_pio(struct net_device *dev, unsigned short *buf,
 	if (LOCKUP16 || lp->width) {
 		/* Stop the CU so that there is no chance that it
 		   jumps off to a bogus address while we are writing the
-		   pointer to the next transmit packet in 8-bit mode -- 
+		   pointer to the next transmit packet in 8-bit mode --
 		   this eliminates the "CU wedged" errors in 8-bit mode.
-		   (Zoltan Szilagyi 10-12-96) */ 
+		   (Zoltan Szilagyi 10-12-96) */
 		scb_command(dev, SCB_CUsuspend);
 		outw(0xFFFF, ioaddr+SIGNAL_CA);
 	}
@@ -1061,7 +1061,7 @@ static void eexp_hw_tx_pio(struct net_device *dev, unsigned short *buf,
 		lp->tx_head += TX_BUF_SIZE;
 	if (lp->tx_head != lp->tx_reap)
 		netif_wake_queue(dev);
-		
+
 	if (LOCKUP16 || lp->width) {
 		/* Restart the CU so that the packet can actually
 		   be transmitted. (Zoltan Szilagyi 10-12-96) */
@@ -1102,7 +1102,7 @@ static int __init eexp_hw_probe(struct net_device *dev, unsigned short ioaddr)
 
 	/* Standard Address or Compaq LTE Address */
 	if (!((hw_addr[2]==0x00aa && ((hw_addr[1] & 0xff00)==0x0000)) ||
-	      (hw_addr[2]==0x0080 && ((hw_addr[1] & 0xff00)==0x5F00)))) 
+	      (hw_addr[2]==0x0080 && ((hw_addr[1] & 0xff00)==0x5F00))))
 	{
 		printk(" rejected: invalid address %04x%04x%04x\n",
 			hw_addr[2],hw_addr[1],hw_addr[0]);
@@ -1140,16 +1140,16 @@ static int __init eexp_hw_probe(struct net_device *dev, unsigned short ioaddr)
 	memset(lp, 0, sizeof(struct net_local));
 	spin_lock_init(&lp->lock);
 
- 	printk("(IRQ %d, %s connector, %d-bit bus", dev->irq, 
+ 	printk("(IRQ %d, %s connector, %d-bit bus", dev->irq,
  	       eexp_ifmap[dev->if_port], buswidth?8:16);
- 
+
 	if (!request_region(dev->base_addr + 0x300e, 1, "EtherExpress"))
 		return -EBUSY;
 
  	eexp_hw_set_interface(dev);
- 
+
 	release_region(dev->base_addr + 0x300e, 1);
-  
+
 	/* Find out how much RAM we have on the card */
 	outw(0, dev->base_addr + WRITE_PTR);
 	for (i = 0; i < 32768; i++)
@@ -1284,7 +1284,7 @@ static unsigned short eexp_hw_lasttxstat(struct net_device *dev)
 			{
 				char *whatsup = NULL;
 				lp->stats.tx_errors++;
-  				if (Stat_Abort(status)) 
+  				if (Stat_Abort(status))
   					lp->stats.tx_aborted_errors++;
 				if (Stat_TNoCar(status)) {
 					whatsup = "aborted, no carrier";
@@ -1460,11 +1460,11 @@ static void eexp_hw_rxinit(struct net_device *dev)
 	/* Close Rx frame descriptor ring */
   	outw(lp->rx_last + 4, ioaddr+WRITE_PTR);
   	outw(lp->rx_first, ioaddr+DATAPORT);
-  
+
 	/* Close Rx buffer descriptor ring */
 	outw(lp->rx_last + 0x16 + 2, ioaddr+WRITE_PTR);
 	outw(lp->rx_first + 0x16, ioaddr+DATAPORT);
-	
+
 }
 
 /*
@@ -1512,7 +1512,7 @@ static void eexp_hw_init586(struct net_device *dev)
 	/* Do we want promiscuous mode or multicast? */
 	outw(CONF_PROMISC & ~31, ioaddr+SM_PTR);
 	i = inw(ioaddr+SHADOW(CONF_PROMISC));
-	outw((dev->flags & IFF_PROMISC)?(i|1):(i & ~1), 
+	outw((dev->flags & IFF_PROMISC)?(i|1):(i & ~1),
 	     ioaddr+SHADOW(CONF_PROMISC));
 	lp->was_promisc = dev->flags & IFF_PROMISC;
 #if 0
@@ -1522,7 +1522,7 @@ static void eexp_hw_init586(struct net_device *dev)
 	/* Write our hardware address */
 	outw(CONF_HWADDR & ~31, ioaddr+SM_PTR);
 	outw(((unsigned short *)dev->dev_addr)[0], ioaddr+SHADOW(CONF_HWADDR));
-	outw(((unsigned short *)dev->dev_addr)[1], 
+	outw(((unsigned short *)dev->dev_addr)[1],
 	     ioaddr+SHADOW(CONF_HWADDR+2));
 	outw(((unsigned short *)dev->dev_addr)[2],
 	     ioaddr+SHADOW(CONF_HWADDR+4));
@@ -1608,7 +1608,7 @@ static void eexp_setup_filter(struct net_device *dev)
 		       dev->name, count);
 		count = 8;
 	}
-	
+
 	outw(CONF_NR_MULTICAST & ~31, ioaddr+SM_PTR);
 	outw(count, ioaddr+SHADOW(CONF_NR_MULTICAST));
 	for (i = 0; i < count; i++) {

+ 7 - 7
drivers/net/eexpress.h

@@ -53,8 +53,8 @@
 #define SCB_START 0x0008
 
 /* Start of buffer region.  Everything before this is used for control
- * structures and the CU configuration program.  The memory layout is 
- * determined in eexp_hw_probe(), once we know how much memory is 
+ * structures and the CU configuration program.  The memory layout is
+ * determined in eexp_hw_probe(), once we know how much memory is
  * available on the card.
  */
 
@@ -64,7 +64,7 @@
 #define RX_BUF_SIZE ((32+ETH_FRAME_LEN+31)&~0x1f)
 
 /*
- * SCB defines 
+ * SCB defines
  */
 
 /* these functions take the SCB status word and test the relevant status bit */
@@ -95,7 +95,7 @@
 #define SCB_RUabort     0x0040
 
 /*
- * Command block defines 
+ * Command block defines
  */
 
 #define Stat_Done(s)    ((s&0x8000)!=0)
@@ -158,9 +158,9 @@ struct rfd_header {
 	volatile unsigned short srcaddr2;
 	volatile unsigned short srcaddr3;
 	volatile unsigned short length;
-  
-	/* This is actually a Receive Buffer Descriptor.  The way we 
-	 * arrange memory means that an RBD always follows the RFD that 
+
+	/* This is actually a Receive Buffer Descriptor.  The way we
+	 * arrange memory means that an RBD always follows the RFD that
 	 * points to it, so they might as well be in the same structure.
 	 */
 	volatile unsigned short actual_count;

+ 6 - 0
drivers/net/ehea/Makefile

@@ -0,0 +1,6 @@
+#
+# Makefile for the eHEA ethernet device driver for IBM eServer System p
+#
+ehea-y = ehea_main.o ehea_phyp.o ehea_qmr.o ehea_ethtool.o ehea_phyp.o
+obj-$(CONFIG_EHEA) += ehea.o
+

+ 447 - 0
drivers/net/ehea/ehea.h

@@ -0,0 +1,447 @@
+/*
+ *  linux/drivers/net/ehea/ehea.h
+ *
+ *  eHEA ethernet device driver for IBM eServer System p
+ *
+ *  (C) Copyright IBM Corp. 2006
+ *
+ *  Authors:
+ *       Christoph Raisch <raisch@de.ibm.com>
+ *       Jan-Bernd Themann <themann@de.ibm.com>
+ *       Thomas Klein <tklein@de.ibm.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __EHEA_H__
+#define __EHEA_H__
+
+#include <linux/module.h>
+#include <linux/ethtool.h>
+#include <linux/vmalloc.h>
+#include <linux/if_vlan.h>
+
+#include <asm/ibmebus.h>
+#include <asm/abs_addr.h>
+#include <asm/io.h>
+
+#define DRV_NAME	"ehea"
+#define DRV_VERSION	"EHEA_0028"
+
+#define EHEA_MSG_DEFAULT (NETIF_MSG_LINK | NETIF_MSG_TIMER \
+	| NETIF_MSG_RX_ERR | NETIF_MSG_TX_ERR)
+
+#define EHEA_MAX_ENTRIES_RQ1 32767
+#define EHEA_MAX_ENTRIES_RQ2 16383
+#define EHEA_MAX_ENTRIES_RQ3 16383
+#define EHEA_MAX_ENTRIES_SQ  32767
+#define EHEA_MIN_ENTRIES_QP  127
+
+#define EHEA_NUM_TX_QP 1
+
+#ifdef EHEA_SMALL_QUEUES
+#define EHEA_MAX_CQE_COUNT      1023
+#define EHEA_DEF_ENTRIES_SQ     1023
+#define EHEA_DEF_ENTRIES_RQ1    4095
+#define EHEA_DEF_ENTRIES_RQ2    1023
+#define EHEA_DEF_ENTRIES_RQ3    1023
+#else
+#define EHEA_MAX_CQE_COUNT     32000
+#define EHEA_DEF_ENTRIES_SQ    16000
+#define EHEA_DEF_ENTRIES_RQ1   32080
+#define EHEA_DEF_ENTRIES_RQ2    4020
+#define EHEA_DEF_ENTRIES_RQ3    4020
+#endif
+
+#define EHEA_MAX_ENTRIES_EQ 20
+
+#define EHEA_SG_SQ  2
+#define EHEA_SG_RQ1 1
+#define EHEA_SG_RQ2 0
+#define EHEA_SG_RQ3 0
+
+#define EHEA_MAX_PACKET_SIZE    9022	/* for jumbo frames */
+#define EHEA_RQ2_PKT_SIZE       1522
+#define EHEA_L_PKT_SIZE         256	/* low latency */
+
+#define EHEA_POLL_MAX_RWQE      1000
+
+/* Send completion signaling */
+#define EHEA_SIG_IV_LONG           1
+
+/* Protection Domain Identifier */
+#define EHEA_PD_ID        0xaabcdeff
+
+#define EHEA_RQ2_THRESHOLD 	   1
+#define EHEA_RQ3_THRESHOLD 	   9	/* use RQ3 threshold of 1522 bytes */
+
+#define EHEA_SPEED_10G         10000
+#define EHEA_SPEED_1G           1000
+#define EHEA_SPEED_100M          100
+#define EHEA_SPEED_10M            10
+#define EHEA_SPEED_AUTONEG         0
+
+/* Broadcast/Multicast registration types */
+#define EHEA_BCMC_SCOPE_ALL	0x08
+#define EHEA_BCMC_SCOPE_SINGLE	0x00
+#define EHEA_BCMC_MULTICAST	0x04
+#define EHEA_BCMC_BROADCAST	0x00
+#define EHEA_BCMC_UNTAGGED	0x02
+#define EHEA_BCMC_TAGGED	0x00
+#define EHEA_BCMC_VLANID_ALL	0x01
+#define EHEA_BCMC_VLANID_SINGLE	0x00
+
+/* Use this define to kmallocate pHYP control blocks */
+#define H_CB_ALIGNMENT		4096
+
+#define EHEA_CACHE_LINE          128
+
+/* Memory Regions */
+#define EHEA_MR_MAX_TX_PAGES   20
+#define EHEA_MR_TX_DATA_PN      3
+#define EHEA_MR_ACC_CTRL       0x00800000
+#define EHEA_RWQES_PER_MR_RQ2  10
+#define EHEA_RWQES_PER_MR_RQ3  10
+
+#define EHEA_WATCH_DOG_TIMEOUT 10*HZ
+
+/* utility functions */
+
+#define ehea_info(fmt, args...) \
+	printk(KERN_INFO DRV_NAME ": " fmt "\n", ## args)
+
+#define ehea_error(fmt, args...) \
+	printk(KERN_ERR DRV_NAME ": Error in %s: " fmt "\n", __func__, ## args)
+
+#ifdef DEBUG
+#define ehea_debug(fmt, args...) \
+	printk(KERN_DEBUG DRV_NAME ": " fmt, ## args)
+#else
+#define ehea_debug(fmt, args...) do {} while (0)
+#endif
+
+void ehea_dump(void *adr, int len, char *msg);
+
+#define EHEA_BMASK(pos, length) (((pos) << 16) + (length))
+
+#define EHEA_BMASK_IBM(from, to) (((63 - to) << 16) + ((to) - (from) + 1))
+
+#define EHEA_BMASK_SHIFTPOS(mask) (((mask) >> 16) & 0xffff)
+
+#define EHEA_BMASK_MASK(mask) \
+	(0xffffffffffffffffULL >> ((64 - (mask)) & 0xffff))
+
+#define EHEA_BMASK_SET(mask, value) \
+        ((EHEA_BMASK_MASK(mask) & ((u64)(value))) << EHEA_BMASK_SHIFTPOS(mask))
+
+#define EHEA_BMASK_GET(mask, value) \
+        (EHEA_BMASK_MASK(mask) & (((u64)(value)) >> EHEA_BMASK_SHIFTPOS(mask)))
+
+/*
+ * Generic ehea page
+ */
+struct ehea_page {
+	u8 entries[PAGE_SIZE];
+};
+
+/*
+ * Generic queue in linux kernel virtual memory
+ */
+struct hw_queue {
+	u64 current_q_offset;		/* current queue entry */
+	struct ehea_page **queue_pages;	/* array of pages belonging to queue */
+	u32 qe_size;			/* queue entry size */
+	u32 queue_length;      		/* queue length allocated in bytes */
+	u32 pagesize;
+	u32 toggle_state;		/* toggle flag - per page */
+	u32 reserved;			/* 64 bit alignment */
+};
+
+/*
+ * For pSeries this is a 64bit memory address where
+ * I/O memory is mapped into CPU address space
+ */
+struct h_epa {
+	void __iomem *addr;
+};
+
+struct h_epa_user {
+	u64 addr;
+};
+
+struct h_epas {
+	struct h_epa kernel;	/* kernel space accessible resource,
+				   set to 0 if unused */
+	struct h_epa_user user;	/* user space accessible resource
+				   set to 0 if unused */
+};
+
+struct ehea_qp;
+struct ehea_cq;
+struct ehea_eq;
+struct ehea_port;
+struct ehea_av;
+
+/*
+ * Queue attributes passed to ehea_create_qp()
+ */
+struct ehea_qp_init_attr {
+        /* input parameter */
+	u32 qp_token;           /* queue token */
+	u8 low_lat_rq1;
+	u8 signalingtype;       /* cqe generation flag */
+	u8 rq_count;            /* num of receive queues */
+	u8 eqe_gen;             /* eqe generation flag */
+	u16 max_nr_send_wqes;   /* max number of send wqes */
+	u16 max_nr_rwqes_rq1;   /* max number of receive wqes */
+	u16 max_nr_rwqes_rq2;
+	u16 max_nr_rwqes_rq3;
+	u8 wqe_size_enc_sq;
+	u8 wqe_size_enc_rq1;
+	u8 wqe_size_enc_rq2;
+	u8 wqe_size_enc_rq3;
+	u8 swqe_imm_data_len;   /* immediate data length for swqes */
+	u16 port_nr;
+	u16 rq2_threshold;
+	u16 rq3_threshold;
+	u64 send_cq_handle;
+	u64 recv_cq_handle;
+	u64 aff_eq_handle;
+
+        /* output parameter */
+	u32 qp_nr;
+	u16 act_nr_send_wqes;
+	u16 act_nr_rwqes_rq1;
+	u16 act_nr_rwqes_rq2;
+	u16 act_nr_rwqes_rq3;
+	u8 act_wqe_size_enc_sq;
+	u8 act_wqe_size_enc_rq1;
+	u8 act_wqe_size_enc_rq2;
+	u8 act_wqe_size_enc_rq3;
+	u32 nr_sq_pages;
+	u32 nr_rq1_pages;
+	u32 nr_rq2_pages;
+	u32 nr_rq3_pages;
+	u32 liobn_sq;
+	u32 liobn_rq1;
+	u32 liobn_rq2;
+	u32 liobn_rq3;
+};
+
+/*
+ * Event Queue attributes, passed as paramter
+ */
+struct ehea_eq_attr {
+	u32 type;
+	u32 max_nr_of_eqes;
+	u8 eqe_gen;        /* generate eqe flag */
+	u64 eq_handle;
+	u32 act_nr_of_eqes;
+	u32 nr_pages;
+	u32 ist1;          /* Interrupt service token */
+	u32 ist2;
+	u32 ist3;
+	u32 ist4;
+};
+
+
+/*
+ * Event Queue
+ */
+struct ehea_eq {
+	struct ehea_adapter *adapter;
+	struct hw_queue hw_queue;
+	u64 fw_handle;
+	struct h_epas epas;
+	spinlock_t spinlock;
+	struct ehea_eq_attr attr;
+};
+
+/*
+ * HEA Queues
+ */
+struct ehea_qp {
+	struct ehea_adapter *adapter;
+	u64 fw_handle;			/* QP handle for firmware calls */
+	struct hw_queue hw_squeue;
+	struct hw_queue hw_rqueue1;
+	struct hw_queue hw_rqueue2;
+	struct hw_queue hw_rqueue3;
+	struct h_epas epas;
+	struct ehea_qp_init_attr init_attr;
+};
+
+/*
+ * Completion Queue attributes
+ */
+struct ehea_cq_attr {
+        /* input parameter */
+	u32 max_nr_of_cqes;
+	u32 cq_token;
+	u64 eq_handle;
+
+        /* output parameter */
+	u32 act_nr_of_cqes;
+	u32 nr_pages;
+};
+
+/*
+ * Completion Queue
+ */
+struct ehea_cq {
+	struct ehea_adapter *adapter;
+	u64 fw_handle;
+	struct hw_queue hw_queue;
+	struct h_epas epas;
+	struct ehea_cq_attr attr;
+};
+
+/*
+ * Memory Region
+ */
+struct ehea_mr {
+	u64 handle;
+	u64 vaddr;
+	u32 lkey;
+};
+
+/*
+ * Port state information
+ */
+struct port_state {
+	int poll_max_processed;
+	int poll_receive_errors;
+	int ehea_poll;
+	int queue_stopped;
+	int min_swqe_avail;
+	u64 sqc_stop_sum;
+	int pkt_send;
+	int pkt_xmit;
+	int send_tasklet;
+	int nwqe;
+};
+
+#define EHEA_IRQ_NAME_SIZE 20
+
+/*
+ * Queue SKB Array
+ */
+struct ehea_q_skb_arr {
+	struct sk_buff **arr;		/* skb array for queue */
+	int len;                	/* array length */
+	int index;			/* array index */
+	int os_skbs;			/* rq2/rq3 only: outstanding skbs */
+};
+
+/*
+ * Port resources
+ */
+struct ehea_port_res {
+	struct ehea_mr send_mr;       	/* send memory region */
+	struct ehea_mr recv_mr;       	/* receive memory region */
+	spinlock_t xmit_lock;
+	struct ehea_port *port;
+	char int_recv_name[EHEA_IRQ_NAME_SIZE];
+	char int_send_name[EHEA_IRQ_NAME_SIZE];
+	struct ehea_qp *qp;
+	struct ehea_cq *send_cq;
+	struct ehea_cq *recv_cq;
+	struct ehea_eq *send_eq;
+	struct ehea_eq *recv_eq;
+	spinlock_t send_lock;
+	struct ehea_q_skb_arr rq1_skba;
+	struct ehea_q_skb_arr rq2_skba;
+	struct ehea_q_skb_arr rq3_skba;
+	struct ehea_q_skb_arr sq_skba;
+	spinlock_t netif_queue;
+	int queue_stopped;
+	int swqe_refill_th;
+	atomic_t swqe_avail;
+	int swqe_ll_count;
+	int swqe_count;
+	u32 swqe_id_counter;
+	u64 tx_packets;
+	struct tasklet_struct send_comp_task;
+	spinlock_t recv_lock;
+	struct port_state p_state;
+	u64 rx_packets;
+	u32 poll_counter;
+};
+
+
+struct ehea_adapter {
+	u64 handle;
+	u8 num_ports;
+	struct ehea_port *port[16];
+	struct ehea_eq *neq;       /* notification event queue */
+	struct workqueue_struct *ehea_wq;
+	struct tasklet_struct neq_tasklet;
+	struct ehea_mr mr;
+	u32 pd;                    /* protection domain */
+	u64 max_mc_mac;            /* max number of multicast mac addresses */
+};
+
+
+struct ehea_mc_list {
+	struct list_head list;
+	u64 macaddr;
+};
+
+#define EHEA_PORT_UP 1
+#define EHEA_PORT_DOWN 0
+#define EHEA_MAX_PORT_RES 16
+struct ehea_port {
+	struct ehea_adapter *adapter;	 /* adapter that owns this port */
+	struct net_device *netdev;
+	struct net_device_stats stats;
+	struct ehea_port_res port_res[EHEA_MAX_PORT_RES];
+	struct device_node *of_dev_node; /* Open Firmware Device Node */
+	struct ehea_mc_list *mc_list;	 /* Multicast MAC addresses */
+	struct vlan_group *vgrp;
+	struct ehea_eq *qp_eq;
+	struct work_struct reset_task;
+	struct semaphore port_lock;
+	char int_aff_name[EHEA_IRQ_NAME_SIZE];
+	int allmulti;			 /* Indicates IFF_ALLMULTI state */
+	int promisc;		 	 /* Indicates IFF_PROMISC state */
+	int num_add_tx_qps;
+	int resets;
+	u64 mac_addr;
+	u32 logical_port_id;
+	u32 port_speed;
+	u32 msg_enable;
+	u32 sig_comp_iv;
+	u32 state;
+	u8 full_duplex;
+	u8 autoneg;
+	u8 num_def_qps;
+};
+
+struct port_res_cfg {
+	int max_entries_rcq;
+	int max_entries_scq;
+	int max_entries_sq;
+	int max_entries_rq1;
+	int max_entries_rq2;
+	int max_entries_rq3;
+};
+
+
+void ehea_set_ethtool_ops(struct net_device *netdev);
+int ehea_sense_port_attr(struct ehea_port *port);
+int ehea_set_portspeed(struct ehea_port *port, u32 port_speed);
+
+#endif	/* __EHEA_H__ */

+ 294 - 0
drivers/net/ehea/ehea_ethtool.c

@@ -0,0 +1,294 @@
+/*
+ *  linux/drivers/net/ehea/ehea_ethtool.c
+ *
+ *  eHEA ethernet device driver for IBM eServer System p
+ *
+ *  (C) Copyright IBM Corp. 2006
+ *
+ *  Authors:
+ *       Christoph Raisch <raisch@de.ibm.com>
+ *       Jan-Bernd Themann <themann@de.ibm.com>
+ *       Thomas Klein <tklein@de.ibm.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "ehea.h"
+#include "ehea_phyp.h"
+
+static int ehea_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	int ret;
+
+	ret = ehea_sense_port_attr(port);
+
+	if (ret)
+		return ret;
+
+	if (netif_carrier_ok(dev)) {
+		switch(port->port_speed) {
+		case EHEA_SPEED_10M: cmd->speed = SPEED_10; break;
+		case EHEA_SPEED_100M: cmd->speed = SPEED_100; break;
+		case EHEA_SPEED_1G: cmd->speed = SPEED_1000; break;
+		case EHEA_SPEED_10G: cmd->speed = SPEED_10000; break;
+		}
+		cmd->duplex = port->full_duplex == 1 ?
+						     DUPLEX_FULL : DUPLEX_HALF;
+	} else {
+		cmd->speed = -1;
+		cmd->duplex = -1;
+	}
+
+	cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_1000baseT_Full
+		       | SUPPORTED_100baseT_Full |  SUPPORTED_100baseT_Half
+		       | SUPPORTED_10baseT_Full | SUPPORTED_10baseT_Half
+		       | SUPPORTED_Autoneg | SUPPORTED_FIBRE);
+
+	cmd->advertising = (ADVERTISED_10000baseT_Full | ADVERTISED_Autoneg
+			 | ADVERTISED_FIBRE);
+
+	cmd->port = PORT_FIBRE;
+	cmd->autoneg = port->autoneg == 1 ? AUTONEG_ENABLE : AUTONEG_DISABLE;
+
+	return 0;
+}
+
+static int ehea_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	int ret = 0;
+	u32 sp;
+
+	if (cmd->autoneg == AUTONEG_ENABLE) {
+		sp = EHEA_SPEED_AUTONEG;
+		goto doit;
+	}
+
+	switch(cmd->speed) {
+	case SPEED_10:
+		if (cmd->duplex == DUPLEX_FULL)
+			sp = H_SPEED_10M_F;
+		else
+			sp = H_SPEED_10M_H;
+		break;
+
+	case SPEED_100:
+		if (cmd->duplex == DUPLEX_FULL)
+			sp = H_SPEED_100M_F;
+		else
+			sp = H_SPEED_100M_H;
+		break;
+
+	case SPEED_1000:
+		if (cmd->duplex == DUPLEX_FULL)
+			sp = H_SPEED_1G_F;
+		else
+			ret = -EINVAL;
+		break;
+
+	case SPEED_10000:
+		if (cmd->duplex == DUPLEX_FULL)
+			sp = H_SPEED_10G_F;
+		else
+			ret = -EINVAL;
+		break;
+
+	default:
+			ret = -EINVAL;
+		break;
+	}
+
+	if (ret)
+		goto out;
+doit:
+	ret = ehea_set_portspeed(port, sp);
+
+	if (!ret)
+		ehea_info("%s: Port speed succesfully set: %dMbps "
+			  "%s Duplex",
+			  port->netdev->name, port->port_speed,
+			  port->full_duplex == 1 ? "Full" : "Half");
+out:
+	return ret;
+}
+
+static int ehea_nway_reset(struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	int ret;
+
+	ret = ehea_set_portspeed(port, EHEA_SPEED_AUTONEG);
+
+	if (!ret)
+		ehea_info("%s: Port speed succesfully set: %dMbps "
+			  "%s Duplex",
+			  port->netdev->name, port->port_speed,
+			  port->full_duplex == 1 ? "Full" : "Half");
+	return ret;
+}
+
+static void ehea_get_drvinfo(struct net_device *dev,
+			       struct ethtool_drvinfo *info)
+{
+	strlcpy(info->driver, DRV_NAME, sizeof(info->driver) - 1);
+	strlcpy(info->version, DRV_VERSION, sizeof(info->version) - 1);
+}
+
+static u32 ehea_get_msglevel(struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	return port->msg_enable;
+}
+
+static void ehea_set_msglevel(struct net_device *dev, u32 value)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	port->msg_enable = value;
+}
+
+static u32 ehea_get_rx_csum(struct net_device *dev)
+{
+	return 1;
+}
+
+static char ehea_ethtool_stats_keys[][ETH_GSTRING_LEN] = {
+	{"poll_max_processed"},
+	{"queue_stopped"},
+	{"min_swqe_avail"},
+	{"poll_receive_err"},
+	{"pkt_send"},
+	{"pkt_xmit"},
+	{"send_tasklet"},
+	{"ehea_poll"},
+	{"nwqe"},
+	{"swqe_available_0"},
+	{"sig_comp_iv"},
+	{"swqe_refill_th"},
+	{"port resets"},
+	{"rxo"},
+	{"rx64"},
+	{"rx65"},
+	{"rx128"},
+	{"rx256"},
+	{"rx512"},
+	{"rx1024"},
+	{"txo"},
+	{"tx64"},
+	{"tx65"},
+	{"tx128"},
+	{"tx256"},
+	{"tx512"},
+	{"tx1024"},
+};
+
+static void ehea_get_strings(struct net_device *dev, u32 stringset, u8 *data)
+{
+	if (stringset == ETH_SS_STATS) {
+		memcpy(data, &ehea_ethtool_stats_keys,
+		       sizeof(ehea_ethtool_stats_keys));
+	}
+}
+
+static int ehea_get_stats_count(struct net_device *dev)
+{
+	return ARRAY_SIZE(ehea_ethtool_stats_keys);
+}
+
+static void ehea_get_ethtool_stats(struct net_device *dev,
+				     struct ethtool_stats *stats, u64 *data)
+{
+	u64 hret;
+	int i;
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_adapter *adapter = port->adapter;
+	struct ehea_port_res *pr = &port->port_res[0];
+	struct port_state *p_state = &pr->p_state;
+	struct hcp_ehea_port_cb6 *cb6;
+
+	for (i = 0; i < ehea_get_stats_count(dev); i++)
+		data[i] = 0;
+
+	i = 0;
+
+	data[i++] = p_state->poll_max_processed;
+	data[i++] = p_state->queue_stopped;
+	data[i++] = p_state->min_swqe_avail;
+	data[i++] = p_state->poll_receive_errors;
+	data[i++] = p_state->pkt_send;
+	data[i++] = p_state->pkt_xmit;
+	data[i++] = p_state->send_tasklet;
+	data[i++] = p_state->ehea_poll;
+	data[i++] = p_state->nwqe;
+	data[i++] = atomic_read(&port->port_res[0].swqe_avail);
+	data[i++] = port->sig_comp_iv;
+	data[i++] = port->port_res[0].swqe_refill_th;
+	data[i++] = port->resets;
+
+	cb6 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb6) {
+		ehea_error("no mem for cb6");
+		return;
+	}
+
+	hret = ehea_h_query_ehea_port(adapter->handle, port->logical_port_id,
+				      H_PORT_CB6, H_PORT_CB6_ALL, cb6);
+	if (netif_msg_hw(port))
+		ehea_dump(cb6, sizeof(*cb6), "ehea_get_ethtool_stats");
+
+	if (hret == H_SUCCESS) {
+		data[i++] = cb6->rxo;
+		data[i++] = cb6->rx64;
+		data[i++] = cb6->rx65;
+		data[i++] = cb6->rx128;
+		data[i++] = cb6->rx256;
+		data[i++] = cb6->rx512;
+		data[i++] = cb6->rx1024;
+		data[i++] = cb6->txo;
+		data[i++] = cb6->tx64;
+		data[i++] = cb6->tx65;
+		data[i++] = cb6->tx128;
+		data[i++] = cb6->tx256;
+		data[i++] = cb6->tx512;
+		data[i++] = cb6->tx1024;
+	} else
+		ehea_error("query_ehea_port failed");
+
+	kfree(cb6);
+}
+
+const struct ethtool_ops ehea_ethtool_ops = {
+	.get_settings = ehea_get_settings,
+	.get_drvinfo = ehea_get_drvinfo,
+	.get_msglevel = ehea_get_msglevel,
+	.set_msglevel = ehea_set_msglevel,
+	.get_link = ethtool_op_get_link,
+	.get_tx_csum = ethtool_op_get_tx_csum,
+	.get_sg = ethtool_op_get_sg,
+	.get_tso = ethtool_op_get_tso,
+	.set_tso = ethtool_op_set_tso,
+	.get_strings = ehea_get_strings,
+	.get_stats_count = ehea_get_stats_count,
+	.get_ethtool_stats = ehea_get_ethtool_stats,
+	.get_rx_csum = ehea_get_rx_csum,
+	.set_settings = ehea_set_settings,
+	.nway_reset = ehea_nway_reset,		/* Restart autonegotiation */
+};
+
+void ehea_set_ethtool_ops(struct net_device *netdev)
+{
+	SET_ETHTOOL_OPS(netdev, &ehea_ethtool_ops);
+}

+ 51 - 0
drivers/net/ehea/ehea_hcall.h

@@ -0,0 +1,51 @@
+/*
+ *  linux/drivers/net/ehea/ehea_hcall.h
+ *
+ *  eHEA ethernet device driver for IBM eServer System p
+ *
+ *  (C) Copyright IBM Corp. 2006
+ *
+ *  Authors:
+ *       Christoph Raisch <raisch@de.ibm.com>
+ *       Jan-Bernd Themann <themann@de.ibm.com>
+ *       Thomas Klein <tklein@de.ibm.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __EHEA_HCALL_H__
+#define __EHEA_HCALL_H__
+
+/**
+ * This file contains HCALL defines that are to be included in the appropriate
+ * kernel files later
+ */
+
+#define H_ALLOC_HEA_RESOURCE   0x278
+#define H_MODIFY_HEA_QP        0x250
+#define H_QUERY_HEA_QP         0x254
+#define H_QUERY_HEA            0x258
+#define H_QUERY_HEA_PORT       0x25C
+#define H_MODIFY_HEA_PORT      0x260
+#define H_REG_BCMC             0x264
+#define H_DEREG_BCMC           0x268
+#define H_REGISTER_HEA_RPAGES  0x26C
+#define H_DISABLE_AND_GET_HEA  0x270
+#define H_GET_HEA_INFO         0x274
+#define H_ADD_CONN             0x284
+#define H_DEL_CONN             0x288
+
+#endif	/* __EHEA_HCALL_H__ */

+ 292 - 0
drivers/net/ehea/ehea_hw.h

@@ -0,0 +1,292 @@
+/*
+ *  linux/drivers/net/ehea/ehea_hw.h
+ *
+ *  eHEA ethernet device driver for IBM eServer System p
+ *
+ *  (C) Copyright IBM Corp. 2006
+ *
+ *  Authors:
+ *       Christoph Raisch <raisch@de.ibm.com>
+ *       Jan-Bernd Themann <themann@de.ibm.com>
+ *       Thomas Klein <tklein@de.ibm.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __EHEA_HW_H__
+#define __EHEA_HW_H__
+
+#define QPX_SQA_VALUE   EHEA_BMASK_IBM(48,63)
+#define QPX_RQ1A_VALUE  EHEA_BMASK_IBM(48,63)
+#define QPX_RQ2A_VALUE  EHEA_BMASK_IBM(48,63)
+#define QPX_RQ3A_VALUE  EHEA_BMASK_IBM(48,63)
+
+#define QPTEMM_OFFSET(x) offsetof(struct ehea_qptemm, x)
+
+struct ehea_qptemm {
+	u64 qpx_hcr;
+	u64 qpx_c;
+	u64 qpx_herr;
+	u64 qpx_aer;
+	u64 qpx_sqa;
+	u64 qpx_sqc;
+	u64 qpx_rq1a;
+	u64 qpx_rq1c;
+	u64 qpx_st;
+	u64 qpx_aerr;
+	u64 qpx_tenure;
+	u64 qpx_reserved1[(0x098 - 0x058) / 8];
+	u64 qpx_portp;
+	u64 qpx_reserved2[(0x100 - 0x0A0) / 8];
+	u64 qpx_t;
+	u64 qpx_sqhp;
+	u64 qpx_sqptp;
+	u64 qpx_reserved3[(0x140 - 0x118) / 8];
+	u64 qpx_sqwsize;
+	u64 qpx_reserved4[(0x170 - 0x148) / 8];
+	u64 qpx_sqsize;
+	u64 qpx_reserved5[(0x1B0 - 0x178) / 8];
+	u64 qpx_sigt;
+	u64 qpx_wqecnt;
+	u64 qpx_rq1hp;
+	u64 qpx_rq1ptp;
+	u64 qpx_rq1size;
+	u64 qpx_reserved6[(0x220 - 0x1D8) / 8];
+	u64 qpx_rq1wsize;
+	u64 qpx_reserved7[(0x240 - 0x228) / 8];
+	u64 qpx_pd;
+	u64 qpx_scqn;
+	u64 qpx_rcqn;
+	u64 qpx_aeqn;
+	u64 reserved49;
+	u64 qpx_ram;
+	u64 qpx_reserved8[(0x300 - 0x270) / 8];
+	u64 qpx_rq2a;
+	u64 qpx_rq2c;
+	u64 qpx_rq2hp;
+	u64 qpx_rq2ptp;
+	u64 qpx_rq2size;
+	u64 qpx_rq2wsize;
+	u64 qpx_rq2th;
+	u64 qpx_rq3a;
+	u64 qpx_rq3c;
+	u64 qpx_rq3hp;
+	u64 qpx_rq3ptp;
+	u64 qpx_rq3size;
+	u64 qpx_rq3wsize;
+	u64 qpx_rq3th;
+	u64 qpx_lpn;
+	u64 qpx_reserved9[(0x400 - 0x378) / 8];
+	u64 reserved_ext[(0x500 - 0x400) / 8];
+	u64 reserved2[(0x1000 - 0x500) / 8];
+};
+
+#define MRx_HCR_LPARID_VALID EHEA_BMASK_IBM(0, 0)
+
+#define MRMWMM_OFFSET(x) offsetof(struct ehea_mrmwmm, x)
+
+struct ehea_mrmwmm {
+	u64 mrx_hcr;
+	u64 mrx_c;
+	u64 mrx_herr;
+	u64 mrx_aer;
+	u64 mrx_pp;
+	u64 reserved1;
+	u64 reserved2;
+	u64 reserved3;
+	u64 reserved4[(0x200 - 0x40) / 8];
+	u64 mrx_ctl[64];
+};
+
+#define QPEDMM_OFFSET(x) offsetof(struct ehea_qpedmm, x)
+
+struct ehea_qpedmm {
+
+	u64 reserved0[(0x400) / 8];
+	u64 qpedx_phh;
+	u64 qpedx_ppsgp;
+	u64 qpedx_ppsgu;
+	u64 qpedx_ppdgp;
+	u64 qpedx_ppdgu;
+	u64 qpedx_aph;
+	u64 qpedx_apsgp;
+	u64 qpedx_apsgu;
+	u64 qpedx_apdgp;
+	u64 qpedx_apdgu;
+	u64 qpedx_apav;
+	u64 qpedx_apsav;
+	u64 qpedx_hcr;
+	u64 reserved1[4];
+	u64 qpedx_rrl0;
+	u64 qpedx_rrrkey0;
+	u64 qpedx_rrva0;
+	u64 reserved2;
+	u64 qpedx_rrl1;
+	u64 qpedx_rrrkey1;
+	u64 qpedx_rrva1;
+	u64 reserved3;
+	u64 qpedx_rrl2;
+	u64 qpedx_rrrkey2;
+	u64 qpedx_rrva2;
+	u64 reserved4;
+	u64 qpedx_rrl3;
+	u64 qpedx_rrrkey3;
+	u64 qpedx_rrva3;
+};
+
+#define CQX_FECADDER EHEA_BMASK_IBM(32, 63)
+#define CQX_FEC_CQE_CNT EHEA_BMASK_IBM(32, 63)
+#define CQX_N1_GENERATE_COMP_EVENT EHEA_BMASK_IBM(0, 0)
+#define CQX_EP_EVENT_PENDING EHEA_BMASK_IBM(0, 0)
+
+#define CQTEMM_OFFSET(x) offsetof(struct ehea_cqtemm, x)
+
+struct ehea_cqtemm {
+	u64 cqx_hcr;
+	u64 cqx_c;
+	u64 cqx_herr;
+	u64 cqx_aer;
+	u64 cqx_ptp;
+	u64 cqx_tp;
+	u64 cqx_fec;
+	u64 cqx_feca;
+	u64 cqx_ep;
+	u64 cqx_eq;
+	u64 reserved1;
+	u64 cqx_n0;
+	u64 cqx_n1;
+	u64 reserved2[(0x1000 - 0x60) / 8];
+};
+
+#define EQTEMM_OFFSET(x) offsetof(struct ehea_eqtemm, x)
+
+struct ehea_eqtemm {
+	u64 eqx_hcr;
+	u64 eqx_c;
+	u64 eqx_herr;
+	u64 eqx_aer;
+	u64 eqx_ptp;
+	u64 eqx_tp;
+	u64 eqx_ssba;
+	u64 eqx_psba;
+	u64 eqx_cec;
+	u64 eqx_meql;
+	u64 eqx_xisbi;
+	u64 eqx_xisc;
+	u64 eqx_it;
+};
+
+/*
+ * These access functions will be changed when the dissuccsion about
+ * the new access methods for POWER has settled.
+ */
+
+static inline u64 epa_load(struct h_epa epa, u32 offset)
+{
+	return __raw_readq((void __iomem *)(epa.addr + offset));
+}
+
+static inline void epa_store(struct h_epa epa, u32 offset, u64 value)
+{
+	__raw_writeq(value, (void __iomem *)(epa.addr + offset));
+	epa_load(epa, offset);	/* synchronize explicitly to eHEA */
+}
+
+static inline void epa_store_acc(struct h_epa epa, u32 offset, u64 value)
+{
+	__raw_writeq(value, (void __iomem *)(epa.addr + offset));
+}
+
+#define epa_store_eq(epa, offset, value)\
+        epa_store(epa, EQTEMM_OFFSET(offset), value)
+#define epa_load_eq(epa, offset)\
+        epa_load(epa, EQTEMM_OFFSET(offset))
+
+#define epa_store_cq(epa, offset, value)\
+        epa_store(epa, CQTEMM_OFFSET(offset), value)
+#define epa_load_cq(epa, offset)\
+        epa_load(epa, CQTEMM_OFFSET(offset))
+
+#define epa_store_qp(epa, offset, value)\
+        epa_store(epa, QPTEMM_OFFSET(offset), value)
+#define epa_load_qp(epa, offset)\
+        epa_load(epa, QPTEMM_OFFSET(offset))
+
+#define epa_store_qped(epa, offset, value)\
+        epa_store(epa, QPEDMM_OFFSET(offset), value)
+#define epa_load_qped(epa, offset)\
+        epa_load(epa, QPEDMM_OFFSET(offset))
+
+#define epa_store_mrmw(epa, offset, value)\
+        epa_store(epa, MRMWMM_OFFSET(offset), value)
+#define epa_load_mrmw(epa, offset)\
+        epa_load(epa, MRMWMM_OFFSET(offset))
+
+#define epa_store_base(epa, offset, value)\
+        epa_store(epa, HCAGR_OFFSET(offset), value)
+#define epa_load_base(epa, offset)\
+        epa_load(epa, HCAGR_OFFSET(offset))
+
+static inline void ehea_update_sqa(struct ehea_qp *qp, u16 nr_wqes)
+{
+	struct h_epa epa = qp->epas.kernel;
+	epa_store_acc(epa, QPTEMM_OFFSET(qpx_sqa),
+		      EHEA_BMASK_SET(QPX_SQA_VALUE, nr_wqes));
+}
+
+static inline void ehea_update_rq3a(struct ehea_qp *qp, u16 nr_wqes)
+{
+	struct h_epa epa = qp->epas.kernel;
+	epa_store_acc(epa, QPTEMM_OFFSET(qpx_rq3a),
+		      EHEA_BMASK_SET(QPX_RQ1A_VALUE, nr_wqes));
+}
+
+static inline void ehea_update_rq2a(struct ehea_qp *qp, u16 nr_wqes)
+{
+	struct h_epa epa = qp->epas.kernel;
+	epa_store_acc(epa, QPTEMM_OFFSET(qpx_rq2a),
+		      EHEA_BMASK_SET(QPX_RQ2A_VALUE, nr_wqes));
+}
+
+static inline void ehea_update_rq1a(struct ehea_qp *qp, u16 nr_wqes)
+{
+	struct h_epa epa = qp->epas.kernel;
+	epa_store_acc(epa, QPTEMM_OFFSET(qpx_rq1a),
+		      EHEA_BMASK_SET(QPX_RQ3A_VALUE, nr_wqes));
+}
+
+static inline void ehea_update_feca(struct ehea_cq *cq, u32 nr_cqes)
+{
+	struct h_epa epa = cq->epas.kernel;
+	epa_store_acc(epa, CQTEMM_OFFSET(cqx_feca),
+		      EHEA_BMASK_SET(CQX_FECADDER, nr_cqes));
+}
+
+static inline void ehea_reset_cq_n1(struct ehea_cq *cq)
+{
+	struct h_epa epa = cq->epas.kernel;
+	epa_store_cq(epa, cqx_n1,
+		     EHEA_BMASK_SET(CQX_N1_GENERATE_COMP_EVENT, 1));
+}
+
+static inline void ehea_reset_cq_ep(struct ehea_cq *my_cq)
+{
+	struct h_epa epa = my_cq->epas.kernel;
+	epa_store_acc(epa, CQTEMM_OFFSET(cqx_ep),
+		      EHEA_BMASK_SET(CQX_EP_EVENT_PENDING, 0));
+}
+
+#endif	/* __EHEA_HW_H__ */

+ 2654 - 0
drivers/net/ehea/ehea_main.c

@@ -0,0 +1,2654 @@
+/*
+ *  linux/drivers/net/ehea/ehea_main.c
+ *
+ *  eHEA ethernet device driver for IBM eServer System p
+ *
+ *  (C) Copyright IBM Corp. 2006
+ *
+ *  Authors:
+ *       Christoph Raisch <raisch@de.ibm.com>
+ *       Jan-Bernd Themann <themann@de.ibm.com>
+ *       Thomas Klein <tklein@de.ibm.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/in.h>
+#include <linux/ip.h>
+#include <linux/tcp.h>
+#include <linux/udp.h>
+#include <linux/if.h>
+#include <linux/list.h>
+#include <linux/if_ether.h>
+#include <net/ip.h>
+
+#include "ehea.h"
+#include "ehea_qmr.h"
+#include "ehea_phyp.h"
+
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Christoph Raisch <raisch@de.ibm.com>");
+MODULE_DESCRIPTION("IBM eServer HEA Driver");
+MODULE_VERSION(DRV_VERSION);
+
+
+static int msg_level = -1;
+static int rq1_entries = EHEA_DEF_ENTRIES_RQ1;
+static int rq2_entries = EHEA_DEF_ENTRIES_RQ2;
+static int rq3_entries = EHEA_DEF_ENTRIES_RQ3;
+static int sq_entries = EHEA_DEF_ENTRIES_SQ;
+
+module_param(msg_level, int, 0);
+module_param(rq1_entries, int, 0);
+module_param(rq2_entries, int, 0);
+module_param(rq3_entries, int, 0);
+module_param(sq_entries, int, 0);
+
+MODULE_PARM_DESC(msg_level, "msg_level");
+MODULE_PARM_DESC(rq3_entries, "Number of entries for Receive Queue 3 "
+		 "[2^x - 1], x = [6..14]. Default = "
+		 __MODULE_STRING(EHEA_DEF_ENTRIES_RQ3) ")");
+MODULE_PARM_DESC(rq2_entries, "Number of entries for Receive Queue 2 "
+		 "[2^x - 1], x = [6..14]. Default = "
+		 __MODULE_STRING(EHEA_DEF_ENTRIES_RQ2) ")");
+MODULE_PARM_DESC(rq1_entries, "Number of entries for Receive Queue 1 "
+		 "[2^x - 1], x = [6..14]. Default = "
+		 __MODULE_STRING(EHEA_DEF_ENTRIES_RQ1) ")");
+MODULE_PARM_DESC(sq_entries, " Number of entries for the Send Queue  "
+		 "[2^x - 1], x = [6..14]. Default = "
+		 __MODULE_STRING(EHEA_DEF_ENTRIES_SQ) ")");
+
+void ehea_dump(void *adr, int len, char *msg) {
+	int x;
+	unsigned char *deb = adr;
+	for (x = 0; x < len; x += 16) {
+		printk(DRV_NAME "%s adr=%p ofs=%04x %016lx %016lx\n", msg,
+			  deb, x, *((u64*)&deb[0]), *((u64*)&deb[8]));
+		deb += 16;
+	}
+}
+
+static struct net_device_stats *ehea_get_stats(struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct net_device_stats *stats = &port->stats;
+	struct hcp_ehea_port_cb2 *cb2;
+	u64 hret, rx_packets;
+	int i;
+
+	memset(stats, 0, sizeof(*stats));
+
+	cb2 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb2) {
+		ehea_error("no mem for cb2");
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea_port(port->adapter->handle,
+				      port->logical_port_id,
+				      H_PORT_CB2, H_PORT_CB2_ALL, cb2);
+	if (hret != H_SUCCESS) {
+		ehea_error("query_ehea_port failed");
+		goto out_herr;
+	}
+
+	if (netif_msg_hw(port))
+		ehea_dump(cb2, sizeof(*cb2), "net_device_stats");
+
+	rx_packets = 0;
+	for (i = 0; i < port->num_def_qps; i++)
+		rx_packets += port->port_res[i].rx_packets;
+
+	stats->tx_packets = cb2->txucp + cb2->txmcp + cb2->txbcp;
+	stats->multicast = cb2->rxmcp;
+	stats->rx_errors = cb2->rxuerr;
+	stats->rx_bytes = cb2->rxo;
+	stats->tx_bytes = cb2->txo;
+	stats->rx_packets = rx_packets;
+
+out_herr:
+	kfree(cb2);
+out:
+	return stats;
+}
+
+static void ehea_refill_rq1(struct ehea_port_res *pr, int index, int nr_of_wqes)
+{
+	struct sk_buff **skb_arr_rq1 = pr->rq1_skba.arr;
+	struct net_device *dev = pr->port->netdev;
+	int max_index_mask = pr->rq1_skba.len - 1;
+	int i;
+
+	if (!nr_of_wqes)
+		return;
+
+	for (i = 0; i < nr_of_wqes; i++) {
+		if (!skb_arr_rq1[index]) {
+			skb_arr_rq1[index] = netdev_alloc_skb(dev,
+							      EHEA_L_PKT_SIZE);
+			if (!skb_arr_rq1[index]) {
+				ehea_error("%s: no mem for skb/%d wqes filled",
+					   dev->name, i);
+				break;
+			}
+		}
+		index--;
+		index &= max_index_mask;
+	}
+	/* Ring doorbell */
+	ehea_update_rq1a(pr->qp, i);
+}
+
+static int ehea_init_fill_rq1(struct ehea_port_res *pr, int nr_rq1a)
+{
+	int ret = 0;
+	struct sk_buff **skb_arr_rq1 = pr->rq1_skba.arr;
+	struct net_device *dev = pr->port->netdev;
+	int i;
+
+	for (i = 0; i < pr->rq1_skba.len; i++) {
+		skb_arr_rq1[i] = netdev_alloc_skb(dev, EHEA_L_PKT_SIZE);
+		if (!skb_arr_rq1[i]) {
+			ehea_error("%s: no mem for skb/%d wqes filled",
+				   dev->name, i);
+			ret = -ENOMEM;
+			goto out;
+		}
+	}
+	/* Ring doorbell */
+	ehea_update_rq1a(pr->qp, nr_rq1a);
+out:
+	return ret;
+}
+
+static int ehea_refill_rq_def(struct ehea_port_res *pr,
+			      struct ehea_q_skb_arr *q_skba, int rq_nr,
+			      int num_wqes, int wqe_type, int packet_size)
+{
+	struct net_device *dev = pr->port->netdev;
+	struct ehea_qp *qp = pr->qp;
+	struct sk_buff **skb_arr = q_skba->arr;
+	struct ehea_rwqe *rwqe;
+	int i, index, max_index_mask, fill_wqes;
+	int ret = 0;
+
+	fill_wqes = q_skba->os_skbs + num_wqes;
+
+	if (!fill_wqes)
+		return ret;
+
+	index = q_skba->index;
+	max_index_mask = q_skba->len - 1;
+	for (i = 0; i < fill_wqes; i++) {
+		struct sk_buff *skb = netdev_alloc_skb(dev, packet_size);
+		if (!skb) {
+			ehea_error("%s: no mem for skb/%d wqes filled",
+				   dev->name, i);
+			q_skba->os_skbs = fill_wqes - i;
+			ret = -ENOMEM;
+			break;
+		}
+		skb_reserve(skb, NET_IP_ALIGN);
+
+		skb_arr[index] = skb;
+
+		rwqe = ehea_get_next_rwqe(qp, rq_nr);
+		rwqe->wr_id = EHEA_BMASK_SET(EHEA_WR_ID_TYPE, wqe_type)
+		            | EHEA_BMASK_SET(EHEA_WR_ID_INDEX, index);
+		rwqe->sg_list[0].l_key = pr->recv_mr.lkey;
+		rwqe->sg_list[0].vaddr = (u64)skb->data;
+		rwqe->sg_list[0].len = packet_size;
+		rwqe->data_segments = 1;
+
+		index++;
+		index &= max_index_mask;
+	}
+	q_skba->index = index;
+
+	/* Ring doorbell */
+	iosync();
+	if (rq_nr == 2)
+		ehea_update_rq2a(pr->qp, i);
+	else
+		ehea_update_rq3a(pr->qp, i);
+
+	return ret;
+}
+
+
+static int ehea_refill_rq2(struct ehea_port_res *pr, int nr_of_wqes)
+{
+	return ehea_refill_rq_def(pr, &pr->rq2_skba, 2,
+				  nr_of_wqes, EHEA_RWQE2_TYPE,
+				  EHEA_RQ2_PKT_SIZE + NET_IP_ALIGN);
+}
+
+
+static int ehea_refill_rq3(struct ehea_port_res *pr, int nr_of_wqes)
+{
+	return ehea_refill_rq_def(pr, &pr->rq3_skba, 3,
+				  nr_of_wqes, EHEA_RWQE3_TYPE,
+				  EHEA_MAX_PACKET_SIZE + NET_IP_ALIGN);
+}
+
+static inline int ehea_check_cqe(struct ehea_cqe *cqe, int *rq_num)
+{
+	*rq_num = (cqe->type & EHEA_CQE_TYPE_RQ) >> 5;
+	if ((cqe->status & EHEA_CQE_STAT_ERR_MASK) == 0)
+		return 0;
+	if (((cqe->status & EHEA_CQE_STAT_ERR_TCP) != 0) &&
+	    (cqe->header_length == 0))
+		return 0;
+	return -EINVAL;
+}
+
+static inline void ehea_fill_skb(struct net_device *dev,
+				 struct sk_buff *skb, struct ehea_cqe *cqe)
+{
+	int length = cqe->num_bytes_transfered - 4;	/*remove CRC */
+
+	skb_put(skb, length);
+	skb->ip_summed = CHECKSUM_UNNECESSARY;
+	skb->protocol = eth_type_trans(skb, dev);
+}
+
+static inline struct sk_buff *get_skb_by_index(struct sk_buff **skb_array,
+					       int arr_len,
+					       struct ehea_cqe *cqe)
+{
+	int skb_index = EHEA_BMASK_GET(EHEA_WR_ID_INDEX, cqe->wr_id);
+	struct sk_buff *skb;
+	void *pref;
+	int x;
+
+	x = skb_index + 1;
+	x &= (arr_len - 1);
+
+	pref = skb_array[x];
+	prefetchw(pref);
+	prefetchw(pref + EHEA_CACHE_LINE);
+
+	pref = (skb_array[x]->data);
+	prefetch(pref);
+	prefetch(pref + EHEA_CACHE_LINE);
+	prefetch(pref + EHEA_CACHE_LINE * 2);
+	prefetch(pref + EHEA_CACHE_LINE * 3);
+	skb = skb_array[skb_index];
+	skb_array[skb_index] = NULL;
+	return skb;
+}
+
+static inline struct sk_buff *get_skb_by_index_ll(struct sk_buff **skb_array,
+						  int arr_len, int wqe_index)
+{
+	struct sk_buff *skb;
+	void *pref;
+	int x;
+
+	x = wqe_index + 1;
+	x &= (arr_len - 1);
+
+	pref = skb_array[x];
+	prefetchw(pref);
+	prefetchw(pref + EHEA_CACHE_LINE);
+
+	pref = (skb_array[x]->data);
+	prefetchw(pref);
+	prefetchw(pref + EHEA_CACHE_LINE);
+
+	skb = skb_array[wqe_index];
+	skb_array[wqe_index] = NULL;
+	return skb;
+}
+
+static int ehea_treat_poll_error(struct ehea_port_res *pr, int rq,
+				 struct ehea_cqe *cqe, int *processed_rq2,
+				 int *processed_rq3)
+{
+	struct sk_buff *skb;
+
+	if (netif_msg_rx_err(pr->port)) {
+		ehea_error("CQE Error for QP %d", pr->qp->init_attr.qp_nr);
+		ehea_dump(cqe, sizeof(*cqe), "CQE");
+	}
+
+	if (rq == 2) {
+		*processed_rq2 += 1;
+		skb = get_skb_by_index(pr->rq2_skba.arr, pr->rq2_skba.len, cqe);
+		dev_kfree_skb(skb);
+	} else if (rq == 3) {
+		*processed_rq3 += 1;
+		skb = get_skb_by_index(pr->rq3_skba.arr, pr->rq3_skba.len, cqe);
+		dev_kfree_skb(skb);
+	}
+
+	if (cqe->status & EHEA_CQE_STAT_FAT_ERR_MASK) {
+		ehea_error("Critical receive error. Resetting port.");
+		queue_work(pr->port->adapter->ehea_wq, &pr->port->reset_task);
+		return 1;
+	}
+
+	return 0;
+}
+
+static int ehea_poll(struct net_device *dev, int *budget)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_port_res *pr = &port->port_res[0];
+	struct ehea_qp *qp = pr->qp;
+	struct ehea_cqe *cqe;
+	struct sk_buff *skb;
+	struct sk_buff **skb_arr_rq1 = pr->rq1_skba.arr;
+	struct sk_buff **skb_arr_rq2 = pr->rq2_skba.arr;
+	struct sk_buff **skb_arr_rq3 = pr->rq3_skba.arr;
+	int skb_arr_rq1_len = pr->rq1_skba.len;
+	int skb_arr_rq2_len = pr->rq2_skba.len;
+	int skb_arr_rq3_len = pr->rq3_skba.len;
+	int processed, processed_rq1, processed_rq2, processed_rq3;
+	int wqe_index, last_wqe_index, rq, intreq, my_quota, port_reset;
+
+	processed = processed_rq1 = processed_rq2 = processed_rq3 = 0;
+	last_wqe_index = 0;
+	my_quota = min(*budget, dev->quota);
+	my_quota = min(my_quota, EHEA_POLL_MAX_RWQE);
+
+	/* rq0 is low latency RQ */
+	cqe = ehea_poll_rq1(qp, &wqe_index);
+	while ((my_quota > 0) && cqe) {
+		ehea_inc_rq1(qp);
+		processed_rq1++;
+		processed++;
+		my_quota--;
+		if (netif_msg_rx_status(port))
+			ehea_dump(cqe, sizeof(*cqe), "CQE");
+
+		last_wqe_index = wqe_index;
+		rmb();
+		if (!ehea_check_cqe(cqe, &rq)) {
+			if (rq == 1) {	/* LL RQ1 */
+				skb = get_skb_by_index_ll(skb_arr_rq1,
+							  skb_arr_rq1_len,
+							  wqe_index);
+				if (unlikely(!skb)) {
+					if (netif_msg_rx_err(port))
+						ehea_error("LL rq1: skb=NULL");
+					skb = netdev_alloc_skb(dev,
+							       EHEA_L_PKT_SIZE);
+					if (!skb)
+						break;
+				}
+				memcpy(skb->data, ((char*)cqe) + 64,
+				       cqe->num_bytes_transfered - 4);
+				ehea_fill_skb(dev, skb, cqe);
+			} else if (rq == 2) {  /* RQ2 */
+				skb = get_skb_by_index(skb_arr_rq2,
+						       skb_arr_rq2_len, cqe);
+				if (unlikely(!skb)) {
+					if (netif_msg_rx_err(port))
+						ehea_error("rq2: skb=NULL");
+					break;
+				}
+				ehea_fill_skb(dev, skb, cqe);
+				processed_rq2++;
+			} else {  /* RQ3 */
+				skb = get_skb_by_index(skb_arr_rq3,
+						       skb_arr_rq3_len, cqe);
+				if (unlikely(!skb)) {
+					if (netif_msg_rx_err(port))
+						ehea_error("rq3: skb=NULL");
+					break;
+				}
+				ehea_fill_skb(dev, skb, cqe);
+				processed_rq3++;
+			}
+
+			if (cqe->status & EHEA_CQE_VLAN_TAG_XTRACT)
+				vlan_hwaccel_receive_skb(skb, port->vgrp,
+							 cqe->vlan_tag);
+			else
+				netif_receive_skb(skb);
+
+		} else { /* Error occured */
+			pr->p_state.poll_receive_errors++;
+			port_reset = ehea_treat_poll_error(pr, rq, cqe,
+							   &processed_rq2,
+							   &processed_rq3);
+			if (port_reset)
+				break;
+		}
+		cqe = ehea_poll_rq1(qp, &wqe_index);
+	}
+
+	dev->quota -= processed;
+	*budget -= processed;
+
+	pr->p_state.ehea_poll += 1;
+	pr->rx_packets += processed;
+
+	ehea_refill_rq1(pr, last_wqe_index, processed_rq1);
+	ehea_refill_rq2(pr, processed_rq2);
+	ehea_refill_rq3(pr, processed_rq3);
+
+	intreq = ((pr->p_state.ehea_poll & 0xF) == 0xF);
+
+	if (!cqe || intreq) {
+		netif_rx_complete(dev);
+		ehea_reset_cq_ep(pr->recv_cq);
+		ehea_reset_cq_n1(pr->recv_cq);
+		cqe = hw_qeit_get_valid(&qp->hw_rqueue1);
+		if (!cqe || intreq)
+			return 0;
+		if (!netif_rx_reschedule(dev, my_quota))
+			return 0;
+	}
+	return 1;
+}
+
+void free_sent_skbs(struct ehea_cqe *cqe, struct ehea_port_res *pr)
+{
+	struct sk_buff *skb;
+	int index, max_index_mask, i;
+
+	index = EHEA_BMASK_GET(EHEA_WR_ID_INDEX, cqe->wr_id);
+	max_index_mask = pr->sq_skba.len - 1;
+	for (i = 0; i < EHEA_BMASK_GET(EHEA_WR_ID_REFILL, cqe->wr_id); i++) {
+		skb = pr->sq_skba.arr[index];
+		if (likely(skb)) {
+			dev_kfree_skb(skb);
+			pr->sq_skba.arr[index] = NULL;
+		} else {
+			ehea_error("skb=NULL, wr_id=%lX, loop=%d, index=%d",
+				   cqe->wr_id, i, index);
+		}
+		index--;
+		index &= max_index_mask;
+	}
+}
+
+#define MAX_SENDCOMP_QUOTA 400
+void ehea_send_irq_tasklet(unsigned long data)
+{
+	struct ehea_port_res *pr = (struct ehea_port_res*)data;
+	struct ehea_cq *send_cq = pr->send_cq;
+	struct ehea_cqe *cqe;
+	int quota = MAX_SENDCOMP_QUOTA;
+	int cqe_counter = 0;
+	int swqe_av = 0;
+	unsigned long flags;
+
+	do {
+		cqe = ehea_poll_cq(send_cq);
+		if (!cqe) {
+			ehea_reset_cq_ep(send_cq);
+			ehea_reset_cq_n1(send_cq);
+			cqe = ehea_poll_cq(send_cq);
+			if (!cqe)
+				break;
+		}
+		cqe_counter++;
+		rmb();
+		if (cqe->status & EHEA_CQE_STAT_ERR_MASK) {
+			ehea_error("Send Completion Error: Resetting port");
+			if (netif_msg_tx_err(pr->port))
+				ehea_dump(cqe, sizeof(*cqe), "Send CQE");
+			queue_work(pr->port->adapter->ehea_wq,
+				   &pr->port->reset_task);
+			break;
+		}
+
+		if (netif_msg_tx_done(pr->port))
+			ehea_dump(cqe, sizeof(*cqe), "CQE");
+
+		if (likely(EHEA_BMASK_GET(EHEA_WR_ID_TYPE, cqe->wr_id)
+			   == EHEA_SWQE2_TYPE))
+			free_sent_skbs(cqe, pr);
+
+		swqe_av += EHEA_BMASK_GET(EHEA_WR_ID_REFILL, cqe->wr_id);
+		quota--;
+	} while (quota > 0);
+
+	ehea_update_feca(send_cq, cqe_counter);
+	atomic_add(swqe_av, &pr->swqe_avail);
+
+	spin_lock_irqsave(&pr->netif_queue, flags);
+	if (pr->queue_stopped && (atomic_read(&pr->swqe_avail)
+				  >= pr->swqe_refill_th)) {
+		netif_wake_queue(pr->port->netdev);
+		pr->queue_stopped = 0;
+	}
+	spin_unlock_irqrestore(&pr->netif_queue, flags);
+
+	if (unlikely(cqe))
+		tasklet_hi_schedule(&pr->send_comp_task);
+}
+
+static irqreturn_t ehea_send_irq_handler(int irq, void *param,
+					 struct pt_regs *regs)
+{
+	struct ehea_port_res *pr = param;
+	tasklet_hi_schedule(&pr->send_comp_task);
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t ehea_recv_irq_handler(int irq, void *param,
+					 struct pt_regs *regs)
+{
+	struct ehea_port_res *pr = param;
+	struct ehea_port *port = pr->port;
+	netif_rx_schedule(port->netdev);
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t ehea_qp_aff_irq_handler(int irq, void *param,
+					   struct pt_regs *regs)
+{
+	struct ehea_port *port = param;
+	struct ehea_eqe *eqe;
+	u32 qp_token;
+
+	eqe = ehea_poll_eq(port->qp_eq);
+	ehea_debug("eqe=%p", eqe);
+	while (eqe) {
+		ehea_debug("*eqe=%lx", *(u64*)eqe);
+		eqe = ehea_poll_eq(port->qp_eq);
+		qp_token = EHEA_BMASK_GET(EHEA_EQE_QP_TOKEN, eqe->entry);
+		ehea_debug("next eqe=%p", eqe);
+	}
+
+	return IRQ_HANDLED;
+}
+
+static struct ehea_port *ehea_get_port(struct ehea_adapter *adapter,
+				       int logical_port)
+{
+	int i;
+
+	for (i = 0; i < adapter->num_ports; i++)
+		if (adapter->port[i]->logical_port_id == logical_port)
+			return adapter->port[i];
+	return NULL;
+}
+
+int ehea_sense_port_attr(struct ehea_port *port)
+{
+	int ret;
+	u64 hret;
+	struct hcp_ehea_port_cb0 *cb0;
+
+	cb0 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb0) {
+		ehea_error("no mem for cb0");
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea_port(port->adapter->handle,
+				      port->logical_port_id, H_PORT_CB0,
+				      EHEA_BMASK_SET(H_PORT_CB0_ALL, 0xFFFF),
+				      cb0);
+	if (hret != H_SUCCESS) {
+		ret = -EIO;
+		goto out_free;
+	}
+
+	/* MAC address */
+	port->mac_addr = cb0->port_mac_addr << 16;
+
+	if (!is_valid_ether_addr((u8*)&port->mac_addr)) {
+		ret = -EADDRNOTAVAIL;
+		goto out_free;
+	}
+
+	/* Port speed */
+	switch (cb0->port_speed) {
+	case H_SPEED_10M_H:
+		port->port_speed = EHEA_SPEED_10M;
+		port->full_duplex = 0;
+		break;
+	case H_SPEED_10M_F:
+		port->port_speed = EHEA_SPEED_10M;
+		port->full_duplex = 1;
+		break;
+	case H_SPEED_100M_H:
+		port->port_speed = EHEA_SPEED_100M;
+		port->full_duplex = 0;
+		break;
+	case H_SPEED_100M_F:
+		port->port_speed = EHEA_SPEED_100M;
+		port->full_duplex = 1;
+		break;
+	case H_SPEED_1G_F:
+		port->port_speed = EHEA_SPEED_1G;
+		port->full_duplex = 1;
+		break;
+	case H_SPEED_10G_F:
+		port->port_speed = EHEA_SPEED_10G;
+		port->full_duplex = 1;
+		break;
+	default:
+		port->port_speed = 0;
+		port->full_duplex = 0;
+		break;
+	}
+
+	/* Number of default QPs */
+	port->num_def_qps = cb0->num_default_qps;
+
+	if (!port->num_def_qps) {
+		ret = -EINVAL;
+		goto out_free;
+	}
+
+	if (port->num_def_qps >= EHEA_NUM_TX_QP)
+		port->num_add_tx_qps = 0;
+	else
+		port->num_add_tx_qps = EHEA_NUM_TX_QP - port->num_def_qps;
+
+	ret = 0;
+out_free:
+	if (ret || netif_msg_probe(port))
+		ehea_dump(cb0, sizeof(*cb0), "ehea_sense_port_attr");
+	kfree(cb0);
+out:
+	return ret;
+}
+
+int ehea_set_portspeed(struct ehea_port *port, u32 port_speed)
+{
+	struct hcp_ehea_port_cb4 *cb4;
+	u64 hret;
+	int ret = 0;
+
+	cb4 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb4) {
+		ehea_error("no mem for cb4");
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	cb4->port_speed = port_speed;
+
+	netif_carrier_off(port->netdev);
+
+	hret = ehea_h_modify_ehea_port(port->adapter->handle,
+				       port->logical_port_id,
+				       H_PORT_CB4, H_PORT_CB4_SPEED, cb4);
+	if (hret == H_SUCCESS) {
+		port->autoneg = port_speed == EHEA_SPEED_AUTONEG ? 1 : 0;
+
+		hret = ehea_h_query_ehea_port(port->adapter->handle,
+					      port->logical_port_id,
+					      H_PORT_CB4, H_PORT_CB4_SPEED,
+					      cb4);
+		if (hret == H_SUCCESS) {
+			switch (cb4->port_speed) {
+			case H_SPEED_10M_H:
+				port->port_speed = EHEA_SPEED_10M;
+				port->full_duplex = 0;
+				break;
+			case H_SPEED_10M_F:
+				port->port_speed = EHEA_SPEED_10M;
+				port->full_duplex = 1;
+				break;
+			case H_SPEED_100M_H:
+				port->port_speed = EHEA_SPEED_100M;
+				port->full_duplex = 0;
+				break;
+			case H_SPEED_100M_F:
+				port->port_speed = EHEA_SPEED_100M;
+				port->full_duplex = 1;
+				break;
+			case H_SPEED_1G_F:
+				port->port_speed = EHEA_SPEED_1G;
+				port->full_duplex = 1;
+				break;
+			case H_SPEED_10G_F:
+				port->port_speed = EHEA_SPEED_10G;
+				port->full_duplex = 1;
+				break;
+			default:
+				port->port_speed = 0;
+				port->full_duplex = 0;
+				break;
+			}
+		} else {
+			ehea_error("Failed sensing port speed");
+			ret = -EIO;
+		}
+	} else {
+		if (hret == H_AUTHORITY) {
+			ehea_info("Hypervisor denied setting port speed. Either"
+				  " this partition is not authorized to set "
+				  "port speed or another partition has modified"
+				  " port speed first.");
+			ret = -EPERM;
+		} else {
+			ret = -EIO;
+			ehea_error("Failed setting port speed");
+		}
+	}
+	netif_carrier_on(port->netdev);
+	kfree(cb4);
+out:
+	return ret;
+}
+
+static void ehea_parse_eqe(struct ehea_adapter *adapter, u64 eqe)
+{
+	int ret;
+	u8 ec;
+	u8 portnum;
+	struct ehea_port *port;
+
+	ec = EHEA_BMASK_GET(NEQE_EVENT_CODE, eqe);
+	portnum = EHEA_BMASK_GET(NEQE_PORTNUM, eqe);
+	port = ehea_get_port(adapter, portnum);
+
+	switch (ec) {
+	case EHEA_EC_PORTSTATE_CHG:	/* port state change */
+
+		if (!port) {
+			ehea_error("unknown portnum %x", portnum);
+			break;
+		}
+
+		if (EHEA_BMASK_GET(NEQE_PORT_UP, eqe)) {
+			if (!netif_carrier_ok(port->netdev)) {
+				ret = ehea_sense_port_attr(
+					adapter->port[portnum]);
+				if (ret) {
+					ehea_error("failed resensing port "
+						   "attributes");
+					break;
+				}
+
+				if (netif_msg_link(port))
+					ehea_info("%s: Logical port up: %dMbps "
+						  "%s Duplex",
+						  port->netdev->name,
+						  port->port_speed,
+						  port->full_duplex ==
+						  1 ? "Full" : "Half");
+
+				netif_carrier_on(port->netdev);
+				netif_wake_queue(port->netdev);
+			}
+		} else
+			if (netif_carrier_ok(port->netdev)) {
+				if (netif_msg_link(port))
+					ehea_info("%s: Logical port down",
+						  port->netdev->name);
+				netif_carrier_off(port->netdev);
+				netif_stop_queue(port->netdev);
+			}
+
+		if (EHEA_BMASK_GET(NEQE_EXTSWITCH_PORT_UP, eqe)) {
+			if (netif_msg_link(port))
+				ehea_info("%s: Physical port up",
+					  port->netdev->name);
+		} else {
+			if (netif_msg_link(port))
+				ehea_info("%s: Physical port down",
+					  port->netdev->name);
+		}
+
+		if (EHEA_BMASK_GET(NEQE_EXTSWITCH_PRIMARY, eqe))
+			ehea_info("External switch port is primary port");
+		else
+			ehea_info("External switch port is backup port");
+
+		break;
+	case EHEA_EC_ADAPTER_MALFUNC:
+		ehea_error("Adapter malfunction");
+		break;
+	case EHEA_EC_PORT_MALFUNC:
+		ehea_info("Port malfunction: Device: %s", port->netdev->name);
+		netif_carrier_off(port->netdev);
+		netif_stop_queue(port->netdev);
+		break;
+	default:
+		ehea_error("unknown event code %x", ec);
+		break;
+	}
+}
+
+static void ehea_neq_tasklet(unsigned long data)
+{
+	struct ehea_adapter *adapter = (struct ehea_adapter*)data;
+	struct ehea_eqe *eqe;
+	u64 event_mask;
+
+	eqe = ehea_poll_eq(adapter->neq);
+	ehea_debug("eqe=%p", eqe);
+
+	while (eqe) {
+		ehea_debug("*eqe=%lx", eqe->entry);
+		ehea_parse_eqe(adapter, eqe->entry);
+		eqe = ehea_poll_eq(adapter->neq);
+		ehea_debug("next eqe=%p", eqe);
+	}
+
+	event_mask = EHEA_BMASK_SET(NELR_PORTSTATE_CHG, 1)
+		   | EHEA_BMASK_SET(NELR_ADAPTER_MALFUNC, 1)
+		   | EHEA_BMASK_SET(NELR_PORT_MALFUNC, 1);
+
+	ehea_h_reset_events(adapter->handle,
+			    adapter->neq->fw_handle, event_mask);
+}
+
+static irqreturn_t ehea_interrupt_neq(int irq, void *param,
+				      struct pt_regs *regs)
+{
+	struct ehea_adapter *adapter = param;
+	tasklet_hi_schedule(&adapter->neq_tasklet);
+	return IRQ_HANDLED;
+}
+
+
+static int ehea_fill_port_res(struct ehea_port_res *pr)
+{
+	int ret;
+	struct ehea_qp_init_attr *init_attr = &pr->qp->init_attr;
+
+	ret = ehea_init_fill_rq1(pr, init_attr->act_nr_rwqes_rq1
+				     - init_attr->act_nr_rwqes_rq2
+				     - init_attr->act_nr_rwqes_rq3 - 1);
+
+	ret |= ehea_refill_rq2(pr, init_attr->act_nr_rwqes_rq2 - 1);
+
+	ret |= ehea_refill_rq3(pr, init_attr->act_nr_rwqes_rq3 - 1);
+
+	return ret;
+}
+
+static int ehea_reg_interrupts(struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_port_res *pr;
+	int i, ret;
+
+	for (i = 0; i < port->num_def_qps; i++) {
+		pr = &port->port_res[i];
+		snprintf(pr->int_recv_name, EHEA_IRQ_NAME_SIZE - 1
+			 , "%s-recv%d", dev->name, i);
+		ret = ibmebus_request_irq(NULL, pr->recv_eq->attr.ist1,
+					  ehea_recv_irq_handler,
+					  SA_INTERRUPT, pr->int_recv_name, pr);
+		if (ret) {
+			ehea_error("failed registering irq for ehea_recv_int:"
+				   "port_res_nr:%d, ist=%X", i,
+				   pr->recv_eq->attr.ist1);
+			goto out_free_seq;
+		}
+		if (netif_msg_ifup(port))
+			ehea_info("irq_handle 0x%X for funct ehea_recv_int %d "
+				  "registered", pr->recv_eq->attr.ist1, i);
+	}
+
+	snprintf(port->int_aff_name, EHEA_IRQ_NAME_SIZE - 1, "%s-aff",
+		 dev->name);
+
+	ret = ibmebus_request_irq(NULL, port->qp_eq->attr.ist1,
+				  ehea_qp_aff_irq_handler,
+				  SA_INTERRUPT, port->int_aff_name, port);
+	if (ret) {
+		ehea_error("failed registering irq for qp_aff_irq_handler:"
+			   "ist=%X", port->qp_eq->attr.ist1);
+		goto out_free_qpeq;
+	}
+
+	if (netif_msg_ifup(port))
+		ehea_info("irq_handle 0x%X for function qp_aff_irq_handler "
+			  "registered", port->qp_eq->attr.ist1);
+
+	for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
+		pr = &port->port_res[i];
+		snprintf(pr->int_send_name, EHEA_IRQ_NAME_SIZE - 1,
+			 "%s-send%d", dev->name, i);
+		ret = ibmebus_request_irq(NULL, pr->send_eq->attr.ist1,
+					  ehea_send_irq_handler,
+					  SA_INTERRUPT, pr->int_send_name,
+					  pr);
+		if (ret) {
+			ehea_error("failed registering irq for ehea_send "
+				   "port_res_nr:%d, ist=%X", i,
+				   pr->send_eq->attr.ist1);
+			goto out_free_req;
+		}
+		if (netif_msg_ifup(port))
+			ehea_info("irq_handle 0x%X for function ehea_send_int "
+				  "%d registered", pr->send_eq->attr.ist1, i);
+	}
+out:
+	return ret;
+
+out_free_req:
+	while (--i >= 0) {
+		u32 ist = port->port_res[i].send_eq->attr.ist1;
+		ibmebus_free_irq(NULL, ist, &port->port_res[i]);
+	}
+out_free_qpeq:
+	ibmebus_free_irq(NULL, port->qp_eq->attr.ist1, port);
+	i = port->num_def_qps;
+out_free_seq:
+	while (--i >= 0) {
+		u32 ist = port->port_res[i].recv_eq->attr.ist1;
+		ibmebus_free_irq(NULL, ist, &port->port_res[i]);
+	}
+	goto out;
+}
+
+static void ehea_free_interrupts(struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_port_res *pr;
+	int i;
+
+	/* send */
+	for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
+		pr = &port->port_res[i];
+		ibmebus_free_irq(NULL, pr->send_eq->attr.ist1, pr);
+		if (netif_msg_intr(port))
+			ehea_info("free send irq for res %d with handle 0x%X",
+				  i, pr->send_eq->attr.ist1);
+	}
+
+	/* receive */
+	for (i = 0; i < port->num_def_qps; i++) {
+		pr = &port->port_res[i];
+		ibmebus_free_irq(NULL, pr->recv_eq->attr.ist1, pr);
+		if (netif_msg_intr(port))
+			ehea_info("free recv irq for res %d with handle 0x%X",
+				  i, pr->recv_eq->attr.ist1);
+	}
+
+	/* associated events */
+	ibmebus_free_irq(NULL, port->qp_eq->attr.ist1, port);
+	if (netif_msg_intr(port))
+		ehea_info("associated event interrupt for handle 0x%X freed",
+			  port->qp_eq->attr.ist1);
+}
+
+static int ehea_configure_port(struct ehea_port *port)
+{
+	int ret, i;
+	u64 hret, mask;
+	struct hcp_ehea_port_cb0 *cb0;
+
+	ret = -ENOMEM;
+	cb0 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb0)
+		goto out;
+
+	cb0->port_rc = EHEA_BMASK_SET(PXLY_RC_VALID, 1)
+		     | EHEA_BMASK_SET(PXLY_RC_IP_CHKSUM, 1)
+		     | EHEA_BMASK_SET(PXLY_RC_TCP_UDP_CHKSUM, 1)
+		     | EHEA_BMASK_SET(PXLY_RC_VLAN_XTRACT, 1)
+		     | EHEA_BMASK_SET(PXLY_RC_VLAN_TAG_FILTER,
+				      PXLY_RC_VLAN_FILTER)
+		     | EHEA_BMASK_SET(PXLY_RC_JUMBO_FRAME, 1);
+
+	for (i = 0; i < port->num_def_qps; i++)
+		cb0->default_qpn_arr[i] = port->port_res[i].qp->init_attr.qp_nr;
+
+	if (netif_msg_ifup(port))
+		ehea_dump(cb0, sizeof(*cb0), "ehea_configure_port");
+
+	mask = EHEA_BMASK_SET(H_PORT_CB0_PRC, 1)
+	     | EHEA_BMASK_SET(H_PORT_CB0_DEFQPNARRAY, 1);
+
+	hret = ehea_h_modify_ehea_port(port->adapter->handle,
+				       port->logical_port_id,
+				       H_PORT_CB0, mask, cb0);
+	ret = -EIO;
+	if (hret != H_SUCCESS)
+		goto out_free;
+
+	ret = 0;
+
+out_free:
+	kfree(cb0);
+out:
+	return ret;
+}
+
+static int ehea_gen_smrs(struct ehea_port_res *pr)
+{
+	u64 hret;
+	struct ehea_adapter *adapter = pr->port->adapter;
+
+	hret = ehea_h_register_smr(adapter->handle, adapter->mr.handle,
+				   adapter->mr.vaddr, EHEA_MR_ACC_CTRL,
+				   adapter->pd, &pr->send_mr);
+	if (hret != H_SUCCESS)
+		goto out;
+
+	hret = ehea_h_register_smr(adapter->handle, adapter->mr.handle,
+				   adapter->mr.vaddr, EHEA_MR_ACC_CTRL,
+				   adapter->pd, &pr->recv_mr);
+	if (hret != H_SUCCESS)
+		goto out_freeres;
+
+	return 0;
+
+out_freeres:
+	hret = ehea_h_free_resource(adapter->handle, pr->send_mr.handle);
+	if (hret != H_SUCCESS)
+		ehea_error("failed freeing SMR");
+out:
+	return -EIO;
+}
+
+static int ehea_rem_smrs(struct ehea_port_res *pr)
+{
+	struct ehea_adapter *adapter = pr->port->adapter;
+	int ret = 0;
+	u64 hret;
+
+	hret = ehea_h_free_resource(adapter->handle, pr->send_mr.handle);
+	if (hret != H_SUCCESS) {
+		ret = -EIO;
+		ehea_error("failed freeing send SMR for pr=%p", pr);
+	}
+
+	hret = ehea_h_free_resource(adapter->handle, pr->recv_mr.handle);
+	if (hret != H_SUCCESS) {
+		ret = -EIO;
+		ehea_error("failed freeing recv SMR for pr=%p", pr);
+	}
+
+	return ret;
+}
+
+static int ehea_init_q_skba(struct ehea_q_skb_arr *q_skba, int max_q_entries)
+{
+	int arr_size = sizeof(void*) * max_q_entries;
+
+	q_skba->arr = vmalloc(arr_size);
+	if (!q_skba->arr)
+		return -ENOMEM;
+
+	memset(q_skba->arr, 0, arr_size);
+
+	q_skba->len = max_q_entries;
+	q_skba->index = 0;
+	q_skba->os_skbs = 0;
+
+	return 0;
+}
+
+static int ehea_init_port_res(struct ehea_port *port, struct ehea_port_res *pr,
+			      struct port_res_cfg *pr_cfg, int queue_token)
+{
+	struct ehea_adapter *adapter = port->adapter;
+	enum ehea_eq_type eq_type = EHEA_EQ;
+	struct ehea_qp_init_attr *init_attr = NULL;
+	int ret = -EIO;
+
+	memset(pr, 0, sizeof(struct ehea_port_res));
+
+	pr->port = port;
+	spin_lock_init(&pr->send_lock);
+	spin_lock_init(&pr->recv_lock);
+	spin_lock_init(&pr->xmit_lock);
+	spin_lock_init(&pr->netif_queue);
+
+	pr->recv_eq = ehea_create_eq(adapter, eq_type, EHEA_MAX_ENTRIES_EQ, 0);
+	if (!pr->recv_eq) {
+		ehea_error("create_eq failed (recv_eq)");
+		goto out_free;
+	}
+
+	pr->send_eq = ehea_create_eq(adapter, eq_type, EHEA_MAX_ENTRIES_EQ, 0);
+	if (!pr->send_eq) {
+		ehea_error("create_eq failed (send_eq)");
+		goto out_free;
+	}
+
+	pr->recv_cq = ehea_create_cq(adapter, pr_cfg->max_entries_rcq,
+				     pr->recv_eq->fw_handle,
+				     port->logical_port_id);
+	if (!pr->recv_cq) {
+		ehea_error("create_cq failed (cq_recv)");
+		goto out_free;
+	}
+
+	pr->send_cq = ehea_create_cq(adapter, pr_cfg->max_entries_scq,
+				     pr->send_eq->fw_handle,
+				     port->logical_port_id);
+	if (!pr->send_cq) {
+		ehea_error("create_cq failed (cq_send)");
+		goto out_free;
+	}
+
+	if (netif_msg_ifup(port))
+		ehea_info("Send CQ: act_nr_cqes=%d, Recv CQ: act_nr_cqes=%d",
+			  pr->send_cq->attr.act_nr_of_cqes,
+			  pr->recv_cq->attr.act_nr_of_cqes);
+
+	init_attr = kzalloc(sizeof(*init_attr), GFP_KERNEL);
+	if (!init_attr) {
+		ret = -ENOMEM;
+		ehea_error("no mem for ehea_qp_init_attr");
+		goto out_free;
+	}
+
+	init_attr->low_lat_rq1 = 1;
+	init_attr->signalingtype = 1;	/* generate CQE if specified in WQE */
+	init_attr->rq_count = 3;
+	init_attr->qp_token = queue_token;
+	init_attr->max_nr_send_wqes = pr_cfg->max_entries_sq;
+	init_attr->max_nr_rwqes_rq1 = pr_cfg->max_entries_rq1;
+	init_attr->max_nr_rwqes_rq2 = pr_cfg->max_entries_rq2;
+	init_attr->max_nr_rwqes_rq3 = pr_cfg->max_entries_rq3;
+	init_attr->wqe_size_enc_sq = EHEA_SG_SQ;
+	init_attr->wqe_size_enc_rq1 = EHEA_SG_RQ1;
+	init_attr->wqe_size_enc_rq2 = EHEA_SG_RQ2;
+	init_attr->wqe_size_enc_rq3 = EHEA_SG_RQ3;
+	init_attr->rq2_threshold = EHEA_RQ2_THRESHOLD;
+	init_attr->rq3_threshold = EHEA_RQ3_THRESHOLD;
+	init_attr->port_nr = port->logical_port_id;
+	init_attr->send_cq_handle = pr->send_cq->fw_handle;
+	init_attr->recv_cq_handle = pr->recv_cq->fw_handle;
+	init_attr->aff_eq_handle = port->qp_eq->fw_handle;
+
+	pr->qp = ehea_create_qp(adapter, adapter->pd, init_attr);
+	if (!pr->qp) {
+		ehea_error("create_qp failed");
+		ret = -EIO;
+		goto out_free;
+	}
+
+	if (netif_msg_ifup(port))
+		ehea_info("QP: qp_nr=%d\n act_nr_snd_wqe=%d\n nr_rwqe_rq1=%d\n "
+			  "nr_rwqe_rq2=%d\n nr_rwqe_rq3=%d", init_attr->qp_nr,
+			  init_attr->act_nr_send_wqes,
+			  init_attr->act_nr_rwqes_rq1,
+			  init_attr->act_nr_rwqes_rq2,
+			  init_attr->act_nr_rwqes_rq3);
+
+	ret = ehea_init_q_skba(&pr->sq_skba, init_attr->act_nr_send_wqes + 1);
+	ret |= ehea_init_q_skba(&pr->rq1_skba, init_attr->act_nr_rwqes_rq1 + 1);
+	ret |= ehea_init_q_skba(&pr->rq2_skba, init_attr->act_nr_rwqes_rq2 + 1);
+	ret |= ehea_init_q_skba(&pr->rq3_skba, init_attr->act_nr_rwqes_rq3 + 1);
+	if (ret)
+		goto out_free;
+
+	pr->swqe_refill_th = init_attr->act_nr_send_wqes / 10;
+	if (ehea_gen_smrs(pr) != 0) {
+		ret = -EIO;
+		goto out_free;
+	}
+	tasklet_init(&pr->send_comp_task, ehea_send_irq_tasklet,
+		     (unsigned long)pr);
+	atomic_set(&pr->swqe_avail, init_attr->act_nr_send_wqes - 1);
+
+	kfree(init_attr);
+	ret = 0;
+	goto out;
+
+out_free:
+	kfree(init_attr);
+	vfree(pr->sq_skba.arr);
+	vfree(pr->rq1_skba.arr);
+	vfree(pr->rq2_skba.arr);
+	vfree(pr->rq3_skba.arr);
+	ehea_destroy_qp(pr->qp);
+	ehea_destroy_cq(pr->send_cq);
+	ehea_destroy_cq(pr->recv_cq);
+	ehea_destroy_eq(pr->send_eq);
+	ehea_destroy_eq(pr->recv_eq);
+out:
+	return ret;
+}
+
+static int ehea_clean_portres(struct ehea_port *port, struct ehea_port_res *pr)
+{
+	int ret, i;
+
+	ret = ehea_destroy_qp(pr->qp);
+
+	if (!ret) {
+		ehea_destroy_cq(pr->send_cq);
+		ehea_destroy_cq(pr->recv_cq);
+		ehea_destroy_eq(pr->send_eq);
+		ehea_destroy_eq(pr->recv_eq);
+
+		for (i = 0; i < pr->rq1_skba.len; i++)
+			if (pr->rq1_skba.arr[i])
+				dev_kfree_skb(pr->rq1_skba.arr[i]);
+
+		for (i = 0; i < pr->rq2_skba.len; i++)
+			if (pr->rq2_skba.arr[i])
+				dev_kfree_skb(pr->rq2_skba.arr[i]);
+
+		for (i = 0; i < pr->rq3_skba.len; i++)
+			if (pr->rq3_skba.arr[i])
+				dev_kfree_skb(pr->rq3_skba.arr[i]);
+
+		for (i = 0; i < pr->sq_skba.len; i++)
+			if (pr->sq_skba.arr[i])
+				dev_kfree_skb(pr->sq_skba.arr[i]);
+
+		vfree(pr->rq1_skba.arr);
+		vfree(pr->rq2_skba.arr);
+		vfree(pr->rq3_skba.arr);
+		vfree(pr->sq_skba.arr);
+		ret = ehea_rem_smrs(pr);
+	}
+	return ret;
+}
+
+/*
+ * The write_* functions store information in swqe which is used by
+ * the hardware to calculate the ip/tcp/udp checksum
+ */
+
+static inline void write_ip_start_end(struct ehea_swqe *swqe,
+				      const struct sk_buff *skb)
+{
+	swqe->ip_start = (u8)(((u64)skb->nh.iph) - ((u64)skb->data));
+	swqe->ip_end = (u8)(swqe->ip_start + skb->nh.iph->ihl * 4 - 1);
+}
+
+static inline void write_tcp_offset_end(struct ehea_swqe *swqe,
+					const struct sk_buff *skb)
+{
+	swqe->tcp_offset =
+		(u8)(swqe->ip_end + 1 + offsetof(struct tcphdr, check));
+
+	swqe->tcp_end = (u16)skb->len - 1;
+}
+
+static inline void write_udp_offset_end(struct ehea_swqe *swqe,
+					const struct sk_buff *skb)
+{
+	swqe->tcp_offset =
+		(u8)(swqe->ip_end + 1 + offsetof(struct udphdr, check));
+
+	swqe->tcp_end = (u16)skb->len - 1;
+}
+
+
+static void write_swqe2_TSO(struct sk_buff *skb,
+			    struct ehea_swqe *swqe, u32 lkey)
+{
+	struct ehea_vsgentry *sg1entry = &swqe->u.immdata_desc.sg_entry;
+	u8 *imm_data = &swqe->u.immdata_desc.immediate_data[0];
+	int skb_data_size = skb->len - skb->data_len;
+	int headersize;
+	u64 tmp_addr;
+
+	/* Packet is TCP with TSO enabled */
+	swqe->tx_control |= EHEA_SWQE_TSO;
+	swqe->mss = skb_shinfo(skb)->gso_size;
+	/* copy only eth/ip/tcp headers to immediate data and
+	 * the rest of skb->data to sg1entry
+	 */
+	headersize = ETH_HLEN + (skb->nh.iph->ihl * 4) + (skb->h.th->doff * 4);
+
+	skb_data_size = skb->len - skb->data_len;
+
+	if (skb_data_size >= headersize) {
+		/* copy immediate data */
+		memcpy(imm_data, skb->data, headersize);
+		swqe->immediate_data_length = headersize;
+
+		if (skb_data_size > headersize) {
+			/* set sg1entry data */
+			sg1entry->l_key = lkey;
+			sg1entry->len = skb_data_size - headersize;
+
+			tmp_addr = (u64)(skb->data + headersize);
+			sg1entry->vaddr = tmp_addr;
+			swqe->descriptors++;
+		}
+	} else
+		ehea_error("cannot handle fragmented headers");
+}
+
+static void write_swqe2_nonTSO(struct sk_buff *skb,
+			       struct ehea_swqe *swqe, u32 lkey)
+{
+	int skb_data_size = skb->len - skb->data_len;
+	u8 *imm_data = &swqe->u.immdata_desc.immediate_data[0];
+	struct ehea_vsgentry *sg1entry = &swqe->u.immdata_desc.sg_entry;
+	u64 tmp_addr;
+
+	/* Packet is any nonTSO type
+	 *
+	 * Copy as much as possible skb->data to immediate data and
+	 * the rest to sg1entry
+	 */
+	if (skb_data_size >= SWQE2_MAX_IMM) {
+		/* copy immediate data */
+		memcpy(imm_data, skb->data, SWQE2_MAX_IMM);
+
+		swqe->immediate_data_length = SWQE2_MAX_IMM;
+
+		if (skb_data_size > SWQE2_MAX_IMM) {
+			/* copy sg1entry data */
+			sg1entry->l_key = lkey;
+			sg1entry->len = skb_data_size - SWQE2_MAX_IMM;
+			tmp_addr = (u64)(skb->data + SWQE2_MAX_IMM);
+			sg1entry->vaddr = tmp_addr;
+			swqe->descriptors++;
+		}
+	} else {
+		memcpy(imm_data, skb->data, skb_data_size);
+		swqe->immediate_data_length = skb_data_size;
+	}
+}
+
+static inline void write_swqe2_data(struct sk_buff *skb, struct net_device *dev,
+				    struct ehea_swqe *swqe, u32 lkey)
+{
+	struct ehea_vsgentry *sg_list, *sg1entry, *sgentry;
+	skb_frag_t *frag;
+	int nfrags, sg1entry_contains_frag_data, i;
+	u64 tmp_addr;
+
+	nfrags = skb_shinfo(skb)->nr_frags;
+	sg1entry = &swqe->u.immdata_desc.sg_entry;
+	sg_list = (struct ehea_vsgentry*)&swqe->u.immdata_desc.sg_list;
+	swqe->descriptors = 0;
+	sg1entry_contains_frag_data = 0;
+
+	if ((dev->features & NETIF_F_TSO) && skb_shinfo(skb)->gso_size)
+		write_swqe2_TSO(skb, swqe, lkey);
+	else
+		write_swqe2_nonTSO(skb, swqe, lkey);
+
+	/* write descriptors */
+	if (nfrags > 0) {
+		if (swqe->descriptors == 0) {
+			/* sg1entry not yet used */
+			frag = &skb_shinfo(skb)->frags[0];
+
+			/* copy sg1entry data */
+			sg1entry->l_key = lkey;
+			sg1entry->len = frag->size;
+			tmp_addr =  (u64)(page_address(frag->page)
+					  + frag->page_offset);
+			sg1entry->vaddr = tmp_addr;
+			swqe->descriptors++;
+			sg1entry_contains_frag_data = 1;
+		}
+
+		for (i = sg1entry_contains_frag_data; i < nfrags; i++) {
+
+			frag = &skb_shinfo(skb)->frags[i];
+			sgentry = &sg_list[i - sg1entry_contains_frag_data];
+
+			sgentry->l_key = lkey;
+			sgentry->len = frag->size;
+
+			tmp_addr = (u64)(page_address(frag->page)
+					 + frag->page_offset);
+			sgentry->vaddr = tmp_addr;
+			swqe->descriptors++;
+		}
+	}
+}
+
+static int ehea_broadcast_reg_helper(struct ehea_port *port, u32 hcallid)
+{
+	int ret = 0;
+	u64 hret;
+	u8 reg_type;
+
+	/* De/Register untagged packets */
+	reg_type = EHEA_BCMC_BROADCAST | EHEA_BCMC_UNTAGGED;
+	hret = ehea_h_reg_dereg_bcmc(port->adapter->handle,
+				     port->logical_port_id,
+				     reg_type, port->mac_addr, 0, hcallid);
+	if (hret != H_SUCCESS) {
+		ehea_error("reg_dereg_bcmc failed (tagged)");
+		ret = -EIO;
+		goto out_herr;
+	}
+
+	/* De/Register VLAN packets */
+	reg_type = EHEA_BCMC_BROADCAST | EHEA_BCMC_VLANID_ALL;
+	hret = ehea_h_reg_dereg_bcmc(port->adapter->handle,
+				     port->logical_port_id,
+				     reg_type, port->mac_addr, 0, hcallid);
+	if (hret != H_SUCCESS) {
+		ehea_error("reg_dereg_bcmc failed (vlan)");
+		ret = -EIO;
+	}
+out_herr:
+	return ret;
+}
+
+static int ehea_set_mac_addr(struct net_device *dev, void *sa)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct sockaddr *mac_addr = sa;
+	struct hcp_ehea_port_cb0 *cb0;
+	int ret;
+	u64 hret;
+
+	if (!is_valid_ether_addr(mac_addr->sa_data)) {
+		ret = -EADDRNOTAVAIL;
+		goto out;
+	}
+
+	cb0 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb0) {
+		ehea_error("no mem for cb0");
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	memcpy(&(cb0->port_mac_addr), &(mac_addr->sa_data[0]), ETH_ALEN);
+
+	cb0->port_mac_addr = cb0->port_mac_addr >> 16;
+
+	hret = ehea_h_modify_ehea_port(port->adapter->handle,
+				       port->logical_port_id, H_PORT_CB0,
+				       EHEA_BMASK_SET(H_PORT_CB0_MAC, 1), cb0);
+	if (hret != H_SUCCESS) {
+		ret = -EIO;
+		goto out_free;
+	}
+
+	memcpy(dev->dev_addr, mac_addr->sa_data, dev->addr_len);
+
+	/* Deregister old MAC in pHYP */
+	ret = ehea_broadcast_reg_helper(port, H_DEREG_BCMC);
+	if (ret)
+		goto out_free;
+
+	port->mac_addr = cb0->port_mac_addr << 16;
+
+	/* Register new MAC in pHYP */
+	ret = ehea_broadcast_reg_helper(port, H_REG_BCMC);
+	if (ret)
+		goto out_free;
+
+	ret = 0;
+out_free:
+	kfree(cb0);
+out:
+	return ret;
+}
+
+static void ehea_promiscuous_error(u64 hret, int enable)
+{
+	ehea_info("Hypervisor denied %sabling promiscuous mode.%s",
+		  enable == 1 ? "en" : "dis",
+		  hret != H_AUTHORITY ? "" : " Another partition owning a "
+		  "logical port on the same physical port might have altered "
+		  "promiscuous mode first.");
+}
+
+static void ehea_promiscuous(struct net_device *dev, int enable)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct hcp_ehea_port_cb7 *cb7;
+	u64 hret;
+
+	if ((enable && port->promisc) || (!enable && !port->promisc))
+		return;
+
+	cb7 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb7) {
+		ehea_error("no mem for cb7");
+		goto out;
+	}
+
+	/* Modify Pxs_DUCQPN in CB7 */
+	cb7->def_uc_qpn = enable == 1 ? port->port_res[0].qp->fw_handle : 0;
+
+	hret = ehea_h_modify_ehea_port(port->adapter->handle,
+				       port->logical_port_id,
+				       H_PORT_CB7, H_PORT_CB7_DUCQPN, cb7);
+	if (hret) {
+		ehea_promiscuous_error(hret, enable);
+		goto out;
+	}
+
+	port->promisc = enable;
+out:
+	kfree(cb7);
+	return;
+}
+
+static u64 ehea_multicast_reg_helper(struct ehea_port *port, u64 mc_mac_addr,
+				     u32 hcallid)
+{
+	u64 hret;
+	u8 reg_type;
+
+	reg_type = EHEA_BCMC_SCOPE_ALL | EHEA_BCMC_MULTICAST
+		 | EHEA_BCMC_UNTAGGED;
+
+	hret = ehea_h_reg_dereg_bcmc(port->adapter->handle,
+				     port->logical_port_id,
+				     reg_type, mc_mac_addr, 0, hcallid);
+	if (hret)
+		goto out;
+
+	reg_type = EHEA_BCMC_SCOPE_ALL | EHEA_BCMC_MULTICAST
+		 | EHEA_BCMC_VLANID_ALL;
+
+	hret = ehea_h_reg_dereg_bcmc(port->adapter->handle,
+				     port->logical_port_id,
+				     reg_type, mc_mac_addr, 0, hcallid);
+out:
+	return hret;
+}
+
+static int ehea_drop_multicast_list(struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_mc_list *mc_entry = port->mc_list;
+	struct list_head *pos;
+	struct list_head *temp;
+	int ret = 0;
+	u64 hret;
+
+	list_for_each_safe(pos, temp, &(port->mc_list->list)) {
+		mc_entry = list_entry(pos, struct ehea_mc_list, list);
+
+		hret = ehea_multicast_reg_helper(port, mc_entry->macaddr,
+						 H_DEREG_BCMC);
+		if (hret) {
+			ehea_error("failed deregistering mcast MAC");
+			ret = -EIO;
+		}
+
+		list_del(pos);
+		kfree(mc_entry);
+	}
+	return ret;
+}
+
+static void ehea_allmulti(struct net_device *dev, int enable)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	u64 hret;
+
+	if (!port->allmulti) {
+		if (enable) {
+			/* Enable ALLMULTI */
+			ehea_drop_multicast_list(dev);
+			hret = ehea_multicast_reg_helper(port, 0, H_REG_BCMC);
+			if (!hret)
+				port->allmulti = 1;
+			else
+				ehea_error("failed enabling IFF_ALLMULTI");
+		}
+	} else
+		if (!enable) {
+			/* Disable ALLMULTI */
+			hret = ehea_multicast_reg_helper(port, 0, H_DEREG_BCMC);
+			if (!hret)
+				port->allmulti = 0;
+			else
+				ehea_error("failed disabling IFF_ALLMULTI");
+		}
+}
+
+static void ehea_add_multicast_entry(struct ehea_port* port, u8* mc_mac_addr)
+{
+	struct ehea_mc_list *ehea_mcl_entry;
+	u64 hret;
+
+	ehea_mcl_entry = kzalloc(sizeof(*ehea_mcl_entry), GFP_KERNEL);
+	if (!ehea_mcl_entry) {
+		ehea_error("no mem for mcl_entry");
+		return;
+	}
+
+	INIT_LIST_HEAD(&ehea_mcl_entry->list);
+
+	memcpy(&ehea_mcl_entry->macaddr, mc_mac_addr, ETH_ALEN);
+
+	hret = ehea_multicast_reg_helper(port, ehea_mcl_entry->macaddr,
+					 H_REG_BCMC);
+	if (!hret)
+		list_add(&ehea_mcl_entry->list, &port->mc_list->list);
+	else {
+		ehea_error("failed registering mcast MAC");
+		kfree(ehea_mcl_entry);
+	}
+}
+
+static void ehea_set_multicast_list(struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct dev_mc_list *k_mcl_entry;
+	int ret, i;
+
+	if (dev->flags & IFF_PROMISC) {
+		ehea_promiscuous(dev, 1);
+		return;
+	}
+	ehea_promiscuous(dev, 0);
+
+	if (dev->flags & IFF_ALLMULTI) {
+		ehea_allmulti(dev, 1);
+		return;
+	}
+	ehea_allmulti(dev, 0);
+
+	if (dev->mc_count) {
+		ret = ehea_drop_multicast_list(dev);
+		if (ret) {
+			/* Dropping the current multicast list failed.
+			 * Enabling ALL_MULTI is the best we can do.
+			 */
+			ehea_allmulti(dev, 1);
+		}
+
+		if (dev->mc_count > port->adapter->max_mc_mac) {
+			ehea_info("Mcast registration limit reached (0x%lx). "
+				  "Use ALLMULTI!",
+				  port->adapter->max_mc_mac);
+			goto out;
+		}
+
+		for (i = 0, k_mcl_entry = dev->mc_list;
+		     i < dev->mc_count;
+		     i++, k_mcl_entry = k_mcl_entry->next) {
+			ehea_add_multicast_entry(port, k_mcl_entry->dmi_addr);
+		}
+	}
+out:
+	return;
+}
+
+static int ehea_change_mtu(struct net_device *dev, int new_mtu)
+{
+	if ((new_mtu < 68) || (new_mtu > EHEA_MAX_PACKET_SIZE))
+		return -EINVAL;
+	dev->mtu = new_mtu;
+	return 0;
+}
+
+static void ehea_xmit2(struct sk_buff *skb, struct net_device *dev,
+		       struct ehea_swqe *swqe, u32 lkey)
+{
+	if (skb->protocol == htons(ETH_P_IP)) {
+		/* IPv4 */
+		swqe->tx_control |= EHEA_SWQE_CRC
+				 | EHEA_SWQE_IP_CHECKSUM
+				 | EHEA_SWQE_TCP_CHECKSUM
+				 | EHEA_SWQE_IMM_DATA_PRESENT
+				 | EHEA_SWQE_DESCRIPTORS_PRESENT;
+
+		write_ip_start_end(swqe, skb);
+
+		if (skb->nh.iph->protocol == IPPROTO_UDP) {
+			if ((skb->nh.iph->frag_off & IP_MF) ||
+			    (skb->nh.iph->frag_off & IP_OFFSET))
+				/* IP fragment, so don't change cs */
+				swqe->tx_control &= ~EHEA_SWQE_TCP_CHECKSUM;
+			else
+				write_udp_offset_end(swqe, skb);
+
+		} else if (skb->nh.iph->protocol == IPPROTO_TCP) {
+			write_tcp_offset_end(swqe, skb);
+		}
+
+		/* icmp (big data) and ip segmentation packets (all other ip
+		   packets) do not require any special handling */
+
+	} else {
+		/* Other Ethernet Protocol */
+		swqe->tx_control |= EHEA_SWQE_CRC
+				 | EHEA_SWQE_IMM_DATA_PRESENT
+				 | EHEA_SWQE_DESCRIPTORS_PRESENT;
+	}
+
+	write_swqe2_data(skb, dev, swqe, lkey);
+}
+
+static void ehea_xmit3(struct sk_buff *skb, struct net_device *dev,
+		       struct ehea_swqe *swqe)
+{
+	int nfrags = skb_shinfo(skb)->nr_frags;
+	u8 *imm_data = &swqe->u.immdata_nodesc.immediate_data[0];
+	skb_frag_t *frag;
+	int i;
+
+	if (skb->protocol == htons(ETH_P_IP)) {
+		/* IPv4 */
+		write_ip_start_end(swqe, skb);
+
+		if (skb->nh.iph->protocol == IPPROTO_TCP) {
+			swqe->tx_control |= EHEA_SWQE_CRC
+					 | EHEA_SWQE_IP_CHECKSUM
+					 | EHEA_SWQE_TCP_CHECKSUM
+					 | EHEA_SWQE_IMM_DATA_PRESENT;
+
+			write_tcp_offset_end(swqe, skb);
+
+		} else if (skb->nh.iph->protocol == IPPROTO_UDP) {
+			if ((skb->nh.iph->frag_off & IP_MF) ||
+			    (skb->nh.iph->frag_off & IP_OFFSET))
+				/* IP fragment, so don't change cs */
+				swqe->tx_control |= EHEA_SWQE_CRC
+						 | EHEA_SWQE_IMM_DATA_PRESENT;
+			else {
+				swqe->tx_control |= EHEA_SWQE_CRC
+						 | EHEA_SWQE_IP_CHECKSUM
+						 | EHEA_SWQE_TCP_CHECKSUM
+						 | EHEA_SWQE_IMM_DATA_PRESENT;
+
+				write_udp_offset_end(swqe, skb);
+			}
+		} else {
+			/* icmp (big data) and
+			   ip segmentation packets (all other ip packets) */
+			swqe->tx_control |= EHEA_SWQE_CRC
+					 | EHEA_SWQE_IP_CHECKSUM
+					 | EHEA_SWQE_IMM_DATA_PRESENT;
+		}
+	} else {
+		/* Other Ethernet Protocol */
+		swqe->tx_control |= EHEA_SWQE_CRC | EHEA_SWQE_IMM_DATA_PRESENT;
+	}
+	/* copy (immediate) data */
+	if (nfrags == 0) {
+		/* data is in a single piece */
+		memcpy(imm_data, skb->data, skb->len);
+	} else {
+		/* first copy data from the skb->data buffer ... */
+		memcpy(imm_data, skb->data, skb->len - skb->data_len);
+		imm_data += skb->len - skb->data_len;
+
+		/* ... then copy data from the fragments */
+		for (i = 0; i < nfrags; i++) {
+			frag = &skb_shinfo(skb)->frags[i];
+			memcpy(imm_data,
+			       page_address(frag->page) + frag->page_offset,
+			       frag->size);
+			imm_data += frag->size;
+		}
+	}
+	swqe->immediate_data_length = skb->len;
+	dev_kfree_skb(skb);
+}
+
+static int ehea_start_xmit(struct sk_buff *skb, struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_swqe *swqe;
+	unsigned long flags;
+	u32 lkey;
+	int swqe_index;
+	struct ehea_port_res *pr = &port->port_res[0];
+
+	spin_lock(&pr->xmit_lock);
+
+	swqe = ehea_get_swqe(pr->qp, &swqe_index);
+	memset(swqe, 0, SWQE_HEADER_SIZE);
+	atomic_dec(&pr->swqe_avail);
+
+	if (skb->len <= SWQE3_MAX_IMM) {
+		u32 sig_iv = port->sig_comp_iv;
+		u32 swqe_num = pr->swqe_id_counter;
+		ehea_xmit3(skb, dev, swqe);
+		swqe->wr_id = EHEA_BMASK_SET(EHEA_WR_ID_TYPE, EHEA_SWQE3_TYPE)
+			| EHEA_BMASK_SET(EHEA_WR_ID_COUNT, swqe_num);
+		if (pr->swqe_ll_count >= (sig_iv - 1)) {
+			swqe->wr_id |= EHEA_BMASK_SET(EHEA_WR_ID_REFILL,
+						      sig_iv);
+			swqe->tx_control |= EHEA_SWQE_SIGNALLED_COMPLETION;
+			pr->swqe_ll_count = 0;
+		} else
+			pr->swqe_ll_count += 1;
+	} else {
+		swqe->wr_id =
+			EHEA_BMASK_SET(EHEA_WR_ID_TYPE, EHEA_SWQE2_TYPE)
+		      | EHEA_BMASK_SET(EHEA_WR_ID_COUNT, pr->swqe_id_counter)
+		      | EHEA_BMASK_SET(EHEA_WR_ID_INDEX, pr->sq_skba.index);
+		pr->sq_skba.arr[pr->sq_skba.index] = skb;
+
+		pr->sq_skba.index++;
+		pr->sq_skba.index &= (pr->sq_skba.len - 1);
+
+		lkey = pr->send_mr.lkey;
+		ehea_xmit2(skb, dev, swqe, lkey);
+
+		if (pr->swqe_count >= (EHEA_SIG_IV_LONG - 1)) {
+			swqe->wr_id |= EHEA_BMASK_SET(EHEA_WR_ID_REFILL,
+						      EHEA_SIG_IV_LONG);
+			swqe->tx_control |= EHEA_SWQE_SIGNALLED_COMPLETION;
+			pr->swqe_count = 0;
+		} else
+			pr->swqe_count += 1;
+	}
+	pr->swqe_id_counter += 1;
+
+	if (port->vgrp && vlan_tx_tag_present(skb)) {
+		swqe->tx_control |= EHEA_SWQE_VLAN_INSERT;
+		swqe->vlan_tag = vlan_tx_tag_get(skb);
+	}
+
+	if (netif_msg_tx_queued(port)) {
+		ehea_info("post swqe on QP %d", pr->qp->init_attr.qp_nr);
+		ehea_dump(swqe, sizeof(*swqe), "swqe");
+	}
+
+	ehea_post_swqe(pr->qp, swqe);
+	pr->tx_packets++;
+
+	if (unlikely(atomic_read(&pr->swqe_avail) <= 1)) {
+		spin_lock_irqsave(&pr->netif_queue, flags);
+		if (unlikely(atomic_read(&pr->swqe_avail) <= 1)) {
+			netif_stop_queue(dev);
+			pr->queue_stopped = 1;
+		}
+		spin_unlock_irqrestore(&pr->netif_queue, flags);
+	}
+	dev->trans_start = jiffies;
+	spin_unlock(&pr->xmit_lock);
+
+	return NETDEV_TX_OK;
+}
+
+static void ehea_vlan_rx_register(struct net_device *dev,
+				  struct vlan_group *grp)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_adapter *adapter = port->adapter;
+	struct hcp_ehea_port_cb1 *cb1;
+	u64 hret;
+
+	port->vgrp = grp;
+
+	cb1 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb1) {
+		ehea_error("no mem for cb1");
+		goto out;
+	}
+
+	if (grp)
+		memset(cb1->vlan_filter, 0, sizeof(cb1->vlan_filter));
+	else
+		memset(cb1->vlan_filter, 0xFF, sizeof(cb1->vlan_filter));
+
+	hret = ehea_h_modify_ehea_port(adapter->handle, port->logical_port_id,
+				       H_PORT_CB1, H_PORT_CB1_ALL, cb1);
+	if (hret != H_SUCCESS)
+		ehea_error("modify_ehea_port failed");
+
+	kfree(cb1);
+out:
+	return;
+}
+
+static void ehea_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_adapter *adapter = port->adapter;
+	struct hcp_ehea_port_cb1 *cb1;
+	int index;
+	u64 hret;
+
+	cb1 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb1) {
+		ehea_error("no mem for cb1");
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea_port(adapter->handle, port->logical_port_id,
+				      H_PORT_CB1, H_PORT_CB1_ALL, cb1);
+	if (hret != H_SUCCESS) {
+		ehea_error("query_ehea_port failed");
+		goto out;
+	}
+
+	index = (vid / 64);
+	cb1->vlan_filter[index] |= ((u64)(1 << (vid & 0x3F)));
+
+	hret = ehea_h_modify_ehea_port(adapter->handle, port->logical_port_id,
+				       H_PORT_CB1, H_PORT_CB1_ALL, cb1);
+	if (hret != H_SUCCESS)
+		ehea_error("modify_ehea_port failed");
+out:
+	kfree(cb1);
+	return;
+}
+
+static void ehea_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
+{
+	struct ehea_port *port = netdev_priv(dev);
+	struct ehea_adapter *adapter = port->adapter;
+	struct hcp_ehea_port_cb1 *cb1;
+	int index;
+	u64 hret;
+
+	if (port->vgrp)
+		port->vgrp->vlan_devices[vid] = NULL;
+
+	cb1 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb1) {
+		ehea_error("no mem for cb1");
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea_port(adapter->handle, port->logical_port_id,
+				      H_PORT_CB1, H_PORT_CB1_ALL, cb1);
+	if (hret != H_SUCCESS) {
+		ehea_error("query_ehea_port failed");
+		goto out;
+	}
+
+	index = (vid / 64);
+	cb1->vlan_filter[index] &= ~((u64)(1 << (vid & 0x3F)));
+
+	hret = ehea_h_modify_ehea_port(adapter->handle, port->logical_port_id,
+				       H_PORT_CB1, H_PORT_CB1_ALL, cb1);
+	if (hret != H_SUCCESS)
+		ehea_error("modify_ehea_port failed");
+out:
+	kfree(cb1);
+	return;
+}
+
+int ehea_activate_qp(struct ehea_adapter *adapter, struct ehea_qp *qp)
+{
+	int ret = -EIO;
+	u64 hret;
+	u16 dummy16 = 0;
+	u64 dummy64 = 0;
+	struct hcp_modify_qp_cb0* cb0;
+
+	cb0 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb0) {
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle,
+				    EHEA_BMASK_SET(H_QPCB0_ALL, 0xFFFF), cb0);
+	if (hret != H_SUCCESS) {
+		ehea_error("query_ehea_qp failed (1)");
+		goto out;
+	}
+
+	cb0->qp_ctl_reg = H_QP_CR_STATE_INITIALIZED;
+	hret = ehea_h_modify_ehea_qp(adapter->handle, 0, qp->fw_handle,
+				     EHEA_BMASK_SET(H_QPCB0_QP_CTL_REG, 1), cb0,
+				     &dummy64, &dummy64, &dummy16, &dummy16);
+	if (hret != H_SUCCESS) {
+		ehea_error("modify_ehea_qp failed (1)");
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle,
+				    EHEA_BMASK_SET(H_QPCB0_ALL, 0xFFFF), cb0);
+	if (hret != H_SUCCESS) {
+		ehea_error("query_ehea_qp failed (2)");
+		goto out;
+	}
+
+	cb0->qp_ctl_reg = H_QP_CR_ENABLED | H_QP_CR_STATE_INITIALIZED;
+	hret = ehea_h_modify_ehea_qp(adapter->handle, 0, qp->fw_handle,
+				     EHEA_BMASK_SET(H_QPCB0_QP_CTL_REG, 1), cb0,
+				     &dummy64, &dummy64, &dummy16, &dummy16);
+	if (hret != H_SUCCESS) {
+		ehea_error("modify_ehea_qp failed (2)");
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle,
+				    EHEA_BMASK_SET(H_QPCB0_ALL, 0xFFFF), cb0);
+	if (hret != H_SUCCESS) {
+		ehea_error("query_ehea_qp failed (3)");
+		goto out;
+	}
+
+	cb0->qp_ctl_reg = H_QP_CR_ENABLED | H_QP_CR_STATE_RDY2SND;
+	hret = ehea_h_modify_ehea_qp(adapter->handle, 0, qp->fw_handle,
+				     EHEA_BMASK_SET(H_QPCB0_QP_CTL_REG, 1), cb0,
+				     &dummy64, &dummy64, &dummy16, &dummy16);
+	if (hret != H_SUCCESS) {
+		ehea_error("modify_ehea_qp failed (3)");
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle,
+				    EHEA_BMASK_SET(H_QPCB0_ALL, 0xFFFF), cb0);
+	if (hret != H_SUCCESS) {
+		ehea_error("query_ehea_qp failed (4)");
+		goto out;
+	}
+
+	ret = 0;
+out:
+	kfree(cb0);
+	return ret;
+}
+
+static int ehea_port_res_setup(struct ehea_port *port, int def_qps,
+			       int add_tx_qps)
+{
+	int ret, i;
+	struct port_res_cfg pr_cfg, pr_cfg_small_rx;
+	enum ehea_eq_type eq_type = EHEA_EQ;
+
+	port->qp_eq = ehea_create_eq(port->adapter, eq_type,
+				   EHEA_MAX_ENTRIES_EQ, 1);
+	if (!port->qp_eq) {
+		ret = -EINVAL;
+		ehea_error("ehea_create_eq failed (qp_eq)");
+		goto out_kill_eq;
+	}
+
+	pr_cfg.max_entries_rcq = rq1_entries + rq2_entries + rq3_entries;
+	pr_cfg.max_entries_scq = sq_entries;
+	pr_cfg.max_entries_sq = sq_entries;
+	pr_cfg.max_entries_rq1 = rq1_entries;
+	pr_cfg.max_entries_rq2 = rq2_entries;
+	pr_cfg.max_entries_rq3 = rq3_entries;
+
+	pr_cfg_small_rx.max_entries_rcq = 1;
+	pr_cfg_small_rx.max_entries_scq = sq_entries;
+	pr_cfg_small_rx.max_entries_sq = sq_entries;
+	pr_cfg_small_rx.max_entries_rq1 = 1;
+	pr_cfg_small_rx.max_entries_rq2 = 1;
+	pr_cfg_small_rx.max_entries_rq3 = 1;
+
+	for (i = 0; i < def_qps; i++) {
+		ret = ehea_init_port_res(port, &port->port_res[i], &pr_cfg, i);
+		if (ret)
+			goto out_clean_pr;
+	}
+	for (i = def_qps; i < def_qps + add_tx_qps; i++) {
+		ret = ehea_init_port_res(port, &port->port_res[i],
+					 &pr_cfg_small_rx, i);
+		if (ret)
+			goto out_clean_pr;
+	}
+
+	return 0;
+
+out_clean_pr:
+	while (--i >= 0)
+		ehea_clean_portres(port, &port->port_res[i]);
+
+out_kill_eq:
+	ehea_destroy_eq(port->qp_eq);
+	return ret;
+}
+
+static int ehea_clean_all_portres(struct ehea_port *port)
+{
+	int ret = 0;
+	int i;
+
+	for(i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++)
+		ret |= ehea_clean_portres(port, &port->port_res[i]);
+
+	ret |= ehea_destroy_eq(port->qp_eq);
+
+	return ret;
+}
+
+static int ehea_up(struct net_device *dev)
+{
+	int ret, i;
+	struct ehea_port *port = netdev_priv(dev);
+	u64 mac_addr = 0;
+
+	if (port->state == EHEA_PORT_UP)
+		return 0;
+
+	ret = ehea_port_res_setup(port, port->num_def_qps,
+				  port->num_add_tx_qps);
+	if (ret) {
+		ehea_error("port_res_failed");
+		goto out;
+	}
+
+	/* Set default QP for this port */
+	ret = ehea_configure_port(port);
+	if (ret) {
+		ehea_error("ehea_configure_port failed. ret:%d", ret);
+		goto out_clean_pr;
+	}
+
+	ret = ehea_broadcast_reg_helper(port, H_REG_BCMC);
+	if (ret) {
+		ret = -EIO;
+		ehea_error("out_clean_pr");
+		goto out_clean_pr;
+	}
+	mac_addr = (*(u64*)dev->dev_addr) >> 16;
+
+	ret = ehea_reg_interrupts(dev);
+	if (ret) {
+		ehea_error("out_dereg_bc");
+		goto out_dereg_bc;
+	}
+
+	for(i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
+		ret = ehea_activate_qp(port->adapter, port->port_res[i].qp);
+		if (ret) {
+			ehea_error("activate_qp failed");
+			goto out_free_irqs;
+		}
+	}
+
+	for(i = 0; i < port->num_def_qps; i++) {
+		ret = ehea_fill_port_res(&port->port_res[i]);
+		if (ret) {
+			ehea_error("out_free_irqs");
+			goto out_free_irqs;
+		}
+	}
+
+	ret = 0;
+	port->state = EHEA_PORT_UP;
+	goto out;
+
+out_free_irqs:
+	ehea_free_interrupts(dev);
+
+out_dereg_bc:
+	ehea_broadcast_reg_helper(port, H_DEREG_BCMC);
+
+out_clean_pr:
+	ehea_clean_all_portres(port);
+out:
+	return ret;
+}
+
+static int ehea_open(struct net_device *dev)
+{
+	int ret;
+	struct ehea_port *port = netdev_priv(dev);
+
+	down(&port->port_lock);
+
+	if (netif_msg_ifup(port))
+		ehea_info("enabling port %s", dev->name);
+
+	ret = ehea_up(dev);
+	if (!ret)
+		netif_start_queue(dev);
+
+	up(&port->port_lock);
+
+	return ret;
+}
+
+static int ehea_down(struct net_device *dev)
+{
+	int ret, i;
+	struct ehea_port *port = netdev_priv(dev);
+
+	if (port->state == EHEA_PORT_DOWN)
+		return 0;
+
+	ehea_drop_multicast_list(dev);
+	ehea_free_interrupts(dev);
+
+	for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++)
+		tasklet_kill(&port->port_res[i].send_comp_task);
+
+	ehea_broadcast_reg_helper(port, H_DEREG_BCMC);
+	ret = ehea_clean_all_portres(port);
+	port->state = EHEA_PORT_DOWN;
+	return ret;
+}
+
+static int ehea_stop(struct net_device *dev)
+{
+	int ret;
+	struct ehea_port *port = netdev_priv(dev);
+
+	if (netif_msg_ifdown(port))
+		ehea_info("disabling port %s", dev->name);
+
+	flush_workqueue(port->adapter->ehea_wq);
+	down(&port->port_lock);
+	netif_stop_queue(dev);
+	ret = ehea_down(dev);
+	up(&port->port_lock);
+	return ret;
+}
+
+static void ehea_reset_port(void *data)
+{
+	int ret;
+	struct net_device *dev = data;
+	struct ehea_port *port = netdev_priv(dev);
+
+	port->resets++;
+	down(&port->port_lock);
+	netif_stop_queue(dev);
+	netif_poll_disable(dev);
+
+	ret = ehea_down(dev);
+	if (ret)
+		ehea_error("ehea_down failed. not all resources are freed");
+
+	ret = ehea_up(dev);
+	if (ret) {
+		ehea_error("Reset device %s failed: ret=%d", dev->name, ret);
+		goto out;
+	}
+
+	if (netif_msg_timer(port))
+		ehea_info("Device %s resetted successfully", dev->name);
+
+	netif_poll_enable(dev);
+	netif_wake_queue(dev);
+out:
+	up(&port->port_lock);
+	return;
+}
+
+static void ehea_tx_watchdog(struct net_device *dev)
+{
+	struct ehea_port *port = netdev_priv(dev);
+
+	if (netif_carrier_ok(dev))
+		queue_work(port->adapter->ehea_wq, &port->reset_task);
+}
+
+int ehea_sense_adapter_attr(struct ehea_adapter *adapter)
+{
+	struct hcp_query_ehea *cb;
+	u64 hret;
+	int ret;
+
+	cb = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb) {
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	hret = ehea_h_query_ehea(adapter->handle, cb);
+
+	if (hret != H_SUCCESS) {
+		ret = -EIO;
+		goto out_herr;
+	}
+
+	adapter->num_ports = cb->num_ports;
+	adapter->max_mc_mac = cb->max_mc_mac - 1;
+	ret = 0;
+
+out_herr:
+	kfree(cb);
+out:
+	return ret;
+}
+
+static int ehea_setup_single_port(struct ehea_port *port,
+				  struct device_node *dn)
+{
+	int ret;
+	u64 hret;
+	struct net_device *dev = port->netdev;
+	struct ehea_adapter *adapter = port->adapter;
+	struct hcp_ehea_port_cb4 *cb4;
+	u32 *dn_log_port_id;
+
+	sema_init(&port->port_lock, 1);
+	port->state = EHEA_PORT_DOWN;
+	port->sig_comp_iv = sq_entries / 10;
+
+	if (!dn) {
+		ehea_error("bad device node: dn=%p", dn);
+		ret = -EINVAL;
+		goto out;
+	}
+
+	port->of_dev_node = dn;
+
+	/* Determine logical port id */
+	dn_log_port_id = (u32*)get_property(dn, "ibm,hea-port-no", NULL);
+
+	if (!dn_log_port_id) {
+		ehea_error("bad device node: dn_log_port_id=%p",
+			   dn_log_port_id);
+		ret = -EINVAL;
+		goto out;
+	}
+	port->logical_port_id = *dn_log_port_id;
+
+	port->mc_list = kzalloc(sizeof(struct ehea_mc_list), GFP_KERNEL);
+	if (!port->mc_list) {
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	INIT_LIST_HEAD(&port->mc_list->list);
+
+	ehea_set_portspeed(port, EHEA_SPEED_AUTONEG);
+
+	ret = ehea_sense_port_attr(port);
+	if (ret)
+		goto out;
+
+	/* Enable Jumbo frames */
+	cb4 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
+	if (!cb4) {
+		ehea_error("no mem for cb4");
+	} else {
+		cb4->jumbo_frame = 1;
+		hret = ehea_h_modify_ehea_port(adapter->handle,
+					       port->logical_port_id,
+					       H_PORT_CB4, H_PORT_CB4_JUMBO,
+					       cb4);
+		if (hret != H_SUCCESS) {
+			ehea_info("Jumbo frames not activated");
+		}
+		kfree(cb4);
+	}
+
+	/* initialize net_device structure */
+	SET_MODULE_OWNER(dev);
+
+	memcpy(dev->dev_addr, &port->mac_addr, ETH_ALEN);
+
+	dev->open = ehea_open;
+	dev->poll = ehea_poll;
+	dev->weight = 64;
+	dev->stop = ehea_stop;
+	dev->hard_start_xmit = ehea_start_xmit;
+	dev->get_stats = ehea_get_stats;
+	dev->set_multicast_list = ehea_set_multicast_list;
+	dev->set_mac_address = ehea_set_mac_addr;
+	dev->change_mtu = ehea_change_mtu;
+	dev->vlan_rx_register = ehea_vlan_rx_register;
+	dev->vlan_rx_add_vid = ehea_vlan_rx_add_vid;
+	dev->vlan_rx_kill_vid = ehea_vlan_rx_kill_vid;
+	dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO
+		      | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | NETIF_F_HW_VLAN_TX
+		      | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER
+		      | NETIF_F_LLTX;
+	dev->tx_timeout = &ehea_tx_watchdog;
+	dev->watchdog_timeo = EHEA_WATCH_DOG_TIMEOUT;
+
+	INIT_WORK(&port->reset_task, ehea_reset_port, dev);
+
+	ehea_set_ethtool_ops(dev);
+
+	ret = register_netdev(dev);
+	if (ret) {
+		ehea_error("register_netdev failed. ret=%d", ret);
+		goto out_free;
+	}
+
+	port->netdev = dev;
+	ret = 0;
+	goto out;
+
+out_free:
+	kfree(port->mc_list);
+out:
+	return ret;
+}
+
+static int ehea_setup_ports(struct ehea_adapter *adapter)
+{
+	int ret;
+	int port_setup_ok = 0;
+	struct ehea_port *port;
+	struct device_node *dn = NULL;
+	struct net_device *dev;
+	int i;
+
+	/* get port properties for all ports */
+	for (i = 0; i < adapter->num_ports; i++) {
+
+		if (adapter->port[i])
+			continue;	/* port already up and running */
+
+		/* allocate memory for the port structures */
+		dev = alloc_etherdev(sizeof(struct ehea_port));
+
+		if (!dev) {
+			ehea_error("no mem for net_device");
+			break;
+		}
+
+		port = netdev_priv(dev);
+		port->adapter = adapter;
+		port->netdev = dev;
+		adapter->port[i] = port;
+		port->msg_enable = netif_msg_init(msg_level, EHEA_MSG_DEFAULT);
+
+		dn = of_find_node_by_name(dn, "ethernet");
+		ret = ehea_setup_single_port(port, dn);
+		if (ret) {
+			/* Free mem for this port struct. The others will be
+			   processed on rollback */
+			free_netdev(dev);
+			adapter->port[i] = NULL;
+			ehea_error("eHEA port %d setup failed, ret=%d", i, ret);
+		}
+	}
+
+	of_node_put(dn);
+
+	/* Check for succesfully set up ports */
+	for (i = 0; i < adapter->num_ports; i++)
+		if (adapter->port[i])
+			port_setup_ok++;
+
+	if (port_setup_ok)
+		ret = 0;	/* At least some ports are setup correctly */
+	else
+		ret = -EINVAL;
+
+	return ret;
+}
+
+static int __devinit ehea_probe(struct ibmebus_dev *dev,
+				const struct of_device_id *id)
+{
+	struct ehea_adapter *adapter;
+	u64 *adapter_handle;
+	int ret;
+
+	adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
+	if (!adapter) {
+		ret = -ENOMEM;
+		dev_err(&dev->ofdev.dev, "no mem for ehea_adapter\n");
+		goto out;
+	}
+
+	adapter_handle = (u64*)get_property(dev->ofdev.node, "ibm,hea-handle",
+					    NULL);
+	if (!adapter_handle) {
+		dev_err(&dev->ofdev.dev, "failed getting handle for adapter"
+			" '%s'\n", dev->ofdev.node->full_name);
+		ret = -ENODEV;
+		goto out_free_ad;
+	}
+
+	adapter->handle = *adapter_handle;
+	adapter->pd = EHEA_PD_ID;
+
+	dev->ofdev.dev.driver_data = adapter;
+
+	ret = ehea_reg_mr_adapter(adapter);
+	if (ret) {
+		dev_err(&dev->ofdev.dev, "reg_mr_adapter failed\n");
+		goto out_free_ad;
+	}
+
+	/* initialize adapter and ports */
+	/* get adapter properties */
+	ret = ehea_sense_adapter_attr(adapter);
+	if (ret) {
+		dev_err(&dev->ofdev.dev, "sense_adapter_attr failed: %d", ret);
+		goto out_free_res;
+	}
+	dev_info(&dev->ofdev.dev, "%d eHEA ports found\n", adapter->num_ports);
+
+	adapter->neq = ehea_create_eq(adapter,
+				      EHEA_NEQ, EHEA_MAX_ENTRIES_EQ, 1);
+	if (!adapter->neq) {
+		dev_err(&dev->ofdev.dev, "NEQ creation failed");
+		goto out_free_res;
+	}
+
+	tasklet_init(&adapter->neq_tasklet, ehea_neq_tasklet,
+		     (unsigned long)adapter);
+
+	ret = ibmebus_request_irq(NULL, adapter->neq->attr.ist1,
+				  ehea_interrupt_neq, SA_INTERRUPT,
+				  "ehea_neq", adapter);
+	if (ret) {
+		dev_err(&dev->ofdev.dev, "requesting NEQ IRQ failed");
+		goto out_kill_eq;
+	}
+
+	adapter->ehea_wq = create_workqueue("ehea_wq");
+	if (!adapter->ehea_wq)
+		goto out_free_irq;
+
+	ret = ehea_setup_ports(adapter);
+	if (ret) {
+		dev_err(&dev->ofdev.dev, "setup_ports failed");
+		goto out_kill_wq;
+	}
+
+	ret = 0;
+	goto out;
+
+out_kill_wq:
+	destroy_workqueue(adapter->ehea_wq);
+
+out_free_irq:
+	ibmebus_free_irq(NULL, adapter->neq->attr.ist1, adapter);
+
+out_kill_eq:
+	ehea_destroy_eq(adapter->neq);
+
+out_free_res:
+	ehea_h_free_resource(adapter->handle, adapter->mr.handle);
+
+out_free_ad:
+	kfree(adapter);
+out:
+	return ret;
+}
+
+static void ehea_shutdown_single_port(struct ehea_port *port)
+{
+	unregister_netdev(port->netdev);
+	kfree(port->mc_list);
+	free_netdev(port->netdev);
+}
+
+static int __devexit ehea_remove(struct ibmebus_dev *dev)
+{
+	struct ehea_adapter *adapter = dev->ofdev.dev.driver_data;
+	u64 hret;
+	int i;
+
+	for (i = 0; i < adapter->num_ports; i++)
+		if (adapter->port[i]) {
+			ehea_shutdown_single_port(adapter->port[i]);
+			adapter->port[i] = NULL;
+		}
+	destroy_workqueue(adapter->ehea_wq);
+
+	ibmebus_free_irq(NULL, adapter->neq->attr.ist1, adapter);
+
+	ehea_destroy_eq(adapter->neq);
+
+	hret = ehea_h_free_resource(adapter->handle, adapter->mr.handle);
+	if (hret) {
+		dev_err(&dev->ofdev.dev, "free_resource_mr failed");
+		return -EIO;
+	}
+	kfree(adapter);
+	return 0;
+}
+
+static int check_module_parm(void)
+{
+	int ret = 0;
+
+	if ((rq1_entries < EHEA_MIN_ENTRIES_QP) ||
+	    (rq1_entries > EHEA_MAX_ENTRIES_RQ1)) {
+		ehea_info("Bad parameter: rq1_entries");
+		ret = -EINVAL;
+	}
+	if ((rq2_entries < EHEA_MIN_ENTRIES_QP) ||
+	    (rq2_entries > EHEA_MAX_ENTRIES_RQ2)) {
+		ehea_info("Bad parameter: rq2_entries");
+		ret = -EINVAL;
+	}
+	if ((rq3_entries < EHEA_MIN_ENTRIES_QP) ||
+	    (rq3_entries > EHEA_MAX_ENTRIES_RQ3)) {
+		ehea_info("Bad parameter: rq3_entries");
+		ret = -EINVAL;
+	}
+	if ((sq_entries < EHEA_MIN_ENTRIES_QP) ||
+	    (sq_entries > EHEA_MAX_ENTRIES_SQ)) {
+		ehea_info("Bad parameter: sq_entries");
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+static struct of_device_id ehea_device_table[] = {
+	{
+		.name = "lhea",
+		.compatible = "IBM,lhea",
+	},
+	{},
+};
+
+static struct ibmebus_driver ehea_driver = {
+	.name = "ehea",
+	.id_table = ehea_device_table,
+	.probe = ehea_probe,
+	.remove = ehea_remove,
+};
+
+int __init ehea_module_init(void)
+{
+	int ret;
+
+	printk(KERN_INFO "IBM eHEA ethernet device driver (Release %s)\n",
+	       DRV_VERSION);
+
+	ret = check_module_parm();
+	if (ret)
+		goto out;
+	ret = ibmebus_register_driver(&ehea_driver);
+	if (ret)
+		ehea_error("failed registering eHEA device driver on ebus");
+
+out:
+	return ret;
+}
+
+static void __exit ehea_module_exit(void)
+{
+	ibmebus_unregister_driver(&ehea_driver);
+}
+
+module_init(ehea_module_init);
+module_exit(ehea_module_exit);

+ 705 - 0
drivers/net/ehea/ehea_phyp.c

@@ -0,0 +1,705 @@
+/*
+ *  linux/drivers/net/ehea/ehea_phyp.c
+ *
+ *  eHEA ethernet device driver for IBM eServer System p
+ *
+ *  (C) Copyright IBM Corp. 2006
+ *
+ *  Authors:
+ *       Christoph Raisch <raisch@de.ibm.com>
+ *       Jan-Bernd Themann <themann@de.ibm.com>
+ *       Thomas Klein <tklein@de.ibm.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "ehea_phyp.h"
+
+
+static inline u16 get_order_of_qentries(u16 queue_entries)
+{
+	u8 ld = 1;		/*  logarithmus dualis */
+	while (((1U << ld) - 1) < queue_entries)
+		ld++;
+	return ld - 1;
+}
+
+/* Defines for H_CALL H_ALLOC_RESOURCE */
+#define H_ALL_RES_TYPE_QP        1
+#define H_ALL_RES_TYPE_CQ        2
+#define H_ALL_RES_TYPE_EQ        3
+#define H_ALL_RES_TYPE_MR        5
+#define H_ALL_RES_TYPE_MW        6
+
+static long ehea_hcall_9arg_9ret(unsigned long opcode,
+         			 unsigned long arg1, unsigned long arg2,
+         			 unsigned long arg3, unsigned long arg4,
+         			 unsigned long arg5, unsigned long arg6,
+         			 unsigned long arg7, unsigned long arg8,
+         			 unsigned long arg9, unsigned long *out1,
+         			 unsigned long *out2,unsigned long *out3,
+         			 unsigned long *out4,unsigned long *out5,
+         			 unsigned long *out6,unsigned long *out7,
+         			 unsigned long *out8,unsigned long *out9)
+{
+	long hret;
+	int i, sleep_msecs;
+
+	for (i = 0; i < 5; i++) {
+		hret = plpar_hcall_9arg_9ret(opcode,arg1, arg2, arg3, arg4,
+					     arg5, arg6, arg7, arg8, arg9, out1,
+					     out2, out3, out4, out5, out6, out7,
+					     out8, out9);
+		if (H_IS_LONG_BUSY(hret)) {
+			sleep_msecs = get_longbusy_msecs(hret);
+			msleep_interruptible(sleep_msecs);
+			continue;
+		}
+
+		if (hret < H_SUCCESS)
+			ehea_error("op=%lx hret=%lx "
+				   "i1=%lx i2=%lx i3=%lx i4=%lx i5=%lx i6=%lx "
+				   "i7=%lx i8=%lx i9=%lx "
+				   "o1=%lx o2=%lx o3=%lx o4=%lx o5=%lx o6=%lx "
+				   "o7=%lx o8=%lx o9=%lx",
+				   opcode, hret, arg1, arg2, arg3, arg4, arg5,
+				   arg6, arg7, arg8, arg9, *out1, *out2, *out3,
+				   *out4, *out5, *out6, *out7, *out8, *out9);
+		return hret;
+	}
+	return H_BUSY;
+}
+
+u64 ehea_h_query_ehea_qp(const u64 adapter_handle, const u8 qp_category,
+			 const u64 qp_handle, const u64 sel_mask, void *cb_addr)
+{
+	u64 dummy;
+
+	if ((((u64)cb_addr) & (PAGE_SIZE - 1)) != 0) {
+		ehea_error("not on pageboundary");
+		return H_PARAMETER;
+	}
+
+	return ehea_hcall_9arg_9ret(H_QUERY_HEA_QP,
+				    adapter_handle,	        /* R4 */
+				    qp_category,	        /* R5 */
+				    qp_handle,	                /* R6 */
+				    sel_mask,	                /* R7 */
+				    virt_to_abs(cb_addr),	/* R8 */
+				    0, 0, 0, 0,	                /* R9-R12 */
+				    &dummy,                     /* R4 */
+				    &dummy,                     /* R5 */
+				    &dummy,	                /* R6 */
+				    &dummy,	                /* R7 */
+				    &dummy,	                /* R8 */
+				    &dummy,	                /* R9 */
+				    &dummy,	                /* R10 */
+				    &dummy,	                /* R11 */
+				    &dummy);	                /* R12 */
+}
+
+/* input param R5 */
+#define H_ALL_RES_QP_EQPO         EHEA_BMASK_IBM(9, 11)
+#define H_ALL_RES_QP_QPP          EHEA_BMASK_IBM(12, 12)
+#define H_ALL_RES_QP_RQR          EHEA_BMASK_IBM(13, 15)
+#define H_ALL_RES_QP_EQEG         EHEA_BMASK_IBM(16, 16)
+#define H_ALL_RES_QP_LL_QP        EHEA_BMASK_IBM(17, 17)
+#define H_ALL_RES_QP_DMA128       EHEA_BMASK_IBM(19, 19)
+#define H_ALL_RES_QP_HSM          EHEA_BMASK_IBM(20, 21)
+#define H_ALL_RES_QP_SIGT         EHEA_BMASK_IBM(22, 23)
+#define H_ALL_RES_QP_TENURE       EHEA_BMASK_IBM(48, 55)
+#define H_ALL_RES_QP_RES_TYP      EHEA_BMASK_IBM(56, 63)
+
+/* input param R9  */
+#define H_ALL_RES_QP_TOKEN        EHEA_BMASK_IBM(0, 31)
+#define H_ALL_RES_QP_PD           EHEA_BMASK_IBM(32,63)
+
+/* input param R10 */
+#define H_ALL_RES_QP_MAX_SWQE     EHEA_BMASK_IBM(4, 7)
+#define H_ALL_RES_QP_MAX_R1WQE    EHEA_BMASK_IBM(12, 15)
+#define H_ALL_RES_QP_MAX_R2WQE    EHEA_BMASK_IBM(20, 23)
+#define H_ALL_RES_QP_MAX_R3WQE    EHEA_BMASK_IBM(28, 31)
+/* Max Send Scatter Gather Elements */
+#define H_ALL_RES_QP_MAX_SSGE     EHEA_BMASK_IBM(37, 39)
+#define H_ALL_RES_QP_MAX_R1SGE    EHEA_BMASK_IBM(45, 47)
+/* Max Receive SG Elements RQ1 */
+#define H_ALL_RES_QP_MAX_R2SGE    EHEA_BMASK_IBM(53, 55)
+#define H_ALL_RES_QP_MAX_R3SGE    EHEA_BMASK_IBM(61, 63)
+
+/* input param R11 */
+#define H_ALL_RES_QP_SWQE_IDL     EHEA_BMASK_IBM(0, 7)
+/* max swqe immediate data length */
+#define H_ALL_RES_QP_PORT_NUM     EHEA_BMASK_IBM(48, 63)
+
+/* input param R12 */
+#define H_ALL_RES_QP_TH_RQ2       EHEA_BMASK_IBM(0, 15)
+/* Threshold RQ2 */
+#define H_ALL_RES_QP_TH_RQ3       EHEA_BMASK_IBM(16, 31)
+/* Threshold RQ3 */
+
+/* output param R6 */
+#define H_ALL_RES_QP_ACT_SWQE     EHEA_BMASK_IBM(0, 15)
+#define H_ALL_RES_QP_ACT_R1WQE    EHEA_BMASK_IBM(16, 31)
+#define H_ALL_RES_QP_ACT_R2WQE    EHEA_BMASK_IBM(32, 47)
+#define H_ALL_RES_QP_ACT_R3WQE    EHEA_BMASK_IBM(48, 63)
+
+/* output param, R7 */
+#define H_ALL_RES_QP_ACT_SSGE     EHEA_BMASK_IBM(0, 7)
+#define H_ALL_RES_QP_ACT_R1SGE    EHEA_BMASK_IBM(8, 15)
+#define H_ALL_RES_QP_ACT_R2SGE    EHEA_BMASK_IBM(16, 23)
+#define H_ALL_RES_QP_ACT_R3SGE    EHEA_BMASK_IBM(24, 31)
+#define H_ALL_RES_QP_ACT_SWQE_IDL EHEA_BMASK_IBM(32, 39)
+
+/* output param R8,R9 */
+#define H_ALL_RES_QP_SIZE_SQ      EHEA_BMASK_IBM(0, 31)
+#define H_ALL_RES_QP_SIZE_RQ1     EHEA_BMASK_IBM(32, 63)
+#define H_ALL_RES_QP_SIZE_RQ2     EHEA_BMASK_IBM(0, 31)
+#define H_ALL_RES_QP_SIZE_RQ3     EHEA_BMASK_IBM(32, 63)
+
+/* output param R11,R12 */
+#define H_ALL_RES_QP_LIOBN_SQ     EHEA_BMASK_IBM(0, 31)
+#define H_ALL_RES_QP_LIOBN_RQ1    EHEA_BMASK_IBM(32, 63)
+#define H_ALL_RES_QP_LIOBN_RQ2    EHEA_BMASK_IBM(0, 31)
+#define H_ALL_RES_QP_LIOBN_RQ3    EHEA_BMASK_IBM(32, 63)
+
+u64 ehea_h_alloc_resource_qp(const u64 adapter_handle,
+			     struct ehea_qp_init_attr *init_attr, const u32 pd,
+			     u64 *qp_handle, struct h_epas *h_epas)
+{
+	u64 hret;
+
+	u64 allocate_controls =
+	    EHEA_BMASK_SET(H_ALL_RES_QP_EQPO, init_attr->low_lat_rq1 ? 1 : 0)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_QPP, 0)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_RQR, 6)	/* rq1 & rq2 & rq3 */
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_EQEG, 0)	/* EQE gen. disabled */
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_LL_QP, init_attr->low_lat_rq1)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_DMA128, 0)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_HSM, 0)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_SIGT, init_attr->signalingtype)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_RES_TYP, H_ALL_RES_TYPE_QP);
+
+	u64 r9_reg = EHEA_BMASK_SET(H_ALL_RES_QP_PD, pd)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_TOKEN, init_attr->qp_token);
+
+	u64 max_r10_reg =
+	    EHEA_BMASK_SET(H_ALL_RES_QP_MAX_SWQE,
+			   get_order_of_qentries(init_attr->max_nr_send_wqes))
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_MAX_R1WQE,
+			     get_order_of_qentries(init_attr->max_nr_rwqes_rq1))
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_MAX_R2WQE,
+			     get_order_of_qentries(init_attr->max_nr_rwqes_rq2))
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_MAX_R3WQE,
+			     get_order_of_qentries(init_attr->max_nr_rwqes_rq3))
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_MAX_SSGE, init_attr->wqe_size_enc_sq)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_MAX_R1SGE,
+			     init_attr->wqe_size_enc_rq1)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_MAX_R2SGE,
+			     init_attr->wqe_size_enc_rq2)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_MAX_R3SGE,
+			     init_attr->wqe_size_enc_rq3);
+
+	u64 r11_in =
+	    EHEA_BMASK_SET(H_ALL_RES_QP_SWQE_IDL, init_attr->swqe_imm_data_len)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_PORT_NUM, init_attr->port_nr);
+	u64 threshold =
+	    EHEA_BMASK_SET(H_ALL_RES_QP_TH_RQ2, init_attr->rq2_threshold)
+	    | EHEA_BMASK_SET(H_ALL_RES_QP_TH_RQ3, init_attr->rq3_threshold);
+
+	u64 r5_out = 0;
+	u64 r6_out = 0;
+	u64 r7_out = 0;
+	u64 r8_out = 0;
+	u64 r9_out = 0;
+	u64 g_la_user_out = 0;
+	u64 r11_out = 0;
+	u64 r12_out = 0;
+
+	hret = ehea_hcall_9arg_9ret(H_ALLOC_HEA_RESOURCE,
+				    adapter_handle,		/* R4 */
+				    allocate_controls,		/* R5 */
+				    init_attr->send_cq_handle,	/* R6 */
+				    init_attr->recv_cq_handle,	/* R7 */
+				    init_attr->aff_eq_handle,	/* R8 */
+				    r9_reg,			/* R9 */
+				    max_r10_reg,		/* R10 */
+				    r11_in,			/* R11 */
+				    threshold,			/* R12 */
+				    qp_handle,			/* R4 */
+				    &r5_out,			/* R5 */
+				    &r6_out,			/* R6 */
+				    &r7_out,			/* R7 */
+				    &r8_out,			/* R8 */
+				    &r9_out,			/* R9 */
+				    &g_la_user_out,		/* R10 */
+				    &r11_out,			/* R11 */
+				    &r12_out);			/* R12 */
+
+	init_attr->qp_nr = (u32)r5_out;
+
+	init_attr->act_nr_send_wqes =
+	    (u16)EHEA_BMASK_GET(H_ALL_RES_QP_ACT_SWQE, r6_out);
+	init_attr->act_nr_rwqes_rq1 =
+	    (u16)EHEA_BMASK_GET(H_ALL_RES_QP_ACT_R1WQE, r6_out);
+	init_attr->act_nr_rwqes_rq2 =
+	    (u16)EHEA_BMASK_GET(H_ALL_RES_QP_ACT_R2WQE, r6_out);
+	init_attr->act_nr_rwqes_rq3 =
+	    (u16)EHEA_BMASK_GET(H_ALL_RES_QP_ACT_R3WQE, r6_out);
+
+	init_attr->act_wqe_size_enc_sq = init_attr->wqe_size_enc_sq;
+	init_attr->act_wqe_size_enc_rq1 = init_attr->wqe_size_enc_rq1;
+	init_attr->act_wqe_size_enc_rq2 = init_attr->wqe_size_enc_rq2;
+	init_attr->act_wqe_size_enc_rq3 = init_attr->wqe_size_enc_rq3;
+
+	init_attr->nr_sq_pages =
+	    (u32)EHEA_BMASK_GET(H_ALL_RES_QP_SIZE_SQ, r8_out);
+	init_attr->nr_rq1_pages =
+	    (u32)EHEA_BMASK_GET(H_ALL_RES_QP_SIZE_RQ1, r8_out);
+	init_attr->nr_rq2_pages =
+	    (u32)EHEA_BMASK_GET(H_ALL_RES_QP_SIZE_RQ2, r9_out);
+	init_attr->nr_rq3_pages =
+	    (u32)EHEA_BMASK_GET(H_ALL_RES_QP_SIZE_RQ3, r9_out);
+
+	init_attr->liobn_sq =
+	    (u32)EHEA_BMASK_GET(H_ALL_RES_QP_LIOBN_SQ, r11_out);
+	init_attr->liobn_rq1 =
+	    (u32)EHEA_BMASK_GET(H_ALL_RES_QP_LIOBN_RQ1, r11_out);
+	init_attr->liobn_rq2 =
+	    (u32)EHEA_BMASK_GET(H_ALL_RES_QP_LIOBN_RQ2, r12_out);
+	init_attr->liobn_rq3 =
+	    (u32)EHEA_BMASK_GET(H_ALL_RES_QP_LIOBN_RQ3, r12_out);
+
+	if (!hret)
+		hcp_epas_ctor(h_epas, g_la_user_out, g_la_user_out);
+
+	return hret;
+}
+
+u64 ehea_h_alloc_resource_cq(const u64 adapter_handle,
+			     struct ehea_cq_attr *cq_attr,
+			     u64 *cq_handle, struct h_epas *epas)
+{
+	u64 hret, dummy, act_nr_of_cqes_out, act_pages_out;
+	u64 g_la_privileged_out, g_la_user_out;
+
+	hret = ehea_hcall_9arg_9ret(H_ALLOC_HEA_RESOURCE,
+				    adapter_handle,		/* R4 */
+				    H_ALL_RES_TYPE_CQ,		/* R5 */
+				    cq_attr->eq_handle,		/* R6 */
+				    cq_attr->cq_token,		/* R7 */
+				    cq_attr->max_nr_of_cqes,	/* R8 */
+				    0, 0, 0, 0,			/* R9-R12 */
+				    cq_handle,			/* R4 */
+				    &dummy,			/* R5 */
+				    &dummy,			/* R6 */
+				    &act_nr_of_cqes_out,	/* R7 */
+				    &act_pages_out,		/* R8 */
+				    &g_la_privileged_out,	/* R9 */
+				    &g_la_user_out,		/* R10 */
+				    &dummy,	                /* R11 */
+				    &dummy);	                /* R12 */
+
+	cq_attr->act_nr_of_cqes = act_nr_of_cqes_out;
+	cq_attr->nr_pages = act_pages_out;
+
+	if (!hret)
+		hcp_epas_ctor(epas, g_la_privileged_out, g_la_user_out);
+
+	return hret;
+}
+
+/* Defines for H_CALL H_ALLOC_RESOURCE */
+#define H_ALL_RES_TYPE_QP        1
+#define H_ALL_RES_TYPE_CQ        2
+#define H_ALL_RES_TYPE_EQ        3
+#define H_ALL_RES_TYPE_MR        5
+#define H_ALL_RES_TYPE_MW        6
+
+/*  input param R5 */
+#define H_ALL_RES_EQ_NEQ             EHEA_BMASK_IBM(0, 0)
+#define H_ALL_RES_EQ_NON_NEQ_ISN     EHEA_BMASK_IBM(6, 7)
+#define H_ALL_RES_EQ_INH_EQE_GEN     EHEA_BMASK_IBM(16, 16)
+#define H_ALL_RES_EQ_RES_TYPE        EHEA_BMASK_IBM(56, 63)
+/*  input param R6 */
+#define H_ALL_RES_EQ_MAX_EQE         EHEA_BMASK_IBM(32, 63)
+
+/*  output param R6 */
+#define H_ALL_RES_EQ_LIOBN           EHEA_BMASK_IBM(32, 63)
+
+/*  output param R7 */
+#define H_ALL_RES_EQ_ACT_EQE         EHEA_BMASK_IBM(32, 63)
+
+/*  output param R8 */
+#define H_ALL_RES_EQ_ACT_PS          EHEA_BMASK_IBM(32, 63)
+
+/*  output param R9 */
+#define H_ALL_RES_EQ_ACT_EQ_IST_C    EHEA_BMASK_IBM(30, 31)
+#define H_ALL_RES_EQ_ACT_EQ_IST_1    EHEA_BMASK_IBM(40, 63)
+
+/*  output param R10 */
+#define H_ALL_RES_EQ_ACT_EQ_IST_2    EHEA_BMASK_IBM(40, 63)
+
+/*  output param R11 */
+#define H_ALL_RES_EQ_ACT_EQ_IST_3    EHEA_BMASK_IBM(40, 63)
+
+/*  output param R12 */
+#define H_ALL_RES_EQ_ACT_EQ_IST_4    EHEA_BMASK_IBM(40, 63)
+
+u64 ehea_h_alloc_resource_eq(const u64 adapter_handle,
+			     struct ehea_eq_attr *eq_attr, u64 *eq_handle)
+{
+	u64 hret, dummy, eq_liobn, allocate_controls;
+	u64 ist1_out, ist2_out, ist3_out, ist4_out;
+	u64 act_nr_of_eqes_out, act_pages_out;
+
+	/* resource type */
+	allocate_controls =
+	    EHEA_BMASK_SET(H_ALL_RES_EQ_RES_TYPE, H_ALL_RES_TYPE_EQ)
+	    | EHEA_BMASK_SET(H_ALL_RES_EQ_NEQ, eq_attr->type ? 1 : 0)
+	    | EHEA_BMASK_SET(H_ALL_RES_EQ_INH_EQE_GEN, !eq_attr->eqe_gen)
+	    | EHEA_BMASK_SET(H_ALL_RES_EQ_NON_NEQ_ISN, 1);
+
+	hret = ehea_hcall_9arg_9ret(H_ALLOC_HEA_RESOURCE,
+				    adapter_handle,		/* R4 */
+				    allocate_controls,		/* R5 */
+				    eq_attr->max_nr_of_eqes,	/* R6 */
+				    0, 0, 0, 0, 0, 0,		/* R7-R10 */
+				    eq_handle,			/* R4 */
+				    &dummy,			/* R5 */
+				    &eq_liobn,			/* R6 */
+				    &act_nr_of_eqes_out,	/* R7 */
+				    &act_pages_out,		/* R8 */
+				    &ist1_out,			/* R9 */
+				    &ist2_out,			/* R10 */
+				    &ist3_out,			/* R11 */
+				    &ist4_out);			/* R12 */
+
+	eq_attr->act_nr_of_eqes = act_nr_of_eqes_out;
+	eq_attr->nr_pages = act_pages_out;
+	eq_attr->ist1 = ist1_out;
+	eq_attr->ist2 = ist2_out;
+	eq_attr->ist3 = ist3_out;
+	eq_attr->ist4 = ist4_out;
+
+	return hret;
+}
+
+u64 ehea_h_modify_ehea_qp(const u64 adapter_handle, const u8 cat,
+			  const u64 qp_handle, const u64 sel_mask,
+			  void *cb_addr, u64 *inv_attr_id, u64 *proc_mask,
+			  u16 *out_swr, u16 *out_rwr)
+{
+	u64 hret, dummy, act_out_swr, act_out_rwr;
+
+	if ((((u64)cb_addr) & (PAGE_SIZE - 1)) != 0) {
+		ehea_error("not on page boundary");
+		return H_PARAMETER;
+	}
+
+	hret = ehea_hcall_9arg_9ret(H_MODIFY_HEA_QP,
+				    adapter_handle,		/* R4 */
+				    (u64) cat,			/* R5 */
+				    qp_handle,			/* R6 */
+				    sel_mask,			/* R7 */
+				    virt_to_abs(cb_addr),	/* R8 */
+				    0, 0, 0, 0,			/* R9-R12 */
+				    inv_attr_id,		/* R4 */
+				    &dummy,			/* R5 */
+				    &dummy,			/* R6 */
+				    &act_out_swr,		/* R7 */
+				    &act_out_rwr,		/* R8 */
+				    proc_mask,			/* R9 */
+				    &dummy,			/* R10 */
+				    &dummy,			/* R11 */
+				    &dummy);			/* R12 */
+	*out_swr = act_out_swr;
+	*out_rwr = act_out_rwr;
+
+	return hret;
+}
+
+u64 ehea_h_register_rpage(const u64 adapter_handle, const u8 pagesize,
+			  const u8 queue_type, const u64 resource_handle,
+			  const u64 log_pageaddr, u64 count)
+{
+	u64 dummy, reg_control;
+
+	reg_control = EHEA_BMASK_SET(H_REG_RPAGE_PAGE_SIZE, pagesize)
+		    | EHEA_BMASK_SET(H_REG_RPAGE_QT, queue_type);
+
+	return ehea_hcall_9arg_9ret(H_REGISTER_HEA_RPAGES,
+				    adapter_handle,		/* R4 */
+				    reg_control,		/* R5 */
+				    resource_handle,		/* R6 */
+				    log_pageaddr,		/* R7 */
+				    count,			/* R8 */
+				    0, 0, 0, 0,			/* R9-R12 */
+				    &dummy,			/* R4 */
+				    &dummy,			/* R5 */
+				    &dummy,			/* R6 */
+				    &dummy,			/* R7 */
+				    &dummy,			/* R8 */
+				    &dummy,			/* R9 */
+				    &dummy,			/* R10 */
+				    &dummy,	                /* R11 */
+				    &dummy);	                /* R12 */
+}
+
+u64 ehea_h_register_smr(const u64 adapter_handle, const u64 orig_mr_handle,
+			const u64 vaddr_in, const u32 access_ctrl, const u32 pd,
+			struct ehea_mr *mr)
+{
+	u64 hret, dummy, lkey_out;
+
+	hret = ehea_hcall_9arg_9ret(H_REGISTER_SMR,
+				    adapter_handle       ,          /* R4 */
+				    orig_mr_handle,                 /* R5 */
+				    vaddr_in,                       /* R6 */
+				    (((u64)access_ctrl) << 32ULL),  /* R7 */
+				    pd,                             /* R8 */
+				    0, 0, 0, 0,			    /* R9-R12 */
+				    &mr->handle,                    /* R4 */
+				    &dummy,                         /* R5 */
+				    &lkey_out,                      /* R6 */
+				    &dummy,                         /* R7 */
+				    &dummy,                         /* R8 */
+				    &dummy,                         /* R9 */
+				    &dummy,                         /* R10 */
+				    &dummy,                         /* R11 */
+				    &dummy);                        /* R12 */
+	mr->lkey = (u32)lkey_out;
+
+	return hret;
+}
+
+u64 ehea_h_disable_and_get_hea(const u64 adapter_handle, const u64 qp_handle)
+{
+	u64 hret, dummy, ladr_next_sq_wqe_out;
+	u64 ladr_next_rq1_wqe_out, ladr_next_rq2_wqe_out, ladr_next_rq3_wqe_out;
+
+	hret = ehea_hcall_9arg_9ret(H_DISABLE_AND_GET_HEA,
+				    adapter_handle,		/* R4 */
+				    H_DISABLE_GET_EHEA_WQE_P,	/* R5 */
+				    qp_handle,			/* R6 */
+				    0, 0, 0, 0, 0, 0,		/* R7-R12 */
+				    &ladr_next_sq_wqe_out,	/* R4 */
+				    &ladr_next_rq1_wqe_out,	/* R5 */
+				    &ladr_next_rq2_wqe_out,	/* R6 */
+				    &ladr_next_rq3_wqe_out,	/* R7 */
+				    &dummy,			/* R8 */
+				    &dummy,			/* R9 */
+				    &dummy,			/* R10 */
+				    &dummy,                     /* R11 */
+				    &dummy);                    /* R12 */
+	return hret;
+}
+
+u64 ehea_h_free_resource(const u64 adapter_handle, const u64 res_handle)
+{
+	u64 dummy;
+
+	return ehea_hcall_9arg_9ret(H_FREE_RESOURCE,
+				    adapter_handle,	   /* R4 */
+				    res_handle,            /* R5 */
+				    0, 0, 0, 0, 0, 0, 0,   /* R6-R12 */
+				    &dummy,                /* R4 */
+				    &dummy,                /* R5 */
+				    &dummy,                /* R6 */
+				    &dummy,                /* R7 */
+				    &dummy,                /* R8 */
+				    &dummy,                /* R9 */
+				    &dummy,		   /* R10 */
+				    &dummy,                /* R11 */
+				    &dummy);               /* R12 */
+}
+
+u64 ehea_h_alloc_resource_mr(const u64 adapter_handle, const u64 vaddr,
+			     const u64 length, const u32 access_ctrl,
+			     const u32 pd, u64 *mr_handle, u32 *lkey)
+{
+	u64 hret, dummy, lkey_out;
+
+	hret = ehea_hcall_9arg_9ret(H_ALLOC_HEA_RESOURCE,
+				    adapter_handle,		   /* R4 */
+				    5,				   /* R5 */
+				    vaddr,			   /* R6 */
+				    length,			   /* R7 */
+				    (((u64) access_ctrl) << 32ULL),/* R8 */
+				    pd,				   /* R9 */
+				    0, 0, 0,			   /* R10-R12 */
+				    mr_handle,			   /* R4 */
+				    &dummy,			   /* R5 */
+				    &lkey_out,			   /* R6 */
+				    &dummy,			   /* R7 */
+				    &dummy,			   /* R8 */
+				    &dummy,			   /* R9 */
+				    &dummy,			   /* R10 */
+				    &dummy,                        /* R11 */
+				    &dummy);                       /* R12 */
+	*lkey = (u32) lkey_out;
+
+	return hret;
+}
+
+u64 ehea_h_register_rpage_mr(const u64 adapter_handle, const u64 mr_handle,
+			     const u8 pagesize, const u8 queue_type,
+			     const u64 log_pageaddr, const u64 count)
+{
+	if ((count > 1) && (log_pageaddr & 0xfff)) {
+		ehea_error("not on pageboundary");
+		return H_PARAMETER;
+	}
+
+	return ehea_h_register_rpage(adapter_handle, pagesize,
+				     queue_type, mr_handle,
+				     log_pageaddr, count);
+}
+
+u64 ehea_h_query_ehea(const u64 adapter_handle, void *cb_addr)
+{
+	u64 hret, dummy, cb_logaddr;
+
+	cb_logaddr = virt_to_abs(cb_addr);
+
+	hret = ehea_hcall_9arg_9ret(H_QUERY_HEA,
+				    adapter_handle,		/* R4 */
+				    cb_logaddr,			/* R5 */
+				    0, 0, 0, 0, 0, 0, 0,	/* R6-R12 */
+				    &dummy,			/* R4 */
+				    &dummy,			/* R5 */
+				    &dummy,			/* R6 */
+				    &dummy,			/* R7 */
+				    &dummy,			/* R8 */
+				    &dummy,			/* R9 */
+				    &dummy,			/* R10 */
+				    &dummy,             	/* R11 */
+				    &dummy);            	/* R12 */
+#ifdef DEBUG
+	ehea_dmp(cb_addr, sizeof(struct hcp_query_ehea), "hcp_query_ehea");
+#endif
+	return hret;
+}
+
+u64 ehea_h_query_ehea_port(const u64 adapter_handle, const u16 port_num,
+			   const u8 cb_cat, const u64 select_mask,
+			   void *cb_addr)
+{
+	u64 port_info, dummy;
+	u64 cb_logaddr = virt_to_abs(cb_addr);
+	u64 arr_index = 0;
+
+	port_info = EHEA_BMASK_SET(H_MEHEAPORT_CAT, cb_cat)
+		  | EHEA_BMASK_SET(H_MEHEAPORT_PN, port_num);
+
+	return ehea_hcall_9arg_9ret(H_QUERY_HEA_PORT,
+				    adapter_handle,		/* R4 */
+				    port_info,			/* R5 */
+				    select_mask,		/* R6 */
+				    arr_index,			/* R7 */
+				    cb_logaddr,			/* R8 */
+				    0, 0, 0, 0,			/* R9-R12 */
+				    &dummy,			/* R4 */
+				    &dummy,			/* R5 */
+				    &dummy,			/* R6 */
+				    &dummy,			/* R7 */
+				    &dummy,			/* R8 */
+				    &dummy,			/* R9 */
+				    &dummy,			/* R10 */
+				    &dummy,                     /* R11 */
+				    &dummy);                    /* R12 */
+}
+
+u64 ehea_h_modify_ehea_port(const u64 adapter_handle, const u16 port_num,
+			    const u8 cb_cat, const u64 select_mask,
+			    void *cb_addr)
+{
+	u64 port_info, dummy, inv_attr_ident, proc_mask;
+	u64 arr_index = 0;
+	u64 cb_logaddr = virt_to_abs(cb_addr);
+
+	port_info = EHEA_BMASK_SET(H_MEHEAPORT_CAT, cb_cat)
+		  | EHEA_BMASK_SET(H_MEHEAPORT_PN, port_num);
+#ifdef DEBUG
+	ehea_dump(cb_addr, sizeof(struct hcp_ehea_port_cb0), "Before HCALL");
+#endif
+	return ehea_hcall_9arg_9ret(H_MODIFY_HEA_PORT,
+				    adapter_handle,		/* R4 */
+				    port_info,			/* R5 */
+				    select_mask,		/* R6 */
+				    arr_index,			/* R7 */
+				    cb_logaddr,			/* R8 */
+				    0, 0, 0, 0,			/* R9-R12 */
+				    &inv_attr_ident,		/* R4 */
+				    &proc_mask,			/* R5 */
+				    &dummy,			/* R6 */
+				    &dummy,			/* R7 */
+				    &dummy,			/* R8 */
+				    &dummy,			/* R9 */
+				    &dummy,			/* R10 */
+				    &dummy,                     /* R11 */
+				    &dummy);                    /* R12 */
+}
+
+u64 ehea_h_reg_dereg_bcmc(const u64 adapter_handle, const u16 port_num,
+			  const u8 reg_type, const u64 mc_mac_addr,
+			  const u16 vlan_id, const u32 hcall_id)
+{
+	u64 r5_port_num, r6_reg_type, r7_mc_mac_addr, r8_vlan_id, dummy;
+	u64 mac_addr = mc_mac_addr >> 16;
+
+	r5_port_num = EHEA_BMASK_SET(H_REGBCMC_PN, port_num);
+	r6_reg_type = EHEA_BMASK_SET(H_REGBCMC_REGTYPE, reg_type);
+	r7_mc_mac_addr = EHEA_BMASK_SET(H_REGBCMC_MACADDR, mac_addr);
+	r8_vlan_id = EHEA_BMASK_SET(H_REGBCMC_VLANID, vlan_id);
+
+	return ehea_hcall_9arg_9ret(hcall_id,
+				    adapter_handle,		/* R4 */
+				    r5_port_num,		/* R5 */
+				    r6_reg_type,		/* R6 */
+				    r7_mc_mac_addr,		/* R7 */
+				    r8_vlan_id,			/* R8 */
+				    0, 0, 0, 0,			/* R9-R12 */
+				    &dummy,			/* R4 */
+				    &dummy,			/* R5 */
+				    &dummy,			/* R6 */
+				    &dummy,			/* R7 */
+				    &dummy,			/* R8 */
+				    &dummy,			/* R9 */
+				    &dummy,			/* R10 */
+				    &dummy,                     /* R11 */
+				    &dummy);                    /* R12 */
+}
+
+u64 ehea_h_reset_events(const u64 adapter_handle, const u64 neq_handle,
+			const u64 event_mask)
+{
+	u64 dummy;
+
+	return ehea_hcall_9arg_9ret(H_RESET_EVENTS,
+				    adapter_handle,		/* R4 */
+				    neq_handle,			/* R5 */
+				    event_mask,			/* R6 */
+				    0, 0, 0, 0, 0, 0,		/* R7-R12 */
+				    &dummy,			/* R4 */
+				    &dummy,			/* R5 */
+				    &dummy,			/* R6 */
+				    &dummy,			/* R7 */
+				    &dummy,			/* R8 */
+				    &dummy,			/* R9 */
+				    &dummy,			/* R10 */
+				    &dummy,                     /* R11 */
+				    &dummy);                    /* R12 */
+}

+ 455 - 0
drivers/net/ehea/ehea_phyp.h

@@ -0,0 +1,455 @@
+/*
+ *  linux/drivers/net/ehea/ehea_phyp.h
+ *
+ *  eHEA ethernet device driver for IBM eServer System p
+ *
+ *  (C) Copyright IBM Corp. 2006
+ *
+ *  Authors:
+ *       Christoph Raisch <raisch@de.ibm.com>
+ *       Jan-Bernd Themann <themann@de.ibm.com>
+ *       Thomas Klein <tklein@de.ibm.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __EHEA_PHYP_H__
+#define __EHEA_PHYP_H__
+
+#include <linux/delay.h>
+#include <asm/hvcall.h>
+#include "ehea.h"
+#include "ehea_hw.h"
+#include "ehea_hcall.h"
+
+/* Some abbreviations used here:
+ *
+ * hcp_*  - structures, variables and functions releated to Hypervisor Calls
+ */
+
+static inline u32 get_longbusy_msecs(int long_busy_ret_code)
+{
+	switch (long_busy_ret_code) {
+	case H_LONG_BUSY_ORDER_1_MSEC:
+		return 1;
+	case H_LONG_BUSY_ORDER_10_MSEC:
+		return 10;
+	case H_LONG_BUSY_ORDER_100_MSEC:
+		return 100;
+	case H_LONG_BUSY_ORDER_1_SEC:
+		return 1000;
+	case H_LONG_BUSY_ORDER_10_SEC:
+		return 10000;
+	case H_LONG_BUSY_ORDER_100_SEC:
+		return 100000;
+	default:
+		return 1;
+	}
+}
+
+/* Notification Event Queue (NEQ) Entry bit masks */
+#define NEQE_EVENT_CODE		EHEA_BMASK_IBM(2, 7)
+#define NEQE_PORTNUM  		EHEA_BMASK_IBM(32, 47)
+#define NEQE_PORT_UP		EHEA_BMASK_IBM(16, 16)
+#define NEQE_EXTSWITCH_PORT_UP	EHEA_BMASK_IBM(17, 17)
+#define NEQE_EXTSWITCH_PRIMARY	EHEA_BMASK_IBM(18, 18)
+#define NEQE_PLID		EHEA_BMASK_IBM(16, 47)
+
+/* Notification Event Codes */
+#define EHEA_EC_PORTSTATE_CHG	0x30
+#define EHEA_EC_ADAPTER_MALFUNC	0x32
+#define EHEA_EC_PORT_MALFUNC	0x33
+
+/* Notification Event Log Register (NELR) bit masks */
+#define NELR_PORT_MALFUNC	EHEA_BMASK_IBM(61, 61)
+#define NELR_ADAPTER_MALFUNC	EHEA_BMASK_IBM(62, 62)
+#define NELR_PORTSTATE_CHG	EHEA_BMASK_IBM(63, 63)
+
+static inline void hcp_epas_ctor(struct h_epas *epas, u64 paddr_kernel,
+				 u64 paddr_user)
+{
+	epas->kernel.addr = ioremap(paddr_kernel, PAGE_SIZE);
+	epas->user.addr = paddr_user;
+}
+
+static inline void hcp_epas_dtor(struct h_epas *epas)
+{
+	if (epas->kernel.addr)
+		iounmap(epas->kernel.addr);
+
+	epas->user.addr = 0;
+	epas->kernel.addr = 0;
+}
+
+struct hcp_modify_qp_cb0 {
+	u64 qp_ctl_reg;		/* 00 */
+	u32 max_swqe;		/* 02 */
+	u32 max_rwqe;		/* 03 */
+	u32 port_nb;		/* 04 */
+	u32 reserved0;		/* 05 */
+	u64 qp_aer;		/* 06 */
+	u64 qp_tenure;		/* 08 */
+};
+
+/* Hcall Query/Modify Queue Pair Control Block 0 Selection Mask Bits */
+#define H_QPCB0_ALL             EHEA_BMASK_IBM(0, 5)
+#define H_QPCB0_QP_CTL_REG      EHEA_BMASK_IBM(0, 0)
+#define H_QPCB0_MAX_SWQE        EHEA_BMASK_IBM(1, 1)
+#define H_QPCB0_MAX_RWQE        EHEA_BMASK_IBM(2, 2)
+#define H_QPCB0_PORT_NB         EHEA_BMASK_IBM(3, 3)
+#define H_QPCB0_QP_AER          EHEA_BMASK_IBM(4, 4)
+#define H_QPCB0_QP_TENURE       EHEA_BMASK_IBM(5, 5)
+
+/* Queue Pair Control Register Status Bits */
+#define H_QP_CR_ENABLED		    0x8000000000000000ULL /* QP enabled */
+							  /* QP States: */
+#define H_QP_CR_STATE_RESET	    0x0000010000000000ULL /*  Reset */
+#define H_QP_CR_STATE_INITIALIZED   0x0000020000000000ULL /*  Initialized */
+#define H_QP_CR_STATE_RDY2RCV	    0x0000030000000000ULL /*  Ready to recv */
+#define H_QP_CR_STATE_RDY2SND	    0x0000050000000000ULL /*  Ready to send */
+#define H_QP_CR_STATE_ERROR	    0x0000800000000000ULL /*  Error */
+
+struct hcp_modify_qp_cb1 {
+	u32 qpn;		/* 00 */
+	u32 qp_asyn_ev_eq_nb;	/* 01 */
+	u64 sq_cq_handle;	/* 02 */
+	u64 rq_cq_handle;	/* 04 */
+	/* sgel = scatter gather element */
+	u32 sgel_nb_sq;		/* 06 */
+	u32 sgel_nb_rq1;	/* 07 */
+	u32 sgel_nb_rq2;	/* 08 */
+	u32 sgel_nb_rq3;	/* 09 */
+};
+
+/* Hcall Query/Modify Queue Pair Control Block 1 Selection Mask Bits */
+#define H_QPCB1_ALL             EHEA_BMASK_IBM(0, 7)
+#define H_QPCB1_QPN             EHEA_BMASK_IBM(0, 0)
+#define H_QPCB1_ASYN_EV_EQ_NB   EHEA_BMASK_IBM(1, 1)
+#define H_QPCB1_SQ_CQ_HANDLE    EHEA_BMASK_IBM(2, 2)
+#define H_QPCB1_RQ_CQ_HANDLE    EHEA_BMASK_IBM(3, 3)
+#define H_QPCB1_SGEL_NB_SQ      EHEA_BMASK_IBM(4, 4)
+#define H_QPCB1_SGEL_NB_RQ1     EHEA_BMASK_IBM(5, 5)
+#define H_QPCB1_SGEL_NB_RQ2     EHEA_BMASK_IBM(6, 6)
+#define H_QPCB1_SGEL_NB_RQ3     EHEA_BMASK_IBM(7, 7)
+
+struct hcp_query_ehea {
+	u32 cur_num_qps;		/* 00 */
+	u32 cur_num_cqs;		/* 01 */
+	u32 cur_num_eqs;		/* 02 */
+	u32 cur_num_mrs;		/* 03 */
+	u32 auth_level;			/* 04 */
+	u32 max_num_qps;		/* 05 */
+	u32 max_num_cqs;		/* 06 */
+	u32 max_num_eqs;		/* 07 */
+	u32 max_num_mrs;		/* 08 */
+	u32 reserved0;			/* 09 */
+	u32 int_clock_freq;		/* 10 */
+	u32 max_num_pds;		/* 11 */
+	u32 max_num_addr_handles;	/* 12 */
+	u32 max_num_cqes;		/* 13 */
+	u32 max_num_wqes;		/* 14 */
+	u32 max_num_sgel_rq1wqe;	/* 15 */
+	u32 max_num_sgel_rq2wqe;	/* 16 */
+	u32 max_num_sgel_rq3wqe;	/* 17 */
+	u32 mr_page_size;		/* 18 */
+	u32 reserved1;			/* 19 */
+	u64 max_mr_size;		/* 20 */
+	u64 reserved2;			/* 22 */
+	u32 num_ports;			/* 24 */
+	u32 reserved3;			/* 25 */
+	u32 reserved4;			/* 26 */
+	u32 reserved5;			/* 27 */
+	u64 max_mc_mac;			/* 28 */
+	u64 ehea_cap;			/* 30 */
+	u32 max_isn_per_eq;		/* 32 */
+	u32 max_num_neq;		/* 33 */
+	u64 max_num_vlan_ids;		/* 34 */
+	u32 max_num_port_group;		/* 36 */
+	u32 max_num_phys_port;		/* 37 */
+
+};
+
+/* Hcall Query/Modify Port Control Block defines */
+#define H_PORT_CB0	 0
+#define H_PORT_CB1	 1
+#define H_PORT_CB2	 2
+#define H_PORT_CB3	 3
+#define H_PORT_CB4	 4
+#define H_PORT_CB5	 5
+#define H_PORT_CB6	 6
+#define H_PORT_CB7	 7
+
+struct hcp_ehea_port_cb0 {
+	u64 port_mac_addr;
+	u64 port_rc;
+	u64 reserved0;
+	u32 port_op_state;
+	u32 port_speed;
+	u32 ext_swport_op_state;
+	u32 neg_tpf_prpf;
+	u32 num_default_qps;
+	u32 reserved1;
+	u64 default_qpn_arr[16];
+};
+
+/* Hcall Query/Modify Port Control Block 0 Selection Mask Bits */
+#define H_PORT_CB0_ALL		EHEA_BMASK_IBM(0, 7)    /* Set all bits */
+#define H_PORT_CB0_MAC		EHEA_BMASK_IBM(0, 0)    /* MAC address */
+#define H_PORT_CB0_PRC		EHEA_BMASK_IBM(1, 1)    /* Port Recv Control */
+#define H_PORT_CB0_DEFQPNARRAY	EHEA_BMASK_IBM(7, 7)    /* Default QPN Array */
+
+/*  Hcall Query Port: Returned port speed values */
+#define H_SPEED_10M_H	1	/*  10 Mbps, Half Duplex */
+#define H_SPEED_10M_F	2	/*  10 Mbps, Full Duplex */
+#define H_SPEED_100M_H	3	/* 100 Mbps, Half Duplex */
+#define H_SPEED_100M_F	4	/* 100 Mbps, Full Duplex */
+#define H_SPEED_1G_F	6	/*   1 Gbps, Full Duplex */
+#define H_SPEED_10G_F	8	/*  10 Gbps, Full Duplex */
+
+/* Port Receive Control Status Bits */
+#define PXLY_RC_VALID           EHEA_BMASK_IBM(49, 49)
+#define PXLY_RC_VLAN_XTRACT     EHEA_BMASK_IBM(50, 50)
+#define PXLY_RC_TCP_6_TUPLE     EHEA_BMASK_IBM(51, 51)
+#define PXLY_RC_UDP_6_TUPLE     EHEA_BMASK_IBM(52, 52)
+#define PXLY_RC_TCP_3_TUPLE     EHEA_BMASK_IBM(53, 53)
+#define PXLY_RC_TCP_2_TUPLE     EHEA_BMASK_IBM(54, 54)
+#define PXLY_RC_LLC_SNAP        EHEA_BMASK_IBM(55, 55)
+#define PXLY_RC_JUMBO_FRAME     EHEA_BMASK_IBM(56, 56)
+#define PXLY_RC_FRAG_IP_PKT     EHEA_BMASK_IBM(57, 57)
+#define PXLY_RC_TCP_UDP_CHKSUM  EHEA_BMASK_IBM(58, 58)
+#define PXLY_RC_IP_CHKSUM       EHEA_BMASK_IBM(59, 59)
+#define PXLY_RC_MAC_FILTER      EHEA_BMASK_IBM(60, 60)
+#define PXLY_RC_UNTAG_FILTER    EHEA_BMASK_IBM(61, 61)
+#define PXLY_RC_VLAN_TAG_FILTER EHEA_BMASK_IBM(62, 63)
+
+#define PXLY_RC_VLAN_FILTER     2
+#define PXLY_RC_VLAN_PERM       0
+
+
+#define H_PORT_CB1_ALL          0x8000000000000000ULL
+
+struct hcp_ehea_port_cb1 {
+	u64 vlan_filter[64];
+};
+
+#define H_PORT_CB2_ALL          0xFFE0000000000000ULL
+
+struct hcp_ehea_port_cb2 {
+	u64 rxo;
+	u64 rxucp;
+	u64 rxufd;
+	u64 rxuerr;
+	u64 rxftl;
+	u64 rxmcp;
+	u64 rxbcp;
+	u64 txo;
+	u64 txucp;
+	u64 txmcp;
+	u64 txbcp;
+};
+
+struct hcp_ehea_port_cb3 {
+	u64 vlan_bc_filter[64];
+	u64 vlan_mc_filter[64];
+	u64 vlan_un_filter[64];
+	u64 port_mac_hash_array[64];
+};
+
+#define H_PORT_CB4_ALL          0xF000000000000000ULL
+#define H_PORT_CB4_JUMBO        0x1000000000000000ULL
+#define H_PORT_CB4_SPEED        0x8000000000000000ULL
+
+struct hcp_ehea_port_cb4 {
+	u32 port_speed;
+	u32 pause_frame;
+	u32 ens_port_op_state;
+	u32 jumbo_frame;
+	u32 ens_port_wrap;
+};
+
+/* Hcall Query/Modify Port Control Block 5 Selection Mask Bits */
+#define H_PORT_CB5_RCU		0x0001000000000000ULL
+#define PXS_RCU			EHEA_BMASK_IBM(61, 63)
+
+struct hcp_ehea_port_cb5 {
+	u64 prc;	        /* 00 */
+	u64 uaa;		/* 01 */
+	u64 macvc;		/* 02 */
+	u64 xpcsc;		/* 03 */
+	u64 xpcsp;		/* 04 */
+	u64 pcsid;		/* 05 */
+	u64 xpcsst;		/* 06 */
+	u64 pthlb;		/* 07 */
+	u64 pthrb;		/* 08 */
+	u64 pqu;		/* 09 */
+	u64 pqd;		/* 10 */
+	u64 prt;		/* 11 */
+	u64 wsth;		/* 12 */
+	u64 rcb;		/* 13 */
+	u64 rcm;		/* 14 */
+	u64 rcu;		/* 15 */
+	u64 macc;		/* 16 */
+	u64 pc;			/* 17 */
+	u64 pst;		/* 18 */
+	u64 ducqpn;		/* 19 */
+	u64 mcqpn;		/* 20 */
+	u64 mma;		/* 21 */
+	u64 pmc0h;		/* 22 */
+	u64 pmc0l;		/* 23 */
+	u64 lbc;		/* 24 */
+};
+
+#define H_PORT_CB6_ALL  0xFFFFFE7FFFFF8000ULL
+
+struct hcp_ehea_port_cb6 {
+	u64 rxo;		/* 00 */
+	u64 rx64;		/* 01 */
+	u64 rx65;		/* 02 */
+	u64 rx128;		/* 03 */
+	u64 rx256;		/* 04 */
+	u64 rx512;		/* 05 */
+	u64 rx1024;		/* 06 */
+	u64 rxbfcs;		/* 07 */
+	u64 rxime;		/* 08 */
+	u64 rxrle;		/* 09 */
+	u64 rxorle;		/* 10 */
+	u64 rxftl;		/* 11 */
+	u64 rxjab;		/* 12 */
+	u64 rxse;		/* 13 */
+	u64 rxce;		/* 14 */
+	u64 rxrf;		/* 15 */
+	u64 rxfrag;		/* 16 */
+	u64 rxuoc;		/* 17 */
+	u64 rxcpf;		/* 18 */
+	u64 rxsb;		/* 19 */
+	u64 rxfd;		/* 20 */
+	u64 rxoerr;		/* 21 */
+	u64 rxaln;		/* 22 */
+	u64 ducqpn;		/* 23 */
+	u64 reserved0;		/* 24 */
+	u64 rxmcp;		/* 25 */
+	u64 rxbcp;		/* 26 */
+	u64 txmcp;		/* 27 */
+	u64 txbcp;		/* 28 */
+	u64 txo;		/* 29 */
+	u64 tx64;		/* 30 */
+	u64 tx65;		/* 31 */
+	u64 tx128;		/* 32 */
+	u64 tx256;		/* 33 */
+	u64 tx512;		/* 34 */
+	u64 tx1024;		/* 35 */
+	u64 txbfcs;		/* 36 */
+	u64 txcpf;		/* 37 */
+	u64 txlf;		/* 38 */
+	u64 txrf;		/* 39 */
+	u64 txime;		/* 40 */
+	u64 txsc;		/* 41 */
+	u64 txmc;		/* 42 */
+	u64 txsqe;		/* 43 */
+	u64 txdef;		/* 44 */
+	u64 txlcol;		/* 45 */
+	u64 txexcol;		/* 46 */
+	u64 txcse;		/* 47 */
+	u64 txbor;		/* 48 */
+};
+
+#define H_PORT_CB7_DUCQPN 0x8000000000000000ULL
+
+struct hcp_ehea_port_cb7 {
+	u64 def_uc_qpn;
+};
+
+u64 ehea_h_query_ehea_qp(const u64 adapter_handle,
+			 const u8 qp_category,
+			 const u64 qp_handle, const u64 sel_mask,
+			 void *cb_addr);
+
+u64 ehea_h_modify_ehea_qp(const u64 adapter_handle,
+			  const u8 cat,
+			  const u64 qp_handle,
+			  const u64 sel_mask,
+			  void *cb_addr,
+			  u64 * inv_attr_id,
+			  u64 * proc_mask, u16 * out_swr, u16 * out_rwr);
+
+u64 ehea_h_alloc_resource_eq(const u64 adapter_handle,
+			     struct ehea_eq_attr *eq_attr, u64 * eq_handle);
+
+u64 ehea_h_alloc_resource_cq(const u64 adapter_handle,
+			     struct ehea_cq_attr *cq_attr,
+			     u64 * cq_handle, struct h_epas *epas);
+
+u64 ehea_h_alloc_resource_qp(const u64 adapter_handle,
+			     struct ehea_qp_init_attr *init_attr,
+			     const u32 pd,
+			     u64 * qp_handle, struct h_epas *h_epas);
+
+#define H_REG_RPAGE_PAGE_SIZE          EHEA_BMASK_IBM(48,55)
+#define H_REG_RPAGE_QT                 EHEA_BMASK_IBM(62,63)
+
+u64 ehea_h_register_rpage(const u64 adapter_handle,
+			  const u8 pagesize,
+			  const u8 queue_type,
+			  const u64 resource_handle,
+			  const u64 log_pageaddr, u64 count);
+
+#define H_DISABLE_GET_EHEA_WQE_P  1
+#define H_DISABLE_GET_SQ_WQE_P    2
+#define H_DISABLE_GET_RQC         3
+
+u64 ehea_h_disable_and_get_hea(const u64 adapter_handle, const u64 qp_handle);
+
+u64 ehea_h_free_resource(const u64 adapter_handle, const u64 res_handle);
+
+u64 ehea_h_alloc_resource_mr(const u64 adapter_handle, const u64 vaddr,
+			     const u64 length, const u32 access_ctrl,
+			     const u32 pd, u64 * mr_handle, u32 * lkey);
+
+u64 ehea_h_register_rpage_mr(const u64 adapter_handle, const u64 mr_handle,
+			     const u8 pagesize, const u8 queue_type,
+			     const u64 log_pageaddr, const u64 count);
+
+u64 ehea_h_register_smr(const u64 adapter_handle, const u64 orig_mr_handle,
+			const u64 vaddr_in, const u32 access_ctrl, const u32 pd,
+			struct ehea_mr *mr);
+
+u64 ehea_h_query_ehea(const u64 adapter_handle, void *cb_addr);
+
+/* output param R5 */
+#define H_MEHEAPORT_CAT		EHEA_BMASK_IBM(40,47)
+#define H_MEHEAPORT_PN		EHEA_BMASK_IBM(48,63)
+
+u64 ehea_h_query_ehea_port(const u64 adapter_handle, const u16 port_num,
+			   const u8 cb_cat, const u64 select_mask,
+			   void *cb_addr);
+
+u64 ehea_h_modify_ehea_port(const u64 adapter_handle, const u16 port_num,
+			    const u8 cb_cat, const u64 select_mask,
+			    void *cb_addr);
+
+#define H_REGBCMC_PN            EHEA_BMASK_IBM(48, 63)
+#define H_REGBCMC_REGTYPE       EHEA_BMASK_IBM(61, 63)
+#define H_REGBCMC_MACADDR       EHEA_BMASK_IBM(16, 63)
+#define H_REGBCMC_VLANID        EHEA_BMASK_IBM(52, 63)
+
+u64 ehea_h_reg_dereg_bcmc(const u64 adapter_handle, const u16 port_num,
+			  const u8 reg_type, const u64 mc_mac_addr,
+			  const u16 vlan_id, const u32 hcall_id);
+
+u64 ehea_h_reset_events(const u64 adapter_handle, const u64 neq_handle,
+			const u64 event_mask);
+
+#endif	/* __EHEA_PHYP_H__ */

Some files were not shown because too many files changed in this diff